summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-08-03 18:54:33 -0700
committerHaibo Huang <hhb@google.com>2020-08-03 18:54:33 -0700
commitc90457a4442c0970fb5f9c922352f1f9b85bb27c (patch)
treeb38ec8f5f23d8282f4fd6e2d9cf7f9fd855da539
parent4fbae36d3ca5a63acd43c33a6ed7661e593a2d65 (diff)
downloadwindows-x86-c90457a4442c0970fb5f9c922352f1f9b85bb27c.tar.gz
Upgrade cmake prebuilt to 3.18.1 [Windows]
Built at: http://fusion/d33d2d52-b057-4060-9899-7c7a576b0c16 Change-Id: I063a758d749ead6eaf88ff5a159eaf1fea134c17
-rw-r--r--[-rwxr-xr-x]bin/cmake.exebin9919488 -> 8977408 bytes
-rw-r--r--[-rwxr-xr-x]bin/cmcldeps.exebin1067008 -> 785408 bytes
-rw-r--r--[-rwxr-xr-x]bin/cpack.exebin9735168 -> 8907264 bytes
-rw-r--r--[-rwxr-xr-x]bin/ctest.exebin10690048 -> 9642496 bytes
-rw-r--r--doc/cmake-3.17/cmcurl/COPYING22
-rw-r--r--doc/cmake-3.17/cmlibarchive/COPYING59
-rw-r--r--doc/cmake-3.17/cmlibrhash/COPYING15
-rw-r--r--doc/cmake-3.17/cmlibrhash/README7
-rw-r--r--doc/cmake-3.18/Copyright.txt (renamed from doc/cmake-3.17/Copyright.txt)0
-rw-r--r--doc/cmake-3.18/cmake.org.html (renamed from doc/cmake-3.17/cmake.org.html)0
-rw-r--r--doc/cmake-3.18/cmcurl/COPYING22
-rw-r--r--doc/cmake-3.18/cmlibarchive/COPYING66
-rw-r--r--doc/cmake-3.18/cmliblzma/COPYING (renamed from doc/cmake-3.17/cmliblzma/COPYING)0
-rw-r--r--doc/cmake-3.18/cmlibrhash/COPYING15
-rw-r--r--doc/cmake-3.18/cmlibuv/LICENSE (renamed from doc/cmake-3.17/cmlibuv/LICENSE)0
-rw-r--r--doc/cmake-3.18/cmnghttp2/COPYING23
-rw-r--r--doc/cmake-3.18/cmsys/Copyright.txt (renamed from doc/cmake-3.17/cmsys/Copyright.txt)0
-rw-r--r--doc/cmake-3.18/cmzlib/Copyright.txt (renamed from doc/cmake-3.17/cmzlib/Copyright.txt)0
-rw-r--r--doc/cmake-3.18/cmzstd/LICENSE (renamed from doc/cmake-3.17/cmzstd/LICENSE)0
-rw-r--r--share/bash-completion/completions/cmake (renamed from share/cmake-3.17/completions/cmake)0
-rw-r--r--share/bash-completion/completions/cpack (renamed from share/cmake-3.17/completions/cpack)0
-rw-r--r--share/bash-completion/completions/ctest (renamed from share/cmake-3.17/completions/ctest)0
-rw-r--r--share/cmake-3.17/Help/command/FIND_XXX.txt152
-rw-r--r--share/cmake-3.17/Help/command/add_compile_definitions.rst23
-rw-r--r--share/cmake-3.17/Help/command/add_compile_options.rst48
-rw-r--r--share/cmake-3.17/Help/command/add_definitions.rst35
-rw-r--r--share/cmake-3.17/Help/command/add_executable.rst85
-rw-r--r--share/cmake-3.17/Help/command/add_library.rst182
-rw-r--r--share/cmake-3.17/Help/command/add_link_options.rst31
-rw-r--r--share/cmake-3.17/Help/command/ctest_test.rst140
-rw-r--r--share/cmake-3.17/Help/command/execute_process.rst118
-rw-r--r--share/cmake-3.17/Help/command/file.rst848
-rw-r--r--share/cmake-3.17/Help/command/find_package.rst422
-rw-r--r--share/cmake-3.17/Help/command/function.rst70
-rw-r--r--share/cmake-3.17/Help/command/get_property.rst66
-rw-r--r--share/cmake-3.17/Help/command/get_source_file_property.rst22
-rw-r--r--share/cmake-3.17/Help/command/get_target_property.rst27
-rw-r--r--share/cmake-3.17/Help/command/install.rst705
-rw-r--r--share/cmake-3.17/Help/command/list.rst325
-rw-r--r--share/cmake-3.17/Help/command/macro.rst146
-rw-r--r--share/cmake-3.17/Help/command/option.rst16
-rw-r--r--share/cmake-3.17/Help/command/separate_arguments.rst46
-rw-r--r--share/cmake-3.17/Help/command/set_property.rst79
-rw-r--r--share/cmake-3.17/Help/command/set_source_files_properties.rst19
-rw-r--r--share/cmake-3.17/Help/command/source_group.rst58
-rw-r--r--share/cmake-3.17/Help/command/string.rst459
-rw-r--r--share/cmake-3.17/Help/command/target_compile_options.rst48
-rw-r--r--share/cmake-3.17/Help/command/target_link_options.rst48
-rw-r--r--share/cmake-3.17/Help/command/target_precompile_headers.rst124
-rw-r--r--share/cmake-3.17/Help/command/try_compile.rst191
-rw-r--r--share/cmake-3.17/Help/cpack_gen/archive.rst36
-rw-r--r--share/cmake-3.17/Help/cpack_gen/cygwin.rst23
-rw-r--r--share/cmake-3.17/Help/cpack_gen/deb.rst565
-rw-r--r--share/cmake-3.17/Help/cpack_gen/freebsd.rst138
-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/rpm.rst955
-rw-r--r--share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst13
-rw-r--r--share/cmake-3.17/Help/envvar/CFLAGS.rst11
-rw-r--r--share/cmake-3.17/Help/envvar/CSFLAGS.rst11
-rw-r--r--share/cmake-3.17/Help/envvar/CUDAFLAGS.rst11
-rw-r--r--share/cmake-3.17/Help/envvar/CXXFLAGS.rst11
-rw-r--r--share/cmake-3.17/Help/envvar/FFLAGS.rst11
-rw-r--r--share/cmake-3.17/Help/envvar/RCFLAGS.rst11
-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/manual/cmake-commands.7.rst172
-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-modules.7.rst318
-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-variables.7.rst683
-rw-r--r--share/cmake-3.17/Help/manual/cmake.1.rst781
-rw-r--r--share/cmake-3.17/Help/manual/ctest.1.rst1579
-rw-r--r--share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst17
-rw-r--r--share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst21
-rw-r--r--share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst10
-rw-r--r--share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst9
-rw-r--r--share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst13
-rw-r--r--share/cmake-3.17/Help/prop_test/DEPENDS.rst10
-rw-r--r--share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst7
-rw-r--r--share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst10
-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_STANDARD.rst32
-rw-r--r--share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst34
-rw-r--r--share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst21
-rw-r--r--share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst22
-rw-r--r--share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst12
-rw-r--r--share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst24
-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/SOVERSION.rst29
-rw-r--r--share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst60
-rw-r--r--share/cmake-3.17/Help/prop_tgt/VERSION.rst31
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst40
-rw-r--r--share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst13
-rw-r--r--share/cmake-3.17/Help/release/3.10.rst282
-rw-r--r--share/cmake-3.17/Help/release/3.15.rst387
-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/index.rst33
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst7
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst24
-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_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_FIND_DEBUG_MODE.rst22
-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_LANG_FLAGS_INIT.rst11
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst21
-rw-r--r--share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst12
-rw-r--r--share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst5
-rw-r--r--share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst6
-rw-r--r--share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in18
-rw-r--r--share/cmake-3.17/Modules/CMakeASMInformation.cmake110
-rw-r--r--share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake20
-rw-r--r--share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake38
-rw-r--r--share/cmake-3.17/Modules/CMakeCCompiler.cmake.in76
-rw-r--r--share/cmake-3.17/Modules/CMakeCInformation.cmake195
-rw-r--r--share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in57
-rw-r--r--share/cmake-3.17/Modules/CMakeCUDAInformation.cmake205
-rw-r--r--share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in88
-rw-r--r--share/cmake-3.17/Modules/CMakeCXXInformation.cmake282
-rw-r--r--share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake152
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake235
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake216
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake224
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake215
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake120
-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/CMakeDetermineOBJCCompiler.cmake189
-rw-r--r--share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake197
-rw-r--r--share/cmake-3.17/Modules/CMakeFindBinUtils.cmake143
-rw-r--r--share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake89
-rw-r--r--share/cmake-3.17/Modules/CMakeFindFrameworks.cmake33
-rw-r--r--share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in68
-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/CMakeOBJCInformation.cmake193
-rw-r--r--share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake278
-rw-r--r--share/cmake-3.17/Modules/CMakePlatformId.h.in283
-rw-r--r--share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake41
-rw-r--r--share/cmake-3.17/Modules/CMakeRCInformation.cmake50
-rw-r--r--share/cmake-3.17/Modules/CMakeTestCCompiler.cmake97
-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/CMakeTestFortranCompiler.cmake102
-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/CPack.cmake809
-rw-r--r--share/cmake-3.17/Modules/CPackComponent.cmake541
-rw-r--r--share/cmake-3.17/Modules/CPackIFW.cmake737
-rw-r--r--share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake285
-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/CheckIPOSupported.cmake237
-rw-r--r--share/cmake-3.17/Modules/CheckLanguage.cmake106
-rw-r--r--share/cmake-3.17/Modules/CheckTypeSize.c.in43
-rw-r--r--share/cmake-3.17/Modules/Compiler/ARMClang.cmake71
-rw-r--r--share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake11
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake133
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake70
-rw-r--r--share/cmake-3.17/Modules/Compiler/Clang.cmake107
-rw-r--r--share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake13
-rw-r--r--share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake13
-rw-r--r--share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake11
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake6
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake23
-rw-r--r--share/cmake-3.17/Modules/Compiler/GNU.cmake119
-rw-r--r--share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake9
-rw-r--r--share/cmake-3.17/Modules/Compiler/IAR.cmake114
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake86
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake17
-rw-r--r--share/cmake-3.17/Modules/Compiler/Intel.cmake43
-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.cmake19
-rw-r--r--share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake15
-rw-r--r--share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake6
-rw-r--r--share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake15
-rw-r--r--share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake32
-rw-r--r--share/cmake-3.17/Modules/Compiler/TI-C.cmake18
-rw-r--r--share/cmake-3.17/Modules/Compiler/TI-CXX.cmake12
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-CXX.cmake31
-rw-r--r--share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake24
-rw-r--r--share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in113
-rw-r--r--share/cmake-3.17/Modules/Documentation.cmake46
-rw-r--r--share/cmake-3.17/Modules/ExternalProject.cmake3280
-rw-r--r--share/cmake-3.17/Modules/FetchContent.cmake1058
-rw-r--r--share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in23
-rw-r--r--share/cmake-3.17/Modules/FindArmadillo.cmake90
-rw-r--r--share/cmake-3.17/Modules/FindBISON.cmake297
-rw-r--r--share/cmake-3.17/Modules/FindBLAS.cmake902
-rw-r--r--share/cmake-3.17/Modules/FindBoost.cmake2358
-rw-r--r--share/cmake-3.17/Modules/FindCUDA.cmake2024
-rw-r--r--share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake271
-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/FindDoxygen.cmake1158
-rw-r--r--share/cmake-3.17/Modules/FindFLEX.cmake256
-rw-r--r--share/cmake-3.17/Modules/FindGTK2.cmake943
-rw-r--r--share/cmake-3.17/Modules/FindHDF5.cmake958
-rw-r--r--share/cmake-3.17/Modules/FindJava.cmake360
-rw-r--r--share/cmake-3.17/Modules/FindLAPACK.cmake496
-rw-r--r--share/cmake-3.17/Modules/FindLibXslt.cmake77
-rw-r--r--share/cmake-3.17/Modules/FindLua.cmake238
-rw-r--r--share/cmake-3.17/Modules/FindMPI.cmake1787
-rw-r--r--share/cmake-3.17/Modules/FindOpenAL.cmake93
-rw-r--r--share/cmake-3.17/Modules/FindOpenCL.cmake172
-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/FindPackageHandleStandardArgs.cmake453
-rw-r--r--share/cmake-3.17/Modules/FindPkgConfig.cmake778
-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/FindRuby.cmake295
-rw-r--r--share/cmake-3.17/Modules/FindSWIG.cmake67
-rw-r--r--share/cmake-3.17/Modules/FindSquish.cmake301
-rw-r--r--share/cmake-3.17/Modules/FindSubversion.cmake157
-rw-r--r--share/cmake-3.17/Modules/FindThreads.cmake248
-rw-r--r--share/cmake-3.17/Modules/FindVulkan.cmake82
-rw-r--r--share/cmake-3.17/Modules/FindX11.cmake729
-rw-r--r--share/cmake-3.17/Modules/FindXalanC.cmake153
-rw-r--r--share/cmake-3.17/Modules/FindXercesC.cmake138
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt103
-rw-r--r--share/cmake-3.17/Modules/FortranCInterface/Detect.cmake180
-rw-r--r--share/cmake-3.17/Modules/GoogleTest.cmake463
-rw-r--r--share/cmake-3.17/Modules/GoogleTestAddTests.cmake106
-rw-r--r--share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake772
-rw-r--r--share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake766
-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/NSIS.template.in978
-rw-r--r--share/cmake-3.17/Modules/Platform/Android-Common.cmake218
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneL.cmake40
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake114
-rw-r--r--share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake166
-rw-r--r--share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake54
-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/HP-UX-HP-C.cmake6
-rw-r--r--share/cmake-3.17/Modules/Platform/Linux-como.cmake17
-rw-r--r--share/cmake-3.17/Modules/Platform/UnixPaths.cmake92
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Clang.cmake178
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-GNU.cmake210
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-Intel.cmake18
-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.cmake129
-rw-r--r--share/cmake-3.17/Modules/Platform/Windows-df.cmake60
-rw-r--r--share/cmake-3.17/Modules/Platform/WindowsPaths.cmake92
-rw-r--r--share/cmake-3.17/Modules/Platform/eCos.cmake65
-rw-r--r--share/cmake-3.17/Modules/Platform/gas.cmake19
-rwxr-xr-xshare/cmake-3.17/Modules/Squish4RunTestCase.bat24
-rw-r--r--share/cmake-3.17/Modules/Squish4RunTestCase.sh28
-rw-r--r--share/cmake-3.17/Modules/SquishTestScript.cmake86
-rw-r--r--share/cmake-3.17/Modules/UseEcos.cmake236
-rw-r--r--share/cmake-3.17/Modules/UseJava.cmake1425
-rw-r--r--share/cmake-3.17/Modules/UseSWIG.cmake837
-rw-r--r--share/cmake-3.17/Modules/readme.txt4
-rw-r--r--share/cmake-3.17/Templates/TestDriver.cxx.in143
-rw-r--r--share/cmake-3.17/editors/vim/syntax/cmake.vim3374
-rw-r--r--share/cmake-3.18/Help/command/DEVICE_LINK_OPTIONS.txt11
-rw-r--r--share/cmake-3.18/Help/command/FIND_XXX.txt161
-rw-r--r--share/cmake-3.18/Help/command/FIND_XXX_ORDER.txt (renamed from share/cmake-3.17/Help/command/FIND_XXX_ORDER.txt)0
-rw-r--r--share/cmake-3.18/Help/command/FIND_XXX_ROOT.txt (renamed from share/cmake-3.17/Help/command/FIND_XXX_ROOT.txt)0
-rw-r--r--share/cmake-3.18/Help/command/LINK_OPTIONS_LINKER.txt (renamed from share/cmake-3.17/Help/command/LINK_OPTIONS_LINKER.txt)0
-rw-r--r--share/cmake-3.18/Help/command/OPTIONS_SHELL.txt (renamed from share/cmake-3.17/Help/command/OPTIONS_SHELL.txt)0
-rw-r--r--share/cmake-3.18/Help/command/add_compile_definitions.rst25
-rw-r--r--share/cmake-3.18/Help/command/add_compile_options.rst51
-rw-r--r--share/cmake-3.18/Help/command/add_custom_command.rst (renamed from share/cmake-3.17/Help/command/add_custom_command.rst)0
-rw-r--r--share/cmake-3.18/Help/command/add_custom_target.rst (renamed from share/cmake-3.17/Help/command/add_custom_target.rst)0
-rw-r--r--share/cmake-3.18/Help/command/add_definitions.rst35
-rw-r--r--share/cmake-3.18/Help/command/add_dependencies.rst (renamed from share/cmake-3.17/Help/command/add_dependencies.rst)0
-rw-r--r--share/cmake-3.18/Help/command/add_executable.rst99
-rw-r--r--share/cmake-3.18/Help/command/add_library.rst187
-rw-r--r--share/cmake-3.18/Help/command/add_link_options.rst33
-rw-r--r--share/cmake-3.18/Help/command/add_subdirectory.rst (renamed from share/cmake-3.17/Help/command/add_subdirectory.rst)0
-rw-r--r--share/cmake-3.18/Help/command/add_test.rst (renamed from share/cmake-3.17/Help/command/add_test.rst)0
-rw-r--r--share/cmake-3.18/Help/command/aux_source_directory.rst (renamed from share/cmake-3.17/Help/command/aux_source_directory.rst)0
-rw-r--r--share/cmake-3.18/Help/command/break.rst (renamed from share/cmake-3.17/Help/command/break.rst)0
-rw-r--r--share/cmake-3.18/Help/command/build_command.rst (renamed from share/cmake-3.17/Help/command/build_command.rst)0
-rw-r--r--share/cmake-3.18/Help/command/build_name.rst (renamed from share/cmake-3.17/Help/command/build_name.rst)0
-rw-r--r--share/cmake-3.18/Help/command/cmake_host_system_information.rst (renamed from share/cmake-3.17/Help/command/cmake_host_system_information.rst)0
-rw-r--r--share/cmake-3.18/Help/command/cmake_language.rst99
-rw-r--r--share/cmake-3.18/Help/command/cmake_minimum_required.rst (renamed from share/cmake-3.17/Help/command/cmake_minimum_required.rst)0
-rw-r--r--share/cmake-3.18/Help/command/cmake_parse_arguments.rst (renamed from share/cmake-3.17/Help/command/cmake_parse_arguments.rst)0
-rw-r--r--share/cmake-3.18/Help/command/cmake_policy.rst (renamed from share/cmake-3.17/Help/command/cmake_policy.rst)0
-rw-r--r--share/cmake-3.18/Help/command/configure_file.rst (renamed from share/cmake-3.17/Help/command/configure_file.rst)0
-rw-r--r--share/cmake-3.18/Help/command/continue.rst (renamed from share/cmake-3.17/Help/command/continue.rst)0
-rw-r--r--share/cmake-3.18/Help/command/create_test_sourcelist.rst (renamed from share/cmake-3.17/Help/command/create_test_sourcelist.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_build.rst (renamed from share/cmake-3.17/Help/command/ctest_build.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_configure.rst (renamed from share/cmake-3.17/Help/command/ctest_configure.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_coverage.rst (renamed from share/cmake-3.17/Help/command/ctest_coverage.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_empty_binary_directory.rst (renamed from share/cmake-3.17/Help/command/ctest_empty_binary_directory.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_memcheck.rst (renamed from share/cmake-3.17/Help/command/ctest_memcheck.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_read_custom_files.rst (renamed from share/cmake-3.17/Help/command/ctest_read_custom_files.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_run_script.rst (renamed from share/cmake-3.17/Help/command/ctest_run_script.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_sleep.rst (renamed from share/cmake-3.17/Help/command/ctest_sleep.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_start.rst (renamed from share/cmake-3.17/Help/command/ctest_start.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_submit.rst (renamed from share/cmake-3.17/Help/command/ctest_submit.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_test.rst144
-rw-r--r--share/cmake-3.18/Help/command/ctest_update.rst (renamed from share/cmake-3.17/Help/command/ctest_update.rst)0
-rw-r--r--share/cmake-3.18/Help/command/ctest_upload.rst (renamed from share/cmake-3.17/Help/command/ctest_upload.rst)0
-rw-r--r--share/cmake-3.18/Help/command/define_property.rst (renamed from share/cmake-3.17/Help/command/define_property.rst)0
-rw-r--r--share/cmake-3.18/Help/command/else.rst (renamed from share/cmake-3.17/Help/command/else.rst)0
-rw-r--r--share/cmake-3.18/Help/command/elseif.rst (renamed from share/cmake-3.17/Help/command/elseif.rst)0
-rw-r--r--share/cmake-3.18/Help/command/enable_language.rst (renamed from share/cmake-3.17/Help/command/enable_language.rst)0
-rw-r--r--share/cmake-3.18/Help/command/enable_testing.rst (renamed from share/cmake-3.17/Help/command/enable_testing.rst)0
-rw-r--r--share/cmake-3.18/Help/command/endforeach.rst (renamed from share/cmake-3.17/Help/command/endforeach.rst)0
-rw-r--r--share/cmake-3.18/Help/command/endfunction.rst (renamed from share/cmake-3.17/Help/command/endfunction.rst)0
-rw-r--r--share/cmake-3.18/Help/command/endif.rst (renamed from share/cmake-3.17/Help/command/endif.rst)0
-rw-r--r--share/cmake-3.18/Help/command/endmacro.rst (renamed from share/cmake-3.17/Help/command/endmacro.rst)0
-rw-r--r--share/cmake-3.18/Help/command/endwhile.rst (renamed from share/cmake-3.17/Help/command/endwhile.rst)0
-rw-r--r--share/cmake-3.18/Help/command/exec_program.rst (renamed from share/cmake-3.17/Help/command/exec_program.rst)0
-rw-r--r--share/cmake-3.18/Help/command/execute_process.rst129
-rw-r--r--share/cmake-3.18/Help/command/export.rst (renamed from share/cmake-3.17/Help/command/export.rst)0
-rw-r--r--share/cmake-3.18/Help/command/export_library_dependencies.rst (renamed from share/cmake-3.17/Help/command/export_library_dependencies.rst)0
-rw-r--r--share/cmake-3.18/Help/command/file.rst955
-rw-r--r--share/cmake-3.18/Help/command/find_file.rst (renamed from share/cmake-3.17/Help/command/find_file.rst)0
-rw-r--r--share/cmake-3.18/Help/command/find_library.rst (renamed from share/cmake-3.17/Help/command/find_library.rst)0
-rw-r--r--share/cmake-3.18/Help/command/find_package.rst426
-rw-r--r--share/cmake-3.18/Help/command/find_path.rst (renamed from share/cmake-3.17/Help/command/find_path.rst)0
-rw-r--r--share/cmake-3.18/Help/command/find_program.rst (renamed from share/cmake-3.17/Help/command/find_program.rst)0
-rw-r--r--share/cmake-3.18/Help/command/fltk_wrap_ui.rst (renamed from share/cmake-3.17/Help/command/fltk_wrap_ui.rst)0
-rw-r--r--share/cmake-3.18/Help/command/foreach.rst (renamed from share/cmake-3.17/Help/command/foreach.rst)0
-rw-r--r--share/cmake-3.18/Help/command/function.rst74
-rw-r--r--share/cmake-3.18/Help/command/get_cmake_property.rst (renamed from share/cmake-3.17/Help/command/get_cmake_property.rst)0
-rw-r--r--share/cmake-3.18/Help/command/get_directory_property.rst (renamed from share/cmake-3.17/Help/command/get_directory_property.rst)0
-rw-r--r--share/cmake-3.18/Help/command/get_filename_component.rst (renamed from share/cmake-3.17/Help/command/get_filename_component.rst)0
-rw-r--r--share/cmake-3.18/Help/command/get_property.rst85
-rw-r--r--share/cmake-3.18/Help/command/get_source_file_property.rst40
-rw-r--r--share/cmake-3.18/Help/command/get_target_property.rst27
-rw-r--r--share/cmake-3.18/Help/command/get_test_property.rst (renamed from share/cmake-3.17/Help/command/get_test_property.rst)0
-rw-r--r--share/cmake-3.18/Help/command/if.rst (renamed from share/cmake-3.17/Help/command/if.rst)0
-rw-r--r--share/cmake-3.18/Help/command/include.rst (renamed from share/cmake-3.17/Help/command/include.rst)0
-rw-r--r--share/cmake-3.18/Help/command/include_directories.rst (renamed from share/cmake-3.17/Help/command/include_directories.rst)0
-rw-r--r--share/cmake-3.18/Help/command/include_external_msproject.rst (renamed from share/cmake-3.17/Help/command/include_external_msproject.rst)0
-rw-r--r--share/cmake-3.18/Help/command/include_guard.rst (renamed from share/cmake-3.17/Help/command/include_guard.rst)0
-rw-r--r--share/cmake-3.18/Help/command/include_regular_expression.rst (renamed from share/cmake-3.17/Help/command/include_regular_expression.rst)0
-rw-r--r--share/cmake-3.18/Help/command/install.rst733
-rw-r--r--share/cmake-3.18/Help/command/install_files.rst (renamed from share/cmake-3.17/Help/command/install_files.rst)0
-rw-r--r--share/cmake-3.18/Help/command/install_programs.rst (renamed from share/cmake-3.17/Help/command/install_programs.rst)0
-rw-r--r--share/cmake-3.18/Help/command/install_targets.rst (renamed from share/cmake-3.17/Help/command/install_targets.rst)0
-rw-r--r--share/cmake-3.18/Help/command/link_directories.rst (renamed from share/cmake-3.17/Help/command/link_directories.rst)0
-rw-r--r--share/cmake-3.18/Help/command/link_libraries.rst (renamed from share/cmake-3.17/Help/command/link_libraries.rst)0
-rw-r--r--share/cmake-3.18/Help/command/list.rst332
-rw-r--r--share/cmake-3.18/Help/command/load_cache.rst (renamed from share/cmake-3.17/Help/command/load_cache.rst)0
-rw-r--r--share/cmake-3.18/Help/command/load_command.rst (renamed from share/cmake-3.17/Help/command/load_command.rst)0
-rw-r--r--share/cmake-3.18/Help/command/macro.rst150
-rw-r--r--share/cmake-3.18/Help/command/make_directory.rst (renamed from share/cmake-3.17/Help/command/make_directory.rst)0
-rw-r--r--share/cmake-3.18/Help/command/mark_as_advanced.rst (renamed from share/cmake-3.17/Help/command/mark_as_advanced.rst)0
-rw-r--r--share/cmake-3.18/Help/command/math.rst (renamed from share/cmake-3.17/Help/command/math.rst)0
-rw-r--r--share/cmake-3.18/Help/command/message.rst (renamed from share/cmake-3.17/Help/command/message.rst)0
-rw-r--r--share/cmake-3.18/Help/command/option.rst16
-rw-r--r--share/cmake-3.18/Help/command/output_required_files.rst (renamed from share/cmake-3.17/Help/command/output_required_files.rst)0
-rw-r--r--share/cmake-3.18/Help/command/project.rst (renamed from share/cmake-3.17/Help/command/project.rst)0
-rw-r--r--share/cmake-3.18/Help/command/qt_wrap_cpp.rst (renamed from share/cmake-3.17/Help/command/qt_wrap_cpp.rst)0
-rw-r--r--share/cmake-3.18/Help/command/qt_wrap_ui.rst (renamed from share/cmake-3.17/Help/command/qt_wrap_ui.rst)0
-rw-r--r--share/cmake-3.18/Help/command/remove.rst (renamed from share/cmake-3.17/Help/command/remove.rst)0
-rw-r--r--share/cmake-3.18/Help/command/remove_definitions.rst (renamed from share/cmake-3.17/Help/command/remove_definitions.rst)0
-rw-r--r--share/cmake-3.18/Help/command/return.rst (renamed from share/cmake-3.17/Help/command/return.rst)0
-rw-r--r--share/cmake-3.18/Help/command/separate_arguments.rst46
-rw-r--r--share/cmake-3.18/Help/command/set.rst (renamed from share/cmake-3.17/Help/command/set.rst)0
-rw-r--r--share/cmake-3.18/Help/command/set_directory_properties.rst (renamed from share/cmake-3.17/Help/command/set_directory_properties.rst)0
-rw-r--r--share/cmake-3.18/Help/command/set_property.rst96
-rw-r--r--share/cmake-3.18/Help/command/set_source_files_properties.rst37
-rw-r--r--share/cmake-3.18/Help/command/set_target_properties.rst (renamed from share/cmake-3.17/Help/command/set_target_properties.rst)0
-rw-r--r--share/cmake-3.18/Help/command/set_tests_properties.rst (renamed from share/cmake-3.17/Help/command/set_tests_properties.rst)0
-rw-r--r--share/cmake-3.18/Help/command/site_name.rst (renamed from share/cmake-3.17/Help/command/site_name.rst)0
-rw-r--r--share/cmake-3.18/Help/command/source_group.rst60
-rw-r--r--share/cmake-3.18/Help/command/string.rst472
-rw-r--r--share/cmake-3.18/Help/command/subdir_depends.rst (renamed from share/cmake-3.17/Help/command/subdir_depends.rst)0
-rw-r--r--share/cmake-3.18/Help/command/subdirs.rst (renamed from share/cmake-3.17/Help/command/subdirs.rst)0
-rw-r--r--share/cmake-3.18/Help/command/target_compile_definitions.rst (renamed from share/cmake-3.17/Help/command/target_compile_definitions.rst)0
-rw-r--r--share/cmake-3.18/Help/command/target_compile_features.rst (renamed from share/cmake-3.17/Help/command/target_compile_features.rst)0
-rw-r--r--share/cmake-3.18/Help/command/target_compile_options.rst50
-rw-r--r--share/cmake-3.18/Help/command/target_include_directories.rst (renamed from share/cmake-3.17/Help/command/target_include_directories.rst)0
-rw-r--r--share/cmake-3.18/Help/command/target_link_directories.rst (renamed from share/cmake-3.17/Help/command/target_link_directories.rst)0
-rw-r--r--share/cmake-3.18/Help/command/target_link_libraries.rst (renamed from share/cmake-3.17/Help/command/target_link_libraries.rst)0
-rw-r--r--share/cmake-3.18/Help/command/target_link_options.rst50
-rw-r--r--share/cmake-3.18/Help/command/target_precompile_headers.rst123
-rw-r--r--share/cmake-3.18/Help/command/target_sources.rst (renamed from share/cmake-3.17/Help/command/target_sources.rst)0
-rw-r--r--share/cmake-3.18/Help/command/try_compile.rst192
-rw-r--r--share/cmake-3.18/Help/command/try_run.rst (renamed from share/cmake-3.17/Help/command/try_run.rst)0
-rw-r--r--share/cmake-3.18/Help/command/unset.rst (renamed from share/cmake-3.17/Help/command/unset.rst)0
-rw-r--r--share/cmake-3.18/Help/command/use_mangled_mesa.rst (renamed from share/cmake-3.17/Help/command/use_mangled_mesa.rst)0
-rw-r--r--share/cmake-3.18/Help/command/utility_source.rst (renamed from share/cmake-3.17/Help/command/utility_source.rst)0
-rw-r--r--share/cmake-3.18/Help/command/variable_requires.rst (renamed from share/cmake-3.17/Help/command/variable_requires.rst)0
-rw-r--r--share/cmake-3.18/Help/command/variable_watch.rst (renamed from share/cmake-3.17/Help/command/variable_watch.rst)0
-rw-r--r--share/cmake-3.18/Help/command/while.rst (renamed from share/cmake-3.17/Help/command/while.rst)0
-rw-r--r--share/cmake-3.18/Help/command/write_file.rst (renamed from share/cmake-3.17/Help/command/write_file.rst)0
-rw-r--r--share/cmake-3.18/Help/cpack_gen/archive.rst75
-rw-r--r--share/cmake-3.18/Help/cpack_gen/bundle.rst (renamed from share/cmake-3.17/Help/cpack_gen/bundle.rst)0
-rw-r--r--share/cmake-3.18/Help/cpack_gen/cygwin.rst28
-rw-r--r--share/cmake-3.18/Help/cpack_gen/deb.rst565
-rw-r--r--share/cmake-3.18/Help/cpack_gen/dmg.rst (renamed from share/cmake-3.17/Help/cpack_gen/dmg.rst)0
-rw-r--r--share/cmake-3.18/Help/cpack_gen/external.rst (renamed from share/cmake-3.17/Help/cpack_gen/external.rst)0
-rw-r--r--share/cmake-3.18/Help/cpack_gen/freebsd.rst143
-rw-r--r--share/cmake-3.18/Help/cpack_gen/ifw.rst347
-rw-r--r--share/cmake-3.18/Help/cpack_gen/nsis.rst161
-rw-r--r--share/cmake-3.18/Help/cpack_gen/nuget.rst (renamed from share/cmake-3.17/Help/cpack_gen/nuget.rst)0
-rw-r--r--share/cmake-3.18/Help/cpack_gen/packagemaker.rst (renamed from share/cmake-3.17/Help/cpack_gen/packagemaker.rst)0
-rw-r--r--share/cmake-3.18/Help/cpack_gen/productbuild.rst (renamed from share/cmake-3.17/Help/cpack_gen/productbuild.rst)0
-rw-r--r--share/cmake-3.18/Help/cpack_gen/rpm.rst959
-rw-r--r--share/cmake-3.18/Help/cpack_gen/wix.rst (renamed from share/cmake-3.17/Help/cpack_gen/wix.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/ASM_DIALECT.rst (renamed from share/cmake-3.17/Help/envvar/ASM_DIALECT.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/ASM_DIALECTFLAGS.rst15
-rw-r--r--share/cmake-3.18/Help/envvar/CC.rst (renamed from share/cmake-3.17/Help/envvar/CC.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CCMAKE_COLORS.rst34
-rw-r--r--share/cmake-3.18/Help/envvar/CFLAGS.rst13
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_CONFIG_TYPE.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_CONFIG_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_GENERATOR.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_GENERATOR.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_NO_VERBOSE.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_NO_VERBOSE.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst (renamed from share/cmake-3.17/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CMAKE_PREFIX_PATH.rst17
-rw-r--r--share/cmake-3.18/Help/envvar/CSFLAGS.rst13
-rw-r--r--share/cmake-3.18/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst (renamed from share/cmake-3.17/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst (renamed from share/cmake-3.17/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CTEST_PARALLEL_LEVEL.rst (renamed from share/cmake-3.17/Help/envvar/CTEST_PARALLEL_LEVEL.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CTEST_PROGRESS_OUTPUT.rst (renamed from share/cmake-3.17/Help/envvar/CTEST_PROGRESS_OUTPUT.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst (renamed from share/cmake-3.17/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CUDACXX.rst (renamed from share/cmake-3.17/Help/envvar/CUDACXX.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CUDAFLAGS.rst13
-rw-r--r--share/cmake-3.18/Help/envvar/CUDAHOSTCXX.rst (renamed from share/cmake-3.17/Help/envvar/CUDAHOSTCXX.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CXX.rst (renamed from share/cmake-3.17/Help/envvar/CXX.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/CXXFLAGS.rst13
-rw-r--r--share/cmake-3.18/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst (renamed from share/cmake-3.17/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/DESTDIR.rst (renamed from share/cmake-3.17/Help/envvar/DESTDIR.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/ENV_VAR.txt (renamed from share/cmake-3.17/Help/envvar/ENV_VAR.txt)0
-rw-r--r--share/cmake-3.18/Help/envvar/FC.rst (renamed from share/cmake-3.17/Help/envvar/FC.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/FFLAGS.rst13
-rw-r--r--share/cmake-3.18/Help/envvar/LDFLAGS.rst (renamed from share/cmake-3.17/Help/envvar/LDFLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst (renamed from share/cmake-3.17/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/OBJC.rst14
-rw-r--r--share/cmake-3.18/Help/envvar/OBJCXX.rst14
-rw-r--r--share/cmake-3.18/Help/envvar/PackageName_ROOT.rst (renamed from share/cmake-3.17/Help/envvar/PackageName_ROOT.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/RC.rst (renamed from share/cmake-3.17/Help/envvar/RC.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/RCFLAGS.rst13
-rw-r--r--share/cmake-3.18/Help/envvar/SWIFTC.rst (renamed from share/cmake-3.17/Help/envvar/SWIFTC.rst)0
-rw-r--r--share/cmake-3.18/Help/envvar/VERBOSE.rst (renamed from share/cmake-3.17/Help/envvar/VERBOSE.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Borland Makefiles.rst (renamed from share/cmake-3.17/Help/generator/Borland Makefiles.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/CodeBlocks.rst (renamed from share/cmake-3.17/Help/generator/CodeBlocks.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/CodeLite.rst (renamed from share/cmake-3.17/Help/generator/CodeLite.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Eclipse CDT4.rst (renamed from share/cmake-3.17/Help/generator/Eclipse CDT4.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Green Hills MULTI.rst (renamed from share/cmake-3.17/Help/generator/Green Hills MULTI.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Kate.rst (renamed from share/cmake-3.17/Help/generator/Kate.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/MSYS Makefiles.rst (renamed from share/cmake-3.17/Help/generator/MSYS Makefiles.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/MinGW Makefiles.rst (renamed from share/cmake-3.17/Help/generator/MinGW Makefiles.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/NMake Makefiles JOM.rst (renamed from share/cmake-3.17/Help/generator/NMake Makefiles JOM.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/NMake Makefiles.rst (renamed from share/cmake-3.17/Help/generator/NMake Makefiles.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Ninja Multi-Config.rst87
-rw-r--r--share/cmake-3.18/Help/generator/Ninja.rst42
-rw-r--r--share/cmake-3.18/Help/generator/Sublime Text 2.rst (renamed from share/cmake-3.17/Help/generator/Sublime Text 2.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Unix Makefiles.rst (renamed from share/cmake-3.17/Help/generator/Unix Makefiles.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/VS_TOOLSET_HOST_ARCH.txt (renamed from share/cmake-3.17/Help/generator/VS_TOOLSET_HOST_ARCH.txt)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 10 2010.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 10 2010.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 11 2012.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 11 2012.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 12 2013.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 12 2013.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 14 2015.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 14 2015.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 15 2017.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 15 2017.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 16 2019.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 16 2019.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 6.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 6.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 7 .NET 2003.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 7 .NET 2003.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 7.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 7.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 8 2005.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 8 2005.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Visual Studio 9 2008.rst (renamed from share/cmake-3.17/Help/generator/Visual Studio 9 2008.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Watcom WMake.rst (renamed from share/cmake-3.17/Help/generator/Watcom WMake.rst)0
-rw-r--r--share/cmake-3.18/Help/generator/Xcode.rst (renamed from share/cmake-3.17/Help/generator/Xcode.rst)0
-rw-r--r--share/cmake-3.18/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt (renamed from share/cmake-3.17/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt)0
-rw-r--r--share/cmake-3.18/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt (renamed from share/cmake-3.17/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt)0
-rw-r--r--share/cmake-3.18/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt (renamed from share/cmake-3.17/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt)0
-rw-r--r--share/cmake-3.18/Help/index.rst (renamed from share/cmake-3.17/Help/index.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/ID_RESERVE.txt (renamed from share/cmake-3.17/Help/manual/ID_RESERVE.txt)0
-rw-r--r--share/cmake-3.18/Help/manual/LINKS.txt (renamed from share/cmake-3.17/Help/manual/LINKS.txt)0
-rw-r--r--share/cmake-3.18/Help/manual/OPTIONS_BUILD.txt (renamed from share/cmake-3.17/Help/manual/OPTIONS_BUILD.txt)0
-rw-r--r--share/cmake-3.18/Help/manual/OPTIONS_HELP.txt (renamed from share/cmake-3.17/Help/manual/OPTIONS_HELP.txt)0
-rw-r--r--share/cmake-3.18/Help/manual/VS-Choose-Arch.png (renamed from share/cmake-3.17/Help/manual/VS-Choose-Arch.png)bin11130 -> 11130 bytes
-rw-r--r--share/cmake-3.18/Help/manual/ccmake.1.rst (renamed from share/cmake-3.17/Help/manual/ccmake.1.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-buildsystem.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-buildsystem.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-commands.7.rst173
-rw-r--r--share/cmake-3.18/Help/manual/cmake-compile-features.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-compile-features.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-developer.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-developer.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-env-variables.7.rst92
-rw-r--r--share/cmake-3.18/Help/manual/cmake-file-api.7.rst1135
-rw-r--r--share/cmake-3.18/Help/manual/cmake-generator-expressions.7.rst791
-rw-r--r--share/cmake-3.18/Help/manual/cmake-generators.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-generators.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-gui.1.rst (renamed from share/cmake-3.17/Help/manual/cmake-gui.1.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-language.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-language.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-modules.7.rst319
-rw-r--r--share/cmake-3.18/Help/manual/cmake-packages.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-packages.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-policies.7.rst295
-rw-r--r--share/cmake-3.18/Help/manual/cmake-properties.7.rst574
-rw-r--r--share/cmake-3.18/Help/manual/cmake-qt.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-qt.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-server.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-server.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-toolchains.7.rst (renamed from share/cmake-3.17/Help/manual/cmake-toolchains.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cmake-variables.7.rst688
-rw-r--r--share/cmake-3.18/Help/manual/cmake.1.rst804
-rw-r--r--share/cmake-3.18/Help/manual/cpack-generators.7.rst (renamed from share/cmake-3.17/Help/manual/cpack-generators.7.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/cpack.1.rst (renamed from share/cmake-3.17/Help/manual/cpack.1.rst)0
-rw-r--r--share/cmake-3.18/Help/manual/ctest.1.rst1593
-rw-r--r--share/cmake-3.18/Help/module/AddFileDependencies.rst (renamed from share/cmake-3.17/Help/module/AddFileDependencies.rst)0
-rw-r--r--share/cmake-3.18/Help/module/AndroidTestUtilities.rst (renamed from share/cmake-3.17/Help/module/AndroidTestUtilities.rst)0
-rw-r--r--share/cmake-3.18/Help/module/BundleUtilities.rst (renamed from share/cmake-3.17/Help/module/BundleUtilities.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeAddFortranSubdirectory.rst (renamed from share/cmake-3.17/Help/module/CMakeAddFortranSubdirectory.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeBackwardCompatibilityCXX.rst (renamed from share/cmake-3.17/Help/module/CMakeBackwardCompatibilityCXX.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeDependentOption.rst (renamed from share/cmake-3.17/Help/module/CMakeDependentOption.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeDetermineVSServicePack.rst (renamed from share/cmake-3.17/Help/module/CMakeDetermineVSServicePack.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeExpandImportedTargets.rst (renamed from share/cmake-3.17/Help/module/CMakeExpandImportedTargets.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeFindDependencyMacro.rst (renamed from share/cmake-3.17/Help/module/CMakeFindDependencyMacro.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeFindFrameworks.rst (renamed from share/cmake-3.17/Help/module/CMakeFindFrameworks.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeFindPackageMode.rst (renamed from share/cmake-3.17/Help/module/CMakeFindPackageMode.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeForceCompiler.rst (renamed from share/cmake-3.17/Help/module/CMakeForceCompiler.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeGraphVizOptions.rst (renamed from share/cmake-3.17/Help/module/CMakeGraphVizOptions.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakePackageConfigHelpers.rst (renamed from share/cmake-3.17/Help/module/CMakePackageConfigHelpers.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeParseArguments.rst (renamed from share/cmake-3.17/Help/module/CMakeParseArguments.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakePrintHelpers.rst (renamed from share/cmake-3.17/Help/module/CMakePrintHelpers.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakePrintSystemInformation.rst (renamed from share/cmake-3.17/Help/module/CMakePrintSystemInformation.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakePushCheckState.rst (renamed from share/cmake-3.17/Help/module/CMakePushCheckState.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CMakeVerifyManifest.rst (renamed from share/cmake-3.17/Help/module/CMakeVerifyManifest.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPack.rst (renamed from share/cmake-3.17/Help/module/CPack.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackArchive.rst (renamed from share/cmake-3.17/Help/module/CPackArchive.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackBundle.rst (renamed from share/cmake-3.17/Help/module/CPackBundle.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackComponent.rst (renamed from share/cmake-3.17/Help/module/CPackComponent.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackCygwin.rst (renamed from share/cmake-3.17/Help/module/CPackCygwin.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackDMG.rst (renamed from share/cmake-3.17/Help/module/CPackDMG.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackDeb.rst (renamed from share/cmake-3.17/Help/module/CPackDeb.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackFreeBSD.rst (renamed from share/cmake-3.17/Help/module/CPackFreeBSD.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackIFW.rst (renamed from share/cmake-3.17/Help/module/CPackIFW.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackIFWConfigureFile.rst (renamed from share/cmake-3.17/Help/module/CPackIFWConfigureFile.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackNSIS.rst (renamed from share/cmake-3.17/Help/module/CPackNSIS.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackNuGet.rst (renamed from share/cmake-3.17/Help/module/CPackNuGet.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackPackageMaker.rst (renamed from share/cmake-3.17/Help/module/CPackPackageMaker.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackProductBuild.rst (renamed from share/cmake-3.17/Help/module/CPackProductBuild.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackRPM.rst (renamed from share/cmake-3.17/Help/module/CPackRPM.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CPackWIX.rst (renamed from share/cmake-3.17/Help/module/CPackWIX.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CSharpUtilities.rst (renamed from share/cmake-3.17/Help/module/CSharpUtilities.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CTest.rst (renamed from share/cmake-3.17/Help/module/CTest.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CTestCoverageCollectGCOV.rst (renamed from share/cmake-3.17/Help/module/CTestCoverageCollectGCOV.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CTestScriptMode.rst (renamed from share/cmake-3.17/Help/module/CTestScriptMode.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CTestUseLaunchers.rst (renamed from share/cmake-3.17/Help/module/CTestUseLaunchers.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckCCompilerFlag.rst (renamed from share/cmake-3.17/Help/module/CheckCCompilerFlag.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckCSourceCompiles.rst (renamed from share/cmake-3.17/Help/module/CheckCSourceCompiles.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckCSourceRuns.rst (renamed from share/cmake-3.17/Help/module/CheckCSourceRuns.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckCXXCompilerFlag.rst (renamed from share/cmake-3.17/Help/module/CheckCXXCompilerFlag.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckCXXSourceCompiles.rst (renamed from share/cmake-3.17/Help/module/CheckCXXSourceCompiles.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckCXXSourceRuns.rst (renamed from share/cmake-3.17/Help/module/CheckCXXSourceRuns.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckCXXSymbolExists.rst (renamed from share/cmake-3.17/Help/module/CheckCXXSymbolExists.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckFortranCompilerFlag.rst (renamed from share/cmake-3.17/Help/module/CheckFortranCompilerFlag.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckFortranFunctionExists.rst (renamed from share/cmake-3.17/Help/module/CheckFortranFunctionExists.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckFortranSourceCompiles.rst (renamed from share/cmake-3.17/Help/module/CheckFortranSourceCompiles.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckFortranSourceRuns.rst (renamed from share/cmake-3.17/Help/module/CheckFortranSourceRuns.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckFunctionExists.rst (renamed from share/cmake-3.17/Help/module/CheckFunctionExists.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckIPOSupported.rst (renamed from share/cmake-3.17/Help/module/CheckIPOSupported.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckIncludeFile.rst (renamed from share/cmake-3.17/Help/module/CheckIncludeFile.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckIncludeFileCXX.rst (renamed from share/cmake-3.17/Help/module/CheckIncludeFileCXX.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckIncludeFiles.rst (renamed from share/cmake-3.17/Help/module/CheckIncludeFiles.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckLanguage.rst (renamed from share/cmake-3.17/Help/module/CheckLanguage.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckLibraryExists.rst (renamed from share/cmake-3.17/Help/module/CheckLibraryExists.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckLinkerFlag.rst1
-rw-r--r--share/cmake-3.18/Help/module/CheckOBJCCompilerFlag.rst (renamed from share/cmake-3.17/Help/module/CheckOBJCCompilerFlag.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckOBJCSourceCompiles.rst (renamed from share/cmake-3.17/Help/module/CheckOBJCSourceCompiles.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckOBJCSourceRuns.rst (renamed from share/cmake-3.17/Help/module/CheckOBJCSourceRuns.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckOBJCXXCompilerFlag.rst (renamed from share/cmake-3.17/Help/module/CheckOBJCXXCompilerFlag.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckOBJCXXSourceCompiles.rst (renamed from share/cmake-3.17/Help/module/CheckOBJCXXSourceCompiles.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckOBJCXXSourceRuns.rst (renamed from share/cmake-3.17/Help/module/CheckOBJCXXSourceRuns.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckPIESupported.rst (renamed from share/cmake-3.17/Help/module/CheckPIESupported.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckPrototypeDefinition.rst (renamed from share/cmake-3.17/Help/module/CheckPrototypeDefinition.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckStructHasMember.rst (renamed from share/cmake-3.17/Help/module/CheckStructHasMember.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckSymbolExists.rst (renamed from share/cmake-3.17/Help/module/CheckSymbolExists.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckTypeSize.rst (renamed from share/cmake-3.17/Help/module/CheckTypeSize.rst)0
-rw-r--r--share/cmake-3.18/Help/module/CheckVariableExists.rst (renamed from share/cmake-3.17/Help/module/CheckVariableExists.rst)0
-rw-r--r--share/cmake-3.18/Help/module/Dart.rst (renamed from share/cmake-3.17/Help/module/Dart.rst)0
-rw-r--r--share/cmake-3.18/Help/module/DeployQt4.rst (renamed from share/cmake-3.17/Help/module/DeployQt4.rst)0
-rw-r--r--share/cmake-3.18/Help/module/Documentation.rst (renamed from share/cmake-3.17/Help/module/Documentation.rst)0
-rw-r--r--share/cmake-3.18/Help/module/ExternalData.rst (renamed from share/cmake-3.17/Help/module/ExternalData.rst)0
-rw-r--r--share/cmake-3.18/Help/module/ExternalProject.rst (renamed from share/cmake-3.17/Help/module/ExternalProject.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FeatureSummary.rst (renamed from share/cmake-3.17/Help/module/FeatureSummary.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FetchContent.rst (renamed from share/cmake-3.17/Help/module/FetchContent.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindALSA.rst (renamed from share/cmake-3.17/Help/module/FindALSA.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindASPELL.rst (renamed from share/cmake-3.17/Help/module/FindASPELL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindAVIFile.rst (renamed from share/cmake-3.17/Help/module/FindAVIFile.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindArmadillo.rst (renamed from share/cmake-3.17/Help/module/FindArmadillo.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindBISON.rst (renamed from share/cmake-3.17/Help/module/FindBISON.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindBLAS.rst (renamed from share/cmake-3.17/Help/module/FindBLAS.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindBZip2.rst (renamed from share/cmake-3.17/Help/module/FindBZip2.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindBacktrace.rst (renamed from share/cmake-3.17/Help/module/FindBacktrace.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindBoost.rst (renamed from share/cmake-3.17/Help/module/FindBoost.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindBullet.rst (renamed from share/cmake-3.17/Help/module/FindBullet.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCABLE.rst (renamed from share/cmake-3.17/Help/module/FindCABLE.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCUDA.rst (renamed from share/cmake-3.17/Help/module/FindCUDA.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCUDAToolkit.rst (renamed from share/cmake-3.17/Help/module/FindCUDAToolkit.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCURL.rst (renamed from share/cmake-3.17/Help/module/FindCURL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCVS.rst (renamed from share/cmake-3.17/Help/module/FindCVS.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCoin3D.rst (renamed from share/cmake-3.17/Help/module/FindCoin3D.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCups.rst (renamed from share/cmake-3.17/Help/module/FindCups.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCurses.rst (renamed from share/cmake-3.17/Help/module/FindCurses.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCxxTest.rst (renamed from share/cmake-3.17/Help/module/FindCxxTest.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindCygwin.rst (renamed from share/cmake-3.17/Help/module/FindCygwin.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindDCMTK.rst (renamed from share/cmake-3.17/Help/module/FindDCMTK.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindDart.rst (renamed from share/cmake-3.17/Help/module/FindDart.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindDevIL.rst (renamed from share/cmake-3.17/Help/module/FindDevIL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindDoxygen.rst (renamed from share/cmake-3.17/Help/module/FindDoxygen.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindEXPAT.rst (renamed from share/cmake-3.17/Help/module/FindEXPAT.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindEnvModules.rst (renamed from share/cmake-3.17/Help/module/FindEnvModules.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindFLEX.rst (renamed from share/cmake-3.17/Help/module/FindFLEX.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindFLTK.rst (renamed from share/cmake-3.17/Help/module/FindFLTK.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindFLTK2.rst (renamed from share/cmake-3.17/Help/module/FindFLTK2.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindFontconfig.rst (renamed from share/cmake-3.17/Help/module/FindFontconfig.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindFreetype.rst (renamed from share/cmake-3.17/Help/module/FindFreetype.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGCCXML.rst (renamed from share/cmake-3.17/Help/module/FindGCCXML.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGDAL.rst (renamed from share/cmake-3.17/Help/module/FindGDAL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGIF.rst (renamed from share/cmake-3.17/Help/module/FindGIF.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGLEW.rst (renamed from share/cmake-3.17/Help/module/FindGLEW.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGLUT.rst (renamed from share/cmake-3.17/Help/module/FindGLUT.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGSL.rst (renamed from share/cmake-3.17/Help/module/FindGSL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGTK.rst (renamed from share/cmake-3.17/Help/module/FindGTK.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGTK2.rst (renamed from share/cmake-3.17/Help/module/FindGTK2.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGTest.rst (renamed from share/cmake-3.17/Help/module/FindGTest.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGettext.rst (renamed from share/cmake-3.17/Help/module/FindGettext.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGit.rst (renamed from share/cmake-3.17/Help/module/FindGit.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGnuTLS.rst (renamed from share/cmake-3.17/Help/module/FindGnuTLS.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindGnuplot.rst (renamed from share/cmake-3.17/Help/module/FindGnuplot.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindHDF5.rst (renamed from share/cmake-3.17/Help/module/FindHDF5.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindHSPELL.rst (renamed from share/cmake-3.17/Help/module/FindHSPELL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindHTMLHelp.rst (renamed from share/cmake-3.17/Help/module/FindHTMLHelp.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindHg.rst (renamed from share/cmake-3.17/Help/module/FindHg.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindICU.rst (renamed from share/cmake-3.17/Help/module/FindICU.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindITK.rst (renamed from share/cmake-3.17/Help/module/FindITK.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindIce.rst (renamed from share/cmake-3.17/Help/module/FindIce.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindIconv.rst (renamed from share/cmake-3.17/Help/module/FindIconv.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindIcotool.rst (renamed from share/cmake-3.17/Help/module/FindIcotool.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindImageMagick.rst (renamed from share/cmake-3.17/Help/module/FindImageMagick.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindIntl.rst (renamed from share/cmake-3.17/Help/module/FindIntl.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindJNI.rst (renamed from share/cmake-3.17/Help/module/FindJNI.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindJPEG.rst (renamed from share/cmake-3.17/Help/module/FindJPEG.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindJasper.rst (renamed from share/cmake-3.17/Help/module/FindJasper.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindJava.rst (renamed from share/cmake-3.17/Help/module/FindJava.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindKDE3.rst (renamed from share/cmake-3.17/Help/module/FindKDE3.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindKDE4.rst (renamed from share/cmake-3.17/Help/module/FindKDE4.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLAPACK.rst (renamed from share/cmake-3.17/Help/module/FindLAPACK.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLATEX.rst (renamed from share/cmake-3.17/Help/module/FindLATEX.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLTTngUST.rst (renamed from share/cmake-3.17/Help/module/FindLTTngUST.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLibArchive.rst (renamed from share/cmake-3.17/Help/module/FindLibArchive.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLibLZMA.rst (renamed from share/cmake-3.17/Help/module/FindLibLZMA.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLibXml2.rst (renamed from share/cmake-3.17/Help/module/FindLibXml2.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLibXslt.rst (renamed from share/cmake-3.17/Help/module/FindLibXslt.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLibinput.rst (renamed from share/cmake-3.17/Help/module/FindLibinput.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLua.rst (renamed from share/cmake-3.17/Help/module/FindLua.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLua50.rst (renamed from share/cmake-3.17/Help/module/FindLua50.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindLua51.rst (renamed from share/cmake-3.17/Help/module/FindLua51.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindMFC.rst (renamed from share/cmake-3.17/Help/module/FindMFC.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindMPEG.rst (renamed from share/cmake-3.17/Help/module/FindMPEG.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindMPEG2.rst (renamed from share/cmake-3.17/Help/module/FindMPEG2.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindMPI.rst (renamed from share/cmake-3.17/Help/module/FindMPI.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindMatlab.rst (renamed from share/cmake-3.17/Help/module/FindMatlab.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindMotif.rst (renamed from share/cmake-3.17/Help/module/FindMotif.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindODBC.rst (renamed from share/cmake-3.17/Help/module/FindODBC.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindOpenACC.rst (renamed from share/cmake-3.17/Help/module/FindOpenACC.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindOpenAL.rst (renamed from share/cmake-3.17/Help/module/FindOpenAL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindOpenCL.rst (renamed from share/cmake-3.17/Help/module/FindOpenCL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindOpenGL.rst (renamed from share/cmake-3.17/Help/module/FindOpenGL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindOpenMP.rst (renamed from share/cmake-3.17/Help/module/FindOpenMP.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindOpenSSL.rst (renamed from share/cmake-3.17/Help/module/FindOpenSSL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindOpenSceneGraph.rst (renamed from share/cmake-3.17/Help/module/FindOpenSceneGraph.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindOpenThreads.rst (renamed from share/cmake-3.17/Help/module/FindOpenThreads.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPHP4.rst (renamed from share/cmake-3.17/Help/module/FindPHP4.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPNG.rst (renamed from share/cmake-3.17/Help/module/FindPNG.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPackageHandleStandardArgs.rst (renamed from share/cmake-3.17/Help/module/FindPackageHandleStandardArgs.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPackageMessage.rst (renamed from share/cmake-3.17/Help/module/FindPackageMessage.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPatch.rst (renamed from share/cmake-3.17/Help/module/FindPatch.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPerl.rst (renamed from share/cmake-3.17/Help/module/FindPerl.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPerlLibs.rst (renamed from share/cmake-3.17/Help/module/FindPerlLibs.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPhysFS.rst (renamed from share/cmake-3.17/Help/module/FindPhysFS.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPike.rst (renamed from share/cmake-3.17/Help/module/FindPike.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPkgConfig.rst (renamed from share/cmake-3.17/Help/module/FindPkgConfig.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPostgreSQL.rst (renamed from share/cmake-3.17/Help/module/FindPostgreSQL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindProducer.rst (renamed from share/cmake-3.17/Help/module/FindProducer.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindProtobuf.rst (renamed from share/cmake-3.17/Help/module/FindProtobuf.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPython.rst (renamed from share/cmake-3.17/Help/module/FindPython.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPython2.rst (renamed from share/cmake-3.17/Help/module/FindPython2.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPython3.rst (renamed from share/cmake-3.17/Help/module/FindPython3.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPythonInterp.rst (renamed from share/cmake-3.17/Help/module/FindPythonInterp.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindPythonLibs.rst (renamed from share/cmake-3.17/Help/module/FindPythonLibs.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindQt.rst (renamed from share/cmake-3.17/Help/module/FindQt.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindQt3.rst (renamed from share/cmake-3.17/Help/module/FindQt3.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindQt4.rst (renamed from share/cmake-3.17/Help/module/FindQt4.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindQuickTime.rst (renamed from share/cmake-3.17/Help/module/FindQuickTime.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindRTI.rst (renamed from share/cmake-3.17/Help/module/FindRTI.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindRuby.rst (renamed from share/cmake-3.17/Help/module/FindRuby.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSDL.rst (renamed from share/cmake-3.17/Help/module/FindSDL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSDL_image.rst (renamed from share/cmake-3.17/Help/module/FindSDL_image.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSDL_mixer.rst (renamed from share/cmake-3.17/Help/module/FindSDL_mixer.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSDL_net.rst (renamed from share/cmake-3.17/Help/module/FindSDL_net.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSDL_sound.rst (renamed from share/cmake-3.17/Help/module/FindSDL_sound.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSDL_ttf.rst (renamed from share/cmake-3.17/Help/module/FindSDL_ttf.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSQLite3.rst (renamed from share/cmake-3.17/Help/module/FindSQLite3.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSWIG.rst (renamed from share/cmake-3.17/Help/module/FindSWIG.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSelfPackers.rst (renamed from share/cmake-3.17/Help/module/FindSelfPackers.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSquish.rst (renamed from share/cmake-3.17/Help/module/FindSquish.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindSubversion.rst (renamed from share/cmake-3.17/Help/module/FindSubversion.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindTCL.rst (renamed from share/cmake-3.17/Help/module/FindTCL.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindTIFF.rst (renamed from share/cmake-3.17/Help/module/FindTIFF.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindTclStub.rst (renamed from share/cmake-3.17/Help/module/FindTclStub.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindTclsh.rst (renamed from share/cmake-3.17/Help/module/FindTclsh.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindThreads.rst (renamed from share/cmake-3.17/Help/module/FindThreads.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindUnixCommands.rst (renamed from share/cmake-3.17/Help/module/FindUnixCommands.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindVTK.rst (renamed from share/cmake-3.17/Help/module/FindVTK.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindVulkan.rst (renamed from share/cmake-3.17/Help/module/FindVulkan.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindWget.rst (renamed from share/cmake-3.17/Help/module/FindWget.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindWish.rst (renamed from share/cmake-3.17/Help/module/FindWish.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindX11.rst (renamed from share/cmake-3.17/Help/module/FindX11.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindXCTest.rst (renamed from share/cmake-3.17/Help/module/FindXCTest.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindXMLRPC.rst (renamed from share/cmake-3.17/Help/module/FindXMLRPC.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindXalanC.rst (renamed from share/cmake-3.17/Help/module/FindXalanC.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindXercesC.rst (renamed from share/cmake-3.17/Help/module/FindXercesC.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindZLIB.rst (renamed from share/cmake-3.17/Help/module/FindZLIB.rst)0
-rw-r--r--share/cmake-3.18/Help/module/Findosg.rst (renamed from share/cmake-3.17/Help/module/Findosg.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgAnimation.rst (renamed from share/cmake-3.17/Help/module/FindosgAnimation.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgDB.rst (renamed from share/cmake-3.17/Help/module/FindosgDB.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgFX.rst (renamed from share/cmake-3.17/Help/module/FindosgFX.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgGA.rst (renamed from share/cmake-3.17/Help/module/FindosgGA.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgIntrospection.rst (renamed from share/cmake-3.17/Help/module/FindosgIntrospection.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgManipulator.rst (renamed from share/cmake-3.17/Help/module/FindosgManipulator.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgParticle.rst (renamed from share/cmake-3.17/Help/module/FindosgParticle.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgPresentation.rst (renamed from share/cmake-3.17/Help/module/FindosgPresentation.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgProducer.rst (renamed from share/cmake-3.17/Help/module/FindosgProducer.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgQt.rst (renamed from share/cmake-3.17/Help/module/FindosgQt.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgShadow.rst (renamed from share/cmake-3.17/Help/module/FindosgShadow.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgSim.rst (renamed from share/cmake-3.17/Help/module/FindosgSim.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgTerrain.rst (renamed from share/cmake-3.17/Help/module/FindosgTerrain.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgText.rst (renamed from share/cmake-3.17/Help/module/FindosgText.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgUtil.rst (renamed from share/cmake-3.17/Help/module/FindosgUtil.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgViewer.rst (renamed from share/cmake-3.17/Help/module/FindosgViewer.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgVolume.rst (renamed from share/cmake-3.17/Help/module/FindosgVolume.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindosgWidget.rst (renamed from share/cmake-3.17/Help/module/FindosgWidget.rst)0
-rw-r--r--share/cmake-3.18/Help/module/Findosg_functions.rst (renamed from share/cmake-3.17/Help/module/Findosg_functions.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindwxWidgets.rst (renamed from share/cmake-3.17/Help/module/FindwxWidgets.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FindwxWindows.rst (renamed from share/cmake-3.17/Help/module/FindwxWindows.rst)0
-rw-r--r--share/cmake-3.18/Help/module/FortranCInterface.rst (renamed from share/cmake-3.17/Help/module/FortranCInterface.rst)0
-rw-r--r--share/cmake-3.18/Help/module/GNUInstallDirs.rst (renamed from share/cmake-3.17/Help/module/GNUInstallDirs.rst)0
-rw-r--r--share/cmake-3.18/Help/module/GenerateExportHeader.rst (renamed from share/cmake-3.17/Help/module/GenerateExportHeader.rst)0
-rw-r--r--share/cmake-3.18/Help/module/GetPrerequisites.rst (renamed from share/cmake-3.17/Help/module/GetPrerequisites.rst)0
-rw-r--r--share/cmake-3.18/Help/module/GoogleTest.rst (renamed from share/cmake-3.17/Help/module/GoogleTest.rst)0
-rw-r--r--share/cmake-3.18/Help/module/InstallRequiredSystemLibraries.rst (renamed from share/cmake-3.17/Help/module/InstallRequiredSystemLibraries.rst)0
-rw-r--r--share/cmake-3.18/Help/module/MacroAddFileDependencies.rst (renamed from share/cmake-3.17/Help/module/MacroAddFileDependencies.rst)0
-rw-r--r--share/cmake-3.18/Help/module/ProcessorCount.rst (renamed from share/cmake-3.17/Help/module/ProcessorCount.rst)0
-rw-r--r--share/cmake-3.18/Help/module/SelectLibraryConfigurations.rst (renamed from share/cmake-3.17/Help/module/SelectLibraryConfigurations.rst)0
-rw-r--r--share/cmake-3.18/Help/module/SquishTestScript.rst (renamed from share/cmake-3.17/Help/module/SquishTestScript.rst)0
-rw-r--r--share/cmake-3.18/Help/module/TestBigEndian.rst (renamed from share/cmake-3.17/Help/module/TestBigEndian.rst)0
-rw-r--r--share/cmake-3.18/Help/module/TestCXXAcceptsFlag.rst (renamed from share/cmake-3.17/Help/module/TestCXXAcceptsFlag.rst)0
-rw-r--r--share/cmake-3.18/Help/module/TestForANSIForScope.rst (renamed from share/cmake-3.17/Help/module/TestForANSIForScope.rst)0
-rw-r--r--share/cmake-3.18/Help/module/TestForANSIStreamHeaders.rst (renamed from share/cmake-3.17/Help/module/TestForANSIStreamHeaders.rst)0
-rw-r--r--share/cmake-3.18/Help/module/TestForSSTREAM.rst (renamed from share/cmake-3.17/Help/module/TestForSSTREAM.rst)0
-rw-r--r--share/cmake-3.18/Help/module/TestForSTDNamespace.rst (renamed from share/cmake-3.17/Help/module/TestForSTDNamespace.rst)0
-rw-r--r--share/cmake-3.18/Help/module/UseEcos.rst (renamed from share/cmake-3.17/Help/module/UseEcos.rst)0
-rw-r--r--share/cmake-3.18/Help/module/UseJava.rst (renamed from share/cmake-3.17/Help/module/UseJava.rst)0
-rw-r--r--share/cmake-3.18/Help/module/UseJavaClassFilelist.rst (renamed from share/cmake-3.17/Help/module/UseJavaClassFilelist.rst)0
-rw-r--r--share/cmake-3.18/Help/module/UseJavaSymlinks.rst (renamed from share/cmake-3.17/Help/module/UseJavaSymlinks.rst)0
-rw-r--r--share/cmake-3.18/Help/module/UsePkgConfig.rst (renamed from share/cmake-3.17/Help/module/UsePkgConfig.rst)0
-rw-r--r--share/cmake-3.18/Help/module/UseSWIG.rst (renamed from share/cmake-3.17/Help/module/UseSWIG.rst)0
-rw-r--r--share/cmake-3.18/Help/module/Use_wxWindows.rst (renamed from share/cmake-3.17/Help/module/Use_wxWindows.rst)0
-rw-r--r--share/cmake-3.18/Help/module/UsewxWidgets.rst (renamed from share/cmake-3.17/Help/module/UsewxWidgets.rst)0
-rw-r--r--share/cmake-3.18/Help/module/WriteBasicConfigVersionFile.rst (renamed from share/cmake-3.17/Help/module/WriteBasicConfigVersionFile.rst)0
-rw-r--r--share/cmake-3.18/Help/module/WriteCompilerDetectionHeader.rst (renamed from share/cmake-3.17/Help/module/WriteCompilerDetectionHeader.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0000.rst (renamed from share/cmake-3.17/Help/policy/CMP0000.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0001.rst (renamed from share/cmake-3.17/Help/policy/CMP0001.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0002.rst (renamed from share/cmake-3.17/Help/policy/CMP0002.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0003.rst (renamed from share/cmake-3.17/Help/policy/CMP0003.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0004.rst (renamed from share/cmake-3.17/Help/policy/CMP0004.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0005.rst (renamed from share/cmake-3.17/Help/policy/CMP0005.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0006.rst (renamed from share/cmake-3.17/Help/policy/CMP0006.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0007.rst (renamed from share/cmake-3.17/Help/policy/CMP0007.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0008.rst (renamed from share/cmake-3.17/Help/policy/CMP0008.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0009.rst (renamed from share/cmake-3.17/Help/policy/CMP0009.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0010.rst (renamed from share/cmake-3.17/Help/policy/CMP0010.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0011.rst (renamed from share/cmake-3.17/Help/policy/CMP0011.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0012.rst (renamed from share/cmake-3.17/Help/policy/CMP0012.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0013.rst (renamed from share/cmake-3.17/Help/policy/CMP0013.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0014.rst (renamed from share/cmake-3.17/Help/policy/CMP0014.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0015.rst (renamed from share/cmake-3.17/Help/policy/CMP0015.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0016.rst (renamed from share/cmake-3.17/Help/policy/CMP0016.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0017.rst (renamed from share/cmake-3.17/Help/policy/CMP0017.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0018.rst (renamed from share/cmake-3.17/Help/policy/CMP0018.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0019.rst (renamed from share/cmake-3.17/Help/policy/CMP0019.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0020.rst (renamed from share/cmake-3.17/Help/policy/CMP0020.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0021.rst (renamed from share/cmake-3.17/Help/policy/CMP0021.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0022.rst (renamed from share/cmake-3.17/Help/policy/CMP0022.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0023.rst (renamed from share/cmake-3.17/Help/policy/CMP0023.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0024.rst (renamed from share/cmake-3.17/Help/policy/CMP0024.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0025.rst (renamed from share/cmake-3.17/Help/policy/CMP0025.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0026.rst (renamed from share/cmake-3.17/Help/policy/CMP0026.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0027.rst (renamed from share/cmake-3.17/Help/policy/CMP0027.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0028.rst (renamed from share/cmake-3.17/Help/policy/CMP0028.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0029.rst (renamed from share/cmake-3.17/Help/policy/CMP0029.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0030.rst (renamed from share/cmake-3.17/Help/policy/CMP0030.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0031.rst (renamed from share/cmake-3.17/Help/policy/CMP0031.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0032.rst (renamed from share/cmake-3.17/Help/policy/CMP0032.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0033.rst (renamed from share/cmake-3.17/Help/policy/CMP0033.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0034.rst (renamed from share/cmake-3.17/Help/policy/CMP0034.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0035.rst (renamed from share/cmake-3.17/Help/policy/CMP0035.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0036.rst (renamed from share/cmake-3.17/Help/policy/CMP0036.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0037.rst (renamed from share/cmake-3.17/Help/policy/CMP0037.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0038.rst (renamed from share/cmake-3.17/Help/policy/CMP0038.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0039.rst (renamed from share/cmake-3.17/Help/policy/CMP0039.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0040.rst (renamed from share/cmake-3.17/Help/policy/CMP0040.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0041.rst (renamed from share/cmake-3.17/Help/policy/CMP0041.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0042.rst (renamed from share/cmake-3.17/Help/policy/CMP0042.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0043.rst (renamed from share/cmake-3.17/Help/policy/CMP0043.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0044.rst (renamed from share/cmake-3.17/Help/policy/CMP0044.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0045.rst (renamed from share/cmake-3.17/Help/policy/CMP0045.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0046.rst (renamed from share/cmake-3.17/Help/policy/CMP0046.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0047.rst (renamed from share/cmake-3.17/Help/policy/CMP0047.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0048.rst (renamed from share/cmake-3.17/Help/policy/CMP0048.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0049.rst (renamed from share/cmake-3.17/Help/policy/CMP0049.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0050.rst (renamed from share/cmake-3.17/Help/policy/CMP0050.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0051.rst (renamed from share/cmake-3.17/Help/policy/CMP0051.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0052.rst (renamed from share/cmake-3.17/Help/policy/CMP0052.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0053.rst (renamed from share/cmake-3.17/Help/policy/CMP0053.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0054.rst (renamed from share/cmake-3.17/Help/policy/CMP0054.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0055.rst (renamed from share/cmake-3.17/Help/policy/CMP0055.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0056.rst (renamed from share/cmake-3.17/Help/policy/CMP0056.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0057.rst (renamed from share/cmake-3.17/Help/policy/CMP0057.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0058.rst (renamed from share/cmake-3.17/Help/policy/CMP0058.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0059.rst (renamed from share/cmake-3.17/Help/policy/CMP0059.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0060.rst (renamed from share/cmake-3.17/Help/policy/CMP0060.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0061.rst (renamed from share/cmake-3.17/Help/policy/CMP0061.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0062.rst (renamed from share/cmake-3.17/Help/policy/CMP0062.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0063.rst (renamed from share/cmake-3.17/Help/policy/CMP0063.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0064.rst (renamed from share/cmake-3.17/Help/policy/CMP0064.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0065.rst (renamed from share/cmake-3.17/Help/policy/CMP0065.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0066.rst (renamed from share/cmake-3.17/Help/policy/CMP0066.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0067.rst (renamed from share/cmake-3.17/Help/policy/CMP0067.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0068.rst (renamed from share/cmake-3.17/Help/policy/CMP0068.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0069.rst (renamed from share/cmake-3.17/Help/policy/CMP0069.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0070.rst (renamed from share/cmake-3.17/Help/policy/CMP0070.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0071.rst (renamed from share/cmake-3.17/Help/policy/CMP0071.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0072.rst (renamed from share/cmake-3.17/Help/policy/CMP0072.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0073.rst (renamed from share/cmake-3.17/Help/policy/CMP0073.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0074.rst (renamed from share/cmake-3.17/Help/policy/CMP0074.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0075.rst (renamed from share/cmake-3.17/Help/policy/CMP0075.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0076.rst (renamed from share/cmake-3.17/Help/policy/CMP0076.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0077.rst (renamed from share/cmake-3.17/Help/policy/CMP0077.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0078.rst (renamed from share/cmake-3.17/Help/policy/CMP0078.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0079.rst (renamed from share/cmake-3.17/Help/policy/CMP0079.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0080.rst (renamed from share/cmake-3.17/Help/policy/CMP0080.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0081.rst (renamed from share/cmake-3.17/Help/policy/CMP0081.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0082.rst (renamed from share/cmake-3.17/Help/policy/CMP0082.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0083.rst (renamed from share/cmake-3.17/Help/policy/CMP0083.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0084.rst (renamed from share/cmake-3.17/Help/policy/CMP0084.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0085.rst (renamed from share/cmake-3.17/Help/policy/CMP0085.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0086.rst (renamed from share/cmake-3.17/Help/policy/CMP0086.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0087.rst (renamed from share/cmake-3.17/Help/policy/CMP0087.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0088.rst (renamed from share/cmake-3.17/Help/policy/CMP0088.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0089.rst (renamed from share/cmake-3.17/Help/policy/CMP0089.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0090.rst (renamed from share/cmake-3.17/Help/policy/CMP0090.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0091.rst (renamed from share/cmake-3.17/Help/policy/CMP0091.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0092.rst (renamed from share/cmake-3.17/Help/policy/CMP0092.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0093.rst (renamed from share/cmake-3.17/Help/policy/CMP0093.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0094.rst (renamed from share/cmake-3.17/Help/policy/CMP0094.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0095.rst (renamed from share/cmake-3.17/Help/policy/CMP0095.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0096.rst (renamed from share/cmake-3.17/Help/policy/CMP0096.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0097.rst (renamed from share/cmake-3.17/Help/policy/CMP0097.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0098.rst (renamed from share/cmake-3.17/Help/policy/CMP0098.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0099.rst (renamed from share/cmake-3.17/Help/policy/CMP0099.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0100.rst (renamed from share/cmake-3.17/Help/policy/CMP0100.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0101.rst (renamed from share/cmake-3.17/Help/policy/CMP0101.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0102.rst (renamed from share/cmake-3.17/Help/policy/CMP0102.rst)0
-rw-r--r--share/cmake-3.18/Help/policy/CMP0103.rst22
-rw-r--r--share/cmake-3.18/Help/policy/CMP0104.rst56
-rw-r--r--share/cmake-3.18/Help/policy/CMP0105.rst19
-rw-r--r--share/cmake-3.18/Help/policy/CMP0106.rst19
-rw-r--r--share/cmake-3.18/Help/policy/CMP0107.rst19
-rw-r--r--share/cmake-3.18/Help/policy/CMP0108.rst19
-rw-r--r--share/cmake-3.18/Help/policy/DEPRECATED.txt (renamed from share/cmake-3.17/Help/policy/DEPRECATED.txt)0
-rw-r--r--share/cmake-3.18/Help/policy/DISALLOWED_COMMAND.txt (renamed from share/cmake-3.17/Help/policy/DISALLOWED_COMMAND.txt)0
-rw-r--r--share/cmake-3.18/Help/prop_cache/ADVANCED.rst (renamed from share/cmake-3.17/Help/prop_cache/ADVANCED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_cache/HELPSTRING.rst (renamed from share/cmake-3.17/Help/prop_cache/HELPSTRING.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_cache/MODIFIED.rst (renamed from share/cmake-3.17/Help/prop_cache/MODIFIED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_cache/STRINGS.rst (renamed from share/cmake-3.17/Help/prop_cache/STRINGS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_cache/TYPE.rst (renamed from share/cmake-3.17/Help/prop_cache/TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_cache/VALUE.rst (renamed from share/cmake-3.17/Help/prop_cache/VALUE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst (renamed from share/cmake-3.17/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst (renamed from share/cmake-3.17/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/BINARY_DIR.rst (renamed from share/cmake-3.17/Help/prop_dir/BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/BUILDSYSTEM_TARGETS.rst (renamed from share/cmake-3.17/Help/prop_dir/BUILDSYSTEM_TARGETS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/CACHE_VARIABLES.rst (renamed from share/cmake-3.17/Help/prop_dir/CACHE_VARIABLES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/CLEAN_NO_CUSTOM.rst (renamed from share/cmake-3.17/Help/prop_dir/CLEAN_NO_CUSTOM.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst (renamed from share/cmake-3.17/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS.rst (renamed from share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/COMPILE_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_dir/COMPILE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/DEFINITIONS.rst (renamed from share/cmake-3.17/Help/prop_dir/DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/EXCLUDE_FROM_ALL.rst (renamed from share/cmake-3.17/Help/prop_dir/EXCLUDE_FROM_ALL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst (renamed from share/cmake-3.17/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_dir/INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst (renamed from share/cmake-3.17/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst (renamed from share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/LABELS.rst (renamed from share/cmake-3.17/Help/prop_dir/LABELS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/LINK_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_dir/LINK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/LINK_OPTIONS.rst17
-rw-r--r--share/cmake-3.18/Help/prop_dir/LISTFILE_STACK.rst (renamed from share/cmake-3.17/Help/prop_dir/LISTFILE_STACK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/MACROS.rst (renamed from share/cmake-3.17/Help/prop_dir/MACROS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/PARENT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_dir/PARENT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_COMPILE.rst (renamed from share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_COMPILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst (renamed from share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_LINK.rst (renamed from share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_LINK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/SOURCE_DIR.rst (renamed from share/cmake-3.17/Help/prop_dir/SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/SUBDIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_dir/SUBDIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/TESTS.rst (renamed from share/cmake-3.17/Help/prop_dir/TESTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILE.rst (renamed from share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILES.rst (renamed from share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/VARIABLES.rst (renamed from share/cmake-3.17/Help/prop_dir/VARIABLES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst (renamed from share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst (renamed from share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_dir/VS_STARTUP_PROJECT.rst (renamed from share/cmake-3.17/Help/prop_dir/VS_STARTUP_PROJECT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst (renamed from share/cmake-3.17/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst (renamed from share/cmake-3.17/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst (renamed from share/cmake-3.17/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst (renamed from share/cmake-3.17/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst (renamed from share/cmake-3.17/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst (renamed from share/cmake-3.17/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst (renamed from share/cmake-3.17/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst (renamed from share/cmake-3.17/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst (renamed from share/cmake-3.17/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/CMAKE_ROLE.rst (renamed from share/cmake-3.17/Help/prop_gbl/CMAKE_ROLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst (renamed from share/cmake-3.17/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/DISABLED_FEATURES.rst (renamed from share/cmake-3.17/Help/prop_gbl/DISABLED_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst (renamed from share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst (renamed from share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/ENABLED_FEATURES.rst (renamed from share/cmake-3.17/Help/prop_gbl/ENABLED_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/ENABLED_LANGUAGES.rst (renamed from share/cmake-3.17/Help/prop_gbl/ENABLED_LANGUAGES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst (renamed from share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst (renamed from share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst (renamed from share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst (renamed from share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst (renamed from share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst (renamed from share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/IN_TRY_COMPILE.rst (renamed from share/cmake-3.17/Help/prop_gbl/IN_TRY_COMPILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/JOB_POOLS.rst (renamed from share/cmake-3.17/Help/prop_gbl/JOB_POOLS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/PACKAGES_FOUND.rst (renamed from share/cmake-3.17/Help/prop_gbl/PACKAGES_FOUND.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/PACKAGES_NOT_FOUND.rst (renamed from share/cmake-3.17/Help/prop_gbl/PACKAGES_NOT_FOUND.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst (renamed from share/cmake-3.17/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst (renamed from share/cmake-3.17/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst (renamed from share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst (renamed from share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_LINK.rst (renamed from share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_LINK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/RULE_MESSAGES.rst (renamed from share/cmake-3.17/Help/prop_gbl/RULE_MESSAGES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst (renamed from share/cmake-3.17/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/TARGET_MESSAGES.rst (renamed from share/cmake-3.17/Help/prop_gbl/TARGET_MESSAGES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst (renamed from share/cmake-3.17/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/USE_FOLDERS.rst (renamed from share/cmake-3.17/Help/prop_gbl/USE_FOLDERS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst (renamed from share/cmake-3.17/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst (renamed from share/cmake-3.17/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst (renamed from share/cmake-3.17/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_inst/CPACK_PERMANENT.rst (renamed from share/cmake-3.17/Help/prop_inst/CPACK_PERMANENT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst (renamed from share/cmake-3.17/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst (renamed from share/cmake-3.17/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_inst/CPACK_WIX_ACL.rst (renamed from share/cmake-3.17/Help/prop_inst/CPACK_WIX_ACL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/ABSTRACT.rst (renamed from share/cmake-3.17/Help/prop_sf/ABSTRACT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/AUTORCC_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_sf/AUTORCC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/AUTOUIC_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_sf/AUTOUIC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS.rst (renamed from share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/COMPILE_FLAGS.rst (renamed from share/cmake-3.17/Help/prop_sf/COMPILE_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/COMPILE_OPTIONS.rst32
-rw-r--r--share/cmake-3.18/Help/prop_sf/EXTERNAL_OBJECT.rst (renamed from share/cmake-3.17/Help/prop_sf/EXTERNAL_OBJECT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/Fortran_FORMAT.rst12
-rw-r--r--share/cmake-3.18/Help/prop_sf/Fortran_PREPROCESS.rst17
-rw-r--r--share/cmake-3.18/Help/prop_sf/GENERATED.rst (renamed from share/cmake-3.17/Help/prop_sf/GENERATED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/HEADER_FILE_ONLY.rst (renamed from share/cmake-3.17/Help/prop_sf/HEADER_FILE_ONLY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_sf/INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/KEEP_EXTENSION.rst (renamed from share/cmake-3.17/Help/prop_sf/KEEP_EXTENSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/LABELS.rst (renamed from share/cmake-3.17/Help/prop_sf/LABELS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/LANGUAGE.rst (renamed from share/cmake-3.17/Help/prop_sf/LANGUAGE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/LOCATION.rst (renamed from share/cmake-3.17/Help/prop_sf/LOCATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst (renamed from share/cmake-3.17/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/OBJECT_DEPENDS.rst (renamed from share/cmake-3.17/Help/prop_sf/OBJECT_DEPENDS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/OBJECT_OUTPUTS.rst12
-rw-r--r--share/cmake-3.18/Help/prop_sf/SKIP_AUTOGEN.rst (renamed from share/cmake-3.17/Help/prop_sf/SKIP_AUTOGEN.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/SKIP_AUTOMOC.rst (renamed from share/cmake-3.17/Help/prop_sf/SKIP_AUTOMOC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/SKIP_AUTORCC.rst (renamed from share/cmake-3.17/Help/prop_sf/SKIP_AUTORCC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/SKIP_AUTOUIC.rst (renamed from share/cmake-3.17/Help/prop_sf/SKIP_AUTOUIC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst13
-rw-r--r--share/cmake-3.18/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst (renamed from share/cmake-3.17/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/SYMBOLIC.rst (renamed from share/cmake-3.17/Help/prop_sf/SYMBOLIC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst (renamed from share/cmake-3.17/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst (renamed from share/cmake-3.17/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/UNITY_GROUP.rst5
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_CSHARP_tagname.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_CSHARP_tagname.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_RESOURCE_GENERATOR.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_RESOURCE_GENERATOR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SETTINGS.rst18
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_FLAGS.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_MODEL.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_MODEL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_TYPE.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_TOOL_OVERRIDE.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_TOOL_OVERRIDE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/VS_XAML_TYPE.rst (renamed from share/cmake-3.17/Help/prop_sf/VS_XAML_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/WRAP_EXCLUDE.rst (renamed from share/cmake-3.17/Help/prop_sf/WRAP_EXCLUDE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst (renamed from share/cmake-3.17/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst (renamed from share/cmake-3.17/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst (renamed from share/cmake-3.17/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/ATTACHED_FILES.rst (renamed from share/cmake-3.17/Help/prop_test/ATTACHED_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst (renamed from share/cmake-3.17/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/COST.rst (renamed from share/cmake-3.17/Help/prop_test/COST.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/DEPENDS.rst22
-rw-r--r--share/cmake-3.18/Help/prop_test/DISABLED.rst (renamed from share/cmake-3.17/Help/prop_test/DISABLED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/ENVIRONMENT.rst (renamed from share/cmake-3.17/Help/prop_test/ENVIRONMENT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst (renamed from share/cmake-3.17/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/FIXTURES_CLEANUP.rst (renamed from share/cmake-3.17/Help/prop_test/FIXTURES_CLEANUP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/FIXTURES_REQUIRED.rst (renamed from share/cmake-3.17/Help/prop_test/FIXTURES_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/FIXTURES_SETUP.rst (renamed from share/cmake-3.17/Help/prop_test/FIXTURES_SETUP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/LABELS.rst (renamed from share/cmake-3.17/Help/prop_test/LABELS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/MEASUREMENT.rst (renamed from share/cmake-3.17/Help/prop_test/MEASUREMENT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/PASS_REGULAR_EXPRESSION.rst (renamed from share/cmake-3.17/Help/prop_test/PASS_REGULAR_EXPRESSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/PROCESSORS.rst (renamed from share/cmake-3.17/Help/prop_test/PROCESSORS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/PROCESSOR_AFFINITY.rst (renamed from share/cmake-3.17/Help/prop_test/PROCESSOR_AFFINITY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/REQUIRED_FILES.rst38
-rw-r--r--share/cmake-3.18/Help/prop_test/RESOURCE_GROUPS.rst (renamed from share/cmake-3.17/Help/prop_test/RESOURCE_GROUPS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/RESOURCE_LOCK.rst (renamed from share/cmake-3.17/Help/prop_test/RESOURCE_LOCK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/RUN_SERIAL.rst (renamed from share/cmake-3.17/Help/prop_test/RUN_SERIAL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst (renamed from share/cmake-3.17/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/SKIP_RETURN_CODE.rst (renamed from share/cmake-3.17/Help/prop_test/SKIP_RETURN_CODE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/TIMEOUT.rst (renamed from share/cmake-3.17/Help/prop_test/TIMEOUT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/TIMEOUT_AFTER_MATCH.rst (renamed from share/cmake-3.17/Help/prop_test/TIMEOUT_AFTER_MATCH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/WILL_FAIL.rst (renamed from share/cmake-3.17/Help/prop_test/WILL_FAIL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_test/WORKING_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_test/WORKING_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst (renamed from share/cmake-3.17/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst (renamed from share/cmake-3.17/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ALIASED_TARGET.rst (renamed from share/cmake-3.17/Help/prop_tgt/ALIASED_TARGET.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ALIAS_GLOBAL.rst17
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_API.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_API.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_API_MIN.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_API_MIN.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_ARCH.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_ARCH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_GUI.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_GUI.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_PROCESS_MAX.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_PROCESS_MAX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ANDROID_STL_TYPE.rst (renamed from share/cmake-3.17/Help/prop_tgt/ANDROID_STL_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOGEN_PARALLEL.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOMOC.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTORCC.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTORCC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTORCC_EXECUTABLE.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTORCC_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTORCC_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOUIC.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOUIC_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst (renamed from share/cmake-3.17/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/BINARY_DIR.rst (renamed from share/cmake-3.17/Help/prop_tgt/BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/BUILD_RPATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/BUILD_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst (renamed from share/cmake-3.17/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst (renamed from share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/BUNDLE.rst (renamed from share/cmake-3.17/Help/prop_tgt/BUNDLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/BUNDLE_EXTENSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/BUNDLE_EXTENSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_FEATURES.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_FLAGS.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NOTE.txt (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NOTE.txt)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CONFIG_POSTFIX.rst13
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst (renamed from share/cmake-3.17/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_ARCHITECTURES.rst40
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/CUDA_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_PTX_COMPILATION.rst (renamed from share/cmake-3.17/Help/prop_tgt/CUDA_PTX_COMPILATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst (renamed from share/cmake-3.17/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt (renamed from share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst21
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst (renamed from share/cmake-3.17/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD.rst32
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CXX_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/CXX_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CXX_STANDARD.rst (renamed from share/cmake-3.17/Help/prop_tgt/CXX_STANDARD.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/C_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/C_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/C_STANDARD.rst34
-rw-r--r--share/cmake-3.18/Help/prop_tgt/C_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/prop_tgt/C_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/DEBUG_POSTFIX.rst (renamed from share/cmake-3.17/Help/prop_tgt/DEBUG_POSTFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/DEFINE_SYMBOL.rst (renamed from share/cmake-3.17/Help/prop_tgt/DEFINE_SYMBOL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst (renamed from share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/DEPRECATION.rst (renamed from share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.17/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst (renamed from share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/ENABLE_EXPORTS.rst (renamed from share/cmake-3.17/Help/prop_tgt/ENABLE_EXPORTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_ALL.rst21
-rw-r--r--share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst (renamed from share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/EXPORT_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/EXPORT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/EXPORT_PROPERTIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/EXPORT_PROPERTIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/EchoString.rst (renamed from share/cmake-3.17/Help/prop_tgt/EchoString.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/FOLDER.rst (renamed from share/cmake-3.17/Help/prop_tgt/FOLDER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/FRAMEWORK.rst (renamed from share/cmake-3.17/Help/prop_tgt/FRAMEWORK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst26
-rw-r--r--share/cmake-3.18/Help/prop_tgt/FRAMEWORK_VERSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/FRAMEWORK_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/Fortran_FORMAT.rst (renamed from share/cmake-3.17/Help/prop_tgt/Fortran_FORMAT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/Fortran_PREPROCESS.rst23
-rw-r--r--share/cmake-3.18/Help/prop_tgt/GENERATOR_FILE_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/GENERATOR_FILE_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/GHS_INTEGRITY_APP.rst (renamed from share/cmake-3.17/Help/prop_tgt/GHS_INTEGRITY_APP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst (renamed from share/cmake-3.17/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/GNUtoMS.rst (renamed from share/cmake-3.17/Help/prop_tgt/GNUtoMS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/HAS_CXX.rst (renamed from share/cmake-3.17/Help/prop_tgt/HAS_CXX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_GLOBAL.rst30
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORT_PREFIX.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORT_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IMPORT_SUFFIX.rst (renamed from share/cmake-3.17/Help/prop_tgt/IMPORT_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INSTALL_NAME_DIR.rst (renamed from share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH.rst16
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_SOURCES.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_SOURCES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/IOS_INSTALL_COMBINED.rst (renamed from share/cmake-3.17/Help/prop_tgt/IOS_INSTALL_COMBINED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/JOB_POOL_COMPILE.rst (renamed from share/cmake-3.17/Help/prop_tgt/JOB_POOL_COMPILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/JOB_POOL_LINK.rst (renamed from share/cmake-3.17/Help/prop_tgt/JOB_POOL_LINK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst (renamed from share/cmake-3.17/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LABELS.rst (renamed from share/cmake-3.17/Help/prop_tgt/LABELS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LANG_CLANG_TIDY.rst (renamed from share/cmake-3.17/Help/prop_tgt/LANG_CLANG_TIDY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst (renamed from share/cmake-3.17/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LANG_CPPCHECK.rst (renamed from share/cmake-3.17/Help/prop_tgt/LANG_CPPCHECK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LANG_CPPLINT.rst (renamed from share/cmake-3.17/Help/prop_tgt/LANG_CPPLINT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst (renamed from share/cmake-3.17/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst (renamed from share/cmake-3.17/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINKER_LANGUAGE.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINKER_LANGUAGE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_FLAGS.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_FLAGS_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt (renamed from share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_OPTIONS.rst28
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LINK_WHAT_YOU_USE.rst (renamed from share/cmake-3.17/Help/prop_tgt/LINK_WHAT_YOU_USE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LOCATION.rst (renamed from share/cmake-3.17/Help/prop_tgt/LOCATION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/LOCATION_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/LOCATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst25
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MACHO_CURRENT_VERSION.rst25
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE.rst (renamed from share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst (renamed from share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst (renamed from share/cmake-3.17/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MACOSX_RPATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/MACOSX_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst (renamed from share/cmake-3.17/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt (renamed from share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst (renamed from share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/NO_SONAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/NO_SONAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst (renamed from share/cmake-3.17/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OBJCXX_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/OBJCXX_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD.rst (renamed from share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OBJC_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/OBJC_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD.rst (renamed from share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES.rst (renamed from share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PCH_WARN_INVALID.rst10
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PDB_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/PDB_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PDB_NAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/PDB_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PDB_NOTE.txt (renamed from share/cmake-3.17/Help/prop_tgt/PDB_NOTE.txt)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst (renamed from share/cmake-3.17/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/POST_INSTALL_SCRIPT.rst (renamed from share/cmake-3.17/Help/prop_tgt/POST_INSTALL_SCRIPT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst (renamed from share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PREFIX.rst (renamed from share/cmake-3.17/Help/prop_tgt/PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst (renamed from share/cmake-3.17/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PRIVATE_HEADER.rst (renamed from share/cmake-3.17/Help/prop_tgt/PRIVATE_HEADER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PROJECT_LABEL.rst (renamed from share/cmake-3.17/Help/prop_tgt/PROJECT_LABEL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/PUBLIC_HEADER.rst (renamed from share/cmake-3.17/Help/prop_tgt/PUBLIC_HEADER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/RESOURCE.rst (renamed from share/cmake-3.17/Help/prop_tgt/RESOURCE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst (renamed from share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst (renamed from share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_LINK.rst (renamed from share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_LINK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/SKIP_BUILD_RPATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/SKIP_BUILD_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/SOURCES.rst (renamed from share/cmake-3.17/Help/prop_tgt/SOURCES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/SOURCE_DIR.rst (renamed from share/cmake-3.17/Help/prop_tgt/SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/SOVERSION.rst37
-rw-r--r--share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst (renamed from share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst (renamed from share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/SUFFIX.rst (renamed from share/cmake-3.17/Help/prop_tgt/SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst (renamed from share/cmake-3.17/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/Swift_MODULE_NAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/Swift_MODULE_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/TYPE.rst (renamed from share/cmake-3.17/Help/prop_tgt/TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/UNITY_BUILD.rst80
-rw-r--r--share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst (renamed from share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst (renamed from share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst (renamed from share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_MODE.rst58
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VERSION.rst39
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst (renamed from share/cmake-3.17/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_DPI_AWARE.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_DPI_AWARE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_variable.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_variable.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_KEYWORD.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_KEYWORD.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_PLATFORM_TOOLSET.rst10
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_PROJECT_IMPORT.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_PROJECT_IMPORT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_SCC_AUXPATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_SCC_AUXPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_SCC_LOCALPATH.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_SCC_LOCALPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_SCC_PROJECTNAME.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_SCC_PROJECTNAME.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_SCC_PROVIDER.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_SCC_PROVIDER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_SDK_REFERENCES.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_SDK_REFERENCES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_SOLUTION_DEPLOY.rst27
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_SOURCE_SETTINGS_tool.rst19
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_USER_PROPS.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_USER_PROPS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_WINRT_COMPONENT.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_WINRT_COMPONENT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/VS_WINRT_REFERENCES.rst (renamed from share/cmake-3.17/Help/prop_tgt/VS_WINRT_REFERENCES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/WIN32_EXECUTABLE.rst (renamed from share/cmake-3.17/Help/prop_tgt/WIN32_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst (renamed from share/cmake-3.17/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst41
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst13
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XCTEST.rst (renamed from share/cmake-3.17/Help/prop_tgt/XCTEST.rst)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt (renamed from share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt)0
-rw-r--r--share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_NAME.txt (renamed from share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_NAME.txt)0
-rw-r--r--share/cmake-3.18/Help/release/3.0.rst (renamed from share/cmake-3.17/Help/release/3.0.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.1.rst (renamed from share/cmake-3.17/Help/release/3.1.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.10.rst282
-rw-r--r--share/cmake-3.18/Help/release/3.11.rst (renamed from share/cmake-3.17/Help/release/3.11.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.12.rst (renamed from share/cmake-3.17/Help/release/3.12.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.13.rst (renamed from share/cmake-3.17/Help/release/3.13.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.14.rst (renamed from share/cmake-3.17/Help/release/3.14.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.15.rst396
-rw-r--r--share/cmake-3.18/Help/release/3.16.rst318
-rw-r--r--share/cmake-3.18/Help/release/3.17.rst348
-rw-r--r--share/cmake-3.18/Help/release/3.18.rst341
-rw-r--r--share/cmake-3.18/Help/release/3.2.rst (renamed from share/cmake-3.17/Help/release/3.2.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.3.rst (renamed from share/cmake-3.17/Help/release/3.3.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.4.rst (renamed from share/cmake-3.17/Help/release/3.4.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.5.rst (renamed from share/cmake-3.17/Help/release/3.5.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.6.rst (renamed from share/cmake-3.17/Help/release/3.6.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.7.rst (renamed from share/cmake-3.17/Help/release/3.7.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.8.rst (renamed from share/cmake-3.17/Help/release/3.8.rst)0
-rw-r--r--share/cmake-3.18/Help/release/3.9.rst (renamed from share/cmake-3.17/Help/release/3.9.rst)0
-rw-r--r--share/cmake-3.18/Help/release/dev.txt (renamed from share/cmake-3.17/Help/release/dev.txt)0
-rw-r--r--share/cmake-3.18/Help/release/index.rst34
-rw-r--r--share/cmake-3.18/Help/variable/ANDROID.rst (renamed from share/cmake-3.17/Help/variable/ANDROID.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/APPLE.rst (renamed from share/cmake-3.17/Help/variable/APPLE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/BORLAND.rst (renamed from share/cmake-3.17/Help/variable/BORLAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/BUILD_SHARED_LIBS.rst (renamed from share/cmake-3.17/Help/variable/BUILD_SHARED_LIBS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CACHE.rst (renamed from share/cmake-3.17/Help/variable/CACHE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_API.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_API.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_API_MIN.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_API_MIN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_MODE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_MODE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_NEON.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_NEON.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_GUI.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_GUI.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ANDROID_STL_TYPE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ANDROID_STL_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_APPBUNDLE_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_APPBUNDLE_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ARGC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ARGC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ARGV0.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ARGV0.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOMOC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTORCC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTORCC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTORCC_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTORCC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOUIC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOUIC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_BINARY_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_BUILD_TOOL.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_BUILD_TOOL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_BUILD_TYPE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_BUILD_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CACHEFILE_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CACHEFILE_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CFG_INTDIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CL_64.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CL_64.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_COLOR_MAKEFILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_COLOR_MAKEFILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_COMPILER_2005.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_COMPILER_2005.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CONFIGURATION_TYPES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CONFIGURATION_TYPES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CONFIG_POSTFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CONFIG_POSTFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CPACK_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CPACK_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CROSS_CONFIGS.rst15
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CTEST_ARGUMENTS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CTEST_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CTEST_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_ARCHITECTURES.rst17
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CUDA_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst25
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION.rst10
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst41
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst9
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst10
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_FILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_LINE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_LINE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CXX_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CXX_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_C_COMPILE_FEATURES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_C_COMPILE_FEATURES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_C_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_C_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_C_STANDARD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_C_STANDARD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DEBUG_POSTFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DEBUG_POSTFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst12
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DEFAULT_CONFIGS.rst19
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DIRECTORY_LABELS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DIRECTORY_LABELS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DL_LIBS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DL_LIBS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EDIT_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EDIT_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ENABLE_EXPORTS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ENABLE_EXPORTS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ERROR_DEPRECATED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ERROR_DEPRECATED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXTRA_GENERATOR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXTRA_GENERATOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_APPBUNDLE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_APPBUNDLE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_DEBUG_MODE.rst23
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_FRAMEWORK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_FRAMEWORK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FOLDER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FOLDER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst8
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Fortran_FORMAT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_Fortran_FORMAT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Fortran_PREPROCESS.rst8
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GENERATOR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GENERATOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GENERATOR_INSTANCE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GENERATOR_INSTANCE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GENERATOR_PLATFORM.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GENERATOR_PLATFORM.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GENERATOR_TOOLSET.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_GNUtoMS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_GNUtoMS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOME_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOME_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOST_APPLE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOST_APPLE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOST_SOLARIS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOST_SOLARIS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOST_UNIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOST_UNIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_HOST_WIN32.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_HOST_WIN32.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_IGNORE_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_IGNORE_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INCLUDE_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INCLUDE_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_MESSAGE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INSTALL_MESSAGE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_NAME_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INSTALL_NAME_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst13
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_JOB_POOLS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_JOB_POOLS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_COMPILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_COMPILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_LINK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_LINK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_CLANG_TIDY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_CLANG_TIDY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ABI.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ABI.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_AR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_AR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ID.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ID.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_CPPCHECK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_CPPCHECK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_CPPLINT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_CPPLINT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_INIT.rst15
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_PLATFORM_ID.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_PLATFORM_ID.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_ID.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_ID.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MACOSX_BUNDLE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MACOSX_BUNDLE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MACOSX_RPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MACOSX_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MAJOR_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MAJOR_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MAKE_PROGRAM.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MAKE_PROGRAM.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MATCH_COUNT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MATCH_COUNT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MATCH_n.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MATCH_n.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MESSAGE_INDENT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MESSAGE_INDENT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MFC_FLAG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MFC_FLAG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MINOR_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MINOR_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MODULE_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MODULE_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_NETRC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_NETRC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_NETRC_FILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_NETRC_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OBJC_EXTENSIONS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OBJC_EXTENSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OBJECT_PATH_MAX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OBJECT_PATH_MAX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OSX_ARCHITECTURES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OSX_ARCHITECTURES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OSX_SYSROOT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_OSX_SYSROOT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_OSX_VARIABLE.txt (renamed from share/cmake-3.17/Help/variable/CMAKE_OSX_VARIABLE.txt)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PARENT_LIST_FILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PARENT_LIST_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PATCH_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PATCH_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PCH_WARN_INVALID.rst5
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PREFIX_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PREFIX_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROGRAM_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROGRAM_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_NAME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_RANLIB.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_RANLIB.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_ROOT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_ROOT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_RULE_MESSAGES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_RULE_MESSAGES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SIZEOF_VOID_P.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SIZEOF_VOID_P.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SKIP_RPATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SKIP_RPATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SOURCE_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_STAGING_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_STAGING_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSROOT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSROOT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSROOT_COMPILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSROOT_COMPILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSROOT_LINK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSROOT_LINK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_NAME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst53
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_SYSTEM_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_SYSTEM_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_Swift_NUM_THREADS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_Swift_NUM_THREADS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_TOOLCHAIN_FILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_TOOLCHAIN_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_TWEAK_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_TWEAK_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_GLOBALS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_GLOBALS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_WARN_DEPRECATED.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_WARN_DEPRECATED.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_WIN32_EXECUTABLE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_WIN32_EXECUTABLE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst12
-rw-r--r--share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst (renamed from share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst (renamed from share/cmake-3.17/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst (renamed from share/cmake-3.17/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst (renamed from share/cmake-3.17/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst (renamed from share/cmake-3.17/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CPACK_SET_DESTDIR.rst (renamed from share/cmake-3.17/Help/variable/CPACK_SET_DESTDIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst (renamed from share/cmake-3.17/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_BINARY_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CTEST_BINARY_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_BUILD_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_BUILD_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_BUILD_NAME.rst (renamed from share/cmake-3.17/Help/variable/CTEST_BUILD_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_BZR_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_BZR_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CHANGE_ID.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CHANGE_ID.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CHECKOUT_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CHECKOUT_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CONFIGURATION_TYPE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CONFIGURE_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CONFIGURE_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_COVERAGE_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_COVERAGE_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CURL_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CURL_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_TEST.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_TEST.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_TEST.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_TEST.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CUSTOM_XXX.txt (renamed from share/cmake-3.17/Help/variable/CTEST_CUSTOM_XXX.txt)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CVS_CHECKOUT.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CVS_CHECKOUT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CVS_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CVS_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_DROP_LOCATION.rst (renamed from share/cmake-3.17/Help/variable/CTEST_DROP_LOCATION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_DROP_METHOD.rst (renamed from share/cmake-3.17/Help/variable/CTEST_DROP_METHOD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_DROP_SITE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_DROP_SITE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_DROP_SITE_CDASH.rst (renamed from share/cmake-3.17/Help/variable/CTEST_DROP_SITE_CDASH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_DROP_SITE_PASSWORD.rst (renamed from share/cmake-3.17/Help/variable/CTEST_DROP_SITE_PASSWORD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_DROP_SITE_USER.rst (renamed from share/cmake-3.17/Help/variable/CTEST_DROP_SITE_USER.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst (renamed from share/cmake-3.17/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_GIT_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_GIT_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst (renamed from share/cmake-3.17/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst (renamed from share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_HG_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_HG_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_TYPE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_NIGHTLY_START_TIME.rst9
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_P4_CLIENT.rst (renamed from share/cmake-3.17/Help/variable/CTEST_P4_CLIENT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_P4_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_P4_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_P4_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_P4_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_RESOURCE_SPEC_FILE.rst10
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst (renamed from share/cmake-3.17/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_SCP_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_SCP_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_SITE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_SITE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_SOURCE_DIRECTORY.rst (renamed from share/cmake-3.17/Help/variable/CTEST_SOURCE_DIRECTORY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_SUBMIT_URL.rst (renamed from share/cmake-3.17/Help/variable/CTEST_SUBMIT_URL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_SVN_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_SVN_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_SVN_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_SVN_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_TEST_LOAD.rst (renamed from share/cmake-3.17/Help/variable/CTEST_TEST_LOAD.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_TEST_TIMEOUT.rst (renamed from share/cmake-3.17/Help/variable/CTEST_TEST_TIMEOUT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_TRIGGER_SITE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_TRIGGER_SITE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_UPDATE_COMMAND.rst (renamed from share/cmake-3.17/Help/variable/CTEST_UPDATE_COMMAND.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_UPDATE_OPTIONS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_UPDATE_OPTIONS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst (renamed from share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst (renamed from share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CTEST_USE_LAUNCHERS.rst (renamed from share/cmake-3.17/Help/variable/CTEST_USE_LAUNCHERS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/CYGWIN.rst (renamed from share/cmake-3.17/Help/variable/CYGWIN.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/ENV.rst (renamed from share/cmake-3.17/Help/variable/ENV.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/EXECUTABLE_OUTPUT_PATH.rst (renamed from share/cmake-3.17/Help/variable/EXECUTABLE_OUTPUT_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/GHS-MULTI.rst (renamed from share/cmake-3.17/Help/variable/GHS-MULTI.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/IOS.rst (renamed from share/cmake-3.17/Help/variable/IOS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/LIBRARY_OUTPUT_PATH.rst (renamed from share/cmake-3.17/Help/variable/LIBRARY_OUTPUT_PATH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MINGW.rst (renamed from share/cmake-3.17/Help/variable/MINGW.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC.rst (renamed from share/cmake-3.17/Help/variable/MSVC.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC10.rst (renamed from share/cmake-3.17/Help/variable/MSVC10.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC11.rst (renamed from share/cmake-3.17/Help/variable/MSVC11.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC12.rst (renamed from share/cmake-3.17/Help/variable/MSVC12.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC14.rst (renamed from share/cmake-3.17/Help/variable/MSVC14.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC60.rst (renamed from share/cmake-3.17/Help/variable/MSVC60.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC70.rst (renamed from share/cmake-3.17/Help/variable/MSVC70.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC71.rst (renamed from share/cmake-3.17/Help/variable/MSVC71.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC80.rst (renamed from share/cmake-3.17/Help/variable/MSVC80.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC90.rst (renamed from share/cmake-3.17/Help/variable/MSVC90.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC_IDE.rst (renamed from share/cmake-3.17/Help/variable/MSVC_IDE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC_TOOLSET_VERSION.rst (renamed from share/cmake-3.17/Help/variable/MSVC_TOOLSET_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSVC_VERSION.rst (renamed from share/cmake-3.17/Help/variable/MSVC_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/MSYS.rst (renamed from share/cmake-3.17/Help/variable/MSYS.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_BINARY_DIR.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_DESCRIPTION.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_DESCRIPTION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_SOURCE_DIR.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_SOURCE_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MINOR.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MINOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_PATCH.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_PATCH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst (renamed from share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_BINARY_DIR.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_BINARY_DIR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_DESCRIPTION.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_DESCRIPTION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_HOMEPAGE_URL.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_HOMEPAGE_URL.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_NAME.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_NAME.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_SOURCE_DIR.rst8
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_VERSION.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_VERSION_MAJOR.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_VERSION_MAJOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_VERSION_MINOR.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_VERSION_MINOR.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_VERSION_PATCH.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_VERSION_PATCH.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PROJECT_VERSION_TWEAK.rst (renamed from share/cmake-3.17/Help/variable/PROJECT_VERSION_TWEAK.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/PackageName_ROOT.rst (renamed from share/cmake-3.17/Help/variable/PackageName_ROOT.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/UNIX.rst (renamed from share/cmake-3.17/Help/variable/UNIX.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/WIN32.rst (renamed from share/cmake-3.17/Help/variable/WIN32.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/WINCE.rst (renamed from share/cmake-3.17/Help/variable/WINCE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/WINDOWS_PHONE.rst (renamed from share/cmake-3.17/Help/variable/WINDOWS_PHONE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/WINDOWS_STORE.rst (renamed from share/cmake-3.17/Help/variable/WINDOWS_STORE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/XCODE.rst (renamed from share/cmake-3.17/Help/variable/XCODE.rst)0
-rw-r--r--share/cmake-3.18/Help/variable/XCODE_VERSION.rst (renamed from share/cmake-3.17/Help/variable/XCODE_VERSION.rst)0
-rw-r--r--share/cmake-3.18/Modules/AddFileDependencies.cmake (renamed from share/cmake-3.17/Modules/AddFileDependencies.cmake)0
-rw-r--r--share/cmake-3.18/Modules/AndroidTestUtilities.cmake (renamed from share/cmake-3.17/Modules/AndroidTestUtilities.cmake)0
-rw-r--r--share/cmake-3.18/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake (renamed from share/cmake-3.17/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake)0
-rw-r--r--share/cmake-3.18/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in (renamed from share/cmake-3.17/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/BasicConfigVersion-ExactVersion.cmake.in (renamed from share/cmake-3.17/Modules/BasicConfigVersion-ExactVersion.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/BasicConfigVersion-SameMajorVersion.cmake.in (renamed from share/cmake-3.17/Modules/BasicConfigVersion-SameMajorVersion.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/BasicConfigVersion-SameMinorVersion.cmake.in (renamed from share/cmake-3.17/Modules/BasicConfigVersion-SameMinorVersion.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/BundleUtilities.cmake (renamed from share/cmake-3.17/Modules/BundleUtilities.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMake.cmake (renamed from share/cmake-3.17/Modules/CMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeASM-ATTInformation.cmake (renamed from share/cmake-3.17/Modules/CMakeASM-ATTInformation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeASMCompiler.cmake.in20
-rw-r--r--share/cmake-3.18/Modules/CMakeASMInformation.cmake110
-rw-r--r--share/cmake-3.18/Modules/CMakeASM_MASMInformation.cmake20
-rw-r--r--share/cmake-3.18/Modules/CMakeASM_NASMInformation.cmake44
-rw-r--r--share/cmake-3.18/Modules/CMakeAddFortranSubdirectory.cmake (renamed from share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in (renamed from share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in (renamed from share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeAddNewLanguage.txt (renamed from share/cmake-3.17/Modules/CMakeAddNewLanguage.txt)0
-rw-r--r--share/cmake-3.18/Modules/CMakeBackwardCompatibilityC.cmake (renamed from share/cmake-3.17/Modules/CMakeBackwardCompatibilityC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeBackwardCompatibilityCXX.cmake (renamed from share/cmake-3.17/Modules/CMakeBackwardCompatibilityCXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeBorlandFindMake.cmake (renamed from share/cmake-3.17/Modules/CMakeBorlandFindMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeBuildSettings.cmake.in (renamed from share/cmake-3.17/Modules/CMakeBuildSettings.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCCompiler.cmake.in77
-rw-r--r--share/cmake-3.18/Modules/CMakeCCompilerABI.c (renamed from share/cmake-3.17/Modules/CMakeCCompilerABI.c)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCCompilerId.c.in (renamed from share/cmake-3.17/Modules/CMakeCCompilerId.c.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCInformation.cmake195
-rw-r--r--share/cmake-3.18/Modules/CMakeCSharpCompiler.cmake.in (renamed from share/cmake-3.17/Modules/CMakeCSharpCompiler.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCSharpCompilerId.cs.in (renamed from share/cmake-3.17/Modules/CMakeCSharpCompilerId.cs.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCSharpInformation.cmake (renamed from share/cmake-3.17/Modules/CMakeCSharpInformation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCUDACompiler.cmake.in64
-rw-r--r--share/cmake-3.18/Modules/CMakeCUDACompilerABI.cu (renamed from share/cmake-3.17/Modules/CMakeCUDACompilerABI.cu)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCUDACompilerId.cu.in (renamed from share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCUDAInformation.cmake205
-rw-r--r--share/cmake-3.18/Modules/CMakeCXXCompiler.cmake.in89
-rw-r--r--share/cmake-3.18/Modules/CMakeCXXCompilerABI.cpp (renamed from share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCXXCompilerId.cpp.in (renamed from share/cmake-3.17/Modules/CMakeCXXCompilerId.cpp.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCXXInformation.cmake282
-rw-r--r--share/cmake-3.18/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake (renamed from share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCommonLanguageInclude.cmake (renamed from share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCompilerABI.h (renamed from share/cmake-3.17/Modules/CMakeCompilerABI.h)0
-rw-r--r--share/cmake-3.18/Modules/CMakeCompilerIdDetection.cmake151
-rw-r--r--share/cmake-3.18/Modules/CMakeConfigurableFile.in (renamed from share/cmake-3.17/Modules/CMakeConfigurableFile.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDependentOption.cmake (renamed from share/cmake-3.17/Modules/CMakeDependentOption.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineASM-ATTCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineASM-ATTCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineASMCompiler.cmake253
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineASM_MASMCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineASM_MASMCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineASM_NASMCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineASM_NASMCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake226
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineCSharpCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineCSharpCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineCUDACompiler.cmake575
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake225
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineCompileFeatures.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineCompiler.cmake152
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineCompilerABI.cmake190
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineCompilerId.cmake956
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineFortranCompiler.cmake305
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineJavaCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineJavaCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineOBJCCompiler.cmake192
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineOBJCXXCompiler.cmake200
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineRCCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineRCCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineSwiftCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineSystem.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineSystem.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeDetermineVSServicePack.cmake (renamed from share/cmake-3.17/Modules/CMakeDetermineVSServicePack.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeExpandImportedTargets.cmake (renamed from share/cmake-3.17/Modules/CMakeExpandImportedTargets.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeExportBuildSettings.cmake (renamed from share/cmake-3.17/Modules/CMakeExportBuildSettings.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake (renamed from share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFindBinUtils.cmake144
-rw-r--r--share/cmake-3.18/Modules/CMakeFindCodeBlocks.cmake (renamed from share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFindDependencyMacro.cmake (renamed from share/cmake-3.17/Modules/CMakeFindDependencyMacro.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFindEclipseCDT4.cmake89
-rw-r--r--share/cmake-3.18/Modules/CMakeFindFrameworks.cmake45
-rw-r--r--share/cmake-3.18/Modules/CMakeFindJavaCommon.cmake (renamed from share/cmake-3.17/Modules/CMakeFindJavaCommon.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFindKate.cmake (renamed from share/cmake-3.17/Modules/CMakeFindKate.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFindPackageMode.cmake (renamed from share/cmake-3.17/Modules/CMakeFindPackageMode.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFindSublimeText2.cmake (renamed from share/cmake-3.17/Modules/CMakeFindSublimeText2.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFindWMake.cmake (renamed from share/cmake-3.17/Modules/CMakeFindWMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFindXCode.cmake (renamed from share/cmake-3.17/Modules/CMakeFindXCode.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeForceCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeForceCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFortranCompiler.cmake.in69
-rw-r--r--share/cmake-3.18/Modules/CMakeFortranCompilerABI.F (renamed from share/cmake-3.17/Modules/CMakeFortranCompilerABI.F)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFortranCompilerId.F.in (renamed from share/cmake-3.17/Modules/CMakeFortranCompilerId.F.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeFortranInformation.cmake222
-rw-r--r--share/cmake-3.18/Modules/CMakeGenericSystem.cmake181
-rw-r--r--share/cmake-3.18/Modules/CMakeGraphVizOptions.cmake (renamed from share/cmake-3.17/Modules/CMakeGraphVizOptions.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeIOSInstallCombined.cmake (renamed from share/cmake-3.17/Modules/CMakeIOSInstallCombined.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeImportBuildSettings.cmake (renamed from share/cmake-3.17/Modules/CMakeImportBuildSettings.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeInitializeConfigs.cmake (renamed from share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeJOMFindMake.cmake (renamed from share/cmake-3.17/Modules/CMakeJOMFindMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeJavaCompiler.cmake.in (renamed from share/cmake-3.17/Modules/CMakeJavaCompiler.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeJavaInformation.cmake (renamed from share/cmake-3.17/Modules/CMakeJavaInformation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeLanguageInformation.cmake (renamed from share/cmake-3.17/Modules/CMakeLanguageInformation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeMSYSFindMake.cmake (renamed from share/cmake-3.17/Modules/CMakeMSYSFindMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeMinGWFindMake.cmake (renamed from share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeNMakeFindMake.cmake (renamed from share/cmake-3.17/Modules/CMakeNMakeFindMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeNinjaFindMake.cmake (renamed from share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeOBJCCompiler.cmake.in (renamed from share/cmake-3.17/Modules/CMakeOBJCCompiler.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeOBJCCompilerABI.m (renamed from share/cmake-3.17/Modules/CMakeOBJCCompilerABI.m)0
-rw-r--r--share/cmake-3.18/Modules/CMakeOBJCCompilerId.m.in (renamed from share/cmake-3.17/Modules/CMakeOBJCCompilerId.m.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeOBJCInformation.cmake193
-rw-r--r--share/cmake-3.18/Modules/CMakeOBJCXXCompiler.cmake.in (renamed from share/cmake-3.17/Modules/CMakeOBJCXXCompiler.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeOBJCXXCompilerABI.mm (renamed from share/cmake-3.17/Modules/CMakeOBJCXXCompilerABI.mm)0
-rw-r--r--share/cmake-3.18/Modules/CMakeOBJCXXCompilerId.mm.in (renamed from share/cmake-3.17/Modules/CMakeOBJCXXCompilerId.mm.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeOBJCXXInformation.cmake278
-rw-r--r--share/cmake-3.18/Modules/CMakePackageConfigHelpers.cmake (renamed from share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeParseArguments.cmake (renamed from share/cmake-3.17/Modules/CMakeParseArguments.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeParseImplicitIncludeInfo.cmake (renamed from share/cmake-3.17/Modules/CMakeParseImplicitIncludeInfo.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeParseImplicitLinkInfo.cmake (renamed from share/cmake-3.17/Modules/CMakeParseImplicitLinkInfo.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakePlatformId.h.in286
-rw-r--r--share/cmake-3.18/Modules/CMakePrintHelpers.cmake (renamed from share/cmake-3.17/Modules/CMakePrintHelpers.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakePrintSystemInformation.cmake41
-rw-r--r--share/cmake-3.18/Modules/CMakePushCheckState.cmake (renamed from share/cmake-3.17/Modules/CMakePushCheckState.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeRCCompiler.cmake.in (renamed from share/cmake-3.17/Modules/CMakeRCCompiler.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeRCInformation.cmake50
-rw-r--r--share/cmake-3.18/Modules/CMakeSwiftCompiler.cmake.in (renamed from share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeSwiftInformation.cmake (renamed from share/cmake-3.17/Modules/CMakeSwiftInformation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeSystem.cmake.in (renamed from share/cmake-3.17/Modules/CMakeSystem.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CMakeSystemSpecificInformation.cmake (renamed from share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeSystemSpecificInitialize.cmake (renamed from share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestASM-ATTCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeTestASM-ATTCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestASMCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeTestASMCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestASM_MASMCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeTestASM_MASMCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestASM_NASMCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeTestASM_NASMCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestCCompiler.cmake98
-rw-r--r--share/cmake-3.18/Modules/CMakeTestCSharpCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeTestCSharpCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestCUDACompiler.cmake98
-rw-r--r--share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake91
-rw-r--r--share/cmake-3.18/Modules/CMakeTestCompilerCommon.cmake (renamed from share/cmake-3.17/Modules/CMakeTestCompilerCommon.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestFortranCompiler.cmake102
-rw-r--r--share/cmake-3.18/Modules/CMakeTestGNU.c (renamed from share/cmake-3.17/Modules/CMakeTestGNU.c)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestJavaCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeTestJavaCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestOBJCCompiler.cmake95
-rw-r--r--share/cmake-3.18/Modules/CMakeTestOBJCXXCompiler.cmake94
-rw-r--r--share/cmake-3.18/Modules/CMakeTestRCCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeTestRCCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeTestSwiftCompiler.cmake (renamed from share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeUnixFindMake.cmake (renamed from share/cmake-3.17/Modules/CMakeUnixFindMake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CMakeVerifyManifest.cmake (renamed from share/cmake-3.17/Modules/CMakeVerifyManifest.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CPack.cmake809
-rw-r--r--share/cmake-3.18/Modules/CPackComponent.cmake554
-rw-r--r--share/cmake-3.18/Modules/CPackIFW.cmake739
-rw-r--r--share/cmake-3.18/Modules/CPackIFWConfigureFile.cmake (renamed from share/cmake-3.17/Modules/CPackIFWConfigureFile.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CSharpUtilities.cmake (renamed from share/cmake-3.17/Modules/CSharpUtilities.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CTest.cmake (renamed from share/cmake-3.17/Modules/CTest.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CTestCoverageCollectGCOV.cmake339
-rw-r--r--share/cmake-3.18/Modules/CTestScriptMode.cmake (renamed from share/cmake-3.17/Modules/CTestScriptMode.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CTestTargets.cmake (renamed from share/cmake-3.17/Modules/CTestTargets.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CTestUseLaunchers.cmake (renamed from share/cmake-3.17/Modules/CTestUseLaunchers.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckCCompilerFlag.cmake (renamed from share/cmake-3.17/Modules/CheckCCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckCSourceCompiles.cmake (renamed from share/cmake-3.17/Modules/CheckCSourceCompiles.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckCSourceRuns.cmake (renamed from share/cmake-3.17/Modules/CheckCSourceRuns.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckCXXCompilerFlag.cmake (renamed from share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckCXXSourceCompiles.cmake (renamed from share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckCXXSourceRuns.cmake (renamed from share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckCXXSymbolExists.cmake (renamed from share/cmake-3.17/Modules/CheckCXXSymbolExists.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckForPthreads.c (renamed from share/cmake-3.17/Modules/CheckForPthreads.c)0
-rw-r--r--share/cmake-3.18/Modules/CheckFortranCompilerFlag.cmake (renamed from share/cmake-3.17/Modules/CheckFortranCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckFortranFunctionExists.cmake (renamed from share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckFortranSourceCompiles.cmake166
-rw-r--r--share/cmake-3.18/Modules/CheckFortranSourceRuns.cmake173
-rw-r--r--share/cmake-3.18/Modules/CheckFunctionExists.c (renamed from share/cmake-3.17/Modules/CheckFunctionExists.c)0
-rw-r--r--share/cmake-3.18/Modules/CheckFunctionExists.cmake (renamed from share/cmake-3.17/Modules/CheckFunctionExists.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported.cmake239
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-C.txt.in (renamed from share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-C.txt.in)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in (renamed from share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in (renamed from share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/foo.c (renamed from share/cmake-3.17/Modules/CheckIPOSupported/foo.c)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/foo.cpp (renamed from share/cmake-3.17/Modules/CheckIPOSupported/foo.cpp)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/foo.f (renamed from share/cmake-3.17/Modules/CheckIPOSupported/foo.f)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/main.c (renamed from share/cmake-3.17/Modules/CheckIPOSupported/main.c)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/main.cpp (renamed from share/cmake-3.17/Modules/CheckIPOSupported/main.cpp)0
-rw-r--r--share/cmake-3.18/Modules/CheckIPOSupported/main.f (renamed from share/cmake-3.17/Modules/CheckIPOSupported/main.f)0
-rw-r--r--share/cmake-3.18/Modules/CheckIncludeFile.c.in (renamed from share/cmake-3.17/Modules/CheckIncludeFile.c.in)0
-rw-r--r--share/cmake-3.18/Modules/CheckIncludeFile.cmake (renamed from share/cmake-3.17/Modules/CheckIncludeFile.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckIncludeFile.cxx.in (renamed from share/cmake-3.17/Modules/CheckIncludeFile.cxx.in)0
-rw-r--r--share/cmake-3.18/Modules/CheckIncludeFileCXX.cmake (renamed from share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckIncludeFiles.cmake (renamed from share/cmake-3.17/Modules/CheckIncludeFiles.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckLanguage.cmake106
-rw-r--r--share/cmake-3.18/Modules/CheckLibraryExists.cmake (renamed from share/cmake-3.17/Modules/CheckLibraryExists.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckLibraryExists.lists.in (renamed from share/cmake-3.17/Modules/CheckLibraryExists.lists.in)0
-rw-r--r--share/cmake-3.18/Modules/CheckLinkerFlag.cmake81
-rw-r--r--share/cmake-3.18/Modules/CheckOBJCCompilerFlag.cmake (renamed from share/cmake-3.17/Modules/CheckOBJCCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckOBJCSourceCompiles.cmake (renamed from share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckOBJCSourceRuns.cmake (renamed from share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckOBJCXXCompilerFlag.cmake (renamed from share/cmake-3.17/Modules/CheckOBJCXXCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckOBJCXXSourceCompiles.cmake (renamed from share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckOBJCXXSourceRuns.cmake (renamed from share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckPIESupported.cmake (renamed from share/cmake-3.17/Modules/CheckPIESupported.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckPrototypeDefinition.c.in (renamed from share/cmake-3.17/Modules/CheckPrototypeDefinition.c.in)0
-rw-r--r--share/cmake-3.18/Modules/CheckPrototypeDefinition.cmake (renamed from share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckSizeOf.cmake (renamed from share/cmake-3.17/Modules/CheckSizeOf.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckStructHasMember.cmake (renamed from share/cmake-3.17/Modules/CheckStructHasMember.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckSymbolExists.cmake (renamed from share/cmake-3.17/Modules/CheckSymbolExists.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckTypeSize.c.in47
-rw-r--r--share/cmake-3.18/Modules/CheckTypeSize.cmake (renamed from share/cmake-3.17/Modules/CheckTypeSize.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CheckTypeSizeMap.cmake.in (renamed from share/cmake-3.17/Modules/CheckTypeSizeMap.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/CheckVariableExists.c (renamed from share/cmake-3.17/Modules/CheckVariableExists.c)0
-rw-r--r--share/cmake-3.18/Modules/CheckVariableExists.cmake (renamed from share/cmake-3.17/Modules/CheckVariableExists.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ADSP-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/ADSP-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMCC-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMCC-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMCC-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMCC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMCC-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMCC-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMCC-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMCC-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMCC.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMCC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMClang-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMClang-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMClang-C-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMClang-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMClang-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMClang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMClang-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMClang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMClang-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/ARMClang-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/ARMClang.cmake130
-rw-r--r--share/cmake-3.18/Modules/Compiler/Absoft-Fortran.cmake13
-rw-r--r--share/cmake-3.18/Modules/Compiler/AppleClang-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/AppleClang-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/AppleClang-C-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/AppleClang-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/AppleClang-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/AppleClang-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/AppleClang-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/AppleClang-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/AppleClang-OBJC.cmake (renamed from share/cmake-3.17/Modules/Compiler/AppleClang-OBJC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/AppleClang-OBJCXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Borland-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Borland-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Bruce-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Bruce-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Bruce-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/Bruce-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/CCur-Fortran.cmake (renamed from share/cmake-3.17/Modules/Compiler/CCur-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/CMakeCommonCompilerMacros.cmake (renamed from share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-C-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-CUDA.cmake28
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-CXX-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-CXX-TestableFeatures.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-CXX-TestableFeatures.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-CXX.cmake16
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-DetermineCompilerInternal.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-DetermineCompilerInternal.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-FindBinUtils.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-FindBinUtils.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-OBJC.cmake (renamed from share/cmake-3.17/Modules/Compiler/Clang-OBJC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang-OBJCXX.cmake3
-rw-r--r--share/cmake-3.18/Modules/Compiler/Clang.cmake234
-rw-r--r--share/cmake-3.18/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Compaq-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Compaq-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Cray-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/Cray-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Cray-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/Cray-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Cray-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Cray-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Cray-Fortran.cmake21
-rw-r--r--share/cmake-3.18/Modules/Compiler/Cray.cmake (renamed from share/cmake-3.17/Modules/Compiler/Cray.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/CrayPrgEnv-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/CrayPrgEnv-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/CrayPrgEnv-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/CrayPrgEnv-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/CrayPrgEnv-Fortran.cmake (renamed from share/cmake-3.17/Modules/Compiler/CrayPrgEnv-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/CrayPrgEnv.cmake (renamed from share/cmake-3.17/Modules/Compiler/CrayPrgEnv.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Embarcadero-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Embarcadero-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Flang-FindBinUtils.cmake (renamed from share/cmake-3.17/Modules/Compiler/Flang-FindBinUtils.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Flang-Fortran.cmake16
-rw-r--r--share/cmake-3.18/Modules/Compiler/Fujitsu-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Fujitsu-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/G95-Fortran.cmake13
-rw-r--r--share/cmake-3.18/Modules/Compiler/GHS-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/GHS-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GHS-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/GHS-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GHS-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/GHS-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GHS.cmake (renamed from share/cmake-3.17/Modules/Compiler/GHS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-ASM.cmake13
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-C-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-CXX-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-FindBinUtils.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-FindBinUtils.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-Fortran.cmake28
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-OBJC.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-OBJC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU-OBJCXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/GNU-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/GNU.cmake123
-rw-r--r--share/cmake-3.18/Modules/Compiler/HP-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/HP-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/HP-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/HP-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/HP-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/HP-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/HP-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/HP-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/HP-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/HP-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/HP-Fortran.cmake12
-rw-r--r--share/cmake-3.18/Modules/Compiler/IAR-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/IAR-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/IAR-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/IAR-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/IAR-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/IAR-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/IAR-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/IAR-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/IAR-FindBinUtils.cmake (renamed from share/cmake-3.17/Modules/Compiler/IAR-FindBinUtils.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/IAR.cmake114
-rw-r--r--share/cmake-3.18/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake (renamed from share/cmake-3.17/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake (renamed from share/cmake-3.17/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Intel-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/Intel-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Intel-C-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/Intel-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Intel-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/Intel-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Intel-CXX-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/Intel-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Intel-CXX.cmake96
-rw-r--r--share/cmake-3.18/Modules/Compiler/Intel-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Intel-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Intel-Fortran.cmake19
-rw-r--r--share/cmake-3.18/Modules/Compiler/Intel.cmake46
-rw-r--r--share/cmake-3.18/Modules/Compiler/MSVC-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/MSVC-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/MSVC-C-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/MSVC-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/MSVC-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/MSVC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/MSVC-CXX-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/MSVC-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/MSVC-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/MSVC-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/MSVC-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/NAG-Fortran.cmake40
-rw-r--r--share/cmake-3.18/Modules/Compiler/NVIDIA-CUDA.cmake119
-rw-r--r--share/cmake-3.18/Modules/Compiler/NVIDIA-DetermineCompiler.cmake29
-rw-r--r--share/cmake-3.18/Modules/Compiler/OpenWatcom-C.cmake1
-rw-r--r--share/cmake-3.18/Modules/Compiler/OpenWatcom-CXX.cmake1
-rw-r--r--share/cmake-3.18/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/OpenWatcom.cmake118
-rw-r--r--share/cmake-3.18/Modules/Compiler/PGI-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/PGI-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/PGI-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/PGI-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/PGI-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/PGI-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/PGI-Fortran.cmake16
-rw-r--r--share/cmake-3.18/Modules/Compiler/PGI.cmake (renamed from share/cmake-3.17/Modules/Compiler/PGI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/PathScale-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/PathScale-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/PathScale-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/PathScale-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/PathScale-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/PathScale-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/PathScale-Fortran.cmake9
-rw-r--r--share/cmake-3.18/Modules/Compiler/PathScale.cmake (renamed from share/cmake-3.17/Modules/Compiler/PathScale.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/QCC-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/QCC-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/QCC-C-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/QCC-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/QCC-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/QCC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/QCC-CXX-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/QCC-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/QCC-CXX.cmake15
-rw-r--r--share/cmake-3.18/Modules/Compiler/QCC.cmake (renamed from share/cmake-3.17/Modules/Compiler/QCC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SCO-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/SCO-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SCO-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/SCO-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SCO-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/SCO-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SCO.cmake (renamed from share/cmake-3.17/Modules/Compiler/SCO.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SDCC-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/SDCC-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/SunPro-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/SunPro-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro-C-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/SunPro-C-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/SunPro-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro-CXX-FeatureTests.cmake (renamed from share/cmake-3.17/Modules/Compiler/SunPro-CXX-FeatureTests.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/SunPro-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro-Fortran.cmake34
-rw-r--r--share/cmake-3.18/Modules/Compiler/SunPro.cmake (renamed from share/cmake-3.17/Modules/Compiler/SunPro.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/TI-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/TI-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/TI-C.cmake22
-rw-r--r--share/cmake-3.18/Modules/Compiler/TI-CXX.cmake15
-rw-r--r--share/cmake-3.18/Modules/Compiler/TI-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/TI-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/TinyCC-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/TinyCC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/VisualAge-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/VisualAge-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/VisualAge-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/VisualAge-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/VisualAge-Fortran.cmake (renamed from share/cmake-3.17/Modules/Compiler/VisualAge-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/Watcom-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/Watcom-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XL-ASM.cmake (renamed from share/cmake-3.17/Modules/Compiler/XL-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XL-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/XL-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XL-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/XL-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XL-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/XL-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XL-CXX.cmake37
-rw-r--r--share/cmake-3.18/Modules/Compiler/XL-Fortran.cmake30
-rw-r--r--share/cmake-3.18/Modules/Compiler/XL-Fortran/cpp (renamed from share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XL.cmake (renamed from share/cmake-3.17/Modules/Compiler/XL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XLClang-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/XLClang-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XLClang-C.cmake (renamed from share/cmake-3.17/Modules/Compiler/XLClang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XLClang-CXX.cmake (renamed from share/cmake-3.17/Modules/Compiler/XLClang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/XLClang.cmake (renamed from share/cmake-3.17/Modules/Compiler/XLClang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/zOS-C-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/zOS-C-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake (renamed from share/cmake-3.17/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/CompilerId/GHS_default.gpj.in (renamed from share/cmake-3.17/Modules/CompilerId/GHS_default.gpj.in)0
-rw-r--r--share/cmake-3.18/Modules/CompilerId/GHS_lib.gpj.in (renamed from share/cmake-3.17/Modules/CompilerId/GHS_lib.gpj.in)0
-rw-r--r--share/cmake-3.18/Modules/CompilerId/VS-10.csproj.in (renamed from share/cmake-3.17/Modules/CompilerId/VS-10.csproj.in)0
-rw-r--r--share/cmake-3.18/Modules/CompilerId/VS-10.vcxproj.in (renamed from share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in)0
-rw-r--r--share/cmake-3.18/Modules/CompilerId/VS-7.vcproj.in (renamed from share/cmake-3.17/Modules/CompilerId/VS-7.vcproj.in)0
-rw-r--r--share/cmake-3.18/Modules/CompilerId/VS-Intel.vfproj.in (renamed from share/cmake-3.17/Modules/CompilerId/VS-Intel.vfproj.in)0
-rw-r--r--share/cmake-3.18/Modules/CompilerId/VS-NsightTegra.vcxproj.in (renamed from share/cmake-3.17/Modules/CompilerId/VS-NsightTegra.vcxproj.in)0
-rw-r--r--share/cmake-3.18/Modules/CompilerId/Xcode-3.pbxproj.in114
-rw-r--r--share/cmake-3.18/Modules/CompilerId/main.swift.in (renamed from share/cmake-3.17/Modules/CompilerId/main.swift.in)0
-rw-r--r--share/cmake-3.18/Modules/Dart.cmake (renamed from share/cmake-3.17/Modules/Dart.cmake)0
-rw-r--r--share/cmake-3.18/Modules/DartConfiguration.tcl.in (renamed from share/cmake-3.17/Modules/DartConfiguration.tcl.in)0
-rw-r--r--share/cmake-3.18/Modules/DeployQt4.cmake (renamed from share/cmake-3.17/Modules/DeployQt4.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Documentation.cmake74
-rw-r--r--share/cmake-3.18/Modules/DummyCXXFile.cxx (renamed from share/cmake-3.17/Modules/DummyCXXFile.cxx)0
-rw-r--r--share/cmake-3.18/Modules/ExternalData.cmake (renamed from share/cmake-3.17/Modules/ExternalData.cmake)0
-rw-r--r--share/cmake-3.18/Modules/ExternalData_config.cmake.in (renamed from share/cmake-3.17/Modules/ExternalData_config.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/ExternalProject-download.cmake.in (renamed from share/cmake-3.17/Modules/ExternalProject-download.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/ExternalProject-gitupdate.cmake.in216
-rw-r--r--share/cmake-3.18/Modules/ExternalProject-verify.cmake.in (renamed from share/cmake-3.17/Modules/ExternalProject-verify.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/ExternalProject.cmake3241
-rw-r--r--share/cmake-3.18/Modules/FLTKCompatibility.cmake (renamed from share/cmake-3.17/Modules/FLTKCompatibility.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FeatureSummary.cmake (renamed from share/cmake-3.17/Modules/FeatureSummary.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FetchContent.cmake1154
-rw-r--r--share/cmake-3.18/Modules/FetchContent/CMakeLists.cmake.in25
-rw-r--r--share/cmake-3.18/Modules/FindALSA.cmake (renamed from share/cmake-3.17/Modules/FindALSA.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindASPELL.cmake (renamed from share/cmake-3.17/Modules/FindASPELL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindAVIFile.cmake (renamed from share/cmake-3.17/Modules/FindAVIFile.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindArmadillo.cmake131
-rw-r--r--share/cmake-3.18/Modules/FindBISON.cmake297
-rw-r--r--share/cmake-3.18/Modules/FindBLAS.cmake959
-rw-r--r--share/cmake-3.18/Modules/FindBZip2.cmake (renamed from share/cmake-3.17/Modules/FindBZip2.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindBacktrace.cmake (renamed from share/cmake-3.17/Modules/FindBacktrace.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindBoost.cmake2390
-rw-r--r--share/cmake-3.18/Modules/FindBullet.cmake (renamed from share/cmake-3.17/Modules/FindBullet.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCABLE.cmake (renamed from share/cmake-3.17/Modules/FindCABLE.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCUDA.cmake2027
-rw-r--r--share/cmake-3.18/Modules/FindCUDA/make2cmake.cmake (renamed from share/cmake-3.17/Modules/FindCUDA/make2cmake.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCUDA/parse_cubin.cmake (renamed from share/cmake-3.17/Modules/FindCUDA/parse_cubin.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCUDA/run_nvcc.cmake (renamed from share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCUDA/select_compute_arch.cmake291
-rw-r--r--share/cmake-3.18/Modules/FindCUDAToolkit.cmake881
-rw-r--r--share/cmake-3.18/Modules/FindCURL.cmake203
-rw-r--r--share/cmake-3.18/Modules/FindCVS.cmake (renamed from share/cmake-3.17/Modules/FindCVS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCoin3D.cmake (renamed from share/cmake-3.17/Modules/FindCoin3D.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCups.cmake (renamed from share/cmake-3.17/Modules/FindCups.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCurses.cmake (renamed from share/cmake-3.17/Modules/FindCurses.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCxxTest.cmake (renamed from share/cmake-3.17/Modules/FindCxxTest.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindCygwin.cmake (renamed from share/cmake-3.17/Modules/FindCygwin.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindDCMTK.cmake (renamed from share/cmake-3.17/Modules/FindDCMTK.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindDart.cmake (renamed from share/cmake-3.17/Modules/FindDart.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindDevIL.cmake (renamed from share/cmake-3.17/Modules/FindDevIL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindDoxygen.cmake1160
-rw-r--r--share/cmake-3.18/Modules/FindEXPAT.cmake (renamed from share/cmake-3.17/Modules/FindEXPAT.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindEnvModules.cmake (renamed from share/cmake-3.17/Modules/FindEnvModules.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindFLEX.cmake256
-rw-r--r--share/cmake-3.18/Modules/FindFLTK.cmake (renamed from share/cmake-3.17/Modules/FindFLTK.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindFLTK2.cmake (renamed from share/cmake-3.17/Modules/FindFLTK2.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindFontconfig.cmake (renamed from share/cmake-3.17/Modules/FindFontconfig.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindFreetype.cmake (renamed from share/cmake-3.17/Modules/FindFreetype.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGCCXML.cmake (renamed from share/cmake-3.17/Modules/FindGCCXML.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGDAL.cmake (renamed from share/cmake-3.17/Modules/FindGDAL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGIF.cmake (renamed from share/cmake-3.17/Modules/FindGIF.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGLEW.cmake (renamed from share/cmake-3.17/Modules/FindGLEW.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGLU.cmake (renamed from share/cmake-3.17/Modules/FindGLU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGLUT.cmake (renamed from share/cmake-3.17/Modules/FindGLUT.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGSL.cmake (renamed from share/cmake-3.17/Modules/FindGSL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGTK.cmake (renamed from share/cmake-3.17/Modules/FindGTK.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGTK2.cmake946
-rw-r--r--share/cmake-3.18/Modules/FindGTest.cmake (renamed from share/cmake-3.17/Modules/FindGTest.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGettext.cmake (renamed from share/cmake-3.17/Modules/FindGettext.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGit.cmake (renamed from share/cmake-3.17/Modules/FindGit.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGnuTLS.cmake (renamed from share/cmake-3.17/Modules/FindGnuTLS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindGnuplot.cmake (renamed from share/cmake-3.17/Modules/FindGnuplot.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindHDF5.cmake992
-rw-r--r--share/cmake-3.18/Modules/FindHSPELL.cmake (renamed from share/cmake-3.17/Modules/FindHSPELL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindHTMLHelp.cmake (renamed from share/cmake-3.17/Modules/FindHTMLHelp.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindHg.cmake (renamed from share/cmake-3.17/Modules/FindHg.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindICU.cmake (renamed from share/cmake-3.17/Modules/FindICU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindIce.cmake (renamed from share/cmake-3.17/Modules/FindIce.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindIconv.cmake (renamed from share/cmake-3.17/Modules/FindIconv.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindIcotool.cmake (renamed from share/cmake-3.17/Modules/FindIcotool.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindImageMagick.cmake (renamed from share/cmake-3.17/Modules/FindImageMagick.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindIntl.cmake (renamed from share/cmake-3.17/Modules/FindIntl.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindJNI.cmake (renamed from share/cmake-3.17/Modules/FindJNI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindJPEG.cmake (renamed from share/cmake-3.17/Modules/FindJPEG.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindJasper.cmake (renamed from share/cmake-3.17/Modules/FindJasper.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindJava.cmake359
-rw-r--r--share/cmake-3.18/Modules/FindKDE3.cmake (renamed from share/cmake-3.17/Modules/FindKDE3.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindKDE4.cmake (renamed from share/cmake-3.17/Modules/FindKDE4.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindLAPACK.cmake555
-rw-r--r--share/cmake-3.18/Modules/FindLATEX.cmake (renamed from share/cmake-3.17/Modules/FindLATEX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindLTTngUST.cmake (renamed from share/cmake-3.17/Modules/FindLTTngUST.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindLibArchive.cmake (renamed from share/cmake-3.17/Modules/FindLibArchive.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindLibLZMA.cmake (renamed from share/cmake-3.17/Modules/FindLibLZMA.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindLibXml2.cmake (renamed from share/cmake-3.17/Modules/FindLibXml2.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindLibXslt.cmake131
-rw-r--r--share/cmake-3.18/Modules/FindLibinput.cmake (renamed from share/cmake-3.17/Modules/FindLibinput.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindLua.cmake238
-rw-r--r--share/cmake-3.18/Modules/FindLua50.cmake (renamed from share/cmake-3.17/Modules/FindLua50.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindLua51.cmake (renamed from share/cmake-3.17/Modules/FindLua51.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindMFC.cmake (renamed from share/cmake-3.17/Modules/FindMFC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindMPEG.cmake (renamed from share/cmake-3.17/Modules/FindMPEG.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindMPEG2.cmake (renamed from share/cmake-3.17/Modules/FindMPEG2.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindMPI.cmake1791
-rw-r--r--share/cmake-3.18/Modules/FindMPI/fortranparam_mpi.f90.in (renamed from share/cmake-3.17/Modules/FindMPI/fortranparam_mpi.f90.in)0
-rw-r--r--share/cmake-3.18/Modules/FindMPI/libver_mpi.c (renamed from share/cmake-3.17/Modules/FindMPI/libver_mpi.c)0
-rw-r--r--share/cmake-3.18/Modules/FindMPI/libver_mpi.f90.in (renamed from share/cmake-3.17/Modules/FindMPI/libver_mpi.f90.in)0
-rw-r--r--share/cmake-3.18/Modules/FindMPI/mpiver.f90.in (renamed from share/cmake-3.17/Modules/FindMPI/mpiver.f90.in)0
-rw-r--r--share/cmake-3.18/Modules/FindMPI/test_mpi.c (renamed from share/cmake-3.17/Modules/FindMPI/test_mpi.c)0
-rw-r--r--share/cmake-3.18/Modules/FindMPI/test_mpi.f90.in (renamed from share/cmake-3.17/Modules/FindMPI/test_mpi.f90.in)0
-rw-r--r--share/cmake-3.18/Modules/FindMatlab.cmake (renamed from share/cmake-3.17/Modules/FindMatlab.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindMotif.cmake (renamed from share/cmake-3.17/Modules/FindMotif.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindODBC.cmake (renamed from share/cmake-3.17/Modules/FindODBC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindOpenACC.cmake (renamed from share/cmake-3.17/Modules/FindOpenACC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindOpenAL.cmake96
-rw-r--r--share/cmake-3.18/Modules/FindOpenCL.cmake178
-rw-r--r--share/cmake-3.18/Modules/FindOpenGL.cmake (renamed from share/cmake-3.17/Modules/FindOpenGL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindOpenMP.cmake605
-rw-r--r--share/cmake-3.18/Modules/FindOpenSSL.cmake590
-rw-r--r--share/cmake-3.18/Modules/FindOpenSceneGraph.cmake (renamed from share/cmake-3.17/Modules/FindOpenSceneGraph.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindOpenThreads.cmake (renamed from share/cmake-3.17/Modules/FindOpenThreads.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPHP4.cmake (renamed from share/cmake-3.17/Modules/FindPHP4.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPNG.cmake (renamed from share/cmake-3.17/Modules/FindPNG.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake466
-rw-r--r--share/cmake-3.18/Modules/FindPackageMessage.cmake (renamed from share/cmake-3.17/Modules/FindPackageMessage.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPatch.cmake (renamed from share/cmake-3.17/Modules/FindPatch.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPerl.cmake (renamed from share/cmake-3.17/Modules/FindPerl.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPerlLibs.cmake (renamed from share/cmake-3.17/Modules/FindPerlLibs.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPhysFS.cmake (renamed from share/cmake-3.17/Modules/FindPhysFS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPike.cmake (renamed from share/cmake-3.17/Modules/FindPike.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPkgConfig.cmake864
-rw-r--r--share/cmake-3.18/Modules/FindPostgreSQL.cmake (renamed from share/cmake-3.17/Modules/FindPostgreSQL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindProducer.cmake (renamed from share/cmake-3.17/Modules/FindProducer.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindProtobuf.cmake661
-rw-r--r--share/cmake-3.18/Modules/FindPython.cmake448
-rw-r--r--share/cmake-3.18/Modules/FindPython/Support.cmake3172
-rw-r--r--share/cmake-3.18/Modules/FindPython2.cmake344
-rw-r--r--share/cmake-3.18/Modules/FindPython3.cmake397
-rw-r--r--share/cmake-3.18/Modules/FindPythonInterp.cmake (renamed from share/cmake-3.17/Modules/FindPythonInterp.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindPythonLibs.cmake (renamed from share/cmake-3.17/Modules/FindPythonLibs.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindQt.cmake (renamed from share/cmake-3.17/Modules/FindQt.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindQt3.cmake (renamed from share/cmake-3.17/Modules/FindQt3.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindQt4.cmake (renamed from share/cmake-3.17/Modules/FindQt4.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindQuickTime.cmake (renamed from share/cmake-3.17/Modules/FindQuickTime.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindRTI.cmake (renamed from share/cmake-3.17/Modules/FindRTI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindRuby.cmake512
-rw-r--r--share/cmake-3.18/Modules/FindSDL.cmake (renamed from share/cmake-3.17/Modules/FindSDL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindSDL_image.cmake (renamed from share/cmake-3.17/Modules/FindSDL_image.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindSDL_mixer.cmake (renamed from share/cmake-3.17/Modules/FindSDL_mixer.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindSDL_net.cmake (renamed from share/cmake-3.17/Modules/FindSDL_net.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindSDL_sound.cmake (renamed from share/cmake-3.17/Modules/FindSDL_sound.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindSDL_ttf.cmake (renamed from share/cmake-3.17/Modules/FindSDL_ttf.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindSQLite3.cmake (renamed from share/cmake-3.17/Modules/FindSQLite3.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindSWIG.cmake110
-rw-r--r--share/cmake-3.18/Modules/FindSelfPackers.cmake (renamed from share/cmake-3.17/Modules/FindSelfPackers.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindSquish.cmake288
-rw-r--r--share/cmake-3.18/Modules/FindSubversion.cmake166
-rw-r--r--share/cmake-3.18/Modules/FindTCL.cmake (renamed from share/cmake-3.17/Modules/FindTCL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindTIFF.cmake (renamed from share/cmake-3.17/Modules/FindTIFF.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindTclStub.cmake (renamed from share/cmake-3.17/Modules/FindTclStub.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindTclsh.cmake (renamed from share/cmake-3.17/Modules/FindTclsh.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindThreads.cmake248
-rw-r--r--share/cmake-3.18/Modules/FindUnixCommands.cmake (renamed from share/cmake-3.17/Modules/FindUnixCommands.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindVulkan.cmake88
-rw-r--r--share/cmake-3.18/Modules/FindWget.cmake (renamed from share/cmake-3.17/Modules/FindWget.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindWish.cmake (renamed from share/cmake-3.17/Modules/FindWish.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindX11.cmake823
-rw-r--r--share/cmake-3.18/Modules/FindXCTest.cmake (renamed from share/cmake-3.17/Modules/FindXCTest.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindXMLRPC.cmake (renamed from share/cmake-3.17/Modules/FindXMLRPC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindXalanC.cmake153
-rw-r--r--share/cmake-3.18/Modules/FindXercesC.cmake142
-rw-r--r--share/cmake-3.18/Modules/FindZLIB.cmake (renamed from share/cmake-3.17/Modules/FindZLIB.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Findosg.cmake (renamed from share/cmake-3.17/Modules/Findosg.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgAnimation.cmake (renamed from share/cmake-3.17/Modules/FindosgAnimation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgDB.cmake (renamed from share/cmake-3.17/Modules/FindosgDB.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgFX.cmake (renamed from share/cmake-3.17/Modules/FindosgFX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgGA.cmake (renamed from share/cmake-3.17/Modules/FindosgGA.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgIntrospection.cmake (renamed from share/cmake-3.17/Modules/FindosgIntrospection.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgManipulator.cmake (renamed from share/cmake-3.17/Modules/FindosgManipulator.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgParticle.cmake (renamed from share/cmake-3.17/Modules/FindosgParticle.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgPresentation.cmake (renamed from share/cmake-3.17/Modules/FindosgPresentation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgProducer.cmake (renamed from share/cmake-3.17/Modules/FindosgProducer.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgQt.cmake (renamed from share/cmake-3.17/Modules/FindosgQt.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgShadow.cmake (renamed from share/cmake-3.17/Modules/FindosgShadow.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgSim.cmake (renamed from share/cmake-3.17/Modules/FindosgSim.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgTerrain.cmake (renamed from share/cmake-3.17/Modules/FindosgTerrain.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgText.cmake (renamed from share/cmake-3.17/Modules/FindosgText.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgUtil.cmake (renamed from share/cmake-3.17/Modules/FindosgUtil.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgViewer.cmake (renamed from share/cmake-3.17/Modules/FindosgViewer.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgVolume.cmake (renamed from share/cmake-3.17/Modules/FindosgVolume.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindosgWidget.cmake (renamed from share/cmake-3.17/Modules/FindosgWidget.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Findosg_functions.cmake (renamed from share/cmake-3.17/Modules/Findosg_functions.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindwxWidgets.cmake (renamed from share/cmake-3.17/Modules/FindwxWidgets.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FindwxWindows.cmake (renamed from share/cmake-3.17/Modules/FindwxWindows.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface.cmake (renamed from share/cmake-3.17/Modules/FortranCInterface.cmake)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/CMakeLists.txt107
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Detect.cmake174
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Input.cmake.in (renamed from share/cmake-3.17/Modules/FortranCInterface/Input.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/MYMODULE.c (renamed from share/cmake-3.17/Modules/FortranCInterface/MYMODULE.c)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/MY_MODULE.c (renamed from share/cmake-3.17/Modules/FortranCInterface/MY_MODULE.c)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Macro.h.in (renamed from share/cmake-3.17/Modules/FortranCInterface/Macro.h.in)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Output.cmake.in (renamed from share/cmake-3.17/Modules/FortranCInterface/Output.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Verify/CMakeLists.txt (renamed from share/cmake-3.17/Modules/FortranCInterface/Verify/CMakeLists.txt)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyC.c (renamed from share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyC.c)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyCXX.cxx (renamed from share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyCXX.cxx)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyFortran.f (renamed from share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyFortran.f)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/Verify/main.c (renamed from share/cmake-3.17/Modules/FortranCInterface/Verify/main.c)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/call_mod.f90 (renamed from share/cmake-3.17/Modules/FortranCInterface/call_mod.f90)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/call_sub.f (renamed from share/cmake-3.17/Modules/FortranCInterface/call_sub.f)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/main.F (renamed from share/cmake-3.17/Modules/FortranCInterface/main.F)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/my_module.f90 (renamed from share/cmake-3.17/Modules/FortranCInterface/my_module.f90)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/my_module_.c (renamed from share/cmake-3.17/Modules/FortranCInterface/my_module_.c)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/my_sub.f (renamed from share/cmake-3.17/Modules/FortranCInterface/my_sub.f)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/mymodule.f90 (renamed from share/cmake-3.17/Modules/FortranCInterface/mymodule.f90)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/mymodule_.c (renamed from share/cmake-3.17/Modules/FortranCInterface/mymodule_.c)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/mysub.f (renamed from share/cmake-3.17/Modules/FortranCInterface/mysub.f)0
-rw-r--r--share/cmake-3.18/Modules/FortranCInterface/symbol.c.in (renamed from share/cmake-3.17/Modules/FortranCInterface/symbol.c.in)0
-rw-r--r--share/cmake-3.18/Modules/GNUInstallDirs.cmake (renamed from share/cmake-3.17/Modules/GNUInstallDirs.cmake)0
-rw-r--r--share/cmake-3.18/Modules/GenerateExportHeader.cmake (renamed from share/cmake-3.17/Modules/GenerateExportHeader.cmake)0
-rw-r--r--share/cmake-3.18/Modules/GetPrerequisites.cmake (renamed from share/cmake-3.17/Modules/GetPrerequisites.cmake)0
-rw-r--r--share/cmake-3.18/Modules/GoogleTest.cmake547
-rw-r--r--share/cmake-3.18/Modules/GoogleTestAddTests.cmake188
-rw-r--r--share/cmake-3.18/Modules/ITKCompatibility.cmake (renamed from share/cmake-3.17/Modules/ITKCompatibility.cmake)0
-rw-r--r--share/cmake-3.18/Modules/InstallRequiredSystemLibraries.cmake772
-rw-r--r--share/cmake-3.18/Modules/IntelVSImplicitPath/CMakeLists.txt (renamed from share/cmake-3.17/Modules/IntelVSImplicitPath/CMakeLists.txt)0
-rw-r--r--share/cmake-3.18/Modules/IntelVSImplicitPath/detect.cmake (renamed from share/cmake-3.17/Modules/IntelVSImplicitPath/detect.cmake)0
-rw-r--r--share/cmake-3.18/Modules/IntelVSImplicitPath/hello.f (renamed from share/cmake-3.17/Modules/IntelVSImplicitPath/hello.f)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CMakeCheckCompilerFlag.cmake (renamed from share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.DS_Store.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.DS_Store.in)bin12292 -> 12292 bytes
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.Description.plist.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.Description.plist.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.Info.plist.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.Info.plist.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.NuGet.nuspec.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.NuGet.nuspec.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.in)bin29592 -> 29592 bytes
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in)bin362 -> 362 bytes
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in)bin1870 -> 1870 bytes
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.RuntimeScript.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.RuntimeScript.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.STGZ_Header.sh.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.STGZ_Header.sh.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.VolumeIcon.icns.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.VolumeIcon.icns.in)bin45739 -> 45739 bytes
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.background.png.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.background.png.in)bin44108 -> 44108 bytes
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPack.distribution.dist.in (renamed from share/cmake-3.17/Modules/Internal/CPack/CPack.distribution.dist.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPackDeb.cmake776
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPackExternal.cmake (renamed from share/cmake-3.17/Modules/Internal/CPack/CPackExternal.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPackFreeBSD.cmake (renamed from share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPackNuGet.cmake370
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPackRPM.cmake1889
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPackWIX.cmake (renamed from share/cmake-3.17/Modules/Internal/CPack/CPackWIX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/CPackZIP.cmake (renamed from share/cmake-3.17/Modules/Internal/CPack/CPackZIP.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/NSIS.InstallOptions.ini.in (renamed from share/cmake-3.17/Modules/Internal/CPack/NSIS.InstallOptions.ini.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/NSIS.template.in979
-rw-r--r--share/cmake-3.18/Modules/Internal/CPack/WIX.template.in (renamed from share/cmake-3.17/Modules/Internal/CPack/WIX.template.in)0
-rw-r--r--share/cmake-3.18/Modules/Internal/FeatureTesting.cmake (renamed from share/cmake-3.17/Modules/Internal/FeatureTesting.cmake)0
-rw-r--r--share/cmake-3.18/Modules/KDE3Macros.cmake (renamed from share/cmake-3.17/Modules/KDE3Macros.cmake)0
-rw-r--r--share/cmake-3.18/Modules/MacOSXBundleInfo.plist.in (renamed from share/cmake-3.17/Modules/MacOSXBundleInfo.plist.in)0
-rw-r--r--share/cmake-3.18/Modules/MacOSXFrameworkInfo.plist.in (renamed from share/cmake-3.17/Modules/MacOSXFrameworkInfo.plist.in)0
-rw-r--r--share/cmake-3.18/Modules/MacroAddFileDependencies.cmake (renamed from share/cmake-3.17/Modules/MacroAddFileDependencies.cmake)0
-rw-r--r--share/cmake-3.18/Modules/MatlabTestsRedirect.cmake (renamed from share/cmake-3.17/Modules/MatlabTestsRedirect.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-GNU-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-GNU-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-VisualAge-C.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-VisualAge-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-VisualAge-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-VisualAge-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-VisualAge-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-VisualAge-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-XL-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-XL-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-XL-C.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-XL-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-XL-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-XL-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-XL.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-XL.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-XLClang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-XLClang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-XLClang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-XLClang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX-XLClang.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX-XLClang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX.cmake (renamed from share/cmake-3.17/Modules/Platform/AIX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/AIX/ExportImportList (renamed from share/cmake-3.17/Modules/Platform/AIX/ExportImportList)0
-rw-r--r--share/cmake-3.18/Modules/Platform/ARTOS-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/ARTOS-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/ARTOS.cmake (renamed from share/cmake-3.17/Modules/Platform/ARTOS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Clang-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Common.cmake218
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Determine-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-Determine-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Determine.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-Determine.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android-Initialize.cmake (renamed from share/cmake-3.17/Modules/Platform/Android-Initialize.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android.cmake (renamed from share/cmake-3.17/Modules/Platform/Android.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-NDK.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-NDK.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-Standalone.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-Standalone.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/Determine-Compiler.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-armeabi-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-armeabi-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-common-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-common-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-common-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-common-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-common.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-common.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-mips-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-mips-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-mips-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-mips-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-mips64-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-mips64-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-mips64-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-mips64-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-x86-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-x86-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-x86-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-x86-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-x86_64-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-x86_64-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/abi-x86_64-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/abi-x86_64-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_shared.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_shared.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_static.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_static.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_static.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_static.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_static.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_static.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-none.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-none.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_shared.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_shared.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_static.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_static.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Android/ndk-stl-system.cmake (renamed from share/cmake-3.17/Modules/Platform/Android/ndk-stl-system.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Absoft-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Absoft-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Apple-Swift.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Apple-Swift.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-AppleClang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-AppleClang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJC.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJCXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Clang-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Clang-OBJC.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Clang-OBJC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Clang-OBJCXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Clang-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Clang.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Clang.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-GNU-OBJC.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-GNU-OBJC.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-GNU-OBJCXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-GNU-OBJCXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Intel-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Intel-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Intel-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Intel-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Intel-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Intel-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-Intel.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-Intel.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-NAG-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-NAG-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-NVIDIA-CUDA.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-NVIDIA-CUDA.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-PGI-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-PGI-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-PGI-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-PGI-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-PGI-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-PGI-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-PGI.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-PGI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-VisualAge-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-VisualAge-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-VisualAge-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-VisualAge-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-XL-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-XL-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Apple-XL-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Apple-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BSDOS.cmake (renamed from share/cmake-3.17/Modules/Platform/BSDOS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BeOS.cmake (renamed from share/cmake-3.17/Modules/Platform/BeOS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneL.cmake40
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-base.cmake114
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-C.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneP-static.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneP-static.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-base.cmake166
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-C.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/BlueGeneQ-static.cmake (renamed from share/cmake-3.17/Modules/Platform/BlueGeneQ-static.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/CYGWIN-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/CYGWIN-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/CYGWIN-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/CYGWIN-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/CYGWIN-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/CYGWIN-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN-GNU.cmake54
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN-windres.cmake (renamed from share/cmake-3.17/Modules/Platform/CYGWIN-windres.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CYGWIN.cmake (renamed from share/cmake-3.17/Modules/Platform/CYGWIN.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Catamount.cmake (renamed from share/cmake-3.17/Modules/Platform/Catamount.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/CrayLinuxEnvironment.cmake (renamed from share/cmake-3.17/Modules/Platform/CrayLinuxEnvironment.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-C.cmake1
-rw-r--r--share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-CXX.cmake1
-rw-r--r--share/cmake-3.18/Modules/Platform/DOS-OpenWatcom.cmake28
-rw-r--r--share/cmake-3.18/Modules/Platform/DOS.cmake14
-rw-r--r--share/cmake-3.18/Modules/Platform/Darwin-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Darwin-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Darwin-Initialize.cmake301
-rw-r--r--share/cmake-3.18/Modules/Platform/Darwin.cmake236
-rw-r--r--share/cmake-3.18/Modules/Platform/DragonFly.cmake (renamed from share/cmake-3.17/Modules/Platform/DragonFly.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Euros.cmake (renamed from share/cmake-3.17/Modules/Platform/Euros.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/FreeBSD-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/FreeBSD-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/FreeBSD.cmake (renamed from share/cmake-3.17/Modules/Platform/FreeBSD.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Fuchsia.cmake (renamed from share/cmake-3.17/Modules/Platform/Fuchsia.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/GHS-MULTI-Determine.cmake (renamed from share/cmake-3.17/Modules/Platform/GHS-MULTI-Determine.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/GHS-MULTI.cmake (renamed from share/cmake-3.17/Modules/Platform/GHS-MULTI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/GNUtoMS_lib.bat.in (renamed from share/cmake-3.17/Modules/Platform/GNUtoMS_lib.bat.in)0
-rw-r--r--share/cmake-3.18/Modules/Platform/GNUtoMS_lib.cmake (renamed from share/cmake-3.17/Modules/Platform/GNUtoMS_lib.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Generic-ADSP-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/Generic-ADSP-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Generic-ADSP-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Generic-ADSP-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Generic-ADSP-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Generic-ADSP-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Generic-ADSP-Common.cmake (renamed from share/cmake-3.17/Modules/Platform/Generic-ADSP-Common.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Generic-SDCC-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Generic.cmake (renamed from share/cmake-3.17/Modules/Platform/Generic.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-GNU-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-GNU-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-HP-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-HP-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-HP-C.cmake6
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-HP-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-HP-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-HP-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-HP-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX-HP.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX-HP.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/HP-UX.cmake (renamed from share/cmake-3.17/Modules/Platform/HP-UX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Haiku.cmake (renamed from share/cmake-3.17/Modules/Platform/Haiku.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-Absoft-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-Absoft-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-CCur-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-CCur-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-Intel-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-Intel-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-Intel-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-Intel-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-Intel-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-Intel-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-Intel.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-Intel.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-NAG-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-NAG-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-C.cmake1
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-CXX.cmake1
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-OpenWatcom.cmake25
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-PGI-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-PGI-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-PGI-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-PGI-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-PGI-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-PGI-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-PGI.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-PGI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-PathScale-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-PathScale-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-PathScale-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-PathScale-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-PathScale-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-PathScale-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-PathScale.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-PathScale.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-SunPro-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-SunPro-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-TinyCC-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-TinyCC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-VisualAge-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-VisualAge-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-VisualAge-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-VisualAge-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-VisualAge-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-VisualAge-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-XL-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-XL-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-XL-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-XL-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-XL-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux-XL-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux-como.cmake17
-rw-r--r--share/cmake-3.18/Modules/Platform/Linux.cmake (renamed from share/cmake-3.17/Modules/Platform/Linux.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/MP-RAS.cmake (renamed from share/cmake-3.17/Modules/Platform/MP-RAS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Midipix.cmake (renamed from share/cmake-3.17/Modules/Platform/Midipix.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/MirBSD.cmake (renamed from share/cmake-3.17/Modules/Platform/MirBSD.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/NetBSD.cmake (renamed from share/cmake-3.17/Modules/Platform/NetBSD.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-C.cmake1
-rw-r--r--share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-CXX.cmake1
-rw-r--r--share/cmake-3.18/Modules/Platform/OS2-OpenWatcom.cmake35
-rw-r--r--share/cmake-3.18/Modules/Platform/OS2.cmake14
-rw-r--r--share/cmake-3.18/Modules/Platform/OSF1.cmake (renamed from share/cmake-3.17/Modules/Platform/OSF1.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/OpenBSD.cmake (renamed from share/cmake-3.17/Modules/Platform/OpenBSD.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/OpenVMS.cmake (renamed from share/cmake-3.17/Modules/Platform/OpenVMS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/QNX.cmake (renamed from share/cmake-3.17/Modules/Platform/QNX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/RISCos.cmake (renamed from share/cmake-3.17/Modules/Platform/RISCos.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SCO_SV.cmake (renamed from share/cmake-3.17/Modules/Platform/SCO_SV.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SINIX.cmake (renamed from share/cmake-3.17/Modules/Platform/SINIX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-GNU.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-GNU.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-PathScale-C.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-PathScale-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-PathScale-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-PathScale-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-PathScale-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-PathScale-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS-PathScale.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS-PathScale.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/SunOS.cmake (renamed from share/cmake-3.17/Modules/Platform/SunOS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Tru64.cmake (renamed from share/cmake-3.17/Modules/Platform/Tru64.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/ULTRIX.cmake (renamed from share/cmake-3.17/Modules/Platform/ULTRIX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/UNIX_SV.cmake (renamed from share/cmake-3.17/Modules/Platform/UNIX_SV.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/UnixPaths.cmake107
-rw-r--r--share/cmake-3.18/Modules/Platform/UnixWare.cmake (renamed from share/cmake-3.17/Modules/Platform/UnixWare.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Apple-Swift.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Borland-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Borland-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Borland-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Borland-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Clang-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Clang.cmake179
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Embarcadero-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Embarcadero-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Embarcadero-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Embarcadero-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Embarcadero.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Flang-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Flang-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-G95-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-G95-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-GNU-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-GNU-C-ABI.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-GNU-C-ABI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-GNU-CXX-ABI.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-GNU-CXX-ABI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran-ABI.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran-ABI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-GNU.cmake206
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Intel-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Intel-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Intel-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Intel-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Intel-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Intel-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Intel-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Intel-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Intel.cmake18
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-MSVC-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-MSVC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-MSVC-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-MSVC.cmake441
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-NVIDIA-CUDA.cmake96
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-OpenWatcom.cmake32
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-PGI-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-PGI-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-PGI-Fortran.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-PGI-Fortran.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-PGI.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-PGI.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Watcom-C.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Watcom-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-Watcom-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-Watcom-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-df.cmake60
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows-windres.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows-windres.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Windows.cmake (renamed from share/cmake-3.17/Modules/Platform/Windows.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-C.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsCE.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsCE.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPaths.cmake96
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-C.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsPhone.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsPhone.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore-Clang-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore-Clang-C.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore-Clang-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore-Clang-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore-Clang-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore-GNU-ASM.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore-GNU-C.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore-GNU-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore-GNU-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore-GNU-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-C.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-C.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/WindowsStore.cmake (renamed from share/cmake-3.17/Modules/Platform/WindowsStore.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/Xenix.cmake (renamed from share/cmake-3.17/Modules/Platform/Xenix.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/eCos.cmake65
-rw-r--r--share/cmake-3.18/Modules/Platform/gas.cmake19
-rw-r--r--share/cmake-3.18/Modules/Platform/iOS-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/iOS-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/iOS-Initialize.cmake (renamed from share/cmake-3.17/Modules/Platform/iOS-Initialize.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/iOS.cmake (renamed from share/cmake-3.17/Modules/Platform/iOS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/kFreeBSD.cmake (renamed from share/cmake-3.17/Modules/Platform/kFreeBSD.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/syllable.cmake (renamed from share/cmake-3.17/Modules/Platform/syllable.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/tvOS-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/tvOS-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/tvOS-Initialize.cmake (renamed from share/cmake-3.17/Modules/Platform/tvOS-Initialize.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/tvOS.cmake (renamed from share/cmake-3.17/Modules/Platform/tvOS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/watchOS-Determine-CXX.cmake (renamed from share/cmake-3.17/Modules/Platform/watchOS-Determine-CXX.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/watchOS-Initialize.cmake (renamed from share/cmake-3.17/Modules/Platform/watchOS-Initialize.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Platform/watchOS.cmake (renamed from share/cmake-3.17/Modules/Platform/watchOS.cmake)0
-rw-r--r--share/cmake-3.18/Modules/ProcessorCount.cmake (renamed from share/cmake-3.17/Modules/ProcessorCount.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Qt4ConfigDependentSettings.cmake (renamed from share/cmake-3.17/Modules/Qt4ConfigDependentSettings.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Qt4Macros.cmake (renamed from share/cmake-3.17/Modules/Qt4Macros.cmake)0
-rw-r--r--share/cmake-3.18/Modules/RepositoryInfo.txt.in (renamed from share/cmake-3.17/Modules/RepositoryInfo.txt.in)0
-rw-r--r--share/cmake-3.18/Modules/SelectLibraryConfigurations.cmake (renamed from share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Squish4RunTestCase.bat23
-rw-r--r--share/cmake-3.18/Modules/Squish4RunTestCase.sh27
-rw-r--r--[-rwxr-xr-x]share/cmake-3.18/Modules/SquishRunTestCase.bat (renamed from share/cmake-3.17/Modules/SquishRunTestCase.bat)0
-rw-r--r--share/cmake-3.18/Modules/SquishRunTestCase.sh (renamed from share/cmake-3.17/Modules/SquishRunTestCase.sh)0
-rw-r--r--share/cmake-3.18/Modules/SquishTestScript.cmake85
-rw-r--r--share/cmake-3.18/Modules/SystemInformation.cmake (renamed from share/cmake-3.17/Modules/SystemInformation.cmake)0
-rw-r--r--share/cmake-3.18/Modules/SystemInformation.in (renamed from share/cmake-3.17/Modules/SystemInformation.in)0
-rw-r--r--share/cmake-3.18/Modules/TestBigEndian.cmake (renamed from share/cmake-3.17/Modules/TestBigEndian.cmake)0
-rw-r--r--share/cmake-3.18/Modules/TestCXXAcceptsFlag.cmake (renamed from share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake)0
-rw-r--r--share/cmake-3.18/Modules/TestEndianess.c.in (renamed from share/cmake-3.17/Modules/TestEndianess.c.in)0
-rw-r--r--share/cmake-3.18/Modules/TestForANSIForScope.cmake (renamed from share/cmake-3.17/Modules/TestForANSIForScope.cmake)0
-rw-r--r--share/cmake-3.18/Modules/TestForANSIStreamHeaders.cmake (renamed from share/cmake-3.17/Modules/TestForANSIStreamHeaders.cmake)0
-rw-r--r--share/cmake-3.18/Modules/TestForANSIStreamHeaders.cxx (renamed from share/cmake-3.17/Modules/TestForANSIStreamHeaders.cxx)0
-rw-r--r--share/cmake-3.18/Modules/TestForAnsiForScope.cxx (renamed from share/cmake-3.17/Modules/TestForAnsiForScope.cxx)0
-rw-r--r--share/cmake-3.18/Modules/TestForSSTREAM.cmake (renamed from share/cmake-3.17/Modules/TestForSSTREAM.cmake)0
-rw-r--r--share/cmake-3.18/Modules/TestForSSTREAM.cxx (renamed from share/cmake-3.17/Modules/TestForSSTREAM.cxx)0
-rw-r--r--share/cmake-3.18/Modules/TestForSTDNamespace.cmake (renamed from share/cmake-3.17/Modules/TestForSTDNamespace.cmake)0
-rw-r--r--share/cmake-3.18/Modules/TestForSTDNamespace.cxx (renamed from share/cmake-3.17/Modules/TestForSTDNamespace.cxx)0
-rw-r--r--share/cmake-3.18/Modules/UseEcos.cmake236
-rw-r--r--share/cmake-3.18/Modules/UseJava.cmake1438
-rw-r--r--share/cmake-3.18/Modules/UseJava/ClearClassFiles.cmake17
-rw-r--r--share/cmake-3.18/Modules/UseJavaClassFilelist.cmake (renamed from share/cmake-3.17/Modules/UseJavaClassFilelist.cmake)0
-rw-r--r--share/cmake-3.18/Modules/UseJavaSymlinks.cmake (renamed from share/cmake-3.17/Modules/UseJavaSymlinks.cmake)0
-rw-r--r--share/cmake-3.18/Modules/UsePkgConfig.cmake (renamed from share/cmake-3.17/Modules/UsePkgConfig.cmake)0
-rw-r--r--share/cmake-3.18/Modules/UseQt4.cmake (renamed from share/cmake-3.17/Modules/UseQt4.cmake)0
-rw-r--r--share/cmake-3.18/Modules/UseSWIG.cmake865
-rw-r--r--share/cmake-3.18/Modules/UseSWIG/ManageSupportFiles.cmake (renamed from share/cmake-3.17/Modules/UseSWIG/ManageSupportFiles.cmake)0
-rw-r--r--share/cmake-3.18/Modules/Use_wxWindows.cmake (renamed from share/cmake-3.17/Modules/Use_wxWindows.cmake)0
-rw-r--r--share/cmake-3.18/Modules/UsewxWidgets.cmake (renamed from share/cmake-3.17/Modules/UsewxWidgets.cmake)0
-rw-r--r--share/cmake-3.18/Modules/VTKCompatibility.cmake (renamed from share/cmake-3.17/Modules/VTKCompatibility.cmake)0
-rw-r--r--share/cmake-3.18/Modules/WriteBasicConfigVersionFile.cmake (renamed from share/cmake-3.17/Modules/WriteBasicConfigVersionFile.cmake)0
-rw-r--r--share/cmake-3.18/Modules/WriteCompilerDetectionHeader.cmake (renamed from share/cmake-3.17/Modules/WriteCompilerDetectionHeader.cmake)0
-rw-r--r--share/cmake-3.18/Modules/ecos_clean.cmake (renamed from share/cmake-3.17/Modules/ecos_clean.cmake)0
-rw-r--r--share/cmake-3.18/Modules/exportheader.cmake.in (renamed from share/cmake-3.17/Modules/exportheader.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/javaTargets.cmake.in (renamed from share/cmake-3.17/Modules/javaTargets.cmake.in)0
-rw-r--r--share/cmake-3.18/Modules/kde3init_dummy.cpp.in (renamed from share/cmake-3.17/Modules/kde3init_dummy.cpp.in)0
-rw-r--r--share/cmake-3.18/Modules/kde3uic.cmake (renamed from share/cmake-3.17/Modules/kde3uic.cmake)0
-rw-r--r--share/cmake-3.18/Modules/readme.txt4
-rw-r--r--share/cmake-3.18/Templates/AppleInfo.plist (renamed from share/cmake-3.17/Templates/AppleInfo.plist)0
-rw-r--r--share/cmake-3.18/Templates/CMakeVSMacros1.vsmacros (renamed from share/cmake-3.17/Templates/CMakeVSMacros1.vsmacros)bin88064 -> 88064 bytes
-rw-r--r--share/cmake-3.18/Templates/CMakeVSMacros2.vsmacros (renamed from share/cmake-3.17/Templates/CMakeVSMacros2.vsmacros)bin63488 -> 63488 bytes
-rw-r--r--share/cmake-3.18/Templates/CPack.GenericDescription.txt (renamed from share/cmake-3.17/Templates/CPack.GenericDescription.txt)0
-rw-r--r--share/cmake-3.18/Templates/CPack.GenericLicense.txt (renamed from share/cmake-3.17/Templates/CPack.GenericLicense.txt)0
-rw-r--r--share/cmake-3.18/Templates/CPack.GenericWelcome.txt (renamed from share/cmake-3.17/Templates/CPack.GenericWelcome.txt)0
-rw-r--r--share/cmake-3.18/Templates/CPackConfig.cmake.in (renamed from share/cmake-3.17/Templates/CPackConfig.cmake.in)0
-rw-r--r--share/cmake-3.18/Templates/CTestScript.cmake.in (renamed from share/cmake-3.17/Templates/CTestScript.cmake.in)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CL.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CL.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CSharp.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CSharp.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Cuda.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CudaHost.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CudaHost.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_LIB.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_LIB.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Link.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Link.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_MASM.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_MASM.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_NASM.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_NASM.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v10_RC.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v10_RC.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CL.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CL.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CSharp.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CSharp.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v11_LIB.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_LIB.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v11_Link.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_Link.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v11_MASM.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_MASM.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v11_RC.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v11_RC.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CL.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CL.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CSharp.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CSharp.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v12_LIB.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_LIB.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v12_Link.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_Link.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v12_MASM.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_MASM.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v12_RC.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v12_RC.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CL.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CL.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CSharp.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CSharp.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v140_Link.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v140_Link.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CL.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CL.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CSharp.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CSharp.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v141_Link.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v141_Link.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CL.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CL.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CSharp.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CSharp.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v142_Link.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v142_Link.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v14_LIB.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v14_LIB.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v14_MASM.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v14_MASM.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/FlagTables/v14_RC.json (renamed from share/cmake-3.17/Templates/MSBuild/FlagTables/v14_RC.json)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/nasm.props.in (renamed from share/cmake-3.17/Templates/MSBuild/nasm.props.in)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/nasm.targets (renamed from share/cmake-3.17/Templates/MSBuild/nasm.targets)0
-rw-r--r--share/cmake-3.18/Templates/MSBuild/nasm.xml (renamed from share/cmake-3.17/Templates/MSBuild/nasm.xml)0
-rw-r--r--share/cmake-3.18/Templates/TestDriver.cxx.in146
-rw-r--r--share/cmake-3.18/Templates/Windows/ApplicationIcon.png (renamed from share/cmake-3.17/Templates/Windows/ApplicationIcon.png)bin2335 -> 2335 bytes
-rw-r--r--share/cmake-3.18/Templates/Windows/Logo.png (renamed from share/cmake-3.17/Templates/Windows/Logo.png)bin488 -> 488 bytes
-rw-r--r--share/cmake-3.18/Templates/Windows/SmallLogo.png (renamed from share/cmake-3.17/Templates/Windows/SmallLogo.png)bin167 -> 167 bytes
-rw-r--r--share/cmake-3.18/Templates/Windows/SmallLogo44x44.png (renamed from share/cmake-3.17/Templates/Windows/SmallLogo44x44.png)bin265 -> 265 bytes
-rw-r--r--share/cmake-3.18/Templates/Windows/SplashScreen.png (renamed from share/cmake-3.17/Templates/Windows/SplashScreen.png)bin909 -> 909 bytes
-rw-r--r--share/cmake-3.18/Templates/Windows/StoreLogo.png (renamed from share/cmake-3.17/Templates/Windows/StoreLogo.png)bin227 -> 227 bytes
-rw-r--r--share/cmake-3.18/Templates/Windows/Windows_TemporaryKey.pfx (renamed from share/cmake-3.17/Templates/Windows/Windows_TemporaryKey.pfx)bin2560 -> 2560 bytes
-rw-r--r--share/cmake-3.18/include/cmCPluginAPI.h (renamed from share/cmake-3.17/include/cmCPluginAPI.h)0
-rw-r--r--share/emacs/site-lisp/cmake-mode.el (renamed from share/cmake-3.17/editors/emacs/cmake-mode.el)0
-rw-r--r--share/vim/vimfiles/indent/cmake.vim (renamed from share/cmake-3.17/editors/vim/indent/cmake.vim)0
-rw-r--r--share/vim/vimfiles/syntax/cmake.vim3376
3049 files changed, 71939 insertions, 66794 deletions
diff --git a/bin/cmake.exe b/bin/cmake.exe
index 104af0e..5f52c09 100755..100644
--- a/bin/cmake.exe
+++ b/bin/cmake.exe
Binary files differ
diff --git a/bin/cmcldeps.exe b/bin/cmcldeps.exe
index 8f18e65..b41e3af 100755..100644
--- a/bin/cmcldeps.exe
+++ b/bin/cmcldeps.exe
Binary files differ
diff --git a/bin/cpack.exe b/bin/cpack.exe
index 6353400..6366094 100755..100644
--- a/bin/cpack.exe
+++ b/bin/cpack.exe
Binary files differ
diff --git a/bin/ctest.exe b/bin/ctest.exe
index 841c252..c8bbf62 100755..100644
--- a/bin/ctest.exe
+++ b/bin/ctest.exe
Binary files differ
diff --git a/doc/cmake-3.17/cmcurl/COPYING b/doc/cmake-3.17/cmcurl/COPYING
deleted file mode 100644
index 3528bd7..0000000
--- a/doc/cmake-3.17/cmcurl/COPYING
+++ /dev/null
@@ -1,22 +0,0 @@
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright (c) 1996 - 2019, Daniel Stenberg, <daniel@haxx.se>, and many
-contributors, see the THANKS file.
-
-All rights reserved.
-
-Permission to use, copy, modify, and distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright
-notice and this permission notice appear in all copies.
-
-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 OF THIRD PARTY RIGHTS. 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.
-
-Except as contained in this notice, the name of a copyright holder shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization of the copyright holder.
diff --git a/doc/cmake-3.17/cmlibarchive/COPYING b/doc/cmake-3.17/cmlibarchive/COPYING
deleted file mode 100644
index 93952b7..0000000
--- a/doc/cmake-3.17/cmlibarchive/COPYING
+++ /dev/null
@@ -1,59 +0,0 @@
-The libarchive distribution as a whole is Copyright by Tim Kientzle
-and is subject to the copyright notice reproduced at the bottom of
-this file.
-
-Each individual file in this distribution should have a clear
-copyright/licensing statement at the beginning of the file. If any do
-not, please let me know and I will rectify it. The following is
-intended to summarize the copyright status of the individual files;
-the actual statements in the files are controlling.
-
-* Except as listed below, all C sources (including .c and .h files)
- and documentation files are subject to the copyright notice reproduced
- at the bottom of this file.
-
-* The following source files are also subject in whole or in part to
- a 3-clause UC Regents copyright; please read the individual source
- files for details:
- libarchive/archive_entry.c
- libarchive/archive_read_support_filter_compress.c
- libarchive/archive_write_add_filter_compress.c
- libarchive/mtree.5
-
-* The following source files are in the public domain:
- libarchive/archive_getdate.c
-
-* The build files---including Makefiles, configure scripts,
- and auxiliary scripts used as part of the compile process---have
- widely varying licensing terms. Please check individual files before
- distributing them to see if those restrictions apply to you.
-
-I intend for all new source code to use the license below and hope over
-time to replace code with other licenses with new implementations that
-do use the license below. The varying licensing of the build scripts
-seems to be an unavoidable mess.
-
-
-Copyright (c) 2003-2009 <author(s)>
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer
- in this position and unchanged.
-2. 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.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``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 AUTHOR(S) 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.
diff --git a/doc/cmake-3.17/cmlibrhash/COPYING b/doc/cmake-3.17/cmlibrhash/COPYING
deleted file mode 100644
index bf65ee1..0000000
--- a/doc/cmake-3.17/cmlibrhash/COPYING
+++ /dev/null
@@ -1,15 +0,0 @@
-
- RHash License
-
-Copyright (c) 2005-2014 Aleksey Kravchenko <rhash.admin@gmail.com>
-
-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.
-
-The Software is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE. Use this program at your own risk!
diff --git a/doc/cmake-3.17/cmlibrhash/README b/doc/cmake-3.17/cmlibrhash/README
deleted file mode 100644
index 4ea492f..0000000
--- a/doc/cmake-3.17/cmlibrhash/README
+++ /dev/null
@@ -1,7 +0,0 @@
- === Notes on RHash License ===
-
-The RHash program and LibRHash library are distributed under RHash License,
-see the COPYING file for details. In particular, the program, the library
-and source code can be used free of charge under the MIT, BSD, GPL,
-commercial or freeware license without additional restrictions. In the case
-the OSI-approved license is required the MIT license should be used.
diff --git a/doc/cmake-3.17/Copyright.txt b/doc/cmake-3.18/Copyright.txt
index b867d01..b867d01 100644
--- a/doc/cmake-3.17/Copyright.txt
+++ b/doc/cmake-3.18/Copyright.txt
diff --git a/doc/cmake-3.17/cmake.org.html b/doc/cmake-3.18/cmake.org.html
index 001d634..001d634 100644
--- a/doc/cmake-3.17/cmake.org.html
+++ b/doc/cmake-3.18/cmake.org.html
diff --git a/doc/cmake-3.18/cmcurl/COPYING b/doc/cmake-3.18/cmcurl/COPYING
new file mode 100644
index 0000000..9d9e4af
--- /dev/null
+++ b/doc/cmake-3.18/cmcurl/COPYING
@@ -0,0 +1,22 @@
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1996 - 2020, Daniel Stenberg, <daniel@haxx.se>, and many
+contributors, see the THANKS file.
+
+All rights reserved.
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+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 OF THIRD PARTY RIGHTS. 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.
+
+Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization of the copyright holder.
diff --git a/doc/cmake-3.18/cmlibarchive/COPYING b/doc/cmake-3.18/cmlibarchive/COPYING
new file mode 100644
index 0000000..14bbefa
--- /dev/null
+++ b/doc/cmake-3.18/cmlibarchive/COPYING
@@ -0,0 +1,66 @@
+The libarchive distribution as a whole is Copyright by Tim Kientzle
+and is subject to the copyright notice reproduced at the bottom of
+this file.
+
+Each individual file in this distribution should have a clear
+copyright/licensing statement at the beginning of the file. If any do
+not, please let me know and I will rectify it. The following is
+intended to summarize the copyright status of the individual files;
+the actual statements in the files are controlling.
+
+* Except as listed below, all C sources (including .c and .h files)
+ and documentation files are subject to the copyright notice reproduced
+ at the bottom of this file.
+
+* The following source files are also subject in whole or in part to
+ a 3-clause UC Regents copyright; please read the individual source
+ files for details:
+ libarchive/archive_entry.c
+ libarchive/archive_read_support_filter_compress.c
+ libarchive/archive_write_add_filter_compress.c
+ libarchive/mtree.5
+
+* The following source files are in the public domain:
+ libarchive/archive_getdate.c
+
+* The following source files are triple-licensed with the ability to choose
+ from CC0 1.0 Universal, OpenSSL or Apache 2.0 licenses:
+ libarchive/archive_blake2.h
+ libarchive/archive_blake2_impl.h
+ libarchive/archive_blake2s_ref.c
+ libarchive/archive_blake2sp_ref.c
+
+* The build files---including Makefiles, configure scripts,
+ and auxiliary scripts used as part of the compile process---have
+ widely varying licensing terms. Please check individual files before
+ distributing them to see if those restrictions apply to you.
+
+I intend for all new source code to use the license below and hope over
+time to replace code with other licenses with new implementations that
+do use the license below. The varying licensing of the build scripts
+seems to be an unavoidable mess.
+
+
+Copyright (c) 2003-2018 <author(s)>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer
+ in this position and unchanged.
+2. 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.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``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 AUTHOR(S) 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.
diff --git a/doc/cmake-3.17/cmliblzma/COPYING b/doc/cmake-3.18/cmliblzma/COPYING
index 20e60d5..20e60d5 100644
--- a/doc/cmake-3.17/cmliblzma/COPYING
+++ b/doc/cmake-3.18/cmliblzma/COPYING
diff --git a/doc/cmake-3.18/cmlibrhash/COPYING b/doc/cmake-3.18/cmlibrhash/COPYING
new file mode 100644
index 0000000..be7d4a9
--- /dev/null
+++ b/doc/cmake-3.18/cmlibrhash/COPYING
@@ -0,0 +1,15 @@
+
+ BSD Zero Clause License
+
+Copyright (c) 2005, Aleksey Kravchenko <rhash.admin@gmail.com>
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/doc/cmake-3.17/cmlibuv/LICENSE b/doc/cmake-3.18/cmlibuv/LICENSE
index 28f1733..28f1733 100644
--- a/doc/cmake-3.17/cmlibuv/LICENSE
+++ b/doc/cmake-3.18/cmlibuv/LICENSE
diff --git a/doc/cmake-3.18/cmnghttp2/COPYING b/doc/cmake-3.18/cmnghttp2/COPYING
new file mode 100644
index 0000000..8020179
--- /dev/null
+++ b/doc/cmake-3.18/cmnghttp2/COPYING
@@ -0,0 +1,23 @@
+The MIT License
+
+Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa
+Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors
+
+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.
diff --git a/doc/cmake-3.17/cmsys/Copyright.txt b/doc/cmake-3.18/cmsys/Copyright.txt
index 33d7fb4..33d7fb4 100644
--- a/doc/cmake-3.17/cmsys/Copyright.txt
+++ b/doc/cmake-3.18/cmsys/Copyright.txt
diff --git a/doc/cmake-3.17/cmzlib/Copyright.txt b/doc/cmake-3.18/cmzlib/Copyright.txt
index db0beae..db0beae 100644
--- a/doc/cmake-3.17/cmzlib/Copyright.txt
+++ b/doc/cmake-3.18/cmzlib/Copyright.txt
diff --git a/doc/cmake-3.17/cmzstd/LICENSE b/doc/cmake-3.18/cmzstd/LICENSE
index a793a80..a793a80 100644
--- a/doc/cmake-3.17/cmzstd/LICENSE
+++ b/doc/cmake-3.18/cmzstd/LICENSE
diff --git a/share/cmake-3.17/completions/cmake b/share/bash-completion/completions/cmake
index d8d2c86..d8d2c86 100644
--- a/share/cmake-3.17/completions/cmake
+++ b/share/bash-completion/completions/cmake
diff --git a/share/cmake-3.17/completions/cpack b/share/bash-completion/completions/cpack
index cf5751f..cf5751f 100644
--- a/share/cmake-3.17/completions/cpack
+++ b/share/bash-completion/completions/cpack
diff --git a/share/cmake-3.17/completions/ctest b/share/bash-completion/completions/ctest
index 49343bb..49343bb 100644
--- a/share/cmake-3.17/completions/ctest
+++ b/share/bash-completion/completions/ctest
diff --git a/share/cmake-3.17/Help/command/FIND_XXX.txt b/share/cmake-3.17/Help/command/FIND_XXX.txt
deleted file mode 100644
index 42bf52b..0000000
--- a/share/cmake-3.17/Help/command/FIND_XXX.txt
+++ /dev/null
@@ -1,152 +0,0 @@
-A short-hand signature is:
-
-.. parsed-literal::
-
- |FIND_XXX| (<VAR> name1 [path1 path2 ...])
-
-The general signature is:
-
-.. parsed-literal::
-
- |FIND_XXX| (
- <VAR>
- name | |NAMES|
- [HINTS path1 [path2 ... ENV var]]
- [PATHS path1 [path2 ... ENV var]]
- [PATH_SUFFIXES suffix1 [suffix2 ...]]
- [DOC "cache documentation string"]
- [NO_DEFAULT_PATH]
- [NO_PACKAGE_ROOT_PATH]
- [NO_CMAKE_PATH]
- [NO_CMAKE_ENVIRONMENT_PATH]
- [NO_SYSTEM_ENVIRONMENT_PATH]
- [NO_CMAKE_SYSTEM_PATH]
- [CMAKE_FIND_ROOT_PATH_BOTH |
- ONLY_CMAKE_FIND_ROOT_PATH |
- NO_CMAKE_FIND_ROOT_PATH]
- )
-
-This command is used to find a |SEARCH_XXX_DESC|.
-A cache entry named by ``<VAR>`` is created to store the result
-of this command.
-If the |SEARCH_XXX| is found the result is stored in the variable
-and the search will not be repeated unless the variable is cleared.
-If nothing is found, the result will be
-``<VAR>-NOTFOUND``, and the search will be attempted again the
-next time |FIND_XXX| is invoked with the same variable.
-
-Options include:
-
-``NAMES``
- Specify one or more possible names for the |SEARCH_XXX|.
-
- When using this to specify names with and without a version
- suffix, we recommend specifying the unversioned name first
- so that locally-built packages can be found before those
- provided by distributions.
-
-``HINTS``, ``PATHS``
- Specify directories to search in addition to the default locations.
- The ``ENV var`` sub-option reads paths from a system environment
- variable.
-
-``PATH_SUFFIXES``
- Specify additional subdirectories to check below each directory
- location otherwise considered.
-
-``DOC``
- Specify the documentation string for the ``<VAR>`` cache entry.
-
-If ``NO_DEFAULT_PATH`` is specified, then no additional paths are
-added to the search.
-If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows:
-
-.. |FIND_PACKAGE_ROOT_PREFIX_PATH_XXX_SUBDIR| replace::
- |prefix_XXX_SUBDIR| for each ``<prefix>`` in the
- :variable:`<PackageName>_ROOT` CMake variable and the
- :envvar:`<PackageName>_ROOT` environment variable if
- called from within a find module loaded by
- :command:`find_package(<PackageName>)`
-
-.. |CMAKE_PREFIX_PATH_XXX_SUBDIR| replace::
- |prefix_XXX_SUBDIR| for each ``<prefix>`` in :variable:`CMAKE_PREFIX_PATH`
-
-.. |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR| replace::
- |prefix_XXX_SUBDIR| for each ``<prefix>/[s]bin`` in ``PATH``, and
- |entry_XXX_SUBDIR| for other entries in ``PATH``
-
-.. |CMAKE_SYSTEM_PREFIX_PATH_XXX_SUBDIR| replace::
- |prefix_XXX_SUBDIR| for each ``<prefix>`` in
- :variable:`CMAKE_SYSTEM_PREFIX_PATH`
-
-1. If called from within a find module or any other script loaded by a call to
- :command:`find_package(<PackageName>)`, search prefixes unique to the
- current package being found. Specifically, look in the
- :variable:`<PackageName>_ROOT` CMake variable and the
- :envvar:`<PackageName>_ROOT` environment variable.
- The package root variables are maintained as a stack, so if called from
- nested find modules or config packages, root paths from the parent's find
- module or config package will be searched after paths from the current
- module or package. In other words, the search order would be
- ``<CurrentPackage>_ROOT``, ``ENV{<CurrentPackage>_ROOT}``,
- ``<ParentPackage>_ROOT``, ``ENV{<ParentPackage>_ROOT}``, etc.
- This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed or by setting
- the :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` to ``FALSE``.
- See policy :policy:`CMP0074`.
-
- * |FIND_PACKAGE_ROOT_PREFIX_PATH_XXX|
-
-2. Search paths specified in cmake-specific cache variables.
- These are intended to be used on the command line with a ``-DVAR=value``.
- The values are interpreted as :ref:`semicolon-separated lists <CMake Language Lists>`.
- This can be skipped if ``NO_CMAKE_PATH`` is passed or by setting the
- :variable:`CMAKE_FIND_USE_CMAKE_PATH` to ``FALSE``.
-
- * |CMAKE_PREFIX_PATH_XXX|
- * |CMAKE_XXX_PATH|
- * |CMAKE_XXX_MAC_PATH|
-
-3. Search paths specified in cmake-specific environment variables.
- These are intended to be set in the user's shell configuration,
- and therefore use the host's native path separator
- (``;`` on Windows and ``:`` on UNIX).
- This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed or
- by setting the :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` to ``FALSE``.
-
- * |CMAKE_PREFIX_PATH_XXX|
- * |CMAKE_XXX_PATH|
- * |CMAKE_XXX_MAC_PATH|
-
-4. Search the paths specified by the ``HINTS`` option.
- These should be paths computed by system introspection, such as a
- hint provided by the location of another item already found.
- Hard-coded guesses should be specified with the ``PATHS`` option.
-
-5. Search the standard system environment variables.
- This can be skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is passed or by
- setting the :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` to ``FALSE``.
-
- * |SYSTEM_ENVIRONMENT_PATH_XXX|
- * |SYSTEM_ENVIRONMENT_PATH_WINDOWS_XXX|
-
-6. Search cmake variables defined in the Platform files
- for the current system. This can be skipped if ``NO_CMAKE_SYSTEM_PATH``
- is passed or by setting the :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH`
- to ``FALSE``.
-
- * |CMAKE_SYSTEM_PREFIX_PATH_XXX|
- * |CMAKE_SYSTEM_XXX_PATH|
- * |CMAKE_SYSTEM_XXX_MAC_PATH|
-
-7. Search the paths specified by the PATHS option
- or in the short-hand version of the command.
- These are typically hard-coded guesses.
-
-.. |FIND_ARGS_XXX| replace:: <VAR> NAMES name
-
-On macOS the :variable:`CMAKE_FIND_FRAMEWORK` and
-:variable:`CMAKE_FIND_APPBUNDLE` variables determine the order of
-preference between Apple-style and unix-style package components.
-
-.. include:: FIND_XXX_ROOT.txt
-.. include:: FIND_XXX_ORDER.txt
diff --git a/share/cmake-3.17/Help/command/add_compile_definitions.rst b/share/cmake-3.17/Help/command/add_compile_definitions.rst
deleted file mode 100644
index 8225da7..0000000
--- a/share/cmake-3.17/Help/command/add_compile_definitions.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-add_compile_definitions
------------------------
-
-Add preprocessor definitions to the compilation of source files.
-
-.. code-block:: cmake
-
- add_compile_definitions(<definition> ...)
-
-Adds preprocessor definitions to the compiler command line for targets in the
-current directory and below (whether added before or after this command is
-invoked). See documentation of the :prop_dir:`directory <COMPILE_DEFINITIONS>`
-and :prop_tgt:`target <COMPILE_DEFINITIONS>` ``COMPILE_DEFINITIONS`` properties.
-
-Definitions are specified using the syntax ``VAR`` or ``VAR=value``.
-Function-style definitions are not supported. CMake will automatically
-escape the value correctly for the native build system (note that CMake
-language syntax may require escapes to specify some values).
-
-Arguments to ``add_compile_definitions`` may use "generator expressions" with
-the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
-manual for available expressions. See the :manual:`cmake-buildsystem(7)`
-manual for more on defining buildsystem properties.
diff --git a/share/cmake-3.17/Help/command/add_compile_options.rst b/share/cmake-3.17/Help/command/add_compile_options.rst
deleted file mode 100644
index 43805c3..0000000
--- a/share/cmake-3.17/Help/command/add_compile_options.rst
+++ /dev/null
@@ -1,48 +0,0 @@
-add_compile_options
--------------------
-
-Add options to the compilation of source files.
-
-.. code-block:: cmake
-
- add_compile_options(<option> ...)
-
-Adds options to the :prop_dir:`COMPILE_OPTIONS` directory property.
-These options are used when compiling targets from the current
-directory and below.
-
-Arguments
-^^^^^^^^^
-
-Arguments to ``add_compile_options`` may use "generator expressions" with
-the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
-manual for available expressions. See the :manual:`cmake-buildsystem(7)`
-manual for more on defining buildsystem properties.
-
-.. include:: OPTIONS_SHELL.txt
-
-Example
-^^^^^^^
-
-Since different compilers support different options, a typical use of
-this command is in a compiler-specific conditional clause:
-
-.. code-block:: cmake
-
- if (MSVC)
- # warning level 4 and all warnings as errors
- add_compile_options(/W4 /WX)
- else()
- # lots of warnings and all warnings as errors
- add_compile_options(-Wall -Wextra -pedantic -Werror)
- endif()
-
-See Also
-^^^^^^^^
-
-This command can be used to add any options. However, for
-adding preprocessor definitions and include directories it is recommended
-to use the more specific commands :command:`add_compile_definitions`
-and :command:`include_directories`.
-
-The command :command:`target_compile_options` adds target-specific options.
diff --git a/share/cmake-3.17/Help/command/add_definitions.rst b/share/cmake-3.17/Help/command/add_definitions.rst
deleted file mode 100644
index d06b01c..0000000
--- a/share/cmake-3.17/Help/command/add_definitions.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-add_definitions
----------------
-
-Add -D define flags to the compilation of source files.
-
-.. code-block:: cmake
-
- add_definitions(-DFOO -DBAR ...)
-
-Adds definitions to the compiler command line for targets in the current
-directory and below (whether added before or after this command is invoked).
-This command can be used to add any flags, but it is intended to add
-preprocessor definitions.
-
-.. note::
-
- This command has been superseded by alternatives:
-
- * Use :command:`add_compile_definitions` to add preprocessor definitions.
- * Use :command:`include_directories` to add include directories.
- * Use :command:`add_compile_options` to add other options.
-
-Flags beginning in ``-D`` or ``/D`` that look like preprocessor definitions are
-automatically added to the :prop_dir:`COMPILE_DEFINITIONS` directory
-property for the current directory. Definitions with non-trivial values
-may be left in the set of flags instead of being converted for reasons of
-backwards compatibility. See documentation of the
-:prop_dir:`directory <COMPILE_DEFINITIONS>`,
-:prop_tgt:`target <COMPILE_DEFINITIONS>`,
-:prop_sf:`source file <COMPILE_DEFINITIONS>` ``COMPILE_DEFINITIONS``
-properties for details on adding preprocessor definitions to specific
-scopes and configurations.
-
-See the :manual:`cmake-buildsystem(7)` manual for more on defining
-buildsystem properties.
diff --git a/share/cmake-3.17/Help/command/add_executable.rst b/share/cmake-3.17/Help/command/add_executable.rst
deleted file mode 100644
index 0a7d7e1..0000000
--- a/share/cmake-3.17/Help/command/add_executable.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-add_executable
---------------
-
-Add an executable to the project using the specified source files.
-
-.. code-block:: cmake
-
- add_executable(<name> [WIN32] [MACOSX_BUNDLE]
- [EXCLUDE_FROM_ALL]
- [source1] [source2 ...])
-
-Adds an executable target called ``<name>`` to be built from the source
-files listed in the command invocation. (The source files can be omitted
-here if they are added later using :command:`target_sources`.) The
-``<name>`` corresponds to the logical target name and must be globally
-unique within a project. The actual file name of the executable built is
-constructed based on conventions of the native platform (such as
-``<name>.exe`` or just ``<name>``).
-
-By default the executable file will be created in the build tree
-directory corresponding to the source tree directory in which the
-command was invoked. See documentation of the
-:prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target property to change this
-location. See documentation of the :prop_tgt:`OUTPUT_NAME` target property
-to change the ``<name>`` part of the final file name.
-
-If ``WIN32`` is given the property :prop_tgt:`WIN32_EXECUTABLE` will be
-set on the target created. See documentation of that target property for
-details.
-
-If ``MACOSX_BUNDLE`` is given the corresponding property will be set on
-the created target. See documentation of the :prop_tgt:`MACOSX_BUNDLE`
-target property for details.
-
-If ``EXCLUDE_FROM_ALL`` is given the corresponding property will be set on
-the created target. See documentation of the :prop_tgt:`EXCLUDE_FROM_ALL`
-target property for details.
-
-Source arguments to ``add_executable`` may use "generator expressions" with
-the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
-manual for available expressions. See the :manual:`cmake-buildsystem(7)`
-manual for more on defining buildsystem properties.
-
-See also :prop_sf:`HEADER_FILE_ONLY` on what to do if some sources are
-pre-processed, and you want to have the original sources reachable from
-within IDE.
-
---------------------------------------------------------------------------
-
-.. code-block:: cmake
-
- add_executable(<name> IMPORTED [GLOBAL])
-
-An :ref:`IMPORTED executable target <Imported Targets>` references an
-executable file located outside the project. No rules are generated to
-build it, and the :prop_tgt:`IMPORTED` target property is ``True``. The
-target name has scope in the directory in which it is created and below, but
-the ``GLOBAL`` option extends visibility. It may be referenced like any
-target built within the project. ``IMPORTED`` executables are useful
-for convenient reference from commands like :command:`add_custom_command`.
-Details about the imported executable are specified by setting properties
-whose names begin in ``IMPORTED_``. The most important such property is
-:prop_tgt:`IMPORTED_LOCATION` (and its per-configuration version
-:prop_tgt:`IMPORTED_LOCATION_<CONFIG>`) which specifies the location of
-the main executable file on disk. See documentation of the ``IMPORTED_*``
-properties for more information.
-
---------------------------------------------------------------------------
-
-.. code-block:: cmake
-
- add_executable(<name> ALIAS <target>)
-
-Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can
-be used to refer to ``<target>`` in subsequent commands. The ``<name>``
-does not appear in the generated buildsystem as a make target. The
-``<target>`` may not be a non-``GLOBAL``
-:ref:`Imported Target <Imported Targets>` or an ``ALIAS``.
-``ALIAS`` targets can be used as targets to read properties
-from, executables for custom commands and custom targets. They can also be
-tested for existence with the regular :command:`if(TARGET)` subcommand.
-The ``<name>`` may not be used to modify properties of ``<target>``, that
-is, it may not be used as the operand of :command:`set_property`,
-:command:`set_target_properties`, :command:`target_link_libraries` etc.
-An ``ALIAS`` target may not be installed or exported.
diff --git a/share/cmake-3.17/Help/command/add_library.rst b/share/cmake-3.17/Help/command/add_library.rst
deleted file mode 100644
index 7274e44..0000000
--- a/share/cmake-3.17/Help/command/add_library.rst
+++ /dev/null
@@ -1,182 +0,0 @@
-add_library
------------
-
-.. only:: html
-
- .. contents::
-
-Add a library to the project using the specified source files.
-
-Normal Libraries
-^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- add_library(<name> [STATIC | SHARED | MODULE]
- [EXCLUDE_FROM_ALL]
- [source1] [source2 ...])
-
-Adds a library target called ``<name>`` to be built from the source files
-listed in the command invocation. (The source files can be omitted here
-if they are added later using :command:`target_sources`.) The ``<name>``
-corresponds to the logical target name and must be globally unique within
-a project. The actual file name of the library built is constructed based
-on conventions of the native platform (such as ``lib<name>.a`` or
-``<name>.lib``).
-
-``STATIC``, ``SHARED``, or ``MODULE`` may be given to specify the type of
-library to be created. ``STATIC`` libraries are archives of object files
-for use when linking other targets. ``SHARED`` libraries are linked
-dynamically and loaded at runtime. ``MODULE`` libraries are plugins that
-are not linked into other targets but may be loaded dynamically at runtime
-using dlopen-like functionality. If no type is given explicitly the
-type is ``STATIC`` or ``SHARED`` based on whether the current value of the
-variable :variable:`BUILD_SHARED_LIBS` is ``ON``. For ``SHARED`` and
-``MODULE`` libraries the :prop_tgt:`POSITION_INDEPENDENT_CODE` target
-property is set to ``ON`` automatically.
-A ``SHARED`` or ``STATIC`` library may be marked with the :prop_tgt:`FRAMEWORK`
-target property to create an macOS Framework.
-
-If a library does not export any symbols, it must not be declared as a
-``SHARED`` library. For example, a Windows resource DLL or a managed C++/CLI
-DLL that exports no unmanaged symbols would need to be a ``MODULE`` library.
-This is because CMake expects a ``SHARED`` library to always have an
-associated import library on Windows.
-
-By default the library file will be created in the build tree directory
-corresponding to the source tree directory in which the command was
-invoked. See documentation of the :prop_tgt:`ARCHIVE_OUTPUT_DIRECTORY`,
-:prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`, and
-:prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target properties to change this
-location. See documentation of the :prop_tgt:`OUTPUT_NAME` target
-property to change the ``<name>`` part of the final file name.
-
-If ``EXCLUDE_FROM_ALL`` is given the corresponding property will be set on
-the created target. See documentation of the :prop_tgt:`EXCLUDE_FROM_ALL`
-target property for details.
-
-Source arguments to ``add_library`` may use "generator expressions" with
-the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
-manual for available expressions. See the :manual:`cmake-buildsystem(7)`
-manual for more on defining buildsystem properties.
-
-See also :prop_sf:`HEADER_FILE_ONLY` on what to do if some sources are
-pre-processed, and you want to have the original sources reachable from
-within IDE.
-
-Imported Libraries
-^^^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- add_library(<name> <SHARED|STATIC|MODULE|OBJECT|UNKNOWN> IMPORTED
- [GLOBAL])
-
-An :ref:`IMPORTED library target <Imported Targets>` references a library
-file located outside the project. No rules are generated to build it, and
-the :prop_tgt:`IMPORTED` target property is ``True``. The target name has
-scope in the directory in which it is created and below, but the ``GLOBAL``
-option extends visibility. It may be referenced like any target built
-within the project. ``IMPORTED`` libraries are useful for convenient
-reference from commands like :command:`target_link_libraries`. Details
-about the imported library are specified by setting properties whose names
-begin in ``IMPORTED_`` and ``INTERFACE_``.
-
-The most important properties are:
-
-* :prop_tgt:`IMPORTED_LOCATION` (and its per-configuration
- variant :prop_tgt:`IMPORTED_LOCATION_<CONFIG>`) which specifies the
- location of the main library file on disk.
-* :prop_tgt:`IMPORTED_OBJECTS` (and :prop_tgt:`IMPORTED_OBJECTS_<CONFIG>`)
- for object libraries, specifies the locations of object files on disk.
-* :prop_tgt:`PUBLIC_HEADER` files to be installed during :command:`install` invocation
-
-See documentation of the ``IMPORTED_*`` and ``INTERFACE_*`` properties
-for more information.
-
-An ``UNKNOWN`` library type is typically only used in the implementation of
-:ref:`Find Modules`. It allows the path to an imported library (often found
-using the :command:`find_library` command) to be used without having to know
-what type of library it is. This is especially useful on Windows where a
-static library and a DLL's import library both have the same file extension.
-
-Object Libraries
-^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- add_library(<name> OBJECT <src>...)
-
-Creates an :ref:`Object Library <Object Libraries>`. An object library
-compiles source files but does not archive or link their object files into a
-library. Instead other targets created by :command:`add_library` or
-:command:`add_executable` may reference the objects using an expression of the
-form ``$<TARGET_OBJECTS:objlib>`` as a source, where ``objlib`` is the
-object library name. For example:
-
-.. code-block:: cmake
-
- add_library(... $<TARGET_OBJECTS:objlib> ...)
- add_executable(... $<TARGET_OBJECTS:objlib> ...)
-
-will include objlib's object files in a library and an executable
-along with those compiled from their own sources. Object libraries
-may contain only sources that compile, header files, and other files
-that would not affect linking of a normal library (e.g. ``.txt``).
-They may contain custom commands generating such sources, but not
-``PRE_BUILD``, ``PRE_LINK``, or ``POST_BUILD`` commands. Some native build
-systems (such as Xcode) may not like targets that have only object files, so
-consider adding at least one real source file to any target that references
-``$<TARGET_OBJECTS:objlib>``.
-
-Alias Libraries
-^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- add_library(<name> ALIAS <target>)
-
-Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can be
-used to refer to ``<target>`` in subsequent commands. The ``<name>`` does
-not appear in the generated buildsystem as a make target. The ``<target>``
-may not be a non-``GLOBAL`` :ref:`Imported Target <Imported Targets>` or an
-``ALIAS``.
-``ALIAS`` targets can be used as linkable targets and as targets to
-read properties from. They can also be tested for existence with the
-regular :command:`if(TARGET)` subcommand. The ``<name>`` may not be used
-to modify properties of ``<target>``, that is, it may not be used as the
-operand of :command:`set_property`, :command:`set_target_properties`,
-:command:`target_link_libraries` etc. An ``ALIAS`` target may not be
-installed or exported.
-
-Interface Libraries
-^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- add_library(<name> INTERFACE [IMPORTED [GLOBAL]])
-
-Creates an :ref:`Interface Library <Interface Libraries>`. An ``INTERFACE``
-library target does not directly create build output, though it may
-have properties set on it and it may be installed, exported and
-imported. Typically the ``INTERFACE_*`` properties are populated on
-the interface target using the commands:
-
-* :command:`set_property`,
-* :command:`target_link_libraries(INTERFACE)`,
-* :command:`target_link_options(INTERFACE)`,
-* :command:`target_include_directories(INTERFACE)`,
-* :command:`target_compile_options(INTERFACE)`,
-* :command:`target_compile_definitions(INTERFACE)`, and
-* :command:`target_sources(INTERFACE)`,
-
-and then it is used as an argument to :command:`target_link_libraries`
-like any other target.
-
-An ``INTERFACE`` :ref:`Imported Target <Imported Targets>` may also be
-created with this signature. An ``IMPORTED`` library target references a
-library defined outside the project. The target name has scope in the
-directory in which it is created and below, but the ``GLOBAL`` option
-extends visibility. It may be referenced like any target built within
-the project. ``IMPORTED`` libraries are useful for convenient reference
-from commands like :command:`target_link_libraries`.
diff --git a/share/cmake-3.17/Help/command/add_link_options.rst b/share/cmake-3.17/Help/command/add_link_options.rst
deleted file mode 100644
index a83005b..0000000
--- a/share/cmake-3.17/Help/command/add_link_options.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-add_link_options
-----------------
-
-Add options to the link step for executable, shared library or module
-library targets in the current directory and below that are added after
-this command is invoked.
-
-.. code-block:: cmake
-
- add_link_options(<option> ...)
-
-This command can be used to add any link options, but alternative commands
-exist to add libraries (:command:`target_link_libraries` or
-:command:`link_libraries`). See documentation of the
-:prop_dir:`directory <LINK_OPTIONS>` and
-:prop_tgt:`target <LINK_OPTIONS>` ``LINK_OPTIONS`` properties.
-
-.. note::
-
- This command cannot be used to add options for static library targets,
- since they do not use a linker. To add archiver or MSVC librarian flags,
- see the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property.
-
-Arguments to ``add_link_options`` may use "generator expressions" with
-the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
-manual for available expressions. See the :manual:`cmake-buildsystem(7)`
-manual for more on defining buildsystem properties.
-
-.. include:: OPTIONS_SHELL.txt
-
-.. include:: LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.17/Help/command/ctest_test.rst b/share/cmake-3.17/Help/command/ctest_test.rst
deleted file mode 100644
index 5c67b2c..0000000
--- a/share/cmake-3.17/Help/command/ctest_test.rst
+++ /dev/null
@@ -1,140 +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>]
- [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.17/Help/command/execute_process.rst b/share/cmake-3.17/Help/command/execute_process.rst
deleted file mode 100644
index 14f879d..0000000
--- a/share/cmake-3.17/Help/command/execute_process.rst
+++ /dev/null
@@ -1,118 +0,0 @@
-execute_process
----------------
-
-Execute one or more child processes.
-
-.. code-block:: cmake
-
- execute_process(COMMAND <cmd1> [<arguments>]
- [COMMAND <cmd2> [<arguments>]]...
- [WORKING_DIRECTORY <directory>]
- [TIMEOUT <seconds>]
- [RESULT_VARIABLE <variable>]
- [RESULTS_VARIABLE <variable>]
- [OUTPUT_VARIABLE <variable>]
- [ERROR_VARIABLE <variable>]
- [INPUT_FILE <file>]
- [OUTPUT_FILE <file>]
- [ERROR_FILE <file>]
- [OUTPUT_QUIET]
- [ERROR_QUIET]
- [COMMAND_ECHO <where>]
- [OUTPUT_STRIP_TRAILING_WHITESPACE]
- [ERROR_STRIP_TRAILING_WHITESPACE]
- [ENCODING <name>])
-
-Runs the given sequence of one or more commands.
-
-Commands are executed concurrently as a pipeline, with the standard
-output of each process piped to the standard input of the next.
-A single standard error pipe is used for all processes.
-
-Options:
-
-``COMMAND``
- A child process command line.
-
- CMake executes the child process using operating system APIs directly.
- All arguments are passed VERBATIM to the child process.
- No intermediate shell is used, so shell operators such as ``>``
- are treated as normal arguments.
- (Use the ``INPUT_*``, ``OUTPUT_*``, and ``ERROR_*`` options to
- redirect stdin, stdout, and stderr.)
-
- If a sequential execution of multiple commands is required, use multiple
- :command:`execute_process` calls with a single ``COMMAND`` argument.
-
-``WORKING_DIRECTORY``
- The named directory will be set as the current working directory of
- the child processes.
-
-``TIMEOUT``
- After the specified number of seconds (fractions allowed), all unfinished
- child processes will be terminated, and the ``RESULT_VARIABLE`` will be
- set to a string mentioning the "timeout".
-
-``RESULT_VARIABLE``
- The variable will be set to contain the result of last child process.
- This will be an integer return code from the last child or a string
- describing an error condition.
-
-``RESULTS_VARIABLE <variable>``
- The variable will be set to contain the result of all processes as a
- :ref:`semicolon-separated list <CMake Language Lists>`, in order of the
- given ``COMMAND`` arguments. Each entry will be an integer return code
- from the corresponding child or a string describing an error condition.
-
-``OUTPUT_VARIABLE``, ``ERROR_VARIABLE``
- The variable named will be set with the contents of the standard output
- and standard error pipes, respectively. If the same variable is named
- for both pipes their output will be merged in the order produced.
-
-``INPUT_FILE, OUTPUT_FILE``, ``ERROR_FILE``
- The file named will be attached to the standard input of the first
- process, standard output of the last process, or standard error of
- all processes, respectively. If the same file is named for both
- output and error then it will be used for both.
-
-``OUTPUT_QUIET``, ``ERROR_QUIET``
- The standard output or standard error results will be quietly ignored.
-
-``COMMAND_ECHO <where>``
- The command being run will be echo'ed to ``<where>`` with ``<where>``
- being set to one of ``STDERR``, ``STDOUT`` or ``NONE``.
- See the :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable for a way
- to control the default behavior when this option is not present.
-
-``ENCODING <name>``
- On Windows, the encoding that is used to decode output from the process.
- Ignored on other platforms.
- Valid encoding names are:
-
- ``NONE``
- Perform no decoding. This assumes that the process output is encoded
- in the same way as CMake's internal encoding (UTF-8).
- This is the default.
- ``AUTO``
- Use the current active console's codepage or if that isn't
- available then use ANSI.
- ``ANSI``
- Use the ANSI codepage.
- ``OEM``
- Use the original equipment manufacturer (OEM) code page.
- ``UTF8`` or ``UTF-8``
- Use the UTF-8 codepage. Prior to CMake 3.11.0, only ``UTF8`` was accepted
- for this encoding. In CMake 3.11.0, ``UTF-8`` was added for consistency with
- the `UTF-8 RFC <https://www.ietf.org/rfc/rfc3629>`_ naming convention.
-
-If more than one ``OUTPUT_*`` or ``ERROR_*`` option is given for the
-same pipe the precedence is not specified.
-If no ``OUTPUT_*`` or ``ERROR_*`` options are given the output will
-be shared with the corresponding pipes of the CMake process itself.
-
-The :command:`execute_process` command is a newer more powerful version of
-:command:`exec_program`, but the old command has been kept for compatibility.
-Both commands run while CMake is processing the project prior to build
-system generation. Use :command:`add_custom_target` and
-:command:`add_custom_command` to create custom commands that run at
-build time.
diff --git a/share/cmake-3.17/Help/command/file.rst b/share/cmake-3.17/Help/command/file.rst
deleted file mode 100644
index df7d8ba..0000000
--- a/share/cmake-3.17/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
-``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.17/Help/command/find_package.rst b/share/cmake-3.17/Help/command/find_package.rst
deleted file mode 100644
index 64a16f3..0000000
--- a/share/cmake-3.17/Help/command/find_package.rst
+++ /dev/null
@@ -1,422 +0,0 @@
-find_package
-------------
-
-.. only:: html
-
- .. contents::
-
-Find an external project, and load its settings.
-
-.. _`basic signature`:
-
-Basic Signature and Module Mode
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- find_package(<PackageName> [version] [EXACT] [QUIET] [MODULE]
- [REQUIRED] [[COMPONENTS] [components...]]
- [OPTIONAL_COMPONENTS components...]
- [NO_POLICY_SCOPE])
-
-Finds and loads settings from an external project. ``<PackageName>_FOUND``
-will be set to indicate whether the package was found. When the
-package is found package-specific information is provided through
-variables and :ref:`Imported Targets` documented by the package itself. The
-``QUIET`` option disables informational messages, including those indicating
-that the package cannot be found if it is not ``REQUIRED``. The ``REQUIRED``
-option stops processing with an error message if the package cannot be found.
-
-A package-specific list of required components may be listed after the
-``COMPONENTS`` option (or after the ``REQUIRED`` option if present).
-Additional optional components may be listed after
-``OPTIONAL_COMPONENTS``. Available components and their influence on
-whether a package is considered to be found are defined by the target
-package.
-
-The ``[version]`` argument requests a version with which the package found
-should be compatible (format is ``major[.minor[.patch[.tweak]]]``). The
-``EXACT`` option requests that the version be matched exactly. If no
-``[version]`` and/or component list is given to a recursive invocation
-inside a find-module, the corresponding arguments are forwarded
-automatically from the outer call (including the ``EXACT`` flag for
-``[version]``). Version support is currently provided only on a
-package-by-package basis (see the `Version Selection`_ section below).
-
-See the :command:`cmake_policy` command documentation for discussion
-of the ``NO_POLICY_SCOPE`` option.
-
-The command has two modes by which it searches for packages: "Module"
-mode and "Config" mode. The above signature selects Module mode.
-If no module is found the command falls back to Config mode, described
-below. This fall back is disabled if the ``MODULE`` option is given.
-
-In Module mode, CMake searches for a file called ``Find<PackageName>.cmake``.
-The file is first searched in the :variable:`CMAKE_MODULE_PATH`,
-then among the :ref:`Find Modules` provided by the CMake installation.
-If the file is found, it is read and processed by CMake. It is responsible
-for finding the package, checking the version, and producing any needed
-messages. Some find-modules provide limited or no support for versioning;
-check the module documentation.
-
-If the ``MODULE`` option is not specfied in the above signature,
-CMake first searches for the package using Module mode. Then, if the
-package is not found, it searches again using Config mode. A user
-may set the variable :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` to
-``TRUE`` to direct CMake first search using Config mode before falling
-back to Module mode.
-
-Full Signature and Config Mode
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-User code should generally look for packages using the above `basic
-signature`_. The remainder of this command documentation specifies the
-full command signature and details of the search process. Project
-maintainers wishing to provide a package to be found by this command
-are encouraged to read on.
-
-The complete Config mode command signature is
-
-.. code-block:: cmake
-
- find_package(<PackageName> [version] [EXACT] [QUIET]
- [REQUIRED] [[COMPONENTS] [components...]]
- [OPTIONAL_COMPONENTS components...]
- [CONFIG|NO_MODULE]
- [NO_POLICY_SCOPE]
- [NAMES name1 [name2 ...]]
- [CONFIGS config1 [config2 ...]]
- [HINTS path1 [path2 ... ]]
- [PATHS path1 [path2 ... ]]
- [PATH_SUFFIXES suffix1 [suffix2 ...]]
- [NO_DEFAULT_PATH]
- [NO_PACKAGE_ROOT_PATH]
- [NO_CMAKE_PATH]
- [NO_CMAKE_ENVIRONMENT_PATH]
- [NO_SYSTEM_ENVIRONMENT_PATH]
- [NO_CMAKE_PACKAGE_REGISTRY]
- [NO_CMAKE_BUILDS_PATH] # Deprecated; does nothing.
- [NO_CMAKE_SYSTEM_PATH]
- [NO_CMAKE_SYSTEM_PACKAGE_REGISTRY]
- [CMAKE_FIND_ROOT_PATH_BOTH |
- ONLY_CMAKE_FIND_ROOT_PATH |
- NO_CMAKE_FIND_ROOT_PATH])
-
-The ``CONFIG`` option, the synonymous ``NO_MODULE`` option, or the use
-of options not specified in the `basic signature`_ all enforce pure Config
-mode. In pure Config mode, the command skips Module mode search and
-proceeds at once with Config mode search.
-
-Config mode search attempts to locate a configuration file provided by the
-package to be found. A cache entry called ``<PackageName>_DIR`` is created to
-hold the directory containing the file. By default the command
-searches for a package with the name ``<PackageName>``. If the ``NAMES`` option
-is given the names following it are used instead of ``<PackageName>``.
-The command searches for a file called ``<PackageName>Config.cmake`` or
-``<lower-case-package-name>-config.cmake`` for each name specified.
-A replacement set of possible configuration file names may be given
-using the ``CONFIGS`` option. The search procedure is specified below.
-Once found, the configuration file is read and processed by CMake.
-Since the file is provided by the package it already knows the
-location of package contents. The full path to the configuration file
-is stored in the cmake variable ``<PackageName>_CONFIG``.
-
-All configuration files which have been considered by CMake while
-searching for an installation of the package with an appropriate
-version are stored in the cmake variable ``<PackageName>_CONSIDERED_CONFIGS``,
-the associated versions in ``<PackageName>_CONSIDERED_VERSIONS``.
-
-If the package configuration file cannot be found CMake will generate
-an error describing the problem unless the ``QUIET`` argument is
-specified. If ``REQUIRED`` is specified and the package is not found a
-fatal error is generated and the configure step stops executing. If
-``<PackageName>_DIR`` has been set to a directory not containing a
-configuration file CMake will ignore it and search from scratch.
-
-Package maintainers providing CMake package configuration files are
-encouraged to name and install them such that the `Search Procedure`_
-outlined below will find them without requiring use of additional options.
-
-Version Selection
-^^^^^^^^^^^^^^^^^
-
-When the ``[version]`` argument is given Config mode will only find a
-version of the package that claims compatibility with the requested
-version (format is ``major[.minor[.patch[.tweak]]]``). If the ``EXACT``
-option is given only a version of the package claiming an exact match
-of the requested version may be found. CMake does not establish any
-convention for the meaning of version numbers. Package version
-numbers are checked by "version" files provided by the packages
-themselves. For a candidate package configuration file
-``<config-file>.cmake`` the corresponding version file is located next
-to it and named either ``<config-file>-version.cmake`` or
-``<config-file>Version.cmake``. If no such version file is available
-then the configuration file is assumed to not be compatible with any
-requested version. A basic version file containing generic version
-matching code can be created using the
-:module:`CMakePackageConfigHelpers` module. When a version file
-is found it is loaded to check the requested version number. The
-version file is loaded in a nested scope in which the following
-variables have been defined:
-
-``PACKAGE_FIND_NAME``
- the ``<PackageName>``
-``PACKAGE_FIND_VERSION``
- full requested version string
-``PACKAGE_FIND_VERSION_MAJOR``
- major version if requested, else 0
-``PACKAGE_FIND_VERSION_MINOR``
- minor version if requested, else 0
-``PACKAGE_FIND_VERSION_PATCH``
- patch version if requested, else 0
-``PACKAGE_FIND_VERSION_TWEAK``
- tweak version if requested, else 0
-``PACKAGE_FIND_VERSION_COUNT``
- number of version components, 0 to 4
-
-The version file checks whether it satisfies the requested version and
-sets these variables:
-
-``PACKAGE_VERSION``
- full provided version string
-``PACKAGE_VERSION_EXACT``
- true if version is exact match
-``PACKAGE_VERSION_COMPATIBLE``
- true if version is compatible
-``PACKAGE_VERSION_UNSUITABLE``
- true if unsuitable as any version
-
-These variables are checked by the ``find_package`` command to determine
-whether the configuration file provides an acceptable version. They
-are not available after the ``find_package`` call returns. If the version
-is acceptable the following variables are set:
-
-``<PackageName>_VERSION``
- full provided version string
-``<PackageName>_VERSION_MAJOR``
- major version if provided, else 0
-``<PackageName>_VERSION_MINOR``
- minor version if provided, else 0
-``<PackageName>_VERSION_PATCH``
- patch version if provided, else 0
-``<PackageName>_VERSION_TWEAK``
- tweak version if provided, else 0
-``<PackageName>_VERSION_COUNT``
- number of version components, 0 to 4
-
-and the corresponding package configuration file is loaded.
-When multiple package configuration files are available whose version files
-claim compatibility with the version requested it is unspecified which
-one is chosen: unless the variable :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER`
-is set no attempt is made to choose a highest or closest version number.
-
-To control the order in which ``find_package`` checks for compatibility use
-the two variables :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` and
-:variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION`.
-For instance in order to select the highest version one can set
-
-.. code-block:: cmake
-
- SET(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
- SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)
-
-before calling ``find_package``.
-
-Search Procedure
-^^^^^^^^^^^^^^^^
-
-CMake constructs a set of possible installation prefixes for the
-package. Under each prefix several directories are searched for a
-configuration file. The tables below show the directories searched.
-Each entry is meant for installation trees following Windows (``W``), UNIX
-(``U``), or Apple (``A``) conventions::
-
- <prefix>/ (W)
- <prefix>/(cmake|CMake)/ (W)
- <prefix>/<name>*/ (W)
- <prefix>/<name>*/(cmake|CMake)/ (W)
- <prefix>/(lib/<arch>|lib*|share)/cmake/<name>*/ (U)
- <prefix>/(lib/<arch>|lib*|share)/<name>*/ (U)
- <prefix>/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/ (U)
- <prefix>/<name>*/(lib/<arch>|lib*|share)/cmake/<name>*/ (W/U)
- <prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/ (W/U)
- <prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/ (W/U)
-
-On systems supporting macOS :prop_tgt:`FRAMEWORK` and :prop_tgt:`BUNDLE`, the
-following directories are searched for Frameworks or Application Bundles
-containing a configuration file::
-
- <prefix>/<name>.framework/Resources/ (A)
- <prefix>/<name>.framework/Resources/CMake/ (A)
- <prefix>/<name>.framework/Versions/*/Resources/ (A)
- <prefix>/<name>.framework/Versions/*/Resources/CMake/ (A)
- <prefix>/<name>.app/Contents/Resources/ (A)
- <prefix>/<name>.app/Contents/Resources/CMake/ (A)
-
-In all cases the ``<name>`` is treated as case-insensitive and corresponds
-to any of the names specified (``<PackageName>`` or names given by ``NAMES``).
-
-Paths with ``lib/<arch>`` are enabled if the
-:variable:`CMAKE_LIBRARY_ARCHITECTURE` variable is set. ``lib*`` includes one
-or more of the values ``lib64``, ``lib32``, ``libx32`` or ``lib`` (searched in
-that order).
-
-* Paths with ``lib64`` are searched on 64 bit platforms if the
- :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` property is set to ``TRUE``.
-* Paths with ``lib32`` are searched on 32 bit platforms if the
- :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` property is set to ``TRUE``.
-* Paths with ``libx32`` are searched on platforms using the x32 ABI
- if the :prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` property is set to ``TRUE``.
-* The ``lib`` path is always searched.
-
-If ``PATH_SUFFIXES`` is specified, the suffixes are appended to each
-(``W``) or (``U``) directory entry one-by-one.
-
-This set of directories is intended to work in cooperation with
-projects that provide configuration files in their installation trees.
-Directories above marked with (``W``) are intended for installations on
-Windows where the prefix may point at the top of an application's
-installation directory. Those marked with (``U``) are intended for
-installations on UNIX platforms where the prefix is shared by multiple
-packages. This is merely a convention, so all (``W``) and (``U``) directories
-are still searched on all platforms. Directories marked with (``A``) are
-intended for installations on Apple platforms. The
-:variable:`CMAKE_FIND_FRAMEWORK` and :variable:`CMAKE_FIND_APPBUNDLE`
-variables determine the order of preference.
-
-The set of installation prefixes is constructed using the following
-steps. If ``NO_DEFAULT_PATH`` is specified all ``NO_*`` options are
-enabled.
-
-1. Search paths specified in the :variable:`<PackageName>_ROOT` CMake
- variable and the :envvar:`<PackageName>_ROOT` environment variable,
- where ``<PackageName>`` is the package to be found.
- The package root variables are maintained as a stack so if
- called from within a find module, root paths from the parent's find
- module will also be searched after paths for the current package.
- This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed or by setting
- the :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` to ``FALSE``.
- See policy :policy:`CMP0074`.
-
-2. Search paths specified in cmake-specific cache variables. These
- are intended to be used on the command line with a ``-DVAR=value``.
- The values are interpreted as :ref:`semicolon-separated lists <CMake Language Lists>`.
- This can be skipped if ``NO_CMAKE_PATH`` is passed or by setting the
- :variable:`CMAKE_FIND_USE_CMAKE_PATH` to ``FALSE``::
-
- CMAKE_PREFIX_PATH
- CMAKE_FRAMEWORK_PATH
- CMAKE_APPBUNDLE_PATH
-
-3. Search paths specified in cmake-specific environment variables.
- These are intended to be set in the user's shell configuration,
- and therefore use the host's native path separator
- (``;`` on Windows and ``:`` on UNIX).
- This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed or by setting
- the :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` to ``FALSE``::
-
- <PackageName>_DIR
- CMAKE_PREFIX_PATH
- CMAKE_FRAMEWORK_PATH
- CMAKE_APPBUNDLE_PATH
-
-4. Search paths specified by the ``HINTS`` option. These should be paths
- computed by system introspection, such as a hint provided by the
- location of another item already found. Hard-coded guesses should
- be specified with the ``PATHS`` option.
-
-5. Search the standard system environment variables. This can be
- skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is passed or by setting the
- :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` to ``FALSE``. Path entries
- ending in ``/bin`` or ``/sbin`` are automatically converted to their
- parent directories::
-
- PATH
-
-6. Search paths stored in the CMake :ref:`User Package Registry`.
- This can be skipped if ``NO_CMAKE_PACKAGE_REGISTRY`` is passed or by
- setting the variable :variable:`CMAKE_FIND_USE_PACKAGE_REGISTRY`
- to ``FALSE`` or the deprecated variable
- :variable:`CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY` to ``TRUE``.
-
- See the :manual:`cmake-packages(7)` manual for details on the user
- package registry.
-
-7. Search cmake variables defined in the Platform files for the
- current system. This can be skipped if ``NO_CMAKE_SYSTEM_PATH`` is
- passed or by setting the :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH`
- to ``FALSE``::
-
- CMAKE_SYSTEM_PREFIX_PATH
- CMAKE_SYSTEM_FRAMEWORK_PATH
- CMAKE_SYSTEM_APPBUNDLE_PATH
-
-8. Search paths stored in the CMake :ref:`System Package Registry`.
- This can be skipped if ``NO_CMAKE_SYSTEM_PACKAGE_REGISTRY`` is passed
- or by setting the :variable:`CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY`
- variable to ``FALSE`` or the deprecated variable
- :variable:`CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY` to ``TRUE``.
-
- See the :manual:`cmake-packages(7)` manual for details on the system
- package registry.
-
-9. Search paths specified by the ``PATHS`` option. These are typically
- hard-coded guesses.
-
-.. |FIND_XXX| replace:: find_package
-.. |FIND_ARGS_XXX| replace:: <PackageName>
-.. |CMAKE_FIND_ROOT_PATH_MODE_XXX| replace::
- :variable:`CMAKE_FIND_ROOT_PATH_MODE_PACKAGE`
-
-.. include:: FIND_XXX_ROOT.txt
-.. include:: FIND_XXX_ORDER.txt
-
-By default the value stored in the result variable will be the path at
-which the file is found. The :variable:`CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS`
-variable may be set to ``TRUE`` before calling ``find_package`` in order
-to resolve symbolic links and store the real path to the file.
-
-Every non-REQUIRED ``find_package`` call can be disabled by setting the
-:variable:`CMAKE_DISABLE_FIND_PACKAGE_<PackageName>` variable to ``TRUE``.
-
-Package File Interface Variables
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When loading a find module or package configuration file ``find_package``
-defines variables to provide information about the call arguments (and
-restores their original state before returning):
-
-``CMAKE_FIND_PACKAGE_NAME``
- the ``<PackageName>`` which is searched for
-``<PackageName>_FIND_REQUIRED``
- true if ``REQUIRED`` option was given
-``<PackageName>_FIND_QUIETLY``
- true if ``QUIET`` option was given
-``<PackageName>_FIND_VERSION``
- full requested version string
-``<PackageName>_FIND_VERSION_MAJOR``
- major version if requested, else 0
-``<PackageName>_FIND_VERSION_MINOR``
- minor version if requested, else 0
-``<PackageName>_FIND_VERSION_PATCH``
- patch version if requested, else 0
-``<PackageName>_FIND_VERSION_TWEAK``
- tweak version if requested, else 0
-``<PackageName>_FIND_VERSION_COUNT``
- number of version components, 0 to 4
-``<PackageName>_FIND_VERSION_EXACT``
- true if ``EXACT`` option was given
-``<PackageName>_FIND_COMPONENTS``
- list of requested components
-``<PackageName>_FIND_REQUIRED_<c>``
- true if component ``<c>`` is required,
- false if component ``<c>`` is optional
-
-In Module mode the loaded find module is responsible to honor the
-request detailed by these variables; see the find module for details.
-In Config mode ``find_package`` handles ``REQUIRED``, ``QUIET``, and
-``[version]`` options automatically but leaves it to the package
-configuration file to handle components in a way that makes sense
-for the package. The package configuration file may set
-``<PackageName>_FOUND`` to false to tell ``find_package`` that component
-requirements are not satisfied.
diff --git a/share/cmake-3.17/Help/command/function.rst b/share/cmake-3.17/Help/command/function.rst
deleted file mode 100644
index 53ba754..0000000
--- a/share/cmake-3.17/Help/command/function.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-function
---------
-
-Start recording a function for later invocation as a command.
-
-.. code-block:: cmake
-
- function(<name> [<arg1> ...])
- <commands>
- endfunction()
-
-Defines a function named ``<name>`` that takes arguments named
-``<arg1>``, ... The ``<commands>`` in the function definition
-are recorded; they are not executed until the function is invoked.
-
-Per legacy, the :command:`endfunction` command admits an optional
-``<name>`` argument. If used, it must be a verbatim repeat of the
-argument of the opening ``function`` command.
-
-A function opens a new scope: see :command:`set(var PARENT_SCOPE)` for
-details.
-
-See the :command:`cmake_policy()` command documentation for the behavior
-of policies inside functions.
-
-See the :command:`macro()` command documentation for differences
-between CMake functions and macros.
-
-Invocation
-^^^^^^^^^^
-
-The function invocation is case-insensitive. A function defined as
-
-.. code-block:: cmake
-
- function(foo)
- <commands>
- endfunction()
-
-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 function definition. Typically functions use
-all-lowercase names.
-
-Arguments
-^^^^^^^^^
-
-When the function is invoked, the recorded ``<commands>`` 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
-``ARGC`` variable 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 functions with optional arguments.
-
-Furthermore, ``ARGV`` holds the list of all arguments given to the
-function 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.
diff --git a/share/cmake-3.17/Help/command/get_property.rst b/share/cmake-3.17/Help/command/get_property.rst
deleted file mode 100644
index c0f9b46..0000000
--- a/share/cmake-3.17/Help/command/get_property.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-get_property
-------------
-
-Get a property.
-
-.. code-block:: cmake
-
- get_property(<variable>
- <GLOBAL |
- DIRECTORY [<dir>] |
- TARGET <target> |
- SOURCE <source> |
- INSTALL <file> |
- TEST <test> |
- CACHE <entry> |
- VARIABLE >
- PROPERTY <name>
- [SET | DEFINED | BRIEF_DOCS | FULL_DOCS])
-
-Gets one property from one object in a scope.
-
-The first argument specifies the variable in which to store the result.
-The second argument determines the scope from which to get the property.
-It must be one of the following:
-
-``GLOBAL``
- Scope is unique and does not accept a name.
-
-``DIRECTORY``
- Scope defaults to the current directory but another
- directory (already processed by CMake) may be named by the
- full or relative path ``<dir>``.
-
-``TARGET``
- Scope must name one existing target.
-
-``SOURCE``
- Scope must name one source file.
-
-``INSTALL``
- Scope must name one installed file path.
-
-``TEST``
- Scope must name one existing test.
-
-``CACHE``
- Scope must name one cache entry.
-
-``VARIABLE``
- Scope is unique and does not accept a name.
-
-The required ``PROPERTY`` option is immediately followed by the name of
-the property to get. If the property is not set an empty value is
-returned, although some properties support inheriting from a parent scope
-if defined to behave that way (see :command:`define_property`).
-
-If the ``SET`` option is given the variable is set to a boolean
-value indicating whether the property has been set. If the ``DEFINED``
-option is given the variable is set to a boolean value indicating
-whether the property has been defined such as with the
-:command:`define_property` command.
-
-If ``BRIEF_DOCS`` or ``FULL_DOCS`` is given then the variable is set to a
-string containing documentation for the requested property. If
-documentation is requested for a property that has not been defined
-``NOTFOUND`` is returned.
diff --git a/share/cmake-3.17/Help/command/get_source_file_property.rst b/share/cmake-3.17/Help/command/get_source_file_property.rst
deleted file mode 100644
index decec19..0000000
--- a/share/cmake-3.17/Help/command/get_source_file_property.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-get_source_file_property
-------------------------
-
-Get a property for a source file.
-
-.. code-block:: cmake
-
- get_source_file_property(VAR file property)
-
-Gets a property from a source file. The value of the property is
-stored in the variable ``VAR``. If the source property is not found, the
-behavior depends on whether it has been defined to be an ``INHERITED`` property
-or not (see :command:`define_property`). Non-inherited properties will set
-``VAR`` to "NOTFOUND", whereas inherited properties will search the relevant
-parent scope as described for the :command:`define_property` command and
-if still unable to find the property, ``VAR`` will be set to an empty string.
-
-Use :command:`set_source_files_properties` to set property values. Source
-file properties usually control how the file is built. One property that is
-always there is :prop_sf:`LOCATION`.
-
-See also the more general :command:`get_property` command.
diff --git a/share/cmake-3.17/Help/command/get_target_property.rst b/share/cmake-3.17/Help/command/get_target_property.rst
deleted file mode 100644
index 11e07ea..0000000
--- a/share/cmake-3.17/Help/command/get_target_property.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-get_target_property
--------------------
-
-Get a property from a target.
-
-.. code-block:: cmake
-
- get_target_property(VAR target property)
-
-Get a property from a target. The value of the property is stored in
-the variable ``VAR``. If the target property is not found, the behavior
-depends on whether it has been defined to be an ``INHERITED`` property
-or not (see :command:`define_property`). Non-inherited properties will
-set ``VAR`` to ``NOTFOUND``, whereas inherited properties will search the
-relevant parent scope as described for the :command:`define_property`
-command and if still unable to find the property, ``VAR`` will be set to
-an empty string.
-
-Use :command:`set_target_properties` to set target property values.
-Properties are usually used to control how a target is built, but some
-query the target instead. This command can get properties for any
-target so far created. The targets do not need to be in the current
-``CMakeLists.txt`` file.
-
-See also the more general :command:`get_property` command.
-
-See :ref:`Target Properties` for the list of properties known to CMake.
diff --git a/share/cmake-3.17/Help/command/install.rst b/share/cmake-3.17/Help/command/install.rst
deleted file mode 100644
index 5affc5b..0000000
--- a/share/cmake-3.17/Help/command/install.rst
+++ /dev/null
@@ -1,705 +0,0 @@
-install
--------
-
-Specify rules to run at install time.
-
-Synopsis
-^^^^^^^^
-
-.. parsed-literal::
-
- install(`TARGETS`_ <target>... [...])
- install({`FILES`_ | `PROGRAMS`_} <file>... [...])
- install(`DIRECTORY`_ <dir>... [...])
- install(`SCRIPT`_ <file> [...])
- install(`CODE`_ <code> [...])
- install(`EXPORT`_ <export-name> [...])
-
-Introduction
-^^^^^^^^^^^^
-
-This command generates installation rules for a project. Rules
-specified by calls to this command within a source directory are
-executed in order during installation. The order across directories
-is not defined.
-
-There are multiple signatures for this command. Some of them define
-installation options for files and targets. Options common to
-multiple signatures are covered here but they are valid only for
-signatures that specify them. The common options are:
-
-``DESTINATION``
- Specify the directory on disk to which a file will be installed.
- If a full path (with a leading slash or drive letter) is given
- it is used directly. If a relative path is given it is interpreted
- relative to the value of the :variable:`CMAKE_INSTALL_PREFIX` variable.
- The prefix can be relocated at install time using the ``DESTDIR``
- mechanism explained in the :variable:`CMAKE_INSTALL_PREFIX` variable
- documentation.
-
-``PERMISSIONS``
- Specify permissions for installed files. Valid permissions are
- ``OWNER_READ``, ``OWNER_WRITE``, ``OWNER_EXECUTE``, ``GROUP_READ``,
- ``GROUP_WRITE``, ``GROUP_EXECUTE``, ``WORLD_READ``, ``WORLD_WRITE``,
- ``WORLD_EXECUTE``, ``SETUID``, and ``SETGID``. Permissions that do
- not make sense on certain platforms are ignored on those platforms.
-
-``CONFIGURATIONS``
- Specify a list of build configurations for which the install rule
- applies (Debug, Release, etc.). Note that the values specified for
- this option only apply to options listed AFTER the ``CONFIGURATIONS``
- option. For example, to set separate install paths for the Debug and
- Release configurations, do the following:
-
- .. code-block:: cmake
-
- install(TARGETS target
- CONFIGURATIONS Debug
- RUNTIME DESTINATION Debug/bin)
- install(TARGETS target
- CONFIGURATIONS Release
- RUNTIME DESTINATION Release/bin)
-
- Note that ``CONFIGURATIONS`` appears BEFORE ``RUNTIME DESTINATION``.
-
-``COMPONENT``
- Specify an installation component name with which the install rule
- is associated, such as "runtime" or "development". During
- component-specific installation only install rules associated with
- the given component name will be executed. During a full installation
- all components are installed unless marked with ``EXCLUDE_FROM_ALL``.
- If ``COMPONENT`` is not provided a default component "Unspecified" is
- created. The default component name may be controlled with the
- :variable:`CMAKE_INSTALL_DEFAULT_COMPONENT_NAME` variable.
-
-``EXCLUDE_FROM_ALL``
- Specify that the file is excluded from a full installation and only
- installed as part of a component-specific installation
-
-``RENAME``
- Specify a name for an installed file that may be different from the
- original file. Renaming is allowed only when a single file is
- installed by the command.
-
-``OPTIONAL``
- Specify that it is not an error if the file to be installed does
- not exist.
-
-Command signatures that install files may print messages during
-installation. Use the :variable:`CMAKE_INSTALL_MESSAGE` variable
-to control which messages are printed.
-
-Many of the ``install()`` variants implicitly create the directories
-containing the installed files. If
-:variable:`CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS` is set, these
-directories will be created with the permissions specified. Otherwise,
-they will be created according to the uname rules on Unix-like platforms.
-Windows platforms are unaffected.
-
-Installing Targets
-^^^^^^^^^^^^^^^^^^
-
-.. _`install(TARGETS)`:
-.. _TARGETS:
-
-.. code-block:: cmake
-
- install(TARGETS targets... [EXPORT <export-name>]
- [[ARCHIVE|LIBRARY|RUNTIME|OBJECTS|FRAMEWORK|BUNDLE|
- PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]
- [DESTINATION <dir>]
- [PERMISSIONS permissions...]
- [CONFIGURATIONS [Debug|Release|...]]
- [COMPONENT <component>]
- [NAMELINK_COMPONENT <component>]
- [OPTIONAL] [EXCLUDE_FROM_ALL]
- [NAMELINK_ONLY|NAMELINK_SKIP]
- ] [...]
- [INCLUDES DESTINATION [<dir> ...]]
- )
-
-The ``TARGETS`` form specifies rules for installing targets from a
-project. There are several kinds of target files that may be installed:
-
-``ARCHIVE``
- Static libraries are treated as ``ARCHIVE`` targets, except those
- marked with the ``FRAMEWORK`` property on macOS (see ``FRAMEWORK``
- below.) For DLL platforms (all Windows-based systems including
- Cygwin), the DLL import library is treated as an ``ARCHIVE`` target.
- On AIX, the linker import file created for executables with
- :prop_tgt:`ENABLE_EXPORTS` is treated as an ``ARCHIVE`` target.
-
-``LIBRARY``
- Module libraries are always treated as ``LIBRARY`` targets. For non-
- DLL platforms shared libraries are treated as ``LIBRARY`` targets,
- except those marked with the ``FRAMEWORK`` property on macOS (see
- ``FRAMEWORK`` below.)
-
-``RUNTIME``
- Executables are treated as ``RUNTIME`` objects, except those marked
- with the ``MACOSX_BUNDLE`` property on macOS (see ``BUNDLE`` below.)
- For DLL platforms (all Windows-based systems including Cygwin), the
- DLL part of a shared library is treated as a ``RUNTIME`` target.
-
-``OBJECTS``
- Object libraries (a simple group of object files) are always treated
- as ``OBJECTS`` targets.
-
-``FRAMEWORK``
- Both static and shared libraries marked with the ``FRAMEWORK``
- property are treated as ``FRAMEWORK`` targets on macOS.
-
-``BUNDLE``
- Executables marked with the :prop_tgt:`MACOSX_BUNDLE` property are treated as
- ``BUNDLE`` targets on macOS.
-
-``PUBLIC_HEADER``
- Any :prop_tgt:`PUBLIC_HEADER` files associated with a library are installed in
- the destination specified by the ``PUBLIC_HEADER`` argument on non-Apple
- platforms. Rules defined by this argument are ignored for :prop_tgt:`FRAMEWORK`
- libraries on Apple platforms because the associated files are installed
- into the appropriate locations inside the framework folder. See
- :prop_tgt:`PUBLIC_HEADER` for details.
-
-``PRIVATE_HEADER``
- Similar to ``PUBLIC_HEADER``, but for ``PRIVATE_HEADER`` files. See
- :prop_tgt:`PRIVATE_HEADER` for details.
-
-``RESOURCE``
- Similar to ``PUBLIC_HEADER`` and ``PRIVATE_HEADER``, but for
- ``RESOURCE`` files. See :prop_tgt:`RESOURCE` for details.
-
-For each of these arguments given, the arguments following them only apply
-to the target or file type specified in the argument. If none is given, the
-installation properties apply to all target types. If only one is given then
-only targets of that type will be installed (which can be used to install
-just a DLL or just an import library.)
-
-For regular executables, static libraries and shared libraries, the
-``DESTINATION`` argument is not required. For these target types, when
-``DESTINATION`` is omitted, a default destination will be taken from the
-appropriate variable from :module:`GNUInstallDirs`, or set to a built-in
-default value if that variable is not defined. The same is true for the
-public and private headers associated with the installed targets through the
-:prop_tgt:`PUBLIC_HEADER` and :prop_tgt:`PRIVATE_HEADER` target properties.
-A destination must always be provided for module libraries, Apple bundles and
-frameworks. A destination can be omitted for interface and object libraries,
-but they are handled differently (see the discussion of this topic toward the
-end of this section).
-
-The following table shows the target types with their associated variables and
-built-in defaults that apply when no destination is given:
-
-================== =============================== ======================
- Target Type GNUInstallDirs Variable Built-In Default
-================== =============================== ======================
-``RUNTIME`` ``${CMAKE_INSTALL_BINDIR}`` ``bin``
-``LIBRARY`` ``${CMAKE_INSTALL_LIBDIR}`` ``lib``
-``ARCHIVE`` ``${CMAKE_INSTALL_LIBDIR}`` ``lib``
-``PRIVATE_HEADER`` ``${CMAKE_INSTALL_INCLUDEDIR}`` ``include``
-``PUBLIC_HEADER`` ``${CMAKE_INSTALL_INCLUDEDIR}`` ``include``
-================== =============================== ======================
-
-Projects wishing to follow the common practice of installing headers into a
-project-specific subdirectory will need to provide a destination rather than
-rely on the above.
-
-To make packages compliant with distribution filesystem layout policies, if
-projects must specify a ``DESTINATION``, it is recommended that they use a
-path that begins with the appropriate :module:`GNUInstallDirs` variable.
-This allows package maintainers to control the install destination by setting
-the appropriate cache variables. The following example shows a static library
-being installed to the default destination provided by
-:module:`GNUInstallDirs`, but with its headers installed to a project-specific
-subdirectory that follows the above recommendation:
-
-.. code-block:: cmake
-
- add_library(mylib STATIC ...)
- set_target_properties(mylib PROPERTIES PUBLIC_HEADER mylib.h)
- include(GNUInstallDirs)
- install(TARGETS mylib
- PUBLIC_HEADER
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/myproj
- )
-
-In addition to the common options listed above, each target can accept
-the following additional arguments:
-
-``NAMELINK_COMPONENT``
- On some platforms a versioned shared library has a symbolic link such
- as::
-
- lib<name>.so -> lib<name>.so.1
-
- where ``lib<name>.so.1`` is the soname of the library and ``lib<name>.so``
- is a "namelink" allowing linkers to find the library when given
- ``-l<name>``. The ``NAMELINK_COMPONENT`` option is similar to the
- ``COMPONENT`` option, but it changes the installation component of a shared
- library namelink if one is generated. If not specified, this defaults to the
- value of ``COMPONENT``. It is an error to use this parameter outside of a
- ``LIBRARY`` block.
-
- Consider the following example:
-
- .. code-block:: cmake
-
- install(TARGETS mylib
- LIBRARY
- COMPONENT Libraries
- NAMELINK_COMPONENT Development
- PUBLIC_HEADER
- COMPONENT Development
- )
-
- In this scenario, if you choose to install only the ``Development``
- component, both the headers and namelink will be installed without the
- library. (If you don't also install the ``Libraries`` component, the
- namelink will be a dangling symlink, and projects that link to the library
- will have build errors.) If you install only the ``Libraries`` component,
- only the library will be installed, without the headers and namelink.
-
- This option is typically used for package managers that have separate
- runtime and development packages. For example, on Debian systems, the
- library is expected to be in the runtime package, and the headers and
- namelink are expected to be in the development package.
-
- See the :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` target properties for
- details on creating versioned shared libraries.
-
-``NAMELINK_ONLY``
- This option causes the installation of only the namelink when a library
- target is installed. On platforms where versioned shared libraries do not
- have namelinks or when a library is not versioned, the ``NAMELINK_ONLY``
- option installs nothing. It is an error to use this parameter outside of a
- ``LIBRARY`` block.
-
- When ``NAMELINK_ONLY`` is given, either ``NAMELINK_COMPONENT`` or
- ``COMPONENT`` may be used to specify the installation component of the
- namelink, but ``COMPONENT`` should generally be preferred.
-
-``NAMELINK_SKIP``
- Similar to ``NAMELINK_ONLY``, but it has the opposite effect: it causes the
- installation of library files other than the namelink when a library target
- is installed. When neither ``NAMELINK_ONLY`` or ``NAMELINK_SKIP`` are given,
- both portions are installed. On platforms where versioned shared libraries
- do not have symlinks or when a library is not versioned, ``NAMELINK_SKIP``
- installs the library. It is an error to use this parameter outside of a
- ``LIBRARY`` block.
-
- If ``NAMELINK_SKIP`` is specified, ``NAMELINK_COMPONENT`` has no effect. It
- is not recommended to use ``NAMELINK_SKIP`` in conjunction with
- ``NAMELINK_COMPONENT``.
-
-The `install(TARGETS)`_ command can also accept the following options at the
-top level:
-
-``EXPORT``
- This option associates the installed target files with an export called
- ``<export-name>``. It must appear before any target options. To actually
- install the export file itself, call `install(EXPORT)`_, documented below.
- See documentation of the :prop_tgt:`EXPORT_NAME` target property to change
- the name of the exported target.
-
-``INCLUDES DESTINATION``
- This option specifies a list of directories which will be added to the
- :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target property of the
- ``<targets>`` when exported by the `install(EXPORT)`_ command. If a
- relative path is specified, it is treated as relative to the
- ``$<INSTALL_PREFIX>``.
-
-One or more groups of properties may be specified in a single call to
-the ``TARGETS`` form of this command. A target may be installed more than
-once to different locations. Consider hypothetical targets ``myExe``,
-``mySharedLib``, and ``myStaticLib``. The code:
-
-.. code-block:: cmake
-
- install(TARGETS myExe mySharedLib myStaticLib
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib/static)
- install(TARGETS mySharedLib DESTINATION /some/full/path)
-
-will install ``myExe`` to ``<prefix>/bin`` and ``myStaticLib`` to
-``<prefix>/lib/static``. On non-DLL platforms ``mySharedLib`` will be
-installed to ``<prefix>/lib`` and ``/some/full/path``. On DLL platforms
-the ``mySharedLib`` DLL will be installed to ``<prefix>/bin`` and
-``/some/full/path`` and its import library will be installed to
-``<prefix>/lib/static`` and ``/some/full/path``.
-
-:ref:`Interface Libraries` may be listed among the targets to install.
-They install no artifacts but will be included in an associated ``EXPORT``.
-If :ref:`Object Libraries` are listed but given no destination for their
-object files, they will be exported as :ref:`Interface Libraries`.
-This is sufficient to satisfy transitive usage requirements of other
-targets that link to the object libraries in their implementation.
-
-Installing a target with the :prop_tgt:`EXCLUDE_FROM_ALL` target property
-set to ``TRUE`` has undefined behavior.
-
-`install(TARGETS)`_ can install targets that were created in
-other directories. When using such cross-directory install rules, running
-``make install`` (or similar) from a subdirectory will not guarantee that
-targets from other directories are up-to-date. You can use
-:command:`target_link_libraries` or :command:`add_dependencies`
-to ensure that such out-of-directory targets are built before the
-subdirectory-specific install rules are run.
-
-An install destination given as a ``DESTINATION`` argument may
-use "generator expressions" with the syntax ``$<...>``. See the
-:manual:`cmake-generator-expressions(7)` manual for available expressions.
-
-Installing Files
-^^^^^^^^^^^^^^^^
-
-.. _`install(FILES)`:
-.. _`install(PROGRAMS)`:
-.. _FILES:
-.. _PROGRAMS:
-
-.. code-block:: cmake
-
- install(<FILES|PROGRAMS> files...
- TYPE <type> | DESTINATION <dir>
- [PERMISSIONS permissions...]
- [CONFIGURATIONS [Debug|Release|...]]
- [COMPONENT <component>]
- [RENAME <name>] [OPTIONAL] [EXCLUDE_FROM_ALL])
-
-The ``FILES`` form specifies rules for installing files for a project.
-File names given as relative paths are interpreted with respect to the
-current source directory. Files installed by this form are by default
-given permissions ``OWNER_WRITE``, ``OWNER_READ``, ``GROUP_READ``, and
-``WORLD_READ`` if no ``PERMISSIONS`` argument is given.
-
-The ``PROGRAMS`` form is identical to the ``FILES`` form except that the
-default permissions for the installed file also include ``OWNER_EXECUTE``,
-``GROUP_EXECUTE``, and ``WORLD_EXECUTE``. This form is intended to install
-programs that are not targets, such as shell scripts. Use the ``TARGETS``
-form to install targets built within the project.
-
-The list of ``files...`` given to ``FILES`` or ``PROGRAMS`` may use
-"generator expressions" with the syntax ``$<...>``. See the
-:manual:`cmake-generator-expressions(7)` manual for available expressions.
-However, if any item begins in a generator expression it must evaluate
-to a full path.
-
-Either a ``TYPE`` or a ``DESTINATION`` must be provided, but not both.
-A ``TYPE`` argument specifies the generic file type of the files being
-installed. A destination will then be set automatically by taking the
-corresponding variable from :module:`GNUInstallDirs`, or by using a
-built-in default if that variable is not defined. See the table below for
-the supported file types and their corresponding variables and built-in
-defaults. Projects can provide a ``DESTINATION`` argument instead of a
-file type if they wish to explicitly define the install destination.
-
-======================= ================================== =========================
- ``TYPE`` Argument GNUInstallDirs Variable Built-In Default
-======================= ================================== =========================
-``BIN`` ``${CMAKE_INSTALL_BINDIR}`` ``bin``
-``SBIN`` ``${CMAKE_INSTALL_SBINDIR}`` ``sbin``
-``LIB`` ``${CMAKE_INSTALL_LIBDIR}`` ``lib``
-``INCLUDE`` ``${CMAKE_INSTALL_INCLUDEDIR}`` ``include``
-``SYSCONF`` ``${CMAKE_INSTALL_SYSCONFDIR}`` ``etc``
-``SHAREDSTATE`` ``${CMAKE_INSTALL_SHARESTATEDIR}`` ``com``
-``LOCALSTATE`` ``${CMAKE_INSTALL_LOCALSTATEDIR}`` ``var``
-``RUNSTATE`` ``${CMAKE_INSTALL_RUNSTATEDIR}`` ``<LOCALSTATE dir>/run``
-``DATA`` ``${CMAKE_INSTALL_DATADIR}`` ``<DATAROOT dir>``
-``INFO`` ``${CMAKE_INSTALL_INFODIR}`` ``<DATAROOT dir>/info``
-``LOCALE`` ``${CMAKE_INSTALL_LOCALEDIR}`` ``<DATAROOT dir>/locale``
-``MAN`` ``${CMAKE_INSTALL_MANDIR}`` ``<DATAROOT dir>/man``
-``DOC`` ``${CMAKE_INSTALL_DOCDIR}`` ``<DATAROOT dir>/doc``
-======================= ================================== =========================
-
-Projects wishing to follow the common practice of installing headers into a
-project-specific subdirectory will need to provide a destination rather than
-rely on the above.
-
-Note that some of the types' built-in defaults use the ``DATAROOT`` directory as
-a prefix. The ``DATAROOT`` prefix is calculated similarly to the types, with
-``CMAKE_INSTALL_DATAROOTDIR`` as the variable and ``share`` as the built-in
-default. You cannot use ``DATAROOT`` as a ``TYPE`` parameter; please use
-``DATA`` instead.
-
-To make packages compliant with distribution filesystem layout policies, if
-projects must specify a ``DESTINATION``, it is recommended that they use a
-path that begins with the appropriate :module:`GNUInstallDirs` variable.
-This allows package maintainers to control the install destination by setting
-the appropriate cache variables. The following example shows how to follow
-this advice while installing headers to a project-specific subdirectory:
-
-.. code-block:: cmake
-
- include(GNUInstallDirs)
- install(FILES mylib.h
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/myproj
- )
-
-An install destination given as a ``DESTINATION`` argument may
-use "generator expressions" with the syntax ``$<...>``. See the
-:manual:`cmake-generator-expressions(7)` manual for available expressions.
-
-Installing Directories
-^^^^^^^^^^^^^^^^^^^^^^
-
-.. _`install(DIRECTORY)`:
-.. _DIRECTORY:
-
-.. code-block:: cmake
-
- install(DIRECTORY dirs...
- TYPE <type> | DESTINATION <dir>
- [FILE_PERMISSIONS permissions...]
- [DIRECTORY_PERMISSIONS permissions...]
- [USE_SOURCE_PERMISSIONS] [OPTIONAL] [MESSAGE_NEVER]
- [CONFIGURATIONS [Debug|Release|...]]
- [COMPONENT <component>] [EXCLUDE_FROM_ALL]
- [FILES_MATCHING]
- [[PATTERN <pattern> | REGEX <regex>]
- [EXCLUDE] [PERMISSIONS permissions...]] [...])
-
-The ``DIRECTORY`` form installs contents of one or more directories to a
-given destination. The directory structure is copied verbatim to the
-destination. The last component of each directory name is appended to
-the destination directory but a trailing slash may be used to avoid
-this because it leaves the last component empty. Directory names
-given as relative paths are interpreted with respect to the current
-source directory. If no input directory names are given the
-destination directory will be created but nothing will be installed
-into it. The ``FILE_PERMISSIONS`` and ``DIRECTORY_PERMISSIONS`` options
-specify permissions given to files and directories in the destination.
-If ``USE_SOURCE_PERMISSIONS`` is specified and ``FILE_PERMISSIONS`` is not,
-file permissions will be copied from the source directory structure.
-If no permissions are specified files will be given the default
-permissions specified in the ``FILES`` form of the command, and the
-directories will be given the default permissions specified in the
-``PROGRAMS`` form of the command.
-
-The ``MESSAGE_NEVER`` option disables file installation status output.
-
-Installation of directories may be controlled with fine granularity
-using the ``PATTERN`` or ``REGEX`` options. These "match" options specify a
-globbing pattern or regular expression to match directories or files
-encountered within input directories. They may be used to apply
-certain options (see below) to a subset of the files and directories
-encountered. The full path to each input file or directory (with
-forward slashes) is matched against the expression. A ``PATTERN`` will
-match only complete file names: the portion of the full path matching
-the pattern must occur at the end of the file name and be preceded by
-a slash. A ``REGEX`` will match any portion of the full path but it may
-use ``/`` and ``$`` to simulate the ``PATTERN`` behavior. By default all
-files and directories are installed whether or not they are matched.
-The ``FILES_MATCHING`` option may be given before the first match option
-to disable installation of files (but not directories) not matched by
-any expression. For example, the code
-
-.. code-block:: cmake
-
- install(DIRECTORY src/ DESTINATION include/myproj
- FILES_MATCHING PATTERN "*.h")
-
-will extract and install header files from a source tree.
-
-Some options may follow a ``PATTERN`` or ``REGEX`` expression and are applied
-only to files or directories matching them. The ``EXCLUDE`` option will
-skip the matched file or directory. The ``PERMISSIONS`` option overrides
-the permissions setting for the matched file or directory. For
-example the code
-
-.. code-block:: cmake
-
- install(DIRECTORY icons scripts/ DESTINATION share/myproj
- PATTERN "CVS" EXCLUDE
- PATTERN "scripts/*"
- PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
- GROUP_EXECUTE GROUP_READ)
-
-will install the ``icons`` directory to ``share/myproj/icons`` and the
-``scripts`` directory to ``share/myproj``. The icons will get default
-file permissions, the scripts will be given specific permissions, and any
-``CVS`` directories will be excluded.
-
-Either a ``TYPE`` or a ``DESTINATION`` must be provided, but not both.
-A ``TYPE`` argument specifies the generic file type of the files within the
-listed directories being installed. A destination will then be set
-automatically by taking the corresponding variable from
-:module:`GNUInstallDirs`, or by using a built-in default if that variable
-is not defined. See the table below for the supported file types and their
-corresponding variables and built-in defaults. Projects can provide a
-``DESTINATION`` argument instead of a file type if they wish to explicitly
-define the install destination.
-
-======================= ================================== =========================
- ``TYPE`` Argument GNUInstallDirs Variable Built-In Default
-======================= ================================== =========================
-``BIN`` ``${CMAKE_INSTALL_BINDIR}`` ``bin``
-``SBIN`` ``${CMAKE_INSTALL_SBINDIR}`` ``sbin``
-``LIB`` ``${CMAKE_INSTALL_LIBDIR}`` ``lib``
-``INCLUDE`` ``${CMAKE_INSTALL_INCLUDEDIR}`` ``include``
-``SYSCONF`` ``${CMAKE_INSTALL_SYSCONFDIR}`` ``etc``
-``SHAREDSTATE`` ``${CMAKE_INSTALL_SHARESTATEDIR}`` ``com``
-``LOCALSTATE`` ``${CMAKE_INSTALL_LOCALSTATEDIR}`` ``var``
-``RUNSTATE`` ``${CMAKE_INSTALL_RUNSTATEDIR}`` ``<LOCALSTATE dir>/run``
-``DATA`` ``${CMAKE_INSTALL_DATADIR}`` ``<DATAROOT dir>``
-``INFO`` ``${CMAKE_INSTALL_INFODIR}`` ``<DATAROOT dir>/info``
-``LOCALE`` ``${CMAKE_INSTALL_LOCALEDIR}`` ``<DATAROOT dir>/locale``
-``MAN`` ``${CMAKE_INSTALL_MANDIR}`` ``<DATAROOT dir>/man``
-``DOC`` ``${CMAKE_INSTALL_DOCDIR}`` ``<DATAROOT dir>/doc``
-======================= ================================== =========================
-
-Note that some of the types' built-in defaults use the ``DATAROOT`` directory as
-a prefix. The ``DATAROOT`` prefix is calculated similarly to the types, with
-``CMAKE_INSTALL_DATAROOTDIR`` as the variable and ``share`` as the built-in
-default. You cannot use ``DATAROOT`` as a ``TYPE`` parameter; please use
-``DATA`` instead.
-
-To make packages compliant with distribution filesystem layout policies, if
-projects must specify a ``DESTINATION``, it is recommended that they use a
-path that begins with the appropriate :module:`GNUInstallDirs` variable.
-This allows package maintainers to control the install destination by setting
-the appropriate cache variables.
-
-The list of ``dirs...`` given to ``DIRECTORY`` and an install destination
-given as a ``DESTINATION`` argument may use "generator expressions"
-with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
-manual for available expressions.
-
-Custom Installation Logic
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. _`install(CODE)`:
-.. _`install(SCRIPT)`:
-.. _CODE:
-.. _SCRIPT:
-
-.. code-block:: cmake
-
- install([[SCRIPT <file>] [CODE <code>]]
- [COMPONENT <component>] [EXCLUDE_FROM_ALL] [...])
-
-The ``SCRIPT`` form will invoke the given CMake script files during
-installation. If the script file name is a relative path it will be
-interpreted with respect to the current source directory. The ``CODE``
-form will invoke the given CMake code during installation. Code is
-specified as a single argument inside a double-quoted string. For
-example, the code
-
-.. code-block:: cmake
-
- install(CODE "MESSAGE(\"Sample install message.\")")
-
-will print a message during installation.
-
-``<file>`` or ``<code>`` may use "generator expressions" with the syntax
-``$<...>`` (in the case of ``<file>``, this refers to their use in the file
-name, not the file's contents). See the
-:manual:`cmake-generator-expressions(7)` manual for available expressions.
-
-Installing Exports
-^^^^^^^^^^^^^^^^^^
-
-.. _`install(EXPORT)`:
-.. _EXPORT:
-
-.. code-block:: cmake
-
- install(EXPORT <export-name> DESTINATION <dir>
- [NAMESPACE <namespace>] [[FILE <name>.cmake]|
- [PERMISSIONS permissions...]
- [CONFIGURATIONS [Debug|Release|...]]
- [EXPORT_LINK_INTERFACE_LIBRARIES]
- [COMPONENT <component>]
- [EXCLUDE_FROM_ALL])
- install(EXPORT_ANDROID_MK <export-name> DESTINATION <dir> [...])
-
-The ``EXPORT`` form generates and installs a CMake file containing code to
-import targets from the installation tree into another project.
-Target installations are associated with the export ``<export-name>``
-using the ``EXPORT`` option of the `install(TARGETS)`_ signature
-documented above. The ``NAMESPACE`` option will prepend ``<namespace>`` to
-the target names as they are written to the import file. By default
-the generated file will be called ``<export-name>.cmake`` but the ``FILE``
-option may be used to specify a different name. The value given to
-the ``FILE`` option must be a file name with the ``.cmake`` extension.
-If a ``CONFIGURATIONS`` option is given then the file will only be installed
-when one of the named configurations is installed. Additionally, the
-generated import file will reference only the matching target
-configurations. The ``EXPORT_LINK_INTERFACE_LIBRARIES`` keyword, if
-present, causes the contents of the properties matching
-``(IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?`` to be exported, when
-policy :policy:`CMP0022` is ``NEW``.
-
-When a ``COMPONENT`` option is given, the listed ``<component>`` implicitly
-depends on all components mentioned in the export set. The exported
-``<name>.cmake`` file will require each of the exported components to be
-present in order for dependent projects to build properly. For example, a
-project may define components ``Runtime`` and ``Development``, with shared
-libraries going into the ``Runtime`` component and static libraries and
-headers going into the ``Development`` component. The export set would also
-typically be part of the ``Development`` component, but it would export
-targets from both the ``Runtime`` and ``Development`` components. Therefore,
-the ``Runtime`` component would need to be installed if the ``Development``
-component was installed, but not vice versa. If the ``Development`` component
-was installed without the ``Runtime`` component, dependent projects that try
-to link against it would have build errors. Package managers, such as APT and
-RPM, typically handle this by listing the ``Runtime`` component as a dependency
-of the ``Development`` component in the package metadata, ensuring that the
-library is always installed if the headers and CMake export file are present.
-
-In addition to cmake language files, the ``EXPORT_ANDROID_MK`` mode maybe
-used to specify an export to the android ndk build system. This mode
-accepts the same options as the normal export mode. The Android
-NDK supports the use of prebuilt libraries, both static and shared. This
-allows cmake to build the libraries of a project and make them available
-to an ndk build system complete with transitive dependencies, include flags
-and defines required to use the libraries.
-
-The ``EXPORT`` form is useful to help outside projects use targets built
-and installed by the current project. For example, the code
-
-.. code-block:: cmake
-
- install(TARGETS myexe EXPORT myproj DESTINATION bin)
- install(EXPORT myproj NAMESPACE mp_ DESTINATION lib/myproj)
- install(EXPORT_ANDROID_MK myproj DESTINATION share/ndk-modules)
-
-will install the executable ``myexe`` to ``<prefix>/bin`` and code to import
-it in the file ``<prefix>/lib/myproj/myproj.cmake`` and
-``<prefix>/share/ndk-modules/Android.mk``. An outside project
-may load this file with the include command and reference the ``myexe``
-executable from the installation tree using the imported target name
-``mp_myexe`` as if the target were built in its own tree.
-
-.. note::
- This command supercedes the :command:`install_targets` command and
- the :prop_tgt:`PRE_INSTALL_SCRIPT` and :prop_tgt:`POST_INSTALL_SCRIPT`
- target properties. It also replaces the ``FILES`` forms of the
- :command:`install_files` and :command:`install_programs` commands.
- The processing order of these install rules relative to
- those generated by :command:`install_targets`,
- :command:`install_files`, and :command:`install_programs` commands
- is not defined.
-
-Generated Installation Script
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The ``install()`` command generates a file, ``cmake_install.cmake``, inside
-the build directory, which is used internally by the generated install target
-and by CPack. You can also invoke this script manually with ``cmake -P``. This
-script accepts several variables:
-
-``COMPONENT``
- Set this variable to install only a single CPack component as opposed to all
- of them. For example, if you only want to install the ``Development``
- component, run ``cmake -DCOMPONENT=Development -P cmake_install.cmake``.
-
-``BUILD_TYPE``
- Set this variable to change the build type if you are using a multi-config
- generator. For example, to install with the ``Debug`` configuration, run
- ``cmake -DBUILD_TYPE=Debug -P cmake_install.cmake``.
-
-``DESTDIR``
- This is an environment variable rather than a CMake variable. It allows you
- to change the installation prefix on UNIX systems. See :envvar:`DESTDIR` for
- details.
diff --git a/share/cmake-3.17/Help/command/list.rst b/share/cmake-3.17/Help/command/list.rst
deleted file mode 100644
index 50bf417..0000000
--- a/share/cmake-3.17/Help/command/list.rst
+++ /dev/null
@@ -1,325 +0,0 @@
-list
-----
-
-List operations.
-
-Synopsis
-^^^^^^^^
-
-.. parsed-literal::
-
- `Reading`_
- list(`LENGTH`_ <list> <out-var>)
- list(`GET`_ <list> <element index> [<index> ...] <out-var>)
- list(`JOIN`_ <list> <glue> <out-var>)
- list(`SUBLIST`_ <list> <begin> <length> <out-var>)
-
- `Search`_
- list(`FIND`_ <list> <value> <out-var>)
-
- `Modification`_
- list(`APPEND`_ <list> [<element>...])
- list(`FILTER`_ <list> {INCLUDE | EXCLUDE} REGEX <regex>)
- list(`INSERT`_ <list> <index> [<element>...])
- list(`POP_BACK`_ <list> [<out-var>...])
- list(`POP_FRONT`_ <list> [<out-var>...])
- list(`PREPEND`_ <list> [<element>...])
- list(`REMOVE_ITEM`_ <list> <value>...)
- list(`REMOVE_AT`_ <list> <index>...)
- list(`REMOVE_DUPLICATES`_ <list>)
- list(`TRANSFORM`_ <list> <ACTION> [...])
-
- `Ordering`_
- list(`REVERSE`_ <list>)
- list(`SORT`_ <list> [...])
-
-Introduction
-^^^^^^^^^^^^
-
-The list subcommands ``APPEND``, ``INSERT``, ``FILTER``, ``PREPEND``,
-``POP_BACK``, ``POP_FRONT``, ``REMOVE_AT``, ``REMOVE_ITEM``,
-``REMOVE_DUPLICATES``, ``REVERSE`` and ``SORT`` may create
-new values for the list within the current CMake variable scope. Similar to
-the :command:`set` command, the LIST command creates new variable values in
-the current scope, even if the list itself is actually defined in a parent
-scope. To propagate the results of these operations upwards, use
-:command:`set` with ``PARENT_SCOPE``, :command:`set` with
-``CACHE INTERNAL``, or some other means of value propagation.
-
-.. note::
-
- A list in cmake is a ``;`` separated group of strings. To create a
- list the set command can be used. For example, ``set(var a b c d e)``
- creates a list with ``a;b;c;d;e``, and ``set(var "a b c d e")`` creates a
- string or a list with one item in it. (Note macro arguments are not
- variables, and therefore cannot be used in LIST commands.)
-
-.. note::
-
- When specifying index values, if ``<element index>`` is 0 or greater, it
- is indexed from the beginning of the list, with 0 representing the
- first list element. If ``<element index>`` is -1 or lesser, it is indexed
- from the end of the list, with -1 representing the last list element.
- Be careful when counting with negative indices: they do not start from
- 0. -0 is equivalent to 0, the first list element.
-
-Reading
-^^^^^^^
-
-.. _LENGTH:
-
-.. code-block:: cmake
-
- list(LENGTH <list> <output variable>)
-
-Returns the list's length.
-
-.. _GET:
-
-.. code-block:: cmake
-
- list(GET <list> <element index> [<element index> ...] <output variable>)
-
-Returns the list of elements specified by indices from the list.
-
-.. _JOIN:
-
-.. code-block:: cmake
-
- list(JOIN <list> <glue> <output variable>)
-
-Returns a string joining all list's elements using the glue string.
-To join multiple strings, which are not part of a list, use ``JOIN`` operator
-from :command:`string` command.
-
-.. _SUBLIST:
-
-.. code-block:: cmake
-
- list(SUBLIST <list> <begin> <length> <output variable>)
-
-Returns a sublist of the given list.
-If ``<length>`` is 0, an empty list will be returned.
-If ``<length>`` is -1 or the list is smaller than ``<begin>+<length>`` then
-the remaining elements of the list starting at ``<begin>`` will be returned.
-
-Search
-^^^^^^
-
-.. _FIND:
-
-.. code-block:: cmake
-
- list(FIND <list> <value> <output variable>)
-
-Returns the index of the element specified in the list or -1
-if it wasn't found.
-
-Modification
-^^^^^^^^^^^^
-
-.. _APPEND:
-
-.. code-block:: cmake
-
- list(APPEND <list> [<element> ...])
-
-Appends elements to the list.
-
-.. _FILTER:
-
-.. code-block:: cmake
-
- list(FILTER <list> <INCLUDE|EXCLUDE> REGEX <regular_expression>)
-
-Includes or removes items from the list that match the mode's pattern.
-In ``REGEX`` mode, items will be matched against the given regular expression.
-
-For more information on regular expressions see also the
-:command:`string` command.
-
-.. _INSERT:
-
-.. code-block:: cmake
-
- list(INSERT <list> <element_index> <element> [<element> ...])
-
-Inserts elements to the list to the specified location.
-
-.. _POP_BACK:
-
-.. code-block:: cmake
-
- list(POP_BACK <list> [<out-var>...])
-
-If no variable name is given, removes exactly one element. Otherwise,
-assign the last element's value to the given variable and removes it,
-up to the last variable name given.
-
-.. _POP_FRONT:
-
-.. code-block:: cmake
-
- list(POP_FRONT <list> [<out-var>...])
-
-If no variable name is given, removes exactly one element. Otherwise,
-assign the first element's value to the given variable and removes it,
-up to the last variable name given.
-
-.. _PREPEND:
-
-.. code-block:: cmake
-
- list(PREPEND <list> [<element> ...])
-
-Insert elements to the 0th position in the list.
-
-.. _REMOVE_ITEM:
-
-.. code-block:: cmake
-
- list(REMOVE_ITEM <list> <value> [<value> ...])
-
-Removes all instances of the given items from the list.
-
-.. _REMOVE_AT:
-
-.. code-block:: cmake
-
- list(REMOVE_AT <list> <index> [<index> ...])
-
-Removes items at given indices from the list.
-
-.. _REMOVE_DUPLICATES:
-
-.. code-block:: cmake
-
- list(REMOVE_DUPLICATES <list>)
-
-Removes duplicated items in the list. The relative order of items is preserved,
-but if duplicates are encountered, only the first instance is preserved.
-
-.. _TRANSFORM:
-
-.. code-block:: cmake
-
- list(TRANSFORM <list> <ACTION> [<SELECTOR>]
- [OUTPUT_VARIABLE <output variable>])
-
-Transforms the list by applying an action to all or, by specifying a
-``<SELECTOR>``, to the selected elements of the list, storing the result
-in-place or in the specified output variable.
-
-.. note::
-
- The ``TRANSFORM`` sub-command does not change the number of elements in the
- list. If a ``<SELECTOR>`` is specified, only some elements will be changed,
- the other ones will remain the same as before the transformation.
-
-``<ACTION>`` specifies the action to apply to the elements of the list.
-The actions have exactly the same semantics as sub-commands of the
-:command:`string` command. ``<ACTION>`` must be one of the following:
-
-``APPEND``, ``PREPEND``: Append, prepend specified value to each element of
-the list.
-
- .. code-block:: cmake
-
- list(TRANSFORM <list> <APPEND|PREPEND> <value> ...)
-
-``TOUPPER``, ``TOLOWER``: Convert each element of the list to upper, lower
-characters.
-
- .. code-block:: cmake
-
- list(TRANSFORM <list> <TOLOWER|TOUPPER> ...)
-
-``STRIP``: Remove leading and trailing spaces from each element of the
-list.
-
- .. code-block:: cmake
-
- list(TRANSFORM <list> STRIP ...)
-
-``GENEX_STRIP``: Strip any
-:manual:`generator expressions <cmake-generator-expressions(7)>` from each
-element of the list.
-
- .. code-block:: cmake
-
- list(TRANSFORM <list> GENEX_STRIP ...)
-
-``REPLACE``: Match the regular expression as many times as possible and
-substitute the replacement expression for the match for each element
-of the list
-(Same semantic as ``REGEX REPLACE`` from :command:`string` command).
-
- .. code-block:: cmake
-
- list(TRANSFORM <list> REPLACE <regular_expression>
- <replace_expression> ...)
-
-``<SELECTOR>`` determines which elements of the list will be transformed.
-Only one type of selector can be specified at a time. When given,
-``<SELECTOR>`` must be one of the following:
-
-``AT``: Specify a list of indexes.
-
- .. code-block:: cmake
-
- list(TRANSFORM <list> <ACTION> AT <index> [<index> ...] ...)
-
-``FOR``: Specify a range with, optionally, an increment used to iterate over
-the range.
-
- .. code-block:: cmake
-
- list(TRANSFORM <list> <ACTION> FOR <start> <stop> [<step>] ...)
-
-``REGEX``: Specify a regular expression. Only elements matching the regular
-expression will be transformed.
-
- .. code-block:: cmake
-
- list(TRANSFORM <list> <ACTION> REGEX <regular_expression> ...)
-
-
-Ordering
-^^^^^^^^
-
-.. _REVERSE:
-
-.. code-block:: cmake
-
- list(REVERSE <list>)
-
-Reverses the contents of the list in-place.
-
-.. _SORT:
-
-.. code-block:: cmake
-
- list(SORT <list> [COMPARE <compare>] [CASE <case>] [ORDER <order>])
-
-Sorts the list in-place alphabetically.
-Use the ``COMPARE`` keyword to select the comparison method for sorting.
-The ``<compare>`` option should be one of:
-
-* ``STRING``: Sorts a list of strings alphabetically. This is the
- default behavior if the ``COMPARE`` option is not given.
-* ``FILE_BASENAME``: Sorts a list of pathnames of files by their basenames.
-
-Use the ``CASE`` keyword to select a case sensitive or case insensitive
-sort mode. The ``<case>`` option should be one of:
-
-* ``SENSITIVE``: List items are sorted in a case-sensitive manner. This is
- the default behavior if the ``CASE`` option is not given.
-* ``INSENSITIVE``: List items are sorted case insensitively. The order of
- items which differ only by upper/lowercase is not specified.
-
-To control the sort order, the ``ORDER`` keyword can be given.
-The ``<order>`` option should be one of:
-
-* ``ASCENDING``: Sorts the list in ascending order. This is the default
- behavior when the ``ORDER`` option is not given.
-* ``DESCENDING``: Sorts the list in descending order.
diff --git a/share/cmake-3.17/Help/command/macro.rst b/share/cmake-3.17/Help/command/macro.rst
deleted file mode 100644
index 3f6f2f9..0000000
--- a/share/cmake-3.17/Help/command/macro.rst
+++ /dev/null
@@ -1,146 +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.
-
-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.17/Help/command/option.rst b/share/cmake-3.17/Help/command/option.rst
deleted file mode 100644
index 8956307..0000000
--- a/share/cmake-3.17/Help/command/option.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-option
-------
-
-Provide an option that the user can optionally select.
-
-.. code-block:: cmake
-
- option(<variable> "<help_text>" [value])
-
-Provides an option for the user to select as ``ON`` or ``OFF``.
-If no initial ``<value>`` is provided, ``OFF`` is used.
-If ``<variable>`` is already set as a normal variable
-then the command does nothing (see policy :policy:`CMP0077`).
-
-If you have options that depend on the values of other options, see
-the module help for :module:`CMakeDependentOption`.
diff --git a/share/cmake-3.17/Help/command/separate_arguments.rst b/share/cmake-3.17/Help/command/separate_arguments.rst
deleted file mode 100644
index fbca859..0000000
--- a/share/cmake-3.17/Help/command/separate_arguments.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-separate_arguments
-------------------
-
-Parse command-line arguments into a semicolon-separated list.
-
-.. code-block:: cmake
-
- separate_arguments(<variable> <mode> <args>)
-
-Parses a space-separated string ``<args>`` into a list of items,
-and stores this list in semicolon-separated standard form in ``<variable>``.
-
-This function is intended for parsing command-line arguments.
-The entire command line must be passed as one string in the
-argument ``<args>``.
-
-The exact parsing rules depend on the operating system.
-They are specified by the ``<mode>`` argument which must
-be one of the following keywords:
-
-``UNIX_COMMAND``
- Arguments are separated by by unquoted whitespace.
- Both single-quote and double-quote pairs are respected.
- A backslash escapes the next literal character (``\"`` is ``"``);
- there are no special escapes (``\n`` is just ``n``).
-
-``WINDOWS_COMMAND``
- A Windows command-line is parsed using the same
- syntax the runtime library uses to construct argv at startup. It
- separates arguments by whitespace that is not double-quoted.
- Backslashes are literal unless they precede double-quotes. See the
- MSDN article `Parsing C Command-Line Arguments`_ for details.
-
-``NATIVE_COMMAND``
- Proceeds as in ``WINDOWS_COMMAND`` mode if the host system is Windows.
- Otherwise proceeds as in ``UNIX_COMMAND`` mode.
-
-.. _`Parsing C Command-Line Arguments`: https://msdn.microsoft.com/library/a1y7w461.aspx
-
-.. code-block:: cmake
-
- separate_arguments(<var>)
-
-Convert the value of ``<var>`` to a semi-colon separated list. All
-spaces are replaced with ';'. This helps with generating command
-lines.
diff --git a/share/cmake-3.17/Help/command/set_property.rst b/share/cmake-3.17/Help/command/set_property.rst
deleted file mode 100644
index ec08c8f..0000000
--- a/share/cmake-3.17/Help/command/set_property.rst
+++ /dev/null
@@ -1,79 +0,0 @@
-set_property
-------------
-
-Set a named property in a given scope.
-
-.. code-block:: cmake
-
- set_property(<GLOBAL |
- DIRECTORY [<dir>] |
- TARGET [<target1> ...] |
- SOURCE [<src1> ...] |
- INSTALL [<file1> ...] |
- TEST [<test1> ...] |
- CACHE [<entry1> ...] >
- [APPEND] [APPEND_STRING]
- PROPERTY <name> [value1 ...])
-
-Sets one property on zero or more objects of a scope.
-
-The first argument determines the scope in which the property is set.
-It must be one of the following:
-
-``GLOBAL``
- Scope is unique and does not accept a name.
-
-``DIRECTORY``
- Scope defaults to the current directory but another directory
- (already processed by CMake) may be named by full or relative path.
- See also the :command:`set_directory_properties` command.
-
-``TARGET``
- Scope may name zero or more existing targets.
- See also the :command:`set_target_properties` command.
-
-``SOURCE``
- Scope may name zero or more source files. Note that source
- file properties are visible only to targets added in the same
- directory (``CMakeLists.txt``).
- See also the :command:`set_source_files_properties` command.
-
-``INSTALL``
- Scope may name zero or more installed file paths.
- These are made available to CPack to influence deployment.
-
- Both the property key and value may use generator expressions.
- Specific properties may apply to installed files and/or directories.
-
- Path components have to be separated by forward slashes,
- must be normalized and are case sensitive.
-
- To reference the installation prefix itself with a relative path use ``.``.
-
- Currently installed file properties are only defined for
- the WIX generator where the given paths are relative
- to the installation prefix.
-
-``TEST``
- Scope may name zero or more existing tests.
- See also the :command:`set_tests_properties` command.
-
-``CACHE``
- Scope must name zero or more cache existing entries.
-
-The required ``PROPERTY`` option is immediately followed by the name of
-the property to set. Remaining arguments are used to compose the
-property value in the form of a semicolon-separated list.
-
-If the ``APPEND`` option is given the list is appended to any existing
-property value. If the ``APPEND_STRING`` option is given the string is
-appended to any existing property value as string, i.e. it results in a
-longer string and not a list of strings. When using ``APPEND`` or
-``APPEND_STRING`` with a property defined to support ``INHERITED``
-behavior (see :command:`define_property`), no inheriting occurs when
-finding the initial value to append to. If the property is not already
-directly set in the nominated scope, the command will behave as though
-``APPEND`` or ``APPEND_STRING`` had not been given.
-
-See the :manual:`cmake-properties(7)` manual for a list of properties
-in each scope.
diff --git a/share/cmake-3.17/Help/command/set_source_files_properties.rst b/share/cmake-3.17/Help/command/set_source_files_properties.rst
deleted file mode 100644
index ab95d70..0000000
--- a/share/cmake-3.17/Help/command/set_source_files_properties.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-set_source_files_properties
----------------------------
-
-Source files can have properties that affect how they are built.
-
-.. code-block:: cmake
-
- set_source_files_properties([file1 [file2 [...]]]
- PROPERTIES prop1 value1
- [prop2 value2 [...]])
-
-Sets properties associated with source files using a key/value paired
-list.
-
-See also the :command:`set_property(SOURCE)` command.
-
-See :ref:`Source File Properties` for the list of properties known
-to CMake. Source file properties are visible only to targets added
-in the same directory (``CMakeLists.txt``).
diff --git a/share/cmake-3.17/Help/command/source_group.rst b/share/cmake-3.17/Help/command/source_group.rst
deleted file mode 100644
index 6623c98..0000000
--- a/share/cmake-3.17/Help/command/source_group.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-source_group
-------------
-
-Define a grouping for source files in IDE project generation.
-There are two different signatures to create source groups.
-
-.. code-block:: cmake
-
- source_group(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
- source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])
-
-Defines a group into which sources will be placed in project files.
-This is intended to set up file tabs in Visual Studio.
-The options are:
-
-``TREE``
- CMake will automatically detect, from ``<src>`` files paths, source groups
- it needs to create, to keep structure of source groups analogically to the
- actual files and directories structure in the project. Paths of ``<src>``
- files will be cut to be relative to ``<root>``.
-
-``PREFIX``
- Source group and files located directly in ``<root>`` path, will be placed
- in ``<prefix>`` source groups.
-
-``FILES``
- Any source file specified explicitly will be placed in group
- ``<name>``. Relative paths are interpreted with respect to the
- current source directory.
-
-``REGULAR_EXPRESSION``
- Any source file whose name matches the regular expression will
- be placed in group ``<name>``.
-
-If a source file matches multiple groups, the *last* group that
-explicitly lists the file with ``FILES`` will be favored, if any.
-If no group explicitly lists the file, the *last* group whose
-regular expression matches the file will be favored.
-
-The ``<name>`` of the group and ``<prefix>`` argument may contain backslashes
-to specify subgroups:
-
-.. code-block:: cmake
-
- source_group(outer\\inner ...)
- source_group(TREE <root> PREFIX sources\\inc ...)
-
-For backwards compatibility, the short-hand signature
-
-.. code-block:: cmake
-
- source_group(<name> <regex>)
-
-is equivalent to
-
-.. code-block:: cmake
-
- source_group(<name> REGULAR_EXPRESSION <regex>)
diff --git a/share/cmake-3.17/Help/command/string.rst b/share/cmake-3.17/Help/command/string.rst
deleted file mode 100644
index 81a2061..0000000
--- a/share/cmake-3.17/Help/command/string.rst
+++ /dev/null
@@ -1,459 +0,0 @@
-string
-------
-
-String operations.
-
-Synopsis
-^^^^^^^^
-
-.. parsed-literal::
-
- `Search and Replace`_
- string(`FIND`_ <string> <substring> <out-var> [...])
- string(`REPLACE`_ <match-string> <replace-string> <out-var> <input>...)
-
- `Regular Expressions`_
- string(`REGEX MATCH`_ <match-regex> <out-var> <input>...)
- string(`REGEX MATCHALL`_ <match-regex> <out-var> <input>...)
- string(`REGEX REPLACE`_ <match-regex> <replace-expr> <out-var> <input>...)
-
- `Manipulation`_
- string(`APPEND`_ <string-var> [<input>...])
- string(`PREPEND`_ <string-var> [<input>...])
- string(`CONCAT`_ <out-var> [<input>...])
- string(`JOIN`_ <glue> <out-var> [<input>...])
- string(`TOLOWER`_ <string> <out-var>)
- string(`TOUPPER`_ <string> <out-var>)
- string(`LENGTH`_ <string> <out-var>)
- string(`SUBSTRING`_ <string> <begin> <length> <out-var>)
- string(`STRIP`_ <string> <out-var>)
- string(`GENEX_STRIP`_ <string> <out-var>)
- string(`REPEAT`_ <string> <count> <out-var>)
-
- `Comparison`_
- string(`COMPARE`_ <op> <string1> <string2> <out-var>)
-
- `Hashing`_
- string(`\<HASH\> <HASH_>`_ <out-var> <input>)
-
- `Generation`_
- string(`ASCII`_ <number>... <out-var>)
- string(`CONFIGURE`_ <string> <out-var> [...])
- string(`MAKE_C_IDENTIFIER`_ <string> <out-var>)
- string(`RANDOM`_ [<option>...] <out-var>)
- string(`TIMESTAMP`_ <out-var> [<format string>] [UTC])
- string(`UUID`_ <out-var> ...)
-
-Search and Replace
-^^^^^^^^^^^^^^^^^^
-
-.. _FIND:
-
-.. code-block:: cmake
-
- string(FIND <string> <substring> <output_variable> [REVERSE])
-
-Return the position where the given ``<substring>`` was found in
-the supplied ``<string>``. If the ``REVERSE`` flag was used, the command will
-search for the position of the last occurrence of the specified
-``<substring>``. If the ``<substring>`` is not found, a position of -1 is
-returned.
-
-The ``string(FIND)`` subcommand treats all strings as ASCII-only characters.
-The index stored in ``<output_variable>`` will also be counted in bytes,
-so strings containing multi-byte characters may lead to unexpected results.
-
-.. _REPLACE:
-
-.. code-block:: cmake
-
- string(REPLACE <match_string>
- <replace_string> <output_variable>
- <input> [<input>...])
-
-Replace all occurrences of ``<match_string>`` in the ``<input>``
-with ``<replace_string>`` and store the result in the ``<output_variable>``.
-
-Regular Expressions
-^^^^^^^^^^^^^^^^^^^
-
-.. _`REGEX MATCH`:
-
-.. code-block:: cmake
-
- string(REGEX MATCH <regular_expression>
- <output_variable> <input> [<input>...])
-
-Match the ``<regular_expression>`` once and store the match in the
-``<output_variable>``.
-All ``<input>`` arguments are concatenated before matching.
-
-.. _`REGEX MATCHALL`:
-
-.. code-block:: cmake
-
- string(REGEX MATCHALL <regular_expression>
- <output_variable> <input> [<input>...])
-
-Match the ``<regular_expression>`` as many times as possible and store the
-matches in the ``<output_variable>`` as a list.
-All ``<input>`` arguments are concatenated before matching.
-
-.. _`REGEX REPLACE`:
-
-.. code-block:: cmake
-
- string(REGEX REPLACE <regular_expression>
- <replacement_expression> <output_variable>
- <input> [<input>...])
-
-Match the ``<regular_expression>`` as many times as possible and substitute
-the ``<replacement_expression>`` for the match in the output.
-All ``<input>`` arguments are concatenated before matching.
-
-The ``<replacement_expression>`` may refer to parenthesis-delimited
-subexpressions of the match using ``\1``, ``\2``, ..., ``\9``. Note that
-two backslashes (``\\1``) are required in CMake code to get a backslash
-through argument parsing.
-
-.. _`Regex Specification`:
-
-Regex Specification
-"""""""""""""""""""
-
-The following characters have special meaning in regular expressions:
-
-``^``
- Matches at beginning of input
-``$``
- Matches at end of input
-``.``
- Matches any single character
-``\<char>``
- Matches the single character specified by ``<char>``. Use this to
- match special regex characters, e.g. ``\.`` for a literal ``.``
- or ``\\`` for a literal backslash ``\``. Escaping a non-special
- character is unnecessary but allowed, e.g. ``\a`` matches ``a``.
-``[ ]``
- Matches any character(s) inside the brackets
-``[^ ]``
- Matches any character(s) not inside the brackets
-``-``
- Inside brackets, specifies an inclusive range between
- characters on either side e.g. ``[a-f]`` is ``[abcdef]``
- To match a literal ``-`` using brackets, make it the first
- or the last character e.g. ``[+*/-]`` matches basic
- mathematical operators.
-``*``
- Matches preceding pattern zero or more times
-``+``
- Matches preceding pattern one or more times
-``?``
- Matches preceding pattern zero or once only
-``|``
- Matches a pattern on either side of the ``|``
-``()``
- Saves a matched subexpression, which can be referenced
- in the ``REGEX REPLACE`` operation. Additionally it is saved
- by all regular expression-related commands, including
- e.g. :command:`if(MATCHES)`, in the variables
- :variable:`CMAKE_MATCH_<n>` for ``<n>`` 0..9.
-
-``*``, ``+`` and ``?`` have higher precedence than concatenation. ``|``
-has lower precedence than concatenation. This means that the regular
-expression ``^ab+d$`` matches ``abbd`` but not ``ababd``, and the regular
-expression ``^(ab|cd)$`` matches ``ab`` but not ``abd``.
-
-CMake language :ref:`Escape Sequences` such as ``\t``, ``\r``, ``\n``,
-and ``\\`` may be used to construct literal tabs, carriage returns,
-newlines, and backslashes (respectively) to pass in a regex. For example:
-
-* The quoted argument ``"[ \t\r\n]"`` specifies a regex that matches
- any single whitespace character.
-* The quoted argument ``"[/\\]"`` specifies a regex that matches
- a single forward slash ``/`` or backslash ``\``.
-* The quoted argument ``"[A-Za-z0-9_]"`` specifies a regex that matches
- any single "word" character in the C locale.
-* The quoted argument ``"\\(\\a\\+b\\)"`` specifies a regex that matches
- the exact string ``(a+b)``. Each ``\\`` is parsed in a quoted argument
- as just ``\``, so the regex itself is actually ``\(\a\+\b\)``. This
- can alternatively be specified in a :ref:`bracket argument` without
- having to escape the backslashes, e.g. ``[[\(\a\+\b\)]]``.
-
-Manipulation
-^^^^^^^^^^^^
-
-.. _APPEND:
-
-.. code-block:: cmake
-
- string(APPEND <string_variable> [<input>...])
-
-Append all the ``<input>`` arguments to the string.
-
-.. _PREPEND:
-
-.. code-block:: cmake
-
- string(PREPEND <string_variable> [<input>...])
-
-Prepend all the ``<input>`` arguments to the string.
-
-.. _CONCAT:
-
-.. code-block:: cmake
-
- string(CONCAT <output_variable> [<input>...])
-
-Concatenate all the ``<input>`` arguments together and store
-the result in the named ``<output_variable>``.
-
-.. _JOIN:
-
-.. code-block:: cmake
-
- string(JOIN <glue> <output_variable> [<input>...])
-
-Join all the ``<input>`` arguments together using the ``<glue>``
-string and store the result in the named ``<output_variable>``.
-
-To join a list's elements, prefer to use the ``JOIN`` operator
-from the :command:`list` command. This allows for the elements to have
-special characters like ``;`` in them.
-
-.. _TOLOWER:
-
-.. code-block:: cmake
-
- string(TOLOWER <string> <output_variable>)
-
-Convert ``<string>`` to lower characters.
-
-.. _TOUPPER:
-
-.. code-block:: cmake
-
- string(TOUPPER <string> <output_variable>)
-
-Convert ``<string>`` to upper characters.
-
-.. _LENGTH:
-
-.. code-block:: cmake
-
- string(LENGTH <string> <output_variable>)
-
-Store in an ``<output_variable>`` a given string's length in bytes.
-Note that this means if ``<string>`` contains multi-byte characters, the
-result stored in ``<output_variable>`` will *not* be the number of characters.
-
-.. _SUBSTRING:
-
-.. code-block:: cmake
-
- string(SUBSTRING <string> <begin> <length> <output_variable>)
-
-Store in an ``<output_variable>`` a substring of a given ``<string>``. If
-``<length>`` is ``-1`` the remainder of the string starting at ``<begin>``
-will be returned. If ``<string>`` is shorter than ``<length>`` then the
-end of the string is used instead.
-
-Both ``<begin>`` and ``<length>`` are counted in bytes, so care must
-be exercised if ``<string>`` could contain multi-byte characters.
-
-.. note::
- CMake 3.1 and below reported an error if ``<length>`` pointed past
- the end of ``<string>``.
-
-.. _STRIP:
-
-.. code-block:: cmake
-
- string(STRIP <string> <output_variable>)
-
-Store in an ``<output_variable>`` a substring of a given ``<string>`` with
-leading and trailing spaces removed.
-
-.. _GENEX_STRIP:
-
-.. code-block:: cmake
-
- string(GENEX_STRIP <string> <output_variable>)
-
-Strip any :manual:`generator expressions <cmake-generator-expressions(7)>`
-from the input ``<string>`` and store the result in the ``<output_variable>``.
-
-.. _REPEAT:
-
-.. code-block:: cmake
-
- string(REPEAT <string> <count> <output_variable>)
-
-Produce the output string as the input ``<string>`` repeated ``<count>`` times.
-
-Comparison
-^^^^^^^^^^
-
-.. _COMPARE:
-
-.. code-block:: cmake
-
- string(COMPARE LESS <string1> <string2> <output_variable>)
- string(COMPARE GREATER <string1> <string2> <output_variable>)
- string(COMPARE EQUAL <string1> <string2> <output_variable>)
- string(COMPARE NOTEQUAL <string1> <string2> <output_variable>)
- string(COMPARE LESS_EQUAL <string1> <string2> <output_variable>)
- string(COMPARE GREATER_EQUAL <string1> <string2> <output_variable>)
-
-Compare the strings and store true or false in the ``<output_variable>``.
-
-.. _`Supported Hash Algorithms`:
-
-Hashing
-^^^^^^^
-
-.. _`HASH`:
-
-.. code-block:: cmake
-
- string(<HASH> <output_variable> <input>)
-
-Compute a cryptographic hash of the ``<input>`` string.
-The supported ``<HASH>`` algorithm names are:
-
-``MD5``
- Message-Digest Algorithm 5, RFC 1321.
-``SHA1``
- US Secure Hash Algorithm 1, RFC 3174.
-``SHA224``
- US Secure Hash Algorithms, RFC 4634.
-``SHA256``
- US Secure Hash Algorithms, RFC 4634.
-``SHA384``
- US Secure Hash Algorithms, RFC 4634.
-``SHA512``
- US Secure Hash Algorithms, RFC 4634.
-``SHA3_224``
- Keccak SHA-3.
-``SHA3_256``
- Keccak SHA-3.
-``SHA3_384``
- Keccak SHA-3.
-``SHA3_512``
- Keccak SHA-3.
-
-Generation
-^^^^^^^^^^
-
-.. _ASCII:
-
-.. code-block:: cmake
-
- string(ASCII <number> [<number> ...] <output_variable>)
-
-Convert all numbers into corresponding ASCII characters.
-
-.. _CONFIGURE:
-
-.. code-block:: cmake
-
- string(CONFIGURE <string> <output_variable>
- [@ONLY] [ESCAPE_QUOTES])
-
-Transform a ``<string>`` like :command:`configure_file` transforms a file.
-
-.. _MAKE_C_IDENTIFIER:
-
-.. code-block:: cmake
-
- string(MAKE_C_IDENTIFIER <string> <output_variable>)
-
-Convert each non-alphanumeric character in the input ``<string>`` to an
-underscore and store the result in the ``<output_variable>``. If the first
-character of the ``<string>`` is a digit, an underscore will also be prepended
-to the result.
-
-.. _RANDOM:
-
-.. code-block:: cmake
-
- string(RANDOM [LENGTH <length>] [ALPHABET <alphabet>]
- [RANDOM_SEED <seed>] <output_variable>)
-
-Return a random string of given ``<length>`` consisting of
-characters from the given ``<alphabet>``. Default length is 5 characters
-and default alphabet is all numbers and upper and lower case letters.
-If an integer ``RANDOM_SEED`` is given, its value will be used to seed the
-random number generator.
-
-.. _TIMESTAMP:
-
-.. code-block:: cmake
-
- string(TIMESTAMP <output_variable> [<format_string>] [UTC])
-
-Write a string representation of the current date
-and/or time to the ``<output_variable>``.
-
-If the command is unable to obtain a timestamp, the ``<output_variable>``
-will be set to the empty string ``""``.
-
-The optional ``UTC`` flag requests the current date/time representation to
-be in Coordinated Universal Time (UTC) rather than local time.
-
-The optional ``<format_string>`` may contain the following format
-specifiers:
-
-::
-
- %% A literal percent sign (%).
- %d The day of the current month (01-31).
- %H The hour on a 24-hour clock (00-23).
- %I The hour on a 12-hour clock (01-12).
- %j The day of the current year (001-366).
- %m The month of the current year (01-12).
- %b Abbreviated month name (e.g. Oct).
- %B Full month name (e.g. October).
- %M The minute of the current hour (00-59).
- %s Seconds since midnight (UTC) 1-Jan-1970 (UNIX time).
- %S The second of the current minute.
- 60 represents a leap second. (00-60)
- %U The week number of the current year (00-53).
- %w The day of the current week. 0 is Sunday. (0-6)
- %a Abbreviated weekday name (e.g. Fri).
- %A Full weekday name (e.g. Friday).
- %y The last two digits of the current year (00-99)
- %Y The current year.
-
-Unknown format specifiers will be ignored and copied to the output
-as-is.
-
-If no explicit ``<format_string>`` is given, it will default to:
-
-::
-
- %Y-%m-%dT%H:%M:%S for local time.
- %Y-%m-%dT%H:%M:%SZ for UTC.
-
-.. note::
-
- If the ``SOURCE_DATE_EPOCH`` environment variable is set,
- its value will be used instead of the current time.
- See https://reproducible-builds.org/specs/source-date-epoch/ for details.
-
-.. _UUID:
-
-.. code-block:: cmake
-
- string(UUID <output_variable> NAMESPACE <namespace> NAME <name>
- TYPE <MD5|SHA1> [UPPER])
-
-Create a universally unique identifier (aka GUID) as per RFC4122
-based on the hash of the combined values of ``<namespace>``
-(which itself has to be a valid UUID) and ``<name>``.
-The hash algorithm can be either ``MD5`` (Version 3 UUID) or
-``SHA1`` (Version 5 UUID).
-A UUID has the format ``xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx``
-where each ``x`` represents a lower case hexadecimal character.
-Where required, an uppercase representation can be requested
-with the optional ``UPPER`` flag.
diff --git a/share/cmake-3.17/Help/command/target_compile_options.rst b/share/cmake-3.17/Help/command/target_compile_options.rst
deleted file mode 100644
index 47e7d86..0000000
--- a/share/cmake-3.17/Help/command/target_compile_options.rst
+++ /dev/null
@@ -1,48 +0,0 @@
-target_compile_options
-----------------------
-
-Add compile options to a target.
-
-.. code-block:: cmake
-
- target_compile_options(<target> [BEFORE]
- <INTERFACE|PUBLIC|PRIVATE> [items1...]
- [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
-
-Adds options to the :prop_tgt:`COMPILE_OPTIONS` or
-:prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties. These options
-are used when compiling the given ``<target>``, which 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
-^^^^^^^^^
-
-If ``BEFORE`` is specified, the content will be prepended to the property
-instead of being appended.
-
-The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
-specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
-items will populate the :prop_tgt:`COMPILE_OPTIONS` property of
-``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
-:prop_tgt:`INTERFACE_COMPILE_OPTIONS` property of ``<target>``.
-(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
-The following arguments specify compile options. Repeated calls for the same
-``<target>`` append items in the order called.
-
-Arguments to ``target_compile_options`` may use "generator expressions"
-with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
-manual for available expressions. See the :manual:`cmake-buildsystem(7)`
-manual for more on defining buildsystem properties.
-
-.. include:: OPTIONS_SHELL.txt
-
-See Also
-^^^^^^^^
-
-This command can be used to add any options. However, for adding
-preprocessor definitions and include directories it is recommended
-to use the more specific commands :command:`target_compile_definitions`
-and :command:`target_include_directories`.
-
-For directory-wide settings, there is the command :command:`add_compile_options`.
diff --git a/share/cmake-3.17/Help/command/target_link_options.rst b/share/cmake-3.17/Help/command/target_link_options.rst
deleted file mode 100644
index b5abbc4..0000000
--- a/share/cmake-3.17/Help/command/target_link_options.rst
+++ /dev/null
@@ -1,48 +0,0 @@
-target_link_options
--------------------
-
-Add options to the link step for an executable, shared library or module
-library target.
-
-.. code-block:: cmake
-
- target_link_options(<target> [BEFORE]
- <INTERFACE|PUBLIC|PRIVATE> [items1...]
- [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
-
-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>`.
-
-This command can be used to add any link options, but alternative commands
-exist to add libraries (:command:`target_link_libraries` or
-:command:`link_libraries`). See documentation of the
-:prop_dir:`directory <LINK_OPTIONS>` and
-:prop_tgt:`target <LINK_OPTIONS>` ``LINK_OPTIONS`` properties.
-
-.. note::
-
- This command cannot be used to add options for static library targets,
- since they do not use a linker. To add archiver or MSVC librarian flags,
- see the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property.
-
-If ``BEFORE`` is specified, the content will be prepended to the property
-instead of being appended.
-
-The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
-specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
-items will populate the :prop_tgt:`LINK_OPTIONS` property of
-``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
-:prop_tgt:`INTERFACE_LINK_OPTIONS` property of ``<target>``.
-(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
-The following arguments specify link options. Repeated calls for the same
-``<target>`` append items in the order called.
-
-Arguments to ``target_link_options`` may use "generator expressions"
-with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
-manual for available expressions. See the :manual:`cmake-buildsystem(7)`
-manual for more on defining buildsystem properties.
-
-.. include:: OPTIONS_SHELL.txt
-
-.. include:: LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.17/Help/command/target_precompile_headers.rst b/share/cmake-3.17/Help/command/target_precompile_headers.rst
deleted file mode 100644
index 569c7eb..0000000
--- a/share/cmake-3.17/Help/command/target_precompile_headers.rst
+++ /dev/null
@@ -1,124 +0,0 @@
-target_precompile_headers
--------------------------
-
-Add a list of header files to precompile.
-
-Precompiling header files can speed up compilation by creating a partially
-processed version of some header files, and then using that version during
-compilations rather than repeatedly parsing the original headers.
-
-Main Form
-^^^^^^^^^
-
-.. code-block:: cmake
-
- target_precompile_headers(<target>
- <INTERFACE|PUBLIC|PRIVATE> [header1...]
- [<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])
-
-The command adds header files to the :prop_tgt:`PRECOMPILE_HEADERS` and/or
-:prop_tgt:`INTERFACE_PRECOMPILE_HEADERS` target properties of ``<target>``.
-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>`.
-
-The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
-specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
-items will populate the :prop_tgt:`PRECOMPILE_HEADERS` property of
-``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
-:prop_tgt:`INTERFACE_PRECOMPILE_HEADERS` property of ``<target>``
-(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items).
-Repeated calls for the same ``<target>`` will append items in the order called.
-
-Projects should generally avoid using ``PUBLIC`` or ``INTERFACE`` for targets
-that will be :ref:`exported <install(EXPORT)>`, or they should at least use
-the ``$<BUILD_INTERFACE:...>`` generator expression to prevent precompile
-headers from appearing in an installed exported target. Consumers of a target
-should typically be in control of what precompile headers they use, not have
-precompile headers forced on them by the targets being consumed (since
-precompile headers are not typically usage requirements). A notable exception
-to this is where an :ref:`interface library <Interface Libraries>` is created
-to define a commonly used set of precompile headers in one place and then other
-targets link to that interface library privately. In this case, the interface
-library exists specifically to propagate the precompile headers to its
-consumers and the consumer is effectively still in control, since it decides
-whether to link to the interface library or not.
-
-The list of header files is used to generate a header file named
-``cmake_pch.h|xx`` which is used to generate the precompiled header file
-(``.pch``, ``.gch``, ``.pchi``) artifact. The ``cmake_pch.h|xx`` header
-file will be force included (``-include`` for GCC, ``/FI`` for MSVC) to
-all source files, so sources do not need to have ``#include "pch.h"``.
-
-Header file names specified with angle brackets (e.g. ``<unordered_map>``) or
-explicit double quotes (escaped for the :manual:`cmake-language(7)`,
-e.g. ``[["other_header.h"]]``) will be treated as is, and include directories
-must be available for the compiler to find them. Other header file names
-(e.g. ``project_header.h``) are interpreted as being relative to the current
-source directory (e.g. :variable:`CMAKE_CURRENT_SOURCE_DIR`) and will be
-included by absolute path.
-
-Arguments to ``target_precompile_headers()`` 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.
-The ``$<COMPILE_LANGUAGE:...>`` generator expression is particularly
-useful for specifying a language-specific header to precompile for
-only one language (e.g. ``CXX`` and not ``C``). For example:
-
-.. code-block:: cmake
-
- target_precompile_headers(myTarget
- PUBLIC
- project_header.h
- "$<$<COMPILE_LANGUAGE:CXX>:cxx_only.h>"
- PRIVATE
- [["other_header.h"]]
- <unordered_map>
- )
-
-When specifying angle brackets inside a :manual:`generator expression
-<cmake-generator-expressions(7)>`, be sure to encode the closing ``>``
-as ``$<ANGLE-R>``. For example:
-
-.. code-block:: cmake
-
- target_precompile_headers(mylib PRIVATE
- "$<$<COMPILE_LANGUAGE:C>:<stddef.h$<ANGLE-R>>"
- "$<$<COMPILE_LANGUAGE:CXX>:<cstddef$<ANGLE-R>>"
- )
-
-
-Reusing Precompile Headers
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The command also supports a second signature which can be used to specify that
-one target re-uses a precompiled header file artefact from another target
-instead of generating its own:
-
-.. code-block:: cmake
-
- target_precompile_headers(<target> REUSE_FROM <other_target>)
-
-This form sets the :prop_tgt:`PRECOMPILE_HEADERS_REUSE_FROM` property to
-``<other_target>`` and adds a dependency such that ``<target>`` will depend
-on ``<other_target>``. CMake will halt with an error if the
-:prop_tgt:`PRECOMPILE_HEADERS` property of ``<target>`` is already set when
-the ``REUSE_FROM`` form is used.
-
-.. note::
-
- The ``REUSE_FROM`` form requires the same set of compiler options,
- compiler flags and compiler definitions for both ``<target>`` and
- ``<other_target>``. Some compilers (e.g. GCC) may issue a warning if the
- precompiled header file cannot be used (``-Winvalid-pch``).
-
-See Also
-^^^^^^^^
-
-To disable precompile headers for specific targets, see the
-:prop_tgt:`DISABLE_PRECOMPILE_HEADERS` target property.
-
-To prevent precompile headers from being used when compiling a specific
-source file, see the :prop_sf:`SKIP_PRECOMPILE_HEADERS` source file property.
diff --git a/share/cmake-3.17/Help/command/try_compile.rst b/share/cmake-3.17/Help/command/try_compile.rst
deleted file mode 100644
index edbf92c..0000000
--- a/share/cmake-3.17/Help/command/try_compile.rst
+++ /dev/null
@@ -1,191 +0,0 @@
-try_compile
------------
-
-.. only:: html
-
- .. contents::
-
-Try building some code.
-
-Try Compiling Whole Projects
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- try_compile(<resultVar> <bindir> <srcdir>
- <projectName> [<targetName>] [CMAKE_FLAGS <flags>...]
- [OUTPUT_VARIABLE <var>])
-
-Try building a project. The success or failure of the ``try_compile``,
-i.e. ``TRUE`` or ``FALSE`` respectively, is returned in ``<resultVar>``.
-
-In this form, ``<srcdir>`` should contain a complete CMake project with a
-``CMakeLists.txt`` file and all sources. The ``<bindir>`` and ``<srcdir>``
-will not be deleted after this command is run. Specify ``<targetName>`` to
-build a specific target instead of the ``all`` or ``ALL_BUILD`` target. See
-below for the meaning of other options.
-
-Try Compiling Source Files
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. code-block:: cmake
-
- try_compile(<resultVar> <bindir> <srcfile|SOURCES srcfile...>
- [CMAKE_FLAGS <flags>...]
- [COMPILE_DEFINITIONS <defs>...]
- [LINK_OPTIONS <options>...]
- [LINK_LIBRARIES <libs>...]
- [OUTPUT_VARIABLE <var>]
- [COPY_FILE <fileName> [COPY_FILE_ERROR <var>]]
- [<LANG>_STANDARD <std>]
- [<LANG>_STANDARD_REQUIRED <bool>]
- [<LANG>_EXTENSIONS <bool>]
- )
-
-Try building an executable or static library from one or more source files
-(which one is determined by the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE`
-variable). The success or failure of the ``try_compile``, i.e. ``TRUE`` or
-``FALSE`` respectively, is returned in ``<resultVar>``.
-
-In this form, one or more source files must be provided. If
-:variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` is unset or is set to ``EXECUTABLE``,
-the sources must include a definition for ``main`` and CMake will create a
-``CMakeLists.txt`` file to build the source(s) as an executable.
-If :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` is set to ``STATIC_LIBRARY``,
-a static library will be built instead and no definition for ``main`` is
-required. For an executable, the generated ``CMakeLists.txt`` file would
-contain something like the following:
-
-.. code-block:: cmake
-
- add_definitions(<expanded COMPILE_DEFINITIONS from caller>)
- include_directories(${INCLUDE_DIRECTORIES})
- link_directories(${LINK_DIRECTORIES})
- add_executable(cmTryCompileExec <srcfile>...)
- target_link_options(cmTryCompileExec PRIVATE <LINK_OPTIONS from caller>)
- target_link_libraries(cmTryCompileExec ${LINK_LIBRARIES})
-
-The options are:
-
-``CMAKE_FLAGS <flags>...``
- Specify flags of the form ``-DVAR:TYPE=VALUE`` to be passed to
- the ``cmake`` command-line used to drive the test build.
- The above example shows how values for variables
- ``INCLUDE_DIRECTORIES``, ``LINK_DIRECTORIES``, and ``LINK_LIBRARIES``
- are used.
-
-``COMPILE_DEFINITIONS <defs>...``
- Specify ``-Ddefinition`` arguments to pass to :command:`add_definitions`
- in the generated test project.
-
-``COPY_FILE <fileName>``
- Copy the built executable or static library to the given ``<fileName>``.
-
-``COPY_FILE_ERROR <var>``
- Use after ``COPY_FILE`` to capture into variable ``<var>`` any error
- message encountered while trying to copy the file.
-
-``LINK_LIBRARIES <libs>...``
- Specify libraries to be linked in the generated project.
- The list of libraries may refer to system libraries and to
- :ref:`Imported Targets <Imported Targets>` from the calling project.
-
- If this option is specified, any ``-DLINK_LIBRARIES=...`` value
- given to the ``CMAKE_FLAGS`` option will be ignored.
-
-``LINK_OPTIONS <options>...``
- Specify link step options to pass to :command:`target_link_options` or to
- set the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property in the generated
- project, depending on the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable.
-
-``OUTPUT_VARIABLE <var>``
- Store the output from the build process in the given variable.
-
-``<LANG>_STANDARD <std>``
- Specify the :prop_tgt:`C_STANDARD`, :prop_tgt:`CXX_STANDARD`,
- :prop_tgt:`OBJC_STANDARD`, :prop_tgt:`OBJCXX_STANDARD`,
- or :prop_tgt:`CUDA_STANDARD` target property of the generated project.
-
-``<LANG>_STANDARD_REQUIRED <bool>``
- Specify the :prop_tgt:`C_STANDARD_REQUIRED`,
- :prop_tgt:`CXX_STANDARD_REQUIRED`, :prop_tgt:`OBJC_STANDARD_REQUIRED`,
- :prop_tgt:`OBJCXX_STANDARD_REQUIRED`,or :prop_tgt:`CUDA_STANDARD_REQUIRED`
- target property of the generated project.
-
-``<LANG>_EXTENSIONS <bool>``
- Specify the :prop_tgt:`C_EXTENSIONS`, :prop_tgt:`CXX_EXTENSIONS`,
- :prop_tgt:`OBJC_EXTENSIONS`, :prop_tgt:`OBJCXX_EXTENSIONS`,
- or :prop_tgt:`CUDA_EXTENSIONS` target property of the generated project.
-
-In this version all files in ``<bindir>/CMakeFiles/CMakeTmp`` will be
-cleaned automatically. For debugging, ``--debug-trycompile`` can be
-passed to ``cmake`` to avoid this clean. However, multiple sequential
-``try_compile`` operations reuse this single output directory. If you use
-``--debug-trycompile``, you can only debug one ``try_compile`` call at a time.
-The recommended procedure is to protect all ``try_compile`` calls in your
-project by ``if(NOT DEFINED <resultVar>)`` logic, configure with cmake
-all the way through once, then delete the cache entry associated with
-the try_compile call of interest, and then re-run cmake again with
-``--debug-trycompile``.
-
-Other Behavior Settings
-^^^^^^^^^^^^^^^^^^^^^^^
-
-If set, the following variables are passed in to the generated
-try_compile CMakeLists.txt to initialize compile target properties with
-default values:
-
-* :variable:`CMAKE_ENABLE_EXPORTS`
-* :variable:`CMAKE_LINK_SEARCH_START_STATIC`
-* :variable:`CMAKE_LINK_SEARCH_END_STATIC`
-* :variable:`CMAKE_MSVC_RUNTIME_LIBRARY`
-* :variable:`CMAKE_POSITION_INDEPENDENT_CODE`
-
-If :policy:`CMP0056` is set to ``NEW``, then
-:variable:`CMAKE_EXE_LINKER_FLAGS` is passed in as well.
-
-If :policy:`CMP0083` is set to ``NEW``, then in order to obtain correct
-behavior at link time, the ``check_pie_supported()`` command from the
-:module:`CheckPIESupported` module must be called before using the
-:command:`try_compile` command.
-
-The current settings of :policy:`CMP0065` and :policy:`CMP0083` are propagated
-through to the generated test project.
-
-Set the :variable:`CMAKE_TRY_COMPILE_CONFIGURATION` variable to choose
-a build configuration.
-
-Set the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to specify
-the type of target used for the source file signature.
-
-Set the :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify
-variables that must be propagated into the test project. This variable is
-meant for use only in toolchain files and is only honored by the
-``try_compile()`` command for the source files form, not when given a whole
-project.
-
-If :policy:`CMP0067` is set to ``NEW``, or any of the ``<LANG>_STANDARD``,
-``<LANG>_STANDARD_REQUIRED``, or ``<LANG>_EXTENSIONS`` options are used,
-then the language standard variables are honored:
-
-* :variable:`CMAKE_C_STANDARD`
-* :variable:`CMAKE_C_STANDARD_REQUIRED`
-* :variable:`CMAKE_C_EXTENSIONS`
-* :variable:`CMAKE_CXX_STANDARD`
-* :variable:`CMAKE_CXX_STANDARD_REQUIRED`
-* :variable:`CMAKE_CXX_EXTENSIONS`
-* :variable:`CMAKE_OBJC_STANDARD`
-* :variable:`CMAKE_OBJC_STANDARD_REQUIRED`
-* :variable:`CMAKE_OBJC_EXTENSIONS`
-* :variable:`CMAKE_OBJCXX_STANDARD`
-* :variable:`CMAKE_OBJCXX_STANDARD_REQUIRED`
-* :variable:`CMAKE_OBJCXX_EXTENSIONS`
-* :variable:`CMAKE_CUDA_STANDARD`
-* :variable:`CMAKE_CUDA_STANDARD_REQUIRED`
-* :variable:`CMAKE_CUDA_EXTENSIONS`
-
-Their values are used to set the corresponding target properties in
-the generated project (unless overridden by an explicit option).
-
-For the :generator:`Green Hills MULTI` generator the GHS toolset and target
-system customization cache variables are also propagated into the test project.
diff --git a/share/cmake-3.17/Help/cpack_gen/archive.rst b/share/cmake-3.17/Help/cpack_gen/archive.rst
deleted file mode 100644
index d455f4b..0000000
--- a/share/cmake-3.17/Help/cpack_gen/archive.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-CPack Archive Generator
------------------------
-
-Archive CPack generator that supports packaging of sources and binaries in
-different formats:
-
- - 7Z - 7zip - (.7z)
- - TBZ2 (.tar.bz2)
- - TGZ (.tar.gz)
- - TXZ (.tar.xz)
- - TZ (.tar.Z)
- - TZST (.tar.zst)
- - ZIP (.zip)
-
-Variables specific to CPack Archive generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. variable:: CPACK_ARCHIVE_FILE_NAME
- CPACK_ARCHIVE_<component>_FILE_NAME
-
- Package file name without extension which is added automatically depending
- on the archive format.
-
- * Mandatory : YES
- * Default : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].<extension>`` with
- spaces replaced by '-'
-
-.. variable:: CPACK_ARCHIVE_COMPONENT_INSTALL
-
- Enable component packaging for CPackArchive
-
- * Mandatory : NO
- * Default : OFF
-
- If enabled (ON) multiple packages are generated. By default a single package
- containing files of all components is generated.
diff --git a/share/cmake-3.17/Help/cpack_gen/cygwin.rst b/share/cmake-3.17/Help/cpack_gen/cygwin.rst
deleted file mode 100644
index 1c5f7af..0000000
--- a/share/cmake-3.17/Help/cpack_gen/cygwin.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-CPack Cygwin Generator
-----------------------
-
-Cygwin CPack generator (Cygwin).
-
-Variables specific to CPack Cygwin generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The
-following variable is specific to installers build on and/or for
-Cygwin:
-
-.. variable:: CPACK_CYGWIN_PATCH_NUMBER
-
- The Cygwin patch number. FIXME: This documentation is incomplete.
-
-.. variable:: CPACK_CYGWIN_PATCH_FILE
-
- The Cygwin patch file. FIXME: This documentation is incomplete.
-
-.. variable:: CPACK_CYGWIN_BUILD_SCRIPT
-
- The Cygwin build script. FIXME: This documentation is incomplete.
diff --git a/share/cmake-3.17/Help/cpack_gen/deb.rst b/share/cmake-3.17/Help/cpack_gen/deb.rst
deleted file mode 100644
index db71c87..0000000
--- a/share/cmake-3.17/Help/cpack_gen/deb.rst
+++ /dev/null
@@ -1,565 +0,0 @@
-CPack DEB Generator
--------------------
-
-The built in (binary) CPack DEB generator (Unix only)
-
-Variables specific to CPack Debian (DEB) generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The CPack DEB generator may be used to create DEB package using :module:`CPack`.
-The CPack DEB generator is a :module:`CPack` generator thus it uses the
-``CPACK_XXX`` variables used by :module:`CPack`.
-
-The CPack DEB generator should work on any Linux host but it will produce
-better deb package when Debian specific tools ``dpkg-xxx`` are usable on
-the build system.
-
-The CPack DEB generator has specific features which are controlled by the
-specifics ``CPACK_DEBIAN_XXX`` variables.
-
-``CPACK_DEBIAN_<COMPONENT>_XXXX`` variables may be used in order to have
-**component** specific values. Note however that ``<COMPONENT>`` refers to
-the **grouping name** written in upper case. It may be either a component name
-or a component GROUP name.
-
-Here are some CPack DEB generator wiki resources that are here for historic
-reasons and are no longer maintained but may still prove useful:
-
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/Configuration
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/PackageGenerators#deb-unix-only
-
-List of CPack DEB generator specific variables:
-
-.. variable:: CPACK_DEB_COMPONENT_INSTALL
-
- Enable component packaging for CPackDEB
-
- * Mandatory : NO
- * Default : OFF
-
- If enabled (ON) multiple packages are generated. By default a single package
- containing files of all components is generated.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_NAME
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_NAME
-
- Set Package control field (variable is automatically transformed to lower
- case).
-
- * Mandatory : YES
- * Default :
-
- - :variable:`CPACK_PACKAGE_NAME` for non-component based
- installations
- - :variable:`CPACK_DEBIAN_PACKAGE_NAME` suffixed with -<COMPONENT>
- for component-based installations.
-
- See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source
-
-.. variable:: CPACK_DEBIAN_FILE_NAME
- CPACK_DEBIAN_<COMPONENT>_FILE_NAME
-
- Package file name.
-
- * Mandatory : YES
- * Default : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].deb``
-
- This may be set to ``DEB-DEFAULT`` to allow the CPack DEB generator to generate
- package file name by itself in deb format::
-
- <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
-
- Alternatively provided package file name must end
- with either ``.deb`` or ``.ipk`` suffix.
-
- .. note::
-
- Preferred setting of this variable is ``DEB-DEFAULT`` but for backward
- compatibility with the CPack DEB generator in CMake prior to version 3.6 this
- feature is disabled by default.
-
- .. note::
-
- By using non default filenames duplicate names may occur. Duplicate files
- get overwritten and it is up to the packager to set the variables in a
- manner that will prevent such errors.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_EPOCH
-
- The Debian package epoch
-
- * Mandatory : No
- * Default : -
-
- Optional number that should be incremented when changing versioning schemas
- or fixing mistakes in the version numbers of older packages.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_VERSION
-
- The Debian package version
-
- * Mandatory : YES
- * Default : :variable:`CPACK_PACKAGE_VERSION`
-
- This variable may contain only alphanumerics (A-Za-z0-9) and the characters
- . + - ~ (full stop, plus, hyphen, tilde) and should start with a digit. If
- :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` is not set then hyphens are not
- allowed.
-
- .. note::
-
- For backward compatibility with CMake 3.9 and lower a failed test of this
- variable's content is not a hard error when both
- :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` and
- :variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables are not set. An author
- warning is reported instead.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_RELEASE
-
- The Debian package release - Debian revision number.
-
- * Mandatory : No
- * Default : -
-
- This is the numbering of the DEB package itself, i.e. the version of the
- packaging and not the version of the content (see
- :variable:`CPACK_DEBIAN_PACKAGE_VERSION`). One may change the default value
- if the previous packaging was buggy and/or you want to put here a fancy Linux
- distro specific numbering.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_ARCHITECTURE
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE
-
- The Debian package architecture
-
- * Mandatory : YES
- * Default : Output of ``dpkg --print-architecture`` (or ``i386``
- if ``dpkg`` is not found)
-
-.. variable:: CPACK_DEBIAN_PACKAGE_DEPENDS
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS
-
- Sets the Debian dependencies of this package.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_DEPENDS` for component-based
- installations.
-
- .. note::
-
- If :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` or
- more specifically :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS`
- is set for this component, the discovered dependencies will be appended
- to :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS` instead of
- :variable:`CPACK_DEBIAN_PACKAGE_DEPENDS`. If
- :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS` is an empty string,
- only the automatically discovered dependencies will be set for this
- component.
-
- Example::
-
- set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libc6 (< 2.4)")
-
-.. variable:: CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS
-
- Sets inter component dependencies if listed with
- :variable:`CPACK_COMPONENT_<compName>_DEPENDS` variables.
-
- * Mandatory : NO
- * Default : -
-
-.. variable:: CPACK_DEBIAN_PACKAGE_MAINTAINER
-
- The Debian package maintainer
-
- * Mandatory : YES
- * Default : ``CPACK_PACKAGE_CONTACT``
-
-.. variable:: CPACK_DEBIAN_PACKAGE_DESCRIPTION
- CPACK_DEBIAN_<COMPONENT>_DESCRIPTION
-
- The Debian package description
-
- * Mandatory : YES
- * Default :
-
- - :variable:`CPACK_DEBIAN_<COMPONENT>_DESCRIPTION` (component
- based installers only) if set, or :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION` if set, or
- - :variable:`CPACK_COMPONENT_<compName>_DESCRIPTION` (component
- based installers only) if set, or :variable:`CPACK_PACKAGE_DESCRIPTION` if set, or
- - content of the file specified in :variable:`CPACK_PACKAGE_DESCRIPTION_FILE` if set
-
- If after that description is not set, :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` going to be
- used if set. Otherwise, :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` will be added as the first
- line of description as defined in `Debian Policy Manual`_.
-
-.. _Debian Policy Manual: https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
-
-.. variable:: CPACK_DEBIAN_PACKAGE_SECTION
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION
-
- Set Section control field e.g. admin, devel, doc, ...
-
- * Mandatory : YES
- * Default : "devel"
-
- See https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections
-
-.. variable:: CPACK_DEBIAN_ARCHIVE_TYPE
-
- The archive format used for creating the Debian package.
-
- * Mandatory : YES
- * Default : "gnutar"
-
- Possible value is:
-
- - gnutar
-
- .. note::
-
- This variable previously defaulted to the ``paxr`` value, but ``dpkg``
- has never supported that tar format. For backwards compatibility the
- ``paxr`` value will be mapped to ``gnutar`` and a deprecation message
- will be emitted.
-
-.. variable:: CPACK_DEBIAN_COMPRESSION_TYPE
-
- The compression used for creating the Debian package.
-
- * Mandatory : YES
- * Default : "gzip"
-
- Possible values are:
-
- - lzma
- - xz
- - bzip2
- - gzip
-
-.. variable:: CPACK_DEBIAN_PACKAGE_PRIORITY
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY
-
- Set Priority control field e.g. required, important, standard, optional,
- extra
-
- * Mandatory : YES
- * Default : "optional"
-
- See https://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities
-
-.. variable:: CPACK_DEBIAN_PACKAGE_HOMEPAGE
-
- The URL of the web site for this package, preferably (when applicable) the
- site from which the original source can be obtained and any additional
- upstream documentation or information may be found.
-
- * Mandatory : NO
- * Default : :variable:`CMAKE_PROJECT_HOMEPAGE_URL`
-
- .. note::
-
- The content of this field is a simple URL without any surrounding
- characters such as <>.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_SHLIBDEPS
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS
-
- May be set to ON in order to use ``dpkg-shlibdeps`` to generate
- better package dependency list.
-
- * Mandatory : NO
- * Default :
-
- - :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` if set or
- - OFF
-
- .. note::
-
- You may need set :variable:`CMAKE_INSTALL_RPATH` to an appropriate value
- if you use this feature, because if you don't ``dpkg-shlibdeps``
- may fail to find your own shared libs.
- See https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/RPATH-handling
-
-.. variable:: CPACK_DEBIAN_PACKAGE_DEBUG
-
- May be set when invoking cpack in order to trace debug information
- during the CPack DEB generator run.
-
- * Mandatory : NO
- * Default : -
-
-.. variable:: CPACK_DEBIAN_PACKAGE_PREDEPENDS
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS
-
- Sets the `Pre-Depends` field of the Debian package.
- Like :variable:`Depends <CPACK_DEBIAN_PACKAGE_DEPENDS>`, except that it
- also forces ``dpkg`` to complete installation of the packages named
- before even starting the installation of the package which declares the
- pre-dependency.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_PREDEPENDS` for component-based
- installations.
-
- See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
-
-.. variable:: CPACK_DEBIAN_PACKAGE_ENHANCES
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES
-
- Sets the `Enhances` field of the Debian package.
- Similar to :variable:`Suggests <CPACK_DEBIAN_PACKAGE_SUGGESTS>` but works
- in the opposite direction: declares that a package can enhance the
- functionality of another package.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_ENHANCES` for component-based
- installations.
-
- See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
-
-.. variable:: CPACK_DEBIAN_PACKAGE_BREAKS
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS
-
- Sets the `Breaks` field of the Debian package.
- When a binary package (P) declares that it breaks other packages (B),
- ``dpkg`` will not allow the package (P) which declares `Breaks` be
- **unpacked** unless the packages that will be broken (B) are deconfigured
- first.
- As long as the package (P) is configured, the previously deconfigured
- packages (B) cannot be reconfigured again.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_BREAKS` for component-based
- installations.
-
- See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-breaks
-
-.. variable:: CPACK_DEBIAN_PACKAGE_CONFLICTS
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS
-
- Sets the `Conflicts` field of the Debian package.
- When one binary package declares a conflict with another using a `Conflicts`
- field, ``dpkg`` will not allow them to be unpacked on the system at
- the same time.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_CONFLICTS` for component-based
- installations.
-
- See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
-
- .. note::
-
- This is a stronger restriction than
- :variable:`Breaks <CPACK_DEBIAN_PACKAGE_BREAKS>`, which prevents the
- broken package from being configured while the breaking package is in
- the "Unpacked" state but allows both packages to be unpacked at the same
- time.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_PROVIDES
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES
-
- Sets the `Provides` field of the Debian package.
- A virtual package is one which appears in the `Provides` control field of
- another package.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_PROVIDES` for component-based
- installations.
-
- See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual
-
-.. variable:: CPACK_DEBIAN_PACKAGE_REPLACES
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES
-
- Sets the `Replaces` field of the Debian package.
- Packages can declare in their control file that they should overwrite
- files in certain other packages, or completely replace other packages.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_REPLACES` for component-based
- installations.
-
- See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
-
-.. variable:: CPACK_DEBIAN_PACKAGE_RECOMMENDS
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS
-
- Sets the `Recommends` field of the Debian package.
- Allows packages to declare a strong, but not absolute, dependency on other
- packages.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_RECOMMENDS` for component-based
- installations.
-
- See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
-
-.. variable:: CPACK_DEBIAN_PACKAGE_SUGGESTS
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS
-
- Sets the `Suggests` field of the Debian package.
- Allows packages to declare a suggested package install grouping.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_SUGGESTS` for component-based
- installations.
-
- See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
-
-.. variable:: CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS
-
- * Mandatory : NO
- * Default : OFF
-
- Allows to generate shlibs control file automatically. Compatibility is defined by
- :variable:`CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY` variable value.
-
- .. note::
-
- Libraries are only considered if they have both library name and version
- set. This can be done by setting SOVERSION property with
- :command:`set_target_properties` command.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY
-
- Compatibility policy for auto-generated shlibs control file.
-
- * Mandatory : NO
- * Default : "="
-
- Defines compatibility policy for auto-generated shlibs control file.
- Possible values: "=", ">="
-
- See https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps
-
-.. variable:: CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_EXTRA
-
- This variable allow advanced user to add custom script to the
- control.tar.gz.
- Typical usage is for conffiles, postinst, postrm, prerm.
-
- * Mandatory : NO
- * Default : -
-
- Usage::
-
- set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
- "${CMAKE_CURRENT_SOURCE_DIR}/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")
-
- .. note::
-
- The original permissions of the files will be used in the final
- package unless the variable
- :variable:`CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION` is set.
- In particular, the scripts should have the proper executable
- flag prior to the generation of the package.
-
-.. variable:: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_STRICT_PERMISSION
-
- This variable indicates if the Debian policy on control files should be
- strictly followed.
-
- * Mandatory : NO
- * Default : FALSE
-
- Usage::
-
- set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION TRUE)
-
- .. note::
-
- This overrides the permissions on the original files, following the rules
- set by Debian policy
- https://www.debian.org/doc/debian-policy/ch-files.html#s-permissions-owners
-
-.. variable:: CPACK_DEBIAN_PACKAGE_SOURCE
- CPACK_DEBIAN_<COMPONENT>_PACKAGE_SOURCE
-
- Sets the ``Source`` field of the binary Debian package.
- When the binary package name is not the same as the source package name
- (in particular when several components/binaries are generated from one
- source) the source from which the binary has been generated should be
- indicated with the field ``Source``.
-
- * Mandatory : NO
- * Default :
-
- - An empty string for non-component based installations
- - :variable:`CPACK_DEBIAN_PACKAGE_SOURCE` for component-based
- installations.
-
- See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source
-
- .. note::
-
- This value is not interpreted. It is possible to pass an optional
- revision number of the referenced source package as well.
-
-Packaging of debug information
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Dbgsym packages contain debug symbols for debugging packaged binaries.
-
-Dbgsym packaging has its own set of variables:
-
-.. variable:: CPACK_DEBIAN_DEBUGINFO_PACKAGE
- CPACK_DEBIAN_<component>_DEBUGINFO_PACKAGE
-
- Enable generation of dbgsym .ddeb package(s).
-
- * Mandatory : NO
- * Default : OFF
-
-.. note::
-
- Binaries must contain debug symbols before packaging so use either ``Debug``
- or ``RelWithDebInfo`` for :variable:`CMAKE_BUILD_TYPE` variable value.
-
-Building Debian packages on Windows
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To communicate UNIX file permissions from the install stage
-to the CPack DEB generator the "cmake_mode_t" NTFS
-alternate data stream (ADT) is used.
-
-When a filesystem without ADT support is used only owner read/write
-permissions can be preserved.
-
-Reproducible packages
-^^^^^^^^^^^^^^^^^^^^^
-
-The environment variable ``SOURCE_DATE_EPOCH`` may be set to a UNIX
-timestamp, defined as the number of seconds, excluding leap seconds,
-since 01 Jan 1970 00:00:00 UTC. If set, the CPack DEB generator will
-use its value for timestamps in the package.
diff --git a/share/cmake-3.17/Help/cpack_gen/freebsd.rst b/share/cmake-3.17/Help/cpack_gen/freebsd.rst
deleted file mode 100644
index a8dd320..0000000
--- a/share/cmake-3.17/Help/cpack_gen/freebsd.rst
+++ /dev/null
@@ -1,138 +0,0 @@
-CPack FreeBSD Generator
------------------------
-
-The built in (binary) CPack FreeBSD (pkg) generator (Unix only)
-
-Variables specific to CPack FreeBSD (pkg) generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The CPack FreeBSD generator may be used to create pkg(8) packages -- these may
-be used on FreeBSD, DragonflyBSD, NetBSD, OpenBSD, but also on Linux or OSX,
-depending on the installed package-management tools -- using :module:`CPack`.
-
-The CPack FreeBSD generator is a :module:`CPack` generator and uses the
-``CPACK_XXX`` variables used by :module:`CPack`. It tries to re-use packaging
-information that may already be specified for Debian packages for the
-:cpack_gen:`CPack DEB Generator`. It also tries to re-use RPM packaging
-information when Debian does not specify.
-
-The CPack FreeBSD generator should work on any host with libpkg installed. The
-packages it produces are specific to the host architecture and ABI.
-
-The CPack FreeBSD generator sets package-metadata through
-``CPACK_FREEBSD_XXX`` variables. The CPack FreeBSD generator, unlike the
-CPack Deb generator, does not specially support componentized packages; a
-single package is created from all the software artifacts created through
-CMake.
-
-All of the variables can be set specifically for FreeBSD packaging in
-the CPackConfig file or in CMakeLists.txt, but most of them have defaults
-that use general settings (e.g. CMAKE_PROJECT_NAME) or Debian-specific
-variables when those make sense (e.g. the homepage of an upstream project
-is usually unchanged by the flavor of packaging). When there is no Debian
-information to fall back on, but the RPM packaging has it, fall back to
-the RPM information (e.g. package license).
-
-.. variable:: CPACK_FREEBSD_PACKAGE_NAME
-
- Sets the package name (in the package manifest, but also affects the
- output filename).
-
- * Mandatory: YES
- * Default:
-
- - :variable:`CPACK_PACKAGE_NAME` (this is always set by CPack itself,
- based on CMAKE_PROJECT_NAME).
-
-.. variable:: CPACK_FREEBSD_PACKAGE_COMMENT
-
- Sets the package comment. This is the short description displayed by
- pkg(8) in standard "pkg info" output.
-
- * Mandatory: YES
- * Default:
-
- - :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` (this is always set
- by CPack itself, if nothing else sets it explicitly).
- - :variable:`PROJECT_DESCRIPTION` (this can be set with the DESCRIPTION
- parameter for :command:`project`).
-
-.. variable:: CPACK_FREEBSD_PACKAGE_DESCRIPTION
-
- Sets the package description. This is the long description of the package,
- given by "pkg info" with a specific package as argument.
-
- * Mandatory: YES
- * Default:
-
- - :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION` (this may be set already
- for Debian packaging, so we may as well re-use it).
-
-.. variable:: CPACK_FREEBSD_PACKAGE_WWW
-
- The URL of the web site for this package, preferably (when applicable) the
- site from which the original source can be obtained and any additional
- upstream documentation or information may be found.
-
- * Mandatory: YES
- * Default:
-
- - :variable:`CMAKE_PROJECT_HOMEPAGE_URL`, or if that is not set,
- :variable:`CPACK_DEBIAN_PACKAGE_HOMEPAGE` (this may be set already
- for Debian packaging, so we may as well re-use it).
-
-.. variable:: CPACK_FREEBSD_PACKAGE_LICENSE
-
- The license, or licenses, which apply to this software package. This must
- be one or more license-identifiers that pkg recognizes as acceptable license
- identifiers (e.g. "GPLv2").
-
- * Mandatory: YES
- * Default:
-
- - :variable:`CPACK_RPM_PACKAGE_LICENSE`
-
-.. variable:: CPACK_FREEBSD_PACKAGE_LICENSE_LOGIC
-
- This variable is only of importance if there is more than one license.
- The default is "single", which is only applicable to a single license.
- Other acceptable values are determined by pkg -- those are "dual" or "multi" --
- meaning choice (OR) or simultaneous (AND) application of the licenses.
-
- * Mandatory: NO
- * Default: single
-
-.. variable:: CPACK_FREEBSD_PACKAGE_MAINTAINER
-
- The FreeBSD maintainer (e.g. kde@freebsd.org) of this package.
-
- * Mandatory: YES
- * Default: none
-
-.. variable:: CPACK_FREEBSD_PACKAGE_ORIGIN
-
- The origin (ports label) of this package; for packages built by CPack
- outside of the ports system this is of less importance. The default
- puts the package somewhere under misc/, as a stopgap.
-
- * Mandatory: YES
- * Default: misc/<package name>
-
-.. variable:: CPACK_FREEBSD_PACKAGE_CATEGORIES
-
- The ports categories where this package lives (if it were to be built
- from ports). If none is set a single category is determined based on
- the package origin.
-
- * Mandatory: YES
- * Default: derived from ORIGIN
-
-.. variable:: CPACK_FREEBSD_PACKAGE_DEPS
-
- A list of package origins that should be added as package dependencies.
- These are in the form <category>/<packagename>, e.g. x11/libkonq.
- No version information needs to be provided (this is not included
- in the manifest).
-
- * Mandatory: NO
- * Default: empty
diff --git a/share/cmake-3.17/Help/cpack_gen/ifw.rst b/share/cmake-3.17/Help/cpack_gen/ifw.rst
deleted file mode 100644
index 4a9ab99..0000000
--- a/share/cmake-3.17/Help/cpack_gen/ifw.rst
+++ /dev/null
@@ -1,334 +0,0 @@
-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
deleted file mode 100644
index a310e9f..0000000
--- a/share/cmake-3.17/Help/cpack_gen/nsis.rst
+++ /dev/null
@@ -1,155 +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")
-
-.. 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.17/Help/cpack_gen/rpm.rst b/share/cmake-3.17/Help/cpack_gen/rpm.rst
deleted file mode 100644
index 2693c7b..0000000
--- a/share/cmake-3.17/Help/cpack_gen/rpm.rst
+++ /dev/null
@@ -1,955 +0,0 @@
-CPack RPM Generator
--------------------
-
-The built in (binary) CPack RPM generator (Unix only)
-
-Variables specific to CPack RPM generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The CPack RPM generator may be used to create RPM packages using :module:`CPack`.
-The CPack RPM generator is a :module:`CPack` generator thus it uses the
-``CPACK_XXX`` variables used by :module:`CPack`.
-
-The CPack RPM generator has specific features which are controlled by the specifics
-``CPACK_RPM_XXX`` variables.
-
-``CPACK_RPM_<COMPONENT>_XXXX`` variables may be used in order to have
-**component** specific values. Note however that ``<COMPONENT>`` refers to the
-**grouping name** written in upper case. It may be either a component name or
-a component GROUP name. Usually those variables correspond to RPM spec file
-entities. One may find information about spec files here
-http://www.rpm.org/wiki/Docs
-
-.. note::
-
- `<COMPONENT>` part of variables is preferred to be in upper case (e.g. if
- component is named ``foo`` then use ``CPACK_RPM_FOO_XXXX`` variable name format)
- as is with other ``CPACK_<COMPONENT>_XXXX`` variables.
- For the purposes of back compatibility (CMake/CPack version 3.5 and lower)
- support for same cased component (e.g. ``fOo`` would be used as
- ``CPACK_RPM_fOo_XXXX``) is still supported for variables defined in older
- versions of CMake/CPack but is not guaranteed for variables that
- will be added in the future. For the sake of back compatibility same cased
- component variables also override upper cased versions where both are
- present.
-
-Here are some CPack RPM generator wiki resources that are here for historic
-reasons and are no longer maintained but may still prove useful:
-
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/Configuration
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/PackageGenerators#rpm-unix-only
-
-List of CPack RPM generator specific variables:
-
-.. variable:: CPACK_RPM_COMPONENT_INSTALL
-
- Enable component packaging for CPack RPM generator
-
- * Mandatory : NO
- * Default : OFF
-
- If enabled (``ON``) multiple packages are generated. By default
- a single package containing files of all components is generated.
-
-.. variable:: CPACK_RPM_PACKAGE_SUMMARY
- CPACK_RPM_<component>_PACKAGE_SUMMARY
-
- The RPM package summary.
-
- * Mandatory : YES
- * Default : :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`
-
-.. variable:: CPACK_RPM_PACKAGE_NAME
- CPACK_RPM_<component>_PACKAGE_NAME
-
- The RPM package name.
-
- * Mandatory : YES
- * Default : :variable:`CPACK_PACKAGE_NAME`
-
-.. variable:: CPACK_RPM_FILE_NAME
- CPACK_RPM_<component>_FILE_NAME
-
- Package file name.
-
- * Mandatory : YES
- * Default : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].rpm`` with spaces
- replaced by '-'
-
- This may be set to ``RPM-DEFAULT`` to allow ``rpmbuild`` tool to generate package
- file name by itself.
- Alternatively provided package file name must end with ``.rpm`` suffix.
-
- .. note::
-
- By using user provided spec file, rpm macro extensions such as for
- generating ``debuginfo`` packages or by simply using multiple components more
- than one rpm file may be generated, either from a single spec file or from
- multiple spec files (each component execution produces its own spec file).
- In such cases duplicate file names may occur as a result of this variable
- setting or spec file content structure. Duplicate files get overwritten
- and it is up to the packager to set the variables in a manner that will
- prevent such errors.
-
-.. variable:: CPACK_RPM_MAIN_COMPONENT
-
- Main component that is packaged without component suffix.
-
- * Mandatory : NO
- * Default : -
-
- This variable can be set to any component or group name so that component or
- group rpm package is generated without component suffix in filename and
- package name.
-
-.. variable:: CPACK_RPM_PACKAGE_EPOCH
-
- The RPM package epoch
-
- * Mandatory : No
- * Default : -
-
- Optional number that should be incremented when changing versioning schemas
- or fixing mistakes in the version numbers of older packages.
-
-.. variable:: CPACK_RPM_PACKAGE_VERSION
-
- The RPM package version.
-
- * Mandatory : YES
- * Default : :variable:`CPACK_PACKAGE_VERSION`
-
-.. variable:: CPACK_RPM_PACKAGE_ARCHITECTURE
- CPACK_RPM_<component>_PACKAGE_ARCHITECTURE
-
- The RPM package architecture.
-
- * Mandatory : YES
- * Default : Native architecture output by ``uname -m``
-
- This may be set to ``noarch`` if you know you are building a ``noarch`` package.
-
-.. variable:: CPACK_RPM_PACKAGE_RELEASE
-
- The RPM package release.
-
- * Mandatory : YES
- * Default : 1
-
- This is the numbering of the RPM package itself, i.e. the version of the
- packaging and not the version of the content (see
- :variable:`CPACK_RPM_PACKAGE_VERSION`). One may change the default value if
- the previous packaging was buggy and/or you want to put here a fancy Linux
- distro specific numbering.
-
-.. note::
-
- This is the string that goes into the RPM ``Release:`` field. Some distros
- (e.g. Fedora, CentOS) require ``1%{?dist}`` format and not just a number.
- ``%{?dist}`` part can be added by setting :variable:`CPACK_RPM_PACKAGE_RELEASE_DIST`.
-
-.. variable:: CPACK_RPM_PACKAGE_RELEASE_DIST
-
- The dist tag that is added RPM ``Release:`` field.
-
- * Mandatory : NO
- * Default : OFF
-
- This is the reported ``%{dist}`` tag from the current distribution or empty
- ``%{dist}`` if RPM macro is not set. If this variable is set then RPM
- ``Release:`` field value is set to ``${CPACK_RPM_PACKAGE_RELEASE}%{?dist}``.
-
-.. variable:: CPACK_RPM_PACKAGE_LICENSE
-
- The RPM package license policy.
-
- * Mandatory : YES
- * Default : "unknown"
-
-.. variable:: CPACK_RPM_PACKAGE_GROUP
- CPACK_RPM_<component>_PACKAGE_GROUP
-
- The RPM package group.
-
- * Mandatory : YES
- * Default : "unknown"
-
-.. variable:: CPACK_RPM_PACKAGE_VENDOR
-
- The RPM package vendor.
-
- * Mandatory : YES
- * Default : CPACK_PACKAGE_VENDOR if set or "unknown"
-
-.. variable:: CPACK_RPM_PACKAGE_URL
- CPACK_RPM_<component>_PACKAGE_URL
-
- The projects URL.
-
- * Mandatory : NO
- * Default : :variable:`CMAKE_PROJECT_HOMEPAGE_URL`
-
-.. variable:: CPACK_RPM_PACKAGE_DESCRIPTION
- CPACK_RPM_<component>_PACKAGE_DESCRIPTION
-
- RPM package description.
-
- * Mandatory : YES
- * Default : :variable:`CPACK_COMPONENT_<compName>_DESCRIPTION` (component
- based installers only) if set, :variable:`CPACK_PACKAGE_DESCRIPTION_FILE`
- if set or "no package description available"
-
-.. variable:: CPACK_RPM_COMPRESSION_TYPE
-
- RPM compression type.
-
- * Mandatory : NO
- * Default : -
-
- May be used to override RPM compression type to be used to build the
- RPM. For example some Linux distribution now default to ``lzma`` or ``xz``
- compression whereas older cannot use such RPM. Using this one can enforce
- compression type to be used.
-
- Possible values are:
-
- - lzma
- - xz
- - bzip2
- - gzip
-
-.. variable:: CPACK_RPM_PACKAGE_AUTOREQ
- CPACK_RPM_<component>_PACKAGE_AUTOREQ
-
- RPM spec autoreq field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to enable (``1``, ``yes``) or disable (``0``, ``no``) automatic
- shared libraries dependency detection. Dependencies are added to requires list.
-
- .. note::
-
- By default automatic dependency detection is enabled by rpm generator.
-
-.. variable:: CPACK_RPM_PACKAGE_AUTOPROV
- CPACK_RPM_<component>_PACKAGE_AUTOPROV
-
- RPM spec autoprov field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to enable (``1``, ``yes``) or disable (``0``, ``no``)
- automatic listing of shared libraries that are provided by the package.
- Shared libraries are added to provides list.
-
- .. note::
-
- By default automatic provides detection is enabled by rpm generator.
-
-.. variable:: CPACK_RPM_PACKAGE_AUTOREQPROV
- CPACK_RPM_<component>_PACKAGE_AUTOREQPROV
-
- RPM spec autoreqprov field.
-
- * Mandatory : NO
- * Default : -
-
- Variable enables/disables autoreq and autoprov at the same time.
- See :variable:`CPACK_RPM_PACKAGE_AUTOREQ` and
- :variable:`CPACK_RPM_PACKAGE_AUTOPROV` for more details.
-
- .. note::
-
- By default automatic detection feature is enabled by rpm.
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES
- CPACK_RPM_<component>_PACKAGE_REQUIRES
-
- RPM spec requires field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM dependencies (requires). Note that you must enclose
- the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
-
- The required package list of an RPM file could be printed with::
-
- rpm -qp --requires file.rpm
-
-.. variable:: CPACK_RPM_PACKAGE_CONFLICTS
- CPACK_RPM_<component>_PACKAGE_CONFLICTS
-
- RPM spec conflicts field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set negative RPM dependencies (conflicts). Note that you must
- enclose the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_CONFLICTS "libxml2")
-
- The conflicting package list of an RPM file could be printed with::
-
- rpm -qp --conflicts file.rpm
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES_PRE
- CPACK_RPM_<component>_PACKAGE_REQUIRES_PRE
-
- RPM spec requires(pre) field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM preinstall dependencies (requires(pre)). Note that
- you must enclose the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils, initscripts")
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES_POST
- CPACK_RPM_<component>_PACKAGE_REQUIRES_POST
-
- RPM spec requires(post) field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM postinstall dependencies (requires(post)). Note that
- you must enclose the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES_POST "shadow-utils, initscripts")
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES_POSTUN
- CPACK_RPM_<component>_PACKAGE_REQUIRES_POSTUN
-
- RPM spec requires(postun) field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM postuninstall dependencies (requires(postun)). Note
- that you must enclose the complete requires string between quotes, for
- example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES_POSTUN "shadow-utils, initscripts")
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES_PREUN
- CPACK_RPM_<component>_PACKAGE_REQUIRES_PREUN
-
- RPM spec requires(preun) field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM preuninstall dependencies (requires(preun)). Note that
- you must enclose the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES_PREUN "shadow-utils, initscripts")
-
-.. variable:: CPACK_RPM_PACKAGE_SUGGESTS
- CPACK_RPM_<component>_PACKAGE_SUGGESTS
-
- RPM spec suggest field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set weak RPM dependencies (suggests). Note that you must
- enclose the complete requires string between quotes.
-
-.. variable:: CPACK_RPM_PACKAGE_PROVIDES
- CPACK_RPM_<component>_PACKAGE_PROVIDES
-
- RPM spec provides field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM dependencies (provides). The provided package list
- of an RPM file could be printed with::
-
- rpm -qp --provides file.rpm
-
-.. variable:: CPACK_RPM_PACKAGE_OBSOLETES
- CPACK_RPM_<component>_PACKAGE_OBSOLETES
-
- RPM spec obsoletes field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM packages that are obsoleted by this one.
-
-.. variable:: CPACK_RPM_PACKAGE_RELOCATABLE
-
- build a relocatable RPM.
-
- * Mandatory : NO
- * Default : CPACK_PACKAGE_RELOCATABLE
-
- If this variable is set to TRUE or ON, the CPack RPM generator will try
- to build a relocatable RPM package. A relocatable RPM may
- be installed using::
-
- rpm --prefix or --relocate
-
- in order to install it at an alternate place see rpm(8). Note that
- currently this may fail if :variable:`CPACK_SET_DESTDIR` is set to ``ON``. If
- :variable:`CPACK_SET_DESTDIR` is set then you will get a warning message but
- if there is file installed with absolute path you'll get unexpected behavior.
-
-.. variable:: CPACK_RPM_SPEC_INSTALL_POST
-
- Deprecated - use :variable:`CPACK_RPM_SPEC_MORE_DEFINE` instead.
-
- * Mandatory : NO
- * Default : -
- * Deprecated: YES
-
- May be used to override the ``__spec_install_post`` section within the
- generated spec file. This affects the install step during package creation,
- not during package installation. For adding operations to be performed
- during package installation, use
- :variable:`CPACK_RPM_POST_INSTALL_SCRIPT_FILE` instead.
-
-.. variable:: CPACK_RPM_SPEC_MORE_DEFINE
-
- RPM extended spec definitions lines.
-
- * Mandatory : NO
- * Default : -
-
- May be used to add any ``%define`` lines to the generated spec file. An
- example of its use is to prevent stripping of executables (but note that
- this may also disable other default post install processing)::
-
- set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
-
-.. variable:: CPACK_RPM_PACKAGE_DEBUG
-
- Toggle CPack RPM generator debug output.
-
- * Mandatory : NO
- * Default : -
-
- May be set when invoking cpack in order to trace debug information
- during CPack RPM run. For example you may launch CPack like this::
-
- cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
-
-.. variable:: CPACK_RPM_USER_BINARY_SPECFILE
- CPACK_RPM_<componentName>_USER_BINARY_SPECFILE
-
- A user provided spec file.
-
- * Mandatory : NO
- * Default : -
-
- May be set by the user in order to specify a USER binary spec file
- to be used by the CPack RPM generator instead of generating the file.
- The specified file will be processed by configure_file( @ONLY).
-
-.. variable:: CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
-
- Spec file template.
-
- * Mandatory : NO
- * Default : -
-
- If set CPack will generate a template for USER specified binary
- spec file and stop with an error. For example launch CPack like this::
-
- cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
-
- The user may then use this file in order to hand-craft is own
- binary spec file which may be used with
- :variable:`CPACK_RPM_USER_BINARY_SPECFILE`.
-
-.. variable:: CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
- CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
-
- Path to file containing pre (un)install script.
-
- * Mandatory : NO
- * Default : -
-
- May be used to embed a pre (un)installation script in the spec file.
- The referred script file (or both) will be read and directly
- put after the ``%pre`` or ``%preun`` section
- If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the (un)install
- script for each component can be overridden with
- ``CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE`` and
- ``CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE``.
- One may verify which scriptlet has been included with::
-
- rpm -qp --scripts package.rpm
-
-.. variable:: CPACK_RPM_POST_INSTALL_SCRIPT_FILE
- CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE
-
- Path to file containing post (un)install script.
-
- * Mandatory : NO
- * Default : -
-
- May be used to embed a post (un)installation script in the spec file.
- The referred script file (or both) will be read and directly
- put after the ``%post`` or ``%postun`` section.
- If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the (un)install
- script for each component can be overridden with
- ``CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE`` and
- ``CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE``.
- One may verify which scriptlet has been included with::
-
- rpm -qp --scripts package.rpm
-
-.. variable:: CPACK_RPM_USER_FILELIST
- CPACK_RPM_<COMPONENT>_USER_FILELIST
-
- * Mandatory : NO
- * Default : -
-
- May be used to explicitly specify ``%(<directive>)`` file line
- in the spec file. Like ``%config(noreplace)`` or any other directive
- that be found in the ``%files`` section. You can have multiple directives
- per line, as in ``%attr(600,root,root) %config(noreplace)``. Since
- the CPack RPM generator is generating the list of files (and directories) the
- user specified files of the ``CPACK_RPM_<COMPONENT>_USER_FILELIST`` list will
- be removed from the generated list. If referring to directories do
- not add a trailing slash.
-
-.. variable:: CPACK_RPM_CHANGELOG_FILE
-
- RPM changelog file.
-
- * Mandatory : NO
- * Default : -
-
- May be used to embed a changelog in the spec file.
- The referred file will be read and directly put after the ``%changelog``
- section.
-
-.. variable:: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST
-
- list of path to be excluded.
-
- * Mandatory : NO
- * Default : /etc /etc/init.d /usr /usr/bin /usr/include /usr/lib
- /usr/libx32 /usr/lib64 /usr/share /usr/share/aclocal
- /usr/share/doc
-
- May be used to exclude path (directories or files) from the auto-generated
- list of paths discovered by CPack RPM. The default value contains a
- reasonable set of values if the variable is not defined by the user. If the
- variable is defined by the user then the CPack RPM generator will NOT any of
- the default path. If you want to add some path to the default list then you
- can use :variable:`CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION` variable.
-
-.. variable:: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
-
- additional list of path to be excluded.
-
- * Mandatory : NO
- * Default : -
-
- May be used to add more exclude path (directories or files) from the initial
- default list of excluded paths. See
- :variable:`CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST`.
-
-.. variable:: CPACK_RPM_RELOCATION_PATHS
-
- Packages relocation paths list.
-
- * Mandatory : NO
- * Default : -
-
- May be used to specify more than one relocation path per relocatable RPM.
- Variable contains a list of relocation paths that if relative are prefixed
- by the value of :variable:`CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX` or by the
- value of :variable:`CPACK_PACKAGING_INSTALL_PREFIX` if the component version
- is not provided.
- Variable is not component based as its content can be used to set a different
- path prefix for e.g. binary dir and documentation dir at the same time.
- Only prefixes that are required by a certain component are added to that
- component - component must contain at least one file/directory/symbolic link
- with :variable:`CPACK_RPM_RELOCATION_PATHS` prefix for a certain relocation
- path to be added. Package will not contain any relocation paths if there are
- no files/directories/symbolic links on any of the provided prefix locations.
- Packages that either do not contain any relocation paths or contain
- files/directories/symbolic links that are outside relocation paths print
- out an ``AUTHOR_WARNING`` that RPM will be partially relocatable.
-
-.. variable:: CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
-
- Per component relocation path install prefix.
-
- * Mandatory : NO
- * Default : CPACK_PACKAGING_INSTALL_PREFIX
-
- May be used to set per component :variable:`CPACK_PACKAGING_INSTALL_PREFIX`
- for relocatable RPM packages.
-
-.. variable:: CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION
- CPACK_RPM_NO_<COMPONENT>_INSTALL_PREFIX_RELOCATION
-
- Removal of default install prefix from relocation paths list.
-
- * Mandatory : NO
- * Default : CPACK_PACKAGING_INSTALL_PREFIX or CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
- are treated as one of relocation paths
-
- May be used to remove CPACK_PACKAGING_INSTALL_PREFIX and CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
- from relocatable RPM prefix paths.
-
-.. variable:: CPACK_RPM_ADDITIONAL_MAN_DIRS
-
- * Mandatory : NO
- * Default : -
-
- May be used to set additional man dirs that could potentially be compressed
- by brp-compress RPM macro. Variable content must be a list of regular
- expressions that point to directories containing man files or to man files
- directly. Note that in order to compress man pages a path must also be
- present in brp-compress RPM script and that brp-compress script must be
- added to RPM configuration by the operating system.
-
- Regular expressions that are added by default were taken from brp-compress
- RPM macro:
-
- - /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.*
-
-.. variable:: CPACK_RPM_DEFAULT_USER
- CPACK_RPM_<compName>_DEFAULT_USER
-
- default user ownership of RPM content
-
- * Mandatory : NO
- * Default : root
-
- Value should be user name and not UID.
- Note that <compName> must be in upper-case.
-
-.. variable:: CPACK_RPM_DEFAULT_GROUP
- CPACK_RPM_<compName>_DEFAULT_GROUP
-
- default group ownership of RPM content
-
- * Mandatory : NO
- * Default : root
-
- Value should be group name and not GID.
- Note that <compName> must be in upper-case.
-
-.. variable:: CPACK_RPM_DEFAULT_FILE_PERMISSIONS
- CPACK_RPM_<compName>_DEFAULT_FILE_PERMISSIONS
-
- default permissions used for packaged files
-
- * Mandatory : NO
- * Default : - (system default)
-
- Accepted values are lists with ``PERMISSIONS``. Valid permissions
- are:
-
- - OWNER_READ
- - OWNER_WRITE
- - OWNER_EXECUTE
- - GROUP_READ
- - GROUP_WRITE
- - GROUP_EXECUTE
- - WORLD_READ
- - WORLD_WRITE
- - WORLD_EXECUTE
-
- Note that <compName> must be in upper-case.
-
-.. variable:: CPACK_RPM_DEFAULT_DIR_PERMISSIONS
- CPACK_RPM_<compName>_DEFAULT_DIR_PERMISSIONS
-
- default permissions used for packaged directories
-
- * Mandatory : NO
- * Default : - (system default)
-
- Accepted values are lists with PERMISSIONS. Valid permissions
- are the same as for :variable:`CPACK_RPM_DEFAULT_FILE_PERMISSIONS`.
- Note that <compName> must be in upper-case.
-
-.. variable:: CPACK_RPM_INSTALL_WITH_EXEC
-
- force execute permissions on programs and shared libraries
-
- * Mandatory : NO
- * Default : - (system default)
-
- Force set owner, group and world execute permissions on programs and shared
- libraries. This can be used for creating valid rpm packages on systems such
- as Debian where shared libraries do not have execute permissions set.
-
-.. note::
-
- Programs and shared libraries without execute permissions are ignored during
- separation of debug symbols from the binary for debuginfo packages.
-
-Packaging of Symbolic Links
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The CPack RPM generator supports packaging of symbolic links::
-
- execute_process(COMMAND ${CMAKE_COMMAND}
- -E create_symlink <relative_path_location> <symlink_name>)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/<symlink_name>
- DESTINATION <symlink_location> COMPONENT libraries)
-
-Symbolic links will be optimized (paths will be shortened if possible)
-before being added to the package or if multiple relocation paths are
-detected, a post install symlink relocation script will be generated.
-
-Symbolic links may point to locations that are not packaged by the same
-package (either a different component or even not packaged at all) but
-those locations will be treated as if they were a part of the package
-while determining if symlink should be either created or present in a
-post install script - depending on relocation paths.
-
-Symbolic links that point to locations outside packaging path produce a
-warning and are treated as non relocatable permanent symbolic links.
-
-Currently there are a few limitations though:
-
-* For component based packaging component interdependency is not checked
- when processing symbolic links. Symbolic links pointing to content of
- a different component are treated the same way as if pointing to location
- that will not be packaged.
-
-* Symbolic links pointing to a location through one or more intermediate
- symbolic links will not be handled differently - if the intermediate
- symbolic link(s) is also on a relocatable path, relocating it during
- package installation may cause initial symbolic link to point to an
- invalid location.
-
-Packaging of debug information
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Debuginfo packages contain debug symbols and sources for debugging packaged
-binaries.
-
-Debuginfo RPM packaging has its own set of variables:
-
-.. variable:: CPACK_RPM_DEBUGINFO_PACKAGE
- CPACK_RPM_<component>_DEBUGINFO_PACKAGE
-
- Enable generation of debuginfo RPM package(s).
-
- * Mandatory : NO
- * Default : OFF
-
-.. note::
-
- Binaries must contain debug symbols before packaging so use either ``Debug``
- or ``RelWithDebInfo`` for :variable:`CMAKE_BUILD_TYPE` variable value.
-
-.. note::
-
- Packages generated from packages without binary files, with binary files but
- without execute permissions or without debug symbols will cause packaging
- termination.
-
-.. variable:: CPACK_BUILD_SOURCE_DIRS
-
- Provides locations of root directories of source files from which binaries
- were built.
-
- * Mandatory : YES if :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is set
- * Default : -
-
-.. note::
-
- For CMake project :variable:`CPACK_BUILD_SOURCE_DIRS` is set by default to
- point to :variable:`CMAKE_SOURCE_DIR` and :variable:`CMAKE_BINARY_DIR` paths.
-
-.. note::
-
- Sources with path prefixes that do not fall under any location provided with
- :variable:`CPACK_BUILD_SOURCE_DIRS` will not be present in debuginfo package.
-
-.. variable:: CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX
- CPACK_RPM_<component>_BUILD_SOURCE_DIRS_PREFIX
-
- Prefix of location where sources will be placed during package installation.
-
- * Mandatory : YES if :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is set
- * Default : "/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>" and
- for component packaging "/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>-<component>"
-
-.. note::
-
- Each source path prefix is additionally suffixed by ``src_<index>`` where
- index is index of the path used from :variable:`CPACK_BUILD_SOURCE_DIRS`
- variable. This produces ``<CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX>/src_<index>``
- replacement path.
- Limitation is that replaced path part must be shorter or of equal
- length than the length of its replacement. If that is not the case either
- :variable:`CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX` variable has to be set to
- a shorter path or source directories must be placed on a longer path.
-
-.. variable:: CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS
-
- Directories containing sources that should be excluded from debuginfo packages.
-
- * Mandatory : NO
- * Default : "/usr /usr/src /usr/src/debug"
-
- Listed paths are owned by other RPM packages and should therefore not be
- deleted on debuginfo package uninstallation.
-
-.. variable:: CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION
-
- Paths that should be appended to :variable:`CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS`
- for exclusion.
-
- * Mandatory : NO
- * Default : -
-
-.. variable:: CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE
-
- Create a single debuginfo package even if components packaging is set.
-
- * Mandatory : NO
- * Default : OFF
-
- When this variable is enabled it produces a single debuginfo package even if
- component packaging is enabled.
-
- When using this feature in combination with components packaging and there is
- more than one component this variable requires :variable:`CPACK_RPM_MAIN_COMPONENT`
- to be set.
-
-.. note::
-
- If none of the :variable:`CPACK_RPM_<component>_DEBUGINFO_PACKAGE` variables
- is set then :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is automatically set to
- ``ON`` when :variable:`CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE` is set.
-
-.. variable:: CPACK_RPM_DEBUGINFO_FILE_NAME
- CPACK_RPM_<component>_DEBUGINFO_FILE_NAME
-
- Debuginfo package file name.
-
- * Mandatory : NO
- * Default : rpmbuild tool generated package file name
-
- Alternatively provided debuginfo package file name must end with ``.rpm``
- suffix and should differ from file names of other generated packages.
-
- Variable may contain ``@cpack_component@`` placeholder which will be
- replaced by component name if component packaging is enabled otherwise it
- deletes the placeholder.
-
- Setting the variable to ``RPM-DEFAULT`` may be used to explicitly set
- filename generation to default.
-
-.. note::
-
- :variable:`CPACK_RPM_FILE_NAME` also supports rpmbuild tool generated package
- file name - disabled by default but can be enabled by setting the variable to
- ``RPM-DEFAULT``.
-
-Packaging of sources (SRPM)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-SRPM packaging is enabled by setting :variable:`CPACK_RPM_PACKAGE_SOURCES`
-variable while usually using :variable:`CPACK_INSTALLED_DIRECTORIES` variable
-to provide directory containing CMakeLists.txt and source files.
-
-For CMake projects SRPM package would be produced by executing::
-
- cpack -G RPM --config ./CPackSourceConfig.cmake
-
-.. note::
-
- Produced SRPM package is expected to be built with :manual:`cmake(1)` executable
- and packaged with :manual:`cpack(1)` executable so CMakeLists.txt has to be
- located in root source directory and must be able to generate binary rpm
- packages by executing ``cpack -G`` command. The two executables as well as
- rpmbuild must also be present when generating binary rpm packages from the
- produced SRPM package.
-
-Once the SRPM package is generated it can be used to generate binary packages
-by creating a directory structure for rpm generation and executing rpmbuild
-tool::
-
- mkdir -p build_dir/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
- rpmbuild --define "_topdir <path_to_build_dir>" --rebuild <SRPM_file_name>
-
-Generated packages will be located in build_dir/RPMS directory or its sub
-directories.
-
-.. note::
-
- SRPM package internally uses CPack/RPM generator to generate binary packages
- so CMakeScripts.txt can decide during the SRPM to binary rpm generation step
- what content the package(s) should have as well as how they should be packaged
- (monolithic or components). CMake can decide this for e.g. by reading environment
- variables set by the package manager before starting the process of generating
- binary rpm packages. This way a single SRPM package can be used to produce
- different binary rpm packages on different platforms depending on the platform's
- packaging rules.
-
-Source RPM packaging has its own set of variables:
-
-.. variable:: CPACK_RPM_PACKAGE_SOURCES
-
- Should the content be packaged as a source rpm (default is binary rpm).
-
- * Mandatory : NO
- * Default : OFF
-
-.. note::
-
- For cmake projects :variable:`CPACK_RPM_PACKAGE_SOURCES` variable is set
- to ``OFF`` in CPackConfig.cmake and ``ON`` in CPackSourceConfig.cmake
- generated files.
-
-.. variable:: CPACK_RPM_SOURCE_PKG_BUILD_PARAMS
-
- Additional command-line parameters provided to :manual:`cmake(1)` executable.
-
- * Mandatory : NO
- * Default : -
-
-.. variable:: CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX
-
- Packaging install prefix that would be provided in :variable:`CPACK_PACKAGING_INSTALL_PREFIX`
- variable for producing binary RPM packages.
-
- * Mandatory : YES
- * Default : "/"
-
-.. VARIABLE:: CPACK_RPM_BUILDREQUIRES
-
- List of source rpm build dependencies.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set source RPM build dependencies (BuildRequires). Note that
- you must enclose the complete build requirements string between quotes, for
- example::
-
- set(CPACK_RPM_BUILDREQUIRES "python >= 2.5.0, cmake >= 2.8")
diff --git a/share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst b/share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst
deleted file mode 100644
index 3c3b02a..0000000
--- a/share/cmake-3.17/Help/envvar/ASM_DIALECTFLAGS.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-ASM<DIALECT>FLAGS
------------------
-
-.. include:: ENV_VAR.txt
-
-Default compilation flags to be used when compiling a specific dialect of an
-assembly language. ``ASM<DIALECT>FLAGS`` can be ``ASMFLAGS``, ``ASM_NASMFLAGS``,
-``ASM_MASMFLAGS`` or ``ASM-ATTFLAGS``. Will only be used by CMake on the
-first configuration to determine ``ASM_<DIALECT>`` default compilation
-flags, after which the value for ``ASM<DIALECT>FLAGS`` is stored in the cache
-as ``CMAKE_ASM<DIALECT>_FLAGS <CMAKE_<LANG>_FLAGS>``. For any configuration
-run (including the first), the environment variable will be ignored, if the
-``CMAKE_ASM<DIALECT>_FLAGS <CMAKE_<LANG>_FLAGS>`` variable is defined.
diff --git a/share/cmake-3.17/Help/envvar/CFLAGS.rst b/share/cmake-3.17/Help/envvar/CFLAGS.rst
deleted file mode 100644
index fda9ccc..0000000
--- a/share/cmake-3.17/Help/envvar/CFLAGS.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-CFLAGS
-------
-
-.. include:: ENV_VAR.txt
-
-Default compilation flags to be used when compiling ``C`` files. Will only be
-used by CMake on the first configuration to determine ``CC`` default compilation
-flags, after which the value for ``CFLAGS`` is stored in the cache
-as :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration run
-(including the first), the environment variable will be ignored if the
-:variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
diff --git a/share/cmake-3.17/Help/envvar/CSFLAGS.rst b/share/cmake-3.17/Help/envvar/CSFLAGS.rst
deleted file mode 100644
index 404bb59..0000000
--- a/share/cmake-3.17/Help/envvar/CSFLAGS.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-CSFLAGS
--------
-
-.. include:: ENV_VAR.txt
-
-Preferred executable for compiling ``CSharp`` language files. Will only be
-used by CMake on the first configuration to determine ``CSharp`` default
-compilation flags, after which the value for ``CSFLAGS`` is stored in the cache
-as :variable:`CMAKE_CSharp_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
-run (including the first), the environment variable will be ignored if the
-:variable:`CMAKE_CSharp_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
diff --git a/share/cmake-3.17/Help/envvar/CUDAFLAGS.rst b/share/cmake-3.17/Help/envvar/CUDAFLAGS.rst
deleted file mode 100644
index 4456d6b..0000000
--- a/share/cmake-3.17/Help/envvar/CUDAFLAGS.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-CUDAFLAGS
----------
-
-.. include:: ENV_VAR.txt
-
-Default compilation flags to be used when compiling ``CUDA`` files. Will only be
-used by CMake on the first configuration to determine ``CUDA`` default
-compilation flags, after which the value for ``CUDAFLAGS`` is stored in the
-cache as :variable:`CMAKE_CUDA_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
-run (including the first), the environment variable will be ignored if
-the :variable:`CMAKE_CUDA_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
diff --git a/share/cmake-3.17/Help/envvar/CXXFLAGS.rst b/share/cmake-3.17/Help/envvar/CXXFLAGS.rst
deleted file mode 100644
index d7296dc..0000000
--- a/share/cmake-3.17/Help/envvar/CXXFLAGS.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-CXXFLAGS
---------
-
-.. include:: ENV_VAR.txt
-
-Default compilation flags to be used when compiling ``CXX`` (C++) files. Will
-only be used by CMake on the first configuration to determine ``CXX`` default
-compilation flags, after which the value for ``CXXFLAGS`` is stored in the cache
-as :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration run (
-including the first), the environment variable will be ignored if
-the :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
diff --git a/share/cmake-3.17/Help/envvar/FFLAGS.rst b/share/cmake-3.17/Help/envvar/FFLAGS.rst
deleted file mode 100644
index 02d3c34..0000000
--- a/share/cmake-3.17/Help/envvar/FFLAGS.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-FFLAGS
-------
-
-.. include:: ENV_VAR.txt
-
-Default compilation flags to be used when compiling ``Fortran`` files. Will only
-be used by CMake on the first configuration to determine ``Fortran`` default
-compilation flags, after which the value for ``FFLAGS`` is stored in the cache
-as :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
-run (including the first), the environment variable will be ignored if
-the :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
diff --git a/share/cmake-3.17/Help/envvar/RCFLAGS.rst b/share/cmake-3.17/Help/envvar/RCFLAGS.rst
deleted file mode 100644
index 45419fe..0000000
--- a/share/cmake-3.17/Help/envvar/RCFLAGS.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-RCFLAGS
--------
-
-.. include:: ENV_VAR.txt
-
-Default compilation flags to be used when compiling ``resource`` files. Will
-only be used by CMake on the first configuration to determine ``resource``
-default compilation flags, after which the value for ``RCFLAGS`` is stored in
-the cache as :variable:`CMAKE_RC_FLAGS <CMAKE_<LANG>_FLAGS>`. For any
-configuration run (including the first), the environment variable will be ignored
-if the :variable:`CMAKE_RC_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
diff --git a/share/cmake-3.17/Help/generator/Ninja Multi-Config.rst b/share/cmake-3.17/Help/generator/Ninja Multi-Config.rst
deleted file mode 100644
index 1f68535..0000000
--- a/share/cmake-3.17/Help/generator/Ninja Multi-Config.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-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
deleted file mode 100644
index 275055d..0000000
--- a/share/cmake-3.17/Help/generator/Ninja.rst
+++ /dev/null
@@ -1,46 +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
-
-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.17/Help/manual/cmake-commands.7.rst b/share/cmake-3.17/Help/manual/cmake-commands.7.rst
deleted file mode 100644
index 59ba897..0000000
--- a/share/cmake-3.17/Help/manual/cmake-commands.7.rst
+++ /dev/null
@@ -1,172 +0,0 @@
-.. cmake-manual-description: CMake Language Command Reference
-
-cmake-commands(7)
-*****************
-
-.. only:: html
-
- .. contents::
-
-Scripting Commands
-==================
-
-These commands are always available.
-
-.. toctree::
- :maxdepth: 1
-
- /command/break
- /command/cmake_host_system_information
- /command/cmake_minimum_required
- /command/cmake_parse_arguments
- /command/cmake_policy
- /command/configure_file
- /command/continue
- /command/else
- /command/elseif
- /command/endforeach
- /command/endfunction
- /command/endif
- /command/endmacro
- /command/endwhile
- /command/execute_process
- /command/file
- /command/find_file
- /command/find_library
- /command/find_package
- /command/find_path
- /command/find_program
- /command/foreach
- /command/function
- /command/get_cmake_property
- /command/get_directory_property
- /command/get_filename_component
- /command/get_property
- /command/if
- /command/include
- /command/include_guard
- /command/list
- /command/macro
- /command/mark_as_advanced
- /command/math
- /command/message
- /command/option
- /command/return
- /command/separate_arguments
- /command/set
- /command/set_directory_properties
- /command/set_property
- /command/site_name
- /command/string
- /command/unset
- /command/variable_watch
- /command/while
-
-Project Commands
-================
-
-These commands are available only in CMake projects.
-
-.. toctree::
- :maxdepth: 1
-
- /command/add_compile_definitions
- /command/add_compile_options
- /command/add_custom_command
- /command/add_custom_target
- /command/add_definitions
- /command/add_dependencies
- /command/add_executable
- /command/add_library
- /command/add_link_options
- /command/add_subdirectory
- /command/add_test
- /command/aux_source_directory
- /command/build_command
- /command/create_test_sourcelist
- /command/define_property
- /command/enable_language
- /command/enable_testing
- /command/export
- /command/fltk_wrap_ui
- /command/get_source_file_property
- /command/get_target_property
- /command/get_test_property
- /command/include_directories
- /command/include_external_msproject
- /command/include_regular_expression
- /command/install
- /command/link_directories
- /command/link_libraries
- /command/load_cache
- /command/project
- /command/remove_definitions
- /command/set_source_files_properties
- /command/set_target_properties
- /command/set_tests_properties
- /command/source_group
- /command/target_compile_definitions
- /command/target_compile_features
- /command/target_compile_options
- /command/target_include_directories
- /command/target_link_directories
- /command/target_link_libraries
- /command/target_link_options
- /command/target_precompile_headers
- /command/target_sources
- /command/try_compile
- /command/try_run
-
-.. _`CTest Commands`:
-
-CTest Commands
-==============
-
-These commands are available only in CTest scripts.
-
-.. toctree::
- :maxdepth: 1
-
- /command/ctest_build
- /command/ctest_configure
- /command/ctest_coverage
- /command/ctest_empty_binary_directory
- /command/ctest_memcheck
- /command/ctest_read_custom_files
- /command/ctest_run_script
- /command/ctest_sleep
- /command/ctest_start
- /command/ctest_submit
- /command/ctest_test
- /command/ctest_update
- /command/ctest_upload
-
-Deprecated Commands
-===================
-
-These commands are deprecated and are only made available to maintain
-backward compatibility. The documentation of each command states the
-CMake version in which it was deprecated. Do not use these commands
-in new code.
-
-.. toctree::
- :maxdepth: 1
-
- /command/build_name
- /command/exec_program
- /command/export_library_dependencies
- /command/install_files
- /command/install_programs
- /command/install_targets
- /command/load_command
- /command/make_directory
- /command/output_required_files
- /command/qt_wrap_cpp
- /command/qt_wrap_ui
- /command/remove
- /command/subdir_depends
- /command/subdirs
- /command/use_mangled_mesa
- /command/utility_source
- /command/variable_requires
- /command/write_file
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
deleted file mode 100644
index adfc39e..0000000
--- a/share/cmake-3.17/Help/manual/cmake-env-variables.7.rst
+++ /dev/null
@@ -1,75 +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_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
deleted file mode 100644
index 12eecd9..0000000
--- a/share/cmake-3.17/Help/manual/cmake-file-api.7.rst
+++ /dev/null
@@ -1,1117 +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": {
- "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
deleted file mode 100644
index 691481b..0000000
--- a/share/cmake-3.17/Help/manual/cmake-generator-expressions.7.rst
+++ /dev/null
@@ -1,658 +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)`, 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-modules.7.rst b/share/cmake-3.17/Help/manual/cmake-modules.7.rst
deleted file mode 100644
index be64112..0000000
--- a/share/cmake-3.17/Help/manual/cmake-modules.7.rst
+++ /dev/null
@@ -1,318 +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/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.17/Help/manual/cmake-policies.7.rst b/share/cmake-3.17/Help/manual/cmake-policies.7.rst
deleted file mode 100644
index c256250..0000000
--- a/share/cmake-3.17/Help/manual/cmake-policies.7.rst
+++ /dev/null
@@ -1,282 +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.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
deleted file mode 100644
index 060a072..0000000
--- a/share/cmake-3.17/Help/manual/cmake-properties.7.rst
+++ /dev/null
@@ -1,562 +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_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.17/Help/manual/cmake-variables.7.rst b/share/cmake-3.17/Help/manual/cmake-variables.7.rst
deleted file mode 100644
index fc27739..0000000
--- a/share/cmake-3.17/Help/manual/cmake-variables.7.rst
+++ /dev/null
@@ -1,683 +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.
-
-.. 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
deleted file mode 100644
index 28a081f..0000000
--- a/share/cmake-3.17/Help/manual/cmake.1.rst
+++ /dev/null
@@ -1,781 +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``.
-
- 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.17/Help/manual/ctest.1.rst b/share/cmake-3.17/Help/manual/ctest.1.rst
deleted file mode 100644
index 6503f0e..0000000
--- a/share/cmake-3.17/Help/manual/ctest.1.rst
+++ /dev/null
@@ -1,1579 +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 <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.17/Help/prop_dir/LINK_OPTIONS.rst b/share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst
deleted file mode 100644
index 54ac6dd..0000000
--- a/share/cmake-3.17/Help/prop_dir/LINK_OPTIONS.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-LINK_OPTIONS
-------------
-
-List of options to use for the link step of shared library, module
-and executable targets.
-
-This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
-given so far to the :command:`add_link_options` command.
-
-This property is used to initialize the :prop_tgt:`LINK_OPTIONS` target
-property when a target is created, which is used by the generators to set
-the options for the compiler.
-
-Contents of ``LINK_OPTIONS`` may use "generator expressions" with the
-syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
-for available expressions. See the :manual:`cmake-buildsystem(7)` manual
-for more on defining buildsystem properties.
diff --git a/share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst b/share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst
deleted file mode 100644
index 7e48271..0000000
--- a/share/cmake-3.17/Help/prop_sf/COMPILE_OPTIONS.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-COMPILE_OPTIONS
----------------
-
-List of additional options to pass to the compiler.
-
-This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
-and will be added to the list of compile flags when this
-source file builds. Use :prop_sf:`COMPILE_DEFINITIONS` to pass
-additional preprocessor definitions and :prop_sf:`INCLUDE_DIRECTORIES` to pass
-additional include directories.
-
-Contents of ``COMPILE_OPTIONS`` may use "generator expressions" with the
-syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
-for available expressions. However, :generator:`Xcode`
-does not support per-config per-source settings, so expressions
-that depend on the build configuration are not allowed with that
-generator.
-
-.. note::
-
- This property should be preferred over the :prop_sf:`COMPILE_FLAGS` property.
diff --git a/share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst b/share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst
deleted file mode 100644
index 1cbbf48..0000000
--- a/share/cmake-3.17/Help/prop_sf/Fortran_FORMAT.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Fortran_FORMAT
---------------
-
-Set to ``FIXED`` or ``FREE`` to indicate the Fortran source layout.
-
-This property tells CMake whether a given Fortran source file uses
-fixed-format or free-format. CMake will pass the corresponding format
-flag to the compiler. Consider using the target-wide
-:prop_tgt:`Fortran_FORMAT` property if all source files in a target
-share the same format.
diff --git a/share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst b/share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst
deleted file mode 100644
index e7e880b..0000000
--- a/share/cmake-3.17/Help/prop_sf/OBJECT_OUTPUTS.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-OBJECT_OUTPUTS
---------------
-
-Additional outputs for a :generator:`Ninja` or :ref:`Makefile Generators` rule.
-
-Additional outputs created by compilation of this source file. If any
-of these outputs is missing the object will be recompiled. This is
-supported only on the :generator:`Ninja` and :ref:`Makefile Generators`
-and will be ignored on other generators.
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst b/share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
deleted file mode 100644
index 5f39f30..0000000
--- a/share/cmake-3.17/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-SKIP_PRECOMPILE_HEADERS
------------------------
-
-Is this source file skipped by :prop_tgt:`PRECOMPILE_HEADERS` feature.
-
-This property helps with build problems that one would run into
-when using the :prop_tgt:`PRECOMPILE_HEADERS` feature.
-
-One example would be the usage of Objective-C (*.m) files, and
-Objective-C++ (*.mm) files, which lead to compilation failure
-because they are treated (in case of Ninja / Makefile generator)
-as C, and CXX respectively. The precompile headers are not
-compatible between languages.
diff --git a/share/cmake-3.17/Help/prop_test/DEPENDS.rst b/share/cmake-3.17/Help/prop_test/DEPENDS.rst
deleted file mode 100644
index 89c7553..0000000
--- a/share/cmake-3.17/Help/prop_test/DEPENDS.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-DEPENDS
--------
-
-Specifies that this test should only be run after the specified list of tests.
-
-Set this to a list of tests that must finish before this test is run. The
-results of those tests are not considered, the dependency relationship is
-purely for order of execution (i.e. it is really just a *run after*
-relationship). Consider using test fixtures with setup tests if a dependency
-with successful completion is required (see :prop_test:`FIXTURES_REQUIRED`).
diff --git a/share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst b/share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst
deleted file mode 100644
index fac357c..0000000
--- a/share/cmake-3.17/Help/prop_test/REQUIRED_FILES.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-REQUIRED_FILES
---------------
-
-List of files required to run the test.
-
-If set to a list of files, the test will not be run unless all of the
-files exist.
diff --git a/share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst b/share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst
deleted file mode 100644
index 11b50b9..0000000
--- a/share/cmake-3.17/Help/prop_tgt/CONFIG_POSTFIX.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-<CONFIG>_POSTFIX
-----------------
-
-Postfix to append to the target file name for configuration <CONFIG>.
-
-When building with configuration <CONFIG> the value of this property
-is appended to the target file name built on disk. For non-executable
-targets, this property is initialized by the value of the variable
-CMAKE_<CONFIG>_POSTFIX if it is set when a target is created. This
-property is ignored on the Mac for Frameworks and App Bundles.
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
deleted file mode 100644
index 0782765..0000000
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-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.17/Help/prop_tgt/CUDA_STANDARD.rst b/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD.rst
deleted file mode 100644
index a3a2f56..0000000
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-CUDA_STANDARD
--------------
-
-The CUDA/C++ standard whose features are requested to build this target.
-
-This property specifies the CUDA/C++ standard whose features are requested
-to build this target. For some compilers, this results in adding a
-flag such as ``-std=gnu++11`` to the compile line.
-
-Supported values are ``98``, ``11``, ``14``.
-
-If the value requested does not result in a compile flag being added for
-the compiler in use, a previous standard flag will be added instead. This
-means that using:
-
-.. code-block:: cmake
-
- set_property(TARGET tgt PROPERTY CUDA_STANDARD 11)
-
-with a compiler which does not support ``-std=gnu++11`` or an equivalent
-flag will not result in an error or warning, but will instead add the
-``-std=gnu++98`` flag if supported. This "decay" behavior may be controlled
-with the :prop_tgt:`CUDA_STANDARD_REQUIRED` target property.
-Additionally, the :prop_tgt:`CUDA_EXTENSIONS` target property may be used to
-control whether compiler-specific extensions are enabled on a per-target basis.
-
-See the :manual:`cmake-compile-features(7)` manual for information on
-compile features and a list of supported compilers.
-
-This property is initialized by the value of
-the :variable:`CMAKE_CUDA_STANDARD` variable if it is set when a target
-is created.
diff --git a/share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst b/share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst
deleted file mode 100644
index e7f7904..0000000
--- a/share/cmake-3.17/Help/prop_tgt/C_STANDARD.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-C_STANDARD
-----------
-
-The C standard whose features are requested to build this target.
-
-This property specifies the C standard whose features are requested
-to build this target. For some compilers, this results in adding a
-flag such as ``-std=gnu11`` to the compile line. For compilers that
-have no notion of a standard level, such as Microsoft Visual C++ before
-2015 Update 3, this has no effect.
-
-Supported values are ``90``, ``99`` and ``11``.
-
-If the value requested does not result in a compile flag being added for
-the compiler in use, a previous standard flag will be added instead. This
-means that using:
-
-.. code-block:: cmake
-
- set_property(TARGET tgt PROPERTY C_STANDARD 11)
-
-with a compiler which does not support ``-std=gnu11`` or an equivalent
-flag will not result in an error or warning, but will instead add the
-``-std=gnu99`` or ``-std=gnu90`` flag if supported. This "decay" behavior may
-be controlled with the :prop_tgt:`C_STANDARD_REQUIRED` target property.
-Additionally, the :prop_tgt:`C_EXTENSIONS` target property may be used to
-control whether compiler-specific extensions are enabled on a per-target basis.
-
-See the :manual:`cmake-compile-features(7)` manual for information on
-compile features and a list of supported compilers.
-
-This property is initialized by the value of
-the :variable:`CMAKE_C_STANDARD` variable if it is set when a target
-is created.
diff --git a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst b/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
deleted file mode 100644
index 3aa296d..0000000
--- a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-EXCLUDE_FROM_ALL
-----------------
-
-Set this target property to a true (or false) value to exclude (or include)
-the target from the "all" target of the containing directory and its
-ancestors. If excluded, running e.g. ``make`` in the containing directory
-or its ancestors will not build the target by default.
-
-If this target property is not set then the target will be included in
-the "all" target of the containing directory. Furthermore, it will be
-included in the "all" target of its ancestor directories unless the
-:prop_dir:`EXCLUDE_FROM_ALL` directory property is set.
-
-With ``EXCLUDE_FROM_ALL`` set to false or not set at all, the target
-will be brought up to date as part of doing a ``make install`` or its
-equivalent for the CMake generator being used. If a target has
-``EXCLUDE_FROM_ALL`` set to true, then any attempt to install that
-target has undefined behavior. Note that such a target can still safely
-be listed in an :command:`install(TARGETS)` command as long as the install
-components the target belongs to are not part of the set of components
-that anything tries to install.
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst b/share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst
deleted file mode 100644
index 1feca04..0000000
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_GLOBAL.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-IMPORTED_GLOBAL
----------------
-
-Indication of whether an :ref:`IMPORTED target <Imported Targets>` is
-globally visible.
-
-The boolean value of this property is True for targets created with the
-``IMPORTED`` ``GLOBAL`` options to :command:`add_executable()` or
-:command:`add_library()`. It is always False for targets built within the
-project.
-
-For targets created with the ``IMPORTED`` option to
-:command:`add_executable()` or :command:`add_library()` but without the
-additional option ``GLOBAL`` this is False, too. However, setting this
-property for such a locally ``IMPORTED`` target to True promotes that
-target to global scope. This promotion can only be done in the same
-directory where that ``IMPORTED`` target was created in the first place.
-
-Once an imported target has been made global, it cannot be changed back to
-non-global. Therefore, if a project sets this property, it may only
-provide a value of True. CMake will issue an error if the project tries to
-set the property to a non-True value, even if the value was already False.
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst b/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst
deleted file mode 100644
index 93b4488..0000000
--- a/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-INSTALL_RPATH
--------------
-
-The rpath to use for installed targets.
-
-A semicolon-separated list specifying the rpath to use in installed
-targets (for platforms that support it). This property is initialized
-by the value of the variable :variable:`CMAKE_INSTALL_RPATH` if it is set when
-a target is created.
-
-This property supports
-:manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst b/share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst
deleted file mode 100644
index 2a05ea7..0000000
--- a/share/cmake-3.17/Help/prop_tgt/LINK_OPTIONS.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-LINK_OPTIONS
-------------
-
-List of options to use for the link step of shared library, module
-and executable targets. Targets that are static libraries need to use
-the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property.
-
-
-This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
-specified so far for its target. Use the :command:`target_link_options`
-command to append more options.
-
-This property is initialized by the :prop_dir:`LINK_OPTIONS` directory
-property when a target is created, and is used by the generators to set
-the options for the compiler.
-
-Contents of ``LINK_OPTIONS`` may use "generator expressions" with the
-syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
-for available expressions. See the :manual:`cmake-buildsystem(7)` manual
-for more on defining buildsystem properties.
-
-.. note::
-
- This property must be used in preference to :prop_tgt:`LINK_FLAGS` property.
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
deleted file mode 100644
index f3fedba..0000000
--- a/share/cmake-3.17/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-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
deleted file mode 100644
index 4a1d3f0..0000000
--- a/share/cmake-3.17/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-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.17/Help/prop_tgt/SOVERSION.rst b/share/cmake-3.17/Help/prop_tgt/SOVERSION.rst
deleted file mode 100644
index d6f8a94..0000000
--- a/share/cmake-3.17/Help/prop_tgt/SOVERSION.rst
+++ /dev/null
@@ -1,29 +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 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.17/Help/prop_tgt/UNITY_BUILD.rst b/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst
deleted file mode 100644
index 479802e..0000000
--- a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD.rst
+++ /dev/null
@@ -1,60 +0,0 @@
-UNITY_BUILD
------------
-
-When this property is set to true, the target source files will be combined
-into batches for faster compilation. This is done by creating a (set of)
-unity sources which ``#include`` the original sources, then compiling these
-unity sources instead of the originals. This is known as a *Unity* or *Jumbo*
-build. The :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property controls the upper
-limit on how many sources can be combined per unity source file.
-
-Unity builds are not currently supported for all languages. CMake version
-|release| supports combining ``C`` and ``CXX`` source files. For targets that
-mix source files from more than one language, CMake will separate the languages
-such that each generated unity source file only contains sources for a single
-language.
-
-This property is initialized by the value of the :variable:`CMAKE_UNITY_BUILD`
-variable when a target is created.
-
-.. note::
-
- Projects should not directly set the ``UNITY_BUILD`` property or its
- associated :variable:`CMAKE_UNITY_BUILD` variable to true. Depending
- on the capabilities of the build machine and compiler used, it might or
- might not be appropriate to enable unity builds. Therefore, this feature
- should be under developer control, which would normally be through the
- developer choosing whether or not to set the :variable:`CMAKE_UNITY_BUILD`
- variable on the :manual:`cmake(1)` command line or some other equivalent
- method. However, it IS recommended to set the ``UNITY_BUILD`` target
- property to false if it is known that enabling unity builds for the
- target can lead to problems.
-
-ODR (One definition rule) errors
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When multiple source files are included into one source file, as is done
-for unity builds, it can potentially lead to ODR errors. CMake provides
-a number of measures to help address such problems:
-
-* Any source file that has a non-empty :prop_sf:`COMPILE_OPTIONS`,
- :prop_sf:`COMPILE_DEFINITIONS`, :prop_sf:`COMPILE_FLAGS`, or
- :prop_sf:`INCLUDE_DIRECTORIES` source property will not be combined
- into a unity source.
-
-* Projects can prevent an individual source file from being combined into
- a unity source by setting its :prop_sf:`SKIP_UNITY_BUILD_INCLUSION`
- source property to true. This can be a more effective way to prevent
- problems with specific files than disabling unity builds for an entire
- target.
-
-* The :prop_tgt:`UNITY_BUILD_CODE_BEFORE_INCLUDE` and
- :prop_tgt:`UNITY_BUILD_CODE_AFTER_INCLUDE` target properties can be used
- to inject code into the unity source files before and after every
- ``#include`` statement.
-
-* The order of source files added to the target via commands like
- :command:`add_library`, :command:`add_executable` or
- :command:`target_sources` will be preserved in the generated unity source
- files. This can be used to manually enforce a specific grouping based on
- the :prop_tgt:`UNITY_BUILD_BATCH_SIZE` target property.
diff --git a/share/cmake-3.17/Help/prop_tgt/VERSION.rst b/share/cmake-3.17/Help/prop_tgt/VERSION.rst
deleted file mode 100644
index f592f4a..0000000
--- a/share/cmake-3.17/Help/prop_tgt/VERSION.rst
+++ /dev/null
@@ -1,31 +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 ``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.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst b/share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
deleted file mode 100644
index 0e182cf..0000000
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
+++ /dev/null
@@ -1,40 +0,0 @@
-XCODE_GENERATE_SCHEME
----------------------
-
-If enabled, the :generator:`Xcode` generator will generate schema files. These
-are useful to invoke analyze, archive, build-for-testing and test
-actions from the command line.
-
-This property is initialized by the value of the variable
-:variable:`CMAKE_XCODE_GENERATE_SCHEME` if it is set when a target
-is created.
-
-The following target properties overwrite the default of the
-corresponding settings on the "Diagnostic" tab for each schema file.
-Each of those is initialized by the respective ``CMAKE_`` variable
-at target creation time.
-
-- :prop_tgt:`XCODE_SCHEME_ADDRESS_SANITIZER`
-- :prop_tgt:`XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN`
-- :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_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`
-
-The following target properties will be applied on the
-"Info", "Arguments", and "Options" tab:
-
-- :prop_tgt:`XCODE_SCHEME_ARGUMENTS`
-- :prop_tgt:`XCODE_SCHEME_DEBUG_AS_ROOT`
-- :prop_tgt:`XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING`
-- :prop_tgt:`XCODE_SCHEME_ENVIRONMENT`
-- :prop_tgt:`XCODE_SCHEME_EXECUTABLE`
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
deleted file mode 100644
index 7ffa74b..0000000
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-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.17/Help/release/3.10.rst b/share/cmake-3.17/Help/release/3.10.rst
deleted file mode 100644
index 03eda36..0000000
--- a/share/cmake-3.17/Help/release/3.10.rst
+++ /dev/null
@@ -1,282 +0,0 @@
-CMake 3.10 Release Notes
-************************
-
-.. only:: html
-
- .. contents::
-
-Changes made since CMake 3.9 include the following.
-
-New Features
-============
-
-Platforms
----------
-
-* The `flang`_ Fortran compiler is now supported, with compiler id ``Flang``.
-
-* A new minimal platform file for ``Midipix`` was added.
-
-* Support for the MSVC ARM64 architecture was added.
- Visual Studio 2017 Update 4 and above offer an ARM64 toolchain.
-
-* Support for the IAR ARM Compiler was improved.
-
-.. _`flang`: https://github.com/flang-compiler/flang
-
-Generators
-----------
-
-* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned
- to add compiler launcher tools like ccache along with the compiler for the
- ``CUDA`` language (``C`` and ``CXX`` were supported previously). See the
- :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and
- :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details.
-
-* The :generator:`CodeBlocks` extra generator learned to optionally exclude
- files from outside the project root directory from the generated project.
- See the :variable:`CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES` variable.
-
-Commands
---------
-
-* The :command:`cmake_host_system_information` command learned more keys
- to get information about the processor capabilities and the host OS
- version.
-
-* The :command:`configure_file` command learned to support indented
- ``# cmakedefine`` and ``# cmakedefine01``. Spaces and/or tabs between
- the ``#`` character and the ``cmakedefine``/``cmakedefine01`` words
- are now understood and preserved in the output.
-
-* The :command:`execute_process` command gained a ``RESULTS_VARIABLE``
- option to collect a list of results from all children in a pipeline
- of processes when multiple ``COMMAND`` arguments are given.
-
-* The :command:`include_guard` command was introduced to allow guarding
- CMake scripts from being included more than once. The command supports
- ``DIRECTORY`` and ``GLOBAL`` options to adjust the corresponding include guard
- scope. If no options given, include guard is similar to basic variable-based
- check.
-
-* The :command:`string` command learned a new ``PREPEND`` subcommand.
-
-* The :command:`string(TIMESTAMP)` command now supports ``%A``
- for full weekday name and ``%B`` for full month name.
-
-Variables
----------
-
-* A :variable:`CMAKE_DIRECTORY_LABELS` variable was added to specify
- labels for all tests in a directory.
-
-Properties
-----------
-
-* A :prop_tgt:`<LANG>_CPPCHECK` target property and supporting
- :variable:`CMAKE_<LANG>_CPPCHECK` variable were introduced to tell
- the :ref:`Makefile Generators` and the :generator:`Ninja` generator to
- run ``cppcheck`` with the compiler for ``C`` and ``CXX`` languages.
-
-* A :prop_dir:`LABELS` directory property was added to specify labels
- for all targets and tests in a directory.
-
-* A :prop_dir:`TEST_INCLUDE_FILES` directory property was added to
- list any number of files to be included when running tests with
- :manual:`ctest(1)`. This generalizes the :prop_dir:`TEST_INCLUDE_FILE`
- property.
-
-* The :prop_tgt:`VS_DOTNET_REFERENCEPROP_<refname>_TAG_<tagname>`
- target property was added to support custom XML tags for reference
- assemblies in C# targets.
-
-* Source file properties :prop_sf:`VS_SHADER_OUTPUT_HEADER_FILE` and
- :prop_sf:`VS_SHADER_VARIABLE_NAME` have been added to specify more
- details of ``.hlsl`` sources with :ref:`Visual Studio Generators`.
-
-Modules
--------
-
-* The :module:`FindCurses` module gained a ``CURSES_NEED_WIDE`` option
- to request the wide-character variant.
-
-* The :module:`FindEXPAT` module now provides imported targets.
-
-* The :module:`FindFreetype` module now provides imported targets.
-
-* :module:`FindMPI` gained a number of new features, including:
-
- * Language-specific components have been added to the module.
- * Many more MPI environments are now supported.
- * The environmental support for Fortran has been improved.
- * A user now has fine-grained control over the MPI selection process,
- including passing custom parameters to the MPI compiler.
- * The version of the implemented MPI standard is now being exposed.
- * MPI-2 C++ bindings can now be detected and also suppressed if so desired.
- * The available Fortran bindings are now being detected and verified.
- * Various MPI-3 information can be requested, including the library version
- and Fortran capabilities of the individual bindings.
- * Statically linked MPI implementations are supported.
-
-* A :module:`FindOpenACC` module was added to detect compiler support
- for OpenACC. Currently only supports PGI, GNU and Cray compilers.
-
-* The :module:`FindOpenGL` module gained support for GLVND on Linux.
-
-* The :module:`FindOpenMP` module gained support for
- language-specific components.
-
-* A :module:`FindPatch` module was added to find the ``patch``
- command-line executable.
-
-* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp` command
- gained a ``DESCRIPTORS`` option to generate descriptor files.
-
-* The :module:`GoogleTest` module gained a new command
- :command:`gtest_discover_tests` implementing dynamic (build-time) test
- discovery. Unlike the source parsing approach, dynamic discovery executes
- the test (in 'list available tests' mode) at build time to discover tests.
- This is robust against unusual ways of labeling tests, provides much better
- support for advanced features such as parameterized tests, and does not
- require re-running CMake to discover added or removed tests within a test
- executable. Note that a breaking change was made in CMake 3.10.3 to address
- an ambiguity of the ``TIMEOUT`` keyword (see :ref:`Release Notes 3.10.3`).
-
-* The :module:`InstallRequiredSystemLibraries` module gained support
- for installing Intel compiler runtimes.
-
-Autogen
--------
-
-* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` with a
- multi configuration generator (e.g. :generator:`Xcode`),
- included ``*.moc``, ``moc_*.cpp`` and ``ui_*.h`` files are generated in
- ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>`` instead of
- ``<AUTOGEN_BUILD_DIR>/include``.
-
-* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`,
- source files that are :prop_sf:`GENERATED` will be processed as well.
- They were ignored by :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`
- in earlier releases.
- See policy :policy:`CMP0071`.
-
-* When using :prop_tgt:`AUTOMOC`, CMake searches for the strings ``Q_OBJECT``,
- ``Q_GADGET`` or ``Q_NAMESPACE`` in a source file to determine if it needs
- to be ``moc`` processed. The new :variable:`CMAKE_AUTOMOC_MACRO_NAMES`
- variable and :prop_tgt:`AUTOMOC_MACRO_NAMES` target property may be set
- to register additional strings (macro names) to search for.
-
-* When using :prop_tgt:`AUTOMOC`, the new
- :variable:`CMAKE_AUTOMOC_COMPILER_PREDEFINES` variable and
- :prop_tgt:`AUTOMOC_COMPILER_PREDEFINES` target property specify whether
- to enable or disable the generation of the compiler pre definitions file
- ``moc_predefs.h``.
-
-CTest
------
-
-* A :variable:`CTEST_LABELS_FOR_SUBPROJECTS` CTest module variable and CTest
- script variable were added to specify a list of labels that should be
- treated as subprojects by CDash. To use this value in both the CTest module
- and the ctest command line :ref:`Dashboard Client` mode (e.g. ``ctest -S``)
- set it in the ``CTestConfig.cmake`` config file.
-
-CPack
------
-
-* A :cpack_gen:`CPack FreeBSD Generator` was added for FreeBSD ``pkg(8)``.
-
-* The :cpack_gen:`CPack DEB Generator` was enabled on Windows. While not
- fully featured (due to the lack of external UNIX tools) this will allow
- building basic cross-platform Debian packages.
-
-* The :cpack_gen:`CPack DEB Generator` learned to set package release
- version in ``Version`` info property.
- See the :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable.
-
-* The :cpack_gen:`CPack DEB Generator` learned more strict package
- version checking that complies with Debian rules.
-
-* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
- :command:`cpack_ifw_configure_component_group` commands gained a new
- ``REPLACES`` and ``CHECKABLE`` options.
-
-* The :cpack_gen:`CPack IFW Generator` gained new
- :variable:`CPACK_IFW_PACKAGE_FILE_EXTENSION` variable to customize
- target binary format.
-
-* The :cpack_gen:`CPack IFW Generator` gained new
- :variable:`CPACK_IFW_REPOSITORIES_DIRECTORIES` variable to specify
- additional repositories dirs that will be used to resolve and
- repack dependent components. This feature is only available when
- using QtIFW 3.1 or later.
-
-* The :cpack_gen:`CPack RPM Generator` and :cpack_gen:`CPack DEB Generator`
- learned to set the package epoch version.
- See :variable:`CPACK_RPM_PACKAGE_EPOCH` and
- :variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables.
-
-Other
------
-
-* The :manual:`cmake(1)` ``-E`` mode gained support for ``sha1sum``,
- ``sha224sum``, ``sha256sum``, ``sha384sum``, and ``sha512sum``.
-
-* The graphviz output now distinguishes among the different dependency types
- ``PUBLIC``, ``PRIVATE`` and ``INTERFACE`` and represents them in the output
- graph as solid, dashed and dotted edges.
-
-Deprecated and Removed Features
-===============================
-
-* Support for building CMake itself with C++98 compilers was dropped.
- CMake is now implemented using C++11.
-
-* Support for building CMake on HP-UX has been dropped pending better
- support for C++11 and a port of libuv. See `CMake Issue 17137`_.
- Use CMake 3.9 or lower instead for HP-UX support.
-
-.. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/issues/17137
-
-Other Changes
-=============
-
-* On FreeBSD the C++ compiler named ``c++`` is now the preferred default.
-
-* The :command:`file(GENERATE)` command now interprets relative paths
- given to its ``OUTPUT`` and ``INPUT`` arguments with respect to the
- caller's current binary and source directories, respectively.
- See policy :policy:`CMP0070`.
-
-* The :command:`get_filename_component` ``PROGRAM`` mode semantics
- have been revised to not tolerate unquoted spaces in the path
- to the program while also accepting arguments. While technically
- incompatible with the old behavior, it is expected that behavior
- under typical use cases with properly-quoted command-lines has
- not changed.
-
-Updates
-=======
-
-Changes made since CMake 3.10.0 include the following.
-
-3.10.1
-------
-
-* The :manual:`cmake-server(7)` ``codemodel`` response ``crossReferences``
- field added by 3.10.0 has been dropped due to excessive memory usage.
- Another approach will be needed to provide backtrace information.
-
-.. _`Release Notes 3.10.3`:
-
-3.10.3
-------
-
-* CMake 3.10.1 added a ``TIMEOUT`` option to :command:`gtest_discover_tests`
- from the :module:`GoogleTest` module. That keyword clashed with the
- ``TIMEOUT`` test property, which is one of the common properties that
- would be set with the command's ``PROPERTIES`` keyword, usually leading
- to legal but unintended behavior. The keyword was changed to
- ``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this problem. The
- ambiguous behavior of the :command:`gtest_discover_tests` command's
- ``TIMEOUT`` keyword in 3.10.1 and 3.10.2 has not been preserved.
diff --git a/share/cmake-3.17/Help/release/3.15.rst b/share/cmake-3.17/Help/release/3.15.rst
deleted file mode 100644
index 957e6e9..0000000
--- a/share/cmake-3.17/Help/release/3.15.rst
+++ /dev/null
@@ -1,387 +0,0 @@
-CMake 3.15 Release Notes
-************************
-
-.. only:: html
-
- .. contents::
-
-Changes made since CMake 3.14 include the following.
-
-New Features
-============
-
-Generators
-----------
-
-* The :generator:`Xcode` generator now supports per-target schemes.
- See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable and
- :prop_tgt:`XCODE_GENERATE_SCHEME` target property.
-
-* The :generator:`Green Hills MULTI` generator has been updated:
-
- * It now supports the :command:`add_custom_command` and
- :command:`add_custom_target` commands.
-
- * It is now available on Linux.
-
-Languages
----------
-
-* Preliminary support for the ``Swift`` language was added to the
- :generator:`Ninja` generator:
-
- * Use the :envvar:`SWIFTC` environment variable to specify a compiler.
-
- * The :prop_tgt:`Swift_DEPENDENCIES_FILE` target property and
- :prop_sf:`Swift_DEPENDENCIES_FILE` source file property were added
- to customize dependency files.
-
- * The :prop_tgt:`Swift_MODULE_NAME` target property was added to
- customize the Swift module name.
-
- * The :prop_sf:`Swift_DIAGNOSTICS_FILE` source property was added to
- indicate where to write the serialised Swift diagnostics.
-
- The Swift support is experimental, not considered stable, and may change
- in future releases of CMake.
-
-Compilers
----------
-
-* The ``Clang`` compiler variant on Windows that targets the MSVC ABI
- but has a GNU-like command line is now supported.
-
-* Support for the Clang-based ARM compiler was added with compiler id
- ``ARMClang``.
-
-* Support was added for the IAR compiler architectures Renesas RX,
- RL78, RH850 and Texas Instruments MSP430.
-
-* Support was added for the IAR compilers built for Linux (IAR BuildLx).
-
-Command-Line
-------------
-
-* The :envvar:`CMAKE_GENERATOR` environment variable was added
- to specify a default generator to use when :manual:`cmake(1)` is
- run without a ``-G`` option. Additionally, environment variables
- :envvar:`CMAKE_GENERATOR_PLATFORM`, :envvar:`CMAKE_GENERATOR_TOOLSET`,
- and :envvar:`CMAKE_GENERATOR_INSTANCE` were created to configure
- the generator.
-
-* The :manual:`cmake(1)` ``--build`` tool ``--target`` parameter gained support
- for multiple targets, e.g. ``cmake --build . --target Library1 Library2``.
- It now also has a short form ``-t`` alias, e.g.
- ``cmake --build . -t Library1 Library2``.
-
-* The :manual:`cmake(1)` command gained a new ``--install`` option.
- This may be used after building a project to run installation without
- using the generated build system or the native build tool.
-
-* The :manual:`cmake(1)` command learned a new CLI option ``--loglevel``.
-
-* The :manual:`cmake(1)` ``-E remove_directory`` command-line tool learned
- to support removing multiple directories.
-
-* The :manual:`cmake(1)` ``-E tar`` tool has been improved:
-
- * It now continues adding files to an archive even if some of the files
- are not readable. This behavior is more consistent with the
- classic ``tar`` tool.
-
- * It now parses all flags, and if an invalid flag was provided, a
- warning is issued.
-
- * It now displays an error if no action flag was specified, along with a
- list of possible actions: ``t`` (list), ``c`` (create) or ``x`` (extract).
-
- * It now supports extracting (``-x``) or listing (``-t``) only specific
- files or directories.
-
- * It now supports Zstandard compression with a ``--zstd`` option.
- Zstandard was designed to give a compression ratio comparable to that
- of the DEFLATE (zip) algorithm, but faster, especially for decompression.
-
-Commands
---------
-
-* The :command:`add_custom_command` and :command:`add_custom_target` commands
- gained a new ``JOB_POOL`` option that works with the :generator:`Ninja`
- generator to set the pool variable on the build statement.
-
-* The :command:`add_library` command ``ALIAS`` option learned to support
- import libraries of the ``UNKNOWN`` type.
-
-* The :command:`cmake_parse_arguments` command gained an additional
- ``<prefix>_KEYWORDS_MISSING_VALUES`` output variable to report
- keyword arguments that were given by the caller with no values.
-
-* The :command:`execute_process` command gained a ``COMMAND_ECHO`` option
- and supporting :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable
- to enable echoing of the command-line string before execution.
-
-* The :command:`file(INSTALL)` command learned a new argument,
- ``FOLLOW_SYMLINK_CHAIN``, which can be used to recursively resolve and
- install symlinks.
-
-* :command:`list` learned new sub-commands:
- ``PREPEND``, ``POP_FRONT`` and ``POP_BACK``.
-
-* The :command:`message` command learned new types:
- ``NOTICE``, ``VERBOSE``, ``DEBUG`` and ``TRACE``.
-
-* The :command:`string` learned a new sub-command ``REPEAT``.
-
-Variables
----------
-
-* The :variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable and corresponding
- :prop_tgt:`CROSSCOMPILING_EMULATOR` target property learned to support
- arguments to the emulator.
-
-* The :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` variable was added to tell
- :command:`find_package` calls to look for a package configuration
- file first even if a find module is available.
-
-* The :variable:`CMAKE_FRAMEWORK` variable was added to initialize the
- :prop_tgt:`FRAMEWORK` property on all targets.
-
-* The :variable:`CMAKE_VS_JUST_MY_CODE_DEBUGGING` variable and
- :prop_tgt:`VS_JUST_MY_CODE_DEBUGGING` target property were added to
- enable the Just My Code feature of the Visual Studio Debugger when
- compiling with MSVC cl 19.05 and higher.
-
-* The :variable:`CMAKE_MSVC_RUNTIME_LIBRARY` variable and
- :prop_tgt:`MSVC_RUNTIME_LIBRARY` target property were introduced to
- select the runtime library used by compilers targeting the MSVC ABI.
- See policy :policy:`CMP0091`.
-
-* The :variable:`CMAKE_PROJECT_INCLUDE` and
- :variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variables were added to allow
- injection of custom code at the sites of :command:`project` calls
- without knowing the project name a priori.
-
-Properties
-----------
-
-* The :prop_tgt:`ADDITIONAL_CLEAN_FILES` target property and
- :prop_dir:`ADDITIONAL_CLEAN_FILES` directory property were added.
- They allow to register additional files that should be removed during
- the clean stage.
-
-* The :prop_tgt:`PUBLIC_HEADER` and :prop_tgt:`PRIVATE_HEADER` properties
- may now be set on :ref:`Interface Libraries`. The headers specified by those
- properties can be installed using the :command:`install(TARGETS)` command by
- passing the ``PUBLIC_HEADER`` and ``PRIVATE_HEADER`` arguments respectively.
-
-* The :prop_tgt:`VS_PACKAGE_REFERENCES` target property was added to
- tell :ref:`Visual Studio Generators` to add references to ``nuget``
- packages.
-
-* The :prop_tgt:`VS_PROJECT_IMPORT` target property was added to allow
- managed Visual Studio project files to import external ``.props`` files.
-
-* The :prop_tgt:`VS_NO_SOLUTION_DEPLOY` target property was added to
- tell :ref:`Visual Studio Generators` whether to deploy an artifact
- to the WinCE or Windows Phone target device.
-
-Modules
--------
-
-* The :module:`FindBoost` module was reworked to expose a more consistent
- user experience between its "Config" and "Module" modes and with other
- find modules in general.
-
- * A new imported target ``Boost::headers`` is now defined (same
- as ``Boost::boost``).
-
- * New output variables ``Boost_VERSION_MACRO``,
- ``Boost_VERSION_MAJOR``, ``Boost_VERSION_MINOR``,
- ``Boost_VERSION_PATCH``, and ``Boost_VERSION_COUNT``
- were added.
-
- * The ``QUIET`` argument passed to :command:`find_package` is no
- longer ignored in config mode. Note that the CMake package shipped with
- Boost ``1.70.0`` ignores the ``QUIET`` argument passed to
- :command:`find_package`. This is fixed in the next Boost release.
-
- * The input switch ``Boost_DETAILED_FAILURE_MSG`` was removed.
-
- * ``Boost_VERSION`` now reports the version in ``x.y.z``
- format in module mode. See policy :policy:`CMP0093`.
-
-* The :module:`FindCups` module now provides imported targets.
-
-* The :module:`FindEnvModules` module was added to use Lua- and TCL-based
- environment modules in :ref:`CTest Scripts <CTest Script>`.
-
-* The :module:`FindGLEW` module now provides an interface more consistent
- with what upstream GLEW provides in its own CMake package files.
-
-* The :module:`FindPkgConfig` now populates :prop_tgt:`INTERFACE_LINK_OPTIONS`
- property of imported targets with other (non-library) linker flags.
-
-* The :module:`FindPostgreSQL` module learned to find debug and release
- variants separately.
-
-* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
- gained additional lookup strategies and controls, and a new default.
- See policy :policy:`CMP0094`.
-
-* Modules :module:`FindPython`, :module:`FindPython2` and :module:`FindPython3`
- gain a new target (respectively ``Python::Module``, ``Python2::Module``
- and ``Python3::Module``) which can be used to develop Python modules.
-
-* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
- gain capability to control how virtual environments are handled.
-
-* The :module:`UseSWIG` module learned to manage alternate library names
- by passing ``-interface <library_name>`` for ``python`` language or
- ``-dllimport <library_name>`` for ``CSharp`` language to the ``SWIG``
- compiler.
-
-Generator Expressions
----------------------
-
-* The :manual:`generator expressions <cmake-generator-expressions(7)>`
- ``C_COMPILER_ID``, ``CXX_COMPILER_ID``, ``CUDA_COMPILER_ID``,
- ``Fortran_COMPILER_ID``, ``COMPILE_LANGUAGE``, ``COMPILE_LANG_AND_ID``, and
- ``PLATFORM_ID`` learned to support matching one value from a comma-separated
- list.
-
-* The ``$<CUDA_COMPILER_ID:...>`` and ``$<CUDA_COMPILER_VERSION:...>``
- :manual:`generator expressions <cmake-generator-expressions(7)>` were added.
-
-* The ``$<COMPILE_LANG_AND_ID:...>`` generator expression was introduced to
- allow specification of compile options for target files based on the
- :variable:`CMAKE_<LANG>_COMPILER_ID` and :prop_sf:`LANGUAGE` of
- each source file.
-
-* A ``$<FILTER:list,INCLUDE|EXCLUDE,regex>``
- :manual:`generator expression <cmake-generator-expressions(7)>`
- has been added.
-
-* A ``$<REMOVE_DUPLICATES:list>``
- :manual:`generator expression <cmake-generator-expressions(7)>`
- has been added.
-
-* The ``$<SHELL_PATH:...>`` :manual:`generator expression
- <cmake-generator-expressions(7)>` gained support for a list of paths.
-
-* New ``$<TARGET_FILE*>`` :manual:`generator expressions
- <cmake-generator-expressions(7)>` were added to retrieve the prefix, base
- name, and suffix of the file names of various artifacts:
-
- * ``$<TARGET_FILE_PREFIX:...>``
- * ``$<TARGET_FILE_BASE_NAME:...>``
- * ``$<TARGET_FILE_SUFFIX:...>``
- * ``$<TARGET_LINKER_FILE_PREFIX:...>``
- * ``$<TARGET_LINKER_FILE_BASE_NAME:...>``
- * ``$<TARGET_LINKER_FILE_SUFFIX:...>``
- * ``$<TARGET_PDB_FILE_BASE_NAME:...>``
-
-* The ``$<TARGET_OBJECTS:...>`` :manual:`generator expression
- <cmake-generator-expressions(7)>` is now supported on ``SHARED``,
- ``STATIC``, ``MODULE`` libraries and executables.
-
-CTest
------
-
-* The :command:`ctest_submit` command learned a new option: ``BUILD_ID``.
- This can be used to store the ID assigned to this build by CDash to a
- variable.
-
-* The :command:`ctest_update` command learned to honor a new variable:
- :variable:`CTEST_UPDATE_VERSION_OVERRIDE`. This can be used to specify
- the current version of your source tree rather than using the update
- command to discover the current version that is checked out.
-
-CPack
------
-
-* The :cpack_gen:`CPack IFW Generator` gained a new
- :variable:`CPACK_IFW_PACKAGE_STYLE_SHEET` variable to customize the
- installer stylesheet.
-
-Deprecated and Removed Features
-===============================
-
-* The :manual:`cmake-server(7)` mode has been deprecated and will be
- removed from a future version of CMake. Please port clients to use
- the :manual:`cmake-file-api(7)` instead.
-
-* The :prop_dir:`ADDITIONAL_MAKE_CLEAN_FILES` directory property is now
- deprecated. Use the :prop_dir:`ADDITIONAL_CLEAN_FILES` directory property
- instead.
-
-* The variable :variable:`CMAKE_AUTOMOC_RELAXED_MODE` is considered
- deprecated. Support still exists but will be removed in future versions.
-
-* The :command:`export(PACKAGE)` command now does nothing unless
- enabled via :variable:`CMAKE_EXPORT_PACKAGE_REGISTRY`.
- See policy :policy:`CMP0090`.
-
-* The :generator:`Xcode` generator now requires at least Xcode 5.
-
-* An explicit deprecation diagnostic was added for policy ``CMP0066``
- (``CMP0065`` 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.
-
-Other Changes
-=============
-
-* CMake learned how to compile C++14 with the IBM AIX XL compiler
- and the SunPro compiler and to compile C++20 with the AppleClang compiler.
-
-* With MSVC-like compilers the value of :variable:`CMAKE_<LANG>_FLAGS`
- no longer contains warning flags like ``/W3`` by default.
- See policy :policy:`CMP0092`.
-
-* IBM Clang-based XL compilers that define ``__ibmxl__`` now use the
- compiler id ``XLClang`` instead of ``XL``. See policy :policy:`CMP0089`.
-
-* The :command:`file(REMOVE)` and :command:`file(REMOVE_RECURSE)` commands
- were changed to ignore empty arguments with a warning instead of treating
- them as a relative path and removing the contents of the current directory.
-
-Updates
-=======
-
-Changes made since CMake 3.15.0 include the following.
-
-3.15.1
-------
-
-* In CMake 3.15.0 support for the GNU-like ``Clang`` compiler targeting the
- MSVC ABI implemented :variable:`CMAKE_CXX_STANDARD` values 98 and 11 using
- the corresponding ``-std=`` flags. However, these modes do not work with
- the MSVC standard library. Therefore CMake 3.15.1 passes C++14 standard
- flags even for C++98 and C++11. This is consistent with MSVC itself which
- always runs in a mode aware of C++14.
-
-* Preliminary Swift support added in 3.15.0 has been updated.
-
-3.15.2
-------
-
-* In CMake 3.15.0 and 3.15.1 the :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG`
- variable caused the :command:`find_package` command to fail on a missing
- package even without the ``REQUIRED`` option. This has been fixed.
-
-3.15.3
-------
-
-* ``CrayPrgEnv`` compiler wrapper support has been updated for the 19.06
- release of the Cray Programming Environment for which the default linking
- mode on XC Cray systems is now dynamic instead of static.
-
-3.15.4
-------
-
-* In CMake 3.15.0 through 3.15.3, the :prop_dir:`EXCLUDE_FROM_ALL`
- directory property was regressed from pre-3.14 behavior and caused
- targets within the directory to be excluded even from its own "all".
- This has been fixed.
- The bug also existed in 3.14.0 through 3.14.6 and is fixed in 3.14.7.
diff --git a/share/cmake-3.17/Help/release/3.16.rst b/share/cmake-3.17/Help/release/3.16.rst
deleted file mode 100644
index e2d6788..0000000
--- a/share/cmake-3.17/Help/release/3.16.rst
+++ /dev/null
@@ -1,305 +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.
-
-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
deleted file mode 100644
index c2cfdf0..0000000
--- a/share/cmake-3.17/Help/release/3.17.rst
+++ /dev/null
@@ -1,321 +0,0 @@
-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.17/Help/release/index.rst b/share/cmake-3.17/Help/release/index.rst
deleted file mode 100644
index 5d1f8a2..0000000
--- a/share/cmake-3.17/Help/release/index.rst
+++ /dev/null
@@ -1,33 +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.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.17/Help/variable/CMAKE_CROSS_CONFIGS.rst b/share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst
deleted file mode 100644
index c850af2..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CROSS_CONFIGS.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-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_CUDA_RUNTIME_LIBRARY.rst b/share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
deleted file mode 100644
index ea1c1b8..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-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.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst b/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst
deleted file mode 100644
index aa2936c..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-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
deleted file mode 100644
index 0119381..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-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
deleted file mode 100644
index d2c846a..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-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
deleted file mode 100644
index 5a7cd13..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-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.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst b/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
deleted file mode 100644
index 62ee0d2..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-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
deleted file mode 100644
index 86d8a5a..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-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.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst b/share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
deleted file mode 100644
index 33ffdd6..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-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.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
deleted file mode 100644
index a99c108..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
+++ /dev/null
@@ -1,13 +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 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.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst b/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
deleted file mode 100644
index a88d122..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-CMAKE_<LANG>_FLAGS_INIT
------------------------
-
-Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS` cache entry
-the first time a build tree is configured for language ``<LANG>``.
-This variable is meant to be set by a :variable:`toolchain file
-<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
-the value based on the environment and target platform.
-
-See also the configuration-specific
-:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>_INIT` variable.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst b/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
deleted file mode 100644
index 87a9d06..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-CMAKE_SYSTEM_PREFIX_PATH
-------------------------
-
-:ref:`Semicolon-separated list <CMake Language Lists>` of directories specifying installation
-*prefixes* to be searched by the :command:`find_package`,
-:command:`find_program`, :command:`find_library`, :command:`find_file`, and
-:command:`find_path` commands. Each command will add appropriate
-subdirectories (like ``bin``, ``lib``, or ``include``) as specified in its own
-documentation.
-
-By default this contains the standard directories for the current system, the
-:variable:`CMAKE_INSTALL_PREFIX`, and the :variable:`CMAKE_STAGING_PREFIX`.
-The installation and staging prefixes may be excluded by setting
-the :variable:`CMAKE_FIND_NO_INSTALL_PREFIX` variable.
-
-``CMAKE_SYSTEM_PREFIX_PATH`` is *not* intended to be modified by the project;
-use :variable:`CMAKE_PREFIX_PATH` for this.
-
-See also :variable:`CMAKE_SYSTEM_INCLUDE_PATH`,
-:variable:`CMAKE_SYSTEM_LIBRARY_PATH`, :variable:`CMAKE_SYSTEM_PROGRAM_PATH`,
-and :variable:`CMAKE_SYSTEM_IGNORE_PATH`.
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
deleted file mode 100644
index cc690f7..0000000
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-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.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst b/share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst
deleted file mode 100644
index bc80276..0000000
--- a/share/cmake-3.17/Help/variable/CTEST_NIGHTLY_START_TIME.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-CTEST_NIGHTLY_START_TIME
-------------------------
-
-Specify the CTest ``NightlyStartTime`` setting
-in a :manual:`ctest(1)` dashboard client script.
diff --git a/share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst b/share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst
deleted file mode 100644
index 27f2838..0000000
--- a/share/cmake-3.17/Help/variable/PROJECT_SOURCE_DIR.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-PROJECT_SOURCE_DIR
-------------------
-
-Top level source directory for the current project.
-
-This is the source directory of the most recent :command:`project` command.
diff --git a/share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in
deleted file mode 100644
index b8e09fe..0000000
--- a/share/cmake-3.17/Modules/CMakeASMCompiler.cmake.in
+++ /dev/null
@@ -1,18 +0,0 @@
-set(CMAKE_ASM@ASM_DIALECT@_COMPILER "@_CMAKE_ASM_COMPILER@")
-set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ARG1 "@_CMAKE_ASM_COMPILER_ARG1@")
-set(CMAKE_AR "@CMAKE_AR@")
-set(CMAKE_ASM@ASM_DIALECT@_COMPILER_AR "@_CMAKE_ASM_COMPILER_AR@")
-set(CMAKE_RANLIB "@CMAKE_RANLIB@")
-set(CMAKE_ASM@ASM_DIALECT@_COMPILER_RANLIB "@_CMAKE_ASM_COMPILER_RANLIB@")
-set(CMAKE_LINKER "@CMAKE_LINKER@")
-set(CMAKE_MT "@CMAKE_MT@")
-set(CMAKE_ASM@ASM_DIALECT@_COMPILER_LOADED 1)
-set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ID "@_CMAKE_ASM_COMPILER_ID@")
-set(CMAKE_ASM@ASM_DIALECT@_COMPILER_VERSION "@_CMAKE_ASM_COMPILER_VERSION@")
-set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ENV_VAR "@_CMAKE_ASM_COMPILER_ENV_VAR@")
-@_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID@
-
-set(CMAKE_ASM@ASM_DIALECT@_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
-set(CMAKE_ASM@ASM_DIALECT@_LINKER_PREFERENCE 0)
-
-@CMAKE_ASM_COMPILER_CUSTOM_CODE@
diff --git a/share/cmake-3.17/Modules/CMakeASMInformation.cmake b/share/cmake-3.17/Modules/CMakeASMInformation.cmake
deleted file mode 100644
index 6b73730..0000000
--- a/share/cmake-3.17/Modules/CMakeASMInformation.cmake
+++ /dev/null
@@ -1,110 +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_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .o)
-else()
- set(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .obj)
-endif()
-
-set(CMAKE_INCLUDE_FLAG_ASM${ASM_DIALECT} "-I") # -I
-set(CMAKE_BASE_NAME)
-get_filename_component(CMAKE_BASE_NAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME_WE)
-
-if("${CMAKE_BASE_NAME}" STREQUAL "as")
- set(CMAKE_BASE_NAME gas)
-endif()
-
-# Load compiler-specific information.
-set(_INCLUDED_FILE "")
-if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
- include(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-endif()
-if(NOT _INCLUDED_FILE)
- if("ASM${ASM_DIALECT}" STREQUAL "ASM")
- message(STATUS "Warning: Did not find file Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}")
- endif()
- include(Platform/${CMAKE_BASE_NAME} OPTIONAL)
-endif()
-
-if(CMAKE_SYSTEM_PROCESSOR)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
- if(NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
- endif()
-endif()
-
-include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
-if(NOT _INCLUDED_FILE)
- include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
-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_ASM)
- # Save the full path of the file so try_compile can use it.
- include(${CMAKE_USER_MAKE_RULES_OVERRIDE_ASM} RESULT_VARIABLE _override)
- set(CMAKE_USER_MAKE_RULES_OVERRIDE_ASM "${_override}")
-endif()
-
-# Set default assembler file extensions:
-if(NOT CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS)
- set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS s;S;asm)
-endif()
-
-
-# Support for CMAKE_ASM${ASM_DIALECT}_FLAGS_INIT and friends:
-set(CMAKE_ASM${ASM_DIALECT}_FLAGS_INIT "$ENV{ASM${ASM_DIALECT}FLAGS} ${CMAKE_ASM${ASM_DIALECT}_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_ASM${ASM_DIALECT}_FLAGS "Flags used by the ASM${ASM_DIALECT} compiler")
-
-if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
-endif()
-
-if(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY)
- set(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY
- "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
- "<CMAKE_RANLIB> <TARGET> ")
-endif()
-
-if(NOT CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE)
- set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE
- "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG)
- set(CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_ASM${ASM_DIALECT}_FLAG})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG_SEP)
- set(CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_ASM${ASM_DIALECT}_FLAG_SEP})
-endif()
-
-if(NOT CMAKE_EXECUTABLE_RPATH_LINK_ASM${ASM_DIALECT}_FLAG)
- set(CMAKE_EXECUTABLE_RPATH_LINK_ASM${ASM_DIALECT}_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_ASM${ASM_DIALECT}_FLAG})
-endif()
-
-# to be done
-if(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY)
- set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY)
-endif()
-
-if(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE)
- set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE)
-endif()
-
-
-set(CMAKE_ASM${ASM_DIALECT}_INFOMATION_LOADED 1)
-
diff --git a/share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake b/share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake
deleted file mode 100644
index 9f7e934..0000000
--- a/share/cmake-3.17/Modules/CMakeASM_MASMInformation.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# support for the MS assembler, masm and masm64
-
-set(ASM_DIALECT "_MASM")
-
-set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm)
-
-set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> /c /Fo <OBJECT> <SOURCE>")
-
-# The ASM_MASM compiler id for this compiler is "MSVC", so fill out the runtime library table.
-set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded "")
-set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL "")
-set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug "")
-set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL "")
-
-include(CMakeASMInformation)
-set(ASM_DIALECT)
diff --git a/share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake b/share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake
deleted file mode 100644
index cb793e7..0000000
--- a/share/cmake-3.17/Modules/CMakeASM_NASMInformation.cmake
+++ /dev/null
@@ -1,38 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# support for the nasm assembler
-
-set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS nasm asm)
-
-if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
- if(WIN32)
- if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
- set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
- else()
- set(CMAKE_ASM_NASM_OBJECT_FORMAT win32)
- endif()
- elseif(APPLE)
- if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
- set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
- else()
- set(CMAKE_ASM_NASM_OBJECT_FORMAT macho)
- endif()
- else()
- if(CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
- set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
- else()
- set(CMAKE_ASM_NASM_OBJECT_FORMAT elf)
- endif()
- endif()
-endif()
-
-if(NOT CMAKE_ASM_NASM_COMPILE_OBJECT)
- set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <INCLUDES> <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>")
-endif()
-
-# Load the generic ASMInformation file:
-set(ASM_DIALECT "_NASM")
-include(CMakeASMInformation)
-set(ASM_DIALECT)
diff --git a/share/cmake-3.17/Modules/CMakeCCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeCCompiler.cmake.in
deleted file mode 100644
index 9b8d423..0000000
--- a/share/cmake-3.17/Modules/CMakeCCompiler.cmake.in
+++ /dev/null
@@ -1,76 +0,0 @@
-set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@")
-set(CMAKE_C_COMPILER_ARG1 "@CMAKE_C_COMPILER_ARG1@")
-set(CMAKE_C_COMPILER_ID "@CMAKE_C_COMPILER_ID@")
-set(CMAKE_C_COMPILER_VERSION "@CMAKE_C_COMPILER_VERSION@")
-set(CMAKE_C_COMPILER_VERSION_INTERNAL "@CMAKE_C_COMPILER_VERSION_INTERNAL@")
-set(CMAKE_C_COMPILER_WRAPPER "@CMAKE_C_COMPILER_WRAPPER@")
-set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "@CMAKE_C_STANDARD_COMPUTED_DEFAULT@")
-set(CMAKE_C_COMPILE_FEATURES "@CMAKE_C_COMPILE_FEATURES@")
-set(CMAKE_C90_COMPILE_FEATURES "@CMAKE_C90_COMPILE_FEATURES@")
-set(CMAKE_C99_COMPILE_FEATURES "@CMAKE_C99_COMPILE_FEATURES@")
-set(CMAKE_C11_COMPILE_FEATURES "@CMAKE_C11_COMPILE_FEATURES@")
-
-set(CMAKE_C_PLATFORM_ID "@CMAKE_C_PLATFORM_ID@")
-set(CMAKE_C_SIMULATE_ID "@CMAKE_C_SIMULATE_ID@")
-set(CMAKE_C_COMPILER_FRONTEND_VARIANT "@CMAKE_C_COMPILER_FRONTEND_VARIANT@")
-set(CMAKE_C_SIMULATE_VERSION "@CMAKE_C_SIMULATE_VERSION@")
-@_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID@
-@SET_MSVC_C_ARCHITECTURE_ID@
-@SET_CMAKE_XCODE_ARCHS@
-set(CMAKE_AR "@CMAKE_AR@")
-set(CMAKE_C_COMPILER_AR "@CMAKE_C_COMPILER_AR@")
-set(CMAKE_RANLIB "@CMAKE_RANLIB@")
-set(CMAKE_C_COMPILER_RANLIB "@CMAKE_C_COMPILER_RANLIB@")
-set(CMAKE_LINKER "@CMAKE_LINKER@")
-set(CMAKE_MT "@CMAKE_MT@")
-set(CMAKE_COMPILER_IS_GNUCC @CMAKE_COMPILER_IS_GNUCC@)
-set(CMAKE_C_COMPILER_LOADED 1)
-set(CMAKE_C_COMPILER_WORKS @CMAKE_C_COMPILER_WORKS@)
-set(CMAKE_C_ABI_COMPILED @CMAKE_C_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_C_COMPILER_ENV_VAR "CC")
-
-if(CMAKE_COMPILER_IS_MINGW)
- set(MINGW 1)
-endif()
-set(CMAKE_C_COMPILER_ID_RUN 1)
-set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
-set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
-set(CMAKE_C_LINKER_PREFERENCE 10)
-
-# Save compiler ABI information.
-set(CMAKE_C_SIZEOF_DATA_PTR "@CMAKE_C_SIZEOF_DATA_PTR@")
-set(CMAKE_C_COMPILER_ABI "@CMAKE_C_COMPILER_ABI@")
-set(CMAKE_C_LIBRARY_ARCHITECTURE "@CMAKE_C_LIBRARY_ARCHITECTURE@")
-
-if(CMAKE_C_SIZEOF_DATA_PTR)
- set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_C_COMPILER_ABI)
- set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
-endif()
-
-if(CMAKE_C_LIBRARY_ARCHITECTURE)
- set(CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_C_LIBRARY_ARCHITECTURE@")
-endif()
-
-set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "@CMAKE_C_CL_SHOWINCLUDES_PREFIX@")
-if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
- set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
-endif()
-
-@CMAKE_C_COMPILER_CUSTOM_CODE@
-@CMAKE_C_SYSROOT_FLAG_CODE@
-@CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG_CODE@
-
-set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES@")
-set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "@CMAKE_C_IMPLICIT_LINK_LIBRARIES@")
-set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "@CMAKE_C_IMPLICIT_LINK_DIRECTORIES@")
-set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
diff --git a/share/cmake-3.17/Modules/CMakeCInformation.cmake b/share/cmake-3.17/Modules/CMakeCInformation.cmake
deleted file mode 100644
index 1e08bb7..0000000
--- a/share/cmake-3.17/Modules/CMakeCInformation.cmake
+++ /dev/null
@@ -1,195 +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()
-
-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.17/Modules/CMakeCUDACompiler.cmake.in b/share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in
deleted file mode 100644
index 4a615a3..0000000
--- a/share/cmake-3.17/Modules/CMakeCUDACompiler.cmake.in
+++ /dev/null
@@ -1,57 +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_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.17/Modules/CMakeCUDAInformation.cmake b/share/cmake-3.17/Modules/CMakeCUDAInformation.cmake
deleted file mode 100644
index 974f5fa..0000000
--- a/share/cmake-3.17/Modules/CMakeCUDAInformation.cmake
+++ /dev/null
@@ -1,205 +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()
-
-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.17/Modules/CMakeCXXCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in
deleted file mode 100644
index efb8abf..0000000
--- a/share/cmake-3.17/Modules/CMakeCXXCompiler.cmake.in
+++ /dev/null
@@ -1,88 +0,0 @@
-set(CMAKE_CXX_COMPILER "@CMAKE_CXX_COMPILER@")
-set(CMAKE_CXX_COMPILER_ARG1 "@CMAKE_CXX_COMPILER_ARG1@")
-set(CMAKE_CXX_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@")
-set(CMAKE_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@")
-set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "@CMAKE_CXX_COMPILER_VERSION_INTERNAL@")
-set(CMAKE_CXX_COMPILER_WRAPPER "@CMAKE_CXX_COMPILER_WRAPPER@")
-set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "@CMAKE_CXX_STANDARD_COMPUTED_DEFAULT@")
-set(CMAKE_CXX_COMPILE_FEATURES "@CMAKE_CXX_COMPILE_FEATURES@")
-set(CMAKE_CXX98_COMPILE_FEATURES "@CMAKE_CXX98_COMPILE_FEATURES@")
-set(CMAKE_CXX11_COMPILE_FEATURES "@CMAKE_CXX11_COMPILE_FEATURES@")
-set(CMAKE_CXX14_COMPILE_FEATURES "@CMAKE_CXX14_COMPILE_FEATURES@")
-set(CMAKE_CXX17_COMPILE_FEATURES "@CMAKE_CXX17_COMPILE_FEATURES@")
-set(CMAKE_CXX20_COMPILE_FEATURES "@CMAKE_CXX20_COMPILE_FEATURES@")
-
-set(CMAKE_CXX_PLATFORM_ID "@CMAKE_CXX_PLATFORM_ID@")
-set(CMAKE_CXX_SIMULATE_ID "@CMAKE_CXX_SIMULATE_ID@")
-set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "@CMAKE_CXX_COMPILER_FRONTEND_VARIANT@")
-set(CMAKE_CXX_SIMULATE_VERSION "@CMAKE_CXX_SIMULATE_VERSION@")
-@_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID@
-@SET_MSVC_CXX_ARCHITECTURE_ID@
-@SET_CMAKE_XCODE_ARCHS@
-set(CMAKE_AR "@CMAKE_AR@")
-set(CMAKE_CXX_COMPILER_AR "@CMAKE_CXX_COMPILER_AR@")
-set(CMAKE_RANLIB "@CMAKE_RANLIB@")
-set(CMAKE_CXX_COMPILER_RANLIB "@CMAKE_CXX_COMPILER_RANLIB@")
-set(CMAKE_LINKER "@CMAKE_LINKER@")
-set(CMAKE_MT "@CMAKE_MT@")
-set(CMAKE_COMPILER_IS_GNUCXX @CMAKE_COMPILER_IS_GNUCXX@)
-set(CMAKE_CXX_COMPILER_LOADED 1)
-set(CMAKE_CXX_COMPILER_WORKS @CMAKE_CXX_COMPILER_WORKS@)
-set(CMAKE_CXX_ABI_COMPILED @CMAKE_CXX_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_CXX_COMPILER_ENV_VAR "CXX")
-
-if(CMAKE_COMPILER_IS_MINGW)
- set(MINGW 1)
-endif()
-set(CMAKE_CXX_COMPILER_ID_RUN 1)
-set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
-set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
-
-foreach (lang C OBJC OBJCXX)
- if (CMAKE_${lang}_COMPILER_ID_RUN)
- foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
- list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
- endforeach()
- endif()
-endforeach()
-
-set(CMAKE_CXX_LINKER_PREFERENCE 30)
-set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
-
-# Save compiler ABI information.
-set(CMAKE_CXX_SIZEOF_DATA_PTR "@CMAKE_CXX_SIZEOF_DATA_PTR@")
-set(CMAKE_CXX_COMPILER_ABI "@CMAKE_CXX_COMPILER_ABI@")
-set(CMAKE_CXX_LIBRARY_ARCHITECTURE "@CMAKE_CXX_LIBRARY_ARCHITECTURE@")
-
-if(CMAKE_CXX_SIZEOF_DATA_PTR)
- set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_CXX_COMPILER_ABI)
- set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
-endif()
-
-if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
- set(CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_CXX_LIBRARY_ARCHITECTURE@")
-endif()
-
-set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "@CMAKE_CXX_CL_SHOWINCLUDES_PREFIX@")
-if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
- set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
-endif()
-
-@CMAKE_CXX_COMPILER_CUSTOM_CODE@
-@CMAKE_CXX_SYSROOT_FLAG_CODE@
-@CMAKE_CXX_OSX_DEPLOYMENT_TARGET_FLAG_CODE@
-
-set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES@")
-set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "@CMAKE_CXX_IMPLICIT_LINK_LIBRARIES@")
-set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "@CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES@")
-set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
diff --git a/share/cmake-3.17/Modules/CMakeCXXInformation.cmake b/share/cmake-3.17/Modules/CMakeCXXInformation.cmake
deleted file mode 100644
index da7440a..0000000
--- a/share/cmake-3.17/Modules/CMakeCXXInformation.cmake
+++ /dev/null
@@ -1,282 +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()
-
-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/CMakeCompilerIdDetection.cmake b/share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake
deleted file mode 100644
index bb573b7..0000000
--- a/share/cmake-3.17/Modules/CMakeCompilerIdDetection.cmake
+++ /dev/null
@@ -1,152 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-function(_readFile file)
- include(${file})
- get_filename_component(name ${file} NAME_WE)
- string(REGEX REPLACE "-.*" "" CompilerId ${name})
- set(_compiler_id_version_compute_${CompilerId} ${_compiler_id_version_compute} PARENT_SCOPE)
- set(_compiler_id_simulate_${CompilerId} ${_compiler_id_simulate} PARENT_SCOPE)
- set(_compiler_id_pp_test_${CompilerId} ${_compiler_id_pp_test} PARENT_SCOPE)
-endfunction()
-
-function(compiler_id_detection outvar lang)
-
- if (NOT lang STREQUAL Fortran AND NOT lang STREQUAL CSharp)
- file(GLOB lang_files
- "${CMAKE_ROOT}/Modules/Compiler/*-DetermineCompiler.cmake")
- set(nonlang CXX)
- if (lang STREQUAL CXX)
- set(nonlang C)
- endif()
-
- file(GLOB nonlang_files
- "${CMAKE_ROOT}/Modules/Compiler/*-${nonlang}-DetermineCompiler.cmake")
- list(REMOVE_ITEM lang_files ${nonlang_files})
- endif()
-
- set(files ${lang_files})
- if (files)
- foreach(file ${files})
- _readFile(${file})
- endforeach()
-
- set(options ID_STRING VERSION_STRINGS ID_DEFINE PLATFORM_DEFAULT_COMPILER)
- set(oneValueArgs PREFIX)
- cmake_parse_arguments(CID "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- if (CID_UNPARSED_ARGUMENTS)
- message(FATAL_ERROR "Unrecognized arguments: \"${CID_UNPARSED_ARGUMENTS}\"")
- endif()
-
- # Order is relevant here. For example, compilers which pretend to be
- # GCC must appear before the actual GCC.
- if (lang STREQUAL CXX)
- list(APPEND ordered_compilers
- Comeau
- )
- endif()
- list(APPEND ordered_compilers
- Intel
- PathScale
- Embarcadero
- Borland
- Watcom
- OpenWatcom
- SunPro
- HP
- Compaq
- zOS
- XLClang
- XL
- VisualAge
- PGI
- Cray
- TI
- Fujitsu
- GHS
- )
- if (lang STREQUAL C)
- list(APPEND ordered_compilers
- TinyCC
- Bruce
- )
- endif()
- list(APPEND ordered_compilers
- SCO
- ARMCC
- AppleClang
- ARMClang
- Clang
- GNU
- MSVC
- ADSP
- IAR
- )
- if (lang STREQUAL C)
- list(APPEND ordered_compilers
- SDCC
- )
- endif()
-
- #Currently the only CUDA compilers are NVIDIA
- if(lang STREQUAL CUDA)
- set(ordered_compilers NVIDIA)
- endif()
-
- if(CID_ID_DEFINE)
- foreach(Id ${ordered_compilers})
- string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "# define ${CID_PREFIX}COMPILER_IS_${Id} 0\n")
- endforeach()
- # Hard-code definitions for compilers that are no longer supported.
- string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "# define ${CID_PREFIX}COMPILER_IS_MIPSpro 0\n")
- endif()
-
- set(pp_if "#if")
- if (CID_VERSION_STRINGS)
- string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "\n/* Version number components: V=Version, R=Revision, P=Patch
- Version date components: YYYY=Year, MM=Month, DD=Day */\n")
- endif()
-
- foreach(Id ${ordered_compilers})
- if (NOT _compiler_id_pp_test_${Id})
- message(FATAL_ERROR "No preprocessor test for \"${Id}\"")
- endif()
- set(id_content "${pp_if} ${_compiler_id_pp_test_${Id}}\n")
- if (CID_ID_STRING)
- set(PREFIX ${CID_PREFIX})
- string(CONFIGURE "${_compiler_id_simulate_${Id}}" SIMULATE_BLOCK @ONLY)
- string(APPEND id_content "# define ${CID_PREFIX}COMPILER_ID \"${Id}\"${SIMULATE_BLOCK}")
- endif()
- if (CID_ID_DEFINE)
- string(APPEND id_content "# undef ${CID_PREFIX}COMPILER_IS_${Id}\n")
- string(APPEND id_content "# define ${CID_PREFIX}COMPILER_IS_${Id} 1\n")
- endif()
- if (CID_VERSION_STRINGS)
- set(PREFIX ${CID_PREFIX})
- set(MACRO_DEC DEC)
- set(MACRO_HEX HEX)
- string(CONFIGURE "${_compiler_id_version_compute_${Id}}" VERSION_BLOCK @ONLY)
- string(APPEND id_content "${VERSION_BLOCK}\n")
- endif()
- string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "\n${id_content}")
- set(pp_if "#elif")
- endforeach()
-
- if (CID_PLATFORM_DEFAULT_COMPILER)
- set(platform_compiler_detection "
-/* These compilers are either not known or too old to define an
- identification macro. Try to identify the platform and guess that
- it is the native compiler. */
-#elif defined(__hpux) || defined(__hpua)
-# define ${CID_PREFIX}COMPILER_ID \"HP\"
-
-#else /* unknown compiler */
-# define ${CID_PREFIX}COMPILER_ID \"\"")
- endif()
-
- string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "\n${platform_compiler_detection}\n#endif")
- endif()
-
- set(${outvar} ${CMAKE_${lang}_COMPILER_ID_CONTENT} PARENT_SCOPE)
-endfunction()
diff --git a/share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake
deleted file mode 100644
index e47f3a4..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineASMCompiler.cmake
+++ /dev/null
@@ -1,235 +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 ASM programs
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-
-if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER)
- # prefer the environment variable ASM
- if(NOT $ENV{ASM${ASM_DIALECT}} STREQUAL "")
- get_filename_component(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT $ENV{ASM${ASM_DIALECT}} PROGRAM PROGRAM_ARGS CMAKE_ASM${ASM_DIALECT}_FLAGS_ENV_INIT)
- if(CMAKE_ASM${ASM_DIALECT}_FLAGS_ENV_INIT)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARG1 "${CMAKE_ASM${ASM_DIALECT}_FLAGS_ENV_INIT}" CACHE STRING "First argument to ASM${ASM_DIALECT} compiler")
- endif()
- if(NOT EXISTS ${CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT})
- message(FATAL_ERROR "Could not find compiler set in environment variable ASM${ASM_DIALECT}:\n$ENV{ASM${ASM_DIALECT}}.")
- endif()
- endif()
-
- # finally list compilers to try
- if("ASM${ASM_DIALECT}" STREQUAL "ASM") # the generic assembler support
- if(NOT CMAKE_ASM_COMPILER_INIT)
- if(CMAKE_C_COMPILER)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${CMAKE_C_COMPILER})
- elseif(CMAKE_CXX_COMPILER)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${CMAKE_CXX_COMPILER})
- else()
- # List all default C and CXX compilers
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST
- ${_CMAKE_TOOLCHAIN_PREFIX}cc ${_CMAKE_TOOLCHAIN_PREFIX}gcc cl bcc xlc
- CC ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ aCC cl bcc xlC)
- endif()
- endif()
- else() # some specific assembler "dialect"
- if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT AND NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST)
- message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT or CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST must be preset !")
- endif()
- endif()
-
- # Find the compiler.
- _cmake_find_compiler(ASM${ASM_DIALECT})
-
-else()
- _cmake_find_compiler_path(ASM${ASM_DIALECT})
-endif()
-mark_as_advanced(CMAKE_ASM${ASM_DIALECT}_COMPILER)
-
-if (NOT _CMAKE_TOOLCHAIN_LOCATION)
- get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" PATH)
-endif ()
-
-
-if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
-
- # Table of per-vendor compiler id flags with expected output.
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS GNU )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_GNU "--version")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_GNU "(GNU assembler)|(GCC)|(Free Software Foundation)")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS Clang )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_Clang "--version")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_Clang "(clang version)")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS AppleClang )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_AppleClang "--version")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_AppleClang "(Apple LLVM version)")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS ARMClang )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_ARMClang "--version")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_ARMClang "armclang")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS HP )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_HP "-V")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_HP "HP C")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS Intel )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_Intel "--version")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_Intel "(ICC)")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS SunPro )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_SunPro "-V")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_SunPro "Sun C")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS XL )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_XL "-qversion")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_XL "XL C")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS MSVC )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_MSVC "-?")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_MSVC "Microsoft")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS TI )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_TI "-h")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_TI "Texas Instruments")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS IAR)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_IAR )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_IAR "IAR Assembler")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS ARMCC)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_ARMCC )
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_ARMCC "(ARM Compiler)|(ARM Assembler)")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS NASM)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_NASM "-v")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_NASM "(NASM version)")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS YASM)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_YASM "--version")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_YASM "(yasm)")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS ADSP)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_ADSP "-version")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_ADSP "Analog Devices")
-
- list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS QCC)
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_QCC "-V")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_QCC "gcc_nto")
-
- include(CMakeDetermineCompilerId)
- set(userflags)
- CMAKE_DETERMINE_COMPILER_ID_VENDOR(ASM${ASM_DIALECT} "${userflags}")
- if("x${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}" STREQUAL "xIAR")
- # primary necessary to detect architecture, so the right archiver and linker can be picked
- # eg. "IAR Assembler V8.10.1.12857/W32 for ARM" or "IAR Assembler V4.11.1.4666 for Renesas RX"
- # Cut out identification first, newline handling is a pain
- string(REGEX MATCH "IAR Assembler[^\r\n]*" _compileid "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_OUTPUT}")
- if("${_compileid}" MATCHES "V([0-9]+\\.[0-9]+\\.[0-9]+)")
- set(CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION ${CMAKE_MATCH_1})
- endif()
- string(REGEX MATCHALL "([A-Za-z0-9-]+)" _all_compileid_matches "${_compileid}")
- if(_all_compileid_matches)
- list(GET _all_compileid_matches "-1" CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID)
- endif()
- endif()
- unset(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_OUTPUT)
- unset(_all_compileid_matches)
- unset(_compileid)
-endif()
-
-if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
- if(CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION)
- set(_version " ${CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION}")
- else()
- set(_version "")
- endif()
- if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID AND "x${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}" STREQUAL "xIAR")
- set(_archid " ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}")
- else()
- set(_archid "")
- endif()
- message(STATUS "The ASM${ASM_DIALECT} compiler identification is ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}${_archid}${_version}")
- unset(_archid)
- unset(_version)
-else()
- message(STATUS "The ASM${ASM_DIALECT} compiler identification is unknown")
-endif()
-
-# If we have a gas/as cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-gas, arm-elf-gas or i586-mingw32msvc-gas , optionally
-# with a 3-component version number at the end
-# 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-gas.exe", where BASENAME would be
-# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
-if (NOT _CMAKE_TOOLCHAIN_PREFIX)
- get_filename_component(COMPILER_BASENAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME)
- if (COMPILER_BASENAME MATCHES "^(.+-)g?as(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- endif ()
-endif ()
-
-# Now try the C compiler regexp:
-if (NOT _CMAKE_TOOLCHAIN_PREFIX)
- if (COMPILER_BASENAME MATCHES "^(.+-)g?cc(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- endif ()
-endif ()
-
-# Finally try the CXX compiler regexp:
-if (NOT _CMAKE_TOOLCHAIN_PREFIX)
- if (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- endif ()
-endif ()
-
-
-set(_CMAKE_PROCESSING_LANGUAGE "ASM")
-include(CMakeFindBinUtils)
-include(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-FindBinUtils OPTIONAL)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ENV_VAR "ASM${ASM_DIALECT}")
-
-if(CMAKE_ASM${ASM_DIALECT}_COMPILER)
- message(STATUS "Found assembler: ${CMAKE_ASM${ASM_DIALECT}_COMPILER}")
-else()
- message(STATUS "Didn't find assembler")
-endif()
-
-foreach(_var
- COMPILER
- COMPILER_ID
- COMPILER_ARG1
- COMPILER_ENV_VAR
- COMPILER_AR
- COMPILER_RANLIB
- COMPILER_VERSION
- )
- set(_CMAKE_ASM_${_var} "${CMAKE_ASM${ASM_DIALECT}_${_var}}")
-endforeach()
-
-if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID)
- set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID
- "set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID})")
-else()
- set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID "")
-endif()
-
-# configure variables set in this file for fast reload later on
-configure_file(${CMAKE_ROOT}/Modules/CMakeASMCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeASM${ASM_DIALECT}Compiler.cmake @ONLY)
-
-foreach(_var
- COMPILER
- COMPILER_ID
- COMPILER_ARG1
- COMPILER_ENV_VAR
- COMPILER_AR
- COMPILER_RANLIB
- COMPILER_VERSION
- )
- unset(_CMAKE_ASM_${_var})
-endforeach()
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake
deleted file mode 100644
index 037c33b..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineCCompiler.cmake
+++ /dev/null
@@ -1,216 +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 C programs
-# NOTE, a generator may set CMAKE_C_COMPILER before
-# loading this file to force a compiler.
-# use environment variable CC first if defined by user, next use
-# the cmake variable CMAKE_GENERATOR_CC which can be defined by a generator
-# as a default compiler
-# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
-# as prefix for the tools (e.g. arm-elf-gcc, arm-elf-ar etc.). This works
-# currently with the GNU crosscompilers.
-#
-# Sets the following variables:
-# CMAKE_C_COMPILER
-# CMAKE_AR
-# CMAKE_RANLIB
-# CMAKE_COMPILER_IS_GNUCC
-#
-# If not already set before, it also sets
-# _CMAKE_TOOLCHAIN_PREFIX
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-
-# Load system-specific compiler preferences for this language.
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine-C OPTIONAL)
-include(Platform/${CMAKE_SYSTEM_NAME}-C OPTIONAL)
-if(NOT CMAKE_C_COMPILER_NAMES)
- set(CMAKE_C_COMPILER_NAMES cc)
-endif()
-
-if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
-elseif("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
-elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
- set(CMAKE_C_COMPILER_XCODE_TYPE sourcecode.c.c)
- _cmake_find_compiler_path(C)
-else()
- if(NOT CMAKE_C_COMPILER)
- set(CMAKE_C_COMPILER_INIT NOTFOUND)
-
- # prefer the environment variable CC
- if(NOT $ENV{CC} STREQUAL "")
- get_filename_component(CMAKE_C_COMPILER_INIT $ENV{CC} PROGRAM PROGRAM_ARGS CMAKE_C_FLAGS_ENV_INIT)
- if(CMAKE_C_FLAGS_ENV_INIT)
- set(CMAKE_C_COMPILER_ARG1 "${CMAKE_C_FLAGS_ENV_INIT}" CACHE STRING "First argument to C compiler")
- endif()
- if(NOT EXISTS ${CMAKE_C_COMPILER_INIT})
- message(FATAL_ERROR "Could not find compiler set in environment variable CC:\n$ENV{CC}.")
- endif()
- endif()
-
- # next try prefer the compiler specified by the generator
- if(CMAKE_GENERATOR_CC)
- if(NOT CMAKE_C_COMPILER_INIT)
- set(CMAKE_C_COMPILER_INIT ${CMAKE_GENERATOR_CC})
- endif()
- endif()
-
- # finally list compilers to try
- if(NOT CMAKE_C_COMPILER_INIT)
- set(CMAKE_C_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}cc ${_CMAKE_TOOLCHAIN_PREFIX}gcc cl bcc xlc clang)
- endif()
-
- _cmake_find_compiler(C)
-
- else()
- _cmake_find_compiler_path(C)
- endif()
- mark_as_advanced(CMAKE_C_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 file.
- set(CMAKE_C_COMPILER_ID_TEST_FLAGS_FIRST)
- set(CMAKE_C_COMPILER_ID_TEST_FLAGS
- # Try compiling to an object file only.
- "-c"
-
- # Try enabling ANSI mode on HP.
- "-Aa"
-
- # Try compiling K&R-compatible code (needed by Bruce C Compiler).
- "-D__CLASSIC_C__"
-
- # ARMClang need target options
- "--target=arm-arm-none-eabi -mcpu=cortex-m3"
- )
-endif()
-
-# Build a small source file to identify the compiler.
-if(NOT CMAKE_C_COMPILER_ID_RUN)
- set(CMAKE_C_COMPILER_ID_RUN 1)
-
- # Try to identify the compiler.
- set(CMAKE_C_COMPILER_ID)
- set(CMAKE_C_PLATFORM_ID)
- file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
- CMAKE_C_COMPILER_ID_PLATFORM_CONTENT)
-
- # The IAR compiler produces weird output.
- # See https://gitlab.kitware.com/cmake/cmake/issues/10176#note_153591
- list(APPEND CMAKE_C_COMPILER_ID_VENDORS IAR)
- set(CMAKE_C_COMPILER_ID_VENDOR_FLAGS_IAR )
- set(CMAKE_C_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
-
- # Match the link line from xcodebuild output of the form
- # Ld ...
- # ...
- # /path/to/cc ...CompilerIdC/...
- # to extract the compiler front-end for the language.
- set(CMAKE_C_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdC/(\\./)?(CompilerIdC.(framework|xctest)/)?CompilerIdC[ \t\n\\\"]")
- set(CMAKE_C_COMPILER_ID_TOOL_MATCH_INDEX 2)
-
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
- CMAKE_DETERMINE_COMPILER_ID(C CFLAGS CMakeCCompilerId.c)
-
- # Set old compiler and platform id variables.
- if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
- set(CMAKE_COMPILER_IS_GNUCC 1)
- endif()
- if(CMAKE_C_PLATFORM_ID MATCHES "MinGW")
- set(CMAKE_COMPILER_IS_MINGW 1)
- elseif(CMAKE_C_PLATFORM_ID MATCHES "Cygwin")
- set(CMAKE_COMPILER_IS_CYGWIN 1)
- endif()
-else()
- if(NOT DEFINED CMAKE_C_COMPILER_FRONTEND_VARIANT)
- # Some toolchain files set our internal CMAKE_C_COMPILER_ID_RUN
- # variable but are not aware of CMAKE_C_COMPILER_FRONTEND_VARIANT.
- # They pre-date our support for the GNU-like variant targeting the
- # MSVC ABI so we do not consider that here.
- if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
- if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
- set(CMAKE_C_COMPILER_FRONTEND_VARIANT "MSVC")
- else()
- set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
- endif()
- else()
- set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
- endif()
- endif()
-endif()
-
-if (NOT _CMAKE_TOOLCHAIN_LOCATION)
- get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
-endif ()
-
-# If we have a gcc cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc, 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_C_COMPILER_ID MATCHES "GNU|Clang|QCC")
- get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
- if (COMPILER_BASENAME MATCHES "^(.+-)(clang|g?cc)(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
- elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
- if(CMAKE_C_COMPILER_TARGET)
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_C_COMPILER_TARGET}-)
- endif()
- elseif(COMPILER_BASENAME MATCHES "qcc(\\.exe)?$")
- if(CMAKE_C_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)?")
- set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
- endif()
- 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 ()
- elseif(CMAKE_C_COMPILER_ID MATCHES "TI")
- # TI compilers are named e.g. cl6x, cl470 or armcl.exe
- get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
- if (COMPILER_BASENAME MATCHES "^(.+)?cl([^.]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX "${CMAKE_MATCH_1}")
- set(_CMAKE_TOOLCHAIN_SUFFIX "${CMAKE_MATCH_2}")
- endif ()
- endif()
-
-endif ()
-
-set(_CMAKE_PROCESSING_LANGUAGE "C")
-include(CMakeFindBinUtils)
-include(Compiler/${CMAKE_C_COMPILER_ID}-FindBinUtils OPTIONAL)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-if(CMAKE_C_COMPILER_ARCHITECTURE_ID)
- set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID
- "set(CMAKE_C_COMPILER_ARCHITECTURE_ID ${CMAKE_C_COMPILER_ARCHITECTURE_ID})")
-else()
- set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID "")
-endif()
-
-if(MSVC_C_ARCHITECTURE_ID)
- set(SET_MSVC_C_ARCHITECTURE_ID
- "set(MSVC_C_ARCHITECTURE_ID ${MSVC_C_ARCHITECTURE_ID})")
-endif()
-
-if(CMAKE_C_XCODE_ARCHS)
- set(SET_CMAKE_XCODE_ARCHS
- "set(CMAKE_XCODE_ARCHS \"${CMAKE_C_XCODE_ARCHS}\")")
-endif()
-
-# configure variables set in this file for fast reload later on
-configure_file(${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake
- @ONLY
- )
-set(CMAKE_C_COMPILER_ENV_VAR "CC")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake
deleted file mode 100644
index 7d7fb9a..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineCUDACompiler.cmake
+++ /dev/null
@@ -1,224 +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()
-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.17/Modules/CMakeDetermineCXXCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake
deleted file mode 100644
index 7274eec..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineCXXCompiler.cmake
+++ /dev/null
@@ -1,215 +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 C++ programs
-# NOTE, a generator may set CMAKE_CXX_COMPILER before
-# loading this file to force a compiler.
-# use environment variable CXX first if defined by user, next use
-# the cmake variable CMAKE_GENERATOR_CXX which can be defined by a generator
-# as a default compiler
-# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
-# as prefix for the tools (e.g. arm-elf-g++, arm-elf-ar etc.)
-#
-# Sets the following variables:
-# CMAKE_CXX_COMPILER
-# CMAKE_COMPILER_IS_GNUCXX
-# CMAKE_AR
-# CMAKE_RANLIB
-#
-# If not already set before, it also sets
-# _CMAKE_TOOLCHAIN_PREFIX
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-
-# Load system-specific compiler preferences for this language.
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine-CXX OPTIONAL)
-include(Platform/${CMAKE_SYSTEM_NAME}-CXX OPTIONAL)
-if(NOT CMAKE_CXX_COMPILER_NAMES)
- set(CMAKE_CXX_COMPILER_NAMES CC)
-endif()
-
-if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
-elseif("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
-elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
- set(CMAKE_CXX_COMPILER_XCODE_TYPE sourcecode.cpp.cpp)
- _cmake_find_compiler_path(CXX)
-else()
- if(NOT CMAKE_CXX_COMPILER)
- set(CMAKE_CXX_COMPILER_INIT NOTFOUND)
-
- # prefer the environment variable CXX
- if(NOT $ENV{CXX} STREQUAL "")
- get_filename_component(CMAKE_CXX_COMPILER_INIT $ENV{CXX} PROGRAM PROGRAM_ARGS CMAKE_CXX_FLAGS_ENV_INIT)
- if(CMAKE_CXX_FLAGS_ENV_INIT)
- set(CMAKE_CXX_COMPILER_ARG1 "${CMAKE_CXX_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler")
- endif()
- if(NOT EXISTS ${CMAKE_CXX_COMPILER_INIT})
- message(FATAL_ERROR "Could not find compiler set in environment variable CXX:\n$ENV{CXX}.\n${CMAKE_CXX_COMPILER_INIT}")
- endif()
- endif()
-
- # next prefer the generator specified compiler
- if(CMAKE_GENERATOR_CXX)
- if(NOT CMAKE_CXX_COMPILER_INIT)
- set(CMAKE_CXX_COMPILER_INIT ${CMAKE_GENERATOR_CXX})
- endif()
- endif()
-
- # finally list compilers to try
- if(NOT CMAKE_CXX_COMPILER_INIT)
- set(CMAKE_CXX_COMPILER_LIST CC ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ aCC cl bcc xlC clang++)
- endif()
-
- _cmake_find_compiler(CXX)
- else()
- _cmake_find_compiler_path(CXX)
- endif()
- mark_as_advanced(CMAKE_CXX_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 file.
- set(CMAKE_CXX_COMPILER_ID_TEST_FLAGS_FIRST)
- set(CMAKE_CXX_COMPILER_ID_TEST_FLAGS
- # Try compiling to an object file only.
- "-c"
- # IAR does not detect language automatically
- "--c++"
- "--ec++"
-
- # ARMClang need target options
- "--target=arm-arm-none-eabi -mcpu=cortex-m3"
- )
-endif()
-
-# Build a small source file to identify the compiler.
-if(NOT CMAKE_CXX_COMPILER_ID_RUN)
- set(CMAKE_CXX_COMPILER_ID_RUN 1)
-
- # Try to identify the compiler.
- set(CMAKE_CXX_COMPILER_ID)
- set(CMAKE_CXX_PLATFORM_ID)
- file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
- CMAKE_CXX_COMPILER_ID_PLATFORM_CONTENT)
-
- # The IAR compiler produces weird output.
- # See https://gitlab.kitware.com/cmake/cmake/issues/10176#note_153591
- list(APPEND CMAKE_CXX_COMPILER_ID_VENDORS IAR)
- set(CMAKE_CXX_COMPILER_ID_VENDOR_FLAGS_IAR )
- set(CMAKE_CXX_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
-
- # Match the link line from xcodebuild output of the form
- # Ld ...
- # ...
- # /path/to/cc ...CompilerIdCXX/...
- # to extract the compiler front-end for the language.
- set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdCXX/(\\./)?(CompilerIdCXX.(framework|xctest)/)?CompilerIdCXX[ \t\n\\\"]")
- set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
-
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
- CMAKE_DETERMINE_COMPILER_ID(CXX CXXFLAGS CMakeCXXCompilerId.cpp)
-
- # Set old compiler and platform id variables.
- if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- set(CMAKE_COMPILER_IS_GNUCXX 1)
- endif()
- if(CMAKE_CXX_PLATFORM_ID MATCHES "MinGW")
- set(CMAKE_COMPILER_IS_MINGW 1)
- elseif(CMAKE_CXX_PLATFORM_ID MATCHES "Cygwin")
- set(CMAKE_COMPILER_IS_CYGWIN 1)
- endif()
-else()
- if(NOT DEFINED CMAKE_CXX_COMPILER_FRONTEND_VARIANT)
- # Some toolchain files set our internal CMAKE_CXX_COMPILER_ID_RUN
- # variable but are not aware of CMAKE_CXX_COMPILER_FRONTEND_VARIANT.
- # They pre-date our support for the GNU-like variant targeting the
- # MSVC ABI so we do not consider that here.
- if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
- set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "MSVC")
- else()
- set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
- endif()
- else()
- set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
- endif()
- endif()
-endif()
-
-if (NOT _CMAKE_TOOLCHAIN_LOCATION)
- get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
-endif ()
-
-# if we have a g++ cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++ , 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_CXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC")
- get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
- if (COMPILER_BASENAME MATCHES "^(.+-)(clan)?[gc]\\+\\+(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
- elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
- if(CMAKE_CXX_COMPILER_TARGET)
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_CXX_COMPILER_TARGET}-)
- endif()
- elseif(COMPILER_BASENAME MATCHES "QCC(\\.exe)?$")
- if(CMAKE_CXX_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)")
- set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
- endif()
- 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 ()
- elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "TI")
- # TI compilers are named e.g. cl6x, cl470 or armcl.exe
- get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
- if (COMPILER_BASENAME MATCHES "^(.+)?cl([^.]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX "${CMAKE_MATCH_1}")
- set(_CMAKE_TOOLCHAIN_SUFFIX "${CMAKE_MATCH_2}")
- endif ()
-
- endif()
-
-endif ()
-
-set(_CMAKE_PROCESSING_LANGUAGE "CXX")
-include(CMakeFindBinUtils)
-include(Compiler/${CMAKE_CXX_COMPILER_ID}-FindBinUtils OPTIONAL)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID)
- set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID
- "set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID ${CMAKE_CXX_COMPILER_ARCHITECTURE_ID})")
-else()
- set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID "")
-endif()
-
-if(MSVC_CXX_ARCHITECTURE_ID)
- set(SET_MSVC_CXX_ARCHITECTURE_ID
- "set(MSVC_CXX_ARCHITECTURE_ID ${MSVC_CXX_ARCHITECTURE_ID})")
-endif()
-
-if(CMAKE_CXX_XCODE_ARCHS)
- set(SET_CMAKE_XCODE_ARCHS
- "set(CMAKE_XCODE_ARCHS \"${CMAKE_CXX_XCODE_ARCHS}\")")
-endif()
-
-# configure all variables set in this file
-configure_file(${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake
- @ONLY
- )
-
-set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake
deleted file mode 100644
index c37adae..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineCompiler.cmake
+++ /dev/null
@@ -1,120 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-macro(_cmake_find_compiler lang)
- # Use already-enabled languages for reference.
- get_property(_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
- list(REMOVE_ITEM _languages "${lang}")
-
- if(CMAKE_${lang}_COMPILER_INIT)
- # Search only for the specified compiler.
- set(CMAKE_${lang}_COMPILER_LIST "${CMAKE_${lang}_COMPILER_INIT}")
- else()
- # Re-order the compiler list with preferred vendors first.
- set(_${lang}_COMPILER_LIST "${CMAKE_${lang}_COMPILER_LIST}")
- set(CMAKE_${lang}_COMPILER_LIST "")
- # Prefer vendors of compilers from reference languages.
- foreach(l ${_languages})
- list(APPEND CMAKE_${lang}_COMPILER_LIST
- ${_${lang}_COMPILER_NAMES_${CMAKE_${l}_COMPILER_ID}})
- endforeach()
- # Prefer vendors based on the platform.
- list(APPEND CMAKE_${lang}_COMPILER_LIST ${CMAKE_${lang}_COMPILER_NAMES})
- # Append the rest of the list and remove duplicates.
- list(APPEND CMAKE_${lang}_COMPILER_LIST ${_${lang}_COMPILER_LIST})
- unset(_${lang}_COMPILER_LIST)
- list(REMOVE_DUPLICATES CMAKE_${lang}_COMPILER_LIST)
- if(CMAKE_${lang}_COMPILER_EXCLUDE)
- list(REMOVE_ITEM CMAKE_${lang}_COMPILER_LIST
- ${CMAKE_${lang}_COMPILER_EXCLUDE})
- endif()
- endif()
-
- # Look for directories containing compilers of reference languages.
- set(_${lang}_COMPILER_HINTS)
- foreach(l ${_languages})
- if(CMAKE_${l}_COMPILER AND IS_ABSOLUTE "${CMAKE_${l}_COMPILER}")
- get_filename_component(_hint "${CMAKE_${l}_COMPILER}" PATH)
- if(IS_DIRECTORY "${_hint}")
- list(APPEND _${lang}_COMPILER_HINTS "${_hint}")
- endif()
- unset(_hint)
- endif()
- endforeach()
-
- # Find the compiler.
- if(_${lang}_COMPILER_HINTS)
- # Prefer directories containing compilers of reference languages.
- list(REMOVE_DUPLICATES _${lang}_COMPILER_HINTS)
- find_program(CMAKE_${lang}_COMPILER
- NAMES ${CMAKE_${lang}_COMPILER_LIST}
- PATHS ${_${lang}_COMPILER_HINTS}
- NO_DEFAULT_PATH
- DOC "${lang} compiler")
- endif()
- find_program(CMAKE_${lang}_COMPILER NAMES ${CMAKE_${lang}_COMPILER_LIST} DOC "${lang} compiler")
- if(CMAKE_${lang}_COMPILER_INIT AND NOT CMAKE_${lang}_COMPILER)
- set_property(CACHE CMAKE_${lang}_COMPILER PROPERTY VALUE "${CMAKE_${lang}_COMPILER_INIT}")
- endif()
- unset(_${lang}_COMPILER_HINTS)
- unset(_languages)
-
- # Look for a make tool provided by Xcode
- if(CMAKE_HOST_APPLE)
- macro(_query_xcrun compiler_name result_var_keyword result_var)
- if(NOT "x${result_var_keyword}" STREQUAL "xRESULT_VAR")
- message(FATAL_ERROR "Bad arguments to macro")
- endif()
- execute_process(COMMAND xcrun --find ${compiler_name}
- OUTPUT_VARIABLE _xcrun_out OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE _xcrun_err)
- set("${result_var}" "${_xcrun_out}")
- endmacro()
-
- set(xcrun_result)
- if (CMAKE_${lang}_COMPILER MATCHES "^/usr/bin/(.+)$")
- _query_xcrun("${CMAKE_MATCH_1}" RESULT_VAR xcrun_result)
- elseif (CMAKE_${lang}_COMPILER STREQUAL "CMAKE_${lang}_COMPILER-NOTFOUND")
- foreach(comp ${CMAKE_${lang}_COMPILER_LIST})
- _query_xcrun("${comp}" RESULT_VAR xcrun_result)
- if(xcrun_result)
- break()
- endif()
- endforeach()
- endif()
- if (xcrun_result)
- set_property(CACHE CMAKE_${lang}_COMPILER PROPERTY VALUE "${xcrun_result}")
- endif()
- endif()
-endmacro()
-
-macro(_cmake_find_compiler_path lang)
- if(CMAKE_${lang}_COMPILER)
- # we only get here if CMAKE_${lang}_COMPILER was specified using -D or a pre-made CMakeCache.txt
- # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
- # if CMAKE_${lang}_COMPILER is a list of length 2, use the first item as
- # CMAKE_${lang}_COMPILER and the 2nd one as CMAKE_${lang}_COMPILER_ARG1
- list(LENGTH CMAKE_${lang}_COMPILER _CMAKE_${lang}_COMPILER_LIST_LENGTH)
- if("${_CMAKE_${lang}_COMPILER_LIST_LENGTH}" EQUAL 2)
- list(GET CMAKE_${lang}_COMPILER 1 CMAKE_${lang}_COMPILER_ARG1)
- list(GET CMAKE_${lang}_COMPILER 0 CMAKE_${lang}_COMPILER)
- endif()
- unset(_CMAKE_${lang}_COMPILER_LIST_LENGTH)
-
- # find the compiler in the PATH if necessary
- get_filename_component(_CMAKE_USER_${lang}_COMPILER_PATH "${CMAKE_${lang}_COMPILER}" PATH)
- if(NOT _CMAKE_USER_${lang}_COMPILER_PATH)
- find_program(CMAKE_${lang}_COMPILER_WITH_PATH NAMES ${CMAKE_${lang}_COMPILER})
- if(CMAKE_${lang}_COMPILER_WITH_PATH)
- set(CMAKE_${lang}_COMPILER ${CMAKE_${lang}_COMPILER_WITH_PATH})
- get_property(_CMAKE_${lang}_COMPILER_CACHED CACHE CMAKE_${lang}_COMPILER PROPERTY TYPE)
- if(_CMAKE_${lang}_COMPILER_CACHED)
- set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER}" CACHE STRING "${lang} compiler" FORCE)
- endif()
- unset(_CMAKE_${lang}_COMPILER_CACHED)
- endif()
- unset(CMAKE_${lang}_COMPILER_WITH_PATH CACHE)
- endif()
- endif()
-endmacro()
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake b/share/cmake-3.17/Modules/CMakeDetermineCompilerABI.cmake
deleted file mode 100644
index e1b3c52..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineCompilerABI.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.
-
-
-# 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
deleted file mode 100644
index d125791..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineCompilerId.cmake
+++ /dev/null
@@ -1,930 +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()
-
- 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
deleted file mode 100644
index e850541..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineFortranCompiler.cmake
+++ /dev/null
@@ -1,295 +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_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.17/Modules/CMakeDetermineOBJCCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineOBJCCompiler.cmake
deleted file mode 100644
index ad13eab..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineOBJCCompiler.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.
-
-
-# determine the compiler to use for Objective-C programs
-# NOTE, a generator may set CMAKE_OBJC_COMPILER before
-# loading this file to force a compiler.
-# use environment variable OBJC first if defined by user, next use
-# the cmake variable CMAKE_GENERATOR_OBJC which can be defined by a generator
-# as a default compiler
-#
-# Sets the following variables:
-# CMAKE_OBJC_COMPILER
-# CMAKE_AR
-# CMAKE_RANLIB
-# CMAKE_COMPILER_IS_GNUOBJC
-# CMAKE_COMPILER_IS_CLANGOBJC
-#
-# If not already set before, it also sets
-# _CMAKE_TOOLCHAIN_PREFIX
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-
-# Load system-specific compiler preferences for this language.
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine-OBJC OPTIONAL)
-include(Platform/${CMAKE_SYSTEM_NAME}-OBJC OPTIONAL)
-if(NOT CMAKE_OBJC_COMPILER_NAMES)
- set(CMAKE_OBJC_COMPILER_NAMES clang)
-endif()
-
-if("${CMAKE_GENERATOR}" MATCHES "Xcode")
- set(CMAKE_OBJC_COMPILER_XCODE_TYPE sourcecode.c.objc)
-else()
- if(NOT CMAKE_OBJC_COMPILER)
- set(CMAKE_OBJC_COMPILER_INIT NOTFOUND)
-
- # prefer the environment variable OBJC
- if($ENV{OBJC} MATCHES ".+")
- get_filename_component(CMAKE_OBJC_COMPILER_INIT $ENV{OBJC} PROGRAM PROGRAM_ARGS CMAKE_OBJC_FLAGS_ENV_INIT)
- if(CMAKE_OBJC_FLAGS_ENV_INIT)
- set(CMAKE_OBJC_COMPILER_ARG1 "${CMAKE_OBJC_FLAGS_ENV_INIT}" CACHE STRING "First argument to Objective-C compiler")
- endif()
- if(NOT EXISTS ${CMAKE_OBJC_COMPILER_INIT})
- message(FATAL_ERROR "Could not find compiler set in environment variable OBJC:\n$ENV{OBJC}.")
- endif()
- endif()
-
- # next try prefer the compiler specified by the generator
- if(CMAKE_GENERATOR_OBJC)
- if(NOT CMAKE_OBJC_COMPILER_INIT)
- set(CMAKE_OBJC_COMPILER_INIT ${CMAKE_GENERATOR_OBJC})
- endif()
- endif()
-
- # finally list compilers to try
- if(NOT CMAKE_OBJC_COMPILER_INIT)
- set(CMAKE_OBJC_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}cc ${_CMAKE_TOOLCHAIN_PREFIX}gcc clang)
- endif()
-
- _cmake_find_compiler(OBJC)
-
- else()
- # we only get here if CMAKE_OBJC_COMPILER was specified using -D or a pre-made CMakeCache.txt
- # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
- # if CMAKE_OBJC_COMPILER is a list of length 2, use the first item as
- # CMAKE_OBJC_COMPILER and the 2nd one as CMAKE_OBJC_COMPILER_ARG1
-
- list(LENGTH CMAKE_OBJC_COMPILER _CMAKE_OBJC_COMPILER_LIST_LENGTH)
- if("${_CMAKE_OBJC_COMPILER_LIST_LENGTH}" EQUAL 2)
- list(GET CMAKE_OBJC_COMPILER 1 CMAKE_OBJC_COMPILER_ARG1)
- list(GET CMAKE_OBJC_COMPILER 0 CMAKE_OBJC_COMPILER)
- endif()
-
- # if a compiler was specified by the user but without path,
- # now try to find it with the full path
- # if it is found, force it into the cache,
- # if not, don't overwrite the setting (which was given by the user) with "NOTFOUND"
- # if the C compiler already had a path, reuse it for searching the CXX compiler
- get_filename_component(_CMAKE_USER_OBJC_COMPILER_PATH "${CMAKE_OBJC_COMPILER}" PATH)
- if(NOT _CMAKE_USER_OBJC_COMPILER_PATH)
- find_program(CMAKE_OBJC_COMPILER_WITH_PATH NAMES ${CMAKE_OBJC_COMPILER})
- if(CMAKE_OBJC_COMPILER_WITH_PATH)
- set(CMAKE_OBJC_COMPILER ${CMAKE_OBJC_COMPILER_WITH_PATH} CACHE STRING "Objective-C compiler" FORCE)
- endif()
- unset(CMAKE_OBJC_COMPILER_WITH_PATH CACHE)
- endif()
- endif()
- mark_as_advanced(CMAKE_OBJC_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 file.
- set(CMAKE_OBJC_COMPILER_ID_TEST_FLAGS_FIRST)
- set(CMAKE_OBJC_COMPILER_ID_TEST_FLAGS
- # Try compiling to an object file only.
- "-c"
-
- )
-endif()
-
-# Build a small source file to identify the compiler.
-if(NOT CMAKE_OBJC_COMPILER_ID_RUN)
- set(CMAKE_OBJC_COMPILER_ID_RUN 1)
-
- # Try to identify the compiler.
- set(CMAKE_OBJC_COMPILER_ID)
- file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
- CMAKE_OBJC_COMPILER_ID_PLATFORM_CONTENT)
-
- # Match the link line from xcodebuild output of the form
- # Ld ...
- # ...
- # /path/to/cc ...CompilerIdOBJC/...
- # to extract the compiler front-end for the language.
- set(CMAKE_OBJC_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdOBJC/(\\./)?(CompilerIdOBJC.(framework|xctest)/)?CompilerIdOBJC[ \t\n\\\"]")
- set(CMAKE_OBJC_COMPILER_ID_TOOL_MATCH_INDEX 2)
-
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
- CMAKE_DETERMINE_COMPILER_ID(OBJC OBJCCFLAGS CMakeOBJCCompilerId.m)
-
- # Set old compiler and platform id variables.
- if(CMAKE_OBJC_COMPILER_ID STREQUAL "GNU")
- set(CMAKE_COMPILER_IS_GNUOBJC 1)
- endif()
- if(CMAKE_OBJC_COMPILER_ID STREQUAL "Clang")
- set(CMAKE_COMPILER_IS_CLANGOBJC 1)
- endif()
-endif()
-
-if (NOT _CMAKE_TOOLCHAIN_LOCATION)
- get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_OBJC_COMPILER}" PATH)
-endif ()
-
-# If we have a gcc cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc, 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_OBJC_COMPILER_ID MATCHES "GNU|Clang|QCC")
- get_filename_component(COMPILER_BASENAME "${CMAKE_OBJC_COMPILER}" NAME)
- if (COMPILER_BASENAME MATCHES "^(.+-)(clang|g?cc)(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
- elseif(CMAKE_OBJC_COMPILER_ID MATCHES "Clang")
- if(CMAKE_OBJC_COMPILER_TARGET)
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_OBJC_COMPILER_TARGET}-)
- endif()
- elseif(COMPILER_BASENAME MATCHES "qcc(\\.exe)?$")
- if(CMAKE_OBJC_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)?")
- set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
- endif()
- 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 "OBJC")
-include(CMakeFindBinUtils)
-include(Compiler/${CMAKE_OBJC_COMPILER_ID}-FindBinUtils OPTIONAL)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-if(CMAKE_OBJC_COMPILER_ARCHITECTURE_ID)
- set(_SET_CMAKE_OBJC_COMPILER_ARCHITECTURE_ID
- "set(CMAKE_OBJC_COMPILER_ARCHITECTURE_ID ${CMAKE_OBJC_COMPILER_ARCHITECTURE_ID})")
-else()
- set(_SET_CMAKE_OBJC_COMPILER_ARCHITECTURE_ID "")
-endif()
-
-if(CMAKE_OBJC_XCODE_ARCHS)
- set(SET_CMAKE_XCODE_ARCHS
- "set(CMAKE_XCODE_ARCHS \"${CMAKE_OBJC_XCODE_ARCHS}\")")
-endif()
-
-# configure variables set in this file for fast reload later on
-configure_file(${CMAKE_ROOT}/Modules/CMakeOBJCCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake
- @ONLY
- )
-set(CMAKE_OBJC_COMPILER_ENV_VAR "OBJC")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake b/share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake
deleted file mode 100644
index 60fcbb3..0000000
--- a/share/cmake-3.17/Modules/CMakeDetermineOBJCXXCompiler.cmake
+++ /dev/null
@@ -1,197 +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 Objective-C++ programs
-# NOTE, a generator may set CMAKE_OBJCXX_COMPILER before
-# loading this file to force a compiler.
-# use environment variable OBJCXX first if defined by user, next use
-# the cmake variable CMAKE_GENERATOR_OBJCXX which can be defined by a generator
-# as a default compiler
-# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
-# as prefix for the tools (e.g. arm-elf-g++, arm-elf-ar etc.)
-#
-# Sets the following variables:
-# CMAKE_OBJCXX_COMPILER
-# CMAKE_COMPILER_IS_GNUOBJCXX
-# CMAKE_COMPILER_IS_CLANGOBJCXX
-# CMAKE_AR
-# CMAKE_RANLIB
-#
-# If not already set before, it also sets
-# _CMAKE_TOOLCHAIN_PREFIX
-
-include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
-
-# Load system-specific compiler preferences for this language.
-include(Platform/${CMAKE_SYSTEM_NAME}-Determine-OBJCXX OPTIONAL)
-include(Platform/${CMAKE_SYSTEM_NAME}-OBJCXX OPTIONAL)
-if(NOT CMAKE_OBJCXX_COMPILER_NAMES)
- set(CMAKE_OBJCXX_COMPILER_NAMES clang++)
-endif()
-
-if("${CMAKE_GENERATOR}" MATCHES "Xcode")
- set(CMAKE_OBJCXX_COMPILER_XCODE_TYPE sourcecode.cpp.objcpp)
-else()
- if(NOT CMAKE_OBJCXX_COMPILER)
- set(CMAKE_OBJCXX_COMPILER_INIT NOTFOUND)
-
- # prefer the environment variable OBJCXX
- if($ENV{OBJCXX} MATCHES ".+")
- get_filename_component(CMAKE_OBJCXX_COMPILER_INIT $ENV{OBJCXX} PROGRAM PROGRAM_ARGS CMAKE_OBJCXX_FLAGS_ENV_INIT)
- if(CMAKE_OBJCXX_FLAGS_ENV_INIT)
- set(CMAKE_OBJCXX_COMPILER_ARG1 "${CMAKE_OBJCXX_FLAGS_ENV_INIT}" CACHE STRING "First argument to Objective-C++ compiler")
- endif()
- if(NOT EXISTS ${CMAKE_OBJCXX_COMPILER_INIT})
- message(FATAL_ERROR "Could not find compiler set in environment variable OBJCXX:\n$ENV{OBJCXX}.\n${CMAKE_OBJCXX_COMPILER_INIT}")
- endif()
- endif()
-
- # next prefer the generator specified compiler
- if(CMAKE_GENERATOR_OBJCXX)
- if(NOT CMAKE_OBJCXX_COMPILER_INIT)
- set(CMAKE_OBJCXX_COMPILER_INIT ${CMAKE_GENERATOR_OBJCXX})
- endif()
- endif()
-
- # finally list compilers to try
- if(NOT CMAKE_OBJCXX_COMPILER_INIT)
- set(CMAKE_OBJCXX_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ clang++)
- endif()
-
- _cmake_find_compiler(OBJCXX)
-
- else()
- # we only get here if CMAKE_OBJCXX_COMPILER was specified using -D or a pre-made CMakeCache.txt
- # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
- # if CMAKE_OBJCXX_COMPILER is a list of length 2, use the first item as
- # CMAKE_OBJCXX_COMPILER and the 2nd one as CMAKE_OBJCXX_COMPILER_ARG1
-
- list(LENGTH CMAKE_OBJCXX_COMPILER _CMAKE_OBJCXX_COMPILER_LIST_LENGTH)
- if("${_CMAKE_OBJCXX_COMPILER_LIST_LENGTH}" EQUAL 2)
- list(GET CMAKE_OBJCXX_COMPILER 1 CMAKE_OBJCXX_COMPILER_ARG1)
- list(GET CMAKE_OBJCXX_COMPILER 0 CMAKE_OBJCXX_COMPILER)
- endif()
-
- # if a compiler was specified by the user but without path,
- # now try to find it with the full path
- # if it is found, force it into the cache,
- # if not, don't overwrite the setting (which was given by the user) with "NOTFOUND"
- # if the C compiler already had a path, reuse it for searching the CXX compiler
- get_filename_component(_CMAKE_USER_OBJCXX_COMPILER_PATH "${CMAKE_OBJCXX_COMPILER}" PATH)
- if(NOT _CMAKE_USER_OBJCXX_COMPILER_PATH)
- find_program(CMAKE_OBJCXX_COMPILER_WITH_PATH NAMES ${CMAKE_OBJCXX_COMPILER})
- if(CMAKE_OBJCXX_COMPILER_WITH_PATH)
- set(CMAKE_OBJCXX_COMPILER ${CMAKE_OBJCXX_COMPILER_WITH_PATH} CACHE STRING "Objective-C++ compiler" FORCE)
- endif()
- unset(CMAKE_OBJCXX_COMPILER_WITH_PATH CACHE)
- endif()
-
- endif()
- mark_as_advanced(CMAKE_OBJCXX_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 file.
- set(CMAKE_OBJCXX_COMPILER_ID_TEST_FLAGS_FIRST)
- set(CMAKE_OBJCXX_COMPILER_ID_TEST_FLAGS
- # Try compiling to an object file only.
- "-c"
-
- # ARMClang need target options
- "--target=arm-arm-none-eabi -mcpu=cortex-m3"
- )
-endif()
-
-# Build a small source file to identify the compiler.
-if(NOT CMAKE_OBJCXX_COMPILER_ID_RUN)
- set(CMAKE_OBJCXX_COMPILER_ID_RUN 1)
-
- # Try to identify the compiler.
- set(CMAKE_OBJCXX_COMPILER_ID)
- file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
- CMAKE_OBJCXX_COMPILER_ID_PLATFORM_CONTENT)
-
- # Match the link line from xcodebuild output of the form
- # Ld ...
- # ...
- # /path/to/cc ...CompilerIdOBJCXX/...
- # to extract the compiler front-end for the language.
- set(CMAKE_OBJCXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdOBJCXX/(\\./)?(CompilerIdOBJCXX.(framework|xctest)/)?CompilerIdOBJCXX[ \t\n\\\"]")
- set(CMAKE_OBJCXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
-
- include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
- CMAKE_DETERMINE_COMPILER_ID(OBJCXX OBJCXXFLAGS CMakeOBJCXXCompilerId.mm)
-
- # Set old compiler and platform id variables.
- if(CMAKE_OBJCXX_COMPILER_ID MATCHES "GNU")
- set(CMAKE_COMPILER_IS_GNUOBJCXX 1)
- endif()
- if(CMAKE_OBJCXX_COMPILER_ID MATCHES "Clang")
- set(CMAKE_COMPILER_IS_CLANGOBJCXX 1)
- endif()
-endif()
-
-if (NOT _CMAKE_TOOLCHAIN_LOCATION)
- get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_OBJCXX_COMPILER}" PATH)
-endif ()
-
-# if we have a g++ cross compiler, they have usually some prefix, like
-# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++ , 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_OBJCXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC")
- get_filename_component(COMPILER_BASENAME "${CMAKE_OBJCXX_COMPILER}" NAME)
- if (COMPILER_BASENAME MATCHES "^(.+-)(clan)?[gc]\\+\\+(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
- set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
- elseif("${CMAKE_OBJCXX_COMPILER_ID}" MATCHES "Clang")
- if(CMAKE_OBJCXX_COMPILER_TARGET)
- set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_OBJCXX_COMPILER_TARGET}-)
- endif()
- elseif(COMPILER_BASENAME MATCHES "QCC(\\.exe)?$")
- if(CMAKE_OBJCXX_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)")
- set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
- endif()
- 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 "OBJCXX")
-include(CMakeFindBinUtils)
-include(Compiler/${CMAKE_OBJCXX_COMPILER_ID}-FindBinUtils OPTIONAL)
-unset(_CMAKE_PROCESSING_LANGUAGE)
-
-if(CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID)
- set(_SET_CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID
- "set(CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID ${CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID})")
-else()
- set(_SET_CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID "")
-endif()
-
-if(CMAKE_OBJCXX_XCODE_ARCHS)
- set(SET_CMAKE_XCODE_ARCHS
- "set(CMAKE_XCODE_ARCHS \"${CMAKE_OBJCXX_XCODE_ARCHS}\")")
-endif()
-
-# configure all variables set in this file
-configure_file(${CMAKE_ROOT}/Modules/CMakeOBJCXXCompiler.cmake.in
- ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake
- @ONLY
- )
-
-set(CMAKE_OBJCXX_COMPILER_ENV_VAR "OBJCXX")
diff --git a/share/cmake-3.17/Modules/CMakeFindBinUtils.cmake b/share/cmake-3.17/Modules/CMakeFindBinUtils.cmake
deleted file mode 100644
index c23e447..0000000
--- a/share/cmake-3.17/Modules/CMakeFindBinUtils.cmake
+++ /dev/null
@@ -1,143 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# search for additional tools required for C/C++ (and other languages ?)
-#
-# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
-# as prefix for the tools (e.g. arm-elf-gcc etc.)
-# If the cmake variable _CMAKE_TOOLCHAIN_LOCATION is set, the compiler is
-# searched only there. The other tools are at first searched there, then
-# also in the default locations.
-#
-# Sets the following variables:
-# CMAKE_AR
-# CMAKE_RANLIB
-# CMAKE_LINKER
-# CMAKE_MT
-# CMAKE_STRIP
-# CMAKE_INSTALL_NAME_TOOL
-
-# on UNIX, cygwin and mingw
-
-# Resolve full path of CMAKE_TOOL from user-defined name and SEARCH_PATH.
-function(__resolve_tool_path CMAKE_TOOL SEARCH_PATH DOCSTRING)
-
- if(${CMAKE_TOOL})
- # We only get here if CMAKE_TOOL was
- # specified using -D or a pre-made CMakeCache.txt (e.g. via ctest)
- # or set in CMAKE_TOOLCHAIN_FILE.
-
- get_filename_component(_CMAKE_USER_TOOL_PATH "${${CMAKE_TOOL}}" DIRECTORY)
- # Is CMAKE_TOOL a user-defined name instead of a full path?
- if(NOT _CMAKE_USER_TOOL_PATH)
-
- # Find CMAKE_TOOL in the SEARCH_PATH directory by user-defined name.
- find_program(_CMAKE_TOOL_WITH_PATH NAMES ${${CMAKE_TOOL}} HINTS ${SEARCH_PATH})
- if(_CMAKE_TOOL_WITH_PATH)
-
- # Overwrite CMAKE_TOOL with full path found in SEARCH_PATH.
- set(${CMAKE_TOOL} ${_CMAKE_TOOL_WITH_PATH} PARENT_SCOPE)
-
- get_property(_CMAKE_TOOL_CACHED CACHE ${CMAKE_TOOL} PROPERTY TYPE)
- # If CMAKE_TOOL is present in the CMake Cache, then overwrit it as well.
- if(_CMAKE_TOOL_CACHED)
- set(${CMAKE_TOOL} "${_CMAKE_TOOL_WITH_PATH}" CACHE STRING ${DOCSTRING} FORCE)
- endif()
-
- endif()
- unset(_CMAKE_TOOL_WITH_PATH CACHE)
-
- endif()
-
- endif()
-
-endfunction()
-
-__resolve_tool_path(CMAKE_LINKER "${_CMAKE_TOOLCHAIN_LOCATION}" "Default Linker")
-__resolve_tool_path(CMAKE_MT "${_CMAKE_TOOLCHAIN_LOCATION}" "Default Manifest Tool")
-
-set(_CMAKE_TOOL_VARS "")
-
-# if it's the MS C/CXX compiler, search for link
-if(("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC" AND
- ("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC"
- OR NOT "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xClang"))
- OR "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xMSVC"
- OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xPGI")
- OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xNVIDIA")
- OR (CMAKE_GENERATOR MATCHES "Visual Studio"
- AND NOT CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android"))
-
- if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xClang")
- find_program(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm llvm-nm HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- set(_CMAKE_ADDITIONAL_LINKER_NAMES "lld-link")
- endif()
-
- find_program(CMAKE_LINKER NAMES ${_CMAKE_ADDITIONAL_LINKER_NAMES} link HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- find_program(CMAKE_MT NAMES mt HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
-
- list(APPEND _CMAKE_TOOL_VARS LINKER MT)
-
-# in all other cases search for ar, ranlib, etc.
-else()
- if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN)
- set(_CMAKE_TOOLCHAIN_LOCATION ${_CMAKE_TOOLCHAIN_LOCATION} ${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}/bin)
- endif()
- if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN)
- set(_CMAKE_TOOLCHAIN_LOCATION ${_CMAKE_TOOLCHAIN_LOCATION} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}/bin)
- endif()
-
- if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL Clang)
- set(_CMAKE_ADDITIONAL_AR_NAMES "llvm-ar")
- set(_CMAKE_ADDITIONAL_RANLIB_NAMES "llvm-ranlib")
- set(_CMAKE_ADDITIONAL_STRIP_NAMES "llvm-strip")
- set(_CMAKE_ADDITIONAL_LINKER_NAMES "ld.lld")
- set(_CMAKE_ADDITIONAL_NM_NAMES "llvm-nm")
- set(_CMAKE_ADDITIONAL_OBJDUMP_NAMES "llvm-objdump")
- set(_CMAKE_ADDITIONAL_OBJCOPY_NAMES "llvm-objcopy")
- set(_CMAKE_ADDITIONAL_READELF_NAMES "llvm-readelf")
- set(_CMAKE_ADDITIONAL_DLLTOOL_NAMES "llvm-dlltool")
- set(_CMAKE_ADDITIONAL_ADDR2LINE_NAMES "llvm-addr2line")
- endif()
-
- find_program(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar${_CMAKE_TOOLCHAIN_SUFFIX} ${_CMAKE_ADDITIONAL_AR_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
-
- find_program(CMAKE_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ranlib ${_CMAKE_ADDITIONAL_RANLIB_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- if(NOT CMAKE_RANLIB)
- set(CMAKE_RANLIB : CACHE INTERNAL "noop for ranlib")
- endif()
-
-
- find_program(CMAKE_STRIP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}strip${_CMAKE_TOOLCHAIN_SUFFIX} ${_CMAKE_ADDITIONAL_STRIP_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- find_program(CMAKE_LINKER NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ld ${_CMAKE_ADDITIONAL_LINKER_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- find_program(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm ${_CMAKE_ADDITIONAL_NM_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- find_program(CMAKE_OBJDUMP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objdump ${_CMAKE_ADDITIONAL_OBJDUMP_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- find_program(CMAKE_OBJCOPY NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objcopy ${_CMAKE_ADDITIONAL_OBJCOPY_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- find_program(CMAKE_READELF NAMES ${_CMAKE_TOOLCHAIN_PREFIX}readelf ${_CMAKE_ADDITIONAL_READELF_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- find_program(CMAKE_DLLTOOL NAMES ${_CMAKE_TOOLCHAIN_PREFIX}dlltool ${_CMAKE_ADDITIONAL_DLLTOOL_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
- find_program(CMAKE_ADDR2LINE NAMES ${_CMAKE_TOOLCHAIN_PREFIX}addr2line ${_CMAKE_ADDITIONAL_ADDR2LINE_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
-
- list(APPEND _CMAKE_TOOL_VARS AR RANLIB STRIP LINKER NM OBJDUMP OBJCOPY READELF DLLTOOL ADDR2LINE)
-endif()
-
-if(CMAKE_PLATFORM_HAS_INSTALLNAME)
- find_program(CMAKE_INSTALL_NAME_TOOL NAMES ${_CMAKE_TOOLCHAIN_PREFIX}install_name_tool HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
-
- if(NOT CMAKE_INSTALL_NAME_TOOL)
- message(FATAL_ERROR "Could not find install_name_tool, please check your installation.")
- endif()
-
- list(APPEND _CMAKE_TOOL_VARS INSTALL_NAME_TOOL)
-endif()
-
-# Mark any tool cache entries as advanced.
-foreach(var IN LISTS _CMAKE_TOOL_VARS)
- get_property(_CMAKE_TOOL_CACHED CACHE CMAKE_${var} PROPERTY TYPE)
- if(_CMAKE_TOOL_CACHED)
- mark_as_advanced(CMAKE_${var})
- endif()
- unset(_CMAKE_ADDITIONAL_${var}_NAMES)
-endforeach()
-unset(_CMAKE_TOOL_VARS)
-unset(_CMAKE_TOOL_CACHED)
diff --git a/share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake b/share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake
deleted file mode 100644
index 199005d..0000000
--- a/share/cmake-3.17/Modules/CMakeFindEclipseCDT4.cmake
+++ /dev/null
@@ -1,89 +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 included in CMakeSystemSpecificInformation.cmake if
-# the Eclipse CDT4 extra generator has been selected.
-
-find_program(CMAKE_ECLIPSE_EXECUTABLE NAMES eclipse DOC "The Eclipse executable")
-
-function(_FIND_ECLIPSE_VERSION)
- # This code is in a function so the variables used here have only local scope
-
- # Set up a map with the names of the Eclipse releases:
- set(_ECLIPSE_VERSION_NAME_ "Unknown" )
- set(_ECLIPSE_VERSION_NAME_3.2 "Callisto" )
- set(_ECLIPSE_VERSION_NAME_3.3 "Europa" )
- set(_ECLIPSE_VERSION_NAME_3.4 "Ganymede" )
- set(_ECLIPSE_VERSION_NAME_3.5 "Galileo" )
- set(_ECLIPSE_VERSION_NAME_3.6 "Helios" )
- set(_ECLIPSE_VERSION_NAME_3.7 "Indigo" )
- set(_ECLIPSE_VERSION_NAME_4.2 "Juno" )
- set(_ECLIPSE_VERSION_NAME_4.3 "Kepler" )
- set(_ECLIPSE_VERSION_NAME_4.4 "Luna" )
- set(_ECLIPSE_VERSION_NAME_4.5 "Mars" )
-
- if(NOT DEFINED CMAKE_ECLIPSE_VERSION)
- if(CMAKE_ECLIPSE_EXECUTABLE)
- # use REALPATH to resolve symlinks (https://gitlab.kitware.com/cmake/cmake/issues/13036)
- get_filename_component(_REALPATH_CMAKE_ECLIPSE_EXECUTABLE "${CMAKE_ECLIPSE_EXECUTABLE}" REALPATH)
- get_filename_component(_ECLIPSE_DIR "${_REALPATH_CMAKE_ECLIPSE_EXECUTABLE}" PATH)
- file(GLOB _ECLIPSE_FEATURE_DIR "${_ECLIPSE_DIR}/features/org.eclipse.platform*")
- if(APPLE AND NOT _ECLIPSE_FEATURE_DIR)
- file(GLOB _ECLIPSE_FEATURE_DIR "${_ECLIPSE_DIR}/../../../features/org.eclipse.platform*")
- endif()
- if("${_ECLIPSE_FEATURE_DIR}" MATCHES ".+org.eclipse.platform_([0-9]+\\.[0-9]+).+")
- set(_ECLIPSE_VERSION ${CMAKE_MATCH_1})
- endif()
- endif()
-
- if(_ECLIPSE_VERSION)
- message(STATUS "Found Eclipse version ${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}})")
- else()
- set(_ECLIPSE_VERSION "3.6" )
- message(STATUS "Could not determine Eclipse version, assuming at least ${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}}). Adjust CMAKE_ECLIPSE_VERSION if this is wrong.")
- endif()
-
- set(CMAKE_ECLIPSE_VERSION "${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}})" CACHE STRING "The version of Eclipse. If Eclipse has not been found, 3.6 (Helios) is assumed.")
- else()
- message(STATUS "Eclipse version is set to ${CMAKE_ECLIPSE_VERSION}. Adjust CMAKE_ECLIPSE_VERSION if this is wrong.")
- endif()
-
- set_property(CACHE CMAKE_ECLIPSE_VERSION PROPERTY STRINGS "3.2 (${_ECLIPSE_VERSION_NAME_3.2})"
- "3.3 (${_ECLIPSE_VERSION_NAME_3.3})"
- "3.4 (${_ECLIPSE_VERSION_NAME_3.4})"
- "3.5 (${_ECLIPSE_VERSION_NAME_3.5})"
- "3.6 (${_ECLIPSE_VERSION_NAME_3.6})"
- "3.7 (${_ECLIPSE_VERSION_NAME_3.7})"
- "4.2 (${_ECLIPSE_VERSION_NAME_4.2})"
- "4.3 (${_ECLIPSE_VERSION_NAME_4.3})"
- "4.4 (${_ECLIPSE_VERSION_NAME_4.4})"
- "4.5 (${_ECLIPSE_VERSION_NAME_4.5})"
- )
-endfunction()
-
-_find_eclipse_version()
-
-# Try to find out how many CPUs we have and set the -j argument for make accordingly
-set(_CMAKE_ECLIPSE_INITIAL_MAKE_ARGS "")
-
-include(ProcessorCount)
-processorcount(_CMAKE_ECLIPSE_PROCESSOR_COUNT)
-
-# Only set -j if we are under UNIX and if the make-tool used actually has "make" in the name
-# (we may also get here in the future e.g. for ninja)
-if("${_CMAKE_ECLIPSE_PROCESSOR_COUNT}" GREATER 1 AND CMAKE_HOST_UNIX AND "${CMAKE_MAKE_PROGRAM}" MATCHES make)
- set(_CMAKE_ECLIPSE_INITIAL_MAKE_ARGS "-j${_CMAKE_ECLIPSE_PROCESSOR_COUNT}")
-endif()
-
-# This variable is used by the Eclipse generator and appended to the make invocation commands.
-set(CMAKE_ECLIPSE_MAKE_ARGUMENTS "${_CMAKE_ECLIPSE_INITIAL_MAKE_ARGS}" CACHE STRING "Additional command line arguments when Eclipse invokes make. Enter e.g. -j<some_number> to get parallel builds")
-
-set(CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES TRUE CACHE BOOL "If disabled, CMake will not generate linked resource to the subprojects and to the source files within targets")
-
-# This variable is used by the Eclipse generator in out-of-source builds only.
-set(CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT FALSE CACHE BOOL "If enabled, CMake will generate a source project for Eclipse in CMAKE_SOURCE_DIR")
-mark_as_advanced(CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT)
-
-# Determine builtin macros and include dirs:
-include(${CMAKE_CURRENT_LIST_DIR}/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake)
diff --git a/share/cmake-3.17/Modules/CMakeFindFrameworks.cmake b/share/cmake-3.17/Modules/CMakeFindFrameworks.cmake
deleted file mode 100644
index 06c05fb..0000000
--- a/share/cmake-3.17/Modules/CMakeFindFrameworks.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.
-
-#[=======================================================================[.rst:
-CMakeFindFrameworks
--------------------
-
-helper module to find OSX frameworks
-
-This module reads hints about search locations from variables::
-
- CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS - Extra directories
-#]=======================================================================]
-
-if(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED)
- set(CMAKE_FIND_FRAMEWORKS_INCLUDED 1)
- macro(CMAKE_FIND_FRAMEWORKS fwk)
- set(${fwk}_FRAMEWORKS)
- if(APPLE)
- foreach(dir
- ~/Library/Frameworks/${fwk}.framework
- /usr/local/Frameworks/${fwk}.framework
- /Library/Frameworks/${fwk}.framework
- /System/Library/Frameworks/${fwk}.framework
- /Network/Library/Frameworks/${fwk}.framework
- ${CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS})
- if(EXISTS ${dir})
- set(${fwk}_FRAMEWORKS ${${fwk}_FRAMEWORKS} ${dir})
- endif()
- endforeach()
- endif()
- endmacro()
-endif()
diff --git a/share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in b/share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in
deleted file mode 100644
index 34f44aa..0000000
--- a/share/cmake-3.17/Modules/CMakeFortranCompiler.cmake.in
+++ /dev/null
@@ -1,68 +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_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.17/Modules/CMakeFortranInformation.cmake b/share/cmake-3.17/Modules/CMakeFortranInformation.cmake
deleted file mode 100644
index e80716b..0000000
--- a/share/cmake-3.17/Modules/CMakeFortranInformation.cmake
+++ /dev/null
@@ -1,222 +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")
-
-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
deleted file mode 100644
index f539b46..0000000
--- a/share/cmake-3.17/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" "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/CMakeOBJCInformation.cmake b/share/cmake-3.17/Modules/CMakeOBJCInformation.cmake
deleted file mode 100644
index 15a3311..0000000
--- a/share/cmake-3.17/Modules/CMakeOBJCInformation.cmake
+++ /dev/null
@@ -1,193 +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()
-
-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.17/Modules/CMakeOBJCXXInformation.cmake b/share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake
deleted file mode 100644
index cb349d7..0000000
--- a/share/cmake-3.17/Modules/CMakeOBJCXXInformation.cmake
+++ /dev/null
@@ -1,278 +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()
-
-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.17/Modules/CMakePlatformId.h.in b/share/cmake-3.17/Modules/CMakePlatformId.h.in
deleted file mode 100644
index 64a00b3..0000000
--- a/share/cmake-3.17/Modules/CMakePlatformId.h.in
+++ /dev/null
@@ -1,283 +0,0 @@
-#define STRINGIFY_HELPER(X) #X
-#define STRINGIFY(X) STRINGIFY_HELPER(X)
-
-/* Identify known platforms by name. */
-#if defined(__linux) || defined(__linux__) || defined(linux)
-# define PLATFORM_ID "Linux"
-
-#elif defined(__CYGWIN__)
-# define PLATFORM_ID "Cygwin"
-
-#elif defined(__MINGW32__)
-# define PLATFORM_ID "MinGW"
-
-#elif defined(__APPLE__)
-# define PLATFORM_ID "Darwin"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-# define PLATFORM_ID "Windows"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD)
-# define PLATFORM_ID "FreeBSD"
-
-#elif defined(__NetBSD__) || defined(__NetBSD)
-# define PLATFORM_ID "NetBSD"
-
-#elif defined(__OpenBSD__) || defined(__OPENBSD)
-# define PLATFORM_ID "OpenBSD"
-
-#elif defined(__sun) || defined(sun)
-# define PLATFORM_ID "SunOS"
-
-#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
-# define PLATFORM_ID "AIX"
-
-#elif defined(__hpux) || defined(__hpux__)
-# define PLATFORM_ID "HP-UX"
-
-#elif defined(__HAIKU__)
-# define PLATFORM_ID "Haiku"
-
-#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
-# define PLATFORM_ID "BeOS"
-
-#elif defined(__QNX__) || defined(__QNXNTO__)
-# define PLATFORM_ID "QNX"
-
-#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
-# define PLATFORM_ID "Tru64"
-
-#elif defined(__riscos) || defined(__riscos__)
-# define PLATFORM_ID "RISCos"
-
-#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
-# define PLATFORM_ID "SINIX"
-
-#elif defined(__UNIX_SV__)
-# define PLATFORM_ID "UNIX_SV"
-
-#elif defined(__bsdos__)
-# define PLATFORM_ID "BSDOS"
-
-#elif defined(_MPRAS) || defined(MPRAS)
-# define PLATFORM_ID "MP-RAS"
-
-#elif defined(__osf) || defined(__osf__)
-# define PLATFORM_ID "OSF1"
-
-#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
-# define PLATFORM_ID "SCO_SV"
-
-#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
-# define PLATFORM_ID "ULTRIX"
-
-#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
-# define PLATFORM_ID "Xenix"
-
-#elif defined(__WATCOMC__)
-# if defined(__LINUX__)
-# define PLATFORM_ID "Linux"
-
-# elif defined(__DOS__)
-# define PLATFORM_ID "DOS"
-
-# elif defined(__OS2__)
-# define PLATFORM_ID "OS2"
-
-# elif defined(__WINDOWS__)
-# define PLATFORM_ID "Windows3x"
-
-# else /* unknown platform */
-# define PLATFORM_ID
-# endif
-
-#elif defined(__INTEGRITY)
-# if defined(INT_178B)
-# define PLATFORM_ID "Integrity178"
-
-# else /* regular Integrity */
-# define PLATFORM_ID "Integrity"
-# endif
-
-#else /* unknown platform */
-# define PLATFORM_ID
-
-#endif
-
-/* For windows compilers MSVC and Intel we can determine
- the architecture of the compiler being used. This is because
- the compilers do not have flags that can change the architecture,
- but rather depend on which compiler is being used
-*/
-#if defined(_WIN32) && defined(_MSC_VER)
-# if defined(_M_IA64)
-# define ARCHITECTURE_ID "IA64"
-
-# elif defined(_M_X64) || defined(_M_AMD64)
-# define ARCHITECTURE_ID "x64"
-
-# elif defined(_M_IX86)
-# define ARCHITECTURE_ID "X86"
-
-# elif defined(_M_ARM64)
-# define ARCHITECTURE_ID "ARM64"
-
-# elif defined(_M_ARM)
-# if _M_ARM == 4
-# define ARCHITECTURE_ID "ARMV4I"
-# elif _M_ARM == 5
-# define ARCHITECTURE_ID "ARMV5I"
-# else
-# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
-# endif
-
-# elif defined(_M_MIPS)
-# define ARCHITECTURE_ID "MIPS"
-
-# elif defined(_M_SH)
-# define ARCHITECTURE_ID "SHx"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__WATCOMC__)
-# if defined(_M_I86)
-# define ARCHITECTURE_ID "I86"
-
-# elif defined(_M_IX86)
-# define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# if defined(__ICCARM__)
-# define ARCHITECTURE_ID "ARM"
-
-# elif defined(__ICCRX__)
-# define ARCHITECTURE_ID "RX"
-
-# elif defined(__ICCRH850__)
-# define ARCHITECTURE_ID "RH850"
-
-# elif defined(__ICCRL78__)
-# define ARCHITECTURE_ID "RL78"
-
-# elif defined(__ICCRISCV__)
-# define ARCHITECTURE_ID "RISCV"
-
-# elif defined(__ICCAVR__)
-# define ARCHITECTURE_ID "AVR"
-
-# elif defined(__ICC430__)
-# define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__ICCV850__)
-# define ARCHITECTURE_ID "V850"
-
-# elif defined(__ICC8051__)
-# define ARCHITECTURE_ID "8051"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__ghs__)
-# if defined(__PPC64__)
-# define ARCHITECTURE_ID "PPC64"
-
-# elif defined(__ppc__)
-# define ARCHITECTURE_ID "PPC"
-
-# elif defined(__ARM__)
-# define ARCHITECTURE_ID "ARM"
-
-# elif defined(__x86_64__)
-# define ARCHITECTURE_ID "x64"
-
-# elif defined(__i386__)
-# define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-#else
-# define ARCHITECTURE_ID
-#endif
-
-/* Convert integer to decimal digit literals. */
-#define DEC(n) \
- ('0' + (((n) / 10000000)%10)), \
- ('0' + (((n) / 1000000)%10)), \
- ('0' + (((n) / 100000)%10)), \
- ('0' + (((n) / 10000)%10)), \
- ('0' + (((n) / 1000)%10)), \
- ('0' + (((n) / 100)%10)), \
- ('0' + (((n) / 10)%10)), \
- ('0' + ((n) % 10))
-
-/* Convert integer to hex digit literals. */
-#define HEX(n) \
- ('0' + ((n)>>28 & 0xF)), \
- ('0' + ((n)>>24 & 0xF)), \
- ('0' + ((n)>>20 & 0xF)), \
- ('0' + ((n)>>16 & 0xF)), \
- ('0' + ((n)>>12 & 0xF)), \
- ('0' + ((n)>>8 & 0xF)), \
- ('0' + ((n)>>4 & 0xF)), \
- ('0' + ((n) & 0xF))
-
-/* Construct a string literal encoding the version number components. */
-#ifdef COMPILER_VERSION_MAJOR
-char const info_version[] = {
- 'I', 'N', 'F', 'O', ':',
- 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
- COMPILER_VERSION_MAJOR,
-# ifdef COMPILER_VERSION_MINOR
- '.', COMPILER_VERSION_MINOR,
-# ifdef COMPILER_VERSION_PATCH
- '.', COMPILER_VERSION_PATCH,
-# ifdef COMPILER_VERSION_TWEAK
- '.', COMPILER_VERSION_TWEAK,
-# endif
-# endif
-# endif
- ']','\0'};
-#endif
-
-/* Construct a string literal encoding the internal version number. */
-#ifdef COMPILER_VERSION_INTERNAL
-char const info_version_internal[] = {
- 'I', 'N', 'F', 'O', ':',
- 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
- 'i','n','t','e','r','n','a','l','[',
- COMPILER_VERSION_INTERNAL,']','\0'};
-#endif
-
-/* Construct a string literal encoding the version number components. */
-#ifdef SIMULATE_VERSION_MAJOR
-char const info_simulate_version[] = {
- 'I', 'N', 'F', 'O', ':',
- 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
- SIMULATE_VERSION_MAJOR,
-# ifdef SIMULATE_VERSION_MINOR
- '.', SIMULATE_VERSION_MINOR,
-# ifdef SIMULATE_VERSION_PATCH
- '.', SIMULATE_VERSION_PATCH,
-# ifdef SIMULATE_VERSION_TWEAK
- '.', SIMULATE_VERSION_TWEAK,
-# endif
-# endif
-# endif
- ']','\0'};
-#endif
-
-/* 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_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
-char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
-
diff --git a/share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake b/share/cmake-3.17/Modules/CMakePrintSystemInformation.cmake
deleted file mode 100644
index 8d5cf5c..0000000
--- a/share/cmake-3.17/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 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.17/Modules/CMakeRCInformation.cmake b/share/cmake-3.17/Modules/CMakeRCInformation.cmake
deleted file mode 100644
index 7c3a5ab..0000000
--- a/share/cmake-3.17/Modules/CMakeRCInformation.cmake
+++ /dev/null
@@ -1,50 +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 Windows Resource Compiler.
-# It also loads the available platform file for the system-compiler
-# if it exists.
-
-# make sure we don't use CMAKE_BASE_NAME from somewhere else
-set(CMAKE_BASE_NAME)
-if(CMAKE_RC_COMPILER MATCHES "windres[^/]*$")
- set(CMAKE_BASE_NAME "windres")
-else()
- get_filename_component(CMAKE_BASE_NAME ${CMAKE_RC_COMPILER} NAME_WE)
-endif()
-set(CMAKE_SYSTEM_AND_RC_COMPILER_INFO_FILE
- ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)
-include(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
-
-# 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()
-
-set(CMAKE_RC_FLAGS_INIT "$ENV{RCFLAGS} ${CMAKE_RC_FLAGS_INIT}")
-
-cmake_initialize_per_config_variable(CMAKE_RC_FLAGS "Flags for Windows Resource Compiler")
-
-# These are the only types of flags that should be passed to the rc
-# command, if COMPILE_FLAGS is used on a target this will be used
-# to filter out any other flags
-set(CMAKE_RC_FLAG_REGEX "^[-/](D|I)")
-
-# now define the following rule variables
-# CMAKE_RC_COMPILE_OBJECT
-set(CMAKE_INCLUDE_FLAG_RC "-I")
-# compile a Resource file into an object file
-if(NOT CMAKE_RC_COMPILE_OBJECT)
- set(CMAKE_RC_COMPILE_OBJECT
- "<CMAKE_RC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> /fo <OBJECT> <SOURCE>")
-endif()
-
-# set this variable so we can avoid loading this more than once.
-set(CMAKE_RC_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestCCompiler.cmake
deleted file mode 100644
index eadea89..0000000
--- a/share/cmake-3.17/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)
- 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/CMakeTestCUDACompiler.cmake b/share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake
deleted file mode 100644
index 05811a8..0000000
--- a/share/cmake-3.17/Modules/CMakeTestCUDACompiler.cmake
+++ /dev/null
@@ -1,103 +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)
- 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
deleted file mode 100644
index bd42153..0000000
--- a/share/cmake-3.17/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)
- 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/CMakeTestFortranCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestFortranCompiler.cmake
deleted file mode 100644
index 7461f9c..0000000
--- a/share/cmake-3.17/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)
- 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.17/Modules/CMakeTestOBJCCompiler.cmake b/share/cmake-3.17/Modules/CMakeTestOBJCCompiler.cmake
deleted file mode 100644
index bcc6fae..0000000
--- a/share/cmake-3.17/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)
- 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
deleted file mode 100644
index 83227d5..0000000
--- a/share/cmake-3.17/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)
- 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.17/Modules/CPack.cmake b/share/cmake-3.17/Modules/CPack.cmake
deleted file mode 100644
index baf7e47..0000000
--- a/share/cmake-3.17/Modules/CPack.cmake
+++ /dev/null
@@ -1,809 +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
------
-
-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.17/Modules/CPackComponent.cmake b/share/cmake-3.17/Modules/CPackComponent.cmake
deleted file mode 100644
index 211d767..0000000
--- a/share/cmake-3.17/Modules/CPackComponent.cmake
+++ /dev/null
@@ -1,541 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CPackComponent
---------------
-
-Build binary and source package installers
-
-Variables concerning CPack Components
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The CPackComponent module is the module which handles the component
-part of CPack. See CPack module for general information about CPack.
-
-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.
-The contents of each of the components are identified by the COMPONENT
-argument of CMake's INSTALL command. These components can be
-annotated with user-friendly names and descriptions, inter-component
-dependencies, etc., and grouped in various ways to customize the
-resulting installer. See the cpack_add_* commands, described below,
-for more information about component-specific installations.
-
-Component-specific installation allows users to select specific sets
-of components to install during the install process. Installation
-components are identified by the COMPONENT argument of CMake's INSTALL
-commands, and should be further described by the following CPack
-commands:
-
-.. variable:: CPACK_COMPONENTS_ALL
-
- The list of component to install.
-
- The default value of this variable is computed by CPack and contains all
- components defined by the project. The user may set it to only include the
- specified components.
-
- Instead of specifying all the desired components, it is possible to obtain a
- list of all defined components and then remove the unwanted ones from the
- list. The :command:`get_cmake_property` command can be used to obtain the
- ``COMPONENTS`` property, then the :command:`list(REMOVE_ITEM)` command can be
- used to remove the unwanted ones. For example, to use all defined components
- except ``foo`` and ``bar``::
-
- get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
- list(REMOVE_ITEM CPACK_COMPONENTS_ALL "foo" "bar")
-
-.. variable:: CPACK_<GENNAME>_COMPONENT_INSTALL
-
- Enable/Disable component install for CPack generator <GENNAME>.
-
- Each CPack Generator (RPM, DEB, ARCHIVE, NSIS, DMG, etc...) has a legacy
- default behavior. e.g. RPM builds monolithic whereas NSIS builds
- component. One can change the default behavior by setting this variable to
- 0/1 or OFF/ON.
-
-.. variable:: CPACK_COMPONENTS_GROUPING
-
- Specify how components are grouped for multi-package component-aware CPack
- generators.
-
- Some generators like RPM or ARCHIVE family (TGZ, ZIP, ...) generates
- several packages files when asked for component packaging. They group
- the component differently depending on the value of this variable:
-
- * ONE_PER_GROUP (default): creates one package file per component group
- * ALL_COMPONENTS_IN_ONE : creates a single package with all (requested) components
- * IGNORE : creates one package per component, i.e. IGNORE component group
-
- One can specify different grouping for different CPack generator by
- using a CPACK_PROJECT_CONFIG_FILE.
-
-.. variable:: CPACK_COMPONENT_<compName>_DISPLAY_NAME
-
- The name to be displayed for a component.
-
-.. variable:: CPACK_COMPONENT_<compName>_DESCRIPTION
-
- The description of a component.
-
-.. variable:: CPACK_COMPONENT_<compName>_GROUP
-
- The group of a component.
-
-.. variable:: CPACK_COMPONENT_<compName>_DEPENDS
-
- The dependencies (list of components) on which this component depends.
-
-.. variable:: CPACK_COMPONENT_<compName>_HIDDEN
-
- True if this component is hidden from the user.
-
-.. variable:: CPACK_COMPONENT_<compName>_REQUIRED
-
- True if this component is required.
-
-.. variable:: CPACK_COMPONENT_<compName>_DISABLED
-
- True if this component is not selected to be installed by default.
-
-.. command:: cpack_add_component
-
-Describes a CPack installation
-component named by the COMPONENT argument to a CMake INSTALL command.
-
-::
-
- cpack_add_component(compname
- [DISPLAY_NAME name]
- [DESCRIPTION description]
- [HIDDEN | REQUIRED | DISABLED ]
- [GROUP group]
- [DEPENDS comp1 comp2 ... ]
- [INSTALL_TYPES type1 type2 ... ]
- [DOWNLOADED]
- [ARCHIVE_FILE filename]
- [PLIST filename])
-
-
-
-The cmake_add_component command describes an installation component,
-which the user can opt to install or remove as part of the graphical
-installation process. compname is the name of the component, as
-provided to the COMPONENT argument of one or more CMake INSTALL
-commands.
-
-DISPLAY_NAME is the displayed name of the component, used in graphical
-installers to display the component name. This value can be any
-string.
-
-DESCRIPTION is an extended description of the component, used in
-graphical installers to give the user additional information about the
-component. Descriptions can span multiple lines using ``\n`` as the
-line separator. Typically, these descriptions should be no more than
-a few lines long.
-
-HIDDEN indicates that this component will be hidden in the graphical
-installer, so that the user cannot directly change whether it is
-installed or not.
-
-REQUIRED indicates that this component is required, and therefore will
-always be installed. It will be visible in the graphical installer,
-but it cannot be unselected. (Typically, required components are
-shown greyed out).
-
-DISABLED indicates that this component should be disabled (unselected)
-by default. The user is free to select this component for
-installation, unless it is also HIDDEN.
-
-DEPENDS lists the components on which this component depends. If this
-component is selected, then each of the components listed must also be
-selected. The dependency information is encoded within the installer
-itself, so that users cannot install inconsistent sets of components.
-
-GROUP names the component group of which this component is a part. If
-not provided, the component will be a standalone component, not part
-of any component group. Component groups are described with the
-cpack_add_component_group command, detailed below.
-
-INSTALL_TYPES lists the installation types of which this component is
-a part. When one of these installations types is selected, this
-component will automatically be selected. Installation types are
-described with the cpack_add_install_type command, detailed below.
-
-DOWNLOADED indicates that this component should be downloaded
-on-the-fly by the installer, rather than packaged in with the
-installer itself. For more information, see the
-cpack_configure_downloads command.
-
-ARCHIVE_FILE provides a name for the archive file created by CPack to
-be used for downloaded components. If not supplied, CPack will create
-a file with some name based on CPACK_PACKAGE_FILE_NAME and the name of
-the component. See cpack_configure_downloads for more information.
-
-PLIST gives a filename that is passed to pkgbuild with the
-``--component-plist`` argument when using the productbuild generator.
-
-.. command:: cpack_add_component_group
-
-Describes a group of related CPack installation components.
-
-::
-
- cpack_add_component_group(groupname
- [DISPLAY_NAME name]
- [DESCRIPTION description]
- [PARENT_GROUP parent]
- [EXPANDED]
- [BOLD_TITLE])
-
-
-
-The cpack_add_component_group describes a group of installation
-components, which will be placed together within the listing of
-options. Typically, component groups allow the user to
-select/deselect all of the components within a single group via a
-single group-level option. Use component groups to reduce the
-complexity of installers with many options. groupname is an arbitrary
-name used to identify the group in the GROUP argument of the
-cpack_add_component command, which is used to place a component in a
-group. The name of the group must not conflict with the name of any
-component.
-
-DISPLAY_NAME is the displayed name of the component group, used in
-graphical installers to display the component group name. This value
-can be any string.
-
-DESCRIPTION is an extended description of the component group, used in
-graphical installers to give the user additional information about the
-components within that group. Descriptions can span multiple lines
-using ``\n`` as the line separator. Typically, these descriptions
-should be no more than a few lines long.
-
-PARENT_GROUP, if supplied, names the parent group of this group.
-Parent groups are used to establish a hierarchy of groups, providing
-an arbitrary hierarchy of groups.
-
-EXPANDED indicates that, by default, the group should show up as
-"expanded", so that the user immediately sees all of the components
-within the group. Otherwise, the group will initially show up as a
-single entry.
-
-BOLD_TITLE indicates that the group title should appear in bold, to
-call the user's attention to the group.
-
-.. command:: cpack_add_install_type
-
-Add a new installation type containing
-a set of predefined component selections to the graphical installer.
-
-::
-
- cpack_add_install_type(typename
- [DISPLAY_NAME name])
-
-
-
-The cpack_add_install_type command identifies a set of preselected
-components that represents a common use case for an application. For
-example, a "Developer" install type might include an application along
-with its header and library files, while an "End user" install type
-might just include the application's executable. Each component
-identifies itself with one or more install types via the INSTALL_TYPES
-argument to cpack_add_component.
-
-DISPLAY_NAME is the displayed name of the install type, which will
-typically show up in a drop-down box within a graphical installer.
-This value can be any string.
-
-.. command:: cpack_configure_downloads
-
-Configure CPack to download
-selected components on-the-fly as part of the installation process.
-
-::
-
- cpack_configure_downloads(site
- [UPLOAD_DIRECTORY dirname]
- [ALL]
- [ADD_REMOVE|NO_ADD_REMOVE])
-
-
-
-The cpack_configure_downloads command configures installation-time
-downloads of selected components. For each downloadable component,
-CPack will create an archive containing the contents of that
-component, which should be uploaded to the given site. When the user
-selects that component for installation, the installer will download
-and extract the component in place. This feature is useful for
-creating small installers that only download the requested components,
-saving bandwidth. Additionally, the installers are small enough that
-they will be installed as part of the normal installation process, and
-the "Change" button in Windows Add/Remove Programs control panel will
-allow one to add or remove parts of the application after the original
-installation. On Windows, the downloaded-components functionality
-requires the ZipDLL plug-in for NSIS, available at:
-
-::
-
- http://nsis.sourceforge.net/ZipDLL_plug-in
-
-
-
-On macOS, installers that download components on-the-fly can only
-be built and installed on system using macOS 10.5 or later.
-
-The site argument is a URL where the archives for downloadable
-components will reside, e.g.,
-https://cmake.org/files/2.6.1/installer/ All of the archives
-produced by CPack should be uploaded to that location.
-
-UPLOAD_DIRECTORY is the local directory where CPack will create the
-various archives for each of the components. The contents of this
-directory should be uploaded to a location accessible by the URL given
-in the site argument. If omitted, CPack will use the directory
-CPackUploads inside the CMake binary directory to store the generated
-archives.
-
-The ALL flag indicates that all components be downloaded. Otherwise,
-only those components explicitly marked as DOWNLOADED or that have a
-specified ARCHIVE_FILE will be downloaded. Additionally, the ALL
-option implies ADD_REMOVE (unless NO_ADD_REMOVE is specified).
-
-ADD_REMOVE indicates that CPack should install a copy of the installer
-that can be called from Windows' Add/Remove Programs dialog (via the
-"Modify" button) to change the set of installed components.
-NO_ADD_REMOVE turns off this behavior. This option is ignored on Mac
-OS X.
-#]=======================================================================]
-
-# Define var in order to avoid multiple inclusion
-if(NOT CPackComponent_CMake_INCLUDED)
-set(CPackComponent_CMake_INCLUDED 1)
-
-# Macro that appends a SET command for the given variable name (var)
-# to the macro named strvar, but only if the variable named "var"
-# has been defined. The string will eventually be appended to a CPack
-# configuration file.
-macro(cpack_append_variable_set_command var strvar)
- if (DEFINED ${var})
- string(APPEND ${strvar} "set(${var}")
- foreach(APPENDVAL ${${var}})
- string(APPEND ${strvar} " ${APPENDVAL}")
- endforeach()
- string(APPEND ${strvar} ")\n")
- endif ()
-endmacro()
-
-# Macro that appends a SET command for the given variable name (var)
-# to the macro named strvar, but only if the variable named "var"
-# has been defined and is a string. The string will eventually be
-# appended to a CPack configuration file.
-macro(cpack_append_string_variable_set_command var strvar)
- if (DEFINED ${var})
- list(LENGTH ${var} CPACK_APP_VALUE_LEN)
- if(${CPACK_APP_VALUE_LEN} EQUAL 1)
- string(APPEND ${strvar} "set(${var} \"${${var}}\")\n")
- endif()
- endif ()
-endmacro()
-
-# Macro that appends a SET command for the given list variable name (var)
-# to the macro named strvar, but only if the variable named "var"
-# has been defined. It's like add variable, but wrap each item to quotes.
-# The string will eventually be appended to a CPack configuration file.
-macro(cpack_append_list_variable_set_command var strvar)
- if (DEFINED ${var})
- string(APPEND ${strvar} "set(${var}")
- foreach(_val IN LISTS ${var})
- string(APPEND ${strvar} "\n \"${_val}\"")
- endforeach()
- string(APPEND ${strvar} ")\n")
- endif ()
-endmacro()
-
-# Macro that appends a SET command for the given variable name (var)
-# to the macro named strvar, but only if the variable named "var"
-# has been set to true. The string will eventually be
-# appended to a CPack configuration file.
-macro(cpack_append_option_set_command var strvar)
- if (${var})
- list(LENGTH ${var} CPACK_APP_VALUE_LEN)
- if(${CPACK_APP_VALUE_LEN} EQUAL 1)
- string(APPEND ${strvar} "set(${var} TRUE)\n")
- endif()
- endif ()
-endmacro()
-
-# Macro that adds a component to the CPack installer
-macro(cpack_add_component compname)
- string(TOUPPER ${compname} _CPACK_ADDCOMP_UNAME)
- cmake_parse_arguments(CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}
- "HIDDEN;REQUIRED;DISABLED;DOWNLOADED"
- "DISPLAY_NAME;DESCRIPTION;GROUP;ARCHIVE_FILE;PLIST"
- "DEPENDS;INSTALL_TYPES"
- ${ARGN}
- )
-
- if (CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DOWNLOADED)
- set(_CPACK_ADDCOMP_STR "\n# Configuration for downloaded component \"${compname}\"\n")
- else ()
- set(_CPACK_ADDCOMP_STR "\n# Configuration for component \"${compname}\"\n")
- endif ()
-
- if(NOT CPACK_MONOLITHIC_INSTALL)
- # If the user didn't set CPACK_COMPONENTS_ALL explicitly, update the
- # value of CPACK_COMPONENTS_ALL in the configuration file. This will
- # take care of any components that have been added after the CPack
- # moduled was included.
- if(NOT CPACK_COMPONENTS_ALL_SET_BY_USER)
- get_cmake_property(_CPACK_ADDCOMP_COMPONENTS COMPONENTS)
- string(APPEND _CPACK_ADDCOMP_STR "\nSET(CPACK_COMPONENTS_ALL")
- foreach(COMP ${_CPACK_ADDCOMP_COMPONENTS})
- string(APPEND _CPACK_ADDCOMP_STR " ${COMP}")
- endforeach()
- string(APPEND _CPACK_ADDCOMP_STR ")\n")
- endif()
- endif()
-
- cpack_append_string_variable_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DISPLAY_NAME
- _CPACK_ADDCOMP_STR)
- cpack_append_string_variable_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DESCRIPTION
- _CPACK_ADDCOMP_STR)
- cpack_append_variable_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_GROUP
- _CPACK_ADDCOMP_STR)
- cpack_append_variable_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DEPENDS
- _CPACK_ADDCOMP_STR)
- cpack_append_variable_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_INSTALL_TYPES
- _CPACK_ADDCOMP_STR)
- cpack_append_string_variable_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_ARCHIVE_FILE
- _CPACK_ADDCOMP_STR)
- cpack_append_option_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_HIDDEN
- _CPACK_ADDCOMP_STR)
- cpack_append_option_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_REQUIRED
- _CPACK_ADDCOMP_STR)
- cpack_append_option_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DISABLED
- _CPACK_ADDCOMP_STR)
- cpack_append_option_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DOWNLOADED
- _CPACK_ADDCOMP_STR)
- cpack_append_string_variable_set_command(
- CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_PLIST
- _CPACK_ADDCOMP_STR)
- # Backward compatibility issue.
- # Write to config iff the macros is used after CPack.cmake has been
- # included, other it's not necessary because the variables
- # will be encoded by cpack_encode_variables.
- if(CPack_CMake_INCLUDED)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_ADDCOMP_STR}")
- endif()
-endmacro()
-
-# Macro that adds a component group to the CPack installer
-macro(cpack_add_component_group grpname)
- string(TOUPPER ${grpname} _CPACK_ADDGRP_UNAME)
- cmake_parse_arguments(CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}
- "EXPANDED;BOLD_TITLE"
- "DISPLAY_NAME;DESCRIPTION;PARENT_GROUP"
- ""
- ${ARGN}
- )
-
- set(_CPACK_ADDGRP_STR "\n# Configuration for component group \"${grpname}\"\n")
- cpack_append_string_variable_set_command(
- CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_DISPLAY_NAME
- _CPACK_ADDGRP_STR)
- cpack_append_string_variable_set_command(
- CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_DESCRIPTION
- _CPACK_ADDGRP_STR)
- cpack_append_string_variable_set_command(
- CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_PARENT_GROUP
- _CPACK_ADDGRP_STR)
- cpack_append_option_set_command(
- CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_EXPANDED
- _CPACK_ADDGRP_STR)
- cpack_append_option_set_command(
- CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_BOLD_TITLE
- _CPACK_ADDGRP_STR)
- # Backward compatibility issue.
- # Write to config iff the macros is used after CPack.cmake has been
- # included, other it's not necessary because the variables
- # will be encoded by cpack_encode_variables.
- if(CPack_CMake_INCLUDED)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_ADDGRP_STR}")
- endif()
-endmacro()
-
-# Macro that adds an installation type to the CPack installer
-macro(cpack_add_install_type insttype)
- string(TOUPPER ${insttype} _CPACK_INSTTYPE_UNAME)
- cmake_parse_arguments(CPACK_INSTALL_TYPE_${_CPACK_INSTTYPE_UNAME}
- ""
- "DISPLAY_NAME"
- ""
- ${ARGN}
- )
-
- set(_CPACK_INSTTYPE_STR
- "\n# Configuration for installation type \"${insttype}\"\n")
- string(APPEND _CPACK_INSTTYPE_STR
- "list(APPEND CPACK_ALL_INSTALL_TYPES ${insttype})\n")
- cpack_append_string_variable_set_command(
- CPACK_INSTALL_TYPE_${_CPACK_INSTTYPE_UNAME}_DISPLAY_NAME
- _CPACK_INSTTYPE_STR)
- # Backward compatibility issue.
- # Write to config iff the macros is used after CPack.cmake has been
- # included, other it's not necessary because the variables
- # will be encoded by cpack_encode_variables.
- if(CPack_CMake_INCLUDED)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_INSTTYPE_STR}")
- endif()
-endmacro()
-
-macro(cpack_configure_downloads site)
- cmake_parse_arguments(CPACK_DOWNLOAD
- "ALL;ADD_REMOVE;NO_ADD_REMOVE"
- "UPLOAD_DIRECTORY"
- ""
- ${ARGN}
- )
-
- set(CPACK_CONFIG_DL_STR
- "\n# Downloaded components configuration\n")
- set(CPACK_UPLOAD_DIRECTORY ${CPACK_DOWNLOAD_UPLOAD_DIRECTORY})
- set(CPACK_DOWNLOAD_SITE ${site})
- cpack_append_string_variable_set_command(
- CPACK_DOWNLOAD_SITE
- CPACK_CONFIG_DL_STR)
- cpack_append_string_variable_set_command(
- CPACK_UPLOAD_DIRECTORY
- CPACK_CONFIG_DL_STR)
- cpack_append_option_set_command(
- CPACK_DOWNLOAD_ALL
- CPACK_CONFIG_DL_STR)
- if (${CPACK_DOWNLOAD_ALL} AND NOT ${CPACK_DOWNLOAD_NO_ADD_REMOVE})
- set(CPACK_DOWNLOAD_ADD_REMOVE ON)
- endif ()
- set(CPACK_ADD_REMOVE ${CPACK_DOWNLOAD_ADD_REMOVE})
- cpack_append_option_set_command(
- CPACK_ADD_REMOVE
- CPACK_CONFIG_DL_STR)
- # Backward compatibility issue.
- # Write to config iff the macros is used after CPack.cmake has been
- # included, other it's not necessary because the variables
- # will be encoded by cpack_encode_variables.
- if(CPack_CMake_INCLUDED)
- file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${CPACK_CONFIG_DL_STR}")
- endif()
-endmacro()
-endif()
diff --git a/share/cmake-3.17/Modules/CPackIFW.cmake b/share/cmake-3.17/Modules/CPackIFW.cmake
deleted file mode 100644
index f58f9ef..0000000
--- a/share/cmake-3.17/Modules/CPackIFW.cmake
+++ /dev/null
@@ -1,737 +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
---------
-
-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.17/Modules/CTestCoverageCollectGCOV.cmake b/share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake
deleted file mode 100644
index ff48cc2..0000000
--- a/share/cmake-3.17/Modules/CTestCoverageCollectGCOV.cmake
+++ /dev/null
@@ -1,285 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-CTestCoverageCollectGCOV
-------------------------
-
-This module provides the ``ctest_coverage_collect_gcov`` function.
-
-This function runs gcov on all .gcda files found in the binary tree
-and packages the resulting .gcov files into a tar file.
-This tarball also contains the following:
-
-* *data.json* defines the source and build directories for use by CDash.
-* *Labels.json* indicates any :prop_sf:`LABELS` that have been set on the
- source files.
-* The *uncovered* directory holds any uncovered files found by
- :variable:`CTEST_EXTRA_COVERAGE_GLOB`.
-
-After generating this tar file, it can be sent to CDash for display with the
-:command:`ctest_submit(CDASH_UPLOAD)` command.
-
-.. command:: ctest_coverage_collect_gcov
-
- ::
-
- ctest_coverage_collect_gcov(TARBALL <tarfile>
- [SOURCE <source_dir>][BUILD <build_dir>]
- [GCOV_COMMAND <gcov_command>]
- [GCOV_OPTIONS <options>...]
- )
-
- Run gcov and package a tar file for CDash. The options are:
-
- ``TARBALL <tarfile>``
- Specify the location of the ``.tar`` file to be created for later
- upload to CDash. Relative paths will be interpreted with respect
- to the top-level build directory.
-
- ``SOURCE <source_dir>``
- Specify the top-level source directory for the build.
- Default is the value of :variable:`CTEST_SOURCE_DIRECTORY`.
-
- ``BUILD <build_dir>``
- Specify the top-level build directory for the build.
- Default is the value of :variable:`CTEST_BINARY_DIRECTORY`.
-
- ``GCOV_COMMAND <gcov_command>``
- Specify the full path to the ``gcov`` command on the machine.
- Default is the value of :variable:`CTEST_COVERAGE_COMMAND`.
-
- ``GCOV_OPTIONS <options>...``
- Specify options to be passed to gcov. The ``gcov`` command
- is run as ``gcov <options>... -o <gcov-dir> <file>.gcda``.
- If not specified, the default option is just ``-b -x``.
-
- ``GLOB``
- Recursively search for .gcda files in build_dir rather than
- determining search locations by reading TargetDirectories.txt.
-
- ``DELETE``
- Delete coverage files after they've been packaged into the .tar.
-
- ``QUIET``
- Suppress non-error messages that otherwise would have been
- printed out by this function.
-#]=======================================================================]
-
-function(ctest_coverage_collect_gcov)
- set(options QUIET GLOB DELETE)
- set(oneValueArgs TARBALL SOURCE BUILD GCOV_COMMAND)
- set(multiValueArgs GCOV_OPTIONS)
- cmake_parse_arguments(GCOV "${options}" "${oneValueArgs}"
- "${multiValueArgs}" "" ${ARGN} )
- if(NOT DEFINED GCOV_TARBALL)
- message(FATAL_ERROR
- "TARBALL must be specified. for ctest_coverage_collect_gcov")
- endif()
- if(NOT DEFINED GCOV_SOURCE)
- set(source_dir "${CTEST_SOURCE_DIRECTORY}")
- else()
- set(source_dir "${GCOV_SOURCE}")
- endif()
- if(NOT DEFINED GCOV_BUILD)
- set(binary_dir "${CTEST_BINARY_DIRECTORY}")
- else()
- set(binary_dir "${GCOV_BUILD}")
- endif()
- if(NOT DEFINED GCOV_GCOV_COMMAND)
- set(gcov_command "${CTEST_COVERAGE_COMMAND}")
- else()
- set(gcov_command "${GCOV_GCOV_COMMAND}")
- endif()
- # run gcov on each gcda file in the binary tree
- set(gcda_files)
- set(label_files)
- if (GCOV_GLOB)
- file(GLOB_RECURSE gfiles "${binary_dir}/*.gcda")
- list(LENGTH gfiles len)
- # if we have gcda files then also grab the labels file for that target
- if(${len} GREATER 0)
- file(GLOB_RECURSE lfiles RELATIVE ${binary_dir} "${binary_dir}/Labels.json")
- list(APPEND gcda_files ${gfiles})
- list(APPEND label_files ${lfiles})
- endif()
- else()
- # look for gcda files in the target directories
- # this will be faster and only look where the files will be
- file(STRINGS "${binary_dir}/CMakeFiles/TargetDirectories.txt" target_dirs
- ENCODING UTF-8)
- foreach(target_dir ${target_dirs})
- file(GLOB_RECURSE gfiles "${target_dir}/*.gcda")
- list(LENGTH gfiles len)
- # if we have gcda files then also grab the labels file for that target
- if(${len} GREATER 0)
- file(GLOB_RECURSE lfiles RELATIVE ${binary_dir}
- "${target_dir}/Labels.json")
- list(APPEND gcda_files ${gfiles})
- list(APPEND label_files ${lfiles})
- endif()
- endforeach()
- endif()
- # return early if no coverage files were found
- list(LENGTH gcda_files len)
- if(len EQUAL 0)
- if (NOT GCOV_QUIET)
- message("ctest_coverage_collect_gcov: No .gcda files found, "
- "ignoring coverage request.")
- endif()
- return()
- endif()
- # setup the dir for the coverage files
- set(coverage_dir "${binary_dir}/Testing/CoverageInfo")
- file(MAKE_DIRECTORY "${coverage_dir}")
- # run gcov, this will produce the .gcov files in the current
- # working directory
- if(NOT DEFINED GCOV_GCOV_OPTIONS)
- set(GCOV_GCOV_OPTIONS -b -x)
- endif()
- execute_process(COMMAND
- ${gcov_command} ${GCOV_GCOV_OPTIONS} ${gcda_files}
- OUTPUT_VARIABLE out
- RESULT_VARIABLE res
- WORKING_DIRECTORY ${coverage_dir})
-
- if (GCOV_DELETE)
- file(REMOVE ${gcda_files})
- endif()
-
- if(NOT "${res}" EQUAL 0)
- if (NOT GCOV_QUIET)
- message(STATUS "Error running gcov: ${res} ${out}")
- endif()
- endif()
- # create json file with project information
- file(WRITE ${coverage_dir}/data.json
- "{
- \"Source\": \"${source_dir}\",
- \"Binary\": \"${binary_dir}\"
-}")
- # collect the gcov files
- set(unfiltered_gcov_files)
- file(GLOB_RECURSE unfiltered_gcov_files RELATIVE ${binary_dir} "${coverage_dir}/*.gcov")
-
- # if CTEST_EXTRA_COVERAGE_GLOB was specified we search for files
- # that might be uncovered
- if (DEFINED CTEST_EXTRA_COVERAGE_GLOB)
- set(uncovered_files)
- foreach(search_entry IN LISTS CTEST_EXTRA_COVERAGE_GLOB)
- if(NOT GCOV_QUIET)
- message("Add coverage glob: ${search_entry}")
- endif()
- file(GLOB_RECURSE matching_files "${source_dir}/${search_entry}")
- if (matching_files)
- list(APPEND uncovered_files "${matching_files}")
- endif()
- endforeach()
- endif()
-
- set(gcov_files)
- foreach(gcov_file ${unfiltered_gcov_files})
- file(STRINGS ${binary_dir}/${gcov_file} first_line LIMIT_COUNT 1 ENCODING UTF-8)
-
- set(is_excluded false)
- if(first_line MATCHES "^ -: 0:Source:(.*)$")
- set(source_file ${CMAKE_MATCH_1})
- elseif(NOT GCOV_QUIET)
- message(STATUS "Could not determine source file corresponding to: ${gcov_file}")
- endif()
-
- foreach(exclude_entry IN LISTS CTEST_CUSTOM_COVERAGE_EXCLUDE)
- if(source_file MATCHES "${exclude_entry}")
- set(is_excluded true)
-
- if(NOT GCOV_QUIET)
- message("Excluding coverage for: ${source_file} which matches ${exclude_entry}")
- endif()
-
- break()
- endif()
- endforeach()
-
- get_filename_component(resolved_source_file "${source_file}" ABSOLUTE)
- foreach(uncovered_file IN LISTS uncovered_files)
- get_filename_component(resolved_uncovered_file "${uncovered_file}" ABSOLUTE)
- if (resolved_uncovered_file STREQUAL resolved_source_file)
- list(REMOVE_ITEM uncovered_files "${uncovered_file}")
- endif()
- endforeach()
-
- if(NOT is_excluded)
- list(APPEND gcov_files ${gcov_file})
- endif()
- endforeach()
-
- foreach (uncovered_file ${uncovered_files})
- # Check if this uncovered file should be excluded.
- set(is_excluded false)
- foreach(exclude_entry IN LISTS CTEST_CUSTOM_COVERAGE_EXCLUDE)
- if(uncovered_file MATCHES "${exclude_entry}")
- set(is_excluded true)
- if(NOT GCOV_QUIET)
- message("Excluding coverage for: ${uncovered_file} which matches ${exclude_entry}")
- endif()
- break()
- endif()
- endforeach()
- if(is_excluded)
- continue()
- endif()
-
- # Copy from source to binary dir, preserving any intermediate subdirectories.
- get_filename_component(filename "${uncovered_file}" NAME)
- get_filename_component(relative_path "${uncovered_file}" DIRECTORY)
- string(REPLACE "${source_dir}" "" relative_path "${relative_path}")
- if (relative_path)
- # Strip leading slash.
- string(SUBSTRING "${relative_path}" 1 -1 relative_path)
- endif()
- file(COPY ${uncovered_file} DESTINATION ${binary_dir}/uncovered/${relative_path})
- if(relative_path)
- list(APPEND uncovered_files_for_tar uncovered/${relative_path}/${filename})
- else()
- list(APPEND uncovered_files_for_tar uncovered/${filename})
- endif()
- endforeach()
-
- # tar up the coverage info with the same date so that the md5
- # sum will be the same for the tar file independent of file time
- # stamps
- string(REPLACE ";" "\n" gcov_files "${gcov_files}")
- string(REPLACE ";" "\n" label_files "${label_files}")
- string(REPLACE ";" "\n" uncovered_files_for_tar "${uncovered_files_for_tar}")
- file(WRITE "${coverage_dir}/coverage_file_list.txt"
- "${gcov_files}
-${coverage_dir}/data.json
-${label_files}
-${uncovered_files_for_tar}
-")
-
- if (GCOV_QUIET)
- set(tar_opts "cfj")
- else()
- set(tar_opts "cvfj")
- endif()
-
- execute_process(COMMAND
- ${CMAKE_COMMAND} -E tar ${tar_opts} ${GCOV_TARBALL}
- "--mtime=1970-01-01 0:0:0 UTC"
- "--format=gnutar"
- --files-from=${coverage_dir}/coverage_file_list.txt
- WORKING_DIRECTORY ${binary_dir})
-
- if (GCOV_DELETE)
- foreach(gcov_file ${unfiltered_gcov_files})
- file(REMOVE ${binary_dir}/${gcov_file})
- endforeach()
- file(REMOVE ${coverage_dir}/coverage_file_list.txt)
- file(REMOVE ${coverage_dir}/data.json)
- if (EXISTS ${binary_dir}/uncovered)
- file(REMOVE ${binary_dir}/uncovered)
- endif()
- endif()
-
-endfunction()
diff --git a/share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake b/share/cmake-3.17/Modules/CheckFortranSourceCompiles.cmake
deleted file mode 100644
index f0fde8d..0000000
--- a/share/cmake-3.17/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(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
deleted file mode 100644
index a3e5d5d..0000000
--- a/share/cmake-3.17/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(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.17/Modules/CheckIPOSupported.cmake b/share/cmake-3.17/Modules/CheckIPOSupported.cmake
deleted file mode 100644
index 0d6ad20..0000000
--- a/share/cmake-3.17/Modules/CheckIPOSupported.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:
-CheckIPOSupported
------------------
-
-Check whether the compiler supports an interprocedural optimization (IPO/LTO).
-Use this before enabling the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target
-property.
-
-.. command:: check_ipo_supported
-
- ::
-
- check_ipo_supported([RESULT <result>] [OUTPUT <output>]
- [LANGUAGES <lang>...])
-
- Options are:
-
- ``RESULT <result>``
- Set ``<result>`` variable to ``YES`` if IPO is supported by the
- compiler and ``NO`` otherwise. If this option is not given then
- the command will issue a fatal error if IPO is not supported.
- ``OUTPUT <output>``
- Set ``<output>`` variable with details about any error.
- ``LANGUAGES <lang>...``
- Specify languages whose compilers to check.
- Languages ``C``, ``CXX``, and ``Fortran`` are supported.
-
-It makes no sense to use this module when :policy:`CMP0069` is set to ``OLD`` so
-module will return error in this case. See policy :policy:`CMP0069` for details.
-
-Examples
-^^^^^^^^
-
-.. code-block:: cmake
-
- check_ipo_supported() # fatal error if IPO is not supported
- set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
-
-.. code-block:: cmake
-
- # Optional IPO. Do not use IPO if it's not supported by compiler.
- check_ipo_supported(RESULT result OUTPUT output)
- if(result)
- set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
- else()
- message(WARNING "IPO is not supported: ${output}")
- endif()
-
-#]=======================================================================]
-
-# X_RESULT - name of the final result variable
-# X_OUTPUT - name of the variable with information about error
-macro(_ipo_not_supported output)
- if(NOT X_RESULT)
- message(FATAL_ERROR "IPO is not supported (${output}).")
- endif()
-
- set("${X_RESULT}" NO PARENT_SCOPE)
- if(X_OUTPUT)
- set("${X_OUTPUT}" "${output}" PARENT_SCOPE)
- endif()
-endmacro()
-
-# Run IPO/LTO test
-macro(_ipo_run_language_check language)
- set(testdir "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/_CMakeLTOTest-${language}")
-
- file(REMOVE_RECURSE "${testdir}")
- file(MAKE_DIRECTORY "${testdir}")
-
- set(bindir "${testdir}/bin")
- set(srcdir "${testdir}/src")
-
- file(MAKE_DIRECTORY "${bindir}")
- file(MAKE_DIRECTORY "${srcdir}")
-
- set(TRY_COMPILE_PROJECT_NAME "lto-test")
-
- set(try_compile_src "${CMAKE_ROOT}/Modules/CheckIPOSupported")
-
- # Use:
- # * TRY_COMPILE_PROJECT_NAME
- # * CMAKE_VERSION
- configure_file(
- "${try_compile_src}/CMakeLists-${language}.txt.in"
- "${srcdir}/CMakeLists.txt"
- @ONLY
- )
-
- string(COMPARE EQUAL "${language}" "C" is_c)
- string(COMPARE EQUAL "${language}" "CXX" is_cxx)
- string(COMPARE EQUAL "${language}" "Fortran" is_fortran)
-
- if(is_c)
- set(copy_sources foo.c main.c)
- elseif(is_cxx)
- set(copy_sources foo.cpp main.cpp)
- elseif(is_fortran)
- set(copy_sources foo.f main.f)
- else()
- message(FATAL_ERROR "Language not supported")
- endif()
-
- foreach(x ${copy_sources})
- configure_file(
- "${try_compile_src}/${x}"
- "${srcdir}/${x}"
- COPYONLY
- )
- endforeach()
-
- try_compile(
- result
- "${bindir}"
- "${srcdir}"
- "${TRY_COMPILE_PROJECT_NAME}"
- CMAKE_FLAGS
- "-DCMAKE_VERBOSE_MAKEFILE=ON"
- "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
- OUTPUT_VARIABLE output
- )
-
- if(NOT result)
- file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
- "${language} compiler IPO check failed with the following output:\n"
- "${output}\n")
- _ipo_not_supported("check failed to compile")
- if(X_OUTPUT)
- set("${X_OUTPUT}" "${output}" PARENT_SCOPE)
- endif()
- return()
- endif()
-endmacro()
-
-function(check_ipo_supported)
- cmake_policy(GET CMP0069 x)
-
- string(COMPARE EQUAL "${x}" "" not_set)
- if(not_set)
- message(FATAL_ERROR "Policy CMP0069 is not set")
- endif()
-
- string(COMPARE EQUAL "${x}" "OLD" is_old)
- if(is_old)
- message(FATAL_ERROR "Policy CMP0069 set to OLD")
- endif()
-
- set(optional)
- set(one RESULT OUTPUT)
- set(multiple LANGUAGES)
-
- # Introduce:
- # * X_RESULT
- # * X_OUTPUT
- # * X_LANGUAGES
- cmake_parse_arguments(X "${optional}" "${one}" "${multiple}" "${ARGV}")
-
- string(COMPARE NOTEQUAL "${X_UNPARSED_ARGUMENTS}" "" has_unparsed)
- if(has_unparsed)
- message(FATAL_ERROR "Unparsed arguments: ${X_UNPARSED_ARGUMENTS}")
- endif()
-
- string(COMPARE EQUAL "${X_LANGUAGES}" "" no_languages)
- if(no_languages)
- # User did not set any languages, use defaults
- get_property(enabled_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
- string(COMPARE EQUAL "${enabled_languages}" "" no_languages)
- if(no_languages)
- _ipo_not_supported(
- "no languages found in ENABLED_LANGUAGES global property"
- )
- return()
- endif()
-
- set(languages "")
- list(FIND enabled_languages "CXX" result)
- if(NOT result EQUAL -1)
- list(APPEND languages "CXX")
- endif()
-
- list(FIND enabled_languages "C" result)
- if(NOT result EQUAL -1)
- list(APPEND languages "C")
- endif()
-
- list(FIND enabled_languages "Fortran" result)
- if(NOT result EQUAL -1)
- list(APPEND languages "Fortran")
- endif()
-
- string(COMPARE EQUAL "${languages}" "" no_languages)
- if(no_languages)
- _ipo_not_supported(
- "no C/CXX/Fortran languages found in ENABLED_LANGUAGES global property"
- )
- return()
- endif()
- else()
- set(languages "${X_LANGUAGES}")
-
- set(unsupported_languages "${languages}")
- list(REMOVE_ITEM unsupported_languages "C" "CXX" "Fortran")
- string(COMPARE NOTEQUAL "${unsupported_languages}" "" has_unsupported)
- if(has_unsupported)
- _ipo_not_supported(
- "language(s) '${unsupported_languages}' not supported"
- )
- return()
- endif()
- endif()
-
- foreach(lang ${languages})
- if(NOT _CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE)
- _ipo_not_supported("CMake doesn't support IPO for current ${lang} compiler")
- return()
- endif()
-
- if(NOT _CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER)
- _ipo_not_supported("${lang} compiler doesn't support IPO")
- return()
- endif()
- endforeach()
-
- if(CMAKE_GENERATOR MATCHES "^Visual Studio 9 ")
- _ipo_not_supported("CMake doesn't support IPO for current generator")
- return()
- endif()
-
- foreach(x ${languages})
- _ipo_run_language_check(${x})
- endforeach()
-
- set("${X_RESULT}" YES PARENT_SCOPE)
-endfunction()
diff --git a/share/cmake-3.17/Modules/CheckLanguage.cmake b/share/cmake-3.17/Modules/CheckLanguage.cmake
deleted file mode 100644
index 997cc8d..0000000
--- a/share/cmake-3.17/Modules/CheckLanguage.cmake
+++ /dev/null
@@ -1,106 +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(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/CheckTypeSize.c.in b/share/cmake-3.17/Modules/CheckTypeSize.c.in
deleted file mode 100644
index 82035a3..0000000
--- a/share/cmake-3.17/Modules/CheckTypeSize.c.in
+++ /dev/null
@@ -1,43 +0,0 @@
-@headers@
-
-#undef KEY
-#if defined(__i386)
-# define KEY '_','_','i','3','8','6'
-#elif defined(__x86_64)
-# define KEY '_','_','x','8','6','_','6','4'
-#elif defined(__ppc__)
-# define KEY '_','_','p','p','c','_','_'
-#elif defined(__ppc64__)
-# define KEY '_','_','p','p','c','6','4','_','_'
-#elif defined(__aarch64__)
-# define KEY '_','_','a','a','r','c','h','6','4','_','_'
-#elif defined(__ARM_ARCH_7A__)
-# define KEY '_','_','A','R','M','_','A','R','C','H','_','7','A','_','_'
-#elif defined(__ARM_ARCH_7S__)
-# define KEY '_','_','A','R','M','_','A','R','C','H','_','7','S','_','_'
-#endif
-
-#define SIZE (sizeof(@type@))
-static char info_size[] = {'I', 'N', 'F', 'O', ':', 's','i','z','e','[',
- ('0' + ((SIZE / 10000)%10)),
- ('0' + ((SIZE / 1000)%10)),
- ('0' + ((SIZE / 100)%10)),
- ('0' + ((SIZE / 10)%10)),
- ('0' + (SIZE % 10)),
- ']',
-#ifdef KEY
- ' ','k','e','y','[', KEY, ']',
-#endif
- '\0'};
-
-#ifdef __CLASSIC_C__
-int main(argc, argv) int argc; char *argv[];
-#else
-int main(int argc, char *argv[])
-#endif
-{
- int require = 0;
- require += info_size[argc];
- (void)argv;
- return require;
-}
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang.cmake b/share/cmake-3.17/Modules/Compiler/ARMClang.cmake
deleted file mode 100644
index 2518ac7..0000000
--- a/share/cmake-3.17/Modules/Compiler/ARMClang.cmake
+++ /dev/null
@@ -1,71 +0,0 @@
-if(_ARMClang_CMAKE_LOADED)
- return()
-endif()
-set(_ARMClang_CMAKE_LOADED TRUE)
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-get_filename_component(_CMAKE_C_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
-get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
-
-set(CMAKE_EXECUTABLE_SUFFIX ".elf")
-
-find_program(CMAKE_ARMClang_LINKER armlink HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" )
-find_program(CMAKE_ARMClang_AR armar HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" )
-
-set(CMAKE_LINKER "${CMAKE_ARMClang_LINKER}" CACHE FILEPATH "The ARMClang linker" FORCE)
-mark_as_advanced(CMAKE_ARMClang_LINKER)
-set(CMAKE_AR "${CMAKE_ARMClang_AR}" CACHE FILEPATH "The ARMClang archiver" FORCE)
-mark_as_advanced(CMAKE_ARMClang_AR)
-
-# get compiler supported cpu list
-function(__armclang_set_processor_list lang out_var)
- execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" --target=${CMAKE_${lang}_COMPILER_TARGET} -mcpu=list
- OUTPUT_VARIABLE processor_list
- ERROR_VARIABLE processor_list)
- string(REGEX MATCHALL "-mcpu=([^ \n]*)" processor_list "${processor_list}")
- string(REGEX REPLACE "-mcpu=" "" processor_list "${processor_list}")
- set(${out_var} "${processor_list}" PARENT_SCOPE)
-endfunction()
-
-# check processor is in list
-function(__armclang_check_processor processor list out_var)
- string(TOLOWER "${processor}" processor)
- if(processor IN_LIST list)
- set(${out_var} TRUE PARENT_SCOPE)
- else()
- set(${out_var} FALSE PARENT_SCOPE)
- endif()
-endfunction()
-
-macro(__compiler_armclang lang)
- if(NOT CMAKE_${lang}_COMPILER_TARGET)
- set(CMAKE_${lang}_COMPILER_TARGET arm-arm-none-eabi)
- endif()
- if(NOT CMAKE_${lang}_COMPILER_PROCESSOR_LIST)
- __armclang_set_processor_list(${lang} CMAKE_${lang}_COMPILER_PROCESSOR_LIST)
- endif()
- if(NOT CMAKE_SYSTEM_PROCESSOR)
- message(FATAL_ERROR " CMAKE_SYSTEM_PROCESSOR must be set for ARMClang\n"
- " Supported processor: ${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}\n")
- else()
- __armclang_check_processor("${CMAKE_SYSTEM_PROCESSOR}" "${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}" _CMAKE_${lang}_CHECK_RESULT)
- if(NOT _CMAKE_${lang}_CHECK_RESULT)
- message(FATAL_ERROR " System processor '${CMAKE_SYSTEM_PROCESSOR}' not supported by ARMClang ${lang} compiler\n"
- " Supported processor: ${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}\n")
- endif()
- unset(_CMAKE_${lang}_CHECK_RESULT)
- endif()
- string(APPEND CMAKE_${lang}_FLAGS_INIT "-mcpu=${CMAKE_SYSTEM_PROCESSOR}")
- string(APPEND CMAKE_${lang}_LINK_FLAGS "--cpu=${CMAKE_SYSTEM_PROCESSOR}")
-
- set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS> -o <TARGET> --list <TARGET_BASE>.map")
- set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> --create -cr <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> --create -cr <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "--via=")
- set(CMAKE_${lang}_OUTPUT_EXTENSION ".o")
- set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1)
-endmacro()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake
deleted file mode 100644
index 76502dc..0000000
--- a/share/cmake-3.17/Modules/Compiler/Absoft-Fortran.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-string(APPEND CMAKE_Fortran_FLAGS_INIT " ")
-string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -g")
-string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " ")
-string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3")
-string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
-set(CMAKE_Fortran_MODDIR_FLAG "-YMOD_OUT_DIR=")
-set(CMAKE_Fortran_MODPATH_FLAG "-p")
-set(CMAKE_Fortran_VERBOSE_FLAG "-v")
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree")
-set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-X")
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake b/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake
deleted file mode 100644
index cb240f9..0000000
--- a/share/cmake-3.17/Modules/Compiler/Clang-CXX.cmake
+++ /dev/null
@@ -1,133 +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 "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.17/Modules/Compiler/Clang-OBJCXX.cmake b/share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake
deleted file mode 100644
index b01ce64..0000000
--- a/share/cmake-3.17/Modules/Compiler/Clang-OBJCXX.cmake
+++ /dev/null
@@ -1,70 +0,0 @@
-include(Compiler/Clang)
-__compiler_clang(OBJCXX)
-
-if("x${CMAKE_OBJCXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
- if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 2.1)
- set(CMAKE_OBJCXX98_STANDARD_COMPILE_OPTION "-std=c++98")
- set(CMAKE_OBJCXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
- endif()
-
- if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 3.1)
- 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")
- set(CMAKE_OBJCXX11_STANDARD__HAS_FULL_SUPPORT ON)
- elseif(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 2.1)
- set(CMAKE_OBJCXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
- set(CMAKE_OBJCXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
- endif()
-
- if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 3.5)
- 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 3.4)
- 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()
-
- set(_clang_version_std17 5.0)
-
- if (NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
- 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 3.5)
- 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 "${_clang_version_std17}")
- set(CMAKE_OBJCXX20_STANDARD_COMPILE_OPTION "-std=c++2a")
- set(CMAKE_OBJCXX20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
- endif()
-
- unset(_clang_version_std17)
-
- __compiler_check_default_language_standard(OBJCXX 2.1 98)
-elseif(CMAKE_OBJCXX_COMPILER_VERSION VERSION_GREATER_EQUAL 3.9
- AND CMAKE_OBJCXX_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_OBJCXX98_STANDARD_COMPILE_OPTION "")
- set(CMAKE_OBJCXX98_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_OBJCXX98_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_OBJCXX11_STANDARD_COMPILE_OPTION "")
- set(CMAKE_OBJCXX11_EXTENSION_COMPILE_OPTION "")
- set(CMAKE_OBJCXX14_STANDARD_COMPILE_OPTION "-std:c++14")
- set(CMAKE_OBJCXX14_EXTENSION_COMPILE_OPTION "-std:c++14")
- if (CMAKE_OBJCXX_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
- set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std:c++17")
- set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std:c++17")
- set(CMAKE_OBJCXX20_STANDARD_COMPILE_OPTION "-std:c++latest")
- set(CMAKE_OBJCXX20_EXTENSION_COMPILE_OPTION "-std:c++latest")
- else()
- set(CMAKE_OBJCXX17_STANDARD_COMPILE_OPTION "-std:c++latest")
- set(CMAKE_OBJCXX17_EXTENSION_COMPILE_OPTION "-std:c++latest")
- endif()
-
- __compiler_check_default_language_standard(OBJCXX 3.9 14)
-endif()
diff --git a/share/cmake-3.17/Modules/Compiler/Clang.cmake b/share/cmake-3.17/Modules/Compiler/Clang.cmake
deleted file mode 100644
index f65916f..0000000
--- a/share/cmake-3.17/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> -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.17/Modules/Compiler/Cray-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake
deleted file mode 100644
index ccb7c2e..0000000
--- a/share/cmake-3.17/Modules/Compiler/Cray-Fortran.cmake
+++ /dev/null
@@ -1,13 +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/Cray)
-__compiler_cray(Fortran)
-
-set(CMAKE_Fortran_SUBMODULE_SEP "")
-set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
-set(CMAKE_Fortran_MODOUT_FLAG -em)
-set(CMAKE_Fortran_MODDIR_FLAG -J)
-set(CMAKE_Fortran_MODDIR_DEFAULT .)
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-f fixed")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-f free")
diff --git a/share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake
deleted file mode 100644
index f0e61d8..0000000
--- a/share/cmake-3.17/Modules/Compiler/Flang-Fortran.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-include(Compiler/Clang)
-__compiler_clang(Fortran)
-
-set(CMAKE_Fortran_SUBMODULE_SEP "-")
-set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
-
-set(CMAKE_Fortran_PREPROCESS_SOURCE
- "<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
-
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
-
-set(CMAKE_Fortran_MODDIR_FLAG "-J")
diff --git a/share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake
deleted file mode 100644
index 03b7e08..0000000
--- a/share/cmake-3.17/Modules/Compiler/G95-Fortran.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
-string(APPEND CMAKE_Fortran_FLAGS_INIT " ")
-string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -g")
-string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " -Os")
-string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3")
-string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
-set(CMAKE_Fortran_MODDIR_FLAG "-fmod=")
-set(CMAKE_Fortran_VERBOSE_FLAG "-v")
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
-set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Wl,")
-set(CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP ",")
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake b/share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake
deleted file mode 100644
index e07401d..0000000
--- a/share/cmake-3.17/Modules/Compiler/GNU-ASM.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is loaded when gcc/g++ is used for assembler files (the "ASM" cmake language)
-include(Compiler/GNU)
-
-set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;S;asm)
-
-__compiler_gnu(ASM)
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake
deleted file mode 100644
index 6413769..0000000
--- a/share/cmake-3.17/Modules/Compiler/GNU-Fortran.cmake
+++ /dev/null
@@ -1,23 +0,0 @@
-include(Compiler/GNU)
-__compiler_gnu(Fortran)
-
-set(CMAKE_Fortran_SUBMODULE_SEP "@")
-set(CMAKE_Fortran_SUBMODULE_EXT ".smod")
-
-set(CMAKE_Fortran_PREPROCESS_SOURCE
- "<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> -o <PREPROCESSED_SOURCE>")
-
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
-
-set(CMAKE_Fortran_POSTPROCESS_FLAG "-fpreprocessed")
-
-# No -DNDEBUG for Fortran.
-string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " -Os")
-string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3")
-
-# No -isystem for Fortran because it will not find .mod files.
-unset(CMAKE_INCLUDE_SYSTEM_FLAG_Fortran)
-
-# Fortran-specific feature flags.
-set(CMAKE_Fortran_MODDIR_FLAG -J)
diff --git a/share/cmake-3.17/Modules/Compiler/GNU.cmake b/share/cmake-3.17/Modules/Compiler/GNU.cmake
deleted file mode 100644
index 1c050a2..0000000
--- a/share/cmake-3.17/Modules/Compiler/GNU.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.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__COMPILER_GNU)
- return()
-endif()
-set(__COMPILER_GNU 1)
-
-include(Compiler/CMakeCommonCompilerMacros)
-include(Internal/CMakeCheckCompilerFlag)
-
-set(__pch_header_C "c-header")
-set(__pch_header_CXX "c++-header")
-set(__pch_header_OBJC "objective-c-header")
-set(__pch_header_OBJCXX "objective-c++-header")
-
-macro(__compiler_gnu lang)
- # Feature flags.
- set(CMAKE_${lang}_VERBOSE_FLAG "-v")
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC")
- set (_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
- if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4)
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
- # Support of PIE at link stage depends on various elements : platform, compiler, linker
- # so to activate it, module CheckPIESupported must be used.
- set (_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER YES)
- set(CMAKE_${lang}_LINK_OPTIONS_PIE ${CMAKE_${lang}_COMPILE_OPTIONS_PIE} "-pie")
- set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE "-no-pie")
- endif()
- if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.0)
- set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
- endif()
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
- set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
- set(CMAKE_${lang}_COMPILE_OPTIONS_SYSROOT "--sysroot=")
-
- set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,")
- set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",")
-
- # Older versions of gcc (< 4.5) contain a bug causing them to report a missing
- # header file as a warning if depfiles are enabled, causing check_header_file
- # tests to always succeed. Work around this by disabling dependency tracking
- # in try_compile mode.
- get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
- if(NOT _IN_TC OR CMAKE_FORCE_DEPFILES)
- # distcc does not transform -o to -MT when invoking the preprocessor
- # internally, as it ought to. Work around this bug by setting -MT here
- # even though it isn't strictly necessary.
- set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <OBJECT> -MF <DEPFILE>")
- endif()
-
- # Initial configuration flags.
- string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG")
- set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
- set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
- if(NOT APPLE OR NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4) # work around #4462
- set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
- endif()
-
- set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
- set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
-
- # '-flto' introduced since GCC 4.5:
- # * https://gcc.gnu.org/onlinedocs/gcc-4.4.7/gcc/Option-Summary.html (no)
- # * https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gcc/Option-Summary.html (yes)
- if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.5)
- set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
- set(__lto_flags -flto)
-
- if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7)
- # '-ffat-lto-objects' introduced since GCC 4.7:
- # * https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Option-Summary.html (no)
- # * https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Option-Summary.html (yes)
- list(APPEND __lto_flags -fno-fat-lto-objects)
- endif()
-
- set(CMAKE_${lang}_COMPILE_OPTIONS_IPO ${__lto_flags})
-
- # Need to use version of 'ar'/'ranlib' with plugin support.
- # Quote from [documentation][1]:
- #
- # To create static libraries suitable for LTO,
- # use gcc-ar and gcc-ranlib instead of ar and ranlib
- #
- # [1]: https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Optimize-Options.html
- set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
- "\"${CMAKE_${lang}_COMPILER_AR}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
- )
-
- set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
- "\"${CMAKE_${lang}_COMPILER_AR}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
- )
-
- set(CMAKE_${lang}_ARCHIVE_FINISH_IPO
- "\"${CMAKE_${lang}_COMPILER_RANLIB}\" <TARGET>"
- )
- endif()
-
- 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 "-dM" "-E" "-c" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
-
- set(CMAKE_PCH_EXTENSION .gch)
- if (NOT CMAKE_GENERATOR MATCHES "Xcode")
- set(CMAKE_PCH_PROLOGUE "#pragma GCC system_header")
- endif()
- set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -include <PCH_HEADER>)
- set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Winvalid-pch -x ${__pch_header_${lang}} -include <PCH_HEADER>)
-endmacro()
diff --git a/share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake
deleted file mode 100644
index 63a0331..0000000
--- a/share/cmake-3.17/Modules/Compiler/HP-Fortran.cmake
+++ /dev/null
@@ -1,9 +0,0 @@
-set(CMAKE_Fortran_VERBOSE_FLAG "-v")
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "+source=fixed")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "+source=free")
-
-set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
-set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
-
-set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Wl,")
-set(CMAKE_Fortran_LINKER_WRAPPER_FLAG ",")
diff --git a/share/cmake-3.17/Modules/Compiler/IAR.cmake b/share/cmake-3.17/Modules/Compiler/IAR.cmake
deleted file mode 100644
index 8e75caa..0000000
--- a/share/cmake-3.17/Modules/Compiler/IAR.cmake
+++ /dev/null
@@ -1,114 +0,0 @@
-# This file is processed when the IAR compiler is used for a C or C++ file
-# Documentation can be downloaded here: http://www.iar.com/website1/1.0.1.0/675/1/
-# The initial feature request is here: https://gitlab.kitware.com/cmake/cmake/issues/10176
-# It also contains additional links and information.
-# See USER GUIDES -> C/C++ Development Guide and ReleaseNotes for EWARM:
-# version 6.30.8: http://supp.iar.com/FilesPublic/UPDINFO/006607/arm/doc/infocenter/index.ENU.html
-# version 7.60.1: http://supp.iar.com/FilesPublic/UPDINFO/011006/arm/doc/infocenter/index.ENU.html
-# version 8.10.1: http://netstorage.iar.com/SuppDB/Public/UPDINFO/011854/arm/doc/infocenter/index.ENU.html
-
-# The IAR internal compiler platform generations (Predefined symbol __IAR_SYSTEMS_ICC__):
-# 9 and higher means C11 and C++14 as language default (EWARM v8.x, EWRX v4.x and higher)
-# 8 means C99 and C++03 as language default (EWARM v6.x, v7.x. EWRX v2.x, 3.x)
-# 7 and lower means C89 and EC++ as language default. (EWARM v5.x and lower)
-
-# C/C++ Standard versions
-#
-# IAR typically only supports one C and C++ Standard version,
-# the exception is C89 which is always supported and can be selected
-# if its not the default
-#
-# C++ is trickier, there were historically 3 switches,
-# and some IAR versions support multiple of those.
-# they are --eec++, --ec++ and --c++ and where used to
-# enable various language features like exceptions
-#
-# recent versions only have --c++ for full support
-# but can choose to disable features with further arguments
-#
-# C/C++ Standard compliance
-#
-# IAR has 3 modes: default, strict and extended
-# the extended mode is needed for popular libraries like CMSIS
-#
-# "Silent" Operation
-#
-# this really is different to most programs I know.
-# nothing meaningful from the operation is lost, just some redundant
-# code and data size printouts (that can be inspected with common tools).
-
-# This module is shared by multiple languages; use include blocker.
-include_guard()
-
-macro(__compiler_iar_ilink lang)
- set(CMAKE_EXECUTABLE_SUFFIX ".elf")
- if (${lang} STREQUAL "C" OR ${lang} STREQUAL "CXX")
- set(CMAKE_${lang}_COMPILE_OBJECT "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
- set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
- set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
-
- set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-f ")
- set(CMAKE_DEPFILE_FLAGS_${lang} "--dependencies=ns <DEPFILE>")
-
- string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -r")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Ohz -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -Oh -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
- endif()
-
- if (${lang} STREQUAL "ASM")
- string(APPEND CMAKE_ASM_FLAGS_INIT " ")
- string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
- string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
- string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
- string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
- endif()
-
- set(CMAKE_${lang}_LINK_EXECUTABLE "\"${CMAKE_IAR_LINKER}\" --silent <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
- set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --create <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_CREATE "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --create <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_APPEND "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --replace <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_FINISH "")
-
- set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
- set(CMAKE_AR "${CMAKE_IAR_ARCHIVE}" CACHE FILEPATH "The IAR archiver" FORCE)
-endmacro()
-
-macro(__compiler_iar_xlink lang)
- set(CMAKE_EXECUTABLE_SUFFIX ".bin")
- if (${lang} STREQUAL "C" OR ${lang} STREQUAL "CXX")
-
- set(CMAKE_${lang}_COMPILE_OBJECT "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
- set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
- set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
-
- set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-f ")
- set(CMAKE_DEPFILE_FLAGS_${lang} "--dependencies=ns <DEPFILE>")
-
- string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -r")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Ohz -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -Oh -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
- endif()
-
- if (${lang} STREQUAL "ASM")
- string(APPEND CMAKE_ASM_FLAGS_INIT " ")
- string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
- string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
- string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
- string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
- endif()
-
- set(CMAKE_${lang}_LINK_EXECUTABLE "\"${CMAKE_IAR_LINKER}\" -S <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
- set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "\"${CMAKE_IAR_AR}\" <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_CREATE "\"${CMAKE_IAR_AR}\" <TARGET> <LINK_FLAGS> <OBJECTS>")
- set(CMAKE_${lang}_ARCHIVE_APPEND "")
- set(CMAKE_${lang}_ARCHIVE_FINISH "")
-
- set(CMAKE_LIBRARY_PATH_FLAG "-I")
-
- set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
- set(CMAKE_AR "${CMAKE_IAR_AR}" CACHE FILEPATH "The IAR archiver" FORCE)
-endmacro()
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake b/share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake
deleted file mode 100644
index 1ed1b08..0000000
--- a/share/cmake-3.17/Modules/Compiler/Intel-CXX.cmake
+++ /dev/null
@@ -1,86 +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")
-
- 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.17/Modules/Compiler/Intel-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake
deleted file mode 100644
index 156b533..0000000
--- a/share/cmake-3.17/Modules/Compiler/Intel-Fortran.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-include(Compiler/Intel)
-__compiler_intel(Fortran)
-
-set(CMAKE_Fortran_SUBMODULE_SEP "@")
-set(CMAKE_Fortran_SUBMODULE_EXT ".smod")
-
-set(CMAKE_Fortran_MODDIR_FLAG "-module ")
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free")
-
-set(CMAKE_Fortran_COMPILE_WITH_DEFINES 1)
-
-set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
-set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
-
-set(CMAKE_Fortran_PREPROCESS_SOURCE
- "<CMAKE_Fortran_COMPILER> -fpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
diff --git a/share/cmake-3.17/Modules/Compiler/Intel.cmake b/share/cmake-3.17/Modules/Compiler/Intel.cmake
deleted file mode 100644
index d895ed0..0000000
--- a/share/cmake-3.17/Modules/Compiler/Intel.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.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__COMPILER_INTEL)
- return()
-endif()
-set(__COMPILER_INTEL 1)
-
-include(Compiler/CMakeCommonCompilerMacros)
-
-if(CMAKE_HOST_WIN32)
- # MSVC-like
- macro(__compiler_intel lang)
- endmacro()
-else()
- # GNU-like
- macro(__compiler_intel lang)
- set(CMAKE_${lang}_VERBOSE_FLAG "-v")
-
- string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
-
- 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 "-QdM" "-P" "-Za" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
-
- # Precompile Headers
- set(CMAKE_PCH_EXTENSION .pchi)
- set(CMAKE_LINK_PCH ON)
- set(CMAKE_PCH_EPILOGUE "#pragma hdrstop")
- set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -Wno-pch-messages -pch-use <PCH_FILE> -include <PCH_HEADER>)
- set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Winvalid-pch -Wno-pch-messages -pch-create <PCH_FILE> -include <PCH_HEADER>)
- endmacro()
-endif()
diff --git a/share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/NAG-Fortran.cmake
deleted file mode 100644
index 2111c65..0000000
--- a/share/cmake-3.17/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(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
deleted file mode 100644
index 1f4d54d..0000000
--- a/share/cmake-3.17/Modules/Compiler/NVIDIA-CUDA.cmake
+++ /dev/null
@@ -1,89 +0,0 @@
-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.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake b/share/cmake-3.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
deleted file mode 100644
index bf9111a..0000000
--- a/share/cmake-3.17/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-
-set(_compiler_id_pp_test "defined(__NVCC__)")
-
-set(_compiler_id_version_compute "
-# if defined(__CUDACC_VER_MAJOR__)
-# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__CUDACC_VER_MAJOR__)
-# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__CUDACC_VER_MINOR__)
-# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__CUDACC_VER_BUILD__)
-# endif
-# if defined(_MSC_VER)
- /* _MSC_VER = VVRR */
-# define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(_MSC_VER / 100)
-# define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(_MSC_VER % 100)
-# endif")
-
-set(_compiler_id_simulate "
-# if defined(_MSC_VER)
-# define @PREFIX@SIMULATE_ID \"MSVC\"
-# endif")
diff --git a/share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake
deleted file mode 100644
index 3daf798..0000000
--- a/share/cmake-3.17/Modules/Compiler/PGI-Fortran.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-include(Compiler/PGI)
-__compiler_pgi(Fortran)
-
-set(CMAKE_Fortran_SUBMODULE_SEP "-")
-set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
-
-set(CMAKE_Fortran_PREPROCESS_SOURCE
- "<CMAKE_Fortran_COMPILER> -Mpreprocess <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
-
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-Mnofreeform")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-Mfreeform")
-
-string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -Mbounds")
-
-set(CMAKE_Fortran_MODDIR_FLAG "-module ")
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake
deleted file mode 100644
index d903621..0000000
--- a/share/cmake-3.17/Modules/Compiler/PathScale-Fortran.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-include(Compiler/PathScale)
-__compiler_pathscale(Fortran)
-
-set(CMAKE_Fortran_MODDIR_FLAG "-module ")
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixedform")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-freeform")
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake b/share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake
deleted file mode 100644
index 0e7314a..0000000
--- a/share/cmake-3.17/Modules/Compiler/QCC-CXX.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-# To include compiler feature detection
-include(Compiler/GNU-CXX)
-
-include(Compiler/QCC)
-__compiler_qcc(CXX)
-
-# If the toolchain uses qcc for CMAKE_CXX_COMPILER instead of QCC, the
-# default for the driver is not c++.
-set(CMAKE_CXX_COMPILE_OBJECT
- "<CMAKE_CXX_COMPILER> -lang-c++ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
-
-set(CMAKE_CXX_LINK_EXECUTABLE
- "<CMAKE_CXX_COMPILER> -lang-c++ <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-
-set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake
deleted file mode 100644
index 0c93c94..0000000
--- a/share/cmake-3.17/Modules/Compiler/SunPro-Fortran.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
-set(CMAKE_Fortran_VERBOSE_FLAG "-v")
-set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed")
-set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free")
-
-set(CMAKE_Fortran_COMPILE_OPTIONS_PIC "-KPIC")
-set(CMAKE_Fortran_COMPILE_OPTIONS_PIE "")
-set(_CMAKE_Fortran_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
-set(CMAKE_Fortran_LINK_OPTIONS_PIE "")
-set(CMAKE_Fortran_LINK_OPTIONS_NO_PIE "")
-set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-KPIC")
-set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-G")
-set(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "-R")
-set(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":")
-set(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-h")
-set(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG "-R")
-
-string(APPEND CMAKE_Fortran_FLAGS_INIT " ")
-string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -g")
-string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " -xO2 -xspace -DNDEBUG")
-string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -xO3 -DNDEBUG")
-string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT " -g -xO2 -DNDEBUG")
-set(CMAKE_Fortran_MODDIR_FLAG "-moddir=")
-set(CMAKE_Fortran_MODPATH_FLAG "-M")
-
-set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Qoption" "ld" " ")
-set(CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP ",")
-
-set(CMAKE_Fortran_PREPROCESS_SOURCE
- "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -F -fpp <SOURCE> -o <PREPROCESSED_SOURCE>")
-
-set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -F -fpp <SOURCE> -o <PREPROCESSED_SOURCE>")
-set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
diff --git a/share/cmake-3.17/Modules/Compiler/TI-C.cmake b/share/cmake-3.17/Modules/Compiler/TI-C.cmake
deleted file mode 100644
index 1c0f4bc..0000000
--- a/share/cmake-3.17/Modules/Compiler/TI-C.cmake
+++ /dev/null
@@ -1,18 +0,0 @@
-set(CMAKE_LIBRARY_PATH_FLAG "--search_path=")
-set(CMAKE_LINK_LIBRARY_FLAG "--library=")
-set(CMAKE_INCLUDE_FLAG_C "--include_path=")
-
-set(CMAKE_C90_STANDARD_COMPILE_OPTION "--c89")
-set(CMAKE_C90_EXTENSION_COMPILE_OPTION "--c89 --relaxed_ansi")
-
-set(CMAKE_C99_STANDARD_COMPILE_OPTION "--c99")
-set(CMAKE_C99_EXTENSION_COMPILE_OPTION "--c99 --relaxed_ansi")
-
-set(CMAKE_DEPFILE_FLAGS_C "--preproc_with_compile --preproc_dependency=<DEPFILE>")
-
-set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> --compile_only --skip_assembler --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<ASSEMBLY_SOURCE>")
-set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> --preproc_only --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
-
-set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> --compile_only --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
-set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> -r <TARGET> <OBJECTS>")
-set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET>.map <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
diff --git a/share/cmake-3.17/Modules/Compiler/TI-CXX.cmake b/share/cmake-3.17/Modules/Compiler/TI-CXX.cmake
deleted file mode 100644
index 4c6af06..0000000
--- a/share/cmake-3.17/Modules/Compiler/TI-CXX.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-set(CMAKE_LIBRARY_PATH_FLAG "--search_path=")
-set(CMAKE_LINK_LIBRARY_FLAG "--library=")
-set(CMAKE_INCLUDE_FLAG_CXX "--include_path=")
-
-set(CMAKE_DEPFILE_FLAGS_CXX "--preproc_with_compile --preproc_dependency=<DEPFILE>")
-
-set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> --compile_only --skip_assembler --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<ASSEMBLY_SOURCE>")
-set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> --preproc_only --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
-
-set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> --compile_only --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
-set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> -r <TARGET> <OBJECTS>")
-set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET>.map <CMAKE_CXX_LINK_FLAGS> <LINK_LIBRARIES> <LINK_FLAGS> <OBJECTS>")
diff --git a/share/cmake-3.17/Modules/Compiler/XL-CXX.cmake b/share/cmake-3.17/Modules/Compiler/XL-CXX.cmake
deleted file mode 100644
index 3037851..0000000
--- a/share/cmake-3.17/Modules/Compiler/XL-CXX.cmake
+++ /dev/null
@@ -1,31 +0,0 @@
-include(Compiler/XL)
-__compiler_xl(CXX)
-string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -DNDEBUG")
-string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
-
-# -qthreaded = Ensures that all optimizations will be thread-safe
-string(APPEND CMAKE_CXX_FLAGS_INIT " -qthreaded")
-
-if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1)
- if(CMAKE_SYSTEM MATCHES "Linux")
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
- else()
- set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-qlanglvl=strict98")
- set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-qlanglvl=extended")
- endif()
- set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
- set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x")
- set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
- set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
- if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.1.0)
- set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-qlanglvl=extended1y")
- set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-qlanglvl=extended1y")
- set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
- endif()
-endif ()
-
-__compiler_check_default_language_standard(CXX 10.1 98)
-
-set(CMAKE_CXX_COMPILE_OBJECT
- "<CMAKE_CXX_COMPILER> -+ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
diff --git a/share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake b/share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake
deleted file mode 100644
index 1683dff..0000000
--- a/share/cmake-3.17/Modules/Compiler/XL-Fortran.cmake
+++ /dev/null
@@ -1,24 +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)
-
-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/CompilerId/Xcode-3.pbxproj.in b/share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in
deleted file mode 100644
index 672044e..0000000
--- a/share/cmake-3.17/Modules/CompilerId/Xcode-3.pbxproj.in
+++ /dev/null
@@ -1,113 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 45;
- objects = {
-
- 2C18F0B615DC1E0300593670 = {isa = PBXBuildFile; fileRef = 2C18F0B415DC1DC700593670; };
- 2C18F0B415DC1DC700593670 = {isa = PBXFileReference; fileEncoding = 4; explicitFileType = @id_type@; path = @id_src@; sourceTree = "<group>"; };
- 08FB7794FE84155DC02AAC07 = {
- isa = PBXGroup;
- children = (
- 2C18F0B415DC1DC700593670,
- );
- name = CompilerId@id_lang@;
- sourceTree = "<group>";
- };
- 8DD76FA90486AB0100D96B5E = {
- isa = PBXNativeTarget;
- buildConfigurationList = 1DEB928508733DD80010E9CD;
- buildPhases = (
- 2C18F0B515DC1DCE00593670,
- 2C8FEB8E15DC1A1A00E56A5D,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = CompilerId@id_lang@;
- productName = CompilerId@id_lang@;
- productType = "@id_product_type@";
- };
- 08FB7793FE84155DC02AAC07 = {
- isa = PBXProject;
- buildConfigurationList = 1DEB928908733DD80010E9CD;
- compatibilityVersion = "Xcode 3.1";
- developmentRegion = English;
- hasScannedForEncodings = 1;
- knownRegions = (
- en,
- );
- mainGroup = 08FB7794FE84155DC02AAC07;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 8DD76FA90486AB0100D96B5E,
- );
- };
- 2C8FEB8E15DC1A1A00E56A5D = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "echo \"GCC_VERSION=$GCC_VERSION\" ; echo \"ARCHS=$ARCHS\"";
- showEnvVarsInLog = 0;
- };
- 2C18F0B515DC1DCE00593670 = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 2C18F0B615DC1E0300593670,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 1DEB928608733DD80010E9CD = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_IDENTITY = "";
- PRODUCT_NAME = CompilerId@id_lang@;
- };
- name = Debug;
- };
- 1DEB928A08733DD80010E9CD = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ONLY_ACTIVE_ARCH = YES;
- CODE_SIGNING_REQUIRED = NO;
- CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
- SYMROOT = .;
- @id_toolset@
- @id_lang_version@
- @id_clang_cxx_library@
- @id_deployment_target@
- @id_sdkroot@
- };
- name = Debug;
- };
- 1DEB928508733DD80010E9CD = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB928608733DD80010E9CD,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- 1DEB928908733DD80010E9CD = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 1DEB928A08733DD80010E9CD,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Debug;
- };
- };
- rootObject = 08FB7793FE84155DC02AAC07;
-}
diff --git a/share/cmake-3.17/Modules/Documentation.cmake b/share/cmake-3.17/Modules/Documentation.cmake
deleted file mode 100644
index aaf24f6..0000000
--- a/share/cmake-3.17/Modules/Documentation.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-Documentation
--------------
-
-This module provides support for the VTK documentation framework. It
-relies on several tools (Doxygen, Perl, etc).
-#]=======================================================================]
-
-#
-# Build the documentation ?
-#
-option(BUILD_DOCUMENTATION "Build the documentation (Doxygen)." OFF)
-mark_as_advanced(BUILD_DOCUMENTATION)
-
-if (BUILD_DOCUMENTATION)
-
- #
- # Check for the tools
- #
- find_package(UnixCommands)
- find_package(Doxygen)
- find_package(Gnuplot)
- find_package(HTMLHelp)
- find_package(Perl)
- find_package(Wget)
-
- option(DOCUMENTATION_HTML_HELP
- "Build the HTML Help file (CHM)." OFF)
-
- option(DOCUMENTATION_HTML_TARZ
- "Build a compressed tar archive of the HTML doc." OFF)
-
- mark_as_advanced(
- DOCUMENTATION_HTML_HELP
- DOCUMENTATION_HTML_TARZ
- )
-
- #
- # The documentation process is controlled by a batch file.
- # We will probably need bash to create the custom target
- #
-
-endif ()
diff --git a/share/cmake-3.17/Modules/ExternalProject.cmake b/share/cmake-3.17/Modules/ExternalProject.cmake
deleted file mode 100644
index 5bac0d8..0000000
--- a/share/cmake-3.17/Modules/ExternalProject.cmake
+++ /dev/null
@@ -1,3280 +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_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.17/Modules/FetchContent.cmake b/share/cmake-3.17/Modules/FetchContent.cmake
deleted file mode 100644
index f3e1b51..0000000
--- a/share/cmake-3.17/Modules/FetchContent.cmake
+++ /dev/null
@@ -1,1058 +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
- )
-
-#]=======================================================================]
-
-#=======================================================================
-# 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.17/Modules/FetchContent/CMakeLists.cmake.in b/share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in
deleted file mode 100644
index 0095b11..0000000
--- a/share/cmake-3.17/Modules/FetchContent/CMakeLists.cmake.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-cmake_minimum_required(VERSION ${CMAKE_VERSION})
-
-# We name the project and the target for the ExternalProject_Add() call
-# to something that will highlight to the user what we are working on if
-# something goes wrong and an error message is produced.
-
-project(${contentName}-populate NONE)
-
-include(ExternalProject)
-ExternalProject_Add(${contentName}-populate
- ${ARG_EXTRA}
- SOURCE_DIR "${ARG_SOURCE_DIR}"
- BINARY_DIR "${ARG_BINARY_DIR}"
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ""
- INSTALL_COMMAND ""
- TEST_COMMAND ""
- USES_TERMINAL_DOWNLOAD YES
- USES_TERMINAL_UPDATE YES
-)
diff --git a/share/cmake-3.17/Modules/FindArmadillo.cmake b/share/cmake-3.17/Modules/FindArmadillo.cmake
deleted file mode 100644
index c4e55ce..0000000
--- a/share/cmake-3.17/Modules/FindArmadillo.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.
-
-#[=======================================================================[.rst:
-FindArmadillo
--------------
-
-Find the Armadillo C++ library.
-Armadillo is library for linear algebra & scientific computing.
-
-Using Armadillo:
-
-::
-
- find_package(Armadillo REQUIRED)
- include_directories(${ARMADILLO_INCLUDE_DIRS})
- add_executable(foo foo.cc)
- target_link_libraries(foo ${ARMADILLO_LIBRARIES})
-
-This module sets the following variables:
-
-::
-
- ARMADILLO_FOUND - set to true if the library is found
- ARMADILLO_INCLUDE_DIRS - list of required include directories
- ARMADILLO_LIBRARIES - list of libraries to be linked
- ARMADILLO_VERSION_MAJOR - major version number
- ARMADILLO_VERSION_MINOR - minor version number
- ARMADILLO_VERSION_PATCH - patch version number
- ARMADILLO_VERSION_STRING - version number as a string (ex: "1.0.4")
- ARMADILLO_VERSION_NAME - name of the version (ex: "Antipodean Antileech")
-#]=======================================================================]
-
-# UNIX paths are standard, no need to write.
-find_library(ARMADILLO_LIBRARY
- NAMES armadillo
- PATHS "$ENV{ProgramFiles}/Armadillo/lib" "$ENV{ProgramFiles}/Armadillo/lib64" "$ENV{ProgramFiles}/Armadillo"
- )
-find_path(ARMADILLO_INCLUDE_DIR
- NAMES armadillo
- PATHS "$ENV{ProgramFiles}/Armadillo/include"
- )
-
-
-if(ARMADILLO_INCLUDE_DIR)
-
- # ------------------------------------------------------------------------
- # Extract version information from <armadillo>
- # ------------------------------------------------------------------------
-
- # WARNING: Early releases of Armadillo didn't have the arma_version.hpp file.
- # (e.g. v.0.9.8-1 in ubuntu maverick packages (2001-03-15))
- # If the file is missing, set all values to 0
- set(ARMADILLO_VERSION_MAJOR 0)
- set(ARMADILLO_VERSION_MINOR 0)
- set(ARMADILLO_VERSION_PATCH 0)
- set(ARMADILLO_VERSION_NAME "EARLY RELEASE")
-
- if(EXISTS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/arma_version.hpp")
-
- # Read and parse armdillo version header file for version number
- file(STRINGS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/arma_version.hpp" _armadillo_HEADER_CONTENTS REGEX "#define ARMA_VERSION_[A-Z]+ ")
- string(REGEX REPLACE ".*#define ARMA_VERSION_MAJOR ([0-9]+).*" "\\1" ARMADILLO_VERSION_MAJOR "${_armadillo_HEADER_CONTENTS}")
- string(REGEX REPLACE ".*#define ARMA_VERSION_MINOR ([0-9]+).*" "\\1" ARMADILLO_VERSION_MINOR "${_armadillo_HEADER_CONTENTS}")
- string(REGEX REPLACE ".*#define ARMA_VERSION_PATCH ([0-9]+).*" "\\1" ARMADILLO_VERSION_PATCH "${_armadillo_HEADER_CONTENTS}")
-
- # WARNING: The number of spaces before the version name is not one.
- string(REGEX REPLACE ".*#define ARMA_VERSION_NAME +\"([0-9a-zA-Z _-]+)\".*" "\\1" ARMADILLO_VERSION_NAME "${_armadillo_HEADER_CONTENTS}")
-
- unset(_armadillo_HEADER_CONTENTS)
- endif()
-
- set(ARMADILLO_VERSION_STRING "${ARMADILLO_VERSION_MAJOR}.${ARMADILLO_VERSION_MINOR}.${ARMADILLO_VERSION_PATCH}")
-endif ()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(Armadillo
- REQUIRED_VARS ARMADILLO_LIBRARY ARMADILLO_INCLUDE_DIR
- VERSION_VAR ARMADILLO_VERSION_STRING)
-# version_var fails with cmake < 2.8.4.
-
-if (ARMADILLO_FOUND)
- set(ARMADILLO_INCLUDE_DIRS ${ARMADILLO_INCLUDE_DIR})
- set(ARMADILLO_LIBRARIES ${ARMADILLO_LIBRARY})
-endif ()
-
-# Hide internal variables
-mark_as_advanced(
- ARMADILLO_INCLUDE_DIR
- ARMADILLO_LIBRARY)
diff --git a/share/cmake-3.17/Modules/FindBISON.cmake b/share/cmake-3.17/Modules/FindBISON.cmake
deleted file mode 100644
index 6b5828e..0000000
--- a/share/cmake-3.17/Modules/FindBISON.cmake
+++ /dev/null
@@ -1,297 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindBISON
----------
-
-Find ``bison`` executable and provide a macro to generate custom build rules.
-
-The module defines the following variables:
-
-``BISON_EXECUTABLE``
- path to the ``bison`` program
-
-``BISON_VERSION``
- version of ``bison``
-
-``BISON_FOUND``
- "True" if the program was found
-
-The minimum required version of ``bison`` can be specified using the
-standard CMake syntax, e.g. :command:`find_package(BISON 2.1.3)`.
-
-If ``bison`` is found, the module defines the macro::
-
- BISON_TARGET(<Name> <YaccInput> <CodeOutput>
- [COMPILE_FLAGS <flags>]
- [DEFINES_FILE <file>]
- [VERBOSE [<file>]]
- [REPORT_FILE <file>]
- )
-
-which will create a custom rule to generate a parser. ``<YaccInput>`` is
-the path to a yacc file. ``<CodeOutput>`` is the name of the source file
-generated by bison. A header file is also be generated, and contains
-the token list.
-
-The options are:
-
-``COMPILE_FLAGS <flags>``
- Specify flags to be added to the ``bison`` command line.
-
-``DEFINES_FILE <file>``
- Specify a non-default header ``<file>`` to be generated by ``bison``.
-
-``VERBOSE [<file>]``
- Tell ``bison`` to write a report file of the grammar and parser.
- If ``<file>`` is given, it specifies path the report file is copied to.
- ``[<file>]`` is left for backward compatibility of this module.
- Use ``VERBOSE REPORT_FILE <file>``.
-
-``REPORT_FILE <file>``
- Specify a non-default report ``<file>``, if generated.
-
-The macro defines the following variables:
-
-``BISON_<Name>_DEFINED``
- ``True`` is the macro ran successfully
-
-``BISON_<Name>_INPUT``
- The input source file, an alias for <YaccInput>
-
-``BISON_<Name>_OUTPUT_SOURCE``
- The source file generated by bison
-
-``BISON_<Name>_OUTPUT_HEADER``
- The header file generated by bison
-
-``BISON_<Name>_OUTPUTS``
- All files generated by bison including the source, the header and the report
-
-``BISON_<Name>_COMPILE_FLAGS``
- Options used in the ``bison`` command line
-
-Example usage:
-
-.. code-block:: cmake
-
- find_package(BISON)
- BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
- DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/parser.h)
- add_executable(Foo main.cpp ${BISON_MyParser_OUTPUTS})
-#]=======================================================================]
-
-find_program(BISON_EXECUTABLE NAMES bison win_bison DOC "path to the bison executable")
-mark_as_advanced(BISON_EXECUTABLE)
-
-if(BISON_EXECUTABLE)
- # the bison commands should be executed with the C locale, otherwise
- # the message (which are parsed) may be translated
- set(_Bison_SAVED_LC_ALL "$ENV{LC_ALL}")
- set(ENV{LC_ALL} C)
-
- execute_process(COMMAND ${BISON_EXECUTABLE} --version
- OUTPUT_VARIABLE BISON_version_output
- ERROR_VARIABLE BISON_version_error
- RESULT_VARIABLE BISON_version_result
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- set(ENV{LC_ALL} ${_Bison_SAVED_LC_ALL})
-
- if(NOT ${BISON_version_result} EQUAL 0)
- message(SEND_ERROR "Command \"${BISON_EXECUTABLE} --version\" failed with output:\n${BISON_version_error}")
- else()
- # Bison++
- if("${BISON_version_output}" MATCHES "^bison\\+\\+ Version ([^,]+)")
- set(BISON_VERSION "${CMAKE_MATCH_1}")
- # GNU Bison
- elseif("${BISON_version_output}" MATCHES "^bison \\(GNU Bison\\) ([^\n]+)\n")
- set(BISON_VERSION "${CMAKE_MATCH_1}")
- elseif("${BISON_version_output}" MATCHES "^GNU Bison (version )?([^\n]+)")
- set(BISON_VERSION "${CMAKE_MATCH_2}")
- endif()
- endif()
-
- # internal macro
- # sets BISON_TARGET_cmdopt
- macro(BISON_TARGET_option_extraopts Options)
- set(BISON_TARGET_cmdopt "")
- set(BISON_TARGET_extraopts "${Options}")
- separate_arguments(BISON_TARGET_extraopts)
- list(APPEND BISON_TARGET_cmdopt ${BISON_TARGET_extraopts})
- endmacro()
-
- # internal macro
- # sets BISON_TARGET_output_header and BISON_TARGET_cmdopt
- macro(BISON_TARGET_option_defines BisonOutput Header)
- if("${Header}" STREQUAL "")
- # default header path generated by bison (see option -d)
- string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${BisonOutput}")
- string(REPLACE "c" "h" _fileext ${_fileext})
- string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}"
- BISON_TARGET_output_header "${BisonOutput}")
- list(APPEND BISON_TARGET_cmdopt "-d")
- else()
- set(BISON_TARGET_output_header "${Header}")
- list(APPEND BISON_TARGET_cmdopt "--defines=${BISON_TARGET_output_header}")
- endif()
- endmacro()
-
- # internal macro
- # sets BISON_TARGET_verbose_file and BISON_TARGET_cmdopt
- macro(BISON_TARGET_option_report_file BisonOutput ReportFile)
- if("${ReportFile}" STREQUAL "")
- get_filename_component(BISON_TARGET_output_path "${BisonOutput}" PATH)
- get_filename_component(BISON_TARGET_output_name "${BisonOutput}" NAME_WE)
- set(BISON_TARGET_verbose_file
- "${BISON_TARGET_output_path}/${BISON_TARGET_output_name}.output")
- else()
- set(BISON_TARGET_verbose_file "${ReportFile}")
- list(APPEND BISON_TARGET_cmdopt "--report-file=${BISON_TARGET_verbose_file}")
- endif()
- if(NOT IS_ABSOLUTE "${BISON_TARGET_verbose_file}")
- cmake_policy(GET CMP0088 _BISON_CMP0088
- PARENT_SCOPE # undocumented, do not use outside of CMake
- )
- if("x${_BISON_CMP0088}x" STREQUAL "xNEWx")
- set(BISON_TARGET_verbose_file "${CMAKE_CURRENT_BINARY_DIR}/${BISON_TARGET_verbose_file}")
- else()
- set(BISON_TARGET_verbose_file "${CMAKE_CURRENT_SOURCE_DIR}/${BISON_TARGET_verbose_file}")
- endif()
- unset(_BISON_CMP0088)
- endif()
- endmacro()
-
- # internal macro
- # adds a custom command and sets
- # BISON_TARGET_cmdopt, BISON_TARGET_extraoutputs
- macro(BISON_TARGET_option_verbose Name BisonOutput filename)
- cmake_policy(GET CMP0088 _BISON_CMP0088
- PARENT_SCOPE # undocumented, do not use outside of CMake
- )
- set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
- if("x${_BISON_CMP0088}x" STREQUAL "xNEWx")
- set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
- endif()
- unset(_BISON_CMP0088)
-
- list(APPEND BISON_TARGET_cmdopt "--verbose")
- list(APPEND BISON_TARGET_outputs
- "${BISON_TARGET_verbose_file}")
- if (NOT "${filename}" STREQUAL "")
- if(IS_ABSOLUTE "${filename}")
- set(BISON_TARGET_verbose_extra_file "${filename}")
- else()
- set(BISON_TARGET_verbose_extra_file "${_BISON_WORKING_DIRECTORY}/${filename}")
- endif()
-
- add_custom_command(OUTPUT ${BISON_TARGET_verbose_extra_file}
- COMMAND ${CMAKE_COMMAND} -E copy
- "${BISON_TARGET_verbose_file}"
- "${filename}"
- VERBATIM
- DEPENDS
- "${BISON_TARGET_verbose_file}"
- COMMENT "[BISON][${Name}] Copying bison verbose table to ${filename}"
- WORKING_DIRECTORY ${_BISON_WORKING_DIRECTORY})
- list(APPEND BISON_TARGET_extraoutputs
- "${BISON_TARGET_verbose_extra_file}")
- unset(BISON_TARGET_verbose_extra_file)
- unset(_BISON_WORKING_DIRECTORY)
- endif()
- endmacro()
-
- #============================================================
- # BISON_TARGET (public macro)
- #============================================================
- #
- macro(BISON_TARGET Name BisonInput BisonOutput)
- set(BISON_TARGET_outputs "${BisonOutput}")
- set(BISON_TARGET_extraoutputs "")
-
- # Parsing parameters
- set(BISON_TARGET_PARAM_OPTIONS
- )
- set(BISON_TARGET_PARAM_ONE_VALUE_KEYWORDS
- COMPILE_FLAGS
- DEFINES_FILE
- REPORT_FILE
- )
- set(BISON_TARGET_PARAM_MULTI_VALUE_KEYWORDS
- VERBOSE
- )
- cmake_parse_arguments(
- BISON_TARGET_ARG
- "${BISON_TARGET_PARAM_OPTIONS}"
- "${BISON_TARGET_PARAM_ONE_VALUE_KEYWORDS}"
- "${BISON_TARGET_PARAM_MULTI_VALUE_KEYWORDS}"
- ${ARGN}
- )
-
- if(NOT "${BISON_TARGET_ARG_UNPARSED_ARGUMENTS}" STREQUAL "")
- message(SEND_ERROR "Usage")
- elseif("${BISON_TARGET_ARG_VERBOSE}" MATCHES ";")
- # [VERBOSE [<file>] hack: <file> is non-multi value by usage
- message(SEND_ERROR "Usage")
- else()
-
- BISON_TARGET_option_extraopts("${BISON_TARGET_ARG_COMPILE_FLAGS}")
- BISON_TARGET_option_defines("${BisonOutput}" "${BISON_TARGET_ARG_DEFINES_FILE}")
- BISON_TARGET_option_report_file("${BisonOutput}" "${BISON_TARGET_ARG_REPORT_FILE}")
- if(NOT "${BISON_TARGET_ARG_VERBOSE}" STREQUAL "")
- BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${BISON_TARGET_ARG_VERBOSE}")
- else()
- # [VERBOSE [<file>]] is used with no argument or is not used
- set(BISON_TARGET_args "${ARGN}")
- list(FIND BISON_TARGET_args "VERBOSE" BISON_TARGET_args_indexof_verbose)
- if(${BISON_TARGET_args_indexof_verbose} GREATER -1)
- # VERBOSE is used without <file>
- BISON_TARGET_option_verbose(${Name} ${BisonOutput} "")
- endif()
- endif()
-
- list(APPEND BISON_TARGET_outputs "${BISON_TARGET_output_header}")
-
- cmake_policy(GET CMP0088 _BISON_CMP0088
- PARENT_SCOPE # undocumented, do not use outside of CMake
- )
- set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
- set(_BisonInput "${BisonInput}")
- if("x${_BISON_CMP0088}x" STREQUAL "xNEWx")
- set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
- if(NOT IS_ABSOLUTE "${_BisonInput}")
- set(_BisonInput "${CMAKE_CURRENT_SOURCE_DIR}/${_BisonInput}")
- endif()
- endif()
- unset(_BISON_CMP0088)
-
- add_custom_command(OUTPUT ${BISON_TARGET_outputs}
- COMMAND ${BISON_EXECUTABLE} ${BISON_TARGET_cmdopt} -o ${BisonOutput} ${_BisonInput}
- VERBATIM
- DEPENDS ${_BisonInput}
- COMMENT "[BISON][${Name}] Building parser with bison ${BISON_VERSION}"
- WORKING_DIRECTORY ${_BISON_WORKING_DIRECTORY})
-
- unset(_BISON_WORKING_DIRECTORY)
-
- # define target variables
- set(BISON_${Name}_DEFINED TRUE)
- set(BISON_${Name}_INPUT ${_BisonInput})
- set(BISON_${Name}_OUTPUTS ${BISON_TARGET_outputs} ${BISON_TARGET_extraoutputs})
- set(BISON_${Name}_COMPILE_FLAGS ${BISON_TARGET_cmdopt})
- set(BISON_${Name}_OUTPUT_SOURCE "${BisonOutput}")
- set(BISON_${Name}_OUTPUT_HEADER "${BISON_TARGET_output_header}")
-
- unset(_BisonInput)
-
- endif()
- endmacro()
- #
- #============================================================
-
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(BISON REQUIRED_VARS BISON_EXECUTABLE
- VERSION_VAR BISON_VERSION)
diff --git a/share/cmake-3.17/Modules/FindBLAS.cmake b/share/cmake-3.17/Modules/FindBLAS.cmake
deleted file mode 100644
index 9b6d09c..0000000
--- a/share/cmake-3.17/Modules/FindBLAS.cmake
+++ /dev/null
@@ -1,902 +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 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.17/Modules/FindBoost.cmake b/share/cmake-3.17/Modules/FindBoost.cmake
deleted file mode 100644
index 3c52466..0000000
--- a/share/cmake-3.17/Modules/FindBoost.cmake
+++ /dev/null
@@ -1,2358 +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
-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.17/Modules/FindCUDA.cmake b/share/cmake-3.17/Modules/FindCUDA.cmake
deleted file mode 100644
index e1af2d6..0000000
--- a/share/cmake-3.17/Modules/FindCUDA.cmake
+++ /dev/null
@@ -1,2024 +0,0 @@
-#[=======================================================================[.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.17/Modules/FindCUDA/select_compute_arch.cmake b/share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake
deleted file mode 100644
index 7ddb709..0000000
--- a/share/cmake-3.17/Modules/FindCUDA/select_compute_arch.cmake
+++ /dev/null
@@ -1,271 +0,0 @@
-# Synopsis:
-# 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 Volta Turing
-# 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 7.0 7.2 7.5
-# 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
-#
-
-if(CMAKE_CUDA_COMPILER_LOADED) # CUDA as a language
- if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA"
- AND CMAKE_CUDA_COMPILER_VERSION MATCHES "^([0-9]+\\.[0-9]+)")
- set(CUDA_VERSION "${CMAKE_MATCH_1}")
- endif()
-endif()
-
-# See: https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-feature-list
-
-# This list will be used for CUDA_ARCH_NAME = All option
-set(CUDA_KNOWN_GPU_ARCHITECTURES "Fermi" "Kepler" "Maxwell")
-
-# This list will be used for CUDA_ARCH_NAME = Common option (enabled by default)
-set(CUDA_COMMON_GPU_ARCHITECTURES "3.0" "3.5" "5.0")
-
-if(CUDA_VERSION VERSION_LESS "7.0")
- set(CUDA_LIMIT_GPU_ARCHITECTURE "5.2")
-endif()
-
-# This list is used to filter CUDA archs when autodetecting
-set(CUDA_ALL_GPU_ARCHITECTURES "3.0" "3.2" "3.5" "5.0")
-
-if(CUDA_VERSION VERSION_GREATER_EQUAL "7.0")
- list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Kepler+Tegra" "Kepler+Tesla" "Maxwell+Tegra")
- list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "5.2")
-
- if(CUDA_VERSION VERSION_LESS "8.0")
- list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "5.2+PTX")
- set(CUDA_LIMIT_GPU_ARCHITECTURE "6.0")
- endif()
-endif()
-
-if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0")
- list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Pascal")
- list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "6.0" "6.1")
- list(APPEND CUDA_ALL_GPU_ARCHITECTURES "6.0" "6.1" "6.2")
-
- if(CUDA_VERSION VERSION_LESS "9.0")
- list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "6.1+PTX")
- set(CUDA_LIMIT_GPU_ARCHITECTURE "7.0")
- endif()
-endif ()
-
-if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
- list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Volta")
- list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.0" "7.0+PTX")
- list(APPEND CUDA_ALL_GPU_ARCHITECTURES "7.0" "7.0+PTX" "7.2" "7.2+PTX")
-
- if(CUDA_VERSION VERSION_LESS "10.0")
- set(CUDA_LIMIT_GPU_ARCHITECTURE "8.0")
- endif()
-endif()
-
-if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
- list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Turing")
- list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.5" "7.5+PTX")
- list(APPEND CUDA_ALL_GPU_ARCHITECTURES "7.5" "7.5+PTX")
-
- if(CUDA_VERSION VERSION_LESS "11.0")
- set(CUDA_LIMIT_GPU_ARCHITECTURE "9.0")
- endif()
-endif()
-
-################################################################################################
-# A function for automatic detection of GPUs installed (if autodetection is enabled)
-# Usage:
-# CUDA_DETECT_INSTALLED_GPUS(OUT_VARIABLE)
-#
-function(CUDA_DETECT_INSTALLED_GPUS OUT_VARIABLE)
- if(NOT CUDA_GPU_DETECT_OUTPUT)
- if(CMAKE_CUDA_COMPILER_LOADED) # CUDA as a language
- set(file "${PROJECT_BINARY_DIR}/detect_cuda_compute_capabilities.cu")
- else()
- set(file "${PROJECT_BINARY_DIR}/detect_cuda_compute_capabilities.cpp")
- endif()
-
- file(WRITE ${file} ""
- "#include <cuda_runtime.h>\n"
- "#include <cstdio>\n"
- "int main()\n"
- "{\n"
- " int count = 0;\n"
- " if (cudaSuccess != cudaGetDeviceCount(&count)) return -1;\n"
- " if (count == 0) return -1;\n"
- " for (int device = 0; device < count; ++device)\n"
- " {\n"
- " cudaDeviceProp prop;\n"
- " if (cudaSuccess == cudaGetDeviceProperties(&prop, device))\n"
- " std::printf(\"%d.%d \", prop.major, prop.minor);\n"
- " }\n"
- " return 0;\n"
- "}\n")
-
- if(CMAKE_CUDA_COMPILER_LOADED) # CUDA as a language
- try_run(run_result compile_result ${PROJECT_BINARY_DIR} ${file}
- RUN_OUTPUT_VARIABLE compute_capabilities)
- else()
- try_run(run_result compile_result ${PROJECT_BINARY_DIR} ${file}
- CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${CUDA_INCLUDE_DIRS}"
- LINK_LIBRARIES ${CUDA_LIBRARIES}
- RUN_OUTPUT_VARIABLE compute_capabilities)
- endif()
-
- # Filter unrelated content out of the output.
- string(REGEX MATCHALL "[0-9]+\\.[0-9]+" compute_capabilities "${compute_capabilities}")
-
- if(run_result EQUAL 0)
- string(REPLACE "2.1" "2.1(2.0)" compute_capabilities "${compute_capabilities}")
- set(CUDA_GPU_DETECT_OUTPUT ${compute_capabilities}
- CACHE INTERNAL "Returned GPU architectures from detect_gpus tool" FORCE)
- endif()
- endif()
-
- if(NOT CUDA_GPU_DETECT_OUTPUT)
- message(STATUS "Automatic GPU detection failed. Building for common architectures.")
- set(${OUT_VARIABLE} ${CUDA_COMMON_GPU_ARCHITECTURES} PARENT_SCOPE)
- else()
- # Filter based on CUDA version supported archs
- set(CUDA_GPU_DETECT_OUTPUT_FILTERED "")
- separate_arguments(CUDA_GPU_DETECT_OUTPUT)
- foreach(ITEM IN ITEMS ${CUDA_GPU_DETECT_OUTPUT})
- if(CUDA_LIMIT_GPU_ARCHITECTURE AND ITEM VERSION_GREATER_EQUAL CUDA_LIMIT_GPU_ARCHITECTURE)
- list(GET CUDA_COMMON_GPU_ARCHITECTURES -1 NEWITEM)
- string(APPEND CUDA_GPU_DETECT_OUTPUT_FILTERED " ${NEWITEM}")
- else()
- string(APPEND CUDA_GPU_DETECT_OUTPUT_FILTERED " ${ITEM}")
- endif()
- endforeach()
-
- set(${OUT_VARIABLE} ${CUDA_GPU_DETECT_OUTPUT_FILTERED} PARENT_SCOPE)
- endif()
-endfunction()
-
-
-################################################################################################
-# Function for selecting GPU arch flags for nvcc based on CUDA architectures from parameter list
-# Usage:
-# SELECT_NVCC_ARCH_FLAGS(out_variable [list of CUDA compute archs])
-function(CUDA_SELECT_NVCC_ARCH_FLAGS out_variable)
- set(CUDA_ARCH_LIST "${ARGN}")
-
- if("X${CUDA_ARCH_LIST}" STREQUAL "X" )
- set(CUDA_ARCH_LIST "Auto")
- endif()
-
- set(cuda_arch_bin)
- set(cuda_arch_ptx)
-
- if("${CUDA_ARCH_LIST}" STREQUAL "All")
- set(CUDA_ARCH_LIST ${CUDA_KNOWN_GPU_ARCHITECTURES})
- elseif("${CUDA_ARCH_LIST}" STREQUAL "Common")
- set(CUDA_ARCH_LIST ${CUDA_COMMON_GPU_ARCHITECTURES})
- elseif("${CUDA_ARCH_LIST}" STREQUAL "Auto")
- CUDA_DETECT_INSTALLED_GPUS(CUDA_ARCH_LIST)
- message(STATUS "Autodetected CUDA architecture(s): ${CUDA_ARCH_LIST}")
- endif()
-
- # Now process the list and look for names
- string(REGEX REPLACE "[ \t]+" ";" CUDA_ARCH_LIST "${CUDA_ARCH_LIST}")
- list(REMOVE_DUPLICATES CUDA_ARCH_LIST)
- foreach(arch_name ${CUDA_ARCH_LIST})
- set(arch_bin)
- set(arch_ptx)
- set(add_ptx FALSE)
- # Check to see if we are compiling PTX
- if(arch_name MATCHES "(.*)\\+PTX$")
- set(add_ptx TRUE)
- set(arch_name ${CMAKE_MATCH_1})
- endif()
- if(arch_name MATCHES "^([0-9]\\.[0-9](\\([0-9]\\.[0-9]\\))?)$")
- set(arch_bin ${CMAKE_MATCH_1})
- set(arch_ptx ${arch_bin})
- else()
- # Look for it in our list of known architectures
- if(${arch_name} STREQUAL "Fermi")
- set(arch_bin 2.0 "2.1(2.0)")
- elseif(${arch_name} STREQUAL "Kepler+Tegra")
- set(arch_bin 3.2)
- elseif(${arch_name} STREQUAL "Kepler+Tesla")
- set(arch_bin 3.7)
- elseif(${arch_name} STREQUAL "Kepler")
- set(arch_bin 3.0 3.5)
- set(arch_ptx 3.5)
- elseif(${arch_name} STREQUAL "Maxwell+Tegra")
- set(arch_bin 5.3)
- elseif(${arch_name} STREQUAL "Maxwell")
- set(arch_bin 5.0 5.2)
- set(arch_ptx 5.2)
- elseif(${arch_name} STREQUAL "Pascal")
- set(arch_bin 6.0 6.1)
- set(arch_ptx 6.1)
- elseif(${arch_name} STREQUAL "Volta")
- set(arch_bin 7.0 7.0)
- set(arch_ptx 7.0)
- elseif(${arch_name} STREQUAL "Turing")
- set(arch_bin 7.5)
- set(arch_ptx 7.5)
- else()
- message(SEND_ERROR "Unknown CUDA Architecture Name ${arch_name} in CUDA_SELECT_NVCC_ARCH_FLAGS")
- endif()
- endif()
- if(NOT arch_bin)
- message(SEND_ERROR "arch_bin wasn't set for some reason")
- endif()
- list(APPEND cuda_arch_bin ${arch_bin})
- if(add_ptx)
- if (NOT arch_ptx)
- set(arch_ptx ${arch_bin})
- endif()
- list(APPEND cuda_arch_ptx ${arch_ptx})
- endif()
- endforeach()
-
- # remove dots and convert to lists
- string(REGEX REPLACE "\\." "" cuda_arch_bin "${cuda_arch_bin}")
- string(REGEX REPLACE "\\." "" cuda_arch_ptx "${cuda_arch_ptx}")
- string(REGEX MATCHALL "[0-9()]+" cuda_arch_bin "${cuda_arch_bin}")
- string(REGEX MATCHALL "[0-9]+" cuda_arch_ptx "${cuda_arch_ptx}")
-
- if(cuda_arch_bin)
- list(REMOVE_DUPLICATES cuda_arch_bin)
- endif()
- if(cuda_arch_ptx)
- list(REMOVE_DUPLICATES cuda_arch_ptx)
- endif()
-
- set(nvcc_flags "")
- set(nvcc_archs_readable "")
-
- # Tell NVCC to add binaries for the specified GPUs
- foreach(arch ${cuda_arch_bin})
- if(arch MATCHES "([0-9]+)\\(([0-9]+)\\)")
- # User explicitly specified ARCH for the concrete CODE
- list(APPEND nvcc_flags -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1})
- list(APPEND nvcc_archs_readable sm_${CMAKE_MATCH_1})
- else()
- # User didn't explicitly specify ARCH for the concrete CODE, we assume ARCH=CODE
- list(APPEND nvcc_flags -gencode arch=compute_${arch},code=sm_${arch})
- list(APPEND nvcc_archs_readable sm_${arch})
- endif()
- endforeach()
-
- # Tell NVCC to add PTX intermediate code for the specified architectures
- foreach(arch ${cuda_arch_ptx})
- list(APPEND nvcc_flags -gencode arch=compute_${arch},code=compute_${arch})
- list(APPEND nvcc_archs_readable compute_${arch})
- endforeach()
-
- string(REPLACE ";" " " nvcc_archs_readable "${nvcc_archs_readable}")
- set(${out_variable} ${nvcc_flags} PARENT_SCOPE)
- set(${out_variable}_readable ${nvcc_archs_readable} PARENT_SCOPE)
-endfunction()
diff --git a/share/cmake-3.17/Modules/FindCUDAToolkit.cmake b/share/cmake-3.17/Modules/FindCUDAToolkit.cmake
deleted file mode 100644
index 4b14ddc..0000000
--- a/share/cmake-3.17/Modules/FindCUDAToolkit.cmake
+++ /dev/null
@@ -1,870 +0,0 @@
-# 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
deleted file mode 100644
index 919babc..0000000
--- a/share/cmake-3.17/Modules/FindCURL.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:
-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.17/Modules/FindDoxygen.cmake b/share/cmake-3.17/Modules/FindDoxygen.cmake
deleted file mode 100644
index faa03f9..0000000
--- a/share/cmake-3.17/Modules/FindDoxygen.cmake
+++ /dev/null
@@ -1,1158 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindDoxygen
------------
-
-Doxygen is a documentation generation tool (see http://www.doxygen.org).
-This module looks for Doxygen and some optional tools it supports. These
-tools are enabled as components in the :command:`find_package` command:
-
-``dot``
- `Graphviz <http://graphviz.org>`_ ``dot`` utility used to render various
- graphs.
-``mscgen``
- `Message Chart Generator <http://www.mcternan.me.uk/mscgen/>`_ utility used
- by Doxygen's ``\msc`` and ``\mscfile`` commands.
-``dia``
- `Dia <https://wiki.gnome.org/Apps/Dia>`_ the diagram editor used by Doxygen's
- ``\diafile`` command.
-
-Examples:
-
-.. code-block:: cmake
-
- # Require dot, treat the other components as optional
- find_package(Doxygen
- REQUIRED dot
- OPTIONAL_COMPONENTS mscgen dia)
-
-The following variables are defined by this module:
-
-.. variable:: DOXYGEN_FOUND
-
- True if the ``doxygen`` executable was found.
-
-.. variable:: DOXYGEN_VERSION
-
- The version reported by ``doxygen --version``.
-
-The module defines ``IMPORTED`` targets for Doxygen and each component found.
-These can be used as part of custom commands, etc. and should be preferred over
-old-style (and now deprecated) variables like ``DOXYGEN_EXECUTABLE``. The
-following import targets are defined if their corresponding executable could be
-found (the component import targets will only be defined if that component was
-requested):
-
-::
-
- Doxygen::doxygen
- Doxygen::dot
- Doxygen::mscgen
- Doxygen::dia
-
-
-Functions
-^^^^^^^^^
-
-.. command:: doxygen_add_docs
-
- This function is intended as a convenience for adding a target for generating
- documentation with Doxygen. It aims to provide sensible defaults so that
- projects can generally just provide the input files and directories and that
- will be sufficient to give sensible results. The function supports the
- ability to customize the Doxygen configuration used to build the
- documentation.
-
- ::
-
- doxygen_add_docs(targetName
- [filesOrDirs...]
- [ALL]
- [USE_STAMP_FILE]
- [WORKING_DIRECTORY dir]
- [COMMENT comment])
-
- The function constructs a ``Doxyfile`` and defines a custom target that runs
- Doxygen on that generated file. The listed files and directories are used as
- the ``INPUT`` of the generated ``Doxyfile`` and they can contain wildcards.
- Any files that are listed explicitly will also be added as ``SOURCES`` of the
- custom target so they will show up in an IDE project's source list.
-
- So that relative input paths work as expected, by default the working
- directory of the Doxygen command will be the current source directory (i.e.
- :variable:`CMAKE_CURRENT_SOURCE_DIR`). This can be overridden with the
- ``WORKING_DIRECTORY`` option to change the directory used as the relative
- base point. Note also that Doxygen's default behavior is to strip the working
- directory from relative paths in the generated documentation (see the
- ``STRIP_FROM_PATH`` `Doxygen config option
- <http://www.doxygen.org/manual/config.html>`_ for details).
-
- If provided, the optional ``comment`` will be passed as the ``COMMENT`` for
- the :command:`add_custom_target` command used to create the custom target
- internally.
-
- If ``ALL`` is set, the target will be added to the default build target.
-
- If ``USE_STAMP_FILE`` is set, the custom command defined by this function will
- create a stamp file with the name ``<targetName>.stamp`` in the current
- binary directory whenever doxygen is re-run. With this option present, all
- items in ``<filesOrDirs>`` must be files (i.e. no directories, symlinks or
- wildcards) and each of the files must exist at the time
- ``doxygen_add_docs()`` is called. An error will be raised if any of the
- items listed is missing or is not a file when ``USE_STAMP_FILE`` is given.
- A dependency will be created on each of the files so that doxygen will only
- be re-run if one of the files is updated. Without the ``USE_STAMP_FILE``
- option, doxygen will always be re-run if the ``<targetName>`` target is built
- regardless of whether anything listed in ``<filesOrDirs>`` has changed.
-
- The contents of the generated ``Doxyfile`` can be customized by setting CMake
- variables before calling ``doxygen_add_docs()``. Any variable with a name of
- the form ``DOXYGEN_<tag>`` will have its value substituted for the
- corresponding ``<tag>`` configuration option in the ``Doxyfile``. See the
- `Doxygen documentation <http://www.doxygen.org/manual/config.html>`_ for the
- full list of supported configuration options.
-
- Some of Doxygen's defaults are overridden to provide more appropriate
- behavior for a CMake project. Each of the following will be explicitly set
- unless the variable already has a value before ``doxygen_add_docs()`` is
- called (with some exceptions noted):
-
- .. variable:: DOXYGEN_HAVE_DOT
-
- Set to ``YES`` if the ``dot`` component was requested and it was found,
- ``NO`` otherwise. Any existing value of ``DOXYGEN_HAVE_DOT`` is ignored.
-
- .. variable:: DOXYGEN_DOT_MULTI_TARGETS
-
- Set to ``YES`` by this module (note that this requires a ``dot`` version
- newer than 1.8.10). This option is only meaningful if ``DOXYGEN_HAVE_DOT``
- is also set to ``YES``.
-
- .. variable:: DOXYGEN_GENERATE_LATEX
-
- Set to ``NO`` by this module.
-
- .. variable:: DOXYGEN_WARN_FORMAT
-
- For Visual Studio based generators, this is set to the form recognized by
- the Visual Studio IDE: ``$file($line) : $text``. For all other generators,
- Doxygen's default value is not overridden.
-
- .. variable:: DOXYGEN_PROJECT_NAME
-
- Populated with the name of the current project (i.e.
- :variable:`PROJECT_NAME`).
-
- .. variable:: DOXYGEN_PROJECT_NUMBER
-
- Populated with the version of the current project (i.e.
- :variable:`PROJECT_VERSION`).
-
- .. variable:: DOXYGEN_PROJECT_BRIEF
-
- Populated with the description of the current project (i.e.
- :variable:`PROJECT_DESCRIPTION`).
-
- .. variable:: DOXYGEN_INPUT
-
- Projects should not set this variable. It will be populated with the set of
- files and directories passed to ``doxygen_add_docs()``, thereby providing
- consistent behavior with the other built-in commands like
- :command:`add_executable`, :command:`add_library` and
- :command:`add_custom_target`. If a variable named ``DOXYGEN_INPUT`` is set
- by the project, it will be ignored and a warning will be issued.
-
- .. variable:: DOXYGEN_RECURSIVE
-
- Set to ``YES`` by this module.
-
- .. variable:: DOXYGEN_EXCLUDE_PATTERNS
-
- If the set of inputs includes directories, this variable will specify
- patterns used to exclude files from them. The following patterns are added
- by ``doxygen_add_docs()`` to ensure CMake-specific files and directories
- are not included in the input. If the project sets
- ``DOXYGEN_EXCLUDE_PATTERNS``, those contents are merged with these
- additional patterns rather than replacing them:
-
- ::
-
- */.git/*
- */.svn/*
- */.hg/*
- */CMakeFiles/*
- */_CPack_Packages/*
- DartConfiguration.tcl
- CMakeLists.txt
- CMakeCache.txt
-
- .. variable:: DOXYGEN_OUTPUT_DIRECTORY
-
- Set to :variable:`CMAKE_CURRENT_BINARY_DIR` by this module. Note that if
- the project provides its own value for this and it is a relative path, it
- will be converted to an absolute path relative to the current binary
- directory. This is necessary because doxygen will normally be run from a
- directory within the source tree so that relative source paths work as
- expected. If this directory does not exist, it will be recursively created
- prior to executing the doxygen commands.
-
-To change any of these defaults or override any other Doxygen config option,
-set relevant variables before calling ``doxygen_add_docs()``. For example:
-
- .. code-block:: cmake
-
- set(DOXYGEN_GENERATE_HTML NO)
- set(DOXYGEN_GENERATE_MAN YES)
-
- doxygen_add_docs(
- doxygen
- ${PROJECT_SOURCE_DIR}
- COMMENT "Generate man pages"
- )
-
-A number of Doxygen config options accept lists of values, but Doxygen requires
-them to be separated by whitespace. CMake variables hold lists as a string with
-items separated by semi-colons, so a conversion needs to be performed. The
-``doxygen_add_docs()`` command specifically checks the following Doxygen config
-options and will convert their associated CMake variable's contents into the
-required form if set.
-
-::
-
- ABBREVIATE_BRIEF
- ALIASES
- CITE_BIB_FILES
- DIAFILE_DIRS
- DOTFILE_DIRS
- DOT_FONTPATH
- ENABLED_SECTIONS
- EXAMPLE_PATH
- EXAMPLE_PATTERNS
- EXCLUDE
- EXCLUDE_PATTERNS
- EXCLUDE_SYMBOLS
- EXPAND_AS_DEFINED
- EXTENSION_MAPPING
- EXTRA_PACKAGES
- EXTRA_SEARCH_MAPPINGS
- FILE_PATTERNS
- FILTER_PATTERNS
- FILTER_SOURCE_PATTERNS
- HTML_EXTRA_FILES
- HTML_EXTRA_STYLESHEET
- IGNORE_PREFIX
- IMAGE_PATH
- INCLUDE_FILE_PATTERNS
- INCLUDE_PATH
- INPUT
- LATEX_EXTRA_FILES
- LATEX_EXTRA_STYLESHEET
- MATHJAX_EXTENSIONS
- MSCFILE_DIRS
- PLANTUML_INCLUDE_PATH
- PREDEFINED
- QHP_CUST_FILTER_ATTRS
- QHP_SECT_FILTER_ATTRS
- STRIP_FROM_INC_PATH
- STRIP_FROM_PATH
- TAGFILES
- TCL_SUBST
-
-The following single value Doxygen options will be quoted automatically
-if they contain at least one space:
-
-::
-
- CHM_FILE
- DIA_PATH
- DOCBOOK_OUTPUT
- DOCSET_FEEDNAME
- DOCSET_PUBLISHER_NAME
- DOT_FONTNAME
- DOT_PATH
- EXTERNAL_SEARCH_ID
- FILE_VERSION_FILTER
- GENERATE_TAGFILE
- HHC_LOCATION
- HTML_FOOTER
- HTML_HEADER
- HTML_OUTPUT
- HTML_STYLESHEET
- INPUT_FILTER
- LATEX_FOOTER
- LATEX_HEADER
- LATEX_OUTPUT
- LAYOUT_FILE
- MAN_OUTPUT
- MAN_SUBDIR
- MATHJAX_CODEFILE
- MSCGEN_PATH
- OUTPUT_DIRECTORY
- PERL_PATH
- PLANTUML_JAR_PATH
- PROJECT_BRIEF
- PROJECT_LOGO
- PROJECT_NAME
- QCH_FILE
- QHG_LOCATION
- QHP_CUST_FILTER_NAME
- QHP_VIRTUAL_FOLDER
- RTF_EXTENSIONS_FILE
- RTF_OUTPUT
- RTF_STYLESHEET_FILE
- SEARCHDATA_FILE
- USE_MDFILE_AS_MAINPAGE
- WARN_FORMAT
- WARN_LOGFILE
- XML_OUTPUT
-
-There are situations where it may be undesirable for a particular config option
-to be automatically quoted by ``doxygen_add_docs()``, such as ``ALIASES`` which
-may need to include its own embedded quoting. The ``DOXYGEN_VERBATIM_VARS``
-variable can be used to specify a list of Doxygen variables (including the
-leading ``DOXYGEN_`` prefix) which should not be quoted. The project is then
-responsible for ensuring that those variables' values make sense when placed
-directly in the Doxygen input file. In the case of list variables, list items
-are still separated by spaces, it is only the automatic quoting that is
-skipped. For example, the following allows ``doxygen_add_docs()`` to apply
-quoting to ``DOXYGEN_PROJECT_BRIEF``, but not each item in the
-``DOXYGEN_ALIASES`` list (:ref:`bracket syntax <Bracket Argument>` can also
-be used to make working with embedded quotes easier):
-
-.. code-block:: cmake
-
- set(DOXYGEN_PROJECT_BRIEF "String with spaces")
- set(DOXYGEN_ALIASES
- [[somealias="@some_command param"]]
- "anotherAlias=@foobar"
- )
- set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES)
-
-The resultant ``Doxyfile`` will contain the following lines:
-
-.. code-block:: text
-
- PROJECT_BRIEF = "String with spaces"
- ALIASES = somealias="@some_command param" anotherAlias=@foobar
-
-
-Deprecated Result Variables
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-For compatibility with previous versions of CMake, the following variables
-are also defined but they are deprecated and should no longer be used:
-
-.. variable:: DOXYGEN_EXECUTABLE
-
- The path to the ``doxygen`` command. If projects need to refer to the
- ``doxygen`` executable directly, they should use the ``Doxygen::doxygen``
- import target instead.
-
-.. variable:: DOXYGEN_DOT_FOUND
-
- True if the ``dot`` executable was found.
-
-.. variable:: DOXYGEN_DOT_EXECUTABLE
-
- The path to the ``dot`` command. If projects need to refer to the ``dot``
- executable directly, they should use the ``Doxygen::dot`` import target
- instead.
-
-.. variable:: DOXYGEN_DOT_PATH
-
- The path to the directory containing the ``dot`` executable as reported in
- ``DOXYGEN_DOT_EXECUTABLE``. The path may have forward slashes even on Windows
- and is not suitable for direct substitution into a ``Doxyfile.in`` template.
- If you need this value, get the :prop_tgt:`IMPORTED_LOCATION` property of the
- ``Doxygen::dot`` target and use :command:`get_filename_component` to extract
- the directory part of that path. You may also want to consider using
- :command:`file(TO_NATIVE_PATH)` to prepare the path for a Doxygen
- configuration file.
-
-
-Deprecated Hint Variables
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. variable:: DOXYGEN_SKIP_DOT
-
- This variable has no effect for the component form of ``find_package``.
- In backward compatibility mode (i.e. without components list) it prevents
- the finder module from searching for Graphviz's ``dot`` utility.
-
-#]=======================================================================]
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-# For backwards compatibility support
-if(Doxygen_FIND_QUIETLY)
- set(DOXYGEN_FIND_QUIETLY TRUE)
-endif()
-
-# ===== Rationale for OS X AppBundle mods below =====
-# With the OS X GUI version, Doxygen likes to be installed to /Applications
-# and it contains the doxygen executable in the bundle. In the versions I've
-# seen, it is located in Resources, but in general, more often binaries are
-# located in MacOS.
-#
-# NOTE: The official Doxygen.app distributed for OS X uses non-standard
-# conventions. Instead of the command-line "doxygen" tool being placed in
-# Doxygen.app/Contents/MacOS, "Doxywizard" is placed there instead and
-# "doxygen" is placed in Contents/Resources. This is most likely done
-# so that something happens when people double-click on the Doxygen.app
-# package. Unfortunately, CMake gets confused by this as when it sees the
-# bundle it uses "Doxywizard" as the executable to use instead of
-# "doxygen". Therefore to work-around this issue we temporarily disable
-# the app-bundle feature, just for this CMake module:
-#
-if(APPLE)
- # Save the old setting
- set(TEMP_DOXYGEN_SAVE_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE})
- # Disable the App-bundle detection feature
- set(CMAKE_FIND_APPBUNDLE "NEVER")
-endif()
-# FYI:
-# In older versions of OS X Doxygen, dot was included with the Doxygen bundle,
-# but newer versions require you to download Graphviz.app which contains "dot"
-# or use something like homebrew.
-# ============== End OSX stuff ================
-
-#
-# Find Doxygen...
-#
-macro(_Doxygen_find_doxygen)
- find_program(
- DOXYGEN_EXECUTABLE
- NAMES doxygen
- PATHS
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\doxygen_is1;Inno Setup: App Path]/bin"
- /Applications/Doxygen.app/Contents/Resources
- /Applications/Doxygen.app/Contents/MacOS
- /Applications/Utilities/Doxygen.app/Contents/Resources
- /Applications/Utilities/Doxygen.app/Contents/MacOS
- DOC "Doxygen documentation generation tool (http://www.doxygen.org)"
- )
- mark_as_advanced(DOXYGEN_EXECUTABLE)
-
- if(DOXYGEN_EXECUTABLE)
- execute_process(
- COMMAND "${DOXYGEN_EXECUTABLE}" --version
- OUTPUT_VARIABLE DOXYGEN_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE _Doxygen_version_result
- )
- if(_Doxygen_version_result)
- message(WARNING "Unable to determine doxygen version: ${_Doxygen_version_result}")
- endif()
-
- # Create an imported target for Doxygen
- if(NOT TARGET Doxygen::doxygen)
- add_executable(Doxygen::doxygen IMPORTED GLOBAL)
- set_target_properties(Doxygen::doxygen PROPERTIES
- IMPORTED_LOCATION "${DOXYGEN_EXECUTABLE}"
- )
- endif()
- endif()
-endmacro()
-
-#
-# Find Diagram Editor...
-#
-macro(_Doxygen_find_dia)
- set(_x86 "(x86)")
- find_program(
- DOXYGEN_DIA_EXECUTABLE
- NAMES dia
- PATHS
- "$ENV{ProgramFiles}/Dia"
- "$ENV{ProgramFiles${_x86}}/Dia"
- DOC "Diagram Editor tool for use with Doxygen"
- )
- mark_as_advanced(DOXYGEN_DIA_EXECUTABLE)
-
- if(DOXYGEN_DIA_EXECUTABLE)
- # The Doxyfile wants the path to the utility, not the entire path
- # including file name
- get_filename_component(DOXYGEN_DIA_PATH
- "${DOXYGEN_DIA_EXECUTABLE}"
- DIRECTORY)
- if(WIN32)
- file(TO_NATIVE_PATH "${DOXYGEN_DIA_PATH}" DOXYGEN_DIA_PATH)
- endif()
-
- # Create an imported target for component
- if(NOT TARGET Doxygen::dia)
- add_executable(Doxygen::dia IMPORTED GLOBAL)
- set_target_properties(Doxygen::dia PROPERTIES
- IMPORTED_LOCATION "${DOXYGEN_DIA_EXECUTABLE}"
- )
- endif()
- endif()
-
- unset(_x86)
-endmacro()
-
-#
-# Find Graphviz Dot...
-#
-macro(_Doxygen_find_dot)
- if(WIN32)
- set(_x86 "(x86)")
- file(
- GLOB _Doxygen_GRAPHVIZ_BIN_DIRS
- "$ENV{ProgramFiles}/Graphviz*/bin"
- "$ENV{ProgramFiles${_x86}}/Graphviz*/bin"
- )
- unset(_x86)
- else()
- set(_Doxygen_GRAPHVIZ_BIN_DIRS "")
- endif()
-
- find_program(
- DOXYGEN_DOT_EXECUTABLE
- NAMES dot
- PATHS
- ${_Doxygen_GRAPHVIZ_BIN_DIRS}
- "$ENV{ProgramFiles}/ATT/Graphviz/bin"
- "C:/Program Files/ATT/Graphviz/bin"
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\ATT\\Graphviz;InstallPath]/bin
- /Applications/Graphviz.app/Contents/MacOS
- /Applications/Utilities/Graphviz.app/Contents/MacOS
- /Applications/Doxygen.app/Contents/Resources
- /Applications/Doxygen.app/Contents/MacOS
- /Applications/Utilities/Doxygen.app/Contents/Resources
- /Applications/Utilities/Doxygen.app/Contents/MacOS
- DOC "Dot tool for use with Doxygen"
- )
- mark_as_advanced(DOXYGEN_DOT_EXECUTABLE)
-
- if(DOXYGEN_DOT_EXECUTABLE)
- # The Doxyfile wants the path to the utility, not the entire path
- # including file name
- get_filename_component(DOXYGEN_DOT_PATH
- "${DOXYGEN_DOT_EXECUTABLE}"
- DIRECTORY)
- if(WIN32)
- file(TO_NATIVE_PATH "${DOXYGEN_DOT_PATH}" DOXYGEN_DOT_PATH)
- endif()
-
- # Create an imported target for component
- if(NOT TARGET Doxygen::dot)
- add_executable(Doxygen::dot IMPORTED GLOBAL)
- set_target_properties(Doxygen::dot PROPERTIES
- IMPORTED_LOCATION "${DOXYGEN_DOT_EXECUTABLE}"
- )
- endif()
- endif()
-
- unset(_Doxygen_GRAPHVIZ_BIN_DIRS)
-endmacro()
-
-#
-# Find Message Sequence Chart...
-#
-macro(_Doxygen_find_mscgen)
- set(_x86 "(x86)")
- find_program(
- DOXYGEN_MSCGEN_EXECUTABLE
- NAMES mscgen
- PATHS
- "$ENV{ProgramFiles}/Mscgen"
- "$ENV{ProgramFiles${_x86}}/Mscgen"
- DOC "Message sequence chart tool for use with Doxygen"
- )
- mark_as_advanced(DOXYGEN_MSCGEN_EXECUTABLE)
-
- if(DOXYGEN_MSCGEN_EXECUTABLE)
- # The Doxyfile wants the path to the utility, not the entire path
- # including file name
- get_filename_component(DOXYGEN_MSCGEN_PATH
- "${DOXYGEN_MSCGEN_EXECUTABLE}"
- DIRECTORY)
- if(WIN32)
- file(TO_NATIVE_PATH "${DOXYGEN_MSCGEN_PATH}" DOXYGEN_MSCGEN_PATH)
- endif()
-
- # Create an imported target for component
- if(NOT TARGET Doxygen::mscgen)
- add_executable(Doxygen::mscgen IMPORTED GLOBAL)
- set_target_properties(Doxygen::mscgen PROPERTIES
- IMPORTED_LOCATION "${DOXYGEN_MSCGEN_EXECUTABLE}"
- )
- endif()
- endif()
-
- unset(_x86)
-endmacro()
-
-# Make sure `doxygen` is one of the components to find
-set(_Doxygen_keep_backward_compat FALSE)
-if(NOT Doxygen_FIND_COMPONENTS)
- # Search at least for `doxygen` executable
- set(Doxygen_FIND_COMPONENTS doxygen)
- # Preserve backward compatibility:
- # search for `dot` also if `DOXYGEN_SKIP_DOT` is not explicitly disable this.
- if(NOT DOXYGEN_SKIP_DOT)
- list(APPEND Doxygen_FIND_COMPONENTS dot)
- endif()
- set(_Doxygen_keep_backward_compat TRUE)
-elseif(NOT doxygen IN_LIST Doxygen_FIND_COMPONENTS)
- list(INSERT Doxygen_FIND_COMPONENTS 0 doxygen)
-endif()
-
-#
-# Find all requested components of Doxygen...
-#
-foreach(_comp IN LISTS Doxygen_FIND_COMPONENTS)
- if(_comp STREQUAL "doxygen")
- _Doxygen_find_doxygen()
- elseif(_comp STREQUAL "dia")
- _Doxygen_find_dia()
- elseif(_comp STREQUAL "dot")
- _Doxygen_find_dot()
- elseif(_comp STREQUAL "mscgen")
- _Doxygen_find_mscgen()
- else()
- message(WARNING "${_comp} is not a valid Doxygen component")
- set(Doxygen_${_comp}_FOUND FALSE)
- continue()
- endif()
-
- if(TARGET Doxygen::${_comp})
- set(Doxygen_${_comp}_FOUND TRUE)
- else()
- set(Doxygen_${_comp}_FOUND FALSE)
- endif()
-endforeach()
-unset(_comp)
-
-# Verify find results
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(
- Doxygen
- REQUIRED_VARS DOXYGEN_EXECUTABLE
- VERSION_VAR DOXYGEN_VERSION
- HANDLE_COMPONENTS
-)
-
-#
-# Backwards compatibility...
-#
-if(APPLE)
- # Restore the old app-bundle setting
- set(CMAKE_FIND_APPBUNDLE ${TEMP_DOXYGEN_SAVE_CMAKE_FIND_APPBUNDLE})
-endif()
-
-# Maintain the _FOUND variables as "YES" or "NO" for backwards
-# compatibility. This allows people to substitute them directly into
-# Doxyfile with configure_file().
-if(DOXYGEN_FOUND)
- set(DOXYGEN_FOUND "YES")
-else()
- set(DOXYGEN_FOUND "NO")
-endif()
-if(_Doxygen_keep_backward_compat)
- if(Doxygen_dot_FOUND)
- set(DOXYGEN_DOT_FOUND "YES")
- else()
- set(DOXYGEN_DOT_FOUND "NO")
- endif()
-
- # For backwards compatibility support for even older CMake versions
- set(DOXYGEN ${DOXYGEN_EXECUTABLE})
- set(DOT ${DOXYGEN_DOT_EXECUTABLE})
-
- # No need to keep any backward compatibility for `DOXYGEN_MSCGEN_XXX`
- # and `DOXYGEN_DIA_XXX` since they were not supported before component
- # support was added
-endif()
-unset(_Doxygen_keep_backward_compat)
-
-#
-# Allow full control of Doxygen from CMakeLists.txt
-#
-
-# Prepare a template Doxyfile and Doxygen's default values CMake file
-if(TARGET Doxygen::doxygen)
- # If doxygen was found, use it to generate a minimal default Doxyfile.
- # We will delete this file after we have finished using it below to
- # generate the other files that doxygen_add_docs() will use.
- set(_Doxygen_tpl "${CMAKE_BINARY_DIR}/CMakeDoxyfile.tpl")
- execute_process(
- COMMAND "${DOXYGEN_EXECUTABLE}" -s -g "${_Doxygen_tpl}"
- OUTPUT_QUIET
- RESULT_VARIABLE _Doxygen_tpl_result
- )
- if(_Doxygen_tpl_result)
- message(FATAL_ERROR
- "Unable to generate Doxyfile template: ${_Doxygen_tpl_result}")
- elseif(NOT EXISTS "${_Doxygen_tpl}")
- message(FATAL_ERROR
- "Doxygen has failed to generate a Doxyfile template")
- endif()
-
- # Write a do-not-edit header to files we are going to generate...
- set(_Doxygen_dne_header
-[[
-#
-# DO NOT EDIT! THIS FILE WAS GENERATED BY CMAKE!
-#
-
-]]
- )
- # We only need one copy of these across the whole build, since their
- # content is only dependent on the version of Doxygen being used. Therefore
- # we always put them at the top of the build tree so that they are in a
- # predictable location.
- set(_doxyfile_in "${CMAKE_BINARY_DIR}/CMakeDoxyfile.in")
- set(_doxyfile_defaults "${CMAKE_BINARY_DIR}/CMakeDoxygenDefaults.cmake")
-
- file(WRITE "${_doxyfile_in}" ${_Doxygen_dne_header})
- file(WRITE "${_doxyfile_defaults}" ${_Doxygen_dne_header})
-
- # Get strings containing a configuration key from the template Doxyfile
- # we obtained from this version of Doxygen. Because some options are split
- # across multiple lines by ending lines with backslashes, we cannot just
- # use file(STRINGS...) with a REGEX. Instead, read lines without a REGEX
- # so that file(STRINGS...) handles the trailing backslash as a line
- # continuation. It stores multi-lines as lists, so we then have to replace
- # the ";" list separator with backslashed newlines again so that we get the
- # original content stored back as the value part.
- file(STRINGS "${_Doxygen_tpl}" _file_lines)
- unset(_Doxygen_tpl_params)
- foreach(_line IN LISTS _file_lines)
- if(_line MATCHES "([A-Z][A-Z0-9_]+)( *=)(.*)")
- set(_key "${CMAKE_MATCH_1}")
- set(_eql "${CMAKE_MATCH_2}")
- set(_value "${CMAKE_MATCH_3}")
- string(REPLACE "\\" "\\\\" _value "${_value}")
- string(REPLACE ";" "\\\n" _value "${_value}")
- list(APPEND _Doxygen_tpl_params "${_key}${_eql}${_value}")
- endif()
- endforeach()
-
- # Build up a Doxyfile that provides @configVar@ substitutions for each
- # Doxygen config option as well as a separate CMake script which provides
- # the default value for each of those options if the project doesn't supply
- # them. Each config option will support substitution of a CMake variable
- # of the same name except with DOXYGEN_ prepended.
- foreach(_Doxygen_param IN LISTS _Doxygen_tpl_params)
- if(_Doxygen_param MATCHES "([A-Z][A-Z0-9_]+)( *)=( (.*))?")
- # Ok, this is a config key with a value
- if(CMAKE_MATCH_COUNT EQUAL 4)
- file(APPEND "${_doxyfile_in}"
- "${CMAKE_MATCH_1}${CMAKE_MATCH_2}= @DOXYGEN_${CMAKE_MATCH_1}@\n")
- # Remove the backslashes we had to preserve to handle newlines
- string(REPLACE "\\\n" "\n" _value "${CMAKE_MATCH_4}")
- file(APPEND "${_doxyfile_defaults}"
-"if(NOT DEFINED DOXYGEN_${CMAKE_MATCH_1})
- set(DOXYGEN_${CMAKE_MATCH_1} ${_value})
-endif()
-")
- # Ok, this is a config key with empty default value
- elseif(CMAKE_MATCH_COUNT EQUAL 2)
- file(APPEND "${_doxyfile_in}"
- "${CMAKE_MATCH_1}${CMAKE_MATCH_2}= @DOXYGEN_${CMAKE_MATCH_1}@\n")
- else()
- message(AUTHOR_WARNING
-"Unexpected line format! Code review required!\nFault line: ${_Doxygen_param}")
- endif()
- else()
- message(AUTHOR_WARNING
-"Unexpected line format! Code review required!\nFault line: ${_Doxygen_param}")
- endif()
- endforeach()
-
- # Ok, dumped defaults are not needed anymore...
- file(REMOVE "${_Doxygen_tpl}")
-
- unset(_Doxygen_param)
- unset(_Doxygen_tpl_params)
- unset(_Doxygen_dne_header)
- unset(_Doxygen_tpl)
-
-endif()
-
-function(doxygen_quote_value VARIABLE)
- # Quote a value of the given variable if:
- # - VARIABLE parameter was really given
- # - the variable it names is defined and is not present in the list
- # specified by DOXYGEN_VERBATIM_VARS (if set)
- # - the value of the named variable isn't already quoted
- # - the value has spaces
- if(VARIABLE AND DEFINED ${VARIABLE} AND
- NOT ${VARIABLE} MATCHES "^\".* .*\"$" AND ${VARIABLE} MATCHES " " AND
- NOT (DEFINED DOXYGEN_VERBATIM_VARS AND
- "${VARIABLE}" IN_LIST DOXYGEN_VERBATIM_VARS))
- set(${VARIABLE} "\"${${VARIABLE}}\"" PARENT_SCOPE)
- endif()
-endfunction()
-
-function(doxygen_list_to_quoted_strings LIST_VARIABLE)
- if(LIST_VARIABLE AND DEFINED ${LIST_VARIABLE})
- unset(_inputs)
- unset(_sep)
- unset(_verbatim)
- # Have to test if list items should be treated as verbatim here
- # because we lose the variable name when we pass just one list item
- # to doxygen_quote_value() below
- if(DEFINED DOXYGEN_VERBATIM_VARS AND
- "${LIST_VARIABLE}" IN_LIST DOXYGEN_VERBATIM_VARS)
- set(_verbatim True)
- endif()
- foreach(_in IN LISTS ${LIST_VARIABLE})
- if(NOT _verbatim)
- doxygen_quote_value(_in)
- endif()
- string(APPEND _inputs "${_sep}${_in}")
- set(_sep " ")
- endforeach()
- set(${LIST_VARIABLE} "${_inputs}" PARENT_SCOPE)
- endif()
-endfunction()
-
-function(doxygen_add_docs targetName)
- set(_options ALL USE_STAMP_FILE)
- set(_one_value_args WORKING_DIRECTORY COMMENT)
- set(_multi_value_args)
- cmake_parse_arguments(_args
- "${_options}"
- "${_one_value_args}"
- "${_multi_value_args}"
- ${ARGN})
-
- if(NOT _args_COMMENT)
- set(_args_COMMENT "Generate API documentation for ${targetName}")
- endif()
-
- if(NOT _args_WORKING_DIRECTORY)
- set(_args_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
- endif()
-
- if(DEFINED DOXYGEN_INPUT)
- message(WARNING
-"DOXYGEN_INPUT is set but it will be ignored. Pass the files and directories \
-directly to the doxygen_add_docs() command instead.")
- endif()
- set(DOXYGEN_INPUT ${_args_UNPARSED_ARGUMENTS})
-
- if(NOT TARGET Doxygen::doxygen)
- message(FATAL_ERROR "Doxygen was not found, needed by \
-doxygen_add_docs() for target ${targetName}")
- endif()
-
- # If not already defined, set some relevant defaults based on the
- # assumption that the documentation is for the whole project. Details
- # specified in the project() command will be used to populate a number of
- # these defaults.
-
- if(NOT DEFINED DOXYGEN_PROJECT_NAME)
- # The PROJECT_NAME tag is a single word (or a sequence of words
- # surrounded by double-quotes, unless you are using Doxywizard) that
- # should identify the project for which the documentation is generated.
- # This name is used in the title of most generated pages and in a few
- # other places. The default value is: My Project.
- set(DOXYGEN_PROJECT_NAME ${PROJECT_NAME})
- endif()
-
- if(NOT DEFINED DOXYGEN_PROJECT_NUMBER)
- # The PROJECT_NUMBER tag can be used to enter a project or revision
- # number. This could be handy for archiving the generated documentation
- # or if some version control system is used.
- set(DOXYGEN_PROJECT_NUMBER ${PROJECT_VERSION})
- endif()
-
- if(NOT DEFINED DOXYGEN_PROJECT_BRIEF)
- # Using the PROJECT_BRIEF tag one can provide an optional one line
- # description for a project that appears at the top of each page and
- # should give viewer a quick idea about the purpose of the project.
- # Keep the description short.
- set(DOXYGEN_PROJECT_BRIEF "${PROJECT_DESCRIPTION}")
- endif()
-
- if(NOT DEFINED DOXYGEN_RECURSIVE)
- # The RECURSIVE tag can be used to specify whether or not
- # subdirectories should be searched for input files as well. CMake
- # projects generally evolve to span multiple directories, so it makes
- # more sense for this to be on by default. Doxygen's default value
- # has this setting turned off, so we override it.
- set(DOXYGEN_RECURSIVE YES)
- endif()
-
- if(NOT DEFINED DOXYGEN_OUTPUT_DIRECTORY)
- # The OUTPUT_DIRECTORY tag is used to specify the (relative or
- # absolute) path into which the generated documentation will be
- # written. If a relative path is used, Doxygen will interpret it as
- # being relative to the location where doxygen was started, but we need
- # to run Doxygen in the source tree so that relative input paths work
- # intuitively. Therefore, we ensure that the output directory is always
- # an absolute path and if the project provided a relative path, we
- # treat it as relative to the current BINARY directory so that output
- # is not generated inside the source tree.
- set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
- elseif(NOT IS_ABSOLUTE "${DOXYGEN_OUTPUT_DIRECTORY}")
- get_filename_component(DOXYGEN_OUTPUT_DIRECTORY
- "${DOXYGEN_OUTPUT_DIRECTORY}"
- ABSOLUTE
- BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
- endif()
-
- if(NOT DEFINED DOXYGEN_HAVE_DOT)
- # If you set the HAVE_DOT tag to YES then doxygen will assume the dot
- # tool is available from the path. This tool is part of Graphviz (see:
- # http://www.graphviz.org/), a graph visualization toolkit from AT&T
- # and Lucent Bell Labs. The other options in this section have no
- # effect if this option is set to NO.
- # Doxygen's default value is: NO.
- if(Doxygen_dot_FOUND)
- set(DOXYGEN_HAVE_DOT "YES")
- else()
- set(DOXYGEN_HAVE_DOT "NO")
- endif()
- endif()
-
- if(NOT DEFINED DOXYGEN_DOT_MULTI_TARGETS)
- # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate
- # multiple output files in one run (i.e. multiple -o and -T options on
- # the command line). This makes dot run faster, but since only newer
- # versions of dot (>1.8.10) support this, Doxygen disables this feature
- # by default.
- # This tag requires that the tag HAVE_DOT is set to YES.
- set(DOXYGEN_DOT_MULTI_TARGETS YES)
- endif()
-
- if(NOT DEFINED DOXYGEN_GENERATE_LATEX)
- # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX
- # output. We only want the HTML output enabled by default, so we turn
- # this off if the project hasn't specified it.
- set(DOXYGEN_GENERATE_LATEX NO)
- endif()
-
- if(NOT DEFINED DOXYGEN_WARN_FORMAT)
- if(CMAKE_VS_MSBUILD_COMMAND OR CMAKE_VS_DEVENV_COMMAND)
- # The WARN_FORMAT tag determines the format of the warning messages
- # that doxygen can produce. The string should contain the $file,
- # $line and $text tags, which will be replaced by the file and line
- # number from which the warning originated and the warning text.
- # Optionally, the format may contain $version, which will be
- # replaced by the version of the file (if it could be obtained via
- # FILE_VERSION_FILTER).
- # Doxygen's default value is: $file:$line: $text
- set(DOXYGEN_WARN_FORMAT "$file($line) : $text ")
- endif()
- endif()
-
- if(DEFINED DOXYGEN_WARN_LOGFILE AND NOT IS_ABSOLUTE "${DOXYGEN_WARN_LOGFILE}")
- # The WARN_LOGFILE tag can be used to specify a file to which warning and error
- # messages should be written. If left blank the output is written to standard
- # error (stderr).
- get_filename_component(DOXYGEN_WARN_LOGFILE
- "${DOXYGEN_WARN_LOGFILE}"
- ABSOLUTE
- BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
- endif()
-
- # Any files from the INPUT that match any of the EXCLUDE_PATTERNS will be
- # excluded from the set of input files. We provide some additional patterns
- # to prevent commonly unwanted things from CMake builds being pulled in.
- #
- # Note that the wildcards are matched against the file with absolute path,
- # so to exclude all test directories for example use the pattern */test/*
- list(
- APPEND
- DOXYGEN_EXCLUDE_PATTERNS
- "*/.git/*"
- "*/.svn/*"
- "*/.hg/*"
- "*/CMakeFiles/*"
- "*/_CPack_Packages/*"
- "DartConfiguration.tcl"
- "CMakeLists.txt"
- "CMakeCache.txt"
- )
-
- # Now bring in Doxgen's defaults for those things the project has not
- # already set and we have not provided above
- include("${CMAKE_BINARY_DIR}/CMakeDoxygenDefaults.cmake" OPTIONAL)
-
- # Cleanup built HTMLs on "make clean"
- # TODO Any other dirs?
- if(DOXYGEN_GENERATE_HTML)
- if(IS_ABSOLUTE "${DOXYGEN_HTML_OUTPUT}")
- set(_args_clean_html_dir "${DOXYGEN_HTML_OUTPUT}")
- else()
- set(_args_clean_html_dir
- "${DOXYGEN_OUTPUT_DIRECTORY}/${DOXYGEN_HTML_OUTPUT}")
- endif()
- set_property(DIRECTORY APPEND PROPERTY
- ADDITIONAL_CLEAN_FILES "${_args_clean_html_dir}")
- endif()
-
- # Build up a list of files we can identify from the inputs so we can list
- # them as DEPENDS and SOURCES in the custom command/target (the latter
- # makes them display in IDEs). This must be done before we transform the
- # various DOXYGEN_... variables below because we need to process
- # DOXYGEN_INPUT as a list first.
- unset(_sources)
- foreach(_item IN LISTS DOXYGEN_INPUT)
- get_filename_component(_abs_item "${_item}" ABSOLUTE
- BASE_DIR "${_args_WORKING_DIRECTORY}")
- if(EXISTS "${_abs_item}" AND
- NOT IS_DIRECTORY "${_abs_item}" AND
- NOT IS_SYMLINK "${_abs_item}")
- list(APPEND _sources "${_abs_item}")
- elseif(_args_USE_STAMP_FILE)
- message(FATAL_ERROR "Source does not exist or is not a file:\n"
- " ${_abs_item}\n"
- "Only existing files may be specified when the "
- "USE_STAMP_FILE option is given.")
- endif()
- endforeach()
-
- # Transform known list type options into space separated strings.
- set(_doxygen_list_options
- ABBREVIATE_BRIEF
- ALIASES
- CITE_BIB_FILES
- DIAFILE_DIRS
- DOTFILE_DIRS
- DOT_FONTPATH
- ENABLED_SECTIONS
- EXAMPLE_PATH
- EXAMPLE_PATTERNS
- EXCLUDE
- EXCLUDE_PATTERNS
- EXCLUDE_SYMBOLS
- EXPAND_AS_DEFINED
- EXTENSION_MAPPING
- EXTRA_PACKAGES
- EXTRA_SEARCH_MAPPINGS
- FILE_PATTERNS
- FILTER_PATTERNS
- FILTER_SOURCE_PATTERNS
- HTML_EXTRA_FILES
- HTML_EXTRA_STYLESHEET
- IGNORE_PREFIX
- IMAGE_PATH
- INCLUDE_FILE_PATTERNS
- INCLUDE_PATH
- INPUT
- LATEX_EXTRA_FILES
- LATEX_EXTRA_STYLESHEET
- MATHJAX_EXTENSIONS
- MSCFILE_DIRS
- PLANTUML_INCLUDE_PATH
- PREDEFINED
- QHP_CUST_FILTER_ATTRS
- QHP_SECT_FILTER_ATTRS
- STRIP_FROM_INC_PATH
- STRIP_FROM_PATH
- TAGFILES
- TCL_SUBST
- )
- foreach(_item IN LISTS _doxygen_list_options)
- doxygen_list_to_quoted_strings(DOXYGEN_${_item})
- endforeach()
-
- # Transform known single value variables which may contain spaces, such as
- # paths or description strings.
- set(_doxygen_quoted_options
- CHM_FILE
- DIA_PATH
- DOCBOOK_OUTPUT
- DOCSET_FEEDNAME
- DOCSET_PUBLISHER_NAME
- DOT_FONTNAME
- DOT_PATH
- EXTERNAL_SEARCH_ID
- FILE_VERSION_FILTER
- GENERATE_TAGFILE
- HHC_LOCATION
- HTML_FOOTER
- HTML_HEADER
- HTML_OUTPUT
- HTML_STYLESHEET
- INPUT_FILTER
- LATEX_FOOTER
- LATEX_HEADER
- LATEX_OUTPUT
- LAYOUT_FILE
- MAN_OUTPUT
- MAN_SUBDIR
- MATHJAX_CODEFILE
- MSCGEN_PATH
- OUTPUT_DIRECTORY
- PERL_PATH
- PLANTUML_JAR_PATH
- PROJECT_BRIEF
- PROJECT_LOGO
- PROJECT_NAME
- QCH_FILE
- QHG_LOCATION
- QHP_CUST_FILTER_NAME
- QHP_VIRTUAL_FOLDER
- RTF_EXTENSIONS_FILE
- RTF_OUTPUT
- RTF_STYLESHEET_FILE
- SEARCHDATA_FILE
- USE_MDFILE_AS_MAINPAGE
- WARN_FORMAT
- WARN_LOGFILE
- XML_OUTPUT
- )
-
- # Store the unmodified value of DOXYGEN_OUTPUT_DIRECTORY prior to invoking
- # doxygen_quote_value() below. This will mutate the string specifically for
- # consumption by Doxygen's config file, which we do not want when we use it
- # later in the custom target's commands.
- set( _original_doxygen_output_dir ${DOXYGEN_OUTPUT_DIRECTORY} )
-
- foreach(_item IN LISTS _doxygen_quoted_options)
- doxygen_quote_value(DOXYGEN_${_item})
- endforeach()
-
- # Prepare doxygen configuration file
- set(_doxyfile_template "${CMAKE_BINARY_DIR}/CMakeDoxyfile.in")
- set(_target_doxyfile "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.${targetName}")
- configure_file("${_doxyfile_template}" "${_target_doxyfile}")
-
- unset(_all)
- if(${_args_ALL})
- set(_all ALL)
- endif()
-
- # Only create the stamp file if asked to. If we don't create it,
- # the target will always be considered out-of-date.
- if(_args_USE_STAMP_FILE)
- set(__stamp_file "${CMAKE_CURRENT_BINARY_DIR}/${targetName}.stamp")
- add_custom_command(
- VERBATIM
- OUTPUT ${__stamp_file}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${_original_doxygen_output_dir}
- COMMAND "${DOXYGEN_EXECUTABLE}" "${_target_doxyfile}"
- COMMAND ${CMAKE_COMMAND} -E touch ${__stamp_file}
- WORKING_DIRECTORY "${_args_WORKING_DIRECTORY}"
- DEPENDS "${_target_doxyfile}" ${_sources}
- COMMENT "${_args_COMMENT}"
- )
- add_custom_target(${targetName} ${_all}
- DEPENDS ${__stamp_file}
- SOURCES ${_sources}
- )
- unset(__stamp_file)
- else()
- add_custom_target( ${targetName} ${_all} VERBATIM
- COMMAND ${CMAKE_COMMAND} -E make_directory ${_original_doxygen_output_dir}
- COMMAND "${DOXYGEN_EXECUTABLE}" "${_target_doxyfile}"
- WORKING_DIRECTORY "${_args_WORKING_DIRECTORY}"
- DEPENDS "${_target_doxyfile}" ${_sources}
- COMMENT "${_args_COMMENT}"
- SOURCES ${_sources}
- )
- endif()
-
-endfunction()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/FindFLEX.cmake b/share/cmake-3.17/Modules/FindFLEX.cmake
deleted file mode 100644
index 90e5f86..0000000
--- a/share/cmake-3.17/Modules/FindFLEX.cmake
+++ /dev/null
@@ -1,256 +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_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.17/Modules/FindGTK2.cmake b/share/cmake-3.17/Modules/FindGTK2.cmake
deleted file mode 100644
index 565763d..0000000
--- a/share/cmake-3.17/Modules/FindGTK2.cmake
+++ /dev/null
@@ -1,943 +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``.
-
-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/FindHDF5.cmake b/share/cmake-3.17/Modules/FindHDF5.cmake
deleted file mode 100644
index b488418..0000000
--- a/share/cmake-3.17/Modules/FindHDF5.cmake
+++ /dev/null
@@ -1,958 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindHDF5
---------
-
-Find Hierarchical Data Format (HDF5), a library for reading and writing
-self describing array data.
-
-
-This module invokes the ``HDF5`` wrapper compiler that should be installed
-alongside ``HDF5``. Depending upon the ``HDF5`` Configuration, the wrapper
-compiler is called either ``h5cc`` or ``h5pcc``. If this succeeds, the module
-will then call the compiler with the show argument to see what flags
-are used when compiling an ``HDF5`` client application.
-
-The module will optionally accept the ``COMPONENTS`` argument. If no
-``COMPONENTS`` are specified, then the find module will default to finding
-only the ``HDF5`` C library. If one or more ``COMPONENTS`` are specified, the
-module will attempt to find the language bindings for the specified
-components. The only valid components are ``C``, ``CXX``, ``Fortran``, ``HL``,
-and ``Fortran_HL``. If the ``COMPONENTS`` argument is not given, the module will
-attempt to find only the C bindings.
-
-This module will read the variable
-``HDF5_USE_STATIC_LIBRARIES`` to determine whether or not to prefer a
-static link to a dynamic link for ``HDF5`` and all of it's dependencies.
-To use this feature, make sure that the ``HDF5_USE_STATIC_LIBRARIES``
-variable is set before the call to find_package.
-
-To provide the module with a hint about where to find your ``HDF5``
-installation, you can set the environment variable ``HDF5_ROOT``. The
-Find module will then look in this path when searching for ``HDF5``
-executables, paths, and libraries.
-
-Both the serial and parallel ``HDF5`` wrappers are considered and the first
-directory to contain either one will be used. In the event that both appear
-in the same directory the serial version is preferentially selected. This
-behavior can be reversed by setting the variable ``HDF5_PREFER_PARALLEL`` to
-``True``.
-
-In addition to finding the includes and libraries required to compile
-an ``HDF5`` client application, this module also makes an effort to find
-tools that come with the ``HDF5`` distribution that may be useful for
-regression testing.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project:
-
-``HDF5_FOUND``
- HDF5 was found on the system
-``HDF5_VERSION``
- HDF5 library version
-``HDF5_INCLUDE_DIRS``
- Location of the HDF5 header files
-``HDF5_DEFINITIONS``
- Required compiler definitions for HDF5
-``HDF5_LIBRARIES``
- Required libraries for all requested bindings
-``HDF5_HL_LIBRARIES``
- Required libraries for the HDF5 high level API for all bindings,
- if the ``HL`` component is enabled
-
-Available components are: ``C`` ``CXX`` ``Fortran`` and ``HL``.
-For each enabled language binding, a corresponding ``HDF5_${LANG}_LIBRARIES``
-variable, and potentially ``HDF5_${LANG}_DEFINITIONS``, will be defined.
-If the ``HL`` component is enabled, then an ``HDF5_${LANG}_HL_LIBRARIES`` will
-also be defined. With all components enabled, the following variables will be defined:
-
-``HDF5_C_DEFINITIONS``
- Required compiler definitions for HDF5 C bindings
-``HDF5_CXX_DEFINITIONS``
- Required compiler definitions for HDF5 C++ bindings
-``HDF5_Fortran_DEFINITIONS``
- Required compiler definitions for HDF5 Fortran bindings
-``HDF5_C_INCLUDE_DIRS``
- Required include directories for HDF5 C bindings
-``HDF5_CXX_INCLUDE_DIRS``
- Required include directories for HDF5 C++ bindings
-``HDF5_Fortran_INCLUDE_DIRS``
- Required include directories for HDF5 Fortran bindings
-``HDF5_C_LIBRARIES``
- Required libraries for the HDF5 C bindings
-``HDF5_CXX_LIBRARIES``
- Required libraries for the HDF5 C++ bindings
-``HDF5_Fortran_LIBRARIES``
- Required libraries for the HDF5 Fortran bindings
-``HDF5_C_HL_LIBRARIES``
- Required libraries for the high level C bindings
-``HDF5_CXX_HL_LIBRARIES``
- Required libraries for the high level C++ bindings
-``HDF5_Fortran_HL_LIBRARIES``
- Required libraries for the high level Fortran bindings.
-
-``HDF5_IS_PARALLEL``
- HDF5 library has parallel IO support
-``HDF5_C_COMPILER_EXECUTABLE``
- path to the HDF5 C wrapper compiler
-``HDF5_CXX_COMPILER_EXECUTABLE``
- path to the HDF5 C++ wrapper compiler
-``HDF5_Fortran_COMPILER_EXECUTABLE``
- path to the HDF5 Fortran wrapper compiler
-``HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE``
- path to the primary C compiler which is also the HDF5 wrapper
-``HDF5_CXX_COMPILER_EXECUTABLE_NO_INTERROGATE``
- path to the primary C++ compiler which is also the HDF5 wrapper
-``HDF5_Fortran_COMPILER_EXECUTABLE_NO_INTERROGATE``
- path to the primary Fortran compiler which is also the HDF5 wrapper
-``HDF5_DIFF_EXECUTABLE``
- path to the HDF5 dataset comparison tool
-
-Hints
-^^^^^
-
-The following variable can be set to guide the search for HDF5 libraries and includes:
-
-``HDF5_ROOT``
- Specify the path to the HDF5 installation to use.
-
-``HDF5_FIND_DEBUG``
- Set ``true`` to get extra debugging output.
-
-``HDF5_NO_FIND_PACKAGE_CONFIG_FILE``
- Set ``true`` to skip trying to find ``hdf5-config.cmake``.
-#]=======================================================================]
-
-# This module is maintained by Will Dicharry <wdicharry@stellarscience.com>.
-
-include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-
-# List of the valid HDF5 components
-set(HDF5_VALID_LANGUAGE_BINDINGS C CXX Fortran)
-
-# Validate the list of find components.
-if(NOT HDF5_FIND_COMPONENTS)
- set(HDF5_LANGUAGE_BINDINGS "C")
-else()
- set(HDF5_LANGUAGE_BINDINGS)
- # add the extra specified components, ensuring that they are valid.
- set(FIND_HL OFF)
- foreach(component IN LISTS HDF5_FIND_COMPONENTS)
- list(FIND HDF5_VALID_LANGUAGE_BINDINGS ${component} component_location)
- if(NOT component_location EQUAL -1)
- list(APPEND HDF5_LANGUAGE_BINDINGS ${component})
- elseif(component STREQUAL "HL")
- set(FIND_HL ON)
- elseif(component STREQUAL "Fortran_HL") # only for compatibility
- list(APPEND HDF5_LANGUAGE_BINDINGS Fortran)
- set(FIND_HL ON)
- set(HDF5_FIND_REQUIRED_Fortran_HL False)
- set(HDF5_FIND_REQUIRED_Fortran True)
- set(HDF5_FIND_REQUIRED_HL True)
- else()
- message(FATAL_ERROR "${component} is not a valid HDF5 component.")
- endif()
- endforeach()
- if(NOT HDF5_LANGUAGE_BINDINGS)
- get_property(__langs GLOBAL PROPERTY ENABLED_LANGUAGES)
- foreach(__lang IN LISTS __langs)
- if(__lang MATCHES "^(C|CXX|Fortran)$")
- list(APPEND HDF5_LANGUAGE_BINDINGS ${__lang})
- endif()
- endforeach()
- endif()
- list(REMOVE_ITEM HDF5_FIND_COMPONENTS Fortran_HL) # replaced by Fortran and HL
- list(REMOVE_DUPLICATES HDF5_LANGUAGE_BINDINGS)
-endif()
-
-# Determine whether to search for serial or parallel executable first
-if(HDF5_PREFER_PARALLEL)
- set(HDF5_C_COMPILER_NAMES h5pcc h5cc)
- set(HDF5_CXX_COMPILER_NAMES h5pc++ h5c++)
- set(HDF5_Fortran_COMPILER_NAMES h5pfc h5fc)
-else()
- set(HDF5_C_COMPILER_NAMES h5cc h5pcc)
- set(HDF5_CXX_COMPILER_NAMES h5c++ h5pc++)
- set(HDF5_Fortran_COMPILER_NAMES h5fc h5pfc)
-endif()
-
-# We may have picked up some duplicates in various lists during the above
-# process for the language bindings (both the C and C++ bindings depend on
-# libz for example). Remove the duplicates. It appears that the default
-# CMake behavior is to remove duplicates from the end of a list. However,
-# for link lines, this is incorrect since unresolved symbols are searched
-# for down the link line. Therefore, we reverse the list, remove the
-# duplicates, and then reverse it again to get the duplicates removed from
-# the beginning.
-macro(_HDF5_remove_duplicates_from_beginning _list_name)
- if(${_list_name})
- list(REVERSE ${_list_name})
- list(REMOVE_DUPLICATES ${_list_name})
- list(REVERSE ${_list_name})
- endif()
-endmacro()
-
-
-# Test first if the current compilers automatically wrap HDF5
-
-function(_HDF5_test_regular_compiler_C success version is_parallel)
- set(scratch_directory
- ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
- if(NOT ${success} OR
- NOT EXISTS ${scratch_directory}/compiler_has_h5_c)
- set(test_file ${scratch_directory}/cmake_hdf5_test.c)
- file(WRITE ${test_file}
- "#include <hdf5.h>\n"
- "#include <hdf5_hl.h>\n"
- "const char* info_ver = \"INFO\" \":\" H5_VERSION;\n"
- "#ifdef H5_HAVE_PARALLEL\n"
- "const char* info_parallel = \"INFO\" \":\" \"PARALLEL\";\n"
- "#endif\n"
- "int main(int argc, char **argv) {\n"
- " int require = 0;\n"
- " require += info_ver[argc];\n"
- "#ifdef H5_HAVE_PARALLEL\n"
- " require += info_parallel[argc];\n"
- "#endif\n"
- " hid_t fid;\n"
- " fid = H5Fcreate(\"foo.h5\",H5F_ACC_TRUNC,H5P_DEFAULT,H5P_DEFAULT);\n"
- " return 0;\n"
- "}")
- try_compile(${success} ${scratch_directory} ${test_file}
- COPY_FILE ${scratch_directory}/compiler_has_h5_c
- )
- endif()
- if(${success})
- file(STRINGS ${scratch_directory}/compiler_has_h5_c INFO_STRINGS
- REGEX "^INFO:"
- )
- string(REGEX MATCH "^INFO:([0-9]+\\.[0-9]+\\.[0-9]+)(-patch([0-9]+))?"
- INFO_VER "${INFO_STRINGS}"
- )
- set(${version} ${CMAKE_MATCH_1})
- if(CMAKE_MATCH_3)
- set(${version} ${HDF5_C_VERSION}.${CMAKE_MATCH_3})
- endif()
- set(${version} ${${version}} PARENT_SCOPE)
-
- if(INFO_STRINGS MATCHES "INFO:PARALLEL")
- set(${is_parallel} TRUE PARENT_SCOPE)
- else()
- set(${is_parallel} FALSE PARENT_SCOPE)
- endif()
- endif()
-endfunction()
-
-function(_HDF5_test_regular_compiler_CXX success version is_parallel)
- set(scratch_directory ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
- if(NOT ${success} OR
- NOT EXISTS ${scratch_directory}/compiler_has_h5_cxx)
- set(test_file ${scratch_directory}/cmake_hdf5_test.cxx)
- file(WRITE ${test_file}
- "#include <H5Cpp.h>\n"
- "#ifndef H5_NO_NAMESPACE\n"
- "using namespace H5;\n"
- "#endif\n"
- "const char* info_ver = \"INFO\" \":\" H5_VERSION;\n"
- "#ifdef H5_HAVE_PARALLEL\n"
- "const char* info_parallel = \"INFO\" \":\" \"PARALLEL\";\n"
- "#endif\n"
- "int main(int argc, char **argv) {\n"
- " int require = 0;\n"
- " require += info_ver[argc];\n"
- "#ifdef H5_HAVE_PARALLEL\n"
- " require += info_parallel[argc];\n"
- "#endif\n"
- " H5File file(\"foo.h5\", H5F_ACC_TRUNC);\n"
- " return 0;\n"
- "}")
- try_compile(${success} ${scratch_directory} ${test_file}
- COPY_FILE ${scratch_directory}/compiler_has_h5_cxx
- )
- endif()
- if(${success})
- file(STRINGS ${scratch_directory}/compiler_has_h5_cxx INFO_STRINGS
- REGEX "^INFO:"
- )
- string(REGEX MATCH "^INFO:([0-9]+\\.[0-9]+\\.[0-9]+)(-patch([0-9]+))?"
- INFO_VER "${INFO_STRINGS}"
- )
- set(${version} ${CMAKE_MATCH_1})
- if(CMAKE_MATCH_3)
- set(${version} ${HDF5_CXX_VERSION}.${CMAKE_MATCH_3})
- endif()
- set(${version} ${${version}} PARENT_SCOPE)
-
- if(INFO_STRINGS MATCHES "INFO:PARALLEL")
- set(${is_parallel} TRUE PARENT_SCOPE)
- else()
- set(${is_parallel} FALSE PARENT_SCOPE)
- endif()
- endif()
-endfunction()
-
-function(_HDF5_test_regular_compiler_Fortran success is_parallel)
- if(NOT ${success})
- set(scratch_directory
- ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
- set(test_file ${scratch_directory}/cmake_hdf5_test.f90)
- file(WRITE ${test_file}
- "program hdf5_hello\n"
- " use hdf5\n"
- " use h5lt\n"
- " use h5ds\n"
- " integer error\n"
- " call h5open_f(error)\n"
- " call h5close_f(error)\n"
- "end\n")
- try_compile(${success} ${scratch_directory} ${test_file})
- if(${success})
- execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -showconfig
- OUTPUT_VARIABLE config_output
- ERROR_VARIABLE config_error
- RESULT_VARIABLE config_result
- )
- if(config_output MATCHES "Parallel HDF5: yes")
- set(${is_parallel} TRUE PARENT_SCOPE)
- else()
- set(${is_parallel} FALSE PARENT_SCOPE)
- endif()
- endif()
- endif()
-endfunction()
-
-# Invoke the HDF5 wrapper compiler. The compiler return value is stored to the
-# return_value argument, the text output is stored to the output variable.
-macro( _HDF5_invoke_compiler language output return_value version is_parallel)
- set(${version})
- if(HDF5_USE_STATIC_LIBRARIES)
- set(lib_type_args -noshlib)
- else()
- set(lib_type_args -shlib)
- endif()
- set(scratch_dir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
- if("${language}" STREQUAL "C")
- set(test_file ${scratch_dir}/cmake_hdf5_test.c)
- elseif("${language}" STREQUAL "CXX")
- set(test_file ${scratch_dir}/cmake_hdf5_test.cxx)
- elseif("${language}" STREQUAL "Fortran")
- set(test_file ${scratch_dir}/cmake_hdf5_test.f90)
- endif()
- execute_process(
- COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -show ${lib_type_args} ${test_file}
- OUTPUT_VARIABLE ${output}
- ERROR_VARIABLE ${output}
- RESULT_VARIABLE ${return_value}
- )
- if(NOT ${${return_value}} EQUAL 0)
- message(STATUS
- "Unable to determine HDF5 ${language} flags from HDF5 wrapper.")
- endif()
- execute_process(
- COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -showconfig
- OUTPUT_VARIABLE config_output
- ERROR_VARIABLE config_output
- RESULT_VARIABLE config_return
- )
- if(NOT ${return_value} EQUAL 0)
- message( STATUS
- "Unable to determine HDF5 ${language} version from HDF5 wrapper.")
- endif()
- string(REGEX MATCH "HDF5 Version: ([a-zA-Z0-9\\.\\-]*)" version_match "${config_output}")
- if(version_match)
- string(REPLACE "HDF5 Version: " "" ${version} "${version_match}")
- string(REPLACE "-patch" "." ${version} "${${version}}")
- endif()
- if(config_output MATCHES "Parallel HDF5: yes")
- set(${is_parallel} TRUE)
- else()
- set(${is_parallel} FALSE)
- endif()
-endmacro()
-
-# Parse a compile line for definitions, includes, library paths, and libraries.
-macro( _HDF5_parse_compile_line
- compile_line_var
- include_paths
- definitions
- library_paths
- libraries
- libraries_hl)
-
- separate_arguments(_HDF5_COMPILE_ARGS NATIVE_COMMAND "${${compile_line_var}}")
-
- foreach(arg IN LISTS _HDF5_COMPILE_ARGS)
- if("${arg}" MATCHES "^-I(.*)$")
- # include directory
- list(APPEND ${include_paths} "${CMAKE_MATCH_1}")
- elseif("${arg}" MATCHES "^-D(.*)$")
- # compile definition
- list(APPEND ${definitions} "-D${CMAKE_MATCH_1}")
- elseif("${arg}" MATCHES "^-L(.*)$")
- # library search path
- list(APPEND ${library_paths} "${CMAKE_MATCH_1}")
- elseif("${arg}" MATCHES "^-l(hdf5.*hl.*)$")
- # library name (hl)
- list(APPEND ${libraries_hl} "${CMAKE_MATCH_1}")
- elseif("${arg}" MATCHES "^-l(.*)$")
- # library name
- list(APPEND ${libraries} "${CMAKE_MATCH_1}")
- elseif("${arg}" MATCHES "^(.:)?[/\\].*\\.(a|so|dylib|sl|lib)$")
- # library file
- if(NOT EXISTS "${arg}")
- continue()
- endif()
- get_filename_component(_HDF5_LPATH "${arg}" DIRECTORY)
- get_filename_component(_HDF5_LNAME "${arg}" NAME_WE)
- string(REGEX REPLACE "^lib" "" _HDF5_LNAME "${_HDF5_LNAME}")
- list(APPEND ${library_paths} "${_HDF5_LPATH}")
- if(_HDF5_LNAME MATCHES "hdf5.*hl")
- list(APPEND ${libraries_hl} "${_HDF5_LNAME}")
- else()
- list(APPEND ${libraries} "${_HDF5_LNAME}")
- endif()
- endif()
- endforeach()
-endmacro()
-
-# Select a preferred imported configuration from a target
-function(_HDF5_select_imported_config target imported_conf)
- # We will first assign the value to a local variable _imported_conf, then assign
- # it to the function argument at the end.
- get_target_property(_imported_conf ${target} MAP_IMPORTED_CONFIG_${CMAKE_BUILD_TYPE})
- if (NOT _imported_conf)
- # Get available imported configurations by examining target properties
- get_target_property(_imported_conf ${target} IMPORTED_CONFIGURATIONS)
- if(HDF5_FIND_DEBUG)
- message(STATUS "Found imported configurations: ${_imported_conf}")
- endif()
- # Find the imported configuration that we prefer.
- # We do this by making list of configurations in order of preference,
- # starting with ${CMAKE_BUILD_TYPE} and ending with the first imported_conf
- set(_preferred_confs ${CMAKE_BUILD_TYPE})
- list(GET _imported_conf 0 _fallback_conf)
- list(APPEND _preferred_confs RELWITHDEBINFO RELEASE DEBUG ${_fallback_conf})
- if(HDF5_FIND_DEBUG)
- message(STATUS "Start search through imported configurations in the following order: ${_preferred_confs}")
- endif()
- # Now find the first of these that is present in imported_conf
- cmake_policy(PUSH)
- cmake_policy(SET CMP0057 NEW) # support IN_LISTS
- foreach (_conf IN LISTS _preferred_confs)
- if (${_conf} IN_LIST _imported_conf)
- set(_imported_conf ${_conf})
- break()
- endif()
- endforeach()
- cmake_policy(POP)
- endif()
- if(HDF5_FIND_DEBUG)
- message(STATUS "Selected imported configuration: ${_imported_conf}")
- endif()
- # assign value to function argument
- set(${imported_conf} ${_imported_conf} PARENT_SCOPE)
-endfunction()
-
-
-if(NOT HDF5_ROOT)
- set(HDF5_ROOT $ENV{HDF5_ROOT})
-endif()
-if(HDF5_ROOT)
- set(_HDF5_SEARCH_OPTS NO_DEFAULT_PATH)
-else()
- set(_HDF5_SEARCH_OPTS)
-endif()
-
-# Try to find HDF5 using an installed hdf5-config.cmake
-if(NOT HDF5_FOUND AND NOT HDF5_NO_FIND_PACKAGE_CONFIG_FILE)
- find_package(HDF5 QUIET NO_MODULE
- HINTS ${HDF5_ROOT}
- ${_HDF5_SEARCH_OPTS}
- )
- if( HDF5_FOUND)
- if(HDF5_FIND_DEBUG)
- message(STATUS "Found HDF5 at ${HDF5_DIR} via NO_MODULE. Now trying to extract locations etc.")
- endif()
- set(HDF5_IS_PARALLEL ${HDF5_ENABLE_PARALLEL})
- set(HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR})
- set(HDF5_LIBRARIES)
- if (NOT TARGET hdf5 AND NOT TARGET hdf5-static AND NOT TARGET hdf5-shared)
- # Some HDF5 versions (e.g. 1.8.18) used hdf5::hdf5 etc
- set(_target_prefix "hdf5::")
- endif()
- set(HDF5_C_TARGET ${_target_prefix}hdf5)
- set(HDF5_C_HL_TARGET ${_target_prefix}hdf5_hl)
- set(HDF5_CXX_TARGET ${_target_prefix}hdf5_cpp)
- set(HDF5_CXX_HL_TARGET ${_target_prefix}hdf5_hl_cpp)
- set(HDF5_Fortran_TARGET ${_target_prefix}hdf5_fortran)
- set(HDF5_Fortran_HL_TARGET ${_target_prefix}hdf5_hl_fortran)
- set(HDF5_DEFINITIONS "")
- if(HDF5_USE_STATIC_LIBRARIES)
- set(_suffix "-static")
- else()
- set(_suffix "-shared")
- endif()
- foreach(_lang ${HDF5_LANGUAGE_BINDINGS})
-
- #Older versions of hdf5 don't have a static/shared suffix so
- #if we detect that occurrence clear the suffix
- if(_suffix AND NOT TARGET ${HDF5_${_lang}_TARGET}${_suffix})
- if(NOT TARGET ${HDF5_${_lang}_TARGET})
- #can't find this component with or without the suffix
- #so bail out, and let the following locate HDF5
- set(HDF5_FOUND FALSE)
- break()
- endif()
- set(_suffix "")
- endif()
-
- if(HDF5_FIND_DEBUG)
- message(STATUS "Trying to get properties of target ${HDF5_${_lang}_TARGET}${_suffix}")
- endif()
- # Find library for this target. Complicated as on Windows with a DLL, we need to search for the import-lib.
- _HDF5_select_imported_config(${HDF5_${_lang}_TARGET}${_suffix} _hdf5_imported_conf)
- get_target_property(_hdf5_lang_location ${HDF5_${_lang}_TARGET}${_suffix} IMPORTED_IMPLIB_${_hdf5_imported_conf} )
- if (NOT _hdf5_lang_location)
- # no import lib, just try LOCATION
- get_target_property(_hdf5_lang_location ${HDF5_${_lang}_TARGET}${_suffix} LOCATION_${_hdf5_imported_conf})
- if (NOT _hdf5_lang_location)
- get_target_property(_hdf5_lang_location ${HDF5_${_lang}_TARGET}${_suffix} LOCATION)
- endif()
- endif()
- if( _hdf5_lang_location )
- set(HDF5_${_lang}_LIBRARY ${_hdf5_lang_location})
- list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix})
- set(HDF5_${_lang}_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix})
- set(HDF5_${_lang}_FOUND True)
- endif()
- if(FIND_HL)
- get_target_property(__lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} IMPORTED_IMPLIB_${_hdf5_imported_conf} )
- if (NOT _hdf5_lang_hl_location)
- get_target_property(_hdf5_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION_${_hdf5_imported_conf})
- if (NOT _hdf5_hl_lang_location)
- get_target_property(_hdf5_hl_lang_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION)
- endif()
- endif()
- if( _hdf5_lang_hl_location )
- set(HDF5_${_lang}_HL_LIBRARY ${_hdf5_lang_hl_location})
- list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_HL_TARGET}${_suffix})
- set(HDF5_${_lang}_HL_LIBRARIES ${HDF5_${_lang}_HL_TARGET}${_suffix})
- set(HDF5_HL_FOUND True)
- endif()
- unset(_hdf5_lang_hl_location)
- endif()
- unset(_hdf5_imported_conf)
- unset(_hdf5_lang_location)
- endforeach()
- endif()
-endif()
-
-if(NOT HDF5_FOUND)
- set(_HDF5_NEED_TO_SEARCH False)
- set(HDF5_COMPILER_NO_INTERROGATE True)
- # Only search for languages we've enabled
- foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS)
- # First check to see if our regular compiler is one of wrappers
- if(__lang STREQUAL "C")
- _HDF5_test_regular_compiler_C(
- HDF5_${__lang}_COMPILER_NO_INTERROGATE
- HDF5_${__lang}_VERSION
- HDF5_${__lang}_IS_PARALLEL)
- elseif(__lang STREQUAL "CXX")
- _HDF5_test_regular_compiler_CXX(
- HDF5_${__lang}_COMPILER_NO_INTERROGATE
- HDF5_${__lang}_VERSION
- HDF5_${__lang}_IS_PARALLEL)
- elseif(__lang STREQUAL "Fortran")
- _HDF5_test_regular_compiler_Fortran(
- HDF5_${__lang}_COMPILER_NO_INTERROGATE
- HDF5_${__lang}_IS_PARALLEL)
- else()
- continue()
- endif()
- if(HDF5_${__lang}_COMPILER_NO_INTERROGATE)
- message(STATUS "HDF5: Using hdf5 compiler wrapper for all ${__lang} compiling")
- set(HDF5_${__lang}_FOUND True)
- set(HDF5_${__lang}_COMPILER_EXECUTABLE_NO_INTERROGATE
- "${CMAKE_${__lang}_COMPILER}"
- CACHE FILEPATH "HDF5 ${__lang} compiler wrapper")
- set(HDF5_${__lang}_DEFINITIONS)
- set(HDF5_${__lang}_INCLUDE_DIRS)
- set(HDF5_${__lang}_LIBRARIES)
- set(HDF5_${__lang}_HL_LIBRARIES)
-
- mark_as_advanced(HDF5_${__lang}_COMPILER_EXECUTABLE_NO_INTERROGATE)
-
- set(HDF5_${__lang}_FOUND True)
- set(HDF5_HL_FOUND True)
- else()
- set(HDF5_COMPILER_NO_INTERROGATE False)
- # If this language isn't using the wrapper, then try to seed the
- # search options with the wrapper
- find_program(HDF5_${__lang}_COMPILER_EXECUTABLE
- NAMES ${HDF5_${__lang}_COMPILER_NAMES} NAMES_PER_DIR
- HINTS ${HDF5_ROOT}
- PATH_SUFFIXES bin Bin
- DOC "HDF5 ${__lang} Wrapper compiler. Used only to detect HDF5 compile flags."
- ${_HDF5_SEARCH_OPTS}
- )
- mark_as_advanced( HDF5_${__lang}_COMPILER_EXECUTABLE )
- unset(HDF5_${__lang}_COMPILER_NAMES)
-
- if(HDF5_${__lang}_COMPILER_EXECUTABLE)
- _HDF5_invoke_compiler(${__lang} HDF5_${__lang}_COMPILE_LINE
- HDF5_${__lang}_RETURN_VALUE HDF5_${__lang}_VERSION HDF5_${__lang}_IS_PARALLEL)
- if(HDF5_${__lang}_RETURN_VALUE EQUAL 0)
- message(STATUS "HDF5: Using hdf5 compiler wrapper to determine ${__lang} configuration")
- _HDF5_parse_compile_line( HDF5_${__lang}_COMPILE_LINE
- HDF5_${__lang}_INCLUDE_DIRS
- HDF5_${__lang}_DEFINITIONS
- HDF5_${__lang}_LIBRARY_DIRS
- HDF5_${__lang}_LIBRARY_NAMES
- HDF5_${__lang}_HL_LIBRARY_NAMES
- )
- set(HDF5_${__lang}_LIBRARIES)
-
- foreach(L IN LISTS HDF5_${__lang}_LIBRARY_NAMES)
- set(_HDF5_SEARCH_NAMES_LOCAL)
- if("x${L}" MATCHES "hdf5")
- # hdf5 library
- set(_HDF5_SEARCH_OPTS_LOCAL ${_HDF5_SEARCH_OPTS})
- if(HDF5_USE_STATIC_LIBRARIES)
- if(WIN32)
- set(_HDF5_SEARCH_NAMES_LOCAL lib${L})
- else()
- set(_HDF5_SEARCH_NAMES_LOCAL lib${L}.a)
- endif()
- endif()
- else()
- # external library
- set(_HDF5_SEARCH_OPTS_LOCAL)
- endif()
- find_library(HDF5_${__lang}_LIBRARY_${L}
- NAMES ${_HDF5_SEARCH_NAMES_LOCAL} ${L} NAMES_PER_DIR
- HINTS ${HDF5_${__lang}_LIBRARY_DIRS}
- ${HDF5_ROOT}
- ${_HDF5_SEARCH_OPTS_LOCAL}
- )
- unset(_HDF5_SEARCH_OPTS_LOCAL)
- unset(_HDF5_SEARCH_NAMES_LOCAL)
- if(HDF5_${__lang}_LIBRARY_${L})
- list(APPEND HDF5_${__lang}_LIBRARIES ${HDF5_${__lang}_LIBRARY_${L}})
- else()
- list(APPEND HDF5_${__lang}_LIBRARIES ${L})
- endif()
- endforeach()
- if(FIND_HL)
- set(HDF5_${__lang}_HL_LIBRARIES)
- foreach(L IN LISTS HDF5_${__lang}_HL_LIBRARY_NAMES)
- set(_HDF5_SEARCH_NAMES_LOCAL)
- if("x${L}" MATCHES "hdf5")
- # hdf5 library
- set(_HDF5_SEARCH_OPTS_LOCAL ${_HDF5_SEARCH_OPTS})
- if(HDF5_USE_STATIC_LIBRARIES)
- if(WIN32)
- set(_HDF5_SEARCH_NAMES_LOCAL lib${L})
- else()
- set(_HDF5_SEARCH_NAMES_LOCAL lib${L}.a)
- endif()
- endif()
- else()
- # external library
- set(_HDF5_SEARCH_OPTS_LOCAL)
- endif()
- find_library(HDF5_${__lang}_LIBRARY_${L}
- NAMES ${_HDF5_SEARCH_NAMES_LOCAL} ${L} NAMES_PER_DIR
- HINTS ${HDF5_${__lang}_LIBRARY_DIRS}
- ${HDF5_ROOT}
- ${_HDF5_SEARCH_OPTS_LOCAL}
- )
- unset(_HDF5_SEARCH_OPTS_LOCAL)
- unset(_HDF5_SEARCH_NAMES_LOCAL)
- if(HDF5_${__lang}_LIBRARY_${L})
- list(APPEND HDF5_${__lang}_HL_LIBRARIES ${HDF5_${__lang}_LIBRARY_${L}})
- else()
- list(APPEND HDF5_${__lang}_HL_LIBRARIES ${L})
- endif()
- endforeach()
- set(HDF5_HL_FOUND True)
- endif()
-
- set(HDF5_${__lang}_FOUND True)
- _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_DEFINITIONS)
- _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_INCLUDE_DIRS)
- _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_LIBRARIES)
- _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_HL_LIBRARIES)
- else()
- set(_HDF5_NEED_TO_SEARCH True)
- endif()
- else()
- set(_HDF5_NEED_TO_SEARCH True)
- endif()
- endif()
- if(HDF5_${__lang}_VERSION)
- if(NOT HDF5_VERSION)
- set(HDF5_VERSION ${HDF5_${__lang}_VERSION})
- elseif(NOT HDF5_VERSION VERSION_EQUAL HDF5_${__lang}_VERSION)
- message(WARNING "HDF5 Version found for language ${__lang}, ${HDF5_${__lang}_VERSION} is different than previously found version ${HDF5_VERSION}")
- endif()
- endif()
- if(DEFINED HDF5_${__lang}_IS_PARALLEL)
- if(NOT DEFINED HDF5_IS_PARALLEL)
- set(HDF5_IS_PARALLEL ${HDF5_${__lang}_IS_PARALLEL})
- elseif(NOT HDF5_IS_PARALLEL AND HDF5_${__lang}_IS_PARALLEL)
- message(WARNING "HDF5 found for language ${__lang} is parallel but previously found language is not parallel.")
- elseif(HDF5_IS_PARALLEL AND NOT HDF5_${__lang}_IS_PARALLEL)
- message(WARNING "HDF5 found for language ${__lang} is not parallel but previously found language is parallel.")
- endif()
- endif()
- endforeach()
-else()
- set(_HDF5_NEED_TO_SEARCH True)
-endif()
-
-if(NOT HDF5_FOUND AND HDF5_COMPILER_NO_INTERROGATE)
- # No arguments necessary, all languages can use the compiler wrappers
- set(HDF5_FOUND True)
- set(HDF5_METHOD "Included by compiler wrappers")
- set(HDF5_REQUIRED_VARS HDF5_METHOD)
-elseif(NOT HDF5_FOUND AND NOT _HDF5_NEED_TO_SEARCH)
- # Compiler wrappers aren't being used by the build but were found and used
- # to determine necessary include and library flags
- set(HDF5_INCLUDE_DIRS)
- set(HDF5_LIBRARIES)
- set(HDF5_HL_LIBRARIES)
- foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS)
- if(HDF5_${__lang}_FOUND)
- if(NOT HDF5_${__lang}_COMPILER_NO_INTERROGATE)
- list(APPEND HDF5_DEFINITIONS ${HDF5_${__lang}_DEFINITIONS})
- list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${__lang}_INCLUDE_DIRS})
- list(APPEND HDF5_LIBRARIES ${HDF5_${__lang}_LIBRARIES})
- if(FIND_HL)
- list(APPEND HDF5_HL_LIBRARIES ${HDF5_${__lang}_HL_LIBRARIES})
- endif()
- endif()
- endif()
- endforeach()
- _HDF5_remove_duplicates_from_beginning(HDF5_DEFINITIONS)
- _HDF5_remove_duplicates_from_beginning(HDF5_INCLUDE_DIRS)
- _HDF5_remove_duplicates_from_beginning(HDF5_LIBRARIES)
- _HDF5_remove_duplicates_from_beginning(HDF5_HL_LIBRARIES)
- set(HDF5_FOUND True)
- set(HDF5_REQUIRED_VARS HDF5_LIBRARIES)
- if(FIND_HL)
- list(APPEND HDF5_REQUIRED_VARS HDF5_HL_LIBRARIES)
- endif()
-endif()
-
-find_program( HDF5_DIFF_EXECUTABLE
- NAMES h5diff
- HINTS ${HDF5_ROOT}
- PATH_SUFFIXES bin Bin
- ${_HDF5_SEARCH_OPTS}
- DOC "HDF5 file differencing tool." )
-mark_as_advanced( HDF5_DIFF_EXECUTABLE )
-
-if( NOT HDF5_FOUND )
- # seed the initial lists of libraries to find with items we know we need
- set(HDF5_C_LIBRARY_NAMES hdf5)
- set(HDF5_C_HL_LIBRARY_NAMES hdf5_hl ${HDF5_C_LIBRARY_NAMES} )
-
- set(HDF5_CXX_LIBRARY_NAMES hdf5_cpp ${HDF5_C_LIBRARY_NAMES})
- set(HDF5_CXX_HL_LIBRARY_NAMES hdf5_hl_cpp ${HDF5_C_HL_LIBRARY_NAMES} ${HDF5_CXX_LIBRARY_NAMES})
-
- set(HDF5_Fortran_LIBRARY_NAMES hdf5_fortran ${HDF5_C_LIBRARY_NAMES})
- set(HDF5_Fortran_HL_LIBRARY_NAMES hdf5hl_fortran ${HDF5_C_HL_LIBRARY_NAMES} ${HDF5_Fortran_LIBRARY_NAMES})
-
- foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS)
- # find the HDF5 include directories
- if("${__lang}" STREQUAL "Fortran")
- set(HDF5_INCLUDE_FILENAME hdf5.mod HDF5.mod)
- elseif("${__lang}" STREQUAL "CXX")
- set(HDF5_INCLUDE_FILENAME H5Cpp.h)
- else()
- set(HDF5_INCLUDE_FILENAME hdf5.h)
- endif()
-
- find_path(HDF5_${__lang}_INCLUDE_DIR ${HDF5_INCLUDE_FILENAME}
- HINTS ${HDF5_ROOT}
- PATHS $ENV{HOME}/.local/include
- PATH_SUFFIXES include Include
- ${_HDF5_SEARCH_OPTS}
- )
- mark_as_advanced(HDF5_${__lang}_INCLUDE_DIR)
- # set the _DIRS variable as this is what the user will normally use
- set(HDF5_${__lang}_INCLUDE_DIRS ${HDF5_${__lang}_INCLUDE_DIR})
- list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${__lang}_INCLUDE_DIR})
-
- # find the HDF5 libraries
- foreach(LIB IN LISTS HDF5_${__lang}_LIBRARY_NAMES)
- if(HDF5_USE_STATIC_LIBRARIES)
- # According to bug 1643 on the CMake bug tracker, this is the
- # preferred method for searching for a static library.
- # See https://gitlab.kitware.com/cmake/cmake/issues/1643. We search
- # first for the full static library name, but fall back to a
- # generic search on the name if the static search fails.
- set( THIS_LIBRARY_SEARCH_DEBUG
- lib${LIB}d.a lib${LIB}_debug.a lib${LIB}d lib${LIB}_D lib${LIB}_debug
- lib${LIB}d-static.a lib${LIB}_debug-static.a ${LIB}d-static ${LIB}_D-static ${LIB}_debug-static )
- set( THIS_LIBRARY_SEARCH_RELEASE lib${LIB}.a lib${LIB} lib${LIB}-static.a ${LIB}-static)
- else()
- set( THIS_LIBRARY_SEARCH_DEBUG ${LIB}d ${LIB}_D ${LIB}_debug ${LIB}d-shared ${LIB}_D-shared ${LIB}_debug-shared)
- set( THIS_LIBRARY_SEARCH_RELEASE ${LIB} ${LIB}-shared)
- if(WIN32)
- list(APPEND HDF5_DEFINITIONS "-DH5_BUILT_AS_DYNAMIC_LIB")
- endif()
- endif()
- find_library(HDF5_${LIB}_LIBRARY_DEBUG
- NAMES ${THIS_LIBRARY_SEARCH_DEBUG}
- HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib
- ${_HDF5_SEARCH_OPTS}
- )
- find_library( HDF5_${LIB}_LIBRARY_RELEASE
- NAMES ${THIS_LIBRARY_SEARCH_RELEASE}
- HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib
- ${_HDF5_SEARCH_OPTS}
- )
- select_library_configurations( HDF5_${LIB} )
- list(APPEND HDF5_${__lang}_LIBRARIES ${HDF5_${LIB}_LIBRARY})
- endforeach()
- if(HDF5_${__lang}_LIBRARIES)
- set(HDF5_${__lang}_FOUND True)
- endif()
-
- # Append the libraries for this language binding to the list of all
- # required libraries.
- list(APPEND HDF5_LIBRARIES ${HDF5_${__lang}_LIBRARIES})
-
- if(FIND_HL)
- foreach(LIB IN LISTS HDF5_${__lang}_HL_LIBRARY_NAMES)
- if(HDF5_USE_STATIC_LIBRARIES)
- # According to bug 1643 on the CMake bug tracker, this is the
- # preferred method for searching for a static library.
- # See https://gitlab.kitware.com/cmake/cmake/issues/1643. We search
- # first for the full static library name, but fall back to a
- # generic search on the name if the static search fails.
- set( THIS_LIBRARY_SEARCH_DEBUG
- lib${LIB}d.a lib${LIB}_debug.a lib${LIB}d lib${LIB}_D lib${LIB}_debug
- lib${LIB}d-static.a lib${LIB}_debug-static.a lib${LIB}d-static lib${LIB}_D-static lib${LIB}_debug-static )
- set( THIS_LIBRARY_SEARCH_RELEASE lib${LIB}.a lib${LIB} lib${LIB}-static.a lib${LIB}-static)
- else()
- set( THIS_LIBRARY_SEARCH_DEBUG ${LIB}d ${LIB}_D ${LIB}_debug ${LIB}d-shared ${LIB}_D-shared ${LIB}_debug-shared)
- set( THIS_LIBRARY_SEARCH_RELEASE ${LIB} ${LIB}-shared)
- endif()
- find_library(HDF5_${LIB}_LIBRARY_DEBUG
- NAMES ${THIS_LIBRARY_SEARCH_DEBUG}
- HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib
- ${_HDF5_SEARCH_OPTS}
- )
- find_library( HDF5_${LIB}_LIBRARY_RELEASE
- NAMES ${THIS_LIBRARY_SEARCH_RELEASE}
- HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib
- ${_HDF5_SEARCH_OPTS}
- )
- select_library_configurations( HDF5_${LIB} )
- list(APPEND HDF5_${__lang}_HL_LIBRARIES ${HDF5_${LIB}_LIBRARY})
- endforeach()
-
- # Append the libraries for this language binding to the list of all
- # required libraries.
- list(APPEND HDF5_HL_LIBRARIES ${HDF5_${__lang}_HL_LIBRARIES})
- endif()
- endforeach()
- if(FIND_HL AND HDF5_HL_LIBRARIES)
- set(HDF5_HL_FOUND True)
- endif()
-
- _HDF5_remove_duplicates_from_beginning(HDF5_DEFINITIONS)
- _HDF5_remove_duplicates_from_beginning(HDF5_INCLUDE_DIRS)
- _HDF5_remove_duplicates_from_beginning(HDF5_LIBRARIES)
- _HDF5_remove_duplicates_from_beginning(HDF5_HL_LIBRARIES)
-
- # If the HDF5 include directory was found, open H5pubconf.h to determine if
- # HDF5 was compiled with parallel IO support
- set( HDF5_IS_PARALLEL FALSE )
- set( HDF5_VERSION "" )
- foreach( _dir IN LISTS HDF5_INCLUDE_DIRS )
- foreach(_hdr "${_dir}/H5pubconf.h" "${_dir}/H5pubconf-64.h" "${_dir}/H5pubconf-32.h")
- if( EXISTS "${_hdr}" )
- file( STRINGS "${_hdr}"
- HDF5_HAVE_PARALLEL_DEFINE
- REGEX "HAVE_PARALLEL 1" )
- if( HDF5_HAVE_PARALLEL_DEFINE )
- set( HDF5_IS_PARALLEL TRUE )
- endif()
- unset(HDF5_HAVE_PARALLEL_DEFINE)
-
- file( STRINGS "${_hdr}"
- HDF5_VERSION_DEFINE
- REGEX "^[ \t]*#[ \t]*define[ \t]+H5_VERSION[ \t]+" )
- if( "${HDF5_VERSION_DEFINE}" MATCHES
- "H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+)(-patch([0-9]+))?\"" )
- set( HDF5_VERSION "${CMAKE_MATCH_1}" )
- if( CMAKE_MATCH_3 )
- set( HDF5_VERSION ${HDF5_VERSION}.${CMAKE_MATCH_3})
- endif()
- endif()
- unset(HDF5_VERSION_DEFINE)
- endif()
- endforeach()
- endforeach()
- set( HDF5_IS_PARALLEL ${HDF5_IS_PARALLEL} CACHE BOOL
- "HDF5 library compiled with parallel IO support" )
- mark_as_advanced( HDF5_IS_PARALLEL )
-
- set(HDF5_REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS)
- if(FIND_HL)
- list(APPEND HDF5_REQUIRED_VARS HDF5_HL_LIBRARIES)
- endif()
-endif()
-
-# For backwards compatibility we set HDF5_INCLUDE_DIR to the value of
-# HDF5_INCLUDE_DIRS
-if( HDF5_INCLUDE_DIRS )
- set( HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIRS}" )
-endif()
-
-# If HDF5_REQUIRED_VARS is empty at this point, then it's likely that
-# something external is trying to explicitly pass already found
-# locations
-if(NOT HDF5_REQUIRED_VARS)
- set(HDF5_REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS)
-endif()
-
-find_package_handle_standard_args(HDF5
- REQUIRED_VARS ${HDF5_REQUIRED_VARS}
- VERSION_VAR HDF5_VERSION
- HANDLE_COMPONENTS
-)
-
-unset(_HDF5_SEARCH_OPTS)
-
-if( HDF5_FOUND AND NOT HDF5_DIR)
- # hide HDF5_DIR for the non-advanced user to avoid confusion with
- # HDF5_DIR-NOT_FOUND while HDF5 was found.
- mark_as_advanced(HDF5_DIR)
-endif()
-
-if (HDF5_FIND_DEBUG)
- message(STATUS "HDF5_DIR: ${HDF5_DIR}")
- message(STATUS "HDF5_DEFINITIONS: ${HDF5_DEFINITIONS}")
- message(STATUS "HDF5_INCLUDE_DIRS: ${HDF5_INCLUDE_DIRS}")
- message(STATUS "HDF5_LIBRARIES: ${HDF5_LIBRARIES}")
- message(STATUS "HDF5_HL_LIBRARIES: ${HDF5_HL_LIBRARIES}")
- foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS)
- message(STATUS "HDF5_${__lang}_DEFINITIONS: ${HDF5_${__lang}_DEFINITIONS}")
- message(STATUS "HDF5_${__lang}_INCLUDE_DIR: ${HDF5_${__lang}_INCLUDE_DIR}")
- message(STATUS "HDF5_${__lang}_INCLUDE_DIRS: ${HDF5_${__lang}_INCLUDE_DIRS}")
- message(STATUS "HDF5_${__lang}_LIBRARY: ${HDF5_${__lang}_LIBRARY}")
- message(STATUS "HDF5_${__lang}_LIBRARIES: ${HDF5_${__lang}_LIBRARIES}")
- message(STATUS "HDF5_${__lang}_HL_LIBRARY: ${HDF5_${__lang}_HL_LIBRARY}")
- message(STATUS "HDF5_${__lang}_HL_LIBRARIES: ${HDF5_${__lang}_HL_LIBRARIES}")
- endforeach()
-endif()
diff --git a/share/cmake-3.17/Modules/FindJava.cmake b/share/cmake-3.17/Modules/FindJava.cmake
deleted file mode 100644
index 945df3c..0000000
--- a/share/cmake-3.17/Modules/FindJava.cmake
+++ /dev/null
@@ -1,360 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindJava
---------
-
-Find Java
-
-This module finds if Java is installed and determines where the
-include files and libraries are. The caller may set variable ``JAVA_HOME``
-to specify a Java installation prefix explicitly.
-
-See also the :module:`FindJNI` module to find Java Native Interface (JNI).
-
-Specify one or more of the following components as you call this find module. See example below.
-
-::
-
- Runtime = Java Runtime Environment used to execute Java byte-compiled applications
- Development = Development tools (java, javac, javah, jar and javadoc), includes Runtime component
- IdlJ = Interface Description Language (IDL) to Java compiler
- JarSigner = Signer and verifier tool for Java Archive (JAR) files
-
-
-This module sets the following result variables:
-
-::
-
- Java_JAVA_EXECUTABLE = the full path to the Java runtime
- Java_JAVAC_EXECUTABLE = the full path to the Java compiler
- Java_JAVAH_EXECUTABLE = the full path to the Java header generator
- Java_JAVADOC_EXECUTABLE = the full path to the Java documentation generator
- Java_IDLJ_EXECUTABLE = the full path to the Java idl compiler
- Java_JAR_EXECUTABLE = the full path to the Java archiver
- Java_JARSIGNER_EXECUTABLE = the full path to the Java jar signer
- Java_VERSION_STRING = Version of java found, eg. 1.6.0_12
- Java_VERSION_MAJOR = The major version of the package found.
- Java_VERSION_MINOR = The minor version of the package found.
- Java_VERSION_PATCH = The patch version of the package found.
- Java_VERSION_TWEAK = The tweak version of the package found (after '_')
- Java_VERSION = This is set to: $major[.$minor[.$patch[.$tweak]]]
-
-
-
-The minimum required version of Java can be specified using the
-:command:`find_package` syntax, e.g.
-
-.. code-block:: cmake
-
- find_package(Java 1.8)
-
-NOTE: ``${Java_VERSION}`` and ``${Java_VERSION_STRING}`` are not guaranteed to
-be identical. For example some java version may return:
-``Java_VERSION_STRING = 1.8.0_17`` and ``Java_VERSION = 1.8.0.17``
-
-another example is the Java OEM, with: ``Java_VERSION_STRING = 1.8.0-oem``
-and ``Java_VERSION = 1.8.0``
-
-For these components the following variables are set:
-
-::
-
- Java_FOUND - TRUE if all components are found.
- Java_<component>_FOUND - TRUE if <component> is found.
-
-
-
-Example Usages:
-
-::
-
- find_package(Java)
- find_package(Java 1.8 REQUIRED)
- find_package(Java COMPONENTS Runtime)
- find_package(Java COMPONENTS Development)
-#]=======================================================================]
-
-include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindJavaCommon.cmake)
-
-# The HINTS option should only be used for values computed from the system.
-set(_JAVA_HINTS)
-if(_JAVA_HOME)
- list(APPEND _JAVA_HINTS ${_JAVA_HOME}/bin)
-endif()
-if (WIN32)
- macro (_JAVA_GET_INSTALLED_VERSIONS _KIND)
- execute_process(COMMAND REG QUERY HKLM\\SOFTWARE\\JavaSoft\\${_KIND}
- RESULT_VARIABLE _JAVA_RESULT
- OUTPUT_VARIABLE _JAVA_VERSIONS
- ERROR_QUIET)
- if (NOT _JAVA_RESULT)
- string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\[0-9.]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
- if (_JAVA_VERSIONS)
- # sort versions. Most recent first
- ## handle version 9 apart from other versions to get correct ordering
- set (_JAVA_V9 ${_JAVA_VERSIONS})
- list (FILTER _JAVA_VERSIONS EXCLUDE REGEX "${_KIND}\\\\9")
- list (SORT _JAVA_VERSIONS)
- list (REVERSE _JAVA_VERSIONS)
- list (FILTER _JAVA_V9 INCLUDE REGEX "${_KIND}\\\\9")
- list (SORT _JAVA_V9)
- list (REVERSE _JAVA_V9)
- list (APPEND _JAVA_VERSIONS ${_JAVA_V9})
- foreach (_JAVA_HINT IN LISTS _JAVA_VERSIONS)
- list(APPEND _JAVA_HINTS "[${_JAVA_HINT};JavaHome]/bin")
- endforeach()
- endif()
- endif()
- endmacro()
-
- # search for installed versions for version 9 and upper
- _JAVA_GET_INSTALLED_VERSIONS("JDK")
- _JAVA_GET_INSTALLED_VERSIONS("JRE")
-
- list(APPEND _JAVA_HINTS
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.9;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.8;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.7;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.6;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.5;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.4;JavaHome]/bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.3;JavaHome]/bin"
- )
-endif()
-
-# Hard-coded guesses should still go in PATHS. This ensures that the user
-# environment can always override hard guesses.
-set(_JAVA_PATHS
- /usr/lib/java/bin
- /usr/share/java/bin
- /usr/local/java/bin
- /usr/local/java/share/bin
- /usr/java/j2sdk1.4.2_04
- /usr/lib/j2sdk1.4-sun/bin
- /usr/java/j2sdk1.4.2_09/bin
- /usr/lib/j2sdk1.5-sun/bin
- /opt/sun-jdk-1.5.0.04/bin
- /usr/local/jdk-1.7.0/bin
- /usr/local/jdk-1.6.0/bin
- )
-find_program(Java_JAVA_EXECUTABLE
- NAMES java
- HINTS ${_JAVA_HINTS}
- PATHS ${_JAVA_PATHS}
-)
-
-if(Java_JAVA_EXECUTABLE)
- execute_process(COMMAND "${Java_JAVA_EXECUTABLE}" -version
- RESULT_VARIABLE res
- OUTPUT_VARIABLE var
- ERROR_VARIABLE var # sun-java output to stderr
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_STRIP_TRAILING_WHITESPACE)
- if( res )
- if(var MATCHES "No Java runtime present, requesting install")
- set_property(CACHE Java_JAVA_EXECUTABLE
- PROPERTY VALUE "Java_JAVA_EXECUTABLE-NOTFOUND")
- elseif(${Java_FIND_REQUIRED})
- message( FATAL_ERROR "Error executing java -version" )
- else()
- message( STATUS "Warning, could not run java -version")
- endif()
- else()
- # Extract version components (up to 4 levels) from "java -version" output.
- set(_java_version_regex [[(([0-9]+)(\.([0-9]+)(\.([0-9]+)(_([0-9]+))?)?)?.*)]])
- if(var MATCHES "java version \"${_java_version_regex}\"")
- # Sun, GCJ, older OpenJDK
- set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
- set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}")
- if (CMAKE_MATCH_4)
- set(Java_VERSION_MINOR "${CMAKE_MATCH_4}")
- else()
- set(Java_VERSION_MINOR 0)
- endif()
- if (CMAKE_MATCH_6)
- set(Java_VERSION_PATCH "${CMAKE_MATCH_6}")
- else()
- set(Java_VERSION_PATCH 0)
- endif()
- set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}")
- elseif(var MATCHES "openjdk version \"${_java_version_regex}\"")
- # OpenJDK
- set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
- set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}")
- if (CMAKE_MATCH_4)
- set(Java_VERSION_MINOR "${CMAKE_MATCH_4}")
- else()
- set(Java_VERSION_MINOR 0)
- endif()
- if (CMAKE_MATCH_6)
- set(Java_VERSION_PATCH "${CMAKE_MATCH_6}")
- else()
- set(Java_VERSION_PATCH 0)
- endif()
- set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}")
- elseif(var MATCHES "openjdk version \"([0-9]+)-[A-Za-z]+\"")
- # OpenJDK 9 early access builds or locally built
- set(Java_VERSION_STRING "1.${CMAKE_MATCH_1}.0")
- set(Java_VERSION_MAJOR "1")
- set(Java_VERSION_MINOR "${CMAKE_MATCH_1}")
- set(Java_VERSION_PATCH "0")
- set(Java_VERSION_TWEAK "")
- elseif(var MATCHES "java full version \"kaffe-${_java_version_regex}\"")
- # Kaffe style
- set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
- set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}")
- set(Java_VERSION_MINOR "${CMAKE_MATCH_4}")
- set(Java_VERSION_PATCH "${CMAKE_MATCH_6}")
- set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}")
- else()
- if(NOT Java_FIND_QUIETLY)
- string(REPLACE "\n" "\n " ver_msg "\n${var}")
- message(WARNING "Java version not recognized:${ver_msg}\nPlease report.")
- endif()
- set(Java_VERSION_STRING "")
- set(Java_VERSION_MAJOR "")
- set(Java_VERSION_MINOR "")
- set(Java_VERSION_PATCH "")
- set(Java_VERSION_TWEAK "")
- endif()
- set(Java_VERSION "${Java_VERSION_MAJOR}")
- if(NOT "x${Java_VERSION}" STREQUAL "x")
- foreach(c MINOR PATCH TWEAK)
- if(NOT "x${Java_VERSION_${c}}" STREQUAL "x")
- string(APPEND Java_VERSION ".${Java_VERSION_${c}}")
- else()
- break()
- endif()
- endforeach()
- endif()
- endif()
-
-endif()
-
-
-find_program(Java_JAR_EXECUTABLE
- NAMES jar
- HINTS ${_JAVA_HINTS}
- PATHS ${_JAVA_PATHS}
-)
-
-find_program(Java_JAVAC_EXECUTABLE
- NAMES javac
- HINTS ${_JAVA_HINTS}
- PATHS ${_JAVA_PATHS}
-)
-
-find_program(Java_JAVAH_EXECUTABLE
- NAMES javah
- HINTS ${_JAVA_HINTS}
- PATHS ${_JAVA_PATHS}
-)
-
-find_program(Java_JAVADOC_EXECUTABLE
- NAMES javadoc
- HINTS ${_JAVA_HINTS}
- PATHS ${_JAVA_PATHS}
-)
-
-find_program(Java_IDLJ_EXECUTABLE
- NAMES idlj
- HINTS ${_JAVA_HINTS}
- PATHS ${_JAVA_PATHS}
-)
-
-find_program(Java_JARSIGNER_EXECUTABLE
- NAMES jarsigner
- HINTS ${_JAVA_HINTS}
- PATHS ${_JAVA_PATHS}
-)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-if(Java_FIND_COMPONENTS)
- set(_JAVA_REQUIRED_VARS)
- foreach(component ${Java_FIND_COMPONENTS})
- # User just want to execute some Java byte-compiled
- If(component STREQUAL "Runtime")
- list(APPEND _JAVA_REQUIRED_VARS Java_JAVA_EXECUTABLE)
- if(Java_JAVA_EXECUTABLE)
- set(Java_Runtime_FOUND TRUE)
- endif()
- elseif(component STREQUAL "Development")
- list(APPEND _JAVA_REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAVAC_EXECUTABLE
- Java_JAR_EXECUTABLE Java_JAVADOC_EXECUTABLE)
- if(Java_VERSION VERSION_LESS "10")
- list(APPEND _JAVA_REQUIRED_VARS Java_JAVAH_EXECUTABLE)
- if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE
- AND Java_JAVAH_EXECUTABLE AND Java_JAR_EXECUTABLE AND Java_JAVADOC_EXECUTABLE)
- set(Java_Development_FOUND TRUE)
- endif()
- else()
- if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE
- AND Java_JAR_EXECUTABLE AND Java_JAVADOC_EXECUTABLE)
- set(Java_Development_FOUND TRUE)
- endif()
- endif()
- elseif(component STREQUAL "IdlJ")
- list(APPEND _JAVA_REQUIRED_VARS Java_IDLJ_EXECUTABLE)
- if(Java_IDLJ_EXECUTABLE)
- set(Java_IdlJ_FOUND TRUE)
- endif()
- elseif(component STREQUAL "JarSigner")
- list(APPEND _JAVA_REQUIRED_VARS Java_JARSIGNER_EXECUTABLE)
- if(Java_JARSIGNER_EXECUTABLE)
- set(Java_JarSigner_FOUND TRUE)
- endif()
- else()
- message(FATAL_ERROR "Comp: ${component} is not handled")
- endif()
- endforeach()
- list (REMOVE_DUPLICATES _JAVA_REQUIRED_VARS)
- find_package_handle_standard_args(Java
- REQUIRED_VARS ${_JAVA_REQUIRED_VARS} HANDLE_COMPONENTS
- VERSION_VAR Java_VERSION
- )
- if(Java_FOUND)
- foreach(component ${Java_FIND_COMPONENTS})
- set(Java_${component}_FOUND TRUE)
- endforeach()
- endif()
-else()
- # Check for Development
- if(Java_VERSION VERSION_LESS "10")
- find_package_handle_standard_args(Java
- REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
- Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE
- VERSION_VAR Java_VERSION_STRING
- )
- else()
- find_package_handle_standard_args(Java
- REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
- Java_JAVADOC_EXECUTABLE
- VERSION_VAR Java_VERSION_STRING
- )
- endif()
-endif()
-
-
-mark_as_advanced(
- Java_JAVA_EXECUTABLE
- Java_JAR_EXECUTABLE
- Java_JAVAC_EXECUTABLE
- Java_JAVAH_EXECUTABLE
- Java_JAVADOC_EXECUTABLE
- Java_IDLJ_EXECUTABLE
- Java_JARSIGNER_EXECUTABLE
- )
-
-# LEGACY
-set(JAVA_RUNTIME ${Java_JAVA_EXECUTABLE})
-set(JAVA_ARCHIVE ${Java_JAR_EXECUTABLE})
-set(JAVA_COMPILE ${Java_JAVAC_EXECUTABLE})
diff --git a/share/cmake-3.17/Modules/FindLAPACK.cmake b/share/cmake-3.17/Modules/FindLAPACK.cmake
deleted file mode 100644
index c962976..0000000
--- a/share/cmake-3.17/Modules/FindLAPACK.cmake
+++ /dev/null
@@ -1,496 +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:
-
- * ``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.17/Modules/FindLibXslt.cmake b/share/cmake-3.17/Modules/FindLibXslt.cmake
deleted file mode 100644
index 01a9d8b..0000000
--- a/share/cmake-3.17/Modules/FindLibXslt.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.
-
-#[=======================================================================[.rst:
-FindLibXslt
------------
-
-Find the XSL Transformations, Extensible Stylesheet Language
-Transformations (XSLT) library (LibXslt)
-
-Once done this will define
-
-::
-
- LIBXSLT_FOUND - system has LibXslt
- LIBXSLT_INCLUDE_DIR - the LibXslt include directory
- LIBXSLT_LIBRARIES - Link these to LibXslt
- LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt
- LIBXSLT_VERSION_STRING - version of LibXslt found (since CMake 2.8.8)
-
-Additionally, the following two variables are set (but not required
-for using xslt):
-
-``LIBXSLT_EXSLT_LIBRARIES``
- Link to these if you need to link against the exslt library.
-``LIBXSLT_XSLTPROC_EXECUTABLE``
- Contains the full path to the xsltproc executable if found.
-#]=======================================================================]
-
-# 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_LIBXSLT QUIET libxslt)
-set(LIBXSLT_DEFINITIONS ${PC_LIBXSLT_CFLAGS_OTHER})
-
-find_path(LIBXSLT_INCLUDE_DIR NAMES libxslt/xslt.h
- HINTS
- ${PC_LIBXSLT_INCLUDEDIR}
- ${PC_LIBXSLT_INCLUDE_DIRS}
- )
-
-find_library(LIBXSLT_LIBRARIES NAMES xslt libxslt
- HINTS
- ${PC_LIBXSLT_LIBDIR}
- ${PC_LIBXSLT_LIBRARY_DIRS}
- )
-
-find_library(LIBXSLT_EXSLT_LIBRARY NAMES exslt libexslt
- HINTS
- ${PC_LIBXSLT_LIBDIR}
- ${PC_LIBXSLT_LIBRARY_DIRS}
- )
-
-set(LIBXSLT_EXSLT_LIBRARIES ${LIBXSLT_EXSLT_LIBRARY} )
-
-find_program(LIBXSLT_XSLTPROC_EXECUTABLE xsltproc)
-
-if(PC_LIBXSLT_VERSION)
- set(LIBXSLT_VERSION_STRING ${PC_LIBXSLT_VERSION})
-elseif(LIBXSLT_INCLUDE_DIR AND EXISTS "${LIBXSLT_INCLUDE_DIR}/libxslt/xsltconfig.h")
- file(STRINGS "${LIBXSLT_INCLUDE_DIR}/libxslt/xsltconfig.h" libxslt_version_str
- REGEX "^#define[\t ]+LIBXSLT_DOTTED_VERSION[\t ]+\".*\"")
-
- string(REGEX REPLACE "^#define[\t ]+LIBXSLT_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1"
- LIBXSLT_VERSION_STRING "${libxslt_version_str}")
- unset(libxslt_version_str)
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXslt
- REQUIRED_VARS LIBXSLT_LIBRARIES LIBXSLT_INCLUDE_DIR
- VERSION_VAR LIBXSLT_VERSION_STRING)
-
-mark_as_advanced(LIBXSLT_INCLUDE_DIR
- LIBXSLT_LIBRARIES
- LIBXSLT_EXSLT_LIBRARY
- LIBXSLT_XSLTPROC_EXECUTABLE)
diff --git a/share/cmake-3.17/Modules/FindLua.cmake b/share/cmake-3.17/Modules/FindLua.cmake
deleted file mode 100644
index 0b0c970..0000000
--- a/share/cmake-3.17/Modules/FindLua.cmake
+++ /dev/null
@@ -1,238 +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)
- 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.17/Modules/FindMPI.cmake b/share/cmake-3.17/Modules/FindMPI.cmake
deleted file mode 100644
index 41e1d08..0000000
--- a/share/cmake-3.17/Modules/FindMPI.cmake
+++ /dev/null
@@ -1,1787 +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}_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.17/Modules/FindOpenAL.cmake b/share/cmake-3.17/Modules/FindOpenAL.cmake
deleted file mode 100644
index 27dcaf5..0000000
--- a/share/cmake-3.17/Modules/FindOpenAL.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.
-
-#[=======================================================================[.rst:
-FindOpenAL
-----------
-
-
-Finds Open Audio Library (OpenAL).
-This module defines ``OPENAL_LIBRARY OPENAL_FOUND``, if
-false, do not try to link to OpenAL ``OPENAL_INCLUDE_DIR``, where to find
-the headers.
-
-``$OPENALDIR`` is an environment variable that would correspond to the
-``./configure --prefix=$OPENALDIR`` used in building OpenAL.
-
-Created by Eric Wing. This was influenced by the ``FindSDL.cmake``
-module.
-#]=======================================================================]
-
-# This makes the presumption that you are include al.h like
-# #include "al.h"
-# and not
-# #include <AL/al.h>
-# The reason for this is that the latter is not entirely portable.
-# Windows/Creative Labs does not by default put their headers in AL/ and
-# OS X uses the convention <OpenAL/al.h>.
-#
-# For Windows, Creative Labs seems to have added a registry key for their
-# OpenAL 1.1 installer. I have added that key to the list of search paths,
-# however, the key looks like it could be a little fragile depending on
-# if they decide to change the 1.00.0000 number for bug fix releases.
-# Also, they seem to have laid down groundwork for multiple library platforms
-# which puts the library in an extra subdirectory. Currently there is only
-# Win32 and I have hardcoded that here. This may need to be adjusted as
-# platforms are introduced.
-# The OpenAL 1.0 installer doesn't seem to have a useful key I can use.
-# I do not know if the Nvidia OpenAL SDK has a registry key.
-#
-# For OS X, remember that OpenAL was added by Apple in 10.4 (Tiger).
-# To support the framework, I originally wrote special framework detection
-# code in this module which I have now removed with CMake's introduction
-# of native support for frameworks.
-# In addition, OpenAL is open source, and it is possible to compile on Panther.
-# Furthermore, due to bugs in the initial OpenAL release, and the
-# transition to OpenAL 1.1, it is common to need to override the built-in
-# framework.
-# Per my request, CMake should search for frameworks first in
-# the following order:
-# ~/Library/Frameworks/OpenAL.framework/Headers
-# /Library/Frameworks/OpenAL.framework/Headers
-# /System/Library/Frameworks/OpenAL.framework/Headers
-#
-# On OS X, this will prefer the Framework version (if found) over others.
-# People will have to manually change the cache values of
-# OPENAL_LIBRARY to override this selection or set the CMake environment
-# CMAKE_INCLUDE_PATH to modify the search paths.
-
-find_path(OPENAL_INCLUDE_DIR al.h
- HINTS
- ENV OPENALDIR
- PATH_SUFFIXES include/AL include/OpenAL include AL OpenAL
- PATHS
- ~/Library/Frameworks
- /Library/Frameworks
- /opt
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
-)
-
-if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_OpenAL_ARCH_DIR libs/Win64)
-else()
- set(_OpenAL_ARCH_DIR libs/Win32)
-endif()
-
-find_library(OPENAL_LIBRARY
- NAMES OpenAL al openal OpenAL32
- HINTS
- ENV OPENALDIR
- PATH_SUFFIXES libx32 lib64 lib libs64 libs ${_OpenAL_ARCH_DIR}
- PATHS
- ~/Library/Frameworks
- /Library/Frameworks
- /opt
- [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
-)
-
-unset(_OpenAL_ARCH_DIR)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenAL DEFAULT_MSG OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
-
-mark_as_advanced(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
diff --git a/share/cmake-3.17/Modules/FindOpenCL.cmake b/share/cmake-3.17/Modules/FindOpenCL.cmake
deleted file mode 100644
index 9891724..0000000
--- a/share/cmake-3.17/Modules/FindOpenCL.cmake
+++ /dev/null
@@ -1,172 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindOpenCL
-----------
-
-Finds Open Computing Language (OpenCL)
-
-IMPORTED Targets
-^^^^^^^^^^^^^^^^
-
-This module defines :prop_tgt:`IMPORTED` target ``OpenCL::OpenCL``, if
-OpenCL has been found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables::
-
- OpenCL_FOUND - True if OpenCL was found
- OpenCL_INCLUDE_DIRS - include directories for OpenCL
- OpenCL_LIBRARIES - link against this library to use OpenCL
- OpenCL_VERSION_STRING - Highest supported OpenCL version (eg. 1.2)
- OpenCL_VERSION_MAJOR - The major version of the OpenCL implementation
- OpenCL_VERSION_MINOR - The minor version of the OpenCL implementation
-
-The module will also define two cache variables::
-
- OpenCL_INCLUDE_DIR - the OpenCL include directory
- OpenCL_LIBRARY - the path to the OpenCL library
-
-#]=======================================================================]
-
-function(_FIND_OPENCL_VERSION)
- include(CheckSymbolExists)
- include(CMakePushCheckState)
- set(CMAKE_REQUIRED_QUIET ${OpenCL_FIND_QUIETLY})
-
- CMAKE_PUSH_CHECK_STATE()
- foreach(VERSION "2_2" "2_1" "2_0" "1_2" "1_1" "1_0")
- set(CMAKE_REQUIRED_INCLUDES "${OpenCL_INCLUDE_DIR}")
-
- if(APPLE)
- CHECK_SYMBOL_EXISTS(
- CL_VERSION_${VERSION}
- "${OpenCL_INCLUDE_DIR}/Headers/cl.h"
- OPENCL_VERSION_${VERSION})
- else()
- CHECK_SYMBOL_EXISTS(
- CL_VERSION_${VERSION}
- "${OpenCL_INCLUDE_DIR}/CL/cl.h"
- OPENCL_VERSION_${VERSION})
- endif()
-
- if(OPENCL_VERSION_${VERSION})
- string(REPLACE "_" "." VERSION "${VERSION}")
- set(OpenCL_VERSION_STRING ${VERSION} PARENT_SCOPE)
- string(REGEX MATCHALL "[0-9]+" version_components "${VERSION}")
- list(GET version_components 0 major_version)
- list(GET version_components 1 minor_version)
- set(OpenCL_VERSION_MAJOR ${major_version} PARENT_SCOPE)
- set(OpenCL_VERSION_MINOR ${minor_version} PARENT_SCOPE)
- break()
- endif()
- endforeach()
- CMAKE_POP_CHECK_STATE()
-endfunction()
-
-find_path(OpenCL_INCLUDE_DIR
- NAMES
- CL/cl.h OpenCL/cl.h
- PATHS
- ENV "PROGRAMFILES(X86)"
- ENV AMDAPPSDKROOT
- ENV INTELOCLSDKROOT
- ENV NVSDKCOMPUTE_ROOT
- ENV CUDA_PATH
- ENV ATISTREAMSDKROOT
- ENV OCL_ROOT
- PATH_SUFFIXES
- include
- OpenCL/common/inc
- "AMD APP/include")
-
-_FIND_OPENCL_VERSION()
-
-if(WIN32)
- if(CMAKE_SIZEOF_VOID_P EQUAL 4)
- find_library(OpenCL_LIBRARY
- NAMES OpenCL
- PATHS
- ENV "PROGRAMFILES(X86)"
- ENV AMDAPPSDKROOT
- ENV INTELOCLSDKROOT
- ENV CUDA_PATH
- ENV NVSDKCOMPUTE_ROOT
- ENV ATISTREAMSDKROOT
- ENV OCL_ROOT
- PATH_SUFFIXES
- "AMD APP/lib/x86"
- lib/x86
- lib/Win32
- OpenCL/common/lib/Win32)
- elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
- find_library(OpenCL_LIBRARY
- NAMES OpenCL
- PATHS
- ENV "PROGRAMFILES(X86)"
- ENV AMDAPPSDKROOT
- ENV INTELOCLSDKROOT
- ENV CUDA_PATH
- ENV NVSDKCOMPUTE_ROOT
- ENV ATISTREAMSDKROOT
- ENV OCL_ROOT
- PATH_SUFFIXES
- "AMD APP/lib/x86_64"
- lib/x86_64
- lib/x64
- OpenCL/common/lib/x64)
- endif()
-else()
- if(CMAKE_SIZEOF_VOID_P EQUAL 4)
- find_library(OpenCL_LIBRARY
- NAMES OpenCL
- PATHS
- ENV AMDAPPSDKROOT
- ENV CUDA_PATH
- PATH_SUFFIXES
- lib/x86
- lib)
- elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
- find_library(OpenCL_LIBRARY
- NAMES OpenCL
- PATHS
- ENV AMDAPPSDKROOT
- ENV CUDA_PATH
- PATH_SUFFIXES
- lib/x86_64
- lib/x64
- lib
- lib64)
- endif()
-endif()
-
-set(OpenCL_LIBRARIES ${OpenCL_LIBRARY})
-set(OpenCL_INCLUDE_DIRS ${OpenCL_INCLUDE_DIR})
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(
- OpenCL
- FOUND_VAR OpenCL_FOUND
- REQUIRED_VARS OpenCL_LIBRARY OpenCL_INCLUDE_DIR
- VERSION_VAR OpenCL_VERSION_STRING)
-
-mark_as_advanced(
- OpenCL_INCLUDE_DIR
- OpenCL_LIBRARY)
-
-if(OpenCL_FOUND AND NOT TARGET OpenCL::OpenCL)
- if(OpenCL_LIBRARY MATCHES "/([^/]+)\\.framework$")
- add_library(OpenCL::OpenCL INTERFACE IMPORTED)
- set_target_properties(OpenCL::OpenCL PROPERTIES
- INTERFACE_LINK_LIBRARIES "${OpenCL_LIBRARY}")
- else()
- add_library(OpenCL::OpenCL UNKNOWN IMPORTED)
- set_target_properties(OpenCL::OpenCL PROPERTIES
- IMPORTED_LOCATION "${OpenCL_LIBRARY}")
- endif()
- set_target_properties(OpenCL::OpenCL PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${OpenCL_INCLUDE_DIRS}")
-endif()
diff --git a/share/cmake-3.17/Modules/FindOpenMP.cmake b/share/cmake-3.17/Modules/FindOpenMP.cmake
deleted file mode 100644
index a4b1e1e..0000000
--- a/share/cmake-3.17/Modules/FindOpenMP.cmake
+++ /dev/null
@@ -1,605 +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" "-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
deleted file mode 100644
index af713d6..0000000
--- a/share/cmake-3.17/Modules/FindOpenSSL.cmake
+++ /dev/null
@@ -1,532 +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}
- ${_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.17/Modules/FindPackageHandleStandardArgs.cmake b/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake
deleted file mode 100644
index a078049..0000000
--- a/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake
+++ /dev/null
@@ -1,453 +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]
- [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.17/Modules/FindPkgConfig.cmake b/share/cmake-3.17/Modules/FindPkgConfig.cmake
deleted file mode 100644
index c79f20f..0000000
--- a/share/cmake-3.17/Modules/FindPkgConfig.cmake
+++ /dev/null
@@ -1,778 +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)
-
-#]========================================]
-
-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.17/Modules/FindProtobuf.cmake b/share/cmake-3.17/Modules/FindProtobuf.cmake
deleted file mode 100644
index f35978d..0000000
--- a/share/cmake-3.17/Modules/FindProtobuf.cmake
+++ /dev/null
@@ -1,661 +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()
-
- 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
deleted file mode 100644
index 9dfa222..0000000
--- a/share/cmake-3.17/Modules/FindPython.cmake
+++ /dev/null
@@ -1,370 +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_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
deleted file mode 100644
index ce06458..0000000
--- a/share/cmake-3.17/Modules/FindPython/Support.cmake
+++ /dev/null
@@ -1,2584 +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()
-
-
-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
deleted file mode 100644
index af8ad39..0000000
--- a/share/cmake-3.17/Modules/FindPython2.cmake
+++ /dev/null
@@ -1,268 +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 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
deleted file mode 100644
index 66f4f75..0000000
--- a/share/cmake-3.17/Modules/FindPython3.cmake
+++ /dev/null
@@ -1,319 +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_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.17/Modules/FindRuby.cmake b/share/cmake-3.17/Modules/FindRuby.cmake
deleted file mode 100644
index 7e01fbc..0000000
--- a/share/cmake-3.17/Modules/FindRuby.cmake
+++ /dev/null
@@ -1,295 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindRuby
---------
-
-Find Ruby
-
-This module finds if Ruby is installed and determines where the
-include files and libraries are. Ruby 1.8, 1.9, 2.0 and 2.1 are
-supported.
-
-The minimum required version of Ruby can be specified using the
-standard syntax, e.g. find_package(Ruby 1.8)
-
-It also determines what the name of the library is. This code sets
-the following variables:
-
-``RUBY_EXECUTABLE``
- full path to the ruby binary
-``RUBY_INCLUDE_DIRS``
- include dirs to be used when using the ruby library
-``RUBY_LIBRARY``
- full path to the ruby library
-``RUBY_VERSION``
- the version of ruby which was found, e.g. "1.8.7"
-``RUBY_FOUND``
- set to true if ruby ws found successfully
-
-Also:
-
-``RUBY_INCLUDE_PATH``
- same as RUBY_INCLUDE_DIRS, only provided for compatibility reasons, don't use it
-#]=======================================================================]
-
-# RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'`
-# RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
-# RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
-# RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
-# RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
-
-# uncomment the following line to get debug output for this file
-# set(_RUBY_DEBUG_OUTPUT TRUE)
-
-# Determine the list of possible names of the ruby executable depending
-# on which version of ruby is required
-set(_RUBY_POSSIBLE_EXECUTABLE_NAMES ruby)
-
-# if 1.9 is required, don't look for ruby18 and ruby1.8, default to version 1.8
-if(DEFINED Ruby_FIND_VERSION_MAJOR AND DEFINED Ruby_FIND_VERSION_MINOR)
- set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${RUBY_FIND_VERSION_MINOR}")
- # we can't construct that if only major version is given
- set(_RUBY_POSSIBLE_EXECUTABLE_NAMES
- ruby${Ruby_FIND_VERSION_MAJOR}.${Ruby_FIND_VERSION_MINOR}
- ruby${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION_MINOR}
- ${_RUBY_POSSIBLE_EXECUTABLE_NAMES})
-else()
- set(Ruby_FIND_VERSION_SHORT_NODOT "18")
-endif()
-
-if(NOT Ruby_FIND_VERSION_EXACT)
- list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.4 ruby24)
- list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.3 ruby23)
- list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.2 ruby22)
- list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.1 ruby21)
- list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby2.0 ruby20)
- list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby1.9 ruby19)
-
- # if we want a version below 1.9, also look for ruby 1.8
- if("${Ruby_FIND_VERSION_SHORT_NODOT}" VERSION_LESS "19")
- list(APPEND _RUBY_POSSIBLE_EXECUTABLE_NAMES ruby1.8 ruby18)
- endif()
-
- list(REMOVE_DUPLICATES _RUBY_POSSIBLE_EXECUTABLE_NAMES)
-endif()
-
-find_program(RUBY_EXECUTABLE NAMES ${_RUBY_POSSIBLE_EXECUTABLE_NAMES})
-
-if(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR)
- function(_RUBY_CONFIG_VAR RBVAR OUTVAR)
- execute_process(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['${RBVAR}']"
- RESULT_VARIABLE _RUBY_SUCCESS
- OUTPUT_VARIABLE _RUBY_OUTPUT
- ERROR_QUIET)
- if(_RUBY_SUCCESS OR _RUBY_OUTPUT STREQUAL "")
- execute_process(COMMAND ${RUBY_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['${RBVAR}']"
- RESULT_VARIABLE _RUBY_SUCCESS
- OUTPUT_VARIABLE _RUBY_OUTPUT
- ERROR_QUIET)
- endif()
- set(${OUTVAR} "${_RUBY_OUTPUT}" PARENT_SCOPE)
- endfunction()
-
-
- # query the ruby version
- _RUBY_CONFIG_VAR("MAJOR" RUBY_VERSION_MAJOR)
- _RUBY_CONFIG_VAR("MINOR" RUBY_VERSION_MINOR)
- _RUBY_CONFIG_VAR("TEENY" RUBY_VERSION_PATCH)
-
- # query the different directories
- _RUBY_CONFIG_VAR("archdir" RUBY_ARCH_DIR)
- _RUBY_CONFIG_VAR("arch" RUBY_ARCH)
- _RUBY_CONFIG_VAR("rubyhdrdir" RUBY_HDR_DIR)
- _RUBY_CONFIG_VAR("rubyarchhdrdir" RUBY_ARCHHDR_DIR)
- _RUBY_CONFIG_VAR("libdir" RUBY_POSSIBLE_LIB_DIR)
- _RUBY_CONFIG_VAR("rubylibdir" RUBY_RUBY_LIB_DIR)
-
- # site_ruby
- _RUBY_CONFIG_VAR("sitearchdir" RUBY_SITEARCH_DIR)
- _RUBY_CONFIG_VAR("sitelibdir" RUBY_SITELIB_DIR)
-
- # vendor_ruby available ?
- execute_process(COMMAND ${RUBY_EXECUTABLE} -r vendor-specific -e "print 'true'"
- OUTPUT_VARIABLE RUBY_HAS_VENDOR_RUBY ERROR_QUIET)
-
- if(RUBY_HAS_VENDOR_RUBY)
- _RUBY_CONFIG_VAR("vendorlibdir" RUBY_VENDORLIB_DIR)
- _RUBY_CONFIG_VAR("vendorarchdir" RUBY_VENDORARCH_DIR)
- endif()
-
- # save the results in the cache so we don't have to run ruby the next time again
- set(RUBY_VERSION_MAJOR ${RUBY_VERSION_MAJOR} CACHE PATH "The Ruby major version" FORCE)
- set(RUBY_VERSION_MINOR ${RUBY_VERSION_MINOR} CACHE PATH "The Ruby minor version" FORCE)
- set(RUBY_VERSION_PATCH ${RUBY_VERSION_PATCH} CACHE PATH "The Ruby patch version" FORCE)
- set(RUBY_ARCH_DIR ${RUBY_ARCH_DIR} CACHE PATH "The Ruby arch dir" FORCE)
- set(RUBY_HDR_DIR ${RUBY_HDR_DIR} CACHE PATH "The Ruby header dir (1.9+)" FORCE)
- set(RUBY_ARCHHDR_DIR ${RUBY_ARCHHDR_DIR} CACHE PATH "The Ruby arch header dir (2.0+)" FORCE)
- set(RUBY_POSSIBLE_LIB_DIR ${RUBY_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir" FORCE)
- set(RUBY_RUBY_LIB_DIR ${RUBY_RUBY_LIB_DIR} CACHE PATH "The Ruby ruby-lib dir" FORCE)
- set(RUBY_SITEARCH_DIR ${RUBY_SITEARCH_DIR} CACHE PATH "The Ruby site arch dir" FORCE)
- set(RUBY_SITELIB_DIR ${RUBY_SITELIB_DIR} CACHE PATH "The Ruby site lib dir" FORCE)
- set(RUBY_HAS_VENDOR_RUBY ${RUBY_HAS_VENDOR_RUBY} CACHE BOOL "Vendor Ruby is available" FORCE)
- set(RUBY_VENDORARCH_DIR ${RUBY_VENDORARCH_DIR} CACHE PATH "The Ruby vendor arch dir" FORCE)
- set(RUBY_VENDORLIB_DIR ${RUBY_VENDORLIB_DIR} CACHE PATH "The Ruby vendor lib dir" FORCE)
-
- mark_as_advanced(
- RUBY_ARCH_DIR
- RUBY_ARCH
- RUBY_HDR_DIR
- RUBY_ARCHHDR_DIR
- RUBY_POSSIBLE_LIB_DIR
- RUBY_RUBY_LIB_DIR
- RUBY_SITEARCH_DIR
- RUBY_SITELIB_DIR
- RUBY_HAS_VENDOR_RUBY
- RUBY_VENDORARCH_DIR
- RUBY_VENDORLIB_DIR
- RUBY_VERSION_MAJOR
- RUBY_VERSION_MINOR
- RUBY_VERSION_PATCH
- )
-endif()
-
-# In case RUBY_EXECUTABLE could not be executed (e.g. cross compiling)
-# try to detect which version we found. This is not too good.
-if(RUBY_EXECUTABLE AND NOT RUBY_VERSION_MAJOR)
- # by default assume 1.8.0
- set(RUBY_VERSION_MAJOR 1)
- set(RUBY_VERSION_MINOR 8)
- set(RUBY_VERSION_PATCH 0)
- # check whether we found 1.9.x
- if(${RUBY_EXECUTABLE} MATCHES "ruby1\\.?9")
- set(RUBY_VERSION_MAJOR 1)
- set(RUBY_VERSION_MINOR 9)
- endif()
- # check whether we found 2.0.x
- if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?0")
- set(RUBY_VERSION_MAJOR 2)
- set(RUBY_VERSION_MINOR 0)
- endif()
- # check whether we found 2.1.x
- if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?1")
- set(RUBY_VERSION_MAJOR 2)
- set(RUBY_VERSION_MINOR 1)
- endif()
- # check whether we found 2.2.x
- if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?2")
- set(RUBY_VERSION_MAJOR 2)
- set(RUBY_VERSION_MINOR 2)
- endif()
- # check whether we found 2.3.x
- if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?3")
- set(RUBY_VERSION_MAJOR 2)
- set(RUBY_VERSION_MINOR 3)
- endif()
- # check whether we found 2.4.x
- if(${RUBY_EXECUTABLE} MATCHES "ruby2\\.?4")
- set(RUBY_VERSION_MAJOR 2)
- set(RUBY_VERSION_MINOR 4)
- endif()
-endif()
-
-if(RUBY_VERSION_MAJOR)
- set(RUBY_VERSION "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}.${RUBY_VERSION_PATCH}")
- set(_RUBY_VERSION_SHORT "${RUBY_VERSION_MAJOR}.${RUBY_VERSION_MINOR}")
- set(_RUBY_VERSION_SHORT_NODOT "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}")
- set(_RUBY_NODOT_VERSION "${RUBY_VERSION_MAJOR}${RUBY_VERSION_MINOR}${RUBY_VERSION_PATCH}")
-endif()
-
-find_path(RUBY_INCLUDE_DIR
- NAMES ruby.h
- HINTS
- ${RUBY_HDR_DIR}
- ${RUBY_ARCH_DIR}
- /usr/lib/ruby/${_RUBY_VERSION_SHORT}/i586-linux-gnu/
-)
-
-set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIR} )
-
-# if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir
-if( "${Ruby_FIND_VERSION_SHORT_NODOT}" GREATER 18 OR "${_RUBY_VERSION_SHORT_NODOT}" GREATER 18 OR RUBY_HDR_DIR)
- find_path(RUBY_CONFIG_INCLUDE_DIR
- NAMES ruby/config.h config.h
- HINTS
- ${RUBY_HDR_DIR}/${RUBY_ARCH}
- ${RUBY_ARCH_DIR}
- ${RUBY_ARCHHDR_DIR}
- )
-
- set(RUBY_INCLUDE_DIRS ${RUBY_INCLUDE_DIRS} ${RUBY_CONFIG_INCLUDE_DIR} )
-endif()
-
-
-# Determine the list of possible names for the ruby library
-set(_RUBY_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_RUBY_VERSION_SHORT} ruby${_RUBY_VERSION_SHORT_NODOT} ruby-${_RUBY_VERSION_SHORT} ruby-${RUBY_VERSION})
-
-if(WIN32)
- set( _RUBY_MSVC_RUNTIME "" )
- if( MSVC_VERSION EQUAL 1200 )
- set( _RUBY_MSVC_RUNTIME "60" )
- endif()
- if( MSVC_VERSION EQUAL 1300 )
- set( _RUBY_MSVC_RUNTIME "70" )
- endif()
- if( MSVC_VERSION EQUAL 1310 )
- set( _RUBY_MSVC_RUNTIME "71" )
- endif()
- if( MSVC_VERSION EQUAL 1400 )
- set( _RUBY_MSVC_RUNTIME "80" )
- endif()
- if( MSVC_VERSION EQUAL 1500 )
- set( _RUBY_MSVC_RUNTIME "90" )
- endif()
-
- set(_RUBY_ARCH_PREFIX "")
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_RUBY_ARCH_PREFIX "x64-")
- endif()
-
- list(APPEND _RUBY_POSSIBLE_LIB_NAMES
- "${_RUBY_ARCH_PREFIX}msvcr${_RUBY_MSVC_RUNTIME}-ruby${_RUBY_NODOT_VERSION}"
- "${_RUBY_ARCH_PREFIX}msvcr${_RUBY_MSVC_RUNTIME}-ruby${_RUBY_NODOT_VERSION}-static"
- "${_RUBY_ARCH_PREFIX}msvcrt-ruby${_RUBY_NODOT_VERSION}"
- "${_RUBY_ARCH_PREFIX}msvcrt-ruby${_RUBY_NODOT_VERSION}-static" )
-endif()
-
-find_library(RUBY_LIBRARY NAMES ${_RUBY_POSSIBLE_LIB_NAMES} HINTS ${RUBY_POSSIBLE_LIB_DIR} )
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-set(_RUBY_REQUIRED_VARS RUBY_EXECUTABLE RUBY_INCLUDE_DIR RUBY_LIBRARY)
-if(_RUBY_VERSION_SHORT_NODOT GREATER 18)
- list(APPEND _RUBY_REQUIRED_VARS RUBY_CONFIG_INCLUDE_DIR)
-endif()
-
-if(_RUBY_DEBUG_OUTPUT)
- message(STATUS "--------FindRuby.cmake debug------------")
- message(STATUS "_RUBY_POSSIBLE_EXECUTABLE_NAMES: ${_RUBY_POSSIBLE_EXECUTABLE_NAMES}")
- message(STATUS "_RUBY_POSSIBLE_LIB_NAMES: ${_RUBY_POSSIBLE_LIB_NAMES}")
- message(STATUS "RUBY_ARCH_DIR: ${RUBY_ARCH_DIR}")
- message(STATUS "RUBY_HDR_DIR: ${RUBY_HDR_DIR}")
- message(STATUS "RUBY_POSSIBLE_LIB_DIR: ${RUBY_POSSIBLE_LIB_DIR}")
- message(STATUS "Found RUBY_VERSION: \"${RUBY_VERSION}\" , short: \"${_RUBY_VERSION_SHORT}\", nodot: \"${_RUBY_VERSION_SHORT_NODOT}\"")
- message(STATUS "_RUBY_REQUIRED_VARS: ${_RUBY_REQUIRED_VARS}")
- message(STATUS "RUBY_EXECUTABLE: ${RUBY_EXECUTABLE}")
- message(STATUS "RUBY_LIBRARY: ${RUBY_LIBRARY}")
- message(STATUS "RUBY_INCLUDE_DIR: ${RUBY_INCLUDE_DIR}")
- message(STATUS "RUBY_CONFIG_INCLUDE_DIR: ${RUBY_CONFIG_INCLUDE_DIR}")
- message(STATUS "--------------------")
-endif()
-
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ruby REQUIRED_VARS ${_RUBY_REQUIRED_VARS}
- VERSION_VAR RUBY_VERSION )
-
-mark_as_advanced(
- RUBY_EXECUTABLE
- RUBY_LIBRARY
- RUBY_INCLUDE_DIR
- RUBY_CONFIG_INCLUDE_DIR
- )
-
-# Set some variables for compatibility with previous version of this file
-set(RUBY_POSSIBLE_LIB_PATH ${RUBY_POSSIBLE_LIB_DIR})
-set(RUBY_RUBY_LIB_PATH ${RUBY_RUBY_LIB_DIR})
-set(RUBY_INCLUDE_PATH ${RUBY_INCLUDE_DIRS})
diff --git a/share/cmake-3.17/Modules/FindSWIG.cmake b/share/cmake-3.17/Modules/FindSWIG.cmake
deleted file mode 100644
index ae6ae56..0000000
--- a/share/cmake-3.17/Modules/FindSWIG.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.
-
-#[=======================================================================[.rst:
-FindSWIG
---------
-
-Find Simplified Wrapper and Interface Generator (SWIG)
-
-This module finds an installed SWIG. It sets the following variables:
-
-::
-
- SWIG_FOUND - set to "True" if SWIG is found
- SWIG_DIR - the directory where swig is installed
- SWIG_EXECUTABLE - the path to the swig executable
- SWIG_VERSION - the version number of the swig executable
-
-
-
-The minimum required version of SWIG can be specified using the
-standard syntax, e.g. :command:`find_package(SWIG 1.1)`
-
-All information is collected from the ``SWIG_EXECUTABLE``, so the version
-to be found can be changed from the command line by means of setting
-``SWIG_EXECUTABLE``
-#]=======================================================================]
-
-find_program(SWIG_EXECUTABLE NAMES swig4.0 swig3.0 swig2.0 swig)
-
-if(SWIG_EXECUTABLE)
- execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib
- OUTPUT_VARIABLE SWIG_swiglib_output
- ERROR_VARIABLE SWIG_swiglib_error
- RESULT_VARIABLE SWIG_swiglib_result)
-
- if(SWIG_swiglib_result)
- if(SWIG_FIND_REQUIRED)
- message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}")
- else()
- message(STATUS "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}")
- endif()
- else()
- string(REGEX REPLACE "[\n\r]+" ";" SWIG_swiglib_output ${SWIG_swiglib_output})
- find_path(SWIG_DIR swig.swg PATHS ${SWIG_swiglib_output} NO_CMAKE_FIND_ROOT_PATH)
- if(SWIG_DIR)
- set(SWIG_USE_FILE ${CMAKE_CURRENT_LIST_DIR}/UseSWIG.cmake)
- execute_process(COMMAND ${SWIG_EXECUTABLE} -version
- OUTPUT_VARIABLE SWIG_version_output
- ERROR_VARIABLE SWIG_version_output
- RESULT_VARIABLE SWIG_version_result)
- if(SWIG_version_result)
- message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -version\" failed with output:\n${SWIG_version_output}")
- else()
- string(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1"
- SWIG_version_output "${SWIG_version_output}")
- set(SWIG_VERSION ${SWIG_version_output} CACHE STRING "Swig version" FORCE)
- endif()
- endif()
- endif()
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(SWIG REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR
- VERSION_VAR SWIG_VERSION )
-
-mark_as_advanced(SWIG_DIR SWIG_VERSION SWIG_EXECUTABLE)
diff --git a/share/cmake-3.17/Modules/FindSquish.cmake b/share/cmake-3.17/Modules/FindSquish.cmake
deleted file mode 100644
index 7d49505..0000000
--- a/share/cmake-3.17/Modules/FindSquish.cmake
+++ /dev/null
@@ -1,301 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindSquish
-----------
-
--- Typical Use
-
-
-
-This module can be used to find Squish. Currently Squish versions 3
-and 4 are supported.
-
-::
-
- SQUISH_FOUND If false, don't try to use Squish
- SQUISH_VERSION The full version of Squish found
- SQUISH_VERSION_MAJOR The major version of Squish found
- SQUISH_VERSION_MINOR The minor version of Squish found
- SQUISH_VERSION_PATCH The patch version of Squish found
-
-
-
-::
-
- SQUISH_INSTALL_DIR The Squish installation directory
- (containing bin, lib, etc)
- SQUISH_SERVER_EXECUTABLE The squishserver executable
- SQUISH_CLIENT_EXECUTABLE The squishrunner executable
-
-
-
-::
-
- SQUISH_INSTALL_DIR_FOUND Was the install directory found?
- SQUISH_SERVER_EXECUTABLE_FOUND Was the server executable found?
- SQUISH_CLIENT_EXECUTABLE_FOUND Was the client executable found?
-
-
-
-It provides the function squish_v4_add_test() for adding a squish test
-to cmake using Squish 4.x:
-
-::
-
- squish_v4_add_test(cmakeTestName
- AUT targetName SUITE suiteName TEST squishTestName
- [SETTINGSGROUP group] [PRE_COMMAND command] [POST_COMMAND command] )
-
-
-
-The arguments have the following meaning:
-
-``cmakeTestName``
- this will be used as the first argument for add_test()
-``AUT targetName``
- the name of the cmake target which will be used as AUT, i.e. the
- executable which will be tested.
-``SUITE suiteName``
- this is either the full path to the squish suite, or just the
- last directory of the suite, i.e. the suite name. In this case
- the CMakeLists.txt which calls squish_add_test() must be located
- in the parent directory of the suite directory.
-``TEST squishTestName``
- the name of the squish test, i.e. the name of the subdirectory
- of the test inside the suite directory.
-``SETTINGSGROUP group``
- if specified, the given settings group will be used for executing the test.
- If not specified, the groupname will be "CTest_<username>"
-``PRE_COMMAND command``
- if specified, the given command will be executed before starting the squish test.
-``POST_COMMAND command``
- same as PRE_COMMAND, but after the squish test has been executed.
-
-
-
-::
-
- enable_testing()
- find_package(Squish 4.0)
- if (SQUISH_FOUND)
- squish_v4_add_test(myTestName
- AUT myApp
- SUITE ${CMAKE_SOURCE_DIR}/tests/mySuite
- TEST someSquishTest
- SETTINGSGROUP myGroup
- )
- endif ()
-
-
-
-
-
-For users of Squish version 3.x the macro squish_v3_add_test() is
-provided:
-
-::
-
- squish_v3_add_test(testName applicationUnderTest testCase envVars testWrapper)
- Use this macro to add a test using Squish 3.x.
-
-
-
-::
-
- enable_testing()
- find_package(Squish)
- if (SQUISH_FOUND)
- squish_v3_add_test(myTestName myApplication testCase envVars testWrapper)
- endif ()
-
-
-
-macro SQUISH_ADD_TEST(testName applicationUnderTest testCase envVars
-testWrapper)
-
-::
-
- This is deprecated. Use SQUISH_V3_ADD_TEST() if you are using Squish 3.x instead.
-#]=======================================================================]
-
-set(SQUISH_INSTALL_DIR_STRING "Directory containing the bin, doc, and lib directories for Squish; this should be the root of the installation directory.")
-set(SQUISH_SERVER_EXECUTABLE_STRING "The squishserver executable program.")
-set(SQUISH_CLIENT_EXECUTABLE_STRING "The squishclient executable program.")
-
-# Search only if the location is not already known.
-if(NOT SQUISH_INSTALL_DIR)
- # Get the system search path as a list.
- file(TO_CMAKE_PATH "$ENV{PATH}" SQUISH_INSTALL_DIR_SEARCH2)
-
- # Construct a set of paths relative to the system search path.
- set(SQUISH_INSTALL_DIR_SEARCH "")
- foreach(dir ${SQUISH_INSTALL_DIR_SEARCH2})
- set(SQUISH_INSTALL_DIR_SEARCH ${SQUISH_INSTALL_DIR_SEARCH} "${dir}/../lib/fltk")
- endforeach()
- string(REPLACE "//" "/" SQUISH_INSTALL_DIR_SEARCH "${SQUISH_INSTALL_DIR_SEARCH}")
-
- # Look for an installation
- find_path(SQUISH_INSTALL_DIR bin/squishrunner
- HINTS
- # Look for an environment variable SQUISH_INSTALL_DIR.
- ENV SQUISH_INSTALL_DIR
-
- # Look in places relative to the system executable search path.
- ${SQUISH_INSTALL_DIR_SEARCH}
-
- DOC "The ${SQUISH_INSTALL_DIR_STRING}"
- )
-endif()
-
-# search for the executables
-if(SQUISH_INSTALL_DIR)
- set(SQUISH_INSTALL_DIR_FOUND 1)
-
- # find the client program
- if(NOT SQUISH_CLIENT_EXECUTABLE)
- find_program(SQUISH_CLIENT_EXECUTABLE ${SQUISH_INSTALL_DIR}/bin/squishrunner${CMAKE_EXECUTABLE_SUFFIX} DOC "The ${SQUISH_CLIENT_EXECUTABLE_STRING}")
- endif()
-
- # find the server program
- if(NOT SQUISH_SERVER_EXECUTABLE)
- find_program(SQUISH_SERVER_EXECUTABLE ${SQUISH_INSTALL_DIR}/bin/squishserver${CMAKE_EXECUTABLE_SUFFIX} DOC "The ${SQUISH_SERVER_EXECUTABLE_STRING}")
- endif()
-
-else()
- set(SQUISH_INSTALL_DIR_FOUND 0)
-endif()
-
-
-set(SQUISH_VERSION)
-set(SQUISH_VERSION_MAJOR )
-set(SQUISH_VERSION_MINOR )
-set(SQUISH_VERSION_PATCH )
-
-# record if executables are set
-if(SQUISH_CLIENT_EXECUTABLE)
- set(SQUISH_CLIENT_EXECUTABLE_FOUND 1)
- execute_process(COMMAND "${SQUISH_CLIENT_EXECUTABLE}" --version
- OUTPUT_VARIABLE _squishVersionOutput
- ERROR_QUIET )
- if("${_squishVersionOutput}" MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)")
- set(SQUISH_VERSION_MAJOR "${CMAKE_MATCH_1}")
- set(SQUISH_VERSION_MINOR "${CMAKE_MATCH_2}")
- set(SQUISH_VERSION_PATCH "${CMAKE_MATCH_3}")
- set(SQUISH_VERSION "${SQUISH_VERSION_MAJOR}.${SQUISH_VERSION_MINOR}.${SQUISH_VERSION_PATCH}" )
- endif()
-else()
- set(SQUISH_CLIENT_EXECUTABLE_FOUND 0)
-endif()
-
-if(SQUISH_SERVER_EXECUTABLE)
- set(SQUISH_SERVER_EXECUTABLE_FOUND 1)
-else()
- set(SQUISH_SERVER_EXECUTABLE_FOUND 0)
-endif()
-
-# record if Squish was found
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(Squish REQUIRED_VARS SQUISH_INSTALL_DIR SQUISH_CLIENT_EXECUTABLE SQUISH_SERVER_EXECUTABLE
- VERSION_VAR SQUISH_VERSION )
-
-
-set(_SQUISH_MODULE_DIR "${CMAKE_CURRENT_LIST_DIR}")
-
-macro(SQUISH_V3_ADD_TEST testName testAUT testCase envVars testWraper)
- if("${SQUISH_VERSION_MAJOR}" STREQUAL "4")
- message(STATUS "Using squish_v3_add_test(), but SQUISH_VERSION_MAJOR is ${SQUISH_VERSION_MAJOR}.\nThis may not work.")
- endif()
-
- add_test(${testName}
- ${CMAKE_COMMAND} -V -VV
- "-Dsquish_version:STRING=3"
- "-Dsquish_aut:STRING=${testAUT}"
- "-Dsquish_server_executable:STRING=${SQUISH_SERVER_EXECUTABLE}"
- "-Dsquish_client_executable:STRING=${SQUISH_CLIENT_EXECUTABLE}"
- "-Dsquish_libqtdir:STRING=${QT_LIBRARY_DIR}"
- "-Dsquish_test_case:STRING=${testCase}"
- "-Dsquish_env_vars:STRING=${envVars}"
- "-Dsquish_wrapper:STRING=${testWraper}"
- "-Dsquish_module_dir:STRING=${_SQUISH_MODULE_DIR}"
- -P "${_SQUISH_MODULE_DIR}/SquishTestScript.cmake"
- )
- set_tests_properties(${testName}
- PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED;ERROR;FATAL"
- )
-endmacro()
-
-
-macro(SQUISH_ADD_TEST)
- message(STATUS "Using squish_add_test() is deprecated, use squish_v3_add_test() instead.")
- squish_v3_add_test(${ARGV})
-endmacro()
-
-
-function(SQUISH_V4_ADD_TEST testName)
-
- if(NOT "${SQUISH_VERSION_MAJOR}" STREQUAL "4")
- message(STATUS "Using squish_v4_add_test(), but SQUISH_VERSION_MAJOR is ${SQUISH_VERSION_MAJOR}.\nThis may not work.")
- endif()
-
- set(oneValueArgs AUT SUITE TEST SETTINGSGROUP PRE_COMMAND POST_COMMAND)
-
- cmake_parse_arguments(_SQUISH "" "${oneValueArgs}" "" ${ARGN} )
-
- if(_SQUISH_UNPARSED_ARGUMENTS)
- message(FATAL_ERROR "Unknown keywords given to SQUISH_ADD_TEST(): \"${_SQUISH_UNPARSED_ARGUMENTS}\"")
- endif()
-
- if(NOT _SQUISH_AUT)
- message(FATAL_ERROR "Required argument AUT not given for SQUISH_ADD_TEST()")
- endif()
-
- if(NOT _SQUISH_SUITE)
- message(FATAL_ERROR "Required argument SUITE not given for SQUISH_ADD_TEST()")
- endif()
-
- if(NOT _SQUISH_TEST)
- message(FATAL_ERROR "Required argument TEST not given for SQUISH_ADD_TEST()")
- endif()
-
- get_target_property(testAUTLocation ${_SQUISH_AUT} LOCATION)
- get_filename_component(testAUTDir ${testAUTLocation} PATH)
- get_filename_component(testAUTName ${testAUTLocation} NAME)
-
- get_filename_component(absTestSuite "${_SQUISH_SUITE}" ABSOLUTE)
- if(NOT EXISTS "${absTestSuite}")
- message(FATAL_ERROR "Could not find squish test suite ${_SQUISH_SUITE} (checked ${absTestSuite})")
- endif()
-
- set(absTestCase "${absTestSuite}/${_SQUISH_TEST}")
- if(NOT EXISTS "${absTestCase}")
- message(FATAL_ERROR "Could not find squish testcase ${_SQUISH_TEST} (checked ${absTestCase})")
- endif()
-
- if(NOT _SQUISH_SETTINGSGROUP)
- set(_SQUISH_SETTINGSGROUP "CTest_$ENV{LOGNAME}")
- endif()
-
- add_test(${testName}
- ${CMAKE_COMMAND} -V -VV
- "-Dsquish_version:STRING=4"
- "-Dsquish_aut:STRING=${testAUTName}"
- "-Dsquish_aut_dir:STRING=${testAUTDir}"
- "-Dsquish_server_executable:STRING=${SQUISH_SERVER_EXECUTABLE}"
- "-Dsquish_client_executable:STRING=${SQUISH_CLIENT_EXECUTABLE}"
- "-Dsquish_libqtdir:STRING=${QT_LIBRARY_DIR}"
- "-Dsquish_test_suite:STRING=${absTestSuite}"
- "-Dsquish_test_case:STRING=${_SQUISH_TEST}"
- "-Dsquish_env_vars:STRING=${envVars}"
- "-Dsquish_wrapper:STRING=${testWraper}"
- "-Dsquish_module_dir:STRING=${_SQUISH_MODULE_DIR}"
- "-Dsquish_settingsgroup:STRING=${_SQUISH_SETTINGSGROUP}"
- "-Dsquish_pre_command:STRING=${_SQUISH_PRE_COMMAND}"
- "-Dsquish_post_command:STRING=${_SQUISH_POST_COMMAND}"
- -P "${_SQUISH_MODULE_DIR}/SquishTestScript.cmake"
- )
- set_tests_properties(${testName}
- PROPERTIES FAIL_REGULAR_EXPRESSION "FAIL;FAILED;ERROR;FATAL"
- )
-endfunction()
diff --git a/share/cmake-3.17/Modules/FindSubversion.cmake b/share/cmake-3.17/Modules/FindSubversion.cmake
deleted file mode 100644
index ce280e2..0000000
--- a/share/cmake-3.17/Modules/FindSubversion.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.
-
-#[=======================================================================[.rst:
-FindSubversion
---------------
-
-Extract information from a subversion working copy
-
-The module defines the following variables:
-
-::
-
- Subversion_SVN_EXECUTABLE - path to svn command line client
- Subversion_VERSION_SVN - version of svn command line client
- Subversion_FOUND - true if the command line client was found
- SUBVERSION_FOUND - same as Subversion_FOUND, set for compatibility reasons
-
-
-
-The minimum required version of Subversion can be specified using the
-standard syntax, e.g. ``find_package(Subversion 1.4)``.
-
-If the command line client executable is found two macros are defined:
-
-::
-
- Subversion_WC_INFO(<dir> <var-prefix> [IGNORE_SVN_FAILURE])
- Subversion_WC_LOG(<dir> <var-prefix>)
-
-``Subversion_WC_INFO`` extracts information of a subversion working copy at a
-given location. This macro defines the following variables if running
-Subversion's ``info`` command on ``<dir>`` succeeds; otherwise a
-``SEND_ERROR`` message is generated. The error can be ignored by providing the
-``IGNORE_SVN_FAILURE`` option, which causes these variables to remain
-undefined.
-
-::
-
- <var-prefix>_WC_URL - url of the repository (at <dir>)
- <var-prefix>_WC_ROOT - root url of the repository
- <var-prefix>_WC_REVISION - current revision
- <var-prefix>_WC_LAST_CHANGED_AUTHOR - author of last commit
- <var-prefix>_WC_LAST_CHANGED_DATE - date of last commit
- <var-prefix>_WC_LAST_CHANGED_REV - revision of last commit
- <var-prefix>_WC_INFO - output of command `svn info <dir>'
-
-``Subversion_WC_LOG`` retrieves the log message of the base revision of a
-subversion working copy at a given location. This macro defines the variable:
-
-::
-
- <var-prefix>_LAST_CHANGED_LOG - last log of base revision
-
-Example usage:
-
-::
-
- find_package(Subversion)
- if(SUBVERSION_FOUND)
- Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
- message("Current revision is ${Project_WC_REVISION}")
- Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project)
- message("Last changed log is ${Project_LAST_CHANGED_LOG}")
- endif()
-#]=======================================================================]
-
-find_program(Subversion_SVN_EXECUTABLE svn
- PATHS
- [HKEY_LOCAL_MACHINE\\Software\\TortoiseSVN;Directory]/bin
- DOC "subversion command line client")
-mark_as_advanced(Subversion_SVN_EXECUTABLE)
-
-if(Subversion_SVN_EXECUTABLE)
- # the subversion commands should be executed with the C locale, otherwise
- # the message (which are parsed) may be translated, Alex
- set(_Subversion_SAVED_LC_ALL "$ENV{LC_ALL}")
- set(ENV{LC_ALL} C)
-
- execute_process(COMMAND ${Subversion_SVN_EXECUTABLE} --version
- OUTPUT_VARIABLE Subversion_VERSION_SVN
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- # restore the previous LC_ALL
- set(ENV{LC_ALL} ${_Subversion_SAVED_LC_ALL})
-
- string(REGEX REPLACE "^(.*\n)?svn, version ([.0-9]+).*"
- "\\2" Subversion_VERSION_SVN "${Subversion_VERSION_SVN}")
-
- macro(Subversion_WC_INFO dir prefix)
-
- cmake_parse_arguments(
- "Subversion_WC_INFO"
- "IGNORE_SVN_FAILURE"
- "" ""
- ${ARGN}
- )
-
- # the subversion commands should be executed with the C locale, otherwise
- # the message (which are parsed) may be translated, Alex
- set(_Subversion_SAVED_LC_ALL "$ENV{LC_ALL}")
- set(ENV{LC_ALL} C)
-
- execute_process(COMMAND ${Subversion_SVN_EXECUTABLE} info ${dir}
- OUTPUT_VARIABLE ${prefix}_WC_INFO
- ERROR_VARIABLE Subversion_svn_info_error
- RESULT_VARIABLE Subversion_svn_info_result
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(${Subversion_svn_info_result} EQUAL 0)
- string(REGEX REPLACE "^(.*\n)?URL: ([^\n]+).*"
- "\\2" ${prefix}_WC_URL "${${prefix}_WC_INFO}")
- string(REGEX REPLACE "^(.*\n)?Repository Root: ([^\n]+).*"
- "\\2" ${prefix}_WC_ROOT "${${prefix}_WC_INFO}")
- string(REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*"
- "\\2" ${prefix}_WC_REVISION "${${prefix}_WC_INFO}")
- string(REGEX REPLACE "^(.*\n)?Last Changed Author: ([^\n]+).*"
- "\\2" ${prefix}_WC_LAST_CHANGED_AUTHOR "${${prefix}_WC_INFO}")
- string(REGEX REPLACE "^(.*\n)?Last Changed Rev: ([^\n]+).*"
- "\\2" ${prefix}_WC_LAST_CHANGED_REV "${${prefix}_WC_INFO}")
- string(REGEX REPLACE "^(.*\n)?Last Changed Date: ([^\n]+).*"
- "\\2" ${prefix}_WC_LAST_CHANGED_DATE "${${prefix}_WC_INFO}")
- elseif(NOT Subversion_WC_INFO_IGNORE_SVN_FAILURE)
- message(SEND_ERROR "Command \"${Subversion_SVN_EXECUTABLE} info ${dir}\" failed with output:\n${Subversion_svn_info_error}")
- endif()
-
- # restore the previous LC_ALL
- set(ENV{LC_ALL} ${_Subversion_SAVED_LC_ALL})
-
- endmacro()
-
- macro(Subversion_WC_LOG dir prefix)
- # This macro can block if the certificate is not signed:
- # svn ask you to accept the certificate and wait for your answer
- # This macro requires a svn server network access (Internet most of the time)
- # and can also be slow since it access the svn server
- execute_process(COMMAND
- ${Subversion_SVN_EXECUTABLE} --non-interactive log -r BASE ${dir}
- OUTPUT_VARIABLE ${prefix}_LAST_CHANGED_LOG
- ERROR_VARIABLE Subversion_svn_log_error
- RESULT_VARIABLE Subversion_svn_log_result
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(NOT ${Subversion_svn_log_result} EQUAL 0)
- message(SEND_ERROR "Command \"${Subversion_SVN_EXECUTABLE} log -r BASE ${dir}\" failed with output:\n${Subversion_svn_log_error}")
- endif()
- endmacro()
-
-endif()
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Subversion REQUIRED_VARS Subversion_SVN_EXECUTABLE
- VERSION_VAR Subversion_VERSION_SVN )
-
-# for compatibility
-set(Subversion_FOUND ${SUBVERSION_FOUND})
-set(Subversion_SVN_FOUND ${SUBVERSION_FOUND})
diff --git a/share/cmake-3.17/Modules/FindThreads.cmake b/share/cmake-3.17/Modules/FindThreads.cmake
deleted file mode 100644
index f97e5c8..0000000
--- a/share/cmake-3.17/Modules/FindThreads.cmake
+++ /dev/null
@@ -1,248 +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.
-
-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.17/Modules/FindVulkan.cmake b/share/cmake-3.17/Modules/FindVulkan.cmake
deleted file mode 100644
index 55da55f..0000000
--- a/share/cmake-3.17/Modules/FindVulkan.cmake
+++ /dev/null
@@ -1,82 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindVulkan
-----------
-
-Find Vulkan, which is a low-overhead, cross-platform 3D graphics
-and computing API.
-
-IMPORTED Targets
-^^^^^^^^^^^^^^^^
-
-This module defines :prop_tgt:`IMPORTED` target ``Vulkan::Vulkan``, if
-Vulkan has been found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables::
-
- Vulkan_FOUND - "True" if Vulkan was found
- Vulkan_INCLUDE_DIRS - include directories for Vulkan
- Vulkan_LIBRARIES - link against this library to use Vulkan
-
-The module will also define two cache variables::
-
- Vulkan_INCLUDE_DIR - the Vulkan include directory
- Vulkan_LIBRARY - the path to the Vulkan library
-
-#]=======================================================================]
-
-if(WIN32)
- find_path(Vulkan_INCLUDE_DIR
- NAMES vulkan/vulkan.h
- PATHS
- "$ENV{VULKAN_SDK}/Include"
- )
-
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- find_library(Vulkan_LIBRARY
- NAMES vulkan-1
- PATHS
- "$ENV{VULKAN_SDK}/Lib"
- "$ENV{VULKAN_SDK}/Bin"
- )
- elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
- find_library(Vulkan_LIBRARY
- NAMES vulkan-1
- PATHS
- "$ENV{VULKAN_SDK}/Lib32"
- "$ENV{VULKAN_SDK}/Bin32"
- NO_SYSTEM_ENVIRONMENT_PATH
- )
- endif()
-else()
- find_path(Vulkan_INCLUDE_DIR
- NAMES vulkan/vulkan.h
- PATHS
- "$ENV{VULKAN_SDK}/include")
- find_library(Vulkan_LIBRARY
- NAMES vulkan
- PATHS
- "$ENV{VULKAN_SDK}/lib")
-endif()
-
-set(Vulkan_LIBRARIES ${Vulkan_LIBRARY})
-set(Vulkan_INCLUDE_DIRS ${Vulkan_INCLUDE_DIR})
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-find_package_handle_standard_args(Vulkan
- DEFAULT_MSG
- Vulkan_LIBRARY Vulkan_INCLUDE_DIR)
-
-mark_as_advanced(Vulkan_INCLUDE_DIR Vulkan_LIBRARY)
-
-if(Vulkan_FOUND AND NOT TARGET Vulkan::Vulkan)
- add_library(Vulkan::Vulkan UNKNOWN IMPORTED)
- set_target_properties(Vulkan::Vulkan PROPERTIES
- IMPORTED_LOCATION "${Vulkan_LIBRARIES}"
- INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIRS}")
-endif()
diff --git a/share/cmake-3.17/Modules/FindX11.cmake b/share/cmake-3.17/Modules/FindX11.cmake
deleted file mode 100644
index b28dd12..0000000
--- a/share/cmake-3.17/Modules/FindX11.cmake
+++ /dev/null
@@ -1,729 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindX11
--------
-
-Find X11 installation
-
-Try to find X11 on UNIX systems. The following values are defined
-
-::
-
- X11_FOUND - True if X11 is available
- X11_INCLUDE_DIR - include directories to use X11
- X11_LIBRARIES - link against these to use X11
-
-and also the following more fine grained variables and targets:
-
-::
-
- X11_ICE_INCLUDE_PATH, X11_ICE_LIB, X11_ICE_FOUND, X11::ICE
- X11_SM_INCLUDE_PATH, X11_SM_LIB, X11_SM_FOUND, X11::SM
- X11_X11_INCLUDE_PATH, X11_X11_LIB, X11::X11
- X11_Xaccessrules_INCLUDE_PATH,
- X11_Xaccessstr_INCLUDE_PATH, X11_Xaccess_FOUND
- X11_Xau_INCLUDE_PATH, X11_Xau_LIB, X11_Xau_FOUND, X11::Xau
- X11_Xcomposite_INCLUDE_PATH, X11_Xcomposite_LIB, X11_Xcomposite_FOUND, X11::Xcomposite
- X11_Xcursor_INCLUDE_PATH, X11_Xcursor_LIB, X11_Xcursor_FOUND, X11::Xcursor
- X11_Xdamage_INCLUDE_PATH, X11_Xdamage_LIB, X11_Xdamage_FOUND, X11::Xdamage
- X11_Xdmcp_INCLUDE_PATH, X11_Xdmcp_LIB, X11_Xdmcp_FOUND, X11::Xdmcp
- X11_Xext_INCLUDE_PATH, X11_Xext_LIB, X11_Xext_FOUND, X11::Xext
- X11_Xxf86misc_INCLUDE_PATH, X11_Xxf86misc_LIB, X11_Xxf86misc_FOUND, X11::Xxf86misc
- X11_Xxf86vm_INCLUDE_PATH, X11_Xxf86vm_LIB X11_Xxf86vm_FOUND, X11::Xxf86vm
- X11_Xfixes_INCLUDE_PATH, X11_Xfixes_LIB, X11_Xfixes_FOUND, X11::Xfixes
- X11_Xft_INCLUDE_PATH, X11_Xft_LIB, X11_Xft_FOUND, X11::Xft
- X11_Xi_INCLUDE_PATH, X11_Xi_LIB, X11_Xi_FOUND, X11::Xi
- X11_Xinerama_INCLUDE_PATH, X11_Xinerama_LIB, X11_Xinerama_FOUND, X11::Xinerama
- X11_Xkb_INCLUDE_PATH,
- X11_Xkblib_INCLUDE_PATH, X11_Xkb_FOUND, X11::Xkb
- X11_xkbfile_INCLUDE_PATH, X11_xkbfile_LIB, X11_xkbfile_FOUND, X11::xkbfile
- X11_Xmu_INCLUDE_PATH, X11_Xmu_LIB, X11_Xmu_FOUND, X11::Xmu
- X11_Xpm_INCLUDE_PATH, X11_Xpm_LIB, X11_Xpm_FOUND, X11::Xpm
- X11_Xtst_INCLUDE_PATH, X11_Xtst_LIB, X11_Xtst_FOUND, X11::Xtst
- X11_Xrandr_INCLUDE_PATH, X11_Xrandr_LIB, X11_Xrandr_FOUND, X11::Xrandr
- X11_Xrender_INCLUDE_PATH, X11_Xrender_LIB, X11_Xrender_FOUND, X11::Xrender
- X11_XRes_INCLUDE_PATH, X11_XRes_LIB, X11_XRes_FOUND, X11::XRes
- X11_Xss_INCLUDE_PATH, X11_Xss_LIB, X11_Xss_FOUND, X11::Xss
- X11_Xt_INCLUDE_PATH, X11_Xt_LIB, X11_Xt_FOUND, X11::Xt
- X11_Xutil_INCLUDE_PATH, X11_Xutil_FOUND, X11::Xutil
- X11_Xv_INCLUDE_PATH, X11_Xv_LIB, X11_Xv_FOUND, X11::Xv
- X11_dpms_INCLUDE_PATH, (in X11_Xext_LIB), X11_dpms_FOUND
- X11_XShm_INCLUDE_PATH, (in X11_Xext_LIB), X11_XShm_FOUND
- X11_Xshape_INCLUDE_PATH, (in X11_Xext_LIB), X11_Xshape_FOUND
- X11_XSync_INCLUDE_PATH, (in X11_Xext_LIB), X11_XSync_FOUND
-#]=======================================================================]
-
-if (UNIX)
- set(X11_FOUND 0)
- # X11 is never a framework and some header files may be
- # found in tcl on the mac
- set(CMAKE_FIND_FRAMEWORK_SAVE ${CMAKE_FIND_FRAMEWORK})
- set(CMAKE_FIND_FRAMEWORK NEVER)
- set(CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET})
- set(CMAKE_REQUIRED_QUIET ${X11_FIND_QUIETLY})
- set(X11_INC_SEARCH_PATH
- /usr/pkg/xorg/include
- /usr/X11R6/include
- /usr/X11R7/include
- /usr/include/X11
- /usr/openwin/include
- /usr/openwin/share/include
- /opt/graphics/OpenGL/include
- /opt/X11/include
- )
-
- set(X11_LIB_SEARCH_PATH
- /usr/pkg/xorg/lib
- /usr/X11R6/lib
- /usr/X11R7/lib
- /usr/openwin/lib
- /opt/X11/lib
- )
-
- find_path(X11_X11_INCLUDE_PATH X11/X.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xlib_INCLUDE_PATH X11/Xlib.h ${X11_INC_SEARCH_PATH})
-
- # Look for includes; keep the list sorted by name of the cmake *_INCLUDE_PATH
- # variable (which doesn't need to match the include file name).
-
- # Solaris lacks XKBrules.h, so we should skip kxkbd there.
- find_path(X11_ICE_INCLUDE_PATH X11/ICE/ICE.h ${X11_INC_SEARCH_PATH})
- find_path(X11_SM_INCLUDE_PATH X11/SM/SM.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xaccessrules_INCLUDE_PATH X11/extensions/XKBrules.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xaccessstr_INCLUDE_PATH X11/extensions/XKBstr.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xau_INCLUDE_PATH X11/Xauth.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xcomposite_INCLUDE_PATH X11/extensions/Xcomposite.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xcursor_INCLUDE_PATH X11/Xcursor/Xcursor.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xdamage_INCLUDE_PATH X11/extensions/Xdamage.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xdmcp_INCLUDE_PATH X11/Xdmcp.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xext_INCLUDE_PATH X11/extensions/Xext.h ${X11_INC_SEARCH_PATH})
- find_path(X11_dpms_INCLUDE_PATH X11/extensions/dpms.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xxf86misc_INCLUDE_PATH X11/extensions/xf86misc.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xxf86vm_INCLUDE_PATH X11/extensions/xf86vmode.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xfixes_INCLUDE_PATH X11/extensions/Xfixes.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xft_INCLUDE_PATH X11/Xft/Xft.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xi_INCLUDE_PATH X11/extensions/XInput.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xinerama_INCLUDE_PATH X11/extensions/Xinerama.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xkb_INCLUDE_PATH X11/extensions/XKB.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xkblib_INCLUDE_PATH X11/XKBlib.h ${X11_INC_SEARCH_PATH})
- find_path(X11_xkbfile_INCLUDE_PATH X11/extensions/XKBfile.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xmu_INCLUDE_PATH X11/Xmu/Xmu.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xpm_INCLUDE_PATH X11/xpm.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xtst_INCLUDE_PATH X11/extensions/XTest.h ${X11_INC_SEARCH_PATH})
- find_path(X11_XShm_INCLUDE_PATH X11/extensions/XShm.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xrandr_INCLUDE_PATH X11/extensions/Xrandr.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xrender_INCLUDE_PATH X11/extensions/Xrender.h ${X11_INC_SEARCH_PATH})
- find_path(X11_XRes_INCLUDE_PATH X11/extensions/XRes.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xss_INCLUDE_PATH X11/extensions/scrnsaver.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xshape_INCLUDE_PATH X11/extensions/shape.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xutil_INCLUDE_PATH X11/Xutil.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xt_INCLUDE_PATH X11/Intrinsic.h ${X11_INC_SEARCH_PATH})
- find_path(X11_Xv_INCLUDE_PATH X11/extensions/Xvlib.h ${X11_INC_SEARCH_PATH})
- find_path(X11_XSync_INCLUDE_PATH X11/extensions/sync.h ${X11_INC_SEARCH_PATH})
-
- # Backwards compatibility.
- set(X11_Xinput_INCLUDE_PATH "${X11_Xi_INCLUDE_PATH}")
- set(X11_xf86misc_INCLUDE_PATH "${X11_Xxf86misc_INCLUDE_PATH}")
- set(X11_xf86vmode_INCLUDE_PATH "${X11_Xxf8vm_INCLUDE_PATH}")
- set(X11_Xkbfile_INCLUDE_PATH "${X11_xkbfile_INCLUDE_PATH}")
- set(X11_XTest_INCLUDE_PATH "${X11_Xtst_INCLUDE_PATH}")
- set(X11_Xscreensaver_INCLUDE_PATH "${X11_Xss_INCLUDE_PATH}")
-
- find_library(X11_X11_LIB X11 ${X11_LIB_SEARCH_PATH})
-
- # Find additional X libraries. Keep list sorted by library name.
- find_library(X11_ICE_LIB ICE ${X11_LIB_SEARCH_PATH})
- find_library(X11_SM_LIB SM ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xau_LIB Xau ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xcomposite_LIB Xcomposite ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xcursor_LIB Xcursor ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xdamage_LIB Xdamage ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xdmcp_LIB Xdmcp ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xext_LIB Xext ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xfixes_LIB Xfixes ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xft_LIB Xft ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xi_LIB Xi ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xinerama_LIB Xinerama ${X11_LIB_SEARCH_PATH})
- find_library(X11_xkbfile_LIB xkbfile ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xmu_LIB Xmu ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xpm_LIB Xpm ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xrandr_LIB Xrandr ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH})
- find_library(X11_XRes_LIB XRes ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xss_LIB Xss ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xt_LIB Xt ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xtst_LIB Xtst ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xv_LIB Xv ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xxf86misc_LIB Xxf86misc ${X11_LIB_SEARCH_PATH})
- find_library(X11_Xxf86vm_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
-
- # Backwards compatibility.
- set(X11_Xinput_LIB "${X11_Xi_LIB}")
- set(X11_Xkbfile_LIB "${X11_xkbfile_LIB}")
- set(X11_XTest_LIB "${X11_Xtst_LIB}")
- set(X11_Xscreensaver_LIB "${X11_Xss_LIB}")
-
- set(X11_LIBRARY_DIR "")
- if(X11_X11_LIB)
- get_filename_component(X11_LIBRARY_DIR ${X11_X11_LIB} PATH)
- endif()
-
- set(X11_INCLUDE_DIR) # start with empty list
- if(X11_X11_INCLUDE_PATH)
- list(APPEND X11_INCLUDE_DIR ${X11_X11_INCLUDE_PATH})
- endif()
-
- if(X11_Xlib_INCLUDE_PATH)
- list(APPEND X11_INCLUDE_DIR ${X11_Xlib_INCLUDE_PATH})
- endif()
-
- if(X11_Xutil_INCLUDE_PATH)
- set(X11_Xutil_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xutil_INCLUDE_PATH})
- endif()
-
- if(X11_Xshape_INCLUDE_PATH)
- set(X11_Xshape_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xshape_INCLUDE_PATH})
- endif()
-
- set(X11_LIBRARIES) # start with empty list
- if(X11_X11_LIB)
- list(APPEND X11_LIBRARIES ${X11_X11_LIB})
- endif()
-
- if(X11_Xext_LIB)
- set(X11_Xext_FOUND TRUE)
- list(APPEND X11_LIBRARIES ${X11_Xext_LIB})
- endif()
-
- if(X11_Xt_LIB AND X11_Xt_INCLUDE_PATH)
- set(X11_Xt_FOUND TRUE)
- endif()
-
- if(X11_Xft_LIB AND X11_Xft_INCLUDE_PATH)
- find_package(Freetype QUIET)
- find_package(Fontconfig QUIET)
- if (FREETYPE_FOUND AND Fontconfig_FOUND)
- set(X11_Xft_FOUND TRUE)
- endif ()
- list(APPEND X11_INCLUDE_DIR ${X11_Xft_INCLUDE_PATH})
- endif()
-
- if(X11_Xv_LIB AND X11_Xv_INCLUDE_PATH)
- set(X11_Xv_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xv_INCLUDE_PATH})
- endif()
-
- if (X11_Xau_LIB AND X11_Xau_INCLUDE_PATH)
- set(X11_Xau_FOUND TRUE)
- endif ()
-
- if (X11_Xdmcp_INCLUDE_PATH AND X11_Xdmcp_LIB)
- set(X11_Xdmcp_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xdmcp_INCLUDE_PATH})
- endif ()
-
- if (X11_Xaccessrules_INCLUDE_PATH AND X11_Xaccessstr_INCLUDE_PATH)
- set(X11_Xaccess_FOUND TRUE)
- set(X11_Xaccess_INCLUDE_PATH ${X11_Xaccessstr_INCLUDE_PATH})
- list(APPEND X11_INCLUDE_DIR ${X11_Xaccess_INCLUDE_PATH})
- endif ()
-
- if (X11_Xpm_INCLUDE_PATH AND X11_Xpm_LIB)
- set(X11_Xpm_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xpm_INCLUDE_PATH})
- endif ()
-
- if (X11_Xcomposite_INCLUDE_PATH AND X11_Xcomposite_LIB)
- set(X11_Xcomposite_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xcomposite_INCLUDE_PATH})
- endif ()
-
- if (X11_Xdamage_INCLUDE_PATH AND X11_Xdamage_LIB)
- set(X11_Xdamage_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xdamage_INCLUDE_PATH})
- endif ()
-
- if (X11_XShm_INCLUDE_PATH)
- set(X11_XShm_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_XShm_INCLUDE_PATH})
- endif ()
-
- if (X11_Xtst_INCLUDE_PATH AND X11_Xtst_LIB)
- set(X11_Xtst_FOUND TRUE)
- # Backwards compatibility.
- set(X11_XTest_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xtst_INCLUDE_PATH})
- endif ()
-
- if (X11_Xi_INCLUDE_PATH AND X11_Xi_LIB)
- set(X11_Xi_FOUND TRUE)
- # Backwards compatibility.
- set(X11_Xinput_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xi_INCLUDE_PATH})
- endif ()
-
- if (X11_Xinerama_INCLUDE_PATH AND X11_Xinerama_LIB)
- set(X11_Xinerama_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xinerama_INCLUDE_PATH})
- endif ()
-
- if (X11_Xfixes_INCLUDE_PATH AND X11_Xfixes_LIB)
- set(X11_Xfixes_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xfixes_INCLUDE_PATH})
- endif ()
-
- if (X11_Xrender_INCLUDE_PATH AND X11_Xrender_LIB)
- set(X11_Xrender_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xrender_INCLUDE_PATH})
- endif ()
-
- if (X11_XRes_INCLUDE_PATH AND X11_XRes_LIB)
- set(X11_XRes_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_XRes_INCLUDE_PATH})
- endif ()
-
- if (X11_Xrandr_INCLUDE_PATH AND X11_Xrandr_LIB)
- set(X11_Xrandr_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xrandr_INCLUDE_PATH})
- endif ()
-
- if (X11_Xxf86misc_INCLUDE_PATH AND X11_Xxf86misc_LIB)
- set(X11_Xxf86misc_FOUND TRUE)
- # Backwards compatibility.
- set(X11_xf86misc_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xxf86misc_INCLUDE_PATH})
- endif ()
-
- if (X11_Xxf86vm_INCLUDE_PATH AND X11_Xxf86vm_LIB)
- set(X11_Xxf86vm_FOUND TRUE)
- # Backwards compatibility.
- set(X11_xf86vmode_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xxf86vm_INCLUDE_PATH})
- endif ()
-
- if (X11_Xcursor_INCLUDE_PATH AND X11_Xcursor_LIB)
- set(X11_Xcursor_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xcursor_INCLUDE_PATH})
- endif ()
-
- if (X11_Xss_INCLUDE_PATH AND X11_Xss_LIB)
- set(X11_Xss_FOUND TRUE)
- set(X11_Xscreensaver_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xss_INCLUDE_PATH})
- endif ()
-
- if (X11_dpms_INCLUDE_PATH)
- set(X11_dpms_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_dpms_INCLUDE_PATH})
- endif ()
-
- if (X11_Xkb_INCLUDE_PATH AND X11_Xkblib_INCLUDE_PATH AND X11_Xlib_INCLUDE_PATH)
- set(X11_Xkb_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xkb_INCLUDE_PATH} )
- endif ()
-
- if (X11_xkbfile_INCLUDE_PATH AND X11_xkbfile_LIB AND X11_Xlib_INCLUDE_PATH)
- set(X11_xkbfile_FOUND TRUE)
- # Backwards compatibility.
- set(X11_Xkbfile_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_xkbfile_INCLUDE_PATH} )
- endif ()
-
- if (X11_Xmu_INCLUDE_PATH AND X11_Xmu_LIB)
- set(X11_Xmu_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_Xmu_INCLUDE_PATH})
- endif ()
-
- if (X11_XSync_INCLUDE_PATH)
- set(X11_XSync_FOUND TRUE)
- list(APPEND X11_INCLUDE_DIR ${X11_XSync_INCLUDE_PATH})
- endif ()
-
- if(X11_ICE_LIB AND X11_ICE_INCLUDE_PATH)
- set(X11_ICE_FOUND TRUE)
- endif()
-
- if(X11_SM_LIB AND X11_SM_INCLUDE_PATH)
- set(X11_SM_FOUND TRUE)
- endif()
-
- # Most of the X11 headers will be in the same directories, avoid
- # creating a huge list of duplicates.
- if (X11_INCLUDE_DIR)
- list(REMOVE_DUPLICATES X11_INCLUDE_DIR)
- endif ()
-
- # Deprecated variable for backwards compatibility with CMake 1.4
- if (X11_X11_INCLUDE_PATH AND X11_LIBRARIES)
- set(X11_FOUND 1)
- endif ()
-
- include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
- find_package_handle_standard_args(X11
- REQUIRED_VARS X11_X11_INCLUDE_PATH X11_X11_LIB
- HANDLE_COMPONENTS)
-
- if(X11_FOUND)
- include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake)
- include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake)
-
- # Translated from an autoconf-generated configure script.
- # See libs.m4 in autoconf's m4 directory.
- if($ENV{ISC} MATCHES "^yes$")
- set(X11_X_EXTRA_LIBS -lnsl_s -linet)
- else()
- set(X11_X_EXTRA_LIBS "")
-
- # See if XOpenDisplay in X11 works by itself.
- check_library_exists("${X11_LIBRARIES}" "XOpenDisplay" "${X11_LIBRARY_DIR}" X11_LIB_X11_SOLO)
- if(NOT X11_LIB_X11_SOLO)
- # Find library needed for dnet_ntoa.
- check_library_exists("dnet" "dnet_ntoa" "" X11_LIB_DNET_HAS_DNET_NTOA)
- if (X11_LIB_DNET_HAS_DNET_NTOA)
- list(APPEND X11_X_EXTRA_LIBS -ldnet)
- else ()
- check_library_exists("dnet_stub" "dnet_ntoa" "" X11_LIB_DNET_STUB_HAS_DNET_NTOA)
- if (X11_LIB_DNET_STUB_HAS_DNET_NTOA)
- list(APPEND X11_X_EXTRA_LIBS -ldnet_stub)
- endif ()
- endif ()
- endif()
-
- # Find library needed for gethostbyname.
- check_function_exists("gethostbyname" CMAKE_HAVE_GETHOSTBYNAME)
- if(NOT CMAKE_HAVE_GETHOSTBYNAME)
- check_library_exists("nsl" "gethostbyname" "" CMAKE_LIB_NSL_HAS_GETHOSTBYNAME)
- if (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME)
- list(APPEND X11_X_EXTRA_LIBS -lnsl)
- else ()
- check_library_exists("bsd" "gethostbyname" "" CMAKE_LIB_BSD_HAS_GETHOSTBYNAME)
- if (CMAKE_LIB_BSD_HAS_GETHOSTBYNAME)
- list(APPEND X11_X_EXTRA_LIBS -lbsd)
- endif ()
- endif ()
- endif()
-
- # Find library needed for connect.
- check_function_exists("connect" CMAKE_HAVE_CONNECT)
- if(NOT CMAKE_HAVE_CONNECT)
- check_library_exists("socket" "connect" "" CMAKE_LIB_SOCKET_HAS_CONNECT)
- if (CMAKE_LIB_SOCKET_HAS_CONNECT)
- list(INSERT X11_X_EXTRA_LIBS 0 -lsocket)
- endif ()
- endif()
-
- # Find library needed for remove.
- check_function_exists("remove" CMAKE_HAVE_REMOVE)
- if(NOT CMAKE_HAVE_REMOVE)
- check_library_exists("posix" "remove" "" CMAKE_LIB_POSIX_HAS_REMOVE)
- if (CMAKE_LIB_POSIX_HAS_REMOVE)
- list(APPEND X11_X_EXTRA_LIBS -lposix)
- endif ()
- endif()
-
- # Find library needed for shmat.
- check_function_exists("shmat" CMAKE_HAVE_SHMAT)
- if(NOT CMAKE_HAVE_SHMAT)
- check_library_exists("ipc" "shmat" "" CMAKE_LIB_IPS_HAS_SHMAT)
- if (CMAKE_LIB_IPS_HAS_SHMAT)
- list(APPEND X11_X_EXTRA_LIBS -lipc)
- endif ()
- endif()
- endif()
-
- if (X11_ICE_FOUND)
- check_library_exists("ICE" "IceConnectionNumber" "${X11_LIBRARY_DIR}"
- CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER)
- if(CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER)
- set (X11_X_PRE_LIBS ${X11_ICE_LIB})
- if(X11_SM_LIB)
- list(INSERT X11_X_PRE_LIBS 0 ${X11_SM_LIB})
- endif()
- endif()
- endif ()
-
- # Build the final list of libraries.
- set(X11_LIBRARIES ${X11_X_PRE_LIBS} ${X11_LIBRARIES} ${X11_X_EXTRA_LIBS})
-
- if (NOT TARGET X11::X11)
- add_library(X11::X11 UNKNOWN IMPORTED)
- set_target_properties(X11::X11 PROPERTIES
- IMPORTED_LOCATION "${X11_X11_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_X11_INCLUDE_PATH}")
- endif ()
- endif ()
-
- if (X11_ICE_FOUND AND NOT TARGET X11::ICE)
- add_library(X11::ICE UNKNOWN IMPORTED)
- set_target_properties(X11::ICE PROPERTIES
- IMPORTED_LOCATION "${X11_ICE_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_ICE_INCLUDE_PATH}")
- endif ()
-
- if (X11_SM_FOUND AND NOT TARGET X11::SM)
- add_library(X11::SM UNKNOWN IMPORTED)
- set_target_properties(X11::SM PROPERTIES
- IMPORTED_LOCATION "${X11_SM_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_SM_INCLUDE_PATH}")
- endif ()
-
- if (X11_Xau_FOUND AND NOT TARGET X11::Xau)
- add_library(X11::Xau UNKNOWN IMPORTED)
- set_target_properties(X11::Xau PROPERTIES
- IMPORTED_LOCATION "${X11_Xau_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xau_INCLUDE_PATH}")
- endif ()
-
- if (X11_Xcomposite_FOUND AND NOT TARGET X11::Xcomposite)
- add_library(X11::Xcomposite UNKNOWN IMPORTED)
- set_target_properties(X11::Xcomposite PROPERTIES
- IMPORTED_LOCATION "${X11_Xcomposite_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xcomposite_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11")
- endif ()
-
- if (X11_Xcursor_FOUND AND NOT TARGET X11::Xcursor)
- add_library(X11::Xcursor UNKNOWN IMPORTED)
- set_target_properties(X11::Xcursor PROPERTIES
- IMPORTED_LOCATION "${X11_Xcursor_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xcursor_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::Xfixes;X11::X11")
- endif ()
-
- if (X11_Xdamage_FOUND AND NOT TARGET X11::Xdamage)
- add_library(X11::Xdamage UNKNOWN IMPORTED)
- set_target_properties(X11::Xdamage PROPERTIES
- IMPORTED_LOCATION "${X11_Xdamage_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xdamage_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xfixes;X11::X11")
- endif ()
-
- if (X11_Xdmcp_FOUND AND NOT TARGET X11::Xdmcp)
- add_library(X11::Xdmcp UNKNOWN IMPORTED)
- set_target_properties(X11::Xdmcp PROPERTIES
- IMPORTED_LOCATION "${X11_Xdmcp_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xdmcp_INCLUDE_PATH}")
- endif ()
-
- if (X11_Xext_FOUND AND NOT TARGET X11::Xext)
- add_library(X11::Xext UNKNOWN IMPORTED)
- set_target_properties(X11::Xext PROPERTIES
- IMPORTED_LOCATION "${X11_Xext_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xext_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11")
- endif ()
-
- if (X11_Xxf86misc_FOUND AND NOT TARGET X11::Xxf86misc)
- add_library(X11::Xxf86misc UNKNOWN IMPORTED)
- set_target_properties(X11::Xxf86misc PROPERTIES
- IMPORTED_LOCATION "${X11_Xxf86misc_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xxf86misc_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11;X11::Xext")
- endif ()
-
- if (X11_Xxf86vm_FOUND AND NOT TARGET X11::Xxf86vm)
- add_library(X11::Xxf86vm UNKNOWN IMPORTED)
- set_target_properties(X11::Xxf86vm PROPERTIES
- IMPORTED_LOCATION "${X11_Xxf86vm_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xxf86vm_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11;X11::Xext")
- endif ()
-
- if (X11_Xfixes_FOUND AND NOT TARGET X11::Xfixes)
- add_library(X11::Xfixes UNKNOWN IMPORTED)
- set_target_properties(X11::Xfixes PROPERTIES
- IMPORTED_LOCATION "${X11_Xfixes_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xfixes_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11")
- endif ()
-
- if (X11_Xft_FOUND AND NOT TARGET X11::Xft)
- add_library(X11::Xft UNKNOWN IMPORTED)
- set_target_properties(X11::Xft PROPERTIES
- IMPORTED_LOCATION "${X11_Xft_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xft_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::X11;Fontconfig::Fontconfig;Freetype::Freetype")
- endif ()
-
- if (X11_Xi_FOUND AND NOT TARGET X11::Xi)
- add_library(X11::Xi UNKNOWN IMPORTED)
- set_target_properties(X11::Xi PROPERTIES
- IMPORTED_LOCATION "${X11_Xi_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xi_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
- endif ()
-
- if (X11_Xinerama_FOUND AND NOT TARGET X11::Xinerama)
- add_library(X11::Xinerama UNKNOWN IMPORTED)
- set_target_properties(X11::Xinerama PROPERTIES
- IMPORTED_LOCATION "${X11_Xinerama_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xinerama_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
- endif ()
-
- if (X11_Xkb_FOUND AND NOT TARGET X11::Xkb)
- add_library(X11::Xkb INTERFACE IMPORTED)
- set_target_properties(X11::Xkb PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xkb_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11")
- endif ()
-
- if (X11_xkbfile_FOUND AND NOT TARGET X11::xkbfile)
- add_library(X11::xkbfile UNKNOWN IMPORTED)
- set_target_properties(X11::xkbfile PROPERTIES
- IMPORTED_LOCATION "${X11_xkbfile_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_xkbfile_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11")
- endif ()
-
- if (X11_Xmu_FOUND AND NOT TARGET X11::Xmu)
- add_library(X11::Xmu UNKNOWN IMPORTED)
- set_target_properties(X11::Xmu PROPERTIES
- IMPORTED_LOCATION "${X11_Xmu_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xmu_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xt;X11::Xext;X11::X11")
- endif ()
-
- if (X11_Xpm_FOUND AND NOT TARGET X11::Xpm)
- add_library(X11::Xpm UNKNOWN IMPORTED)
- set_target_properties(X11::Xpm PROPERTIES
- IMPORTED_LOCATION "${X11_Xpm_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xpm_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11")
- endif ()
-
- if (X11_Xtst_FOUND AND NOT TARGET X11::Xtst)
- add_library(X11::Xtst UNKNOWN IMPORTED)
- set_target_properties(X11::Xtst PROPERTIES
- IMPORTED_LOCATION "${X11_Xtst_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xtst_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xi;X11::Xext;X11::X11")
- endif ()
-
- if (X11_Xrandr_FOUND AND NOT TARGET X11::Xrandr)
- add_library(X11::Xrandr UNKNOWN IMPORTED)
- set_target_properties(X11::Xrandr PROPERTIES
- IMPORTED_LOCATION "${X11_Xrandr_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xrandr_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::Xext;X11::X11")
- endif ()
-
- if (X11_Xrender_FOUND AND NOT TARGET X11::Xrender)
- add_library(X11::Xrender UNKNOWN IMPORTED)
- set_target_properties(X11::Xrender PROPERTIES
- IMPORTED_LOCATION "${X11_Xrender_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xrender_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::X11")
- endif ()
-
- if (X11_XRes_FOUND AND NOT TARGET X11::XRes)
- add_library(X11::XRes UNKNOWN IMPORTED)
- set_target_properties(X11::XRes PROPERTIES
- IMPORTED_LOCATION "${X11_XRes_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_XRes_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
- endif ()
-
- if (X11_Xss_FOUND AND NOT TARGET X11::Xss)
- add_library(X11::Xss UNKNOWN IMPORTED)
- set_target_properties(X11::Xss PROPERTIES
- IMPORTED_LOCATION "${X11_Xss_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xss_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
- endif ()
-
- if (X11_Xt_FOUND AND NOT TARGET X11::Xt)
- add_library(X11::Xt UNKNOWN IMPORTED)
- set_target_properties(X11::Xt PROPERTIES
- IMPORTED_LOCATION "${X11_Xt_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xt_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::ICE;X11::SM;X11::X11")
- endif ()
-
- if (X11_Xutil_FOUND AND NOT TARGET X11::Xutil)
- add_library(X11::Xutil INTERFACE IMPORTED)
- set_target_properties(X11::Xutil PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xutil_INCLUDE_PATH}"
- # libX11 contains the implementations for functions in the Xutil.h
- # header.
- INTERFACE_LINK_LIBRARIES "X11::X11")
- endif ()
-
- if (X11_Xv_FOUND AND NOT TARGET X11::Xv)
- add_library(X11::Xv UNKNOWN IMPORTED)
- set_target_properties(X11::Xv PROPERTIES
- IMPORTED_LOCATION "${X11_Xv_LIB}"
- INTERFACE_INCLUDE_DIRECTORIES "${X11_Xv_INCLUDE_PATH}"
- INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
- endif ()
-
- mark_as_advanced(
- X11_X11_INCLUDE_PATH
- X11_X11_LIB
- X11_Xext_INCLUDE_PATH
- X11_Xext_LIB
- X11_Xau_LIB
- X11_Xau_INCLUDE_PATH
- X11_Xlib_INCLUDE_PATH
- X11_Xutil_INCLUDE_PATH
- X11_Xcomposite_INCLUDE_PATH
- X11_Xcomposite_LIB
- X11_Xfixes_LIB
- X11_Xfixes_INCLUDE_PATH
- X11_Xrandr_LIB
- X11_Xrandr_INCLUDE_PATH
- X11_Xdamage_LIB
- X11_Xdamage_INCLUDE_PATH
- X11_Xrender_LIB
- X11_Xrender_INCLUDE_PATH
- X11_XRes_LIB
- X11_XRes_INCLUDE_PATH
- X11_Xxf86misc_LIB
- X11_Xxf86misc_INCLUDE_PATH
- X11_Xxf86vm_LIB
- X11_Xxf86vm_INCLUDE_PATH
- X11_Xi_LIB
- X11_Xi_INCLUDE_PATH
- X11_Xinerama_LIB
- X11_Xinerama_INCLUDE_PATH
- X11_Xtst_LIB
- X11_Xtst_INCLUDE_PATH
- X11_Xcursor_LIB
- X11_Xcursor_INCLUDE_PATH
- X11_dpms_INCLUDE_PATH
- X11_Xt_LIB
- X11_Xt_INCLUDE_PATH
- X11_Xdmcp_LIB
- X11_LIBRARIES
- X11_Xaccessrules_INCLUDE_PATH
- X11_Xaccessstr_INCLUDE_PATH
- X11_Xdmcp_INCLUDE_PATH
- X11_Xkb_INCLUDE_PATH
- X11_Xkblib_INCLUDE_PATH
- X11_xkbfile_INCLUDE_PATH
- X11_xkbfile_LIB
- X11_Xmu_INCLUDE_PATH
- X11_Xmu_LIB
- X11_Xss_INCLUDE_PATH
- X11_Xss_LIB
- X11_Xpm_INCLUDE_PATH
- X11_Xpm_LIB
- X11_Xft_LIB
- X11_Xft_INCLUDE_PATH
- X11_Xshape_INCLUDE_PATH
- X11_Xv_LIB
- X11_Xv_INCLUDE_PATH
- X11_XShm_INCLUDE_PATH
- X11_ICE_LIB
- X11_ICE_INCLUDE_PATH
- X11_SM_LIB
- X11_SM_INCLUDE_PATH
- X11_XSync_INCLUDE_PATH
- )
- set(CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_SAVE})
- set(CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVE})
-endif ()
diff --git a/share/cmake-3.17/Modules/FindXalanC.cmake b/share/cmake-3.17/Modules/FindXalanC.cmake
deleted file mode 100644
index 3adaa44..0000000
--- a/share/cmake-3.17/Modules/FindXalanC.cmake
+++ /dev/null
@@ -1,153 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindXalanC
------------
-
-Find the Apache Xalan-C++ XSL transform processor headers and libraries.
-
-Imported targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :prop_tgt:`IMPORTED` targets:
-
-``XalanC::XalanC``
- The Xalan-C++ ``xalan-c`` library, if found.
-
-Result variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project:
-
-``XalanC_FOUND``
- true if the Xalan headers and libraries were found
-``XalanC_VERSION``
- Xalan release version
-``XalanC_INCLUDE_DIRS``
- the directory containing the Xalan headers; note
- ``XercesC_INCLUDE_DIRS`` is also required
-``XalanC_LIBRARIES``
- Xalan libraries to be linked; note ``XercesC_LIBRARIES`` is also
- required
-
-Cache variables
-^^^^^^^^^^^^^^^
-
-The following cache variables may also be set:
-
-``XalanC_INCLUDE_DIR``
- the directory containing the Xalan headers
-``XalanC_LIBRARY``
- the Xalan library
-#]=======================================================================]
-
-# Written by Roger Leigh <rleigh@codelibre.net>
-
-function(_XalanC_GET_VERSION version_hdr)
- file(STRINGS ${version_hdr} _contents REGEX "^[ \t]*#define XALAN_VERSION_.*")
- if(_contents)
- string(REGEX REPLACE "[^*]*#define XALAN_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" XalanC_MAJOR "${_contents}")
- string(REGEX REPLACE "[^*]*#define XALAN_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" XalanC_MINOR "${_contents}")
- string(REGEX REPLACE "[^*]*#define XALAN_VERSION_REVISION[ \t]+([0-9]+).*" "\\1" XalanC_PATCH "${_contents}")
-
- if(NOT XalanC_MAJOR MATCHES "^[0-9]+$")
- message(FATAL_ERROR "Version parsing failed for XALAN_VERSION_MAJOR!")
- endif()
- if(NOT XalanC_MINOR MATCHES "^[0-9]+$")
- message(FATAL_ERROR "Version parsing failed for XALAN_VERSION_MINOR!")
- endif()
- if(NOT XalanC_PATCH MATCHES "^[0-9]+$")
- message(FATAL_ERROR "Version parsing failed for XALAN_VERSION_REVISION!")
- endif()
-
- set(XalanC_VERSION "${XalanC_MAJOR}.${XalanC_MINOR}.${XalanC_PATCH}" PARENT_SCOPE)
- set(XalanC_VERSION_MAJOR "${XalanC_MAJOR}" PARENT_SCOPE)
- set(XalanC_VERSION_MINOR "${XalanC_MINOR}" PARENT_SCOPE)
- set(XalanC_VERSION_PATCH "${XalanC_PATCH}" PARENT_SCOPE)
- else()
- message(FATAL_ERROR "Include file ${version_hdr} does not exist or does not contain expected version information")
- endif()
-endfunction()
-
-# Find include directory
-find_path(XalanC_INCLUDE_DIR
- NAMES "xalanc/XalanTransformer/XalanTransformer.hpp"
- DOC "Xalan-C++ include directory")
-mark_as_advanced(XalanC_INCLUDE_DIR)
-
-if(XalanC_INCLUDE_DIR AND EXISTS "${XalanC_INCLUDE_DIR}/xalanc/Include/XalanVersion.hpp")
- _XalanC_GET_VERSION("${XalanC_INCLUDE_DIR}/xalanc/Include/XalanVersion.hpp")
-endif()
-
-if(NOT XalanC_LIBRARY)
- # Find all XalanC libraries
- find_library(XalanC_LIBRARY_RELEASE
- NAMES "Xalan-C" "xalan-c"
- "Xalan-C_${XalanC_VERSION_MAJOR}"
- "Xalan-C_${XalanC_VERSION_MAJOR}_${XalanC_VERSION_MINOR}"
- DOC "Xalan-C++ libraries (release)")
- find_library(XalanC_LIBRARY_DEBUG
- NAMES "Xalan-CD" "xalan-cd"
- "Xalan-C_${XalanC_VERSION_MAJOR}D"
- "Xalan-C_${XalanC_VERSION_MAJOR}_${XalanC_VERSION_MINOR}D"
- DOC "Xalan-C++ libraries (debug)")
- include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
- select_library_configurations(XalanC)
- mark_as_advanced(XalanC_LIBRARY_RELEASE XalanC_LIBRARY_DEBUG)
-endif()
-
-unset(XalanC_VERSION_MAJOR)
-unset(XalanC_VERSION_MINOR)
-unset(XalanC_VERSION_PATCH)
-
-unset(XalanC_XERCESC_REQUIRED)
-if(XalanC_FIND_REQUIRED)
- set(XalanC_XERCESC_REQUIRED REQUIRED)
-endif()
-find_package(XercesC ${XalanC_XERCESC_REQUIRED})
-unset(XalanC_XERCESC_REQUIRED)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(XalanC
- FOUND_VAR XalanC_FOUND
- REQUIRED_VARS XalanC_LIBRARY
- XalanC_INCLUDE_DIR
- XalanC_VERSION
- XercesC_FOUND
- VERSION_VAR XalanC_VERSION
- FAIL_MESSAGE "Failed to find XalanC")
-
-if(XalanC_FOUND)
- set(XalanC_INCLUDE_DIRS "${XalanC_INCLUDE_DIR}" ${XercesC_INCLUDE_DIRS})
- set(XalanC_LIBRARIES "${XalanC_LIBRARY}" ${XercesC_LIBRARIES})
-
- # For header-only libraries
- if(NOT TARGET XalanC::XalanC)
- add_library(XalanC::XalanC UNKNOWN IMPORTED)
- if(XalanC_INCLUDE_DIRS)
- set_target_properties(XalanC::XalanC PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${XalanC_INCLUDE_DIRS}")
- endif()
- if(EXISTS "${XalanC_LIBRARY}")
- set_target_properties(XalanC::XalanC PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
- IMPORTED_LOCATION "${XalanC_LIBRARY}")
- endif()
- if(EXISTS "${XalanC_LIBRARY_RELEASE}")
- set_property(TARGET XalanC::XalanC APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(XalanC::XalanC PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
- IMPORTED_LOCATION_RELEASE "${XalanC_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${XalanC_LIBRARY_DEBUG}")
- set_property(TARGET XalanC::XalanC APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(XalanC::XalanC PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
- IMPORTED_LOCATION_DEBUG "${XalanC_LIBRARY_DEBUG}")
- endif()
- set_target_properties(XalanC::XalanC PROPERTIES INTERFACE_LINK_LIBRARIES XercesC::XercesC)
- endif()
-endif()
diff --git a/share/cmake-3.17/Modules/FindXercesC.cmake b/share/cmake-3.17/Modules/FindXercesC.cmake
deleted file mode 100644
index 47bfd62..0000000
--- a/share/cmake-3.17/Modules/FindXercesC.cmake
+++ /dev/null
@@ -1,138 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindXercesC
------------
-
-Find the Apache Xerces-C++ validating XML parser headers and libraries.
-
-Imported targets
-^^^^^^^^^^^^^^^^
-
-This module defines the following :prop_tgt:`IMPORTED` targets:
-
-``XercesC::XercesC``
- The Xerces-C++ ``xerces-c`` library, if found.
-
-Result variables
-^^^^^^^^^^^^^^^^
-
-This module will set the following variables in your project:
-
-``XercesC_FOUND``
- true if the Xerces headers and libraries were found
-``XercesC_VERSION``
- Xerces release version
-``XercesC_INCLUDE_DIRS``
- the directory containing the Xerces headers
-``XercesC_LIBRARIES``
- Xerces libraries to be linked
-
-Cache variables
-^^^^^^^^^^^^^^^
-
-The following cache variables may also be set:
-
-``XercesC_INCLUDE_DIR``
- the directory containing the Xerces headers
-``XercesC_LIBRARY``
- the Xerces library
-#]=======================================================================]
-
-# Written by Roger Leigh <rleigh@codelibre.net>
-
-function(_XercesC_GET_VERSION version_hdr)
- file(STRINGS ${version_hdr} _contents REGEX "^[ \t]*#define XERCES_VERSION_.*")
- if(_contents)
- string(REGEX REPLACE ".*#define XERCES_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" XercesC_MAJOR "${_contents}")
- string(REGEX REPLACE ".*#define XERCES_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" XercesC_MINOR "${_contents}")
- string(REGEX REPLACE ".*#define XERCES_VERSION_REVISION[ \t]+([0-9]+).*" "\\1" XercesC_PATCH "${_contents}")
-
- if(NOT XercesC_MAJOR MATCHES "^[0-9]+$")
- message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MAJOR!")
- endif()
- if(NOT XercesC_MINOR MATCHES "^[0-9]+$")
- message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MINOR!")
- endif()
- if(NOT XercesC_PATCH MATCHES "^[0-9]+$")
- message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_REVISION!")
- endif()
-
- set(XercesC_VERSION "${XercesC_MAJOR}.${XercesC_MINOR}.${XercesC_PATCH}" PARENT_SCOPE)
- set(XercesC_VERSION_MAJOR "${XercesC_MAJOR}" PARENT_SCOPE)
- set(XercesC_VERSION_MINOR "${XercesC_MINOR}" PARENT_SCOPE)
- set(XercesC_VERSION_PATCH "${XercesC_PATCH}" PARENT_SCOPE)
- else()
- message(FATAL_ERROR "Include file ${version_hdr} does not exist or does not contain expected version information")
- endif()
-endfunction()
-
-# Find include directory
-find_path(XercesC_INCLUDE_DIR
- NAMES "xercesc/util/PlatformUtils.hpp"
- DOC "Xerces-C++ include directory")
-mark_as_advanced(XercesC_INCLUDE_DIR)
-
-if(XercesC_INCLUDE_DIR AND EXISTS "${XercesC_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp")
- _XercesC_GET_VERSION("${XercesC_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp")
-endif()
-
-if(NOT XercesC_LIBRARY)
- # Find all XercesC libraries
- find_library(XercesC_LIBRARY_RELEASE
- NAMES "xerces-c" "xerces-c_${XercesC_VERSION_MAJOR}"
- DOC "Xerces-C++ libraries (release)")
- find_library(XercesC_LIBRARY_DEBUG
- NAMES "xerces-cd" "xerces-c_${XercesC_VERSION_MAJOR}D" "xerces-c_${XercesC_VERSION_MAJOR}_${XercesC_VERSION_MINOR}D"
- DOC "Xerces-C++ libraries (debug)")
- include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
- select_library_configurations(XercesC)
- mark_as_advanced(XercesC_LIBRARY_RELEASE XercesC_LIBRARY_DEBUG)
-endif()
-
-unset(XercesC_VERSION_MAJOR)
-unset(XercesC_VERSION_MINOR)
-unset(XercesC_VERSION_PATCH)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(XercesC
- FOUND_VAR XercesC_FOUND
- REQUIRED_VARS XercesC_LIBRARY
- XercesC_INCLUDE_DIR
- XercesC_VERSION
- VERSION_VAR XercesC_VERSION
- FAIL_MESSAGE "Failed to find XercesC")
-
-if(XercesC_FOUND)
- set(XercesC_INCLUDE_DIRS "${XercesC_INCLUDE_DIR}")
- set(XercesC_LIBRARIES "${XercesC_LIBRARY}")
-
- # For header-only libraries
- if(NOT TARGET XercesC::XercesC)
- add_library(XercesC::XercesC UNKNOWN IMPORTED)
- if(XercesC_INCLUDE_DIRS)
- set_target_properties(XercesC::XercesC PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${XercesC_INCLUDE_DIRS}")
- endif()
- if(EXISTS "${XercesC_LIBRARY}")
- set_target_properties(XercesC::XercesC PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
- IMPORTED_LOCATION "${XercesC_LIBRARY}")
- endif()
- if(EXISTS "${XercesC_LIBRARY_RELEASE}")
- set_property(TARGET XercesC::XercesC APPEND PROPERTY
- IMPORTED_CONFIGURATIONS RELEASE)
- set_target_properties(XercesC::XercesC PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
- IMPORTED_LOCATION_RELEASE "${XercesC_LIBRARY_RELEASE}")
- endif()
- if(EXISTS "${XercesC_LIBRARY_DEBUG}")
- set_property(TARGET XercesC::XercesC APPEND PROPERTY
- IMPORTED_CONFIGURATIONS DEBUG)
- set_target_properties(XercesC::XercesC PROPERTIES
- IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
- IMPORTED_LOCATION_DEBUG "${XercesC_LIBRARY_DEBUG}")
- endif()
- endif()
-endif()
diff --git a/share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt b/share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt
deleted file mode 100644
index 381080b..0000000
--- a/share/cmake-3.17/Modules/FortranCInterface/CMakeLists.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-cmake_minimum_required(VERSION ${CMAKE_VERSION})
-project(FortranCInterface C Fortran)
-include(${FortranCInterface_BINARY_DIR}/Input.cmake OPTIONAL)
-
-# Check if the C compiler supports '$' in identifiers.
-include(CheckCSourceCompiles)
-check_c_source_compiles("
-extern int dollar$(void);
-int main() { return 0; }
-" C_SUPPORTS_DOLLAR)
-
-# List manglings of global symbol names to try.
-set(global_symbols
- my_sub # VisualAge
- my_sub_ # GNU, Intel, HP, SunPro, PGI
- my_sub__ # GNU g77
- MY_SUB # Intel on Windows
- mysub # VisualAge
- mysub_ # GNU, Intel, HP, SunPro, PGI
- MYSUB # Intel on Windows
- ${FortranCInterface_GLOBAL_SYMBOLS}
- )
-list(REMOVE_DUPLICATES global_symbols)
-
-# List manglings of module symbol names to try.
-set(module_symbols
- __my_module_MOD_my_sub # GNU 4.3
- __my_module_NMOD_my_sub # VisualAge
- __my_module__my_sub # GNU 4.2
- __mymodule_MOD_mysub # GNU 4.3
- __mymodule_NMOD_mysub # VisualAge
- __mymodule__mysub # GNU 4.2
- my_module$my_sub # HP
- my_module_mp_my_sub_ # Intel
- MY_MODULE_mp_MY_SUB # Intel on Windows
- my_module_my_sub_ # PGI
- my_module_MP_my_sub # NAG
- mymodule$mysub # HP
- mymodule_mp_mysub_ # Intel
- MYMODULE_mp_MYSUB # Intel on Windows
- mymodule_mysub_ # PGI
- mymodule_MP_mysub # NAG
- ${FortranCInterface_MODULE_SYMBOLS}
- )
-list(REMOVE_DUPLICATES module_symbols)
-
-# Note that some compiler manglings cannot be invoked from C:
-# SunPro uses "my_module.my_sub_"
-# PathScale uses "MY_SUB.in.MY_MODULE"
-
-# Add module symbols only with Fortran90.
-if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
- set(myfort_modules mymodule.f90 my_module.f90)
- set(call_mod call_mod.f90)
- set_property(SOURCE main.F PROPERTY COMPILE_DEFINITIONS CALL_MOD)
-else()
- set(module_symbols)
-endif()
-
-# Generate C symbol sources.
-set(symbol_sources)
-if(NOT CMAKE_Fortran_COMPILER_ID MATCHES "^(PathScale|Cray)$")
- # Provide mymodule_ and my_module_ init symbols because:
- # - PGI Fortran uses module init symbols
- # but not for:
- # - PathScale Fortran uses module init symbols but module symbols
- # use '.in.' so we cannot provide them anyway.
- # - Cray Fortran >= 7.3.2 uses module init symbols but module symbols
- # use 'mysub$mymodule_' so we cannot provide them anyway.
- list(APPEND symbol_sources mymodule_.c my_module_.c MY_MODULE.c MYMODULE.c)
-endif()
-foreach(symbol IN LISTS global_symbols module_symbols)
- # Skip symbols with '$' if C cannot handle them.
- if(C_SUPPORTS_DOLLAR OR NOT "${symbol}" MATCHES "\\$")
- if("${symbol}" MATCHES "SUB")
- set(upper "-UPPER")
- else()
- set(upper)
- endif()
- string(REPLACE "$" "S" name "${symbol}")
- set(source ${CMAKE_CURRENT_BINARY_DIR}/symbols/${name}${upper}.c)
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/symbol.c.in ${source} @ONLY)
- list(APPEND symbol_sources ${source})
- endif()
-endforeach()
-
-# Provide symbols through Fortran.
-add_library(myfort STATIC mysub.f my_sub.f ${myfort_modules})
-
-# Provide symbols through C but fall back to Fortran.
-add_library(symbols STATIC ${symbol_sources})
-target_link_libraries(symbols PUBLIC myfort)
-
-# In case the Fortran compiler produces PIC by default make sure
-# the C compiler produces PIC even if it is not its default.
-set_property(TARGET symbols PROPERTY POSITION_INDEPENDENT_CODE 1)
-
-# Require symbols through Fortran.
-add_executable(FortranCInterface main.F call_sub.f ${call_mod})
-target_link_libraries(FortranCInterface PUBLIC symbols)
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Detect.cmake b/share/cmake-3.17/Modules/FortranCInterface/Detect.cmake
deleted file mode 100644
index 33de6c6..0000000
--- a/share/cmake-3.17/Modules/FortranCInterface/Detect.cmake
+++ /dev/null
@@ -1,180 +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(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.17/Modules/GoogleTest.cmake b/share/cmake-3.17/Modules/GoogleTest.cmake
deleted file mode 100644
index a5bb863..0000000
--- a/share/cmake-3.17/Modules/GoogleTest.cmake
+++ /dev/null
@@ -1,463 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-GoogleTest
-----------
-
-This module defines functions to help use the Google Test infrastructure. Two
-mechanisms for adding tests are provided. :command:`gtest_add_tests` has been
-around for some time, originally via ``find_package(GTest)``.
-:command:`gtest_discover_tests` was introduced in CMake 3.10.
-
-The (older) :command:`gtest_add_tests` scans source files to identify tests.
-This is usually effective, with some caveats, including in cross-compiling
-environments, and makes setting additional properties on tests more convenient.
-However, its handling of parameterized tests is less comprehensive, and it
-requires re-running CMake to detect changes to the list of tests.
-
-The (newer) :command:`gtest_discover_tests` discovers tests by asking the
-compiled test executable to enumerate its tests. This is more robust and
-provides better handling of parameterized tests, and does not require CMake
-to be re-run when tests change. However, it may not work in a cross-compiling
-environment, and setting test properties is less convenient.
-
-More details can be found in the documentation of the respective functions.
-
-Both commands are intended to replace use of :command:`add_test` to register
-tests, and will create a separate CTest test for each Google Test test case.
-Note that this is in some cases less efficient, as common set-up and tear-down
-logic cannot be shared by multiple test cases executing in the same instance.
-However, it provides more fine-grained pass/fail information to CTest, which is
-usually considered as more beneficial. By default, the CTest test name is the
-same as the Google Test name (i.e. ``suite.testcase``); see also
-``TEST_PREFIX`` and ``TEST_SUFFIX``.
-
-.. command:: gtest_add_tests
-
- Automatically add tests with CTest by scanning source code for Google Test
- macros::
-
- gtest_add_tests(TARGET target
- [SOURCES src1...]
- [EXTRA_ARGS arg1...]
- [WORKING_DIRECTORY dir]
- [TEST_PREFIX prefix]
- [TEST_SUFFIX suffix]
- [SKIP_DEPENDENCY]
- [TEST_LIST outVar]
- )
-
- ``gtest_add_tests`` attempts to identify tests by scanning source files.
- Although this is generally effective, it uses only a basic regular expression
- match, which can be defeated by atypical test declarations, and is unable to
- fully "split" parameterized tests. Additionally, it requires that CMake be
- re-run to discover any newly added, removed or renamed tests (by default,
- this means that CMake is re-run when any test source file is changed, but see
- ``SKIP_DEPENDENCY``). However, it has the advantage of declaring tests at
- CMake time, which somewhat simplifies setting additional properties on tests,
- and always works in a cross-compiling environment.
-
- The options are:
-
- ``TARGET target``
- Specifies the Google Test executable, which must be a known CMake
- executable target. CMake will substitute the location of the built
- executable when running the test.
-
- ``SOURCES src1...``
- When provided, only the listed files will be scanned for test cases. If
- this option is not given, the :prop_tgt:`SOURCES` property of the
- specified ``target`` will be used to obtain the list of sources.
-
- ``EXTRA_ARGS arg1...``
- Any extra arguments to pass on the command line to each test case.
-
- ``WORKING_DIRECTORY dir``
- Specifies the directory in which to run the discovered test cases. If this
- option is not provided, the current binary directory is used.
-
- ``TEST_PREFIX prefix``
- Specifies a ``prefix`` to be prepended to the name of each discovered test
- case. This can be useful when the same source files are being used in
- multiple calls to ``gtest_add_test()`` but with different ``EXTRA_ARGS``.
-
- ``TEST_SUFFIX suffix``
- Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
- every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
- be specified.
-
- ``SKIP_DEPENDENCY``
- Normally, the function creates a dependency which will cause CMake to be
- re-run if any of the sources being scanned are changed. This is to ensure
- that the list of discovered tests is updated. If this behavior is not
- desired (as may be the case while actually writing the test cases), this
- option can be used to prevent the dependency from being added.
-
- ``TEST_LIST outVar``
- The variable named by ``outVar`` will be populated in the calling scope
- with the list of discovered test cases. This allows the caller to do
- things like manipulate test properties of the discovered tests.
-
- .. code-block:: cmake
-
- include(GoogleTest)
- add_executable(FooTest FooUnitTest.cxx)
- gtest_add_tests(TARGET FooTest
- TEST_SUFFIX .noArgs
- TEST_LIST noArgsTests
- )
- gtest_add_tests(TARGET FooTest
- EXTRA_ARGS --someArg someValue
- TEST_SUFFIX .withArgs
- TEST_LIST withArgsTests
- )
- set_tests_properties(${noArgsTests} PROPERTIES TIMEOUT 10)
- set_tests_properties(${withArgsTests} PROPERTIES TIMEOUT 20)
-
- For backward compatibility, the following form is also supported::
-
- gtest_add_tests(exe args files...)
-
- ``exe``
- The path to the test executable or the name of a CMake target.
- ``args``
- A ;-list of extra arguments to be passed to executable. The entire
- list must be passed as a single argument. Enclose it in quotes,
- or pass ``""`` for no arguments.
- ``files...``
- A list of source files to search for tests and test fixtures.
- Alternatively, use ``AUTO`` to specify that ``exe`` is the name
- of a CMake executable target whose sources should be scanned.
-
- .. code-block:: cmake
-
- include(GoogleTest)
- set(FooTestArgs --foo 1 --bar 2)
- add_executable(FooTest FooUnitTest.cxx)
- gtest_add_tests(FooTest "${FooTestArgs}" AUTO)
-
-.. command:: gtest_discover_tests
-
- Automatically add tests with CTest by querying the compiled test executable
- for available tests::
-
- gtest_discover_tests(target
- [EXTRA_ARGS arg1...]
- [WORKING_DIRECTORY dir]
- [TEST_PREFIX prefix]
- [TEST_SUFFIX suffix]
- [NO_PRETTY_TYPES] [NO_PRETTY_VALUES]
- [PROPERTIES name1 value1...]
- [TEST_LIST var]
- [DISCOVERY_TIMEOUT seconds]
- )
-
- ``gtest_discover_tests`` sets up a post-build command on the test executable
- that generates the list of tests by parsing the output from running the test
- with the ``--gtest_list_tests`` argument. Compared to the source parsing
- approach of :command:`gtest_add_tests`, this ensures that the full list of
- tests, including instantiations of parameterized tests, is obtained. Since
- test discovery occurs at build time, it is not necessary to re-run CMake when
- the list of tests changes.
- However, it requires that :prop_tgt:`CROSSCOMPILING_EMULATOR` is properly set
- in order to function in a cross-compiling environment.
-
- Additionally, setting properties on tests is somewhat less convenient, since
- the tests are not available at CMake time. Additional test properties may be
- assigned to the set of tests as a whole using the ``PROPERTIES`` option. If
- more fine-grained test control is needed, custom content may be provided
- through an external CTest script using the :prop_dir:`TEST_INCLUDE_FILES`
- directory property. The set of discovered tests is made accessible to such a
- script via the ``<target>_TESTS`` variable.
-
- The options are:
-
- ``target``
- Specifies the Google Test executable, which must be a known CMake
- executable target. CMake will substitute the location of the built
- executable when running the test.
-
- ``EXTRA_ARGS arg1...``
- Any extra arguments to pass on the command line to each test case.
-
- ``WORKING_DIRECTORY dir``
- Specifies the directory in which to run the discovered test cases. If this
- option is not provided, the current binary directory is used.
-
- ``TEST_PREFIX prefix``
- Specifies a ``prefix`` to be prepended to the name of each discovered test
- case. This can be useful when the same test executable is being used in
- multiple calls to ``gtest_discover_tests()`` but with different
- ``EXTRA_ARGS``.
-
- ``TEST_SUFFIX suffix``
- Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
- every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
- be specified.
-
- ``NO_PRETTY_TYPES``
- By default, the type index of type-parameterized tests is replaced by the
- actual type name in the CTest test name. If this behavior is undesirable
- (e.g. because the type names are unwieldy), this option will suppress this
- behavior.
-
- ``NO_PRETTY_VALUES``
- By default, the value index of value-parameterized tests is replaced by the
- actual value in the CTest test name. If this behavior is undesirable
- (e.g. because the value strings are unwieldy), this option will suppress
- this behavior.
-
- ``PROPERTIES name1 value1...``
- Specifies additional properties to be set on all tests discovered by this
- invocation of ``gtest_discover_tests``.
-
- ``TEST_LIST var``
- Make the list of tests available in the variable ``var``, rather than the
- default ``<target>_TESTS``. This can be useful when the same test
- executable is being used in multiple calls to ``gtest_discover_tests()``.
- Note that this variable is only available in CTest.
-
- ``DISCOVERY_TIMEOUT num``
- Specifies how long (in seconds) CMake will wait for the test to enumerate
- available tests. If the test takes longer than this, discovery (and your
- build) will fail. Most test executables will enumerate their tests very
- quickly, but under some exceptional circumstances, a test may require a
- longer timeout. The default is 5. See also the ``TIMEOUT`` option of
- :command:`execute_process`.
-
- .. note::
-
- In CMake versions 3.10.1 and 3.10.2, this option was called ``TIMEOUT``.
- This clashed with the ``TIMEOUT`` test property, which is one of the
- common properties that would be set with the ``PROPERTIES`` keyword,
- usually leading to legal but unintended behavior. The keyword was
- changed to ``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this
- problem. The ambiguous behavior of the ``TIMEOUT`` keyword in 3.10.1
- and 3.10.2 has not been preserved.
-
-#]=======================================================================]
-
-# Save project's policies
-cmake_policy(PUSH)
-cmake_policy(SET CMP0057 NEW) # if IN_LIST
-
-#------------------------------------------------------------------------------
-function(gtest_add_tests)
-
- if (ARGC LESS 1)
- message(FATAL_ERROR "No arguments supplied to gtest_add_tests()")
- endif()
-
- set(options
- SKIP_DEPENDENCY
- )
- set(oneValueArgs
- TARGET
- WORKING_DIRECTORY
- TEST_PREFIX
- TEST_SUFFIX
- TEST_LIST
- )
- set(multiValueArgs
- SOURCES
- EXTRA_ARGS
- )
- set(allKeywords ${options} ${oneValueArgs} ${multiValueArgs})
-
- unset(sources)
- if("${ARGV0}" IN_LIST allKeywords)
- cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- set(autoAddSources YES)
- else()
- # Non-keyword syntax, convert to keyword form
- if (ARGC LESS 3)
- message(FATAL_ERROR "gtest_add_tests() without keyword options requires at least 3 arguments")
- endif()
- set(ARGS_TARGET "${ARGV0}")
- set(ARGS_EXTRA_ARGS "${ARGV1}")
- if(NOT "${ARGV2}" STREQUAL "AUTO")
- set(ARGS_SOURCES "${ARGV}")
- list(REMOVE_AT ARGS_SOURCES 0 1)
- endif()
- endif()
-
- # The non-keyword syntax allows the first argument to be an arbitrary
- # executable rather than a target if source files are also provided. In all
- # other cases, both forms require a target.
- if(NOT TARGET "${ARGS_TARGET}" AND NOT ARGS_SOURCES)
- message(FATAL_ERROR "${ARGS_TARGET} does not define an existing CMake target")
- endif()
- if(NOT ARGS_WORKING_DIRECTORY)
- unset(workDir)
- else()
- set(workDir WORKING_DIRECTORY "${ARGS_WORKING_DIRECTORY}")
- endif()
-
- if(NOT ARGS_SOURCES)
- get_property(ARGS_SOURCES TARGET ${ARGS_TARGET} PROPERTY SOURCES)
- endif()
-
- unset(testList)
-
- set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+) *, *([A-Za-z_0-9]+) *\\).*")
- set(gtest_test_type_regex "(TYPED_TEST|TEST_?[FP]?)")
-
- foreach(source IN LISTS ARGS_SOURCES)
- if(NOT ARGS_SKIP_DEPENDENCY)
- set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${source})
- endif()
- file(READ "${source}" contents)
- string(REGEX MATCHALL "${gtest_test_type_regex} *\\(([A-Za-z_0-9 ,]+)\\)" found_tests "${contents}")
- foreach(hit ${found_tests})
- string(REGEX MATCH "${gtest_test_type_regex}" test_type ${hit})
-
- # Parameterized tests have a different signature for the filter
- if("x${test_type}" STREQUAL "xTEST_P")
- string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" gtest_test_name ${hit})
- elseif("x${test_type}" STREQUAL "xTEST_F" OR "x${test_type}" STREQUAL "xTEST")
- string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" gtest_test_name ${hit})
- elseif("x${test_type}" STREQUAL "xTYPED_TEST")
- string(REGEX REPLACE ${gtest_case_name_regex} "\\1/*.\\2" gtest_test_name ${hit})
- else()
- message(WARNING "Could not parse GTest ${hit} for adding to CTest.")
- continue()
- endif()
-
- # Make sure tests disabled in GTest get disabled in CTest
- if(gtest_test_name MATCHES "(^|\\.)DISABLED_")
- # Add the disabled test if CMake is new enough
- # Note that this check is to allow backwards compatibility so this
- # module can be copied locally in projects to use with older CMake
- # versions
- if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.8.20170401)
- string(REGEX REPLACE
- "(^|\\.)DISABLED_" "\\1"
- orig_test_name "${gtest_test_name}"
- )
- set(ctest_test_name
- ${ARGS_TEST_PREFIX}${orig_test_name}${ARGS_TEST_SUFFIX}
- )
- add_test(NAME ${ctest_test_name}
- ${workDir}
- COMMAND ${ARGS_TARGET}
- --gtest_also_run_disabled_tests
- --gtest_filter=${gtest_test_name}
- ${ARGS_EXTRA_ARGS}
- )
- set_tests_properties(${ctest_test_name} PROPERTIES DISABLED TRUE)
- list(APPEND testList ${ctest_test_name})
- endif()
- else()
- set(ctest_test_name ${ARGS_TEST_PREFIX}${gtest_test_name}${ARGS_TEST_SUFFIX})
- add_test(NAME ${ctest_test_name}
- ${workDir}
- COMMAND ${ARGS_TARGET}
- --gtest_filter=${gtest_test_name}
- ${ARGS_EXTRA_ARGS}
- )
- list(APPEND testList ${ctest_test_name})
- endif()
- endforeach()
- endforeach()
-
- if(ARGS_TEST_LIST)
- set(${ARGS_TEST_LIST} ${testList} PARENT_SCOPE)
- endif()
-
-endfunction()
-
-#------------------------------------------------------------------------------
-function(gtest_discover_tests TARGET)
- cmake_parse_arguments(
- ""
- "NO_PRETTY_TYPES;NO_PRETTY_VALUES"
- "TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST;DISCOVERY_TIMEOUT"
- "EXTRA_ARGS;PROPERTIES"
- ${ARGN}
- )
-
- if(NOT _WORKING_DIRECTORY)
- set(_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
- endif()
- if(NOT _TEST_LIST)
- set(_TEST_LIST ${TARGET}_TESTS)
- endif()
- if(NOT _DISCOVERY_TIMEOUT)
- set(_DISCOVERY_TIMEOUT 5)
- endif()
-
- get_property(
- has_counter
- TARGET ${TARGET}
- PROPERTY CTEST_DISCOVERED_TEST_COUNTER
- SET
- )
- if(has_counter)
- get_property(
- counter
- TARGET ${TARGET}
- PROPERTY CTEST_DISCOVERED_TEST_COUNTER
- )
- math(EXPR counter "${counter} + 1")
- else()
- set(counter 1)
- endif()
- set_property(
- TARGET ${TARGET}
- PROPERTY CTEST_DISCOVERED_TEST_COUNTER
- ${counter}
- )
-
- # Define rule to generate test list for aforementioned test executable
- set(ctest_file_base "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}[${counter}]")
- set(ctest_include_file "${ctest_file_base}_include.cmake")
- set(ctest_tests_file "${ctest_file_base}_tests.cmake")
- get_property(crosscompiling_emulator
- TARGET ${TARGET}
- PROPERTY CROSSCOMPILING_EMULATOR
- )
- add_custom_command(
- TARGET ${TARGET} POST_BUILD
- BYPRODUCTS "${ctest_tests_file}"
- COMMAND "${CMAKE_COMMAND}"
- -D "TEST_TARGET=${TARGET}"
- -D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
- -D "TEST_EXECUTOR=${crosscompiling_emulator}"
- -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
- -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
- -D "TEST_PROPERTIES=${_PROPERTIES}"
- -D "TEST_PREFIX=${_TEST_PREFIX}"
- -D "TEST_SUFFIX=${_TEST_SUFFIX}"
- -D "NO_PRETTY_TYPES=${_NO_PRETTY_TYPES}"
- -D "NO_PRETTY_VALUES=${_NO_PRETTY_VALUES}"
- -D "TEST_LIST=${_TEST_LIST}"
- -D "CTEST_FILE=${ctest_tests_file}"
- -D "TEST_DISCOVERY_TIMEOUT=${_DISCOVERY_TIMEOUT}"
- -P "${_GOOGLETEST_DISCOVER_TESTS_SCRIPT}"
- VERBATIM
- )
-
- file(WRITE "${ctest_include_file}"
- "if(EXISTS \"${ctest_tests_file}\")\n"
- " include(\"${ctest_tests_file}\")\n"
- "else()\n"
- " add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)\n"
- "endif()\n"
- )
-
- # Add discovered tests to directory TEST_INCLUDE_FILES
- set_property(DIRECTORY
- APPEND PROPERTY TEST_INCLUDE_FILES "${ctest_include_file}"
- )
-
-endfunction()
-
-###############################################################################
-
-set(_GOOGLETEST_DISCOVER_TESTS_SCRIPT
- ${CMAKE_CURRENT_LIST_DIR}/GoogleTestAddTests.cmake
-)
-
-# Restore project's policies
-cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/GoogleTestAddTests.cmake b/share/cmake-3.17/Modules/GoogleTestAddTests.cmake
deleted file mode 100644
index 4abbbec..0000000
--- a/share/cmake-3.17/Modules/GoogleTestAddTests.cmake
+++ /dev/null
@@ -1,106 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-set(prefix "${TEST_PREFIX}")
-set(suffix "${TEST_SUFFIX}")
-set(extra_args ${TEST_EXTRA_ARGS})
-set(properties ${TEST_PROPERTIES})
-set(script)
-set(suite)
-set(tests)
-
-function(add_command NAME)
- set(_args "")
- foreach(_arg ${ARGN})
- if(_arg MATCHES "[^-./:a-zA-Z0-9_]")
- set(_args "${_args} [==[${_arg}]==]")
- else()
- set(_args "${_args} ${_arg}")
- endif()
- endforeach()
- set(script "${script}${NAME}(${_args})\n" PARENT_SCOPE)
-endfunction()
-
-# Run test executable to get list of available tests
-if(NOT EXISTS "${TEST_EXECUTABLE}")
- message(FATAL_ERROR
- "Specified test executable does not exist.\n"
- " Path: '${TEST_EXECUTABLE}'"
- )
-endif()
-execute_process(
- COMMAND ${TEST_EXECUTOR} "${TEST_EXECUTABLE}" --gtest_list_tests
- WORKING_DIRECTORY "${TEST_WORKING_DIR}"
- TIMEOUT ${TEST_DISCOVERY_TIMEOUT}
- OUTPUT_VARIABLE output
- RESULT_VARIABLE result
-)
-if(NOT ${result} EQUAL 0)
- string(REPLACE "\n" "\n " output "${output}")
- message(FATAL_ERROR
- "Error running test executable.\n"
- " Path: '${TEST_EXECUTABLE}'\n"
- " Result: ${result}\n"
- " Output:\n"
- " ${output}\n"
- )
-endif()
-
-string(REPLACE "\n" ";" output "${output}")
-
-# Parse output
-foreach(line ${output})
- # Skip header
- if(NOT line MATCHES "gtest_main\\.cc")
- # Do we have a module name or a test name?
- if(NOT line MATCHES "^ ")
- # Module; remove trailing '.' to get just the name...
- string(REGEX REPLACE "\\.( *#.*)?" "" suite "${line}")
- if(line MATCHES "#" AND NOT NO_PRETTY_TYPES)
- string(REGEX REPLACE "/[0-9]\\.+ +#.*= +" "/" pretty_suite "${line}")
- else()
- set(pretty_suite "${suite}")
- endif()
- string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
- else()
- # Test name; strip spaces and comments to get just the name...
- string(REGEX REPLACE " +" "" test "${line}")
- if(test MATCHES "#" AND NOT NO_PRETTY_VALUES)
- string(REGEX REPLACE "/[0-9]+#GetParam..=" "/" pretty_test "${test}")
- else()
- string(REGEX REPLACE "#.*" "" pretty_test "${test}")
- endif()
- string(REGEX REPLACE "^DISABLED_" "" pretty_test "${pretty_test}")
- string(REGEX REPLACE "#.*" "" test "${test}")
- # ...and add to script
- add_command(add_test
- "${prefix}${pretty_suite}.${pretty_test}${suffix}"
- ${TEST_EXECUTOR}
- "${TEST_EXECUTABLE}"
- "--gtest_filter=${suite}.${test}"
- "--gtest_also_run_disabled_tests"
- ${extra_args}
- )
- if(suite MATCHES "^DISABLED" OR test MATCHES "^DISABLED")
- add_command(set_tests_properties
- "${prefix}${pretty_suite}.${pretty_test}${suffix}"
- PROPERTIES DISABLED TRUE
- )
- endif()
- add_command(set_tests_properties
- "${prefix}${pretty_suite}.${pretty_test}${suffix}"
- PROPERTIES
- WORKING_DIRECTORY "${TEST_WORKING_DIR}"
- ${properties}
- )
- list(APPEND tests "${prefix}${pretty_suite}.${pretty_test}${suffix}")
- endif()
- endif()
-endforeach()
-
-# Create a list of all discovered tests, which users may use to e.g. set
-# properties on the tests
-add_command(set ${TEST_LIST} ${tests})
-
-# Write CTest script
-file(WRITE "${CTEST_FILE}" "${script}")
diff --git a/share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake b/share/cmake-3.17/Modules/InstallRequiredSystemLibraries.cmake
deleted file mode 100644
index 04687b9..0000000
--- a/share/cmake-3.17/Modules/InstallRequiredSystemLibraries.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:
-InstallRequiredSystemLibraries
-------------------------------
-
-Include this module to search for compiler-provided system runtime
-libraries and add install rules for them. Some optional variables
-may be set prior to including the module to adjust behavior:
-
-``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS``
- Specify additional runtime libraries that may not be detected.
- After inclusion any detected libraries will be appended to this.
-
-``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP``
- Set to TRUE to skip calling the :command:`install(PROGRAMS)` command to
- allow the includer to specify its own install rule, using the value of
- ``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS`` to get the list of libraries.
-
-``CMAKE_INSTALL_DEBUG_LIBRARIES``
- Set to TRUE to install the debug runtime libraries when available
- with MSVC tools.
-
-``CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY``
- Set to TRUE to install only the debug runtime libraries with MSVC
- tools even if the release runtime libraries are also available.
-
-``CMAKE_INSTALL_UCRT_LIBRARIES``
- Set to TRUE to install the Windows Universal CRT libraries for
- app-local deployment (e.g. to Windows XP). This is meaningful
- only with MSVC from Visual Studio 2015 or higher.
-
- One may set a ``CMAKE_WINDOWS_KITS_10_DIR`` *environment variable*
- to an absolute path to tell CMake to look for Windows 10 SDKs in
- a custom location. The specified directory is expected to contain
- ``Redist/ucrt/DLLs/*`` directories.
-
-``CMAKE_INSTALL_MFC_LIBRARIES``
- Set to TRUE to install the MSVC MFC runtime libraries.
-
-``CMAKE_INSTALL_OPENMP_LIBRARIES``
- Set to TRUE to install the MSVC OpenMP runtime libraries
-
-``CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION``
- Specify the :command:`install(PROGRAMS)` command ``DESTINATION``
- option. If not specified, the default is ``bin`` on Windows
- and ``lib`` elsewhere.
-
-``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS``
- Set to TRUE to disable warnings about required library files that
- do not exist. (For example, Visual Studio Express editions may
- not provide the redistributable files.)
-
-``CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT``
- Specify the :command:`install(PROGRAMS)` command ``COMPONENT``
- option. If not specified, no such option will be used.
-#]=======================================================================]
-
-cmake_policy(PUSH)
-cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
-
-set(_IRSL_HAVE_Intel FALSE)
-set(_IRSL_HAVE_MSVC FALSE)
-foreach(LANG IN ITEMS C CXX Fortran)
- if("${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "Intel")
- if(NOT _IRSL_HAVE_Intel)
- get_filename_component(_Intel_basedir "${CMAKE_${LANG}_COMPILER}" PATH)
- if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(_Intel_archdir intel64)
- else()
- set(_Intel_archdir x86)
- endif()
- set(_Intel_compiler_ver ${CMAKE_${LANG}_COMPILER_VERSION})
- if(WIN32)
- get_filename_component(_Intel_redistdir "${_Intel_basedir}/../../redist/${_Intel_archdir}/compiler" ABSOLUTE)
- elseif(APPLE)
- get_filename_component(_Intel_redistdir "${_Intel_basedir}/../../compiler/lib" ABSOLUTE)
- else()
- if(EXISTS "${_Intel_basedir}/../lib/${_Intel_archdir}_lin")
- get_filename_component(_Intel_redistdir "${_Intel_basedir}/../lib/${_Intel_archdir}" ABSOLUTE)
- else()
- get_filename_component(_Intel_redistdir "${_Intel_basedir}/../../compiler/lib/${_Intel_archdir}_lin" ABSOLUTE)
- endif()
- endif()
- set(_IRSL_HAVE_Intel TRUE)
- endif()
- elseif("${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "MSVC")
- set(_IRSL_HAVE_MSVC TRUE)
- endif()
-endforeach()
-
-if(MSVC)
- file(TO_CMAKE_PATH "$ENV{SYSTEMROOT}" SYSTEMROOT)
-
- if(CMAKE_CL_64)
- if(MSVC_VERSION GREATER 1599)
- # VS 10 and later:
- set(CMAKE_MSVC_ARCH x64)
- else()
- # VS 9 and earlier:
- set(CMAKE_MSVC_ARCH amd64)
- endif()
- else()
- set(CMAKE_MSVC_ARCH x86)
- endif()
-
- get_filename_component(devenv_dir "${CMAKE_MAKE_PROGRAM}" PATH)
- get_filename_component(base_dir "${devenv_dir}/../.." ABSOLUTE)
-
- if(MSVC_VERSION EQUAL 1300)
- set(__install__libs
- "${SYSTEMROOT}/system32/msvcp70.dll"
- "${SYSTEMROOT}/system32/msvcr70.dll"
- )
- endif()
-
- if(MSVC_VERSION EQUAL 1310)
- set(__install__libs
- "${SYSTEMROOT}/system32/msvcp71.dll"
- "${SYSTEMROOT}/system32/msvcr71.dll"
- )
- endif()
-
- if(MSVC_TOOLSET_VERSION EQUAL 80)
- # Find the runtime library redistribution directory.
- get_filename_component(msvc_install_dir
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]" ABSOLUTE)
- if(DEFINED MSVC80_REDIST_DIR AND EXISTS "${MSVC80_REDIST_DIR}")
- set(MSVC_REDIST_DIR "${MSVC80_REDIST_DIR}") # use old cache entry
- endif()
- find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest
- PATHS
- "${msvc_install_dir}/../../VC/redist"
- "${base_dir}/VC/redist"
- )
- mark_as_advanced(MSVC_REDIST_DIR)
- set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT")
-
- # Install the manifest that allows DLLs to be loaded from the
- # directory containing the executable.
- if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
- set(__install__libs
- "${MSVC_CRT_DIR}/Microsoft.VC80.CRT.manifest"
- "${MSVC_CRT_DIR}/msvcm80.dll"
- "${MSVC_CRT_DIR}/msvcp80.dll"
- "${MSVC_CRT_DIR}/msvcr80.dll"
- )
- else()
- set(__install__libs)
- endif()
-
- if(CMAKE_INSTALL_DEBUG_LIBRARIES)
- set(MSVC_CRT_DIR
- "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugCRT")
- set(__install__libs ${__install__libs}
- "${MSVC_CRT_DIR}/Microsoft.VC80.DebugCRT.manifest"
- "${MSVC_CRT_DIR}/msvcm80d.dll"
- "${MSVC_CRT_DIR}/msvcp80d.dll"
- "${MSVC_CRT_DIR}/msvcr80d.dll"
- )
- endif()
- endif()
-
- if(MSVC_TOOLSET_VERSION EQUAL 90)
- # Find the runtime library redistribution directory.
- get_filename_component(msvc_install_dir
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]" ABSOLUTE)
- get_filename_component(msvc_express_install_dir
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\9.0;InstallDir]" ABSOLUTE)
- if(DEFINED MSVC90_REDIST_DIR AND EXISTS "${MSVC90_REDIST_DIR}")
- set(MSVC_REDIST_DIR "${MSVC90_REDIST_DIR}") # use old cache entry
- endif()
- find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
- PATHS
- "${msvc_install_dir}/../../VC/redist"
- "${msvc_express_install_dir}/../../VC/redist"
- "${base_dir}/VC/redist"
- )
- mark_as_advanced(MSVC_REDIST_DIR)
- set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT")
-
- # Install the manifest that allows DLLs to be loaded from the
- # directory containing the executable.
- if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
- set(__install__libs
- "${MSVC_CRT_DIR}/Microsoft.VC90.CRT.manifest"
- "${MSVC_CRT_DIR}/msvcm90.dll"
- "${MSVC_CRT_DIR}/msvcp90.dll"
- "${MSVC_CRT_DIR}/msvcr90.dll"
- )
- else()
- set(__install__libs)
- endif()
-
- if(CMAKE_INSTALL_DEBUG_LIBRARIES)
- set(MSVC_CRT_DIR
- "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugCRT")
- set(__install__libs ${__install__libs}
- "${MSVC_CRT_DIR}/Microsoft.VC90.DebugCRT.manifest"
- "${MSVC_CRT_DIR}/msvcm90d.dll"
- "${MSVC_CRT_DIR}/msvcp90d.dll"
- "${MSVC_CRT_DIR}/msvcr90d.dll"
- )
- endif()
- endif()
-
- set(MSVC_REDIST_NAME "")
- set(_MSVC_DLL_VERSION "")
- set(_MSVC_IDE_VERSION "")
- if(MSVC_VERSION GREATER_EQUAL 2000)
- message(WARNING "MSVC ${MSVC_VERSION} not yet supported.")
- elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 143)
- message(WARNING "MSVC toolset v${MSVC_TOOLSET_VERSION} not yet supported.")
- elseif(MSVC_TOOLSET_VERSION EQUAL 142)
- set(MSVC_REDIST_NAME VC142)
- set(_MSVC_DLL_VERSION 140)
- set(_MSVC_IDE_VERSION 16)
- if(MSVC_VERSION EQUAL 1920)
- # VS2019 named this differently prior to update 1.
- set(MSVC_REDIST_NAME VC141)
- endif()
- elseif(MSVC_TOOLSET_VERSION EQUAL 141)
- set(MSVC_REDIST_NAME VC141)
- set(_MSVC_DLL_VERSION 140)
- set(_MSVC_IDE_VERSION 15)
- if(MSVC_VERSION EQUAL 1910)
- # VS2017 named this differently prior to update 3.
- set(MSVC_REDIST_NAME VC150)
- endif()
- elseif(MSVC_TOOLSET_VERSION)
- set(MSVC_REDIST_NAME VC${MSVC_TOOLSET_VERSION})
- math(EXPR _MSVC_DLL_VERSION "${MSVC_TOOLSET_VERSION} / 10 * 10")
- math(EXPR _MSVC_IDE_VERSION "${MSVC_TOOLSET_VERSION} / 10")
- endif()
-
- set(_MSVCRT_DLL_VERSION "")
- set(_MSVCRT_IDE_VERSION "")
- if(_MSVC_IDE_VERSION GREATER_EQUAL 10)
- set(_MSVCRT_DLL_VERSION "${_MSVC_DLL_VERSION}")
- set(_MSVCRT_IDE_VERSION "${_MSVC_IDE_VERSION}")
- endif()
-
- if(_MSVCRT_DLL_VERSION)
- set(v "${_MSVCRT_DLL_VERSION}")
- set(vs "${_MSVCRT_IDE_VERSION}")
-
- # Find the runtime library redistribution directory.
- if(vs VERSION_LESS 15 AND DEFINED MSVC${vs}_REDIST_DIR AND EXISTS "${MSVC${vs}_REDIST_DIR}")
- set(MSVC_REDIST_DIR "${MSVC${vs}_REDIST_DIR}") # use old cache entry
- endif()
- if(NOT vs VERSION_LESS 15)
- set(_vs_redist_paths "")
- # The toolset and its redistributables may come with any VS version 15 or newer.
- set(_MSVC_IDE_VERSIONS 16 15)
- foreach(_vs_ver ${_MSVC_IDE_VERSIONS})
- set(_vs_glob_redist_paths "")
- cmake_host_system_information(RESULT _vs_dir QUERY VS_${_vs_ver}_DIR) # undocumented query
- if(IS_DIRECTORY "${_vs_dir}")
- file(GLOB _vs_glob_redist_paths "${_vs_dir}/VC/Redist/MSVC/*")
- list(REVERSE _vs_glob_redist_paths)
- list(APPEND _vs_redist_paths ${_vs_glob_redist_paths})
- endif()
- unset(_vs_glob_redist_paths)
- endforeach()
- unset(_MSVC_IDE_VERSIONS)
- unset(_vs_dir)
- else()
- get_filename_component(_vs_dir
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${vs}.0;InstallDir]" ABSOLUTE)
- set(programfilesx86 "ProgramFiles(x86)")
- set(_vs_redist_paths
- "${_vs_dir}/../../VC/redist"
- "${base_dir}/VC/redist"
- "$ENV{ProgramFiles}/Microsoft Visual Studio ${vs}.0/VC/redist"
- "$ENV{${programfilesx86}}/Microsoft Visual Studio ${vs}.0/VC/redist"
- )
- unset(_vs_dir)
- unset(programfilesx86)
- endif()
- find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.CRT PATHS ${_vs_redist_paths})
- unset(_vs_redist_paths)
- mark_as_advanced(MSVC_REDIST_DIR)
- set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.CRT")
-
- if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
- set(__install__libs
- "${MSVC_CRT_DIR}/msvcp${v}.dll"
- )
- if(NOT vs VERSION_LESS 14)
- foreach(crt
- "${MSVC_CRT_DIR}/msvcp${v}_1.dll"
- "${MSVC_CRT_DIR}/msvcp${v}_2.dll"
- "${MSVC_CRT_DIR}/msvcp${v}_codecvt_ids.dll"
- "${MSVC_CRT_DIR}/vcruntime${v}_1.dll"
- )
- if(EXISTS "${crt}")
- list(APPEND __install__libs "${crt}")
- endif()
- endforeach()
- list(APPEND __install__libs
- "${MSVC_CRT_DIR}/vcruntime${v}.dll"
- "${MSVC_CRT_DIR}/concrt${v}.dll"
- )
- else()
- list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}.dll")
- endif()
- else()
- set(__install__libs)
- endif()
-
- if(CMAKE_INSTALL_DEBUG_LIBRARIES)
- set(MSVC_CRT_DIR
- "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.DebugCRT")
- set(__install__libs ${__install__libs}
- "${MSVC_CRT_DIR}/msvcp${v}d.dll"
- )
- if(NOT vs VERSION_LESS 14)
- foreach(crt
- "${MSVC_CRT_DIR}/msvcp${v}_1d.dll"
- "${MSVC_CRT_DIR}/msvcp${v}_2d.dll"
- "${MSVC_CRT_DIR}/msvcp${v}d_codecvt_ids.dll"
- "${MSVC_CRT_DIR}/vcruntime${v}_1d.dll"
- )
- if(EXISTS "${crt}")
- list(APPEND __install__libs "${crt}")
- endif()
- endforeach()
- list(APPEND __install__libs
- "${MSVC_CRT_DIR}/vcruntime${v}d.dll"
- "${MSVC_CRT_DIR}/concrt${v}d.dll"
- )
- else()
- list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}d.dll")
- endif()
- endif()
-
- if(CMAKE_INSTALL_UCRT_LIBRARIES AND NOT vs VERSION_LESS 14)
- # Find the Windows Kits directory.
- get_filename_component(windows_kits_dir
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE)
- set(programfilesx86 "ProgramFiles(x86)")
- if(";${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION};$ENV{UCRTVersion};$ENV{WindowsSDKVersion};" MATCHES [=[;(10\.[0-9.]+)[;\]]=])
- set(__ucrt_version "${CMAKE_MATCH_1}/")
- else()
- set(__ucrt_version "")
- endif()
- find_path(WINDOWS_KITS_DIR
- NAMES
- Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
- Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
- PATHS
- $ENV{CMAKE_WINDOWS_KITS_10_DIR}
- "${windows_kits_dir}"
- "$ENV{ProgramFiles}/Windows Kits/10"
- "$ENV{${programfilesx86}}/Windows Kits/10"
- )
- mark_as_advanced(WINDOWS_KITS_DIR)
-
- # Glob the list of UCRT DLLs.
- if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
- if(EXISTS "${WINDOWS_KITS_DIR}/Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll")
- file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
- else()
- file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
- endif()
- list(APPEND __install__libs ${__ucrt_dlls})
- endif()
- if(CMAKE_INSTALL_DEBUG_LIBRARIES)
- if(EXISTS "${WINDOWS_KITS_DIR}/bin/${__ucrt_version}${CMAKE_MSVC_ARCH}/ucrt/ucrtbased.dll")
- file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${__ucrt_version}${CMAKE_MSVC_ARCH}/ucrt/*.dll")
- else()
- file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${CMAKE_MSVC_ARCH}/ucrt/*.dll")
- endif()
- list(APPEND __install__libs ${__ucrt_dlls})
- endif()
- endif()
- endif()
-
- if(CMAKE_INSTALL_MFC_LIBRARIES)
- if(MSVC_VERSION EQUAL 1300)
- set(__install__libs ${__install__libs}
- "${SYSTEMROOT}/system32/mfc70.dll"
- )
- endif()
-
- if(MSVC_VERSION EQUAL 1310)
- set(__install__libs ${__install__libs}
- "${SYSTEMROOT}/system32/mfc71.dll"
- )
- endif()
-
- if(MSVC_VERSION EQUAL 1400)
- if(CMAKE_INSTALL_DEBUG_LIBRARIES)
- set(MSVC_MFC_DIR
- "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugMFC")
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/Microsoft.VC80.DebugMFC.manifest"
- "${MSVC_MFC_DIR}/mfc80d.dll"
- "${MSVC_MFC_DIR}/mfc80ud.dll"
- "${MSVC_MFC_DIR}/mfcm80d.dll"
- "${MSVC_MFC_DIR}/mfcm80ud.dll"
- )
- endif()
-
- set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFC")
- # Install the manifest that allows DLLs to be loaded from the
- # directory containing the executable.
- if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/Microsoft.VC80.MFC.manifest"
- "${MSVC_MFC_DIR}/mfc80.dll"
- "${MSVC_MFC_DIR}/mfc80u.dll"
- "${MSVC_MFC_DIR}/mfcm80.dll"
- "${MSVC_MFC_DIR}/mfcm80u.dll"
- )
- endif()
-
- # include the language dll's for vs8 as well as the actual dll's
- set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFCLOC")
- # Install the manifest that allows DLLs to be loaded from the
- # directory containing the executable.
- set(__install__libs ${__install__libs}
- "${MSVC_MFCLOC_DIR}/Microsoft.VC80.MFCLOC.manifest"
- "${MSVC_MFCLOC_DIR}/mfc80chs.dll"
- "${MSVC_MFCLOC_DIR}/mfc80cht.dll"
- "${MSVC_MFCLOC_DIR}/mfc80enu.dll"
- "${MSVC_MFCLOC_DIR}/mfc80esp.dll"
- "${MSVC_MFCLOC_DIR}/mfc80deu.dll"
- "${MSVC_MFCLOC_DIR}/mfc80fra.dll"
- "${MSVC_MFCLOC_DIR}/mfc80ita.dll"
- "${MSVC_MFCLOC_DIR}/mfc80jpn.dll"
- "${MSVC_MFCLOC_DIR}/mfc80kor.dll"
- )
- endif()
-
- if(MSVC_VERSION EQUAL 1500)
- if(CMAKE_INSTALL_DEBUG_LIBRARIES)
- set(MSVC_MFC_DIR
- "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugMFC")
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/Microsoft.VC90.DebugMFC.manifest"
- "${MSVC_MFC_DIR}/mfc90d.dll"
- "${MSVC_MFC_DIR}/mfc90ud.dll"
- "${MSVC_MFC_DIR}/mfcm90d.dll"
- "${MSVC_MFC_DIR}/mfcm90ud.dll"
- )
- endif()
-
- set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFC")
- # Install the manifest that allows DLLs to be loaded from the
- # directory containing the executable.
- if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/Microsoft.VC90.MFC.manifest"
- "${MSVC_MFC_DIR}/mfc90.dll"
- "${MSVC_MFC_DIR}/mfc90u.dll"
- "${MSVC_MFC_DIR}/mfcm90.dll"
- "${MSVC_MFC_DIR}/mfcm90u.dll"
- )
- endif()
-
- # include the language dll's for vs9 as well as the actual dll's
- set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFCLOC")
- # Install the manifest that allows DLLs to be loaded from the
- # directory containing the executable.
- set(__install__libs ${__install__libs}
- "${MSVC_MFCLOC_DIR}/Microsoft.VC90.MFCLOC.manifest"
- "${MSVC_MFCLOC_DIR}/mfc90chs.dll"
- "${MSVC_MFCLOC_DIR}/mfc90cht.dll"
- "${MSVC_MFCLOC_DIR}/mfc90enu.dll"
- "${MSVC_MFCLOC_DIR}/mfc90esp.dll"
- "${MSVC_MFCLOC_DIR}/mfc90deu.dll"
- "${MSVC_MFCLOC_DIR}/mfc90fra.dll"
- "${MSVC_MFCLOC_DIR}/mfc90ita.dll"
- "${MSVC_MFCLOC_DIR}/mfc90jpn.dll"
- "${MSVC_MFCLOC_DIR}/mfc90kor.dll"
- )
- endif()
-
- set(_MFC_DLL_VERSION "")
- set(_MFC_IDE_VERSION "")
- if(_MSVC_IDE_VERSION GREATER_EQUAL 10)
- set(_MFC_DLL_VERSION ${_MSVC_DLL_VERSION})
- set(_MFC_IDE_VERSION ${_MSVC_IDE_VERSION})
- endif()
-
- if(_MFC_DLL_VERSION)
- set(v "${_MFC_DLL_VERSION}")
- set(vs "${_MFC_IDE_VERSION}")
-
- # Starting with VS 15 the MFC DLLs may be in a different directory.
- if (NOT vs VERSION_LESS 15)
- file(GLOB _MSVC_REDIST_DIRS "${MSVC_REDIST_DIR}/../*")
- find_path(MSVC_REDIST_MFC_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.MFC
- PATHS ${_MSVC_REDIST_DIRS} NO_DEFAULT_PATH)
- mark_as_advanced(MSVC_REDIST_MFC_DIR)
- unset(_MSVC_REDIST_DIRS)
- else()
- set(MSVC_REDIST_MFC_DIR "${MSVC_REDIST_DIR}")
- endif()
-
- # Multi-Byte Character Set versions of MFC are available as optional
- # addon since Visual Studio 12. So for version 12 or higher, check
- # whether they are available and exclude them if they are not.
-
- if(CMAKE_INSTALL_DEBUG_LIBRARIES)
- set(MSVC_MFC_DIR
- "${MSVC_REDIST_MFC_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.DebugMFC")
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/mfc${v}ud.dll"
- "${MSVC_MFC_DIR}/mfcm${v}ud.dll"
- )
- if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}d.dll")
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/mfc${v}d.dll"
- )
- endif()
- if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfcm${v}d.dll")
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/mfcm${v}d.dll"
- )
- endif()
- endif()
-
- set(MSVC_MFC_DIR "${MSVC_REDIST_MFC_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.MFC")
- if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/mfc${v}u.dll"
- "${MSVC_MFC_DIR}/mfcm${v}u.dll"
- )
- if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}.dll")
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/mfc${v}.dll"
- )
- endif()
- if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfcm${v}.dll")
- set(__install__libs ${__install__libs}
- "${MSVC_MFC_DIR}/mfcm${v}.dll"
- )
- endif()
- endif()
-
- # include the language dll's as well as the actual dll's
- set(MSVC_MFCLOC_DIR "${MSVC_REDIST_MFC_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.MFCLOC")
- set(__install__libs ${__install__libs}
- "${MSVC_MFCLOC_DIR}/mfc${v}chs.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}cht.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}deu.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}enu.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}esn.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}fra.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}ita.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}jpn.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}kor.dll"
- "${MSVC_MFCLOC_DIR}/mfc${v}rus.dll"
- )
- endif()
- endif()
-
- # MSVC 8 was the first version with OpenMP
- # Furthermore, there is no debug version of this
- if(CMAKE_INSTALL_OPENMP_LIBRARIES AND _IRSL_HAVE_MSVC)
- set(_MSOMP_DLL_VERSION ${_MSVC_DLL_VERSION})
- set(_MSOMP_IDE_VERSION ${_MSVC_IDE_VERSION})
-
- if(_MSOMP_DLL_VERSION)
- set(v "${_MSOMP_DLL_VERSION}")
- set(vs "${_MSOMP_IDE_VERSION}")
- set(MSVC_OPENMP_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.OPENMP")
-
- if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
- set(__install__libs ${__install__libs}
- "${MSVC_OPENMP_DIR}/vcomp${v}.dll")
- endif()
- endif()
- endif()
-
- foreach(lib
- ${__install__libs}
- )
- if(EXISTS ${lib})
- set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
- ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
- else()
- if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
- message(WARNING "system runtime library file does not exist: '${lib}'")
- # This warning indicates an incomplete Visual Studio installation
- # or a bug somewhere above here in this file.
- # If you would like to avoid this warning, fix the real problem, or
- # set CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS before including
- # this file.
- endif()
- endif()
- endforeach()
-endif()
-
-if(_IRSL_HAVE_Intel)
- unset(__install_libs)
- if(CMAKE_INSTALL_OPENMP_LIBRARIES)
- if(WIN32)
- list(APPEND __install_libs "${_Intel_redistdir}/libiomp5md.dll" "${_Intel_redistdir}/libiompstubs5md.dll")
- elseif(APPLE)
- list(APPEND __install_libs "${_Intel_redistdir}/libiomp5.dylib" "${_Intel_redistdir}/libiompstubs5.dylib")
- else()
- list(APPEND __install_libs "${_Intel_redistdir}/libiomp5.so" "${_Intel_redistdir}/libiompstubs5.so")
- if(_Intel_compiler_ver VERSION_LESS 17)
- list(APPEND __install_libs "${_Intel_redistdir}/libomp_db.so")
- endif()
- if(_Intel_compiler_ver VERSION_LESS 13)
- list(APPEND __install_libs "${_Intel_redistdir}/libiompprof5.so")
- endif()
- endif()
- endif()
- if(WIN32)
- set(__install_dirs "${_Intel_redistdir}/1033")
- if(EXISTS "${_Intel_redistdir}/1041")
- list(APPEND __install_dirs "${_Intel_redistdir}/1041")
- endif()
- if(_Intel_compiler_ver VERSION_LESS 18)
- list(APPEND __install_dirs "${_Intel_redistdir}/irml" "${_Intel_redistdir}/irml_c")
- endif()
- foreach(__Intel_lib IN ITEMS cilkrts20.dll libchkp.dll libioffload_host.dll libirngmd.dll
- libmmd.dll libmmdd.dll libmpx.dll liboffload.dll svml_dispmd.dll)
-
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- if(CMAKE_C_COMPILER_ID STREQUAL Intel OR CMAKE_CXX_COMPILER_ID STREQUAL Intel)
- list(APPEND __install_libs "${_Intel_redistdir}/libgfxoffload.dll")
- endif()
- if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
- foreach(__Intel_lib IN ITEMS ifdlg100.dll libicaf.dll libifcoremd.dll libifcoremdd.dll libifcorert.dll libifcorertd.dll libifportmd.dll)
-
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- endif()
- elseif(APPLE)
- foreach(__Intel_lib IN ITEMS libchkp.dylib libcilkrts.5.dylib libcilkrts.dylib libimf.dylib libintlc.dylib libirc.dylib libirng.dylib libsvml.dylib)
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- if(CMAKE_C_COMPILER_ID STREQUAL Intel OR CMAKE_CXX_COMPILER_ID STREQUAL Intel)
- if(_Intel_compiler_ver VERSION_LESS 17)
- list(APPEND __install_libs "${_Intel_redistdir}/libistrconv.dylib")
- endif()
- endif()
- if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
- foreach(__Intel_lib IN ITEMS libifcore.dylib libifcoremt.dylib libifport.dylib libifportmt.dylib)
-
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- endif()
- else()
- foreach(__Intel_lib IN ITEMS libchkp.so libcilkrts.so libcilkrts.so.5 libimf.so libintlc.so libintlc.so.5 libirc.so libpdbx.so libpdbx.so.5 libsvml.so)
-
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- if(_Intel_compiler_ver VERSION_GREATER_EQUAL 13)
- foreach(__Intel_lib IN ITEMS libirng.so liboffload.so liboffload.so.5)
-
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- endif()
- if(CMAKE_C_COMPILER_ID STREQUAL Intel OR CMAKE_CXX_COMPILER_ID STREQUAL Intel)
- set(__install_dirs "${_Intel_redistdir}/irml")
- list(APPEND __install_libs "${_Intel_redistdir}/cilk_db.so")
- if(_Intel_compiler_ver VERSION_GREATER_EQUAL 15)
- list(APPEND __install_libs "${_Intel_redistdir}/libistrconv.so" "${_Intel_redistdir}/libgfxoffload.so")
- endif()
- endif()
- if(_Intel_compiler_ver VERSION_GREATER_EQUAL 16)
- foreach(__Intel_lib IN ITEMS libioffload_host.so libioffload_host.so.5 libioffload_target.so libioffload_target.so.5 libmpx.so offload_main)
-
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- endif()
- if(_Intel_compiler_ver VERSION_LESS 15)
- foreach(__Intel_lib IN ITEMS libcxaguard.so libcxaguard.so.5)
-
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- endif()
- if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
- foreach(__Intel_lib IN ITEMS libicaf.so libifcore.so libifcore.so.5 libifcoremt.so libifcoremt.so.5 libifport.so libifport.so.5)
-
- list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
- endforeach()
- endif()
- endif()
-
- foreach(lib IN LISTS __install_libs)
- if(EXISTS ${lib})
- list(APPEND CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS ${lib})
- else()
- if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
- message(WARNING "system runtime library file does not exist: '${lib}'")
- endif()
- endif()
- endforeach()
-
- foreach(dir IN LISTS __install_dirs)
- if(EXISTS ${dir})
- list(APPEND CMAKE_INSTALL_SYSTEM_RUNTIME_DIRECTORIES ${dir})
- else()
- if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
- message(WARNING "system runtime library file does not exist: '${dir}'")
- endif()
- endif()
- endforeach()
-endif()
-
-if(WATCOM)
- get_filename_component( CompilerPath ${CMAKE_C_COMPILER} PATH )
- if(CMAKE_C_COMPILER_VERSION)
- set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
- else()
- set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
- endif()
- string(REGEX MATCHALL "[0-9]+" _watcom_version_list "${_compiler_version}")
- list(GET _watcom_version_list 0 _watcom_major)
- list(GET _watcom_version_list 1 _watcom_minor)
- set( __install__libs
- ${CompilerPath}/clbr${_watcom_major}${_watcom_minor}.dll
- ${CompilerPath}/mt7r${_watcom_major}${_watcom_minor}.dll
- ${CompilerPath}/plbr${_watcom_major}${_watcom_minor}.dll )
- foreach(lib
- ${__install__libs}
- )
- if(EXISTS ${lib})
- set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
- ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
- else()
- if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
- message(WARNING "system runtime library file does not exist: '${lib}'")
- # This warning indicates an incomplete Watcom installation
- # or a bug somewhere above here in this file.
- # If you would like to avoid this warning, fix the real problem, or
- # set CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS before including
- # this file.
- endif()
- endif()
- endforeach()
-endif()
-
-
-# Include system runtime libraries in the installation if any are
-# specified by CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS.
-if(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
- if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP)
- if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION)
- if(WIN32)
- set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION bin)
- else()
- set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION lib)
- endif()
- endif()
- if(CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT)
- set(_CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT
- COMPONENT ${CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT})
- endif()
- install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}
- DESTINATION ${CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION}
- ${_CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT}
- )
-
- install(DIRECTORY ${CMAKE_INSTALL_SYSTEM_RUNTIME_DIRECTORIES}
- DESTINATION ${CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION}
- ${_CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT}
- )
- endif()
-endif()
-
-cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackDeb.cmake
deleted file mode 100644
index 14bb104..0000000
--- a/share/cmake-3.17/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 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.17/Modules/Internal/CPack/CPackNuGet.cmake b/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake
deleted file mode 100644
index 1f4bcfd..0000000
--- a/share/cmake-3.17/Modules/Internal/CPack/CPackNuGet.cmake
+++ /dev/null
@@ -1,354 +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}`")
-
- _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
deleted file mode 100644
index 3485e7d..0000000
--- a/share/cmake-3.17/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 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.17/Modules/Internal/CPack/NSIS.template.in b/share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in
deleted file mode 100644
index 660bfa3..0000000
--- a/share/cmake-3.17/Modules/Internal/CPack/NSIS.template.in
+++ /dev/null
@@ -1,978 +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
-
-;--------------------------------
-; 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.17/Modules/Platform/Android-Common.cmake b/share/cmake-3.17/Modules/Platform/Android-Common.cmake
deleted file mode 100644
index 1affcd0..0000000
--- a/share/cmake-3.17/Modules/Platform/Android-Common.cmake
+++ /dev/null
@@ -1,218 +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_COMMON)
- return()
-endif()
-set(__ANDROID_COMPILER_COMMON 1)
-
-if(CMAKE_ANDROID_NDK)
- # <ndk>/build/core/definitions.mk
-
- set(_ANDROID_STL_TYPES
- none
- system
- c++_static
- c++_shared
- gabi++_static
- gabi++_shared
- gnustl_static
- gnustl_shared
- stlport_static
- stlport_shared
- )
-
- if(CMAKE_ANDROID_STL_TYPE)
- list(FIND _ANDROID_STL_TYPES "${CMAKE_ANDROID_STL_TYPE}" _ANDROID_STL_TYPE_FOUND)
- if(_ANDROID_STL_TYPE_FOUND EQUAL -1)
- string(REPLACE ";" "\n " _msg ";${_ANDROID_STL_TYPES}")
- message(FATAL_ERROR
- "The CMAKE_ANDROID_STL_TYPE '${CMAKE_ANDROID_STL_TYPE}' is not one of the allowed values:${_msg}\n"
- )
- endif()
- unset(_ANDROID_STL_TYPE_FOUND)
- elseif(IS_DIRECTORY ${CMAKE_ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++)
- set(CMAKE_ANDROID_STL_TYPE "gnustl_static")
- else()
- set(CMAKE_ANDROID_STL_TYPE "c++_static")
- endif()
-
- unset(_ANDROID_STL_TYPES)
-
- # Forward Android-specific platform variables to try_compile projects.
- list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
- CMAKE_ANDROID_STL_TYPE
- )
-endif()
-
-if(CMAKE_ANDROID_STL_TYPE)
- if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
- if(CMAKE_ANDROID_STL_TYPE STREQUAL "system")
- set(_ANDROID_STL_EXCEPTIONS 0)
- set(_ANDROID_STL_RTTI 0)
- macro(__android_stl lang)
- string(APPEND CMAKE_${lang}_FLAGS_INIT " -stdlib=libstdc++")
- endmacro()
- elseif(CMAKE_ANDROID_STL_TYPE STREQUAL "c++_static")
- set(_ANDROID_STL_EXCEPTIONS 1)
- set(_ANDROID_STL_RTTI 1)
- macro(__android_stl lang)
- string(APPEND CMAKE_${lang}_FLAGS_INIT " -stdlib=libc++")
- string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " -static-libstdc++")
- endmacro()
- elseif(CMAKE_ANDROID_STL_TYPE STREQUAL "c++_shared")
- set(_ANDROID_STL_EXCEPTIONS 1)
- set(_ANDROID_STL_RTTI 1)
- macro(__android_stl lang)
- string(APPEND CMAKE_${lang}_FLAGS_INIT " -stdlib=libc++")
- endmacro()
- elseif(CMAKE_ANDROID_STL_TYPE STREQUAL "none")
- set(_ANDROID_STL_RTTI 0)
- set(_ANDROID_STL_EXCEPTIONS 0)
- macro(__android_stl lang)
- # FIXME: Add a way to add project-wide language-specific compile-only flags.
- set(CMAKE_CXX_COMPILE_OBJECT
- "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE> -nostdinc++")
- string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " -nostdlib++")
- endmacro()
- else()
- message(FATAL_ERROR
- "Android: STL '${CMAKE_ANDROID_STL_TYPE}' not supported by this NDK."
- )
- endif()
- elseif(CMAKE_ANDROID_NDK)
-
- macro(__android_stl_inc lang dir req)
- if(EXISTS "${dir}")
- list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${dir}")
- elseif(${req})
- message(FATAL_ERROR
- "Android: STL '${CMAKE_ANDROID_STL_TYPE}' include directory not found:\n"
- " ${dir}"
- )
- endif()
- endmacro()
-
- macro(__android_stl_lib lang lib req)
- if(CMAKE_ANDROID_ARCH_ABI MATCHES "^armeabi" AND NOT CMAKE_ANDROID_ARM_MODE)
- get_filename_component(_ANDROID_STL_LIBDIR "${lib}" DIRECTORY)
- get_filename_component(_ANDROID_STL_LIBNAME "${lib}" NAME)
- set(_ANDROID_STL_LIBTHUMB "${_ANDROID_STL_LIBDIR}/thumb/${_ANDROID_STL_LIBNAME}")
- unset(_ANDROID_STL_LIBDIR)
- unset(_ANDROID_STL_LIBNAME)
- else()
- set(_ANDROID_STL_LIBTHUMB "")
- endif()
-
- if(_ANDROID_STL_LIBTHUMB AND EXISTS "${_ANDROID_STL_LIBTHUMB}")
- string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " \"${_ANDROID_STL_LIBTHUMB}\"")
- elseif(EXISTS "${lib}")
- string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " \"${lib}\"")
- elseif(${req})
- message(FATAL_ERROR
- "Android: STL '${CMAKE_ANDROID_STL_TYPE}' library file not found:\n"
- " ${lib}"
- )
- endif()
-
- unset(_ANDROID_STL_LIBTHUMB)
- endmacro()
-
- include(Platform/Android/ndk-stl-${CMAKE_ANDROID_STL_TYPE})
- else()
- macro(__android_stl lang)
- endmacro()
- endif()
-else()
- macro(__android_stl lang)
- endmacro()
-endif()
-
-# The NDK toolchain configuration files at:
-#
-# <ndk>/[build/core/]toolchains/*/setup.mk
-#
-# contain logic to set TARGET_CFLAGS and TARGET_LDFLAGS (and debug/release
-# variants) to tell their build system what flags to pass for each ABI.
-# We need to produce the same flags here to produce compatible binaries.
-# We initialize these variables here and set them in the compiler-specific
-# modules that include this one. Then we use them in the macro below when
-# it is called.
-set(_ANDROID_ABI_INIT_CFLAGS "")
-set(_ANDROID_ABI_INIT_CFLAGS_DEBUG "")
-set(_ANDROID_ABI_INIT_CFLAGS_RELEASE "")
-set(_ANDROID_ABI_INIT_LDFLAGS "")
-set(_ANDROID_ABI_INIT_EXE_LDFLAGS "")
-
-macro(__android_compiler_common lang)
- if(_ANDROID_ABI_INIT_CFLAGS)
- string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_ANDROID_ABI_INIT_CFLAGS}")
- endif()
- if(_ANDROID_ABI_INIT_CFLAGS_DEBUG)
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " ${_ANDROID_ABI_INIT_CFLAGS_DEBUG}")
- endif()
- if(_ANDROID_ABI_INIT_CFLAGS_RELEASE)
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " ${_ANDROID_ABI_INIT_CFLAGS_RELEASE}")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " ${_ANDROID_ABI_INIT_CFLAGS_RELEASE}")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " ${_ANDROID_ABI_INIT_CFLAGS_RELEASE}")
- endif()
- if(_ANDROID_ABI_INIT_LDFLAGS)
- foreach(t EXE SHARED MODULE)
- string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_ANDROID_ABI_INIT_LDFLAGS}")
- endforeach()
- endif()
- if(_ANDROID_ABI_INIT_EXE_LDFLAGS)
- string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${_ANDROID_ABI_INIT_EXE_LDFLAGS}")
- endif()
-
- if(DEFINED _ANDROID_STL_EXCEPTIONS)
- if(_ANDROID_STL_EXCEPTIONS)
- string(APPEND CMAKE_${lang}_FLAGS_INIT " -fexceptions")
- else()
- string(APPEND CMAKE_${lang}_FLAGS_INIT " -fno-exceptions")
- endif()
- endif()
-
- if("x${lang}" STREQUAL "xCXX" AND DEFINED _ANDROID_STL_RTTI)
- if(_ANDROID_STL_RTTI)
- string(APPEND CMAKE_${lang}_FLAGS_INIT " -frtti")
- else()
- string(APPEND CMAKE_${lang}_FLAGS_INIT " -fno-rtti")
- endif()
- endif()
-
- if("x${lang}" STREQUAL "xCXX")
- __android_stl(CXX)
- endif()
-
- if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
- string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " -latomic -lm")
- endif()
-
- # <ndk>/build/core/definitions.mk appends the sysroot's include directory
- # explicitly at the end of the command-line include path so that it
- # precedes the toolchain's builtin include directories. This is
- # necessary so that Android API-version-specific headers are preferred
- # over those in the toolchain's `include-fixed` directory (which cannot
- # possibly match all versions).
- #
- # Do not do this for a standalone toolchain because it is already
- # tied to a specific API version.
- if(CMAKE_ANDROID_NDK AND NOT CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
- if(CMAKE_SYSROOT_COMPILE)
- set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}")
- else()
- set(_cmake_sysroot_compile "${CMAKE_SYSROOT}")
- endif()
- if(NOT CMAKE_ANDROID_NDK_DEPRECATED_HEADERS)
- list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES
- "${_cmake_sysroot_compile}/usr/include"
- "${_cmake_sysroot_compile}/usr/include/${CMAKE_ANDROID_ARCH_TRIPLE}"
- )
- else()
- list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${_cmake_sysroot_compile}/usr/include")
- endif()
- unset(_cmake_sysroot_compile)
- endif()
-endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneL.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneL.cmake
deleted file mode 100644
index 082e46c..0000000
--- a/share/cmake-3.17/Modules/Platform/BlueGeneL.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-#the compute nodes on BlueGene/L don't support shared libs
-set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
-
-set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic
-set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -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_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 ".a") # .a
-set(CMAKE_EXECUTABLE_SUFFIX "") # .exe
-set(CMAKE_DL_LIBS "" )
-
-set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
-set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
-
-
-include(Platform/UnixPaths)
-
-if(CMAKE_COMPILER_IS_GNUCC)
- set(CMAKE_C_LINK_EXECUTABLE
- "<CMAKE_C_COMPILER> -Wl,-relax <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lgcc,-lc -lnss_files -lnss_dns -lresolv")
-else()
- # when using IBM xlc we probably don't want to link to -lgcc
- set(CMAKE_C_LINK_EXECUTABLE
- "<CMAKE_C_COMPILER> -Wl,-relax <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lc -lnss_files -lnss_dns -lresolv")
-endif()
-
-if(CMAKE_COMPILER_IS_GNUCXX)
- set(CMAKE_CXX_LINK_EXECUTABLE
- "<CMAKE_CXX_COMPILER> -Wl,-relax <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lstdc++,-lgcc,-lc -lnss_files -lnss_dns -lresolv")
-else()
- # when using the IBM xlC we probably don't want to link to -lgcc
- set(CMAKE_CXX_LINK_EXECUTABLE
- "<CMAKE_CXX_COMPILER> -Wl,-relax <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lstdc++,-lc -lnss_files -lnss_dns -lresolv")
-endif()
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake
deleted file mode 100644
index fe95b42..0000000
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-base.cmake
+++ /dev/null
@@ -1,114 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-#
-# BlueGeneP base platform file.
-#
-# NOTE: Do not set your platform to "BlueGeneP-base". This file is included
-# by the real platform files. Use one of these two platforms instead:
-#
-# BlueGeneP-dynamic For dynamically linked builds
-# BlueGeneP-static For statically linked builds
-#
-# This platform file tries its best to adhere to the behavior of the MPI
-# compiler wrappers included with the latest BG/P drivers.
-#
-
-
-#
-# For BGP builds, we're cross compiling, but we don't want to re-root things
-# (e.g. with CMAKE_FIND_ROOT_PATH) because users may have libraries anywhere on
-# the shared filesystems, and this may lie outside the root. Instead, we set the
-# system directories so that the various system BGP CNK library locations are
-# searched first. This is not the clearest thing in the world, given IBM's driver
-# layout, but this should cover all the standard ones.
-#
-set(CMAKE_SYSTEM_LIBRARY_PATH
- /bgsys/drivers/ppcfloor/comm/default/lib # default comm layer (used by mpi compiler wrappers)
- /bgsys/drivers/ppcfloor/comm/sys/lib # DCMF, other lower-level comm libraries
- /bgsys/drivers/ppcfloor/runtime/SPI # other low-level stuff
- /bgsys/drivers/ppcfloor/gnu-linux/lib # CNK python installation directory
- /bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/lib # CNK Linux image -- standard runtime libs, pthread, etc.
-)
-
-#
-# This adds directories that find commands should specifically ignore for cross compiles.
-# Most of these directories are the includeand lib directories for the frontend on BG/P systems.
-# Not ignoring these can cause things like FindX11 to find a frontend PPC version mistakenly.
-# We use this on BG instead of re-rooting because backend libraries are typically strewn about
-# the filesystem, and we can't re-root ALL backend libraries to a single place.
-#
-set(CMAKE_SYSTEM_IGNORE_PATH
- /lib /lib64 /include
- /usr/lib /usr/lib64 /usr/include
- /usr/local/lib /usr/local/lib64 /usr/local/include
- /usr/X11/lib /usr/X11/lib64 /usr/X11/include
- /usr/lib/X11 /usr/lib64/X11 /usr/include/X11
- /usr/X11R6/lib /usr/X11R6/lib64 /usr/X11R6/include
- /usr/X11R7/lib /usr/X11R7/lib64 /usr/X11R7/include
-)
-
-#
-# Indicate that this is a unix-like system
-#
-set(UNIX 1)
-
-#
-# Library prefixes, suffixes, extra libs.
-#
-set(CMAKE_LINK_LIBRARY_SUFFIX "")
-set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # lib
-set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") # .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")
-
-#
-# This macro needs to be called for dynamic library support. Unfortunately on BGP,
-# We can't support both static and dynamic links in the same platform file. The
-# dynamic link platform file needs to call this explicitly to set up dynamic linking.
-#
-macro(__BlueGeneP_set_dynamic_flags compiler_id lang)
- if (${compiler_id} STREQUAL XL)
- # Flags for XL compilers if we explicitly detected XL
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-qpic")
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-qpie")
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-qpic")
- set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-qmkshrobj -qnostaticlink")
- set(BGP_${lang}_DYNAMIC_EXE_FLAGS "-qnostaticlink -qnostaticlink=libgcc")
- else()
- # Assume flags for GNU compilers (if the ID is GNU *or* anything else).
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC")
- set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
- set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
- set(BGP_${lang}_DYNAMIC_EXE_FLAGS "-dynamic")
- endif()
-
- # Both toolchains use the GNU linker on BG/P, so these options are shared.
- set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-rpath,")
- set(CMAKE_SHARED_LIBRARY_RPATH_LINK_${lang}_FLAG "-Wl,-rpath-link,")
- set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,-soname,")
- set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-dynamic")
- set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "") # +s, flag for exe link to use shared lib
- set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") # : or empty
-
- set(BGP_${lang}_DEFAULT_EXE_FLAGS
- "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
- set(CMAKE_${lang}_LINK_EXECUTABLE
- "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGP_${lang}_DYNAMIC_EXE_FLAGS} ${BGP_${lang}_DEFAULT_EXE_FLAGS}")
-endmacro()
-
-#
-# This macro needs to be called for static builds. Right now it just adds -Wl,-relax
-# to the link line.
-#
-macro(__BlueGeneP_set_static_flags compiler_id lang)
- set(BGP_${lang}_DEFAULT_EXE_FLAGS
- "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
- set(CMAKE_${lang}_LINK_EXECUTABLE
- "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGP_${lang}_DEFAULT_EXE_FLAGS}")
-endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake b/share/cmake-3.17/Modules/Platform/BlueGeneQ-base.cmake
deleted file mode 100644
index 5e56d8e..0000000
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-base.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.
-
-
-#
-# Blue Gene/Q base platform file.
-#
-# NOTE: Do not set your platform to "BlueGeneQ-base". This file is
-# included by the real platform files. Use one of these two platforms
-# instead:
-#
-# BlueGeneQ-dynamic For dynamically linked executables
-# BlueGeneQ-static For statically linked executables
-#
-# The platform you choose doesn't affect whether or not you can build
-# shared or static libraries -- it ONLY changs whether exeuatbles are linked
-# statically or dynamically.
-#
-# This platform file tries its best to adhere to the behavior of the MPI
-# compiler wrappers included with the latest BG/P drivers.
-#
-
-#
-# This adds directories that find commands should specifically ignore
-# for cross compiles. Most of these directories are the includeand
-# lib directories for the frontend on BG/P systems. Not ignoring
-# these can cause things like FindX11 to find a frontend PPC version
-# mistakenly. We use this on BG instead of re-rooting because backend
-# libraries are typically strewn about the filesystem, and we can't
-# re-root ALL backend libraries to a single place.
-#
-set(CMAKE_SYSTEM_IGNORE_PATH
- /lib /lib64 /include
- /usr/lib /usr/lib64 /usr/include
- /usr/local/lib /usr/local/lib64 /usr/local/include
- /usr/X11/lib /usr/X11/lib64 /usr/X11/include
- /usr/lib/X11 /usr/lib64/X11 /usr/include/X11
- /usr/X11R6/lib /usr/X11R6/lib64 /usr/X11R6/include
- /usr/X11R7/lib /usr/X11R7/lib64 /usr/X11R7/include
-)
-
-#
-# Indicate that this is a unix-like system
-#
-set(UNIX 1)
-
-#
-# Library prefixes, suffixes, extra libs.
-#
-set(CMAKE_LINK_LIBRARY_SUFFIX "")
-set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # lib
-set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") # .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")
-
-#
-# BG/Q supports dynamic libraries regardless of whether we're building
-# static or dynamic *executables*.
-#
-set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
-set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
-
-#
-# For BGQ builds, we're cross compiling, but we don't want to re-root things
-# (e.g. with CMAKE_FIND_ROOT_PATH) because users may have libraries anywhere on
-# the shared filesystems, and this may lie outside the root. Instead, we set the
-# system directories so that the various system BG CNK library locations are
-# searched first. This is not the clearest thing in the world, given IBM's driver
-# layout, but this should cover all the standard ones.
-#
-macro(__BlueGeneQ_common_setup compiler_id lang)
- # Need to use the version of the comm lib compiled with the right compiler.
- set(__BlueGeneQ_commlib_dir gcc)
- if (${compiler_id} STREQUAL XL)
- set(__BlueGeneQ_commlib_dir xl)
- endif()
-
- set(CMAKE_SYSTEM_LIBRARY_PATH
- /bgsys/drivers/ppcfloor/comm/default/lib # default comm layer (used by mpi compiler wrappers)
- /bgsys/drivers/ppcfloor/comm/${__BlueGeneQ_commlib_dir}/lib # PAMI, other lower-level comm libraries
- /bgsys/drivers/ppcfloor/gnu-linux/lib # CNK python installation directory
- /bgsys/drivers/ppcfloor/gnu-linux/powerpc64-bgq-linux/lib # CNK Linux image -- standard runtime libs, pthread, etc.
- )
-
- # Add all the system include paths.
- set(CMAKE_SYSTEM_INCLUDE_PATH
- /bgsys/drivers/ppcfloor/comm/sys/include
- /bgsys/drivers/ppcfloor/
- /bgsys/drivers/ppcfloor/spi/include
- /bgsys/drivers/ppcfloor/spi/include/kernel/cnk
- /bgsys/drivers/ppcfloor/comm/${__BlueGeneQ_commlib_dir}/include
- )
-
- # Ensure that the system directories are included with the regular compilers, as users will expect this
- # to do the same thing as the MPI compilers, which add these flags.
- set(BGQ_SYSTEM_INCLUDES "")
- foreach(dir ${CMAKE_SYSTEM_INCLUDE_PATH})
- string(APPEND BGQ_SYSTEM_INCLUDES " -I${dir}")
- endforeach()
- set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${BGQ_SYSTEM_INCLUDES} <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
- set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> ${BGQ_SYSTEM_INCLUDES} <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
-
- #
- # Code below does setup for shared libraries. That this is done
- # regardless of whether the platform is static or dynamic -- you can make
- # shared libraries even if you intend to make static executables, you just
- # can't make a dynamic executable if you use the static platform file.
- #
- if (${compiler_id} STREQUAL XL)
- # Flags for XL compilers if we explicitly detected XL
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-qpic")
- set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-qmkshrobj -qnostaticlink")
- else()
- # Assume flags for GNU compilers (if the ID is GNU *or* anything else).
- set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
- set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
- endif()
-
- # Both toolchains use the GNU linker on BG/P, so these options are shared.
- set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-rpath,")
- set(CMAKE_SHARED_LIBRARY_RPATH_LINK_${lang}_FLAG "-Wl,-rpath-link,")
- set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,-soname,")
- set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-dynamic")
- set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "") # +s, flag for exe link to use shared lib
- set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") # : or empty
-
-endmacro()
-
-#
-# This macro needs to be called for dynamic library support. Unfortunately on BG,
-# We can't support both static and dynamic links in the same platform file. The
-# dynamic link platform file needs to call this explicitly to set up dynamic linking.
-#
-macro(__BlueGeneQ_setup_dynamic compiler_id lang)
- __BlueGeneQ_common_setup(${compiler_id} ${lang})
-
- if (${compiler_id} STREQUAL XL)
- set(BGQ_${lang}_DYNAMIC_EXE_FLAGS "-qnostaticlink -qnostaticlink=libgcc")
- else()
- set(BGQ_${lang}_DYNAMIC_EXE_FLAGS "-dynamic")
- endif()
-
- # For dynamic executables, need to provide special BG/Q arguments.
- set(BGQ_${lang}_DEFAULT_EXE_FLAGS
- "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
- set(CMAKE_${lang}_LINK_EXECUTABLE
- "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGQ_${lang}_DYNAMIC_EXE_FLAGS} ${BGQ_${lang}_DEFAULT_EXE_FLAGS}")
-endmacro()
-
-#
-# This macro needs to be called for static builds. Right now it just adds -Wl,-relax
-# to the link line.
-#
-macro(__BlueGeneQ_setup_static compiler_id lang)
- __BlueGeneQ_common_setup(${compiler_id} ${lang})
-
- # For static executables, use default link settings.
- set(BGQ_${lang}_DEFAULT_EXE_FLAGS
- "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
- set(CMAKE_${lang}_LINK_EXECUTABLE
- "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGQ_${lang}_DEFAULT_EXE_FLAGS}")
-endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake b/share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake
deleted file mode 100644
index ca90712..0000000
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU.cmake
+++ /dev/null
@@ -1,54 +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(__CYGWIN_COMPILER_GNU)
- return()
-endif()
-set(__CYGWIN_COMPILER_GNU 1)
-
-# TODO: Is -Wl,--enable-auto-import now always default?
-string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " -Wl,--enable-auto-import")
-set(CMAKE_CREATE_WIN32_EXE "-mwindows")
-
-set(CMAKE_GNULD_IMAGE_VERSION
- "-Wl,--major-image-version,<TARGET_VERSION_MAJOR>,--minor-image-version,<TARGET_VERSION_MINOR>")
-set(CMAKE_GENERATOR_RC windres)
-macro(__cygwin_compiler_gnu lang)
- # Binary link rules.
- set(CMAKE_${lang}_CREATE_SHARED_MODULE
- "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_MODULE_${lang}_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> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_${lang}_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>")
-
- # No -fPIC on cygwin
- 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 "")
-
- # 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()
-
- set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-all-symbols")
- # TODO: Is -Wl,--enable-auto-import now always default?
- string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,--enable-auto-import")
- set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS}")
-
- if(NOT CMAKE_RC_COMPILER_INIT)
- set(CMAKE_RC_COMPILER_INIT windres)
- endif()
-
- enable_language(RC)
-endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake b/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake
deleted file mode 100644
index 729217c..0000000
--- a/share/cmake-3.17/Modules/Platform/Darwin-Initialize.cmake
+++ /dev/null
@@ -1,236 +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.")
-
-# 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
deleted file mode 100644
index 0a4d4e1..0000000
--- a/share/cmake-3.17/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 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.17/Modules/Platform/HP-UX-HP-C.cmake b/share/cmake-3.17/Modules/Platform/HP-UX-HP-C.cmake
deleted file mode 100644
index 7610383..0000000
--- a/share/cmake-3.17/Modules/Platform/HP-UX-HP-C.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-include(Platform/HP-UX-HP)
-__hpux_compiler_hp(C)
-
-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>")
-set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> -Aa -Ae <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
diff --git a/share/cmake-3.17/Modules/Platform/Linux-como.cmake b/share/cmake-3.17/Modules/Platform/Linux-como.cmake
deleted file mode 100644
index d1550d2..0000000
--- a/share/cmake-3.17/Modules/Platform/Linux-como.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-# create a shared C++ library
-set(CMAKE_CXX_CREATE_SHARED_LIBRARY
- "<CMAKE_CXX_COMPILER> --prelink_objects <OBJECTS>"
- "<CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
-
-# create a C++ static library
-set(CMAKE_CXX_CREATE_STATIC_LIBRARY
- "<CMAKE_CXX_COMPILER> --prelink_objects <OBJECTS>"
- "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
- "<CMAKE_RANLIB> <TARGET> ")
-
-set(CMAKE_CXX_LINK_EXECUTABLE
- "<CMAKE_CXX_COMPILER> --prelink_objects <OBJECTS>"
- "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-
-set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")
-set(CMAKE_SHARED_LIBRARY_C_FLAGS "")
diff --git a/share/cmake-3.17/Modules/Platform/UnixPaths.cmake b/share/cmake-3.17/Modules/Platform/UnixPaths.cmake
deleted file mode 100644
index 97f744d..0000000
--- a/share/cmake-3.17/Modules/Platform/UnixPaths.cmake
+++ /dev/null
@@ -1,92 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# Block multiple inclusion because "CMakeCInformation.cmake" includes
-# "Platform/${CMAKE_SYSTEM_NAME}" even though the generic module
-# "CMakeSystemSpecificInformation.cmake" already included it.
-# The extra inclusion is a work-around documented next to the include()
-# call, so this can be removed when the work-around is removed.
-if(__UNIX_PATHS_INCLUDED)
- return()
-endif()
-set(__UNIX_PATHS_INCLUDED 1)
-
-set(UNIX 1)
-
-# also add the install directory of the running cmake to the search directories
-# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up
-get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
-get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
-
-# List common installation prefixes. These will be used for all
-# search types.
-list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # Standard
- /usr/local /usr /
-
- # CMake install location
- "${_CMAKE_INSTALL_DIR}"
- )
-if (NOT CMAKE_FIND_NO_INSTALL_PREFIX)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # Project install destination.
- "${CMAKE_INSTALL_PREFIX}"
- )
- if(CMAKE_STAGING_PREFIX)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # User-supplied staging prefix.
- "${CMAKE_STAGING_PREFIX}"
- )
- endif()
-endif()
-
-# Non "standard" but common install prefixes
-list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- /usr/X11R6
- /usr/pkg
- /opt
- )
-
-# List common include file locations not under the common prefixes.
-list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
- # X11
- /usr/include/X11
- )
-
-list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- # X11
- /usr/lib/X11
- )
-
-list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
- )
-
-if(CMAKE_SYSROOT_COMPILE)
- set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}")
-else()
- set(_cmake_sysroot_compile "${CMAKE_SYSROOT}")
-endif()
-
-# Default per-language values. These may be later replaced after
-# parsing the implicit directory information from compiler output.
-set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
- ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
- "${_cmake_sysroot_compile}/usr/include"
- )
-set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT
- ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
- "${_cmake_sysroot_compile}/usr/include"
- )
-set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT
- ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES}
- "${_cmake_sysroot_compile}/usr/include"
- )
-
-unset(_cmake_sysroot_compile)
-
-# Enable use of lib32 and lib64 search path variants by default.
-set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS TRUE)
-set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)
-set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS TRUE)
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang.cmake b/share/cmake-3.17/Modules/Platform/Windows-Clang.cmake
deleted file mode 100644
index 87ddfcd..0000000
--- a/share/cmake-3.17/Modules/Platform/Windows-Clang.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.
-
-
-# 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.17/Modules/Platform/Windows-GNU.cmake b/share/cmake-3.17/Modules/Platform/Windows-GNU.cmake
deleted file mode 100644
index 38a8cf4..0000000
--- a/share/cmake-3.17/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.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.17/Modules/Platform/Windows-Intel.cmake b/share/cmake-3.17/Modules/Platform/Windows-Intel.cmake
deleted file mode 100644
index 96b1760..0000000
--- a/share/cmake-3.17/Modules/Platform/Windows-Intel.cmake
+++ /dev/null
@@ -1,18 +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_INTEL)
- return()
-endif()
-set(__WINDOWS_INTEL 1)
-
-include(Platform/Windows-MSVC)
-macro(__windows_compiler_intel lang)
- __windows_compiler_msvc(${lang})
- string(REPLACE "<CMAKE_LINKER> /lib" "xilib" CMAKE_${lang}_CREATE_STATIC_LIBRARY "${CMAKE_${lang}_CREATE_STATIC_LIBRARY}")
- foreach(rule CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE)
- string(REPLACE "<CMAKE_LINKER>" "xilink" CMAKE_${lang}_${rule} "${CMAKE_${lang}_${rule}}")
- endforeach()
-endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake b/share/cmake-3.17/Modules/Platform/Windows-MSVC.cmake
deleted file mode 100644
index e1d6733..0000000
--- a/share/cmake-3.17/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")
- 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
deleted file mode 100644
index f809094..0000000
--- a/share/cmake-3.17/Modules/Platform/Windows-NVIDIA-CUDA.cmake
+++ /dev/null
@@ -1,93 +0,0 @@
-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.17/Modules/Platform/Windows-OpenWatcom.cmake b/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom.cmake
deleted file mode 100644
index 76cd28b..0000000
--- a/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom.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.
-
-
-# This module is shared by multiple languages; use include blocker.
-if(__WINDOWS_OPENWATCOM)
- return()
-endif()
-set(__WINDOWS_OPENWATCOM 1)
-
-set(CMAKE_LIBRARY_PATH_FLAG "libpath ")
-set(CMAKE_LINK_LIBRARY_FLAG "library ")
-set(CMAKE_LINK_LIBRARY_FILE_FLAG "library ")
-
-if(CMAKE_VERBOSE_MAKEFILE)
- set(CMAKE_WCL_QUIET)
- set(CMAKE_WLINK_QUIET)
- set(CMAKE_LIB_QUIET)
-else()
- set(CMAKE_WCL_QUIET "-zq")
- set(CMAKE_WLINK_QUIET "option quiet")
- set(CMAKE_LIB_QUIET "-q")
-endif()
-
-string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ")
-set(CMAKE_CREATE_WIN32_EXE "system nt_win" )
-set(CMAKE_CREATE_CONSOLE_EXE "system nt" )
-string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system nt_dll")
-string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system nt_dll")
-foreach(type SHARED MODULE EXE)
- string(APPEND CMAKE_${type}_LINKER_FLAGS_DEBUG_INIT " debug all opt map")
- string(APPEND CMAKE_${type}_LINKER_FLAGS_RELWITHDEBINFO_INIT " debug all opt map")
-endforeach()
-
-set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
-set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
-
-set(CMAKE_RC_COMPILER "rc" )
-
-set(CMAKE_BUILD_TYPE_INIT Debug)
-
-# single/multi-threaded /-bm
-# static/DLL run-time libraries /-br
-# default is setup for multi-threaded + DLL run-time libraries
-string(APPEND CMAKE_C_FLAGS_INIT " -bt=nt -w3 -dWIN32 -br -bm")
-string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=nt -xs -w3 -dWIN32 -br -bm")
-foreach(lang C CXX)
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -d2")
- string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -s -os -d0 -dNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -s -ot -d0 -dNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -s -ot -d1 -dNDEBUG")
-endforeach()
-
-foreach(type CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE)
- set(CMAKE_C_${type}_USE_WATCOM_QUOTE 1)
- set(CMAKE_CXX_${type}_USE_WATCOM_QUOTE 1)
-endforeach()
-
-set(CMAKE_C_CREATE_IMPORT_LIBRARY
- "wlib -c -q -n -b <TARGET_IMPLIB> +<TARGET_QUOTED>")
-set(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY})
-
-set(CMAKE_C_LINK_EXECUTABLE
- "wlink ${CMAKE_START_TEMP_FILE} ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
-
-
-set(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE})
-
-# compile a C++ file into an object file
-set(CMAKE_CXX_COMPILE_OBJECT
- "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<OBJECT> -c -cc++ <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-# compile a C file into an object file
-set(CMAKE_C_COMPILE_OBJECT
- "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<OBJECT> -c -cc <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-# preprocess a C source file
-set(CMAKE_C_CREATE_PREPROCESSED_SOURCE
- "<CMAKE_C_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<PREPROCESSED_SOURCE> -pl -cc <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-# preprocess a C++ source file
-set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE
- "<CMAKE_CXX_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<PREPROCESSED_SOURCE> -pl -cc++ <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-set(CMAKE_CXX_CREATE_SHARED_LIBRARY
- "wlink ${CMAKE_START_TEMP_FILE} ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> option implib=<TARGET_IMPLIB> file {<OBJECTS>} <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
-string(REPLACE " option implib=<TARGET_IMPLIB>" ""
- CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
-
-# create a C shared library
-set(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
-
-# create a C shared module
-set(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_MODULE})
-
-# create a C++ static library
-set(CMAKE_CXX_CREATE_STATIC_LIBRARY "wlib ${CMAKE_LIB_QUIET} -c -n -b <TARGET_QUOTED> <LINK_FLAGS> <OBJECTS> ")
-
-# create a C static library
-set(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY})
-
-if(NOT _CMAKE_WATCOM_VERSION)
- set(_CMAKE_WATCOM_VERSION 1)
- if(CMAKE_C_COMPILER_VERSION)
- set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
- set(_compiler_id ${CMAKE_C_COMPILER_ID})
- else()
- set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
- set(_compiler_id ${CMAKE_CXX_COMPILER_ID})
- endif()
- set(WATCOM16)
- set(WATCOM17)
- set(WATCOM18)
- set(WATCOM19)
- if("${_compiler_id}" STREQUAL "OpenWatcom")
- if("${_compiler_version}" VERSION_LESS 1.7)
- set(WATCOM16 1)
- endif()
- if("${_compiler_version}" VERSION_EQUAL 1.7)
- set(WATCOM17 1)
- endif()
- if("${_compiler_version}" VERSION_EQUAL 1.8)
- set(WATCOM18 1)
- endif()
- if("${_compiler_version}" VERSION_EQUAL 1.9)
- set(WATCOM19 1)
- endif()
- endif()
-endif()
diff --git a/share/cmake-3.17/Modules/Platform/Windows-df.cmake b/share/cmake-3.17/Modules/Platform/Windows-df.cmake
deleted file mode 100644
index f948914..0000000
--- a/share/cmake-3.17/Modules/Platform/Windows-df.cmake
+++ /dev/null
@@ -1,60 +0,0 @@
-# compiler support for fortran CVF compiler on windows
-
-set(CMAKE_WINDOWS_OBJECT_PATH 1)
-set(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:")
-set(CMAKE_LINK_LIBRARY_FLAG "")
-set(WIN32 1)
-if(CMAKE_VERBOSE_MAKEFILE)
- set(CMAKE_CL_NOLOGO)
-else()
- set(CMAKE_CL_NOLOGO "/nologo")
-endif()
-
-set(CMAKE_Fortran_MODDIR_FLAG "-module:")
-
-set(CMAKE_Fortran_CREATE_SHARED_LIBRARY
- "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out:<TARGET> /dll <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
-
-set(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY})
-
-# create a C++ static library
-set(CMAKE_Fortran_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
-
-# compile a C++ file into an object file
-set(CMAKE_Fortran_COMPILE_OBJECT
- "<CMAKE_Fortran_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /object:<OBJECT> <FLAGS> /compile_only <SOURCE>${CMAKE_END_TEMP_FILE}")
-
-set(CMAKE_Fortran_LINK_EXECUTABLE
- "<CMAKE_Fortran_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /exe:<TARGET> <OBJECTS> /link <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
-
-set(CMAKE_CREATE_WIN32_EXE /winapp)
-set(CMAKE_CREATE_CONSOLE_EXE )
-
-# does the compiler support pdbtype and is it the newer compiler
-
-set(CMAKE_BUILD_TYPE_INIT Debug)
-set (CMAKE_Fortran_FLAGS_INIT "")
-set (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full")
-set (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/Optimize:2 /Define:NDEBUG")
-set (CMAKE_Fortran_FLAGS_RELEASE_INIT "/Optimize:1 /Define:NDEBUG")
-set (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/Optimize:1 /debug:full /Define:NDEBUG")
-
-set (CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib")
-
-# executable linker flags
-set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
-set (CMAKE_EXE_LINKER_FLAGS_INIT " /INCREMENTAL:YES")
-if (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
- set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept")
- set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept")
-else ()
- set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug")
- set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug")
-endif ()
-
-set (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
-set (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
-set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})
-set (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT})
-set (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT})
-set (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPaths.cmake b/share/cmake-3.17/Modules/Platform/WindowsPaths.cmake
deleted file mode 100644
index 71cc609..0000000
--- a/share/cmake-3.17/Modules/Platform/WindowsPaths.cmake
+++ /dev/null
@@ -1,92 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-
-# Block multiple inclusion because "CMakeCInformation.cmake" includes
-# "Platform/${CMAKE_SYSTEM_NAME}" even though the generic module
-# "CMakeSystemSpecificInformation.cmake" already included it.
-# The extra inclusion is a work-around documented next to the include()
-# call, so this can be removed when the work-around is removed.
-if(__WINDOWS_PATHS_INCLUDED)
- return()
-endif()
-set(__WINDOWS_PATHS_INCLUDED 1)
-
-# Add the program-files folder(s) to the list of installation
-# prefixes.
-#
-# Windows 64-bit Binary:
-# ENV{ProgramFiles(x86)} = [C:\Program Files (x86)]
-# ENV{ProgramFiles} = [C:\Program Files]
-# ENV{ProgramW6432} = [C:\Program Files] or <not set>
-#
-# Windows 32-bit Binary on 64-bit Windows:
-# ENV{ProgramFiles(x86)} = [C:\Program Files (x86)]
-# ENV{ProgramFiles} = [C:\Program Files (x86)]
-# ENV{ProgramW6432} = [C:\Program Files]
-set(_programfiles "")
-foreach(v "ProgramW6432" "ProgramFiles" "ProgramFiles(x86)")
- if(DEFINED "ENV{${v}}")
- file(TO_CMAKE_PATH "$ENV{${v}}" _env_programfiles)
- list(APPEND _programfiles "${_env_programfiles}")
- unset(_env_programfiles)
- endif()
-endforeach()
-if(DEFINED "ENV{SystemDrive}")
- foreach(d "Program Files" "Program Files (x86)")
- if(EXISTS "$ENV{SystemDrive}/${d}")
- list(APPEND _programfiles "$ENV{SystemDrive}/${d}")
- endif()
- endforeach()
-endif()
-if(_programfiles)
- list(REMOVE_DUPLICATES _programfiles)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${_programfiles})
-endif()
-unset(_programfiles)
-
-# Add the CMake install location.
-get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
-get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
-list(APPEND CMAKE_SYSTEM_PREFIX_PATH "${_CMAKE_INSTALL_DIR}")
-
-if (NOT CMAKE_FIND_NO_INSTALL_PREFIX)
- # Add other locations.
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # Project install destination.
- "${CMAKE_INSTALL_PREFIX}"
- )
- if (CMAKE_STAGING_PREFIX)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH
- # User-supplied staging prefix.
- "${CMAKE_STAGING_PREFIX}"
- )
- endif()
-endif()
-
-if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
- # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
-endif()
-
-list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
- )
-
-# mingw can also link against dlls which can also be in /bin, so list this too
-if (NOT CMAKE_FIND_NO_INSTALL_PREFIX)
- list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- "${CMAKE_INSTALL_PREFIX}/bin"
- )
- if (CMAKE_STAGING_PREFIX)
- list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- "${CMAKE_STAGING_PREFIX}/bin"
- )
- endif()
-endif()
-list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
- "${_CMAKE_INSTALL_DIR}/bin"
- /bin
- )
-
-list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
- )
diff --git a/share/cmake-3.17/Modules/Platform/eCos.cmake b/share/cmake-3.17/Modules/Platform/eCos.cmake
deleted file mode 100644
index e1279ef..0000000
--- a/share/cmake-3.17/Modules/Platform/eCos.cmake
+++ /dev/null
@@ -1,65 +0,0 @@
-# support for eCos http://ecos.sourceware.org
-
-# Guard against multiple inclusion, which e.g. leads to multiple calls to add_definition() #12987
-if(__ECOS_CMAKE_INCLUDED)
- return()
-endif()
-set(__ECOS_CMAKE_INCLUDED TRUE)
-
-set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic
-set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -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_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 ".a") # .a
-set(CMAKE_EXECUTABLE_SUFFIX ".elf") # same suffix as if built using UseEcos.cmake
-set(CMAKE_DL_LIBS "" )
-
-set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
-set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
-
-
-include(Platform/UnixPaths)
-
-# eCos can be built only with gcc
-get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
-if(CMAKE_C_COMPILER AND NOT CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT _IN_TC)
- message(FATAL_ERROR "GNU gcc is required for eCos")
-endif()
-if(CMAKE_CXX_COMPILER AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" AND NOT _IN_TC)
- message(FATAL_ERROR "GNU g++ is required for eCos")
-endif()
-
-# find eCos system files
-find_path(ECOS_SYSTEM_CONFIG_HEADER_PATH NAMES pkgconf/system.h)
-find_library(ECOS_SYSTEM_TARGET_LIBRARY NAMES libtarget.a)
-
-if(NOT ECOS_SYSTEM_CONFIG_HEADER_PATH)
- message(FATAL_ERROR "Could not find eCos pkgconf/system.h. Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.")
-endif()
-
-if(NOT ECOS_SYSTEM_TARGET_LIBRARY)
- message(FATAL_ERROR "Could not find eCos \"libtarget.a\". Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.")
-endif()
-
-get_filename_component(ECOS_LIBTARGET_DIRECTORY "${ECOS_SYSTEM_TARGET_LIBRARY}" PATH)
-include_directories(${ECOS_SYSTEM_CONFIG_HEADER_PATH})
-add_definitions(-D__ECOS__=1 -D__ECOS=1)
-
-# special link commands for eCos executables
-set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld <LINK_LIBRARIES>")
-set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld <LINK_LIBRARIES>")
-
-# eCos doesn't support shared libs
-set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
-
-set(CMAKE_CXX_LINK_SHARED_LIBRARY )
-set(CMAKE_CXX_LINK_MODULE_LIBRARY )
-set(CMAKE_C_LINK_SHARED_LIBRARY )
-set(CMAKE_C_LINK_MODULE_LIBRARY )
-
diff --git a/share/cmake-3.17/Modules/Platform/gas.cmake b/share/cmake-3.17/Modules/Platform/gas.cmake
deleted file mode 100644
index 7c659f2..0000000
--- a/share/cmake-3.17/Modules/Platform/gas.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-if(UNIX)
- set(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .o)
-else()
- set(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .obj)
-endif()
-
-set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <INCLUDES> <FLAGS> -o <OBJECT> <SOURCE>")
-
-set(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY
- "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
- "<CMAKE_RANLIB> <TARGET> ")
-
-set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE
- "<CMAKE_LINKER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
-
-# to be done
-set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY)
-set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE)
-
diff --git a/share/cmake-3.17/Modules/Squish4RunTestCase.bat b/share/cmake-3.17/Modules/Squish4RunTestCase.bat
deleted file mode 100755
index c658208..0000000
--- a/share/cmake-3.17/Modules/Squish4RunTestCase.bat
+++ /dev/null
@@ -1,24 +0,0 @@
-set SQUISHSERVER=%1
-set SQUISHRUNNER=%2
-set TESTSUITE=%3
-set TESTCASE=%4
-set AUT=%5
-set AUTDIR=%6
-set SETTINGSGROUP=%7
-
-%SQUISHSERVER% --stop
-
-echo "Adding AUT... %SQUISHSERVER% --config addAUT %AUT% %AUTDIR%"
-%SQUISHSERVER% --config addAUT "%AUT%" "%AUTDIR%"
-
-echo "Starting the squish server... %SQUISHSERVER%"
-start /B %SQUISHSERVER%
-
-echo "Running the test case...%SQUISHRUNNER% --testsuite %TESTSUITE% --testcase %TESTCASE%"
-%SQUISHRUNNER% --testsuite "%TESTSUITE%" --testcase "%TESTCASE%"
-set returnValue=%ERRORLEVEL%
-
-echo "Stopping the squish server... %SQUISHSERVER% --stop"
-%SQUISHSERVER% --stop
-
-exit /B %returnValue%
diff --git a/share/cmake-3.17/Modules/Squish4RunTestCase.sh b/share/cmake-3.17/Modules/Squish4RunTestCase.sh
deleted file mode 100644
index 39a3907..0000000
--- a/share/cmake-3.17/Modules/Squish4RunTestCase.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-SQUISHSERVER=$1
-SQUISHRUNNER=$2
-TESTSUITE=$3
-TESTCASE=$4
-AUT=$5
-AUTDIR=$6
-SETTINGSGROUP=$7
-
-$SQUISHSERVER --stop > /dev/null 2>&1
-
-echo "Adding AUT... $SQUISHSERVER --settingsGroup $SETTINGSGROUP --config addAUT $AUT $AUTDIR"
-$SQUISHSERVER --settingsGroup "$SETTINGSGROUP" --config addAUT "$AUT" "$AUTDIR" || exit 255
-# sleep 1
-
-echo "Starting the squish server... $SQUISHSERVER --daemon"
-$SQUISHSERVER --daemon || exit 255
-# sleep 2
-
-echo "Running the test case...$SQUISHRUNNER --settingsGroup $SETTINGSGROUP --testsuite $TESTSUITE --testcase $TESTCASE"
-$SQUISHRUNNER --settingsGroup "$SETTINGSGROUP" --testsuite "$TESTSUITE" --testcase "$TESTCASE"
-returnValue=$?
-
-echo "Stopping the squish server... $SQUISHSERVER --stop"
-$SQUISHSERVER --stop
-
-exit $returnValue
diff --git a/share/cmake-3.17/Modules/SquishTestScript.cmake b/share/cmake-3.17/Modules/SquishTestScript.cmake
deleted file mode 100644
index 2a80be5..0000000
--- a/share/cmake-3.17/Modules/SquishTestScript.cmake
+++ /dev/null
@@ -1,86 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-SquishTestScript
-----------------
-
-
-
-
-
-This script launches a GUI test using Squish. You should not call the
-script directly; instead, you should access it via the SQUISH_ADD_TEST
-macro that is defined in FindSquish.cmake.
-
-This script starts the Squish server, launches the test on the client,
-and finally stops the squish server. If any of these steps fail
-(including if the tests do not pass) then a fatal error is raised.
-#]=======================================================================]
-
-# print out the variable that we are using
-message(STATUS "squish_aut='${squish_aut}'")
-message(STATUS "squish_aut_dir='${squish_aut_dir}'")
-
-message(STATUS "squish_version='${squish_version}'")
-message(STATUS "squish_server_executable='${squish_server_executable}'")
-message(STATUS "squish_client_executable='${squish_client_executable}'")
-message(STATUS "squish_libqtdir ='${squish_libqtdir}'")
-message(STATUS "squish_test_suite='${squish_test_suite}'")
-message(STATUS "squish_test_case='${squish_test_case}'")
-message(STATUS "squish_wrapper='${squish_wrapper}'")
-message(STATUS "squish_env_vars='${squish_env_vars}'")
-message(STATUS "squish_module_dir='${squish_module_dir}'")
-message(STATUS "squish_settingsgroup='${squish_settingsgroup}'")
-message(STATUS "squish_pre_command='${squish_pre_command}'")
-message(STATUS "squish_post_command='${squish_post_command}'")
-
-# parse environment variables
-foreach(i ${squish_env_vars})
- message(STATUS "parsing env var key/value pair ${i}")
- string(REGEX MATCH "([^=]*)=(.*)" squish_env_name ${i})
- message(STATUS "key=${CMAKE_MATCH_1}")
- message(STATUS "value=${CMAKE_MATCH_2}")
- set ( ENV{${CMAKE_MATCH_1}} ${CMAKE_MATCH_2} )
-endforeach()
-
-if (QT4_INSTALLED)
- # record Qt lib directory
- set ( ENV{${SQUISH_LIBQTDIR}} ${squish_libqtdir} )
-endif ()
-
-if(squish_pre_command)
- message(STATUS "Executing pre command: ${squish_pre_command}")
- execute_process(COMMAND "${squish_pre_command}")
-endif()
-
-# run the test
-if("${squish_version}" STREQUAL "4")
- if (WIN32)
- execute_process(COMMAND ${squish_module_dir}/Squish4RunTestCase.bat ${squish_server_executable} ${squish_client_executable} ${squish_test_suite} ${squish_test_case} ${squish_aut} ${squish_aut_dir} ${squish_settingsgroup}
- RESULT_VARIABLE test_rv )
- elseif(UNIX)
- execute_process(COMMAND ${squish_module_dir}/Squish4RunTestCase.sh ${squish_server_executable} ${squish_client_executable} ${squish_test_suite} ${squish_test_case} ${squish_aut} ${squish_aut_dir} ${squish_settingsgroup}
- RESULT_VARIABLE test_rv )
- endif ()
-
-else()
-
- if (WIN32)
- execute_process(COMMAND ${squish_module_dir}/SquishRunTestCase.bat ${squish_server_executable} ${squish_client_executable} ${squish_test_case} ${squish_wrapper} ${squish_aut}
- RESULT_VARIABLE test_rv )
- elseif(UNIX)
- execute_process(COMMAND ${squish_module_dir}/SquishRunTestCase.sh ${squish_server_executable} ${squish_client_executable} ${squish_test_case} ${squish_wrapper} ${squish_aut}
- RESULT_VARIABLE test_rv )
- endif ()
-endif()
-
-if(squish_post_command)
- message(STATUS "Executing post command: ${squish_post_command}")
- execute_process(COMMAND "${squish_post_command}")
-endif()
-
-# check for an error with running the test
-if(NOT "${test_rv}" STREQUAL "0")
- message(FATAL_ERROR "Error running Squish test")
-endif()
diff --git a/share/cmake-3.17/Modules/UseEcos.cmake b/share/cmake-3.17/Modules/UseEcos.cmake
deleted file mode 100644
index 60324b1..0000000
--- a/share/cmake-3.17/Modules/UseEcos.cmake
+++ /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.
-
-#[=======================================================================[.rst:
-UseEcos
--------
-
-This module defines variables and macros required to build eCos application.
-
-This file contains the following macros:
-ECOS_ADD_INCLUDE_DIRECTORIES() - add the eCos include dirs
-ECOS_ADD_EXECUTABLE(name source1 ... sourceN ) - create an eCos
-executable ECOS_ADJUST_DIRECTORY(VAR source1 ... sourceN ) - adjusts
-the path of the source files and puts the result into VAR
-
-Macros for selecting the toolchain: ECOS_USE_ARM_ELF_TOOLS() - enable
-the ARM ELF toolchain for the directory where it is called
-ECOS_USE_I386_ELF_TOOLS() - enable the i386 ELF toolchain for the
-directory where it is called ECOS_USE_PPC_EABI_TOOLS() - enable the
-PowerPC toolchain for the directory where it is called
-
-It contains the following variables: ECOS_DEFINITIONS
-ECOSCONFIG_EXECUTABLE ECOS_CONFIG_FILE - defaults to ecos.ecc, if your
-eCos configuration file has a different name, adjust this variable for
-internal use only:
-
-::
-
- ECOS_ADD_TARGET_LIB
-#]=======================================================================]
-
-# first check that ecosconfig is available
-find_program(ECOSCONFIG_EXECUTABLE NAMES ecosconfig)
-if(NOT ECOSCONFIG_EXECUTABLE)
- message(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.")
-else()
- message(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}")
-endif()
-
-# check that ECOS_REPOSITORY is set correctly
-if (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db)
- message(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db")
-else ()
- message(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}")
-endif ()
-
-# check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work
-find_package(Tclsh)
-if (NOT TCL_TCLSH)
- message(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.")
-else ()
- message(STATUS "tlcsh found: ${TCL_TCLSH}")
-endif ()
-
-#add the globale include-diretories
-#usage: ECOS_ADD_INCLUDE_DIRECTORIES()
-macro(ECOS_ADD_INCLUDE_DIRECTORIES)
-#check for ProjectSources.txt one level higher
- if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt)
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../)
- else ()
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/)
- endif ()
-
-#the ecos include directory
- include_directories(${CMAKE_CURRENT_BINARY_DIR}/ecos/install/include/)
-
-endmacro()
-
-
-#we want to compile for the xscale processor, in this case the following macro has to be called
-#usage: ECOS_USE_ARM_ELF_TOOLS()
-macro (ECOS_USE_ARM_ELF_TOOLS)
- set(CMAKE_CXX_COMPILER "arm-elf-c++")
- set(CMAKE_COMPILER_IS_GNUCXX 1)
- set(CMAKE_C_COMPILER "arm-elf-gcc")
- set(CMAKE_AR "arm-elf-ar")
- set(CMAKE_RANLIB "arm-elf-ranlib")
-#for linking
- set(ECOS_LD_MCPU "-mcpu=xscale")
-#for compiling
- add_definitions(-mcpu=xscale -mapcs-frame)
-#for the obj-tools
- set(ECOS_ARCH_PREFIX "arm-elf-")
-endmacro ()
-
-#usage: ECOS_USE_PPC_EABI_TOOLS()
-macro (ECOS_USE_PPC_EABI_TOOLS)
- set(CMAKE_CXX_COMPILER "powerpc-eabi-c++")
- set(CMAKE_COMPILER_IS_GNUCXX 1)
- set(CMAKE_C_COMPILER "powerpc-eabi-gcc")
- set(CMAKE_AR "powerpc-eabi-ar")
- set(CMAKE_RANLIB "powerpc-eabi-ranlib")
-#for linking
- set(ECOS_LD_MCPU "")
-#for compiling
- add_definitions()
-#for the obj-tools
- set(ECOS_ARCH_PREFIX "powerpc-eabi-")
-endmacro ()
-
-#usage: ECOS_USE_I386_ELF_TOOLS()
-macro (ECOS_USE_I386_ELF_TOOLS)
- set(CMAKE_CXX_COMPILER "i386-elf-c++")
- set(CMAKE_COMPILER_IS_GNUCXX 1)
- set(CMAKE_C_COMPILER "i386-elf-gcc")
- set(CMAKE_AR "i386-elf-ar")
- set(CMAKE_RANLIB "i386-elf-ranlib")
-#for linking
- set(ECOS_LD_MCPU "")
-#for compiling
- add_definitions()
-#for the obj-tools
- set(ECOS_ARCH_PREFIX "i386-elf-")
-endmacro ()
-
-
-#since the actual sources are located one level upwards
-#a "../" has to be prepended in front of every source file
-#call the following macro to achieve this, the first parameter
-#is the name of the new list of source files with adjusted paths,
-#followed by all source files
-#usage: ECOS_ADJUST_DIRECTORY(adjusted_SRCS ${my_srcs})
-macro(ECOS_ADJUST_DIRECTORY _target_FILES )
- foreach (_current_FILE ${ARGN})
- get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
- if (NOT ${_abs_FILE} STREQUAL ${_current_FILE})
- get_filename_component(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE)
- endif ()
- list(APPEND ${_target_FILES} ${_abs_FILE})
- endforeach ()
-endmacro()
-
-# the default ecos config file name
-# maybe in future also out-of-source builds may be possible
-set(ECOS_CONFIG_FILE ecos.ecc)
-
-#creates the dependency from all source files on the ecos target.ld,
-#adds the command for compiling ecos
-macro(ECOS_ADD_TARGET_LIB)
-# when building out-of-source, create the ecos/ subdir
- if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos)
- file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ecos)
- endif()
-
-#sources depend on target.ld
- set_source_files_properties(
- ${ARGN}
- PROPERTIES
- OBJECT_DEPENDS
- ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
- )
-
- add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
- COMMAND sh -c \"make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos || exit -1\; if [ -e ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld ] \; then touch ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld\; fi\"
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
- )
-
- add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
- COMMAND sh -c \" cd ${CMAKE_CURRENT_BINARY_DIR}/ecos\; ${ECOSCONFIG_EXECUTABLE} --config=${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} tree || exit -1\;\"
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE}
- )
-
- add_custom_target( ecos make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos/ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile )
-endmacro()
-
-# get the directory of the current file, used later on in the file
-get_filename_component( ECOS_CMAKE_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
-
-#macro for creating an executable ecos application
-#the first parameter is the name of the executable,
-#the second is the list of all source files (where the path
-#has been adjusted beforehand by calling ECOS_ADJUST_DIRECTORY()
-#usage: ECOS_ADD_EXECUTABLE(my_app ${adjusted_SRCS})
-macro(ECOS_ADD_EXECUTABLE _exe_NAME )
- #definitions, valid for all ecos projects
- #the optimization and "-g" for debugging has to be enabled
- #in the project-specific CMakeLists.txt
- add_definitions(-D__ECOS__=1 -D__ECOS=1)
- set(ECOS_DEFINITIONS -Wall -Wno-long-long -pipe -fno-builtin)
-
-#the executable depends on ecos target.ld
- ECOS_ADD_TARGET_LIB(${ARGN})
-
-# when using nmake makefiles, the custom buildtype suppresses the default cl.exe flags
-# and the rules for creating objects are adjusted for gcc
- set(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD)
- set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
- set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
-# special link commands for ecos-executables
- set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
- set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
-# some strict compiler flags
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions")
-
- add_executable(${_exe_NAME} ${ARGN})
- set_target_properties(${_exe_NAME} PROPERTIES SUFFIX ".elf")
-
-#create a binary file
- add_custom_command(
- TARGET ${_exe_NAME}
- POST_BUILD
- COMMAND ${ECOS_ARCH_PREFIX}objcopy
- ARGS -O binary ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin
- )
-
-#and an srec file
- add_custom_command(
- TARGET ${_exe_NAME}
- POST_BUILD
- COMMAND ${ECOS_ARCH_PREFIX}objcopy
- ARGS -O srec ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec
- )
-
-#add the created files to the clean-files
- set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES
- "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin"
- "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec"
- "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst")
-
- add_custom_target(ecosclean ${CMAKE_COMMAND} -DECOS_DIR=${CMAKE_CURRENT_BINARY_DIR}/ecos/ -P ${ECOS_CMAKE_MODULE_DIR}/ecos_clean.cmake )
- add_custom_target(normalclean ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
- add_dependencies (ecosclean normalclean)
-
-
- add_custom_target( listing
- COMMAND echo -e \"\\n--- Symbols sorted by address ---\\n\" > ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
- COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -n ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
- COMMAND echo -e \"\\n--- Symbols sorted by size ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
- COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -r --size-sort ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
- COMMAND echo -e \"\\n--- Full assembly listing ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
- COMMAND ${ECOS_ARCH_PREFIX}objdump -S -x -d -C ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst )
-
-endmacro()
-
diff --git a/share/cmake-3.17/Modules/UseJava.cmake b/share/cmake-3.17/Modules/UseJava.cmake
deleted file mode 100644
index b668b9e..0000000
--- a/share/cmake-3.17/Modules/UseJava.cmake
+++ /dev/null
@@ -1,1425 +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_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.17/Modules/UseSWIG.cmake b/share/cmake-3.17/Modules/UseSWIG.cmake
deleted file mode 100644
index 78522da..0000000
--- a/share/cmake-3.17/Modules/UseSWIG.cmake
+++ /dev/null
@@ -1,837 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-UseSWIG
--------
-
-This file provides support for ``SWIG``. It is assumed that :module:`FindSWIG`
-module has already been loaded.
-
-Defines the following command for use with ``SWIG``:
-
-.. command:: swig_add_library
-
- Define swig module with given name and specified language::
-
- swig_add_library(<name>
- [TYPE <SHARED|MODULE|STATIC|USE_BUILD_SHARED_LIBS>]
- LANGUAGE <language>
- [NO_PROXY]
- [OUTPUT_DIR <directory>]
- [OUTFILE_DIR <directory>]
- SOURCES <file>...
- )
-
- Targets created with the ``swig_add_library`` command have the same
- capabilities as targets created with the :command:`add_library` command, so
- those targets can be used with any command expecting a target (e.g.
- :command:`target_link_libraries`).
-
- .. note::
-
- This command creates a target with the specified ``<name>`` when
- policy :policy:`CMP0078` is set to ``NEW``. Otherwise, the legacy
- behavior will choose a different target name and store it in the
- ``SWIG_MODULE_<name>_REAL_NAME`` variable.
-
- .. note::
-
- For multi-config generators, this module does not support
- configuration-specific files generated by ``SWIG``. All build
- configurations must result in the same generated source file.
-
- ``TYPE``
- ``SHARED``, ``MODULE`` and ``STATIC`` have the same semantic as for the
- :command:`add_library` command. If ``USE_BUILD_SHARED_LIBS`` is specified,
- the library type will be ``STATIC`` or ``SHARED`` based on whether the
- current value of the :variable:`BUILD_SHARED_LIBS` variable is ``ON``. If
- no type is specified, ``MODULE`` will be used.
-
- ``LANGUAGE``
- Specify the target language.
-
- ``NO_PROXY``
- Prevent the generation of the wrapper layer (swig ``-noproxy`` option).
-
- ``OUTPUT_DIR``
- Specify where to write the language specific files (swig ``-outdir``
- option). If not given, the ``CMAKE_SWIG_OUTDIR`` variable will be used.
- If neither is specified, the default depends on the value of the
- ``UseSWIG_MODULE_VERSION`` variable as follows:
-
- * If ``UseSWIG_MODULE_VERSION`` is 1 or is undefined, output is written to
- the :variable:`CMAKE_CURRENT_BINARY_DIR` directory.
- * If ``UseSWIG_MODULE_VERSION`` is 2, a dedicated directory will be used.
- The path of this directory can be retrieved from the
- ``SWIG_SUPPORT_FILES_DIRECTORY`` target property.
-
- ``OUTFILE_DIR``
- Specify an output directory name where the generated source file will be
- placed (swig -o option). If not specified, the ``SWIG_OUTFILE_DIR`` variable
- will be used. If neither is specified, ``OUTPUT_DIR`` or
- ``CMAKE_SWIG_OUTDIR`` is used instead.
-
- ``SOURCES``
- List of sources for the library. Files with extension ``.i`` will be
- identified as sources for the ``SWIG`` tool. Other files will be handled in
- the standard way. This behavior can be overriden by specifying the variable
- ``SWIG_SOURCE_FILE_EXTENSIONS``.
-
- .. note::
-
- If ``UseSWIG_MODULE_VERSION`` is set to 2, it is **strongly** recommended
- to use a dedicated directory unique to the target when either the
- ``OUTPUT_DIR`` option or the ``CMAKE_SWIG_OUTDIR`` variable are specified.
- The output directory contents are erased as part of the target build, so
- to prevent interference between targets or losing other important files,
- each target should have its own dedicated output directory.
-
-.. command:: swig_link_libraries
-
- Link libraries to swig module::
-
- swig_link_libraries(<name> <item>...)
-
- This command has same capabilities as :command:`target_link_libraries`
- command.
-
- .. note::
-
- If variable ``UseSWIG_TARGET_NAME_PREFERENCE`` is set to ``STANDARD``, this
- command is deprecated and :command:`target_link_libraries` command must be
- used instead.
-
-Source file properties on module files **must** be set before the invocation
-of the ``swig_add_library`` command to specify special behavior of SWIG and
-ensure generated files will receive the required settings.
-
-``CPLUSPLUS``
- Call SWIG in c++ mode. For example:
-
- .. code-block:: cmake
-
- set_property(SOURCE mymod.i PROPERTY CPLUSPLUS ON)
- swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
-
-``INCLUDE_DIRECTORIES``, ``COMPILE_DEFINITIONS`` and ``COMPILE_OPTIONS``
- Add custom flags to SWIG compiler and have same semantic as properties
- :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and
- :prop_sf:`COMPILE_OPTIONS`.
-
-``USE_TARGET_INCLUDE_DIRECTORIES``
- If set to ``TRUE``, contents of target property
- :prop_tgt:`INCLUDE_DIRECTORIES` will be forwarded to ``SWIG`` compiler.
- If set to ``FALSE`` target property :prop_tgt:`INCLUDE_DIRECTORIES` will be
- ignored. If not set, target property ``SWIG_USE_TARGET_INCLUDE_DIRECTORIES``
- will be considered.
-
-``GENERATED_INCLUDE_DIRECTORIES``, ``GENERATED_COMPILE_DEFINITIONS`` and ``GENERATED_COMPILE_OPTIONS``
- Add custom flags to the C/C++ generated source. They will fill, respectively,
- properties :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and
- :prop_sf:`COMPILE_OPTIONS` of generated C/C++ file.
-
-``DEPENDS``
- Specify additional dependencies to the source file.
-
-``SWIG_MODULE_NAME``
- Specify the actual import name of the module in the target language.
- This is required if it cannot be scanned automatically from source
- or different from the module file basename. For example:
-
- .. code-block:: cmake
-
- set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)
-
- .. note::
-
- If policy :policy:`CMP0086` is set to ``NEW``, ``-module <module_name>``
- is passed to ``SWIG`` compiler.
-
-Target library properties can be set to apply same configuration to all SWIG
-input files.
-
-``SWIG_INCLUDE_DIRECTORIES``, ``SWIG_COMPILE_DEFINITIONS`` and ``SWIG_COMPILE_OPTIONS``
- These properties will be applied to all SWIG input files and have same
- semantic as target properties :prop_tgt:`INCLUDE_DIRECTORIES`,
- :prop_tgt:`COMPILE_DEFINITIONS` and :prop_tgt:`COMPILE_OPTIONS`.
-
- .. code-block:: cmake
-
- set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
- swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
- set_property(TARGET mymod PROPERTY SWIG_COMPILE_DEFINITIONS MY_DEF1 MY_DEF2)
- set_property(TARGET mymod PROPERTY SWIG_COMPILE_OPTIONS -bla -blb)
-
-``SWIG_USE_TARGET_INCLUDE_DIRECTORIES``
- If set to ``TRUE``, contents of target property
- :prop_tgt:`INCLUDE_DIRECTORIES` will be forwarded to ``SWIG`` compiler.
- If set to ``FALSE`` or not defined, target property
- :prop_tgt:`INCLUDE_DIRECTORIES` will be ignored. This behavior can be
- overridden by specifying source property ``USE_TARGET_INCLUDE_DIRECTORIES``.
-
-``SWIG_GENERATED_INCLUDE_DIRECTORIES``, ``SWIG_GENERATED_COMPILE_DEFINITIONS`` and ``SWIG_GENERATED_COMPILE_OPTIONS``
- These properties will populate, respectively, properties
- :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and
- :prop_sf:`COMPILE_FLAGS` of all generated C/C++ files.
-
-``SWIG_DEPENDS``
- Add dependencies to all SWIG input files.
-
-The following target properties are output properties and can be used to get
-information about support files generated by ``SWIG`` interface compilation.
-
-``SWIG_SUPPORT_FILES``
- This output property list of wrapper files generated during SWIG compilation.
-
- .. code-block:: cmake
-
- set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
- swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
- get_property(support_files TARGET mymod PROPERTY SWIG_SUPPORT_FILES)
-
- .. note::
-
- Only most principal support files are listed. In case some advanced
- features of ``SWIG`` are used (for example ``%template``), associated
- support files may not be listed. Prefer to use the
- ``SWIG_SUPPORT_FILES_DIRECTORY`` property to handle support files.
-
-``SWIG_SUPPORT_FILES_DIRECTORY``
- This output property specifies the directory where support files will be
- generated.
-
-Some variables can be set to customize the behavior of ``swig_add_library``
-as well as ``SWIG``:
-
-``UseSWIG_MODULE_VERSION``
- Specify different behaviors for ``UseSWIG`` module.
-
- * Set to 1 or undefined: Legacy behavior is applied.
- * Set to 2: A new strategy is applied regarding support files: the output
- directory of support files is erased before ``SWIG`` interface compilation.
-
-``CMAKE_SWIG_FLAGS``
- Add flags to all swig calls.
-
-``CMAKE_SWIG_OUTDIR``
- Specify where to write the language specific files (swig ``-outdir`` option).
-
-``SWIG_OUTFILE_DIR``
- Specify an output directory name where the generated source file will be
- placed. If not specified, ``CMAKE_SWIG_OUTDIR`` is used.
-
-``SWIG_MODULE_<name>_EXTRA_DEPS``
- Specify extra dependencies for the generated module for ``<name>``.
-
-``SWIG_SOURCE_FILE_EXTENSIONS``
- Specify a list of source file extensions to override the default
- behavior of considering only ``.i`` files as sources for the ``SWIG``
- tool. For example:
-
- .. code-block:: cmake
-
- set(SWIG_SOURCE_FILE_EXTENSIONS ".i" ".swg")
-#]=======================================================================]
-
-cmake_policy(GET CMP0078 target_name_policy)
-cmake_policy(GET CMP0086 module_name_policy)
-
-cmake_policy (VERSION 3.12)
-if (target_name_policy)
- # respect user choice regarding CMP0078 policy
- cmake_policy(SET CMP0078 ${target_name_policy})
-endif()
-if (module_name_policy)
- # respect user choice regarding CMP0086 policy
- cmake_policy(SET CMP0086 ${module_name_policy})
-endif()
-unset(target_name_policy)
-unset(module_name_policy)
-
-set(SWIG_CXX_EXTENSION "cxx")
-set(SWIG_EXTRA_LIBRARIES "")
-
-set(SWIG_PYTHON_EXTRA_FILE_EXTENSIONS ".py")
-set(SWIG_JAVA_EXTRA_FILE_EXTENSIONS ".java" "JNI.java")
-set(SWIG_CSHARP_EXTRA_FILE_EXTENSIONS ".cs" "PINVOKE.cs")
-
-set(SWIG_MANAGE_SUPPORT_FILES_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/UseSWIG/ManageSupportFiles.cmake")
-
-##
-## PRIVATE functions
-##
-function (__SWIG_COMPUTE_TIMESTAMP name language infile workingdir __timestamp)
- get_filename_component(filename "${infile}" NAME_WE)
- set(${__timestamp}
- "${workingdir}/${filename}${language}.stamp" PARENT_SCOPE)
- # get_filename_component(filename "${infile}" ABSOLUTE)
- # string(UUID uuid NAMESPACE 9735D882-D2F8-4E1D-88C9-A0A4F1F6ECA4
- # NAME ${name}-${language}-${filename} TYPE SHA1)
- # set(${__timestamp} "${workingdir}/${uuid}.stamp" PARENT_SCOPE)
-endfunction()
-
-#
-# For given swig module initialize variables associated with it
-#
-macro(SWIG_MODULE_INITIALIZE name language)
- string(TOUPPER "${language}" SWIG_MODULE_${name}_LANGUAGE)
- string(TOLOWER "${language}" SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG)
-
- if (NOT DEFINED SWIG_MODULE_${name}_NOPROXY)
- set (SWIG_MODULE_${name}_NOPROXY FALSE)
- endif()
- if ("-noproxy" IN_LIST CMAKE_SWIG_FLAGS)
- set (SWIG_MODULE_${name}_NOPROXY TRUE)
- endif ()
-
- if (SWIG_MODULE_${name}_NOPROXY AND
- NOT ("-noproxy" IN_LIST CMAKE_SWIG_FLAGS OR "-noproxy" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
- list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-noproxy")
- endif()
- if(SWIG_MODULE_${name}_LANGUAGE STREQUAL "UNKNOWN")
- message(FATAL_ERROR "SWIG Error: Language \"${language}\" not found")
- elseif(SWIG_MODULE_${name}_LANGUAGE STREQUAL "PERL" AND
- NOT "-shadow" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS)
- list(APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-shadow")
- endif()
-endmacro()
-
-#
-# For a given language, input file, and output file, determine extra files that
-# will be generated. This is internal swig macro.
-#
-
-function(SWIG_GET_EXTRA_OUTPUT_FILES language outfiles generatedpath infile)
- set(files)
- get_source_file_property(module_basename
- "${infile}" SWIG_MODULE_NAME)
- if(NOT module_basename)
-
- # try to get module name from "%module foo" syntax
- if ( EXISTS "${infile}" )
- file ( STRINGS "${infile}" module_basename REGEX "[ ]*%module[ ]*[a-zA-Z0-9_]+.*" )
- endif ()
- if ( module_basename )
- string ( REGEX REPLACE "[ ]*%module[ ]*([a-zA-Z0-9_]+).*" "\\1" module_basename "${module_basename}" )
-
- else ()
- # try to get module name from "%module (options=...) foo" syntax
- if ( EXISTS "${infile}" )
- file ( STRINGS "${infile}" module_basename REGEX "[ ]*%module[ ]*\\(.*\\)[ ]*[a-zA-Z0-9_]+.*" )
- endif ()
- if ( module_basename )
- string ( REGEX REPLACE "[ ]*%module[ ]*\\(.*\\)[ ]*([a-zA-Z0-9_]+).*" "\\1" module_basename "${module_basename}" )
-
- else ()
- # fallback to file basename
- get_filename_component(module_basename "${infile}" NAME_WE)
- endif ()
- endif ()
-
- endif()
- foreach(it ${SWIG_${language}_EXTRA_FILE_EXTENSIONS})
- set(extra_file "${generatedpath}/${module_basename}${it}")
- if (extra_file MATCHES "\\.cs$" AND CMAKE_CSharp_COMPILER_LOADED)
- set_source_files_properties(${extra_file} PROPERTIES LANGUAGE "CSharp")
- else()
- # Treat extra outputs as plain files regardless of language.
- set_source_files_properties(${extra_file} PROPERTIES LANGUAGE "")
- endif()
- list(APPEND files "${extra_file}")
- endforeach()
-
- set (${outfiles} ${files} PARENT_SCOPE)
-endfunction()
-
-#
-# Take swig (*.i) file and add proper custom commands for it
-#
-function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
- get_filename_component(swig_source_file_name_we "${infile}" NAME_WE)
- get_source_file_property(swig_source_file_cplusplus "${infile}" CPLUSPLUS)
-
- # If CMAKE_SWIG_OUTDIR was specified then pass it to -outdir
- if(CMAKE_SWIG_OUTDIR)
- set(outdir ${CMAKE_SWIG_OUTDIR})
- else()
- set(outdir ${CMAKE_CURRENT_BINARY_DIR})
- endif()
-
- if(SWIG_OUTFILE_DIR)
- set(outfiledir ${SWIG_OUTFILE_DIR})
- else()
- set(outfiledir ${outdir})
- endif()
-
- if(SWIG_WORKING_DIR)
- set (workingdir "${SWIG_WORKING_DIR}")
- else()
- set(workingdir "${outdir}")
- endif()
-
- if(SWIG_TARGET_NAME)
- set(target_name ${SWIG_TARGET_NAME})
- else()
- set(target_name ${name})
- endif()
-
- set (swig_source_file_flags ${CMAKE_SWIG_FLAGS})
- # handle various swig compile flags properties
- get_source_file_property (include_directories "${infile}" INCLUDE_DIRECTORIES)
- if (include_directories)
- list (APPEND swig_source_file_flags "$<$<BOOL:${include_directories}>:-I$<JOIN:${include_directories},$<SEMICOLON>-I>>")
- endif()
- set (property "$<TARGET_PROPERTY:${target_name},SWIG_INCLUDE_DIRECTORIES>")
- list (APPEND swig_source_file_flags "$<$<BOOL:${property}>:-I$<JOIN:$<TARGET_GENEX_EVAL:${target_name},${property}>,$<SEMICOLON>-I>>")
- set (property "$<TARGET_PROPERTY:${target_name},INCLUDE_DIRECTORIES>")
- get_source_file_property(use_target_include_dirs "${infile}" USE_TARGET_INCLUDE_DIRECTORIES)
- if (use_target_include_dirs)
- list (APPEND swig_source_file_flags "$<$<BOOL:${property}>:-I$<JOIN:${property},$<SEMICOLON>-I>>")
- elseif(use_target_include_dirs STREQUAL "NOTFOUND")
- # not defined at source level, rely on target level
- list (APPEND swig_source_file_flags "$<$<AND:$<BOOL:$<TARGET_PROPERTY:${target_name},SWIG_USE_TARGET_INCLUDE_DIRECTORIES>>,$<BOOL:${property}>>:-I$<JOIN:${property},$<SEMICOLON>-I>>")
- endif()
-
- set (property "$<TARGET_PROPERTY:${target_name},SWIG_COMPILE_DEFINITIONS>")
- list (APPEND swig_source_file_flags "$<$<BOOL:${property}>:-D$<JOIN:$<TARGET_GENEX_EVAL:${target_name},${property}>,$<SEMICOLON>-D>>")
- get_source_file_property (compile_definitions "${infile}" COMPILE_DEFINITIONS)
- if (compile_definitions)
- list (APPEND swig_source_file_flags "$<$<BOOL:${compile_definitions}>:-D$<JOIN:${compile_definitions},$<SEMICOLON>-D>>")
- endif()
-
- list (APPEND swig_source_file_flags "$<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_COMPILE_OPTIONS>>")
- get_source_file_property (compile_options "${infile}" COMPILE_OPTIONS)
- if (compile_options)
- list (APPEND swig_source_file_flags ${compile_options})
- endif()
-
- # legacy support
- get_source_file_property (swig_flags "${infile}" SWIG_FLAGS)
- if (swig_flags)
- list (APPEND swig_source_file_flags ${swig_flags})
- endif()
-
- get_filename_component(swig_source_file_fullname "${infile}" ABSOLUTE)
-
- if (NOT SWIG_MODULE_${name}_NOPROXY)
- SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE}
- swig_extra_generated_files
- "${outdir}"
- "${swig_source_file_fullname}")
- endif()
- set(swig_generated_file_fullname
- "${outfiledir}/${swig_source_file_name_we}")
- # add the language into the name of the file (i.e. TCL_wrap)
- # this allows for the same .i file to be wrapped into different languages
- string(APPEND swig_generated_file_fullname
- "${SWIG_MODULE_${name}_LANGUAGE}_wrap")
-
- if(swig_source_file_cplusplus)
- string(APPEND swig_generated_file_fullname
- ".${SWIG_CXX_EXTENSION}")
- else()
- string(APPEND swig_generated_file_fullname
- ".c")
- endif()
-
- get_directory_property (cmake_include_directories INCLUDE_DIRECTORIES)
- list (REMOVE_DUPLICATES cmake_include_directories)
- set (swig_include_dirs)
- if (cmake_include_directories)
- set (swig_include_dirs "$<$<BOOL:${cmake_include_directories}>:-I$<JOIN:${cmake_include_directories},$<SEMICOLON>-I>>")
- endif()
-
- set(swig_special_flags)
- # default is c, so add c++ flag if it is c++
- if(swig_source_file_cplusplus)
- list (APPEND swig_special_flags "-c++")
- endif()
-
- cmake_policy(GET CMP0086 module_name_policy)
- if (module_name_policy STREQUAL "NEW")
- get_source_file_property(module_name "${infile}" SWIG_MODULE_NAME)
- if (module_name)
- list (APPEND swig_special_flags "-module" "${module_name}")
- endif()
- else()
- if (NOT module_name_policy)
- cmake_policy(GET_WARNING CMP0086 _cmp0086_warning)
- message(AUTHOR_WARNING "${_cmp0086_warning}\n")
- endif()
- endif()
-
- set (swig_extra_flags)
- if(SWIG_MODULE_${name}_LANGUAGE STREQUAL "CSHARP")
- if(NOT ("-dllimport" IN_LIST swig_source_file_flags OR "-dllimport" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
- # This makes sure that the name used in the generated DllImport
- # matches the library name created by CMake
- list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-dllimport" "$<TARGET_FILE_PREFIX:${target_name}>$<TARGET_FILE_BASE_NAME:${target_name}>")
- endif()
- endif()
- if (SWIG_MODULE_${name}_LANGUAGE STREQUAL "PYTHON" AND NOT SWIG_MODULE_${name}_NOPROXY)
- if(NOT ("-interface" IN_LIST swig_source_file_flags OR "-interface" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
- # This makes sure that the name used in the proxy code
- # matches the library name created by CMake
- list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-interface" "$<TARGET_FILE_PREFIX:${target_name}>$<TARGET_FILE_BASE_NAME:${target_name}>")
- endif()
- endif()
- list (APPEND swig_extra_flags ${SWIG_MODULE_${name}_EXTRA_FLAGS})
-
- # dependencies
- set (swig_dependencies ${SWIG_MODULE_${name}_EXTRA_DEPS} $<TARGET_PROPERTY:${target_name},SWIG_DEPENDS>)
- get_source_file_property(file_depends "${infile}" DEPENDS)
- if (file_depends)
- list (APPEND swig_dependencies ${file_depends})
- endif()
-
- if (UseSWIG_MODULE_VERSION VERSION_GREATER 1)
- # as part of custom command, start by removing old generated files
- # to ensure obsolete files do not stay
- set (swig_file_outdir "${workingdir}/${swig_source_file_name_we}.files")
- set (swig_cleanup_command COMMAND "${CMAKE_COMMAND}" "-DSUPPORT_FILES_WORKING_DIRECTORY=${swig_file_outdir}" "-DSUPPORT_FILES_OUTPUT_DIRECTORY=${outdir}" -DACTION=CLEAN -P "${SWIG_MANAGE_SUPPORT_FILES_SCRIPT}")
- set (swig_copy_command COMMAND "${CMAKE_COMMAND}" "-DSUPPORT_FILES_WORKING_DIRECTORY=${swig_file_outdir}" "-DSUPPORT_FILES_OUTPUT_DIRECTORY=${outdir}" -DACTION=COPY -P "${SWIG_MANAGE_SUPPORT_FILES_SCRIPT}")
- else()
- set (swig_file_outdir "${outdir}")
- unset (swig_cleanup_command)
- unset (swig_copy_command)
- endif()
-
- # IMPLICIT_DEPENDS below can not handle situations where a dependent file is
- # removed. We need an extra step with timestamp and custom target, see #16830
- # As this is needed only for Makefile generator do it conditionally
- if(CMAKE_GENERATOR MATCHES "Make")
- __swig_compute_timestamp(${name} ${SWIG_MODULE_${name}_LANGUAGE}
- "${infile}" "${workingdir}" swig_generated_timestamp)
- set(swig_custom_output "${swig_generated_timestamp}")
- set(swig_custom_products
- BYPRODUCTS "${swig_generated_file_fullname}" ${swig_extra_generated_files})
- set(swig_timestamp_command
- COMMAND ${CMAKE_COMMAND} -E touch "${swig_generated_timestamp}")
- else()
- set(swig_custom_output
- "${swig_generated_file_fullname}" ${swig_extra_generated_files})
- set(swig_custom_products)
- set(swig_timestamp_command)
- endif()
- add_custom_command(
- OUTPUT ${swig_custom_output}
- ${swig_custom_products}
- ${swig_cleanup_command}
- # Let's create the ${outdir} at execution time, in case dir contains $(OutDir)
- COMMAND "${CMAKE_COMMAND}" -E make_directory ${outdir} ${outfiledir}
- ${swig_timestamp_command}
- COMMAND "${CMAKE_COMMAND}" -E env "SWIG_LIB=${SWIG_DIR}" "${SWIG_EXECUTABLE}"
- "-${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}"
- "${swig_source_file_flags}"
- -outdir "${swig_file_outdir}"
- ${swig_special_flags}
- ${swig_extra_flags}
- "${swig_include_dirs}"
- -o "${swig_generated_file_fullname}"
- "${swig_source_file_fullname}"
- ${swig_copy_command}
- MAIN_DEPENDENCY "${swig_source_file_fullname}"
- DEPENDS ${swig_dependencies}
- IMPLICIT_DEPENDS CXX "${swig_source_file_fullname}"
- COMMENT "Swig compile ${infile} for ${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}"
- COMMAND_EXPAND_LISTS)
- set_source_files_properties("${swig_generated_file_fullname}" ${swig_extra_generated_files}
- PROPERTIES GENERATED 1)
-
- ## add all properties for generated file to various properties
- get_property (include_directories SOURCE "${infile}" PROPERTY GENERATED_INCLUDE_DIRECTORIES)
- set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY INCLUDE_DIRECTORIES ${include_directories} $<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_GENERATED_INCLUDE_DIRECTORIES>>)
-
- get_property (compile_definitions SOURCE "${infile}" PROPERTY GENERATED_COMPILE_DEFINITIONS)
- set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY COMPILE_DEFINITIONS $<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_GENERATED_COMPILE_DEFINITIONS>> ${compile_definitions})
-
- get_property (compile_options SOURCE "${infile}" PROPERTY GENERATED_COMPILE_OPTIONS)
- set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY COMPILE_OPTIONS $<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_GENERATED_COMPILE_OPTIONS>> ${compile_options})
-
- if (SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG MATCHES "php")
- set_property (SOURCE "${swig_generated_file_fullname}" APPEND PROPERTY INCLUDE_DIRECTORIES "${outdir}")
- endif()
-
- set(${outfiles} "${swig_generated_file_fullname}" ${swig_extra_generated_files} PARENT_SCOPE)
-
- # legacy support
- set (swig_generated_file_fullname "${swig_generated_file_fullname}" PARENT_SCOPE)
-endfunction()
-
-#
-# Create Swig module
-#
-macro(SWIG_ADD_MODULE name language)
- message(DEPRECATION "SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead.")
- swig_add_library(${name}
- LANGUAGE ${language}
- TYPE MODULE
- SOURCES ${ARGN})
-endmacro()
-
-
-function(SWIG_ADD_LIBRARY name)
- set(options NO_PROXY)
- set(oneValueArgs LANGUAGE
- TYPE
- OUTPUT_DIR
- OUTFILE_DIR)
- set(multiValueArgs SOURCES)
- cmake_parse_arguments(_SAM "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
-
- if (_SAM_UNPARSED_ARGUMENTS)
- message(FATAL_ERROR "SWIG_ADD_LIBRARY: ${_SAM_UNPARSED_ARGUMENTS}: unexpected arguments")
- endif()
-
- if(NOT DEFINED _SAM_LANGUAGE)
- message(FATAL_ERROR "SWIG_ADD_LIBRARY: Missing LANGUAGE argument")
- endif()
-
- if(NOT DEFINED _SAM_SOURCES)
- message(FATAL_ERROR "SWIG_ADD_LIBRARY: Missing SOURCES argument")
- endif()
-
- if(NOT DEFINED _SAM_TYPE)
- set(_SAM_TYPE MODULE)
- elseif(_SAM_TYPE STREQUAL "USE_BUILD_SHARED_LIBS")
- unset(_SAM_TYPE)
- endif()
-
- cmake_policy(GET CMP0078 target_name_policy)
- if (target_name_policy STREQUAL "NEW")
- set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
- else()
- if (NOT target_name_policy)
- cmake_policy(GET_WARNING CMP0078 _cmp0078_warning)
- message(AUTHOR_WARNING "${_cmp0078_warning}\n")
- endif()
- if (NOT DEFINED UseSWIG_TARGET_NAME_PREFERENCE)
- set (UseSWIG_TARGET_NAME_PREFERENCE LEGACY)
- elseif (NOT UseSWIG_TARGET_NAME_PREFERENCE MATCHES "^(LEGACY|STANDARD)$")
- message (FATAL_ERROR "UseSWIG_TARGET_NAME_PREFERENCE: ${UseSWIG_TARGET_NAME_PREFERENCE}: invalid value. 'LEGACY' or 'STANDARD' is expected.")
- endif()
- endif()
-
- if (NOT DEFINED UseSWIG_MODULE_VERSION)
- set (UseSWIG_MODULE_VERSION 1)
- elseif (NOT UseSWIG_MODULE_VERSION MATCHES "^(1|2)$")
- message (FATAL_ERROR "UseSWIG_MODULE_VERSION: ${UseSWIG_MODULE_VERSION}: invalid value. 1 or 2 is expected.")
- endif()
-
- set (SWIG_MODULE_${name}_NOPROXY ${_SAM_NO_PROXY})
- swig_module_initialize(${name} ${_SAM_LANGUAGE})
-
- # compute real target name.
- if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "LEGACY" AND
- SWIG_MODULE_${name}_LANGUAGE STREQUAL "PYTHON" AND NOT SWIG_MODULE_${name}_NOPROXY)
- # swig will produce a module.py containing an 'import _modulename' statement,
- # which implies having a corresponding _modulename.so (*NIX), _modulename.pyd (Win32),
- # unless the -noproxy flag is used
- set(target_name "_${name}")
- else()
- set(target_name "${name}")
- endif()
-
- if (TARGET ${target_name})
- # a target with same name is already defined.
- # call NOW add_library command to raise the most useful error message
- add_library(${target_name})
- return()
- endif()
-
- set (workingdir "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}.dir")
- # set special variable to pass extra information to command SWIG_ADD_SOURCE_TO_MODULE
- # which cannot be changed due to legacy compatibility
- set (SWIG_WORKING_DIR "${workingdir}")
- set (SWIG_TARGET_NAME "${target_name}")
-
- set (outputdir "${_SAM_OUTPUT_DIR}")
- if (NOT _SAM_OUTPUT_DIR)
- if (CMAKE_SWIG_OUTDIR)
- set (outputdir "${CMAKE_SWIG_OUTDIR}")
- else()
- if (UseSWIG_MODULE_VERSION VERSION_GREATER 1)
- set (outputdir "${workingdir}/${_SAM_LANGUAGE}.files")
- else()
- set (outputdir "${CMAKE_CURRENT_BINARY_DIR}")
- endif()
- endif()
- endif()
-
- set (outfiledir "${_SAM_OUTFILE_DIR}")
- if(NOT _SAM_OUTFILE_DIR)
- if (SWIG_OUTFILE_DIR)
- set (outfiledir "${SWIG_OUTFILE_DIR}")
- else()
- if (_SAM_OUTPUT_DIR OR CMAKE_SWIG_OUTDIR)
- set (outfiledir "${outputdir}")
- else()
- set (outfiledir "${workingdir}")
- endif()
- endif()
- endif()
- # set again, locally, predefined variables to ensure compatibility
- # with command SWIG_ADD_SOURCE_TO_MODULE
- set(CMAKE_SWIG_OUTDIR "${outputdir}")
- set(SWIG_OUTFILE_DIR "${outfiledir}")
-
- # See if the user has specified source extensions for swig files?
- if (NOT DEFINED SWIG_SOURCE_FILE_EXTENSIONS)
- # Assume the default (*.i) file extension for Swig source files
- set(SWIG_SOURCE_FILE_EXTENSIONS ".i")
- endif()
-
- # Generate a regex out of file extensions.
- string(REGEX REPLACE "([$^.*+?|()-])" "\\\\\\1" swig_source_ext_regex "${SWIG_SOURCE_FILE_EXTENSIONS}")
- list (JOIN swig_source_ext_regex "|" swig_source_ext_regex)
- string (PREPEND swig_source_ext_regex "(")
- string (APPEND swig_source_ext_regex ")$")
-
- set(swig_dot_i_sources ${_SAM_SOURCES})
- list(FILTER swig_dot_i_sources INCLUDE REGEX ${swig_source_ext_regex})
- if (NOT swig_dot_i_sources)
- message(FATAL_ERROR "SWIG_ADD_LIBRARY: no SWIG interface files specified")
- endif()
- set(swig_other_sources ${_SAM_SOURCES})
- list(REMOVE_ITEM swig_other_sources ${swig_dot_i_sources})
-
- set(swig_generated_sources)
- set(swig_generated_timestamps)
- foreach(swig_it IN LISTS swig_dot_i_sources)
- SWIG_ADD_SOURCE_TO_MODULE(${name} swig_generated_source "${swig_it}")
- list (APPEND swig_generated_sources "${swig_generated_source}")
- if(CMAKE_GENERATOR MATCHES "Make")
- __swig_compute_timestamp(${name} ${SWIG_MODULE_${name}_LANGUAGE} "${swig_it}"
- "${workingdir}" swig_timestamp)
- list (APPEND swig_generated_timestamps "${swig_timestamp}")
- endif()
- endforeach()
- set_property (DIRECTORY APPEND PROPERTY
- ADDITIONAL_CLEAN_FILES ${swig_generated_sources} ${swig_generated_timestamps})
- if (UseSWIG_MODULE_VERSION VERSION_GREATER 1)
- set_property (DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES "${outputdir}")
- endif()
-
- add_library(${target_name}
- ${_SAM_TYPE}
- ${swig_generated_sources}
- ${swig_other_sources})
- if(CMAKE_GENERATOR MATCHES "Make")
- # see IMPLICIT_DEPENDS above
- add_custom_target(${name}_swig_compilation DEPENDS ${swig_generated_timestamps})
- add_dependencies(${target_name} ${name}_swig_compilation)
- endif()
- if(_SAM_TYPE STREQUAL "MODULE")
- set_target_properties(${target_name} PROPERTIES NO_SONAME ON)
- endif()
- string(TOLOWER "${_SAM_LANGUAGE}" swig_lowercase_language)
- if (swig_lowercase_language STREQUAL "octave")
- set_target_properties(${target_name} PROPERTIES PREFIX "")
- set_target_properties(${target_name} PROPERTIES SUFFIX ".oct")
- elseif (swig_lowercase_language STREQUAL "go")
- set_target_properties(${target_name} PROPERTIES PREFIX "")
- elseif (swig_lowercase_language STREQUAL "java")
- # In java you want:
- # System.loadLibrary("LIBRARY");
- # then JNI will look for a library whose name is platform dependent, namely
- # MacOS : libLIBRARY.jnilib
- # Windows: LIBRARY.dll
- # Linux : libLIBRARY.so
- if (APPLE)
- set_target_properties (${target_name} PROPERTIES SUFFIX ".jnilib")
- endif()
- if ((WIN32 AND MINGW) OR CYGWIN OR CMAKE_SYSTEM_NAME STREQUAL MSYS)
- set_target_properties(${target_name} PROPERTIES PREFIX "")
- endif()
- elseif (swig_lowercase_language STREQUAL "lua")
- if(_SAM_TYPE STREQUAL "MODULE")
- set_target_properties(${target_name} PROPERTIES PREFIX "")
- endif()
- elseif (swig_lowercase_language STREQUAL "python")
- if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "STANDARD" AND NOT SWIG_MODULE_${name}_NOPROXY)
- # swig will produce a module.py containing an 'import _modulename' statement,
- # which implies having a corresponding _modulename.so (*NIX), _modulename.pyd (Win32),
- # unless the -noproxy flag is used
- set_target_properties(${target_name} PROPERTIES PREFIX "_")
- else()
- set_target_properties(${target_name} PROPERTIES PREFIX "")
- endif()
- # Python extension modules on Windows must have the extension ".pyd"
- # instead of ".dll" as of Python 2.5. Older python versions do support
- # this suffix.
- # http://docs.python.org/whatsnew/ports.html#SECTION0001510000000000000000
- # <quote>
- # Windows: .dll is no longer supported as a filename extension for extension modules.
- # .pyd is now the only filename extension that will be searched for.
- # </quote>
- if(WIN32 AND NOT CYGWIN)
- set_target_properties(${target_name} PROPERTIES SUFFIX ".pyd")
- endif()
- elseif (swig_lowercase_language STREQUAL "r")
- set_target_properties(${target_name} PROPERTIES PREFIX "")
- elseif (swig_lowercase_language STREQUAL "ruby")
- # In ruby you want:
- # require 'LIBRARY'
- # then ruby will look for a library whose name is platform dependent, namely
- # MacOS : LIBRARY.bundle
- # Windows: LIBRARY.dll
- # Linux : LIBRARY.so
- set_target_properties (${target_name} PROPERTIES PREFIX "")
- if (APPLE)
- set_target_properties (${target_name} PROPERTIES SUFFIX ".bundle")
- endif ()
- elseif (swig_lowercase_language STREQUAL "perl")
- # assume empty prefix because we expect the module to be dynamically loaded
- set_target_properties (${target_name} PROPERTIES PREFIX "")
- if (APPLE)
- set_target_properties (${target_name} PROPERTIES SUFFIX ".dylib")
- endif ()
- else()
- # assume empty prefix because we expect the module to be dynamically loaded
- set_target_properties (${target_name} PROPERTIES PREFIX "")
- endif ()
-
- # target property SWIG_SUPPORT_FILES_DIRECTORY specify output directory of support files
- set_property (TARGET ${target_name} PROPERTY SWIG_SUPPORT_FILES_DIRECTORY "${outputdir}")
- # target property SWIG_SUPPORT_FILES lists principal proxy support files
- if (NOT SWIG_MODULE_${name}_NOPROXY)
- string(TOUPPER "${_SAM_LANGUAGE}" swig_uppercase_language)
- set(swig_all_support_files)
- foreach (swig_it IN LISTS SWIG_${swig_uppercase_language}_EXTRA_FILE_EXTENSIONS)
- set (swig_support_files ${swig_generated_sources})
- list (FILTER swig_support_files INCLUDE REGEX ".*${swig_it}$")
- list(APPEND swig_all_support_files ${swig_support_files})
- endforeach()
- if (swig_all_support_files)
- list(REMOVE_DUPLICATES swig_all_support_files)
- endif()
- set_property (TARGET ${target_name} PROPERTY SWIG_SUPPORT_FILES ${swig_all_support_files})
- endif()
-
- # to ensure legacy behavior, export some variables
- set (SWIG_MODULE_${name}_LANGUAGE "${SWIG_MODULE_${name}_LANGUAGE}" PARENT_SCOPE)
- set (SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG "${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}" PARENT_SCOPE)
- set (SWIG_MODULE_${name}_REAL_NAME "${target_name}" PARENT_SCOPE)
- set (SWIG_MODULE_${name}_NOPROXY "${SWIG_MODULE_${name}_NOPROXY}" PARENT_SCOPE)
- set (SWIG_MODULE_${name}_EXTRA_FLAGS "${SWIG_MODULE_${name}_EXTRA_FLAGS}" PARENT_SCOPE)
- # the last one is a bit crazy but it is documented, so...
- # NOTA: works as expected if only ONE input file is specified
- set (swig_generated_file_fullname "${swig_generated_file_fullname}" PARENT_SCOPE)
-endfunction()
-
-#
-# Like TARGET_LINK_LIBRARIES but for swig modules
-#
-function(SWIG_LINK_LIBRARIES name)
- if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "STANDARD")
- message(DEPRECATION "SWIG_LINK_LIBRARIES is deprecated. Use TARGET_LINK_LIBRARIES instead.")
- target_link_libraries(${name} ${ARGN})
- else()
- if(SWIG_MODULE_${name}_REAL_NAME)
- target_link_libraries(${SWIG_MODULE_${name}_REAL_NAME} ${ARGN})
- else()
- message(SEND_ERROR "Cannot find Swig library \"${name}\".")
- endif()
- endif()
-endfunction()
diff --git a/share/cmake-3.17/Modules/readme.txt b/share/cmake-3.17/Modules/readme.txt
deleted file mode 100644
index a629478..0000000
--- a/share/cmake-3.17/Modules/readme.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-See the "Find Modules" section of the cmake-developer(7) manual page.
-
-For more information about how to contribute modules to CMake, see this page:
-https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/dev/Module-Maintainers
diff --git a/share/cmake-3.17/Templates/TestDriver.cxx.in b/share/cmake-3.17/Templates/TestDriver.cxx.in
deleted file mode 100644
index 846a828..0000000
--- a/share/cmake-3.17/Templates/TestDriver.cxx.in
+++ /dev/null
@@ -1,143 +0,0 @@
-#include <ctype.h> /* NOLINT */
-#include <stdio.h> /* NOLINT */
-#include <stdlib.h> /* NOLINT */
-#include <string.h> /* NOLINT */
-
-#if defined(_MSC_VER)
-#pragma warning(disable : 4996) /* deprecation */
-#endif
-
-@CMAKE_TESTDRIVER_EXTRA_INCLUDES@
-
-/* Forward declare test functions. */
-@CMAKE_FORWARD_DECLARE_TESTS@
-
-#ifdef __cplusplus
-# define CM_CAST(TYPE, EXPR) static_cast<TYPE>(EXPR)
-# if __cplusplus >= 201103L
-# define CM_NULL nullptr
-# else
-# define CM_NULL NULL
-# endif
-#else
-# define CM_CAST(TYPE, EXPR) (TYPE)(EXPR)
-# define CM_NULL NULL
-#endif
-
-/* Create map. */
-
-typedef int (*MainFuncPointer)(int, char* []); /* NOLINT */
-typedef struct /* NOLINT */
-{
- const char* name;
- MainFuncPointer func;
-} functionMapEntry;
-
-static functionMapEntry cmakeGeneratedFunctionMapEntries[] = {
- @CMAKE_FUNCTION_TABLE_ENTIRES@
- { CM_NULL, CM_NULL } /* NOLINT */
-};
-
-static const int NumTests = CM_CAST(int,
- sizeof(cmakeGeneratedFunctionMapEntries) / sizeof(functionMapEntry)) - 1;
-
-/* Allocate and create a lowercased copy of string
- (note that it has to be free'd manually) */
-static char* lowercase(const char* string)
-{
- char *new_string, *p;
- size_t stringSize;
-
- stringSize = CM_CAST(size_t, strlen(string) + 1);
- new_string = CM_CAST(char*, malloc(sizeof(char) * stringSize));
-
- if (new_string == CM_NULL) { /* NOLINT */
- return CM_NULL; /* NOLINT */
- }
- strcpy(new_string, string); /* NOLINT */
- for (p = new_string; *p != 0; ++p) {
- *p = CM_CAST(char, tolower(*p));
- }
- return new_string;
-}
-
-int main(int ac, char* av[])
-{
- int i, testNum = 0, partial_match;
- char *arg;
- int testToRun = -1;
-
- @CMAKE_TESTDRIVER_ARGVC_FUNCTION@
-
- /* If no test name was given */
- /* process command line with user function. */
- if (ac < 2) {
- /* Ask for a test. */
- printf("Available tests:\n");
- for (i = 0; i < NumTests; ++i) {
- printf("%3d. %s\n", i, cmakeGeneratedFunctionMapEntries[i].name);
- }
- printf("To run a test, enter the test number: ");
- fflush(stdout);
- if (scanf("%d", &testNum) != 1) {
- printf("Couldn't parse that input as a number\n");
- return -1;
- }
- if (testNum >= NumTests) {
- printf("%3d is an invalid test number.\n", testNum);
- return -1;
- }
- testToRun = testNum;
- ac--;
- av++;
- }
- partial_match = 0;
- arg = CM_NULL; /* NOLINT */
- /* If partial match is requested. */
- if (testToRun == -1 && ac > 1) {
- partial_match = (strcmp(av[1], "-R") == 0) ? 1 : 0;
- }
- if (partial_match != 0 && ac < 3) {
- printf("-R needs an additional parameter.\n");
- return -1;
- }
- if (testToRun == -1) {
- arg = lowercase(av[1 + partial_match]);
- }
- for (i = 0; i < NumTests && testToRun == -1; ++i) {
- char *test_name = lowercase(cmakeGeneratedFunctionMapEntries[i].name);
- if (partial_match != 0 && strstr(test_name, arg) != CM_NULL) { /* NOLINT */
- testToRun = i;
- ac -= 2;
- av += 2;
- } else if (partial_match == 0 && strcmp(test_name, arg) == 0) {
- testToRun = i;
- ac--;
- av++;
- }
- free(test_name);
- }
- free(arg);
- if (testToRun != -1) {
- int result;
-@CMAKE_TESTDRIVER_BEFORE_TESTMAIN@
- if (testToRun < 0 || testToRun >= NumTests) {
- printf("testToRun was modified by TestDriver code to an invalid value: "
- "%3d.\n",
- testNum);
- return -1;
- }
- result = (*cmakeGeneratedFunctionMapEntries[testToRun].func)(ac, av);
-@CMAKE_TESTDRIVER_AFTER_TESTMAIN@
- return result;
- }
-
- /* Nothing was run, display the test names. */
- printf("Available tests:\n");
- for (i = 0; i < NumTests; ++i) {
- printf("%3d. %s\n", i, cmakeGeneratedFunctionMapEntries[i].name);
- }
- printf("Failed: %s is an invalid test name.\n", av[1]);
-
- return -1;
-}
diff --git a/share/cmake-3.17/editors/vim/syntax/cmake.vim b/share/cmake-3.17/editors/vim/syntax/cmake.vim
deleted file mode 100644
index 0676f7e..0000000
--- a/share/cmake-3.17/editors/vim/syntax/cmake.vim
+++ /dev/null
@@ -1,3374 +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_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.18/Help/command/DEVICE_LINK_OPTIONS.txt b/share/cmake-3.18/Help/command/DEVICE_LINK_OPTIONS.txt
new file mode 100644
index 0000000..3f0226f
--- /dev/null
+++ b/share/cmake-3.18/Help/command/DEVICE_LINK_OPTIONS.txt
@@ -0,0 +1,11 @@
+
+When a device link step is involved, which is controlled by
+:prop_tgt:`CUDA_SEPARABLE_COMPILATION` and
+:prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` properties and policy :policy:`CMP0105`,
+the raw options will be delivered to the host and device link steps (wrapped in
+``-Xcompiler`` or equivalent for device link). Options wrapped with
+``$<DEVICE_LINK:...>``
+:manual:`generator expression <cmake-generator-expressions(7)>` will be used
+only for the device link step. Options wrapped with ``$<HOST_LINK:...>``
+:manual:`generator expression <cmake-generator-expressions(7)>` will be used
+only for the host link step.
diff --git a/share/cmake-3.18/Help/command/FIND_XXX.txt b/share/cmake-3.18/Help/command/FIND_XXX.txt
new file mode 100644
index 0000000..4a62c5b
--- /dev/null
+++ b/share/cmake-3.18/Help/command/FIND_XXX.txt
@@ -0,0 +1,161 @@
+A short-hand signature is:
+
+.. parsed-literal::
+
+ |FIND_XXX| (<VAR> name1 [path1 path2 ...])
+
+The general signature is:
+
+.. parsed-literal::
+
+ |FIND_XXX| (
+ <VAR>
+ name | |NAMES|
+ [HINTS path1 [path2 ... ENV var]]
+ [PATHS path1 [path2 ... ENV var]]
+ [PATH_SUFFIXES suffix1 [suffix2 ...]]
+ [DOC "cache documentation string"]
+ [REQUIRED]
+ [NO_DEFAULT_PATH]
+ [NO_PACKAGE_ROOT_PATH]
+ [NO_CMAKE_PATH]
+ [NO_CMAKE_ENVIRONMENT_PATH]
+ [NO_SYSTEM_ENVIRONMENT_PATH]
+ [NO_CMAKE_SYSTEM_PATH]
+ [CMAKE_FIND_ROOT_PATH_BOTH |
+ ONLY_CMAKE_FIND_ROOT_PATH |
+ NO_CMAKE_FIND_ROOT_PATH]
+ )
+
+This command is used to find a |SEARCH_XXX_DESC|.
+A cache entry named by ``<VAR>`` is created to store the result
+of this command.
+If the |SEARCH_XXX| is found the result is stored in the variable
+and the search will not be repeated unless the variable is cleared.
+If nothing is found, the result will be ``<VAR>-NOTFOUND``.
+The ``REQUIRED`` option stops processing with an error message if nothing
+is found, otherwise the search will be attempted again the
+next time |FIND_XXX| is invoked with the same variable.
+
+Options include:
+
+``NAMES``
+ Specify one or more possible names for the |SEARCH_XXX|.
+
+ When using this to specify names with and without a version
+ suffix, we recommend specifying the unversioned name first
+ so that locally-built packages can be found before those
+ provided by distributions.
+
+``HINTS``, ``PATHS``
+ Specify directories to search in addition to the default locations.
+ The ``ENV var`` sub-option reads paths from a system environment
+ variable.
+
+``PATH_SUFFIXES``
+ Specify additional subdirectories to check below each directory
+ location otherwise considered.
+
+``DOC``
+ Specify the documentation string for the ``<VAR>`` cache entry.
+
+``REQUIRED``
+ Stop processing with an error message if nothing is found.
+
+If ``NO_DEFAULT_PATH`` is specified, then no additional paths are
+added to the search.
+If ``NO_DEFAULT_PATH`` is not specified, the search process is as follows:
+
+.. |FIND_PACKAGE_ROOT_PREFIX_PATH_XXX_SUBDIR| replace::
+ |prefix_XXX_SUBDIR| for each ``<prefix>`` in the
+ :variable:`<PackageName>_ROOT` CMake variable and the
+ :envvar:`<PackageName>_ROOT` environment variable if
+ called from within a find module loaded by
+ :command:`find_package(<PackageName>)`
+
+.. |CMAKE_PREFIX_PATH_XXX_SUBDIR| replace::
+ |prefix_XXX_SUBDIR| for each ``<prefix>`` in :variable:`CMAKE_PREFIX_PATH`
+
+.. |SYSTEM_ENVIRONMENT_PREFIX_PATH_XXX_SUBDIR| replace::
+ |prefix_XXX_SUBDIR| for each ``<prefix>/[s]bin`` in ``PATH``, and
+ |entry_XXX_SUBDIR| for other entries in ``PATH``
+
+.. |CMAKE_SYSTEM_PREFIX_PATH_XXX_SUBDIR| replace::
+ |prefix_XXX_SUBDIR| for each ``<prefix>`` in
+ :variable:`CMAKE_SYSTEM_PREFIX_PATH`
+
+1. If called from within a find module or any other script loaded by a call to
+ :command:`find_package(<PackageName>)`, search prefixes unique to the
+ current package being found. Specifically, look in the
+ :variable:`<PackageName>_ROOT` CMake variable and the
+ :envvar:`<PackageName>_ROOT` environment variable.
+ The package root variables are maintained as a stack, so if called from
+ nested find modules or config packages, root paths from the parent's find
+ module or config package will be searched after paths from the current
+ module or package. In other words, the search order would be
+ ``<CurrentPackage>_ROOT``, ``ENV{<CurrentPackage>_ROOT}``,
+ ``<ParentPackage>_ROOT``, ``ENV{<ParentPackage>_ROOT}``, etc.
+ This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed or by setting
+ the :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` to ``FALSE``.
+ See policy :policy:`CMP0074`.
+
+ * |FIND_PACKAGE_ROOT_PREFIX_PATH_XXX|
+
+2. Search paths specified in cmake-specific cache variables.
+ These are intended to be used on the command line with a ``-DVAR=value``.
+ The values are interpreted as :ref:`semicolon-separated lists <CMake Language Lists>`.
+ This can be skipped if ``NO_CMAKE_PATH`` is passed or by setting the
+ :variable:`CMAKE_FIND_USE_CMAKE_PATH` to ``FALSE``.
+
+ * |CMAKE_PREFIX_PATH_XXX|
+ * |CMAKE_XXX_PATH|
+ * |CMAKE_XXX_MAC_PATH|
+
+3. Search paths specified in cmake-specific environment variables.
+ These are intended to be set in the user's shell configuration,
+ and therefore use the host's native path separator
+ (``;`` on Windows and ``:`` on UNIX).
+ This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed or
+ by setting the :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` to ``FALSE``.
+
+ * |CMAKE_PREFIX_PATH_XXX|
+ * |CMAKE_XXX_PATH|
+ * |CMAKE_XXX_MAC_PATH|
+
+4. Search the paths specified by the ``HINTS`` option.
+ These should be paths computed by system introspection, such as a
+ hint provided by the location of another item already found.
+ Hard-coded guesses should be specified with the ``PATHS`` option.
+
+5. Search the standard system environment variables.
+ This can be skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is passed or by
+ setting the :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` to ``FALSE``.
+
+ * |SYSTEM_ENVIRONMENT_PATH_XXX|
+ * |SYSTEM_ENVIRONMENT_PATH_WINDOWS_XXX|
+
+6. Search cmake variables defined in the Platform files
+ for the current system. This can be skipped if ``NO_CMAKE_SYSTEM_PATH``
+ is passed or by setting the :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH`
+ to ``FALSE``.
+
+ * |CMAKE_SYSTEM_PREFIX_PATH_XXX|
+ * |CMAKE_SYSTEM_XXX_PATH|
+ * |CMAKE_SYSTEM_XXX_MAC_PATH|
+
+ The platform paths that these variables contain are locations that
+ typically include installed software. An example being ``/usr/local`` for
+ UNIX based platforms.
+
+7. Search the paths specified by the PATHS option
+ or in the short-hand version of the command.
+ These are typically hard-coded guesses.
+
+.. |FIND_ARGS_XXX| replace:: <VAR> NAMES name
+
+On macOS the :variable:`CMAKE_FIND_FRAMEWORK` and
+:variable:`CMAKE_FIND_APPBUNDLE` variables determine the order of
+preference between Apple-style and unix-style package components.
+
+.. include:: FIND_XXX_ROOT.txt
+.. include:: FIND_XXX_ORDER.txt
diff --git a/share/cmake-3.17/Help/command/FIND_XXX_ORDER.txt b/share/cmake-3.18/Help/command/FIND_XXX_ORDER.txt
index bac2419..bac2419 100644
--- a/share/cmake-3.17/Help/command/FIND_XXX_ORDER.txt
+++ b/share/cmake-3.18/Help/command/FIND_XXX_ORDER.txt
diff --git a/share/cmake-3.17/Help/command/FIND_XXX_ROOT.txt b/share/cmake-3.18/Help/command/FIND_XXX_ROOT.txt
index fab2303..fab2303 100644
--- a/share/cmake-3.17/Help/command/FIND_XXX_ROOT.txt
+++ b/share/cmake-3.18/Help/command/FIND_XXX_ROOT.txt
diff --git a/share/cmake-3.17/Help/command/LINK_OPTIONS_LINKER.txt b/share/cmake-3.18/Help/command/LINK_OPTIONS_LINKER.txt
index 3f66181..3f66181 100644
--- a/share/cmake-3.17/Help/command/LINK_OPTIONS_LINKER.txt
+++ b/share/cmake-3.18/Help/command/LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.17/Help/command/OPTIONS_SHELL.txt b/share/cmake-3.18/Help/command/OPTIONS_SHELL.txt
index 0f8ec32..0f8ec32 100644
--- a/share/cmake-3.17/Help/command/OPTIONS_SHELL.txt
+++ b/share/cmake-3.18/Help/command/OPTIONS_SHELL.txt
diff --git a/share/cmake-3.18/Help/command/add_compile_definitions.rst b/share/cmake-3.18/Help/command/add_compile_definitions.rst
new file mode 100644
index 0000000..e10aba0
--- /dev/null
+++ b/share/cmake-3.18/Help/command/add_compile_definitions.rst
@@ -0,0 +1,25 @@
+add_compile_definitions
+-----------------------
+
+Add preprocessor definitions to the compilation of source files.
+
+.. code-block:: cmake
+
+ add_compile_definitions(<definition> ...)
+
+Adds preprocessor definitions to the compiler command line.
+
+The preprocessor definitions are added to the :prop_dir:`COMPILE_DEFINITIONS`
+directory property for the current ``CMakeLists`` file. They are also added to
+the :prop_tgt:`COMPILE_DEFINITIONS` target property for each target in the
+current ``CMakeLists`` file.
+
+Definitions are specified using the syntax ``VAR`` or ``VAR=value``.
+Function-style definitions are not supported. CMake will automatically
+escape the value correctly for the native build system (note that CMake
+language syntax may require escapes to specify some values).
+
+Arguments to ``add_compile_definitions`` may use "generator expressions" with
+the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
+manual for available expressions. See the :manual:`cmake-buildsystem(7)`
+manual for more on defining buildsystem properties.
diff --git a/share/cmake-3.18/Help/command/add_compile_options.rst b/share/cmake-3.18/Help/command/add_compile_options.rst
new file mode 100644
index 0000000..36f403c
--- /dev/null
+++ b/share/cmake-3.18/Help/command/add_compile_options.rst
@@ -0,0 +1,51 @@
+add_compile_options
+-------------------
+
+Add options to the compilation of source files.
+
+.. code-block:: cmake
+
+ add_compile_options(<option> ...)
+
+Adds options to the :prop_dir:`COMPILE_OPTIONS` directory property.
+These options are used when compiling targets from the current
+directory and below.
+
+Arguments
+^^^^^^^^^
+
+Arguments to ``add_compile_options`` may use "generator expressions" with
+the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
+manual for available expressions. See the :manual:`cmake-buildsystem(7)`
+manual for more on defining buildsystem properties.
+
+.. include:: OPTIONS_SHELL.txt
+
+Example
+^^^^^^^
+
+Since different compilers support different options, a typical use of
+this command is in a compiler-specific conditional clause:
+
+.. code-block:: cmake
+
+ if (MSVC)
+ # warning level 4 and all warnings as errors
+ add_compile_options(/W4 /WX)
+ else()
+ # lots of warnings and all warnings as errors
+ add_compile_options(-Wall -Wextra -pedantic -Werror)
+ endif()
+
+See Also
+^^^^^^^^
+
+This command can be used to add any options. However, for
+adding preprocessor definitions and include directories it is recommended
+to use the more specific commands :command:`add_compile_definitions`
+and :command:`include_directories`.
+
+The command :command:`target_compile_options` adds target-specific options.
+
+The source file property :prop_sf:`COMPILE_OPTIONS` adds options to one
+source file.
diff --git a/share/cmake-3.17/Help/command/add_custom_command.rst b/share/cmake-3.18/Help/command/add_custom_command.rst
index 9279748..9279748 100644
--- a/share/cmake-3.17/Help/command/add_custom_command.rst
+++ b/share/cmake-3.18/Help/command/add_custom_command.rst
diff --git a/share/cmake-3.17/Help/command/add_custom_target.rst b/share/cmake-3.18/Help/command/add_custom_target.rst
index 56ab414..56ab414 100644
--- a/share/cmake-3.17/Help/command/add_custom_target.rst
+++ b/share/cmake-3.18/Help/command/add_custom_target.rst
diff --git a/share/cmake-3.18/Help/command/add_definitions.rst b/share/cmake-3.18/Help/command/add_definitions.rst
new file mode 100644
index 0000000..fe69188
--- /dev/null
+++ b/share/cmake-3.18/Help/command/add_definitions.rst
@@ -0,0 +1,35 @@
+add_definitions
+---------------
+
+Add -D define flags to the compilation of source files.
+
+.. code-block:: cmake
+
+ add_definitions(-DFOO -DBAR ...)
+
+Adds definitions to the compiler command line for targets in the current
+directory, whether added before or after this command is invoked, and for
+the ones in sub-directories added after. This command can be used to add any
+flags, but it is intended to add preprocessor definitions.
+
+.. note::
+
+ This command has been superseded by alternatives:
+
+ * Use :command:`add_compile_definitions` to add preprocessor definitions.
+ * Use :command:`include_directories` to add include directories.
+ * Use :command:`add_compile_options` to add other options.
+
+Flags beginning in ``-D`` or ``/D`` that look like preprocessor definitions are
+automatically added to the :prop_dir:`COMPILE_DEFINITIONS` directory
+property for the current directory. Definitions with non-trivial values
+may be left in the set of flags instead of being converted for reasons of
+backwards compatibility. See documentation of the
+:prop_dir:`directory <COMPILE_DEFINITIONS>`,
+:prop_tgt:`target <COMPILE_DEFINITIONS>`,
+:prop_sf:`source file <COMPILE_DEFINITIONS>` ``COMPILE_DEFINITIONS``
+properties for details on adding preprocessor definitions to specific
+scopes and configurations.
+
+See the :manual:`cmake-buildsystem(7)` manual for more on defining
+buildsystem properties.
diff --git a/share/cmake-3.17/Help/command/add_dependencies.rst b/share/cmake-3.18/Help/command/add_dependencies.rst
index de219a5..de219a5 100644
--- a/share/cmake-3.17/Help/command/add_dependencies.rst
+++ b/share/cmake-3.18/Help/command/add_dependencies.rst
diff --git a/share/cmake-3.18/Help/command/add_executable.rst b/share/cmake-3.18/Help/command/add_executable.rst
new file mode 100644
index 0000000..e073228
--- /dev/null
+++ b/share/cmake-3.18/Help/command/add_executable.rst
@@ -0,0 +1,99 @@
+add_executable
+--------------
+
+.. only:: html
+
+ .. contents::
+
+Add an executable to the project using the specified source files.
+
+Normal Executables
+^^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_executable(<name> [WIN32] [MACOSX_BUNDLE]
+ [EXCLUDE_FROM_ALL]
+ [source1] [source2 ...])
+
+Adds an executable target called ``<name>`` to be built from the source
+files listed in the command invocation. (The source files can be omitted
+here if they are added later using :command:`target_sources`.) The
+``<name>`` corresponds to the logical target name and must be globally
+unique within a project. The actual file name of the executable built is
+constructed based on conventions of the native platform (such as
+``<name>.exe`` or just ``<name>``).
+
+By default the executable file will be created in the build tree
+directory corresponding to the source tree directory in which the
+command was invoked. See documentation of the
+:prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target property to change this
+location. See documentation of the :prop_tgt:`OUTPUT_NAME` target property
+to change the ``<name>`` part of the final file name.
+
+If ``WIN32`` is given the property :prop_tgt:`WIN32_EXECUTABLE` will be
+set on the target created. See documentation of that target property for
+details.
+
+If ``MACOSX_BUNDLE`` is given the corresponding property will be set on
+the created target. See documentation of the :prop_tgt:`MACOSX_BUNDLE`
+target property for details.
+
+If ``EXCLUDE_FROM_ALL`` is given the corresponding property will be set on
+the created target. See documentation of the :prop_tgt:`EXCLUDE_FROM_ALL`
+target property for details.
+
+Source arguments to ``add_executable`` may use "generator expressions" with
+the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
+manual for available expressions. See the :manual:`cmake-buildsystem(7)`
+manual for more on defining buildsystem properties.
+
+See also :prop_sf:`HEADER_FILE_ONLY` on what to do if some sources are
+pre-processed, and you want to have the original sources reachable from
+within IDE.
+
+Imported Executables
+^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_executable(<name> IMPORTED [GLOBAL])
+
+An :ref:`IMPORTED executable target <Imported Targets>` references an
+executable file located outside the project. No rules are generated to
+build it, and the :prop_tgt:`IMPORTED` target property is ``True``. The
+target name has scope in the directory in which it is created and below, but
+the ``GLOBAL`` option extends visibility. It may be referenced like any
+target built within the project. ``IMPORTED`` executables are useful
+for convenient reference from commands like :command:`add_custom_command`.
+Details about the imported executable are specified by setting properties
+whose names begin in ``IMPORTED_``. The most important such property is
+:prop_tgt:`IMPORTED_LOCATION` (and its per-configuration version
+:prop_tgt:`IMPORTED_LOCATION_<CONFIG>`) which specifies the location of
+the main executable file on disk. See documentation of the ``IMPORTED_*``
+properties for more information.
+
+Alias Executables
+^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_executable(<name> ALIAS <target>)
+
+Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can
+be used to refer to ``<target>`` in subsequent commands. The ``<name>``
+does not appear in the generated buildsystem as a make target. The
+``<target>`` may not be an ``ALIAS``.
+
+An ``ALIAS`` to a non-``GLOBAL`` :ref:`Imported Target <Imported Targets>`
+has scope in the directory in which the alias is created and below.
+The :prop_tgt:`ALIAS_GLOBAL` target property can be used to check if the
+alias is global or not.
+
+``ALIAS`` targets can be used as targets to read properties
+from, executables for custom commands and custom targets. They can also be
+tested for existence with the regular :command:`if(TARGET)` subcommand.
+The ``<name>`` may not be used to modify properties of ``<target>``, that
+is, it may not be used as the operand of :command:`set_property`,
+:command:`set_target_properties`, :command:`target_link_libraries` etc.
+An ``ALIAS`` target may not be installed or exported.
diff --git a/share/cmake-3.18/Help/command/add_library.rst b/share/cmake-3.18/Help/command/add_library.rst
new file mode 100644
index 0000000..01c415a
--- /dev/null
+++ b/share/cmake-3.18/Help/command/add_library.rst
@@ -0,0 +1,187 @@
+add_library
+-----------
+
+.. only:: html
+
+ .. contents::
+
+Add a library to the project using the specified source files.
+
+Normal Libraries
+^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_library(<name> [STATIC | SHARED | MODULE]
+ [EXCLUDE_FROM_ALL]
+ [source1] [source2 ...])
+
+Adds a library target called ``<name>`` to be built from the source files
+listed in the command invocation. (The source files can be omitted here
+if they are added later using :command:`target_sources`.) The ``<name>``
+corresponds to the logical target name and must be globally unique within
+a project. The actual file name of the library built is constructed based
+on conventions of the native platform (such as ``lib<name>.a`` or
+``<name>.lib``).
+
+``STATIC``, ``SHARED``, or ``MODULE`` may be given to specify the type of
+library to be created. ``STATIC`` libraries are archives of object files
+for use when linking other targets. ``SHARED`` libraries are linked
+dynamically and loaded at runtime. ``MODULE`` libraries are plugins that
+are not linked into other targets but may be loaded dynamically at runtime
+using dlopen-like functionality. If no type is given explicitly the
+type is ``STATIC`` or ``SHARED`` based on whether the current value of the
+variable :variable:`BUILD_SHARED_LIBS` is ``ON``. For ``SHARED`` and
+``MODULE`` libraries the :prop_tgt:`POSITION_INDEPENDENT_CODE` target
+property is set to ``ON`` automatically.
+A ``SHARED`` or ``STATIC`` library may be marked with the :prop_tgt:`FRAMEWORK`
+target property to create an macOS Framework.
+
+If a library does not export any symbols, it must not be declared as a
+``SHARED`` library. For example, a Windows resource DLL or a managed C++/CLI
+DLL that exports no unmanaged symbols would need to be a ``MODULE`` library.
+This is because CMake expects a ``SHARED`` library to always have an
+associated import library on Windows.
+
+By default the library file will be created in the build tree directory
+corresponding to the source tree directory in which the command was
+invoked. See documentation of the :prop_tgt:`ARCHIVE_OUTPUT_DIRECTORY`,
+:prop_tgt:`LIBRARY_OUTPUT_DIRECTORY`, and
+:prop_tgt:`RUNTIME_OUTPUT_DIRECTORY` target properties to change this
+location. See documentation of the :prop_tgt:`OUTPUT_NAME` target
+property to change the ``<name>`` part of the final file name.
+
+If ``EXCLUDE_FROM_ALL`` is given the corresponding property will be set on
+the created target. See documentation of the :prop_tgt:`EXCLUDE_FROM_ALL`
+target property for details.
+
+Source arguments to ``add_library`` may use "generator expressions" with
+the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
+manual for available expressions. See the :manual:`cmake-buildsystem(7)`
+manual for more on defining buildsystem properties.
+
+See also :prop_sf:`HEADER_FILE_ONLY` on what to do if some sources are
+pre-processed, and you want to have the original sources reachable from
+within IDE.
+
+Imported Libraries
+^^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_library(<name> <SHARED|STATIC|MODULE|OBJECT|UNKNOWN> IMPORTED
+ [GLOBAL])
+
+An :ref:`IMPORTED library target <Imported Targets>` references a library
+file located outside the project. No rules are generated to build it, and
+the :prop_tgt:`IMPORTED` target property is ``True``. The target name has
+scope in the directory in which it is created and below, but the ``GLOBAL``
+option extends visibility. It may be referenced like any target built
+within the project. ``IMPORTED`` libraries are useful for convenient
+reference from commands like :command:`target_link_libraries`. Details
+about the imported library are specified by setting properties whose names
+begin in ``IMPORTED_`` and ``INTERFACE_``.
+
+The most important properties are:
+
+* :prop_tgt:`IMPORTED_LOCATION` (and its per-configuration
+ variant :prop_tgt:`IMPORTED_LOCATION_<CONFIG>`) which specifies the
+ location of the main library file on disk.
+* :prop_tgt:`IMPORTED_OBJECTS` (and :prop_tgt:`IMPORTED_OBJECTS_<CONFIG>`)
+ for object libraries, specifies the locations of object files on disk.
+* :prop_tgt:`PUBLIC_HEADER` files to be installed during :command:`install` invocation
+
+See documentation of the ``IMPORTED_*`` and ``INTERFACE_*`` properties
+for more information.
+
+An ``UNKNOWN`` library type is typically only used in the implementation of
+:ref:`Find Modules`. It allows the path to an imported library (often found
+using the :command:`find_library` command) to be used without having to know
+what type of library it is. This is especially useful on Windows where a
+static library and a DLL's import library both have the same file extension.
+
+Object Libraries
+^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_library(<name> OBJECT <src>...)
+
+Creates an :ref:`Object Library <Object Libraries>`. An object library
+compiles source files but does not archive or link their object files into a
+library. Instead other targets created by :command:`add_library` or
+:command:`add_executable` may reference the objects using an expression of the
+form ``$<TARGET_OBJECTS:objlib>`` as a source, where ``objlib`` is the
+object library name. For example:
+
+.. code-block:: cmake
+
+ add_library(... $<TARGET_OBJECTS:objlib> ...)
+ add_executable(... $<TARGET_OBJECTS:objlib> ...)
+
+will include objlib's object files in a library and an executable
+along with those compiled from their own sources. Object libraries
+may contain only sources that compile, header files, and other files
+that would not affect linking of a normal library (e.g. ``.txt``).
+They may contain custom commands generating such sources, but not
+``PRE_BUILD``, ``PRE_LINK``, or ``POST_BUILD`` commands. Some native build
+systems (such as Xcode) may not like targets that have only object files, so
+consider adding at least one real source file to any target that references
+``$<TARGET_OBJECTS:objlib>``.
+
+Alias Libraries
+^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_library(<name> ALIAS <target>)
+
+Creates an :ref:`Alias Target <Alias Targets>`, such that ``<name>`` can be
+used to refer to ``<target>`` in subsequent commands. The ``<name>`` does
+not appear in the generated buildsystem as a make target. The ``<target>``
+may not be an ``ALIAS``.
+
+An ``ALIAS`` to a non-``GLOBAL`` :ref:`Imported Target <Imported Targets>`
+has scope in the directory in which the alias is created and below.
+The :prop_tgt:`ALIAS_GLOBAL` target property can be used to check if the
+alias is global or not.
+
+``ALIAS`` targets can be used as linkable targets and as targets to
+read properties from. They can also be tested for existence with the
+regular :command:`if(TARGET)` subcommand. The ``<name>`` may not be used
+to modify properties of ``<target>``, that is, it may not be used as the
+operand of :command:`set_property`, :command:`set_target_properties`,
+:command:`target_link_libraries` etc. An ``ALIAS`` target may not be
+installed or exported.
+
+Interface Libraries
+^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ add_library(<name> INTERFACE [IMPORTED [GLOBAL]])
+
+Creates an :ref:`Interface Library <Interface Libraries>`. An ``INTERFACE``
+library target does not directly create build output, though it may
+have properties set on it and it may be installed, exported and
+imported. Typically the ``INTERFACE_*`` properties are populated on
+the interface target using the commands:
+
+* :command:`set_property`,
+* :command:`target_link_libraries(INTERFACE)`,
+* :command:`target_link_options(INTERFACE)`,
+* :command:`target_include_directories(INTERFACE)`,
+* :command:`target_compile_options(INTERFACE)`,
+* :command:`target_compile_definitions(INTERFACE)`, and
+* :command:`target_sources(INTERFACE)`,
+
+and then it is used as an argument to :command:`target_link_libraries`
+like any other target.
+
+An ``INTERFACE`` :ref:`Imported Target <Imported Targets>` may also be
+created with this signature. An ``IMPORTED`` library target references a
+library defined outside the project. The target name has scope in the
+directory in which it is created and below, but the ``GLOBAL`` option
+extends visibility. It may be referenced like any target built within
+the project. ``IMPORTED`` libraries are useful for convenient reference
+from commands like :command:`target_link_libraries`.
diff --git a/share/cmake-3.18/Help/command/add_link_options.rst b/share/cmake-3.18/Help/command/add_link_options.rst
new file mode 100644
index 0000000..faa4afb
--- /dev/null
+++ b/share/cmake-3.18/Help/command/add_link_options.rst
@@ -0,0 +1,33 @@
+add_link_options
+----------------
+
+Add options to the link step for executable, shared library or module
+library targets in the current directory and below that are added after
+this command is invoked.
+
+.. code-block:: cmake
+
+ add_link_options(<option> ...)
+
+This command can be used to add any link options, but alternative commands
+exist to add libraries (:command:`target_link_libraries` or
+:command:`link_libraries`). See documentation of the
+:prop_dir:`directory <LINK_OPTIONS>` and
+:prop_tgt:`target <LINK_OPTIONS>` ``LINK_OPTIONS`` properties.
+
+.. note::
+
+ This command cannot be used to add options for static library targets,
+ since they do not use a linker. To add archiver or MSVC librarian flags,
+ see the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property.
+
+Arguments to ``add_link_options`` may use "generator expressions" with
+the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
+manual for available expressions. See the :manual:`cmake-buildsystem(7)`
+manual for more on defining buildsystem properties.
+
+.. include:: DEVICE_LINK_OPTIONS.txt
+
+.. include:: OPTIONS_SHELL.txt
+
+.. include:: LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.17/Help/command/add_subdirectory.rst b/share/cmake-3.18/Help/command/add_subdirectory.rst
index 8dba986..8dba986 100644
--- a/share/cmake-3.17/Help/command/add_subdirectory.rst
+++ b/share/cmake-3.18/Help/command/add_subdirectory.rst
diff --git a/share/cmake-3.17/Help/command/add_test.rst b/share/cmake-3.18/Help/command/add_test.rst
index a77ba37..a77ba37 100644
--- a/share/cmake-3.17/Help/command/add_test.rst
+++ b/share/cmake-3.18/Help/command/add_test.rst
diff --git a/share/cmake-3.17/Help/command/aux_source_directory.rst b/share/cmake-3.18/Help/command/aux_source_directory.rst
index 9619f35..9619f35 100644
--- a/share/cmake-3.17/Help/command/aux_source_directory.rst
+++ b/share/cmake-3.18/Help/command/aux_source_directory.rst
diff --git a/share/cmake-3.17/Help/command/break.rst b/share/cmake-3.18/Help/command/break.rst
index 4875a2b..4875a2b 100644
--- a/share/cmake-3.17/Help/command/break.rst
+++ b/share/cmake-3.18/Help/command/break.rst
diff --git a/share/cmake-3.17/Help/command/build_command.rst b/share/cmake-3.18/Help/command/build_command.rst
index 6659005..6659005 100644
--- a/share/cmake-3.17/Help/command/build_command.rst
+++ b/share/cmake-3.18/Help/command/build_command.rst
diff --git a/share/cmake-3.17/Help/command/build_name.rst b/share/cmake-3.18/Help/command/build_name.rst
index 2a1fbae..2a1fbae 100644
--- a/share/cmake-3.17/Help/command/build_name.rst
+++ b/share/cmake-3.18/Help/command/build_name.rst
diff --git a/share/cmake-3.17/Help/command/cmake_host_system_information.rst b/share/cmake-3.18/Help/command/cmake_host_system_information.rst
index 2e9563a..2e9563a 100644
--- a/share/cmake-3.17/Help/command/cmake_host_system_information.rst
+++ b/share/cmake-3.18/Help/command/cmake_host_system_information.rst
diff --git a/share/cmake-3.18/Help/command/cmake_language.rst b/share/cmake-3.18/Help/command/cmake_language.rst
new file mode 100644
index 0000000..0988097
--- /dev/null
+++ b/share/cmake-3.18/Help/command/cmake_language.rst
@@ -0,0 +1,99 @@
+cmake_language
+--------------
+
+Call meta-operations on CMake commands.
+
+Synopsis
+^^^^^^^^
+
+.. parsed-literal::
+
+ cmake_language(`CALL`_ <command> [<args>...])
+ cmake_language(`EVAL`_ CODE <code>...)
+
+Introduction
+^^^^^^^^^^^^
+
+This command will call meta-operations on built-in CMake commands or
+those created via the :command:`macro` or :command:`function` commands.
+
+``cmake_language`` does not introduce a new variable or policy scope.
+
+Calling Commands
+^^^^^^^^^^^^^^^^
+
+.. _CALL:
+
+.. code-block:: cmake
+
+ cmake_language(CALL <command> [<args>...])
+
+Calls the named ``<command>`` with the given arguments (if any).
+For example, the code:
+
+.. code-block:: cmake
+
+ set(message_command "message")
+ cmake_language(CALL ${message_command} STATUS "Hello World!")
+
+is equivalent to
+
+.. code-block:: cmake
+
+ message(STATUS "Hello World!")
+
+.. note::
+ To ensure consistency of the code, the following commands are not allowed:
+
+ * ``if`` / ``elseif`` / ``else`` / ``endif``
+ * ``while`` / ``endwhile``
+ * ``foreach`` / ``endforeach``
+ * ``function`` / ``endfunction``
+ * ``macro`` / ``endmacro``
+
+Evaluating Code
+^^^^^^^^^^^^^^^
+
+.. _EVAL:
+
+.. code-block:: cmake
+
+ cmake_language(EVAL CODE <code>...)
+
+Evaluates the ``<code>...`` as CMake code.
+
+For example, the code:
+
+.. code-block:: cmake
+
+ set(A TRUE)
+ set(B TRUE)
+ set(C TRUE)
+ set(condition "(A AND B) OR C")
+
+ cmake_language(EVAL CODE "
+ if (${condition})
+ message(STATUS TRUE)
+ else()
+ message(STATUS FALSE)
+ endif()"
+ )
+
+is equivalent to
+
+.. code-block:: cmake
+
+ set(A TRUE)
+ set(B TRUE)
+ set(C TRUE)
+ set(condition "(A AND B) OR C")
+
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/eval.cmake "
+ if (${condition})
+ message(STATUS TRUE)
+ else()
+ message(STATUS FALSE)
+ endif()"
+ )
+
+ include(${CMAKE_CURRENT_BINARY_DIR}/eval.cmake)
diff --git a/share/cmake-3.17/Help/command/cmake_minimum_required.rst b/share/cmake-3.18/Help/command/cmake_minimum_required.rst
index e6ebcf0..e6ebcf0 100644
--- a/share/cmake-3.17/Help/command/cmake_minimum_required.rst
+++ b/share/cmake-3.18/Help/command/cmake_minimum_required.rst
diff --git a/share/cmake-3.17/Help/command/cmake_parse_arguments.rst b/share/cmake-3.18/Help/command/cmake_parse_arguments.rst
index fcd36d0..fcd36d0 100644
--- a/share/cmake-3.17/Help/command/cmake_parse_arguments.rst
+++ b/share/cmake-3.18/Help/command/cmake_parse_arguments.rst
diff --git a/share/cmake-3.17/Help/command/cmake_policy.rst b/share/cmake-3.18/Help/command/cmake_policy.rst
index 4bc7807..4bc7807 100644
--- a/share/cmake-3.17/Help/command/cmake_policy.rst
+++ b/share/cmake-3.18/Help/command/cmake_policy.rst
diff --git a/share/cmake-3.17/Help/command/configure_file.rst b/share/cmake-3.18/Help/command/configure_file.rst
index 29e85bd..29e85bd 100644
--- a/share/cmake-3.17/Help/command/configure_file.rst
+++ b/share/cmake-3.18/Help/command/configure_file.rst
diff --git a/share/cmake-3.17/Help/command/continue.rst b/share/cmake-3.18/Help/command/continue.rst
index 31c7089..31c7089 100644
--- a/share/cmake-3.17/Help/command/continue.rst
+++ b/share/cmake-3.18/Help/command/continue.rst
diff --git a/share/cmake-3.17/Help/command/create_test_sourcelist.rst b/share/cmake-3.18/Help/command/create_test_sourcelist.rst
index 77e37c5..77e37c5 100644
--- a/share/cmake-3.17/Help/command/create_test_sourcelist.rst
+++ b/share/cmake-3.18/Help/command/create_test_sourcelist.rst
diff --git a/share/cmake-3.17/Help/command/ctest_build.rst b/share/cmake-3.18/Help/command/ctest_build.rst
index 66e1844..66e1844 100644
--- a/share/cmake-3.17/Help/command/ctest_build.rst
+++ b/share/cmake-3.18/Help/command/ctest_build.rst
diff --git a/share/cmake-3.17/Help/command/ctest_configure.rst b/share/cmake-3.18/Help/command/ctest_configure.rst
index 2dea07b..2dea07b 100644
--- a/share/cmake-3.17/Help/command/ctest_configure.rst
+++ b/share/cmake-3.18/Help/command/ctest_configure.rst
diff --git a/share/cmake-3.17/Help/command/ctest_coverage.rst b/share/cmake-3.18/Help/command/ctest_coverage.rst
index d50f634..d50f634 100644
--- a/share/cmake-3.17/Help/command/ctest_coverage.rst
+++ b/share/cmake-3.18/Help/command/ctest_coverage.rst
diff --git a/share/cmake-3.17/Help/command/ctest_empty_binary_directory.rst b/share/cmake-3.18/Help/command/ctest_empty_binary_directory.rst
index 7753667..7753667 100644
--- a/share/cmake-3.17/Help/command/ctest_empty_binary_directory.rst
+++ b/share/cmake-3.18/Help/command/ctest_empty_binary_directory.rst
diff --git a/share/cmake-3.17/Help/command/ctest_memcheck.rst b/share/cmake-3.18/Help/command/ctest_memcheck.rst
index 288b65a..288b65a 100644
--- a/share/cmake-3.17/Help/command/ctest_memcheck.rst
+++ b/share/cmake-3.18/Help/command/ctest_memcheck.rst
diff --git a/share/cmake-3.17/Help/command/ctest_read_custom_files.rst b/share/cmake-3.18/Help/command/ctest_read_custom_files.rst
index cf8e17a..cf8e17a 100644
--- a/share/cmake-3.17/Help/command/ctest_read_custom_files.rst
+++ b/share/cmake-3.18/Help/command/ctest_read_custom_files.rst
diff --git a/share/cmake-3.17/Help/command/ctest_run_script.rst b/share/cmake-3.18/Help/command/ctest_run_script.rst
index 5ec543e..5ec543e 100644
--- a/share/cmake-3.17/Help/command/ctest_run_script.rst
+++ b/share/cmake-3.18/Help/command/ctest_run_script.rst
diff --git a/share/cmake-3.17/Help/command/ctest_sleep.rst b/share/cmake-3.18/Help/command/ctest_sleep.rst
index 16a914c..16a914c 100644
--- a/share/cmake-3.17/Help/command/ctest_sleep.rst
+++ b/share/cmake-3.18/Help/command/ctest_sleep.rst
diff --git a/share/cmake-3.17/Help/command/ctest_start.rst b/share/cmake-3.18/Help/command/ctest_start.rst
index f0704ac..f0704ac 100644
--- a/share/cmake-3.17/Help/command/ctest_start.rst
+++ b/share/cmake-3.18/Help/command/ctest_start.rst
diff --git a/share/cmake-3.17/Help/command/ctest_submit.rst b/share/cmake-3.18/Help/command/ctest_submit.rst
index 983fc20..983fc20 100644
--- a/share/cmake-3.17/Help/command/ctest_submit.rst
+++ b/share/cmake-3.18/Help/command/ctest_submit.rst
diff --git a/share/cmake-3.18/Help/command/ctest_test.rst b/share/cmake-3.18/Help/command/ctest_test.rst
new file mode 100644
index 0000000..3589296
--- /dev/null
+++ b/share/cmake-3.18/Help/command/ctest_test.rst
@@ -0,0 +1,144 @@
+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_ON_FAILURE]
+ [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_ON_FAILURE``
+ Stop the execution of the tests once one has failed.
+
+``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.17/Help/command/ctest_update.rst b/share/cmake-3.18/Help/command/ctest_update.rst
index 96a11c9..96a11c9 100644
--- a/share/cmake-3.17/Help/command/ctest_update.rst
+++ b/share/cmake-3.18/Help/command/ctest_update.rst
diff --git a/share/cmake-3.17/Help/command/ctest_upload.rst b/share/cmake-3.18/Help/command/ctest_upload.rst
index 39d9de1..39d9de1 100644
--- a/share/cmake-3.17/Help/command/ctest_upload.rst
+++ b/share/cmake-3.18/Help/command/ctest_upload.rst
diff --git a/share/cmake-3.17/Help/command/define_property.rst b/share/cmake-3.18/Help/command/define_property.rst
index 8f7439b..8f7439b 100644
--- a/share/cmake-3.17/Help/command/define_property.rst
+++ b/share/cmake-3.18/Help/command/define_property.rst
diff --git a/share/cmake-3.17/Help/command/else.rst b/share/cmake-3.18/Help/command/else.rst
index a98fcd8..a98fcd8 100644
--- a/share/cmake-3.17/Help/command/else.rst
+++ b/share/cmake-3.18/Help/command/else.rst
diff --git a/share/cmake-3.17/Help/command/elseif.rst b/share/cmake-3.18/Help/command/elseif.rst
index 6bf8646..6bf8646 100644
--- a/share/cmake-3.17/Help/command/elseif.rst
+++ b/share/cmake-3.18/Help/command/elseif.rst
diff --git a/share/cmake-3.17/Help/command/enable_language.rst b/share/cmake-3.18/Help/command/enable_language.rst
index fdc44f2..fdc44f2 100644
--- a/share/cmake-3.17/Help/command/enable_language.rst
+++ b/share/cmake-3.18/Help/command/enable_language.rst
diff --git a/share/cmake-3.17/Help/command/enable_testing.rst b/share/cmake-3.18/Help/command/enable_testing.rst
index 3ac1a19..3ac1a19 100644
--- a/share/cmake-3.17/Help/command/enable_testing.rst
+++ b/share/cmake-3.18/Help/command/enable_testing.rst
diff --git a/share/cmake-3.17/Help/command/endforeach.rst b/share/cmake-3.18/Help/command/endforeach.rst
index fd923d5..fd923d5 100644
--- a/share/cmake-3.17/Help/command/endforeach.rst
+++ b/share/cmake-3.18/Help/command/endforeach.rst
diff --git a/share/cmake-3.17/Help/command/endfunction.rst b/share/cmake-3.18/Help/command/endfunction.rst
index e27129d..e27129d 100644
--- a/share/cmake-3.17/Help/command/endfunction.rst
+++ b/share/cmake-3.18/Help/command/endfunction.rst
diff --git a/share/cmake-3.17/Help/command/endif.rst b/share/cmake-3.18/Help/command/endif.rst
index fc4f038..fc4f038 100644
--- a/share/cmake-3.17/Help/command/endif.rst
+++ b/share/cmake-3.18/Help/command/endif.rst
diff --git a/share/cmake-3.17/Help/command/endmacro.rst b/share/cmake-3.18/Help/command/endmacro.rst
index 4290ba7..4290ba7 100644
--- a/share/cmake-3.17/Help/command/endmacro.rst
+++ b/share/cmake-3.18/Help/command/endmacro.rst
diff --git a/share/cmake-3.17/Help/command/endwhile.rst b/share/cmake-3.18/Help/command/endwhile.rst
index 5ef585b..5ef585b 100644
--- a/share/cmake-3.17/Help/command/endwhile.rst
+++ b/share/cmake-3.18/Help/command/endwhile.rst
diff --git a/share/cmake-3.17/Help/command/exec_program.rst b/share/cmake-3.18/Help/command/exec_program.rst
index bc9b069..bc9b069 100644
--- a/share/cmake-3.17/Help/command/exec_program.rst
+++ b/share/cmake-3.18/Help/command/exec_program.rst
diff --git a/share/cmake-3.18/Help/command/execute_process.rst b/share/cmake-3.18/Help/command/execute_process.rst
new file mode 100644
index 0000000..b32025f
--- /dev/null
+++ b/share/cmake-3.18/Help/command/execute_process.rst
@@ -0,0 +1,129 @@
+execute_process
+---------------
+
+Execute one or more child processes.
+
+.. code-block:: cmake
+
+ execute_process(COMMAND <cmd1> [<arguments>]
+ [COMMAND <cmd2> [<arguments>]]...
+ [WORKING_DIRECTORY <directory>]
+ [TIMEOUT <seconds>]
+ [RESULT_VARIABLE <variable>]
+ [RESULTS_VARIABLE <variable>]
+ [OUTPUT_VARIABLE <variable>]
+ [ERROR_VARIABLE <variable>]
+ [INPUT_FILE <file>]
+ [OUTPUT_FILE <file>]
+ [ERROR_FILE <file>]
+ [OUTPUT_QUIET]
+ [ERROR_QUIET]
+ [COMMAND_ECHO <where>]
+ [OUTPUT_STRIP_TRAILING_WHITESPACE]
+ [ERROR_STRIP_TRAILING_WHITESPACE]
+ [ENCODING <name>]
+ [ECHO_OUTPUT_VARIABLE]
+ [ECHO_ERROR_VARIABLE])
+
+Runs the given sequence of one or more commands.
+
+Commands are executed concurrently as a pipeline, with the standard
+output of each process piped to the standard input of the next.
+A single standard error pipe is used for all processes.
+
+Options:
+
+``COMMAND``
+ A child process command line.
+
+ CMake executes the child process using operating system APIs directly.
+ All arguments are passed VERBATIM to the child process.
+ No intermediate shell is used, so shell operators such as ``>``
+ are treated as normal arguments.
+ (Use the ``INPUT_*``, ``OUTPUT_*``, and ``ERROR_*`` options to
+ redirect stdin, stdout, and stderr.)
+
+ If a sequential execution of multiple commands is required, use multiple
+ :command:`execute_process` calls with a single ``COMMAND`` argument.
+
+``WORKING_DIRECTORY``
+ The named directory will be set as the current working directory of
+ the child processes.
+
+``TIMEOUT``
+ After the specified number of seconds (fractions allowed), all unfinished
+ child processes will be terminated, and the ``RESULT_VARIABLE`` will be
+ set to a string mentioning the "timeout".
+
+``RESULT_VARIABLE``
+ The variable will be set to contain the result of last child process.
+ This will be an integer return code from the last child or a string
+ describing an error condition.
+
+``RESULTS_VARIABLE <variable>``
+ The variable will be set to contain the result of all processes as a
+ :ref:`semicolon-separated list <CMake Language Lists>`, in order of the
+ given ``COMMAND`` arguments. Each entry will be an integer return code
+ from the corresponding child or a string describing an error condition.
+
+``OUTPUT_VARIABLE``, ``ERROR_VARIABLE``
+ The variable named will be set with the contents of the standard output
+ and standard error pipes, respectively. If the same variable is named
+ for both pipes their output will be merged in the order produced.
+
+``INPUT_FILE, OUTPUT_FILE``, ``ERROR_FILE``
+ The file named will be attached to the standard input of the first
+ process, standard output of the last process, or standard error of
+ all processes, respectively. If the same file is named for both
+ output and error then it will be used for both.
+
+``OUTPUT_QUIET``, ``ERROR_QUIET``
+ The standard output or standard error results will be quietly ignored.
+
+``COMMAND_ECHO <where>``
+ The command being run will be echo'ed to ``<where>`` with ``<where>``
+ being set to one of ``STDERR``, ``STDOUT`` or ``NONE``.
+ See the :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable for a way
+ to control the default behavior when this option is not present.
+
+``ENCODING <name>``
+ On Windows, the encoding that is used to decode output from the process.
+ Ignored on other platforms.
+ Valid encoding names are:
+
+ ``NONE``
+ Perform no decoding. This assumes that the process output is encoded
+ in the same way as CMake's internal encoding (UTF-8).
+ This is the default.
+ ``AUTO``
+ Use the current active console's codepage or if that isn't
+ available then use ANSI.
+ ``ANSI``
+ Use the ANSI codepage.
+ ``OEM``
+ Use the original equipment manufacturer (OEM) code page.
+ ``UTF8`` or ``UTF-8``
+ Use the UTF-8 codepage. Prior to CMake 3.11.0, only ``UTF8`` was accepted
+ for this encoding. In CMake 3.11.0, ``UTF-8`` was added for consistency with
+ the `UTF-8 RFC <https://www.ietf.org/rfc/rfc3629>`_ naming convention.
+
+``ECHO_OUTPUT_VARIABLE``, ``ECHO_ERROR_VARIABLE``
+ The standard output or standard error will not be exclusively redirected to
+ the configured variables.
+
+ The output will be duplicated, it will be sent into the configured variables
+ and also on standard output or standard error.
+
+ This is analogous to the ``tee`` Unix command.
+
+If more than one ``OUTPUT_*`` or ``ERROR_*`` option is given for the
+same pipe the precedence is not specified.
+If no ``OUTPUT_*`` or ``ERROR_*`` options are given the output will
+be shared with the corresponding pipes of the CMake process itself.
+
+The :command:`execute_process` command is a newer more powerful version of
+:command:`exec_program`, but the old command has been kept for compatibility.
+Both commands run while CMake is processing the project prior to build
+system generation. Use :command:`add_custom_target` and
+:command:`add_custom_command` to create custom commands that run at
+build time.
diff --git a/share/cmake-3.17/Help/command/export.rst b/share/cmake-3.18/Help/command/export.rst
index 2ca7056..2ca7056 100644
--- a/share/cmake-3.17/Help/command/export.rst
+++ b/share/cmake-3.18/Help/command/export.rst
diff --git a/share/cmake-3.17/Help/command/export_library_dependencies.rst b/share/cmake-3.18/Help/command/export_library_dependencies.rst
index 9753abf..9753abf 100644
--- a/share/cmake-3.17/Help/command/export_library_dependencies.rst
+++ b/share/cmake-3.18/Help/command/export_library_dependencies.rst
diff --git a/share/cmake-3.18/Help/command/file.rst b/share/cmake-3.18/Help/command/file.rst
new file mode 100644
index 0000000..693c059
--- /dev/null
+++ b/share/cmake-3.18/Help/command/file.rst
@@ -0,0 +1,955 @@
+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> [...])
+ file(`CONFIGURE`_ OUTPUT <output-file> CONTENT <content> [...])
+
+ `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> [...])
+
+ `Archiving`_
+ file(`ARCHIVE_CREATE`_ OUTPUT <archive> PATHS <paths>... [...])
+ file(`ARCHIVE_EXTRACT`_ INPUT <archive> [...])
+
+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). If the
+``HEX`` option is specified, letters in the output (``a`` through ``f``) are in
+lowercase.
+
+.. _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 exclude unwanted system libraries when
+resolving the dependencies, or to include 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 by the value of
+ ``CMAKE_OBJDUMP`` if set, else 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.
+
+.. _CONFIGURE:
+
+.. code-block:: cmake
+
+ file(CONFIGURE OUTPUT output-file
+ CONTENT content
+ [ESCAPE_QUOTES] [@ONLY]
+ [NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])
+
+Generate an output file using the input given by ``CONTENT`` and substitute
+variable values referenced as ``@VAR@`` or ``${VAR}`` contained therein. The
+substitution rules behave the same as the :command:`configure_file` command.
+In order to match :command:`configure_file`'s behavior, generator expressions
+are not supported for both ``OUTPUT`` and ``CONTENT``.
+
+The arguments are:
+
+``OUTPUT <output-file>``
+ Specify the output file name to generate. A relative path is treated with
+ respect to the value of :variable:`CMAKE_CURRENT_BINARY_DIR`.
+ ``<output-file>`` does not support generator expressions.
+
+``CONTENT <content>``
+ Use the content given explicitly as input.
+ ``<content>`` does not support generator expressions.
+
+``ESCAPE_QUOTES``
+ Escape any substituted quotes with backslashes (C-style).
+
+``@ONLY``
+ Restrict variable replacement to references of the form ``@VAR@``.
+ This is useful for configuring scripts that use ``${VAR}`` syntax.
+
+``NEWLINE_STYLE <style>``
+ Specify the newline style for the output file. Specify
+ ``UNIX`` or ``LF`` for ``\n`` newlines, or specify
+ ``DOS``, ``WIN32``, or ``CRLF`` for ``\r\n`` newlines.
+
+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.
+
+``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. If neither ``TLS`` option is given CMake will check
+variables ``CMAKE_TLS_VERIFY`` and ``CMAKE_TLS_CAINFO``, 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>``.
+
+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.
+
+Archiving
+^^^^^^^^^
+
+.. _ARCHIVE_CREATE:
+
+.. code-block:: cmake
+
+ file(ARCHIVE_CREATE OUTPUT <archive>
+ PATHS <paths>...
+ [FORMAT <format>]
+ [COMPRESSION <compression>]
+ [MTIME <mtime>]
+ [VERBOSE])
+
+Creates the specified ``<archive>`` file with the files and directories
+listed in ``<paths>``. Note that ``<paths>`` must list actual files or
+directories, wildcards are not supported.
+
+Use the ``FORMAT`` option to specify the archive format. Supported values
+for ``<format>`` are ``7zip``, ``gnutar``, ``pax``, ``paxr``, ``raw`` and
+``zip``. If ``FORMAT`` is not given, the default format is ``paxr``.
+
+Some archive formats allow the type of compression to be specified.
+The ``7zip`` and ``zip`` archive formats already imply a specific type of
+compression. The other formats use no compression by default, but can be
+directed to do so with the ``COMPRESSION`` option. Valid values for
+``<compression>`` are ``None``, ``BZip2``, ``GZip``, ``XZ``, and ``Zstd``.
+
+.. note::
+ With ``FORMAT`` set to ``raw`` only one file will be compressed with the
+ compression type specified by ``COMPRESSION``.
+
+The ``VERBOSE`` option enables verbose output for the archive operation.
+
+To specify the modification time recorded in tarball entries, use
+the ``MTIME`` option.
+
+.. _ARCHIVE_EXTRACT:
+
+.. code-block:: cmake
+
+ file(ARCHIVE_EXTRACT INPUT <archive>
+ [DESTINATION <dir>]
+ [PATTERNS <patterns>...]
+ [LIST_ONLY]
+ [VERBOSE])
+
+Extracts or lists the content of the specified ``<archive>``.
+
+The directory where the content of the archive will be extracted to can
+be specified using the ``DESTINATION`` option. If the directory does not
+exist, it will be created. If ``DESTINATION`` is not given, the current
+binary directory will be used.
+
+If required, you may select which files and directories to list or extract
+from the archive using the specified ``<patterns>``. Wildcards are supported.
+If the ``PATTERNS`` option is not given, the entire archive will be listed or
+extracted.
+
+``LIST_ONLY`` will list the files in the archive rather than extract them.
+
+With ``VERBOSE``, the command will produce verbose output.
diff --git a/share/cmake-3.17/Help/command/find_file.rst b/share/cmake-3.18/Help/command/find_file.rst
index 3f03f37..3f03f37 100644
--- a/share/cmake-3.17/Help/command/find_file.rst
+++ b/share/cmake-3.18/Help/command/find_file.rst
diff --git a/share/cmake-3.17/Help/command/find_library.rst b/share/cmake-3.18/Help/command/find_library.rst
index 8a55aca..8a55aca 100644
--- a/share/cmake-3.17/Help/command/find_library.rst
+++ b/share/cmake-3.18/Help/command/find_library.rst
diff --git a/share/cmake-3.18/Help/command/find_package.rst b/share/cmake-3.18/Help/command/find_package.rst
new file mode 100644
index 0000000..857de78
--- /dev/null
+++ b/share/cmake-3.18/Help/command/find_package.rst
@@ -0,0 +1,426 @@
+find_package
+------------
+
+.. only:: html
+
+ .. contents::
+
+Find an external project, and load its settings.
+
+.. _`basic signature`:
+
+Basic Signature and Module Mode
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ find_package(<PackageName> [version] [EXACT] [QUIET] [MODULE]
+ [REQUIRED] [[COMPONENTS] [components...]]
+ [OPTIONAL_COMPONENTS components...]
+ [NO_POLICY_SCOPE])
+
+Finds and loads settings from an external project. ``<PackageName>_FOUND``
+will be set to indicate whether the package was found. When the
+package is found package-specific information is provided through
+variables and :ref:`Imported Targets` documented by the package itself. The
+``QUIET`` option disables informational messages, including those indicating
+that the package cannot be found if it is not ``REQUIRED``. The ``REQUIRED``
+option stops processing with an error message if the package cannot be found.
+
+A package-specific list of required components may be listed after the
+``COMPONENTS`` option (or after the ``REQUIRED`` option if present).
+Additional optional components may be listed after
+``OPTIONAL_COMPONENTS``. Available components and their influence on
+whether a package is considered to be found are defined by the target
+package.
+
+The ``[version]`` argument requests a version with which the package found
+should be compatible (format is ``major[.minor[.patch[.tweak]]]``). The
+``EXACT`` option requests that the version be matched exactly. If no
+``[version]`` and/or component list is given to a recursive invocation
+inside a find-module, the corresponding arguments are forwarded
+automatically from the outer call (including the ``EXACT`` flag for
+``[version]``). Version support is currently provided only on a
+package-by-package basis (see the `Version Selection`_ section below).
+
+See the :command:`cmake_policy` command documentation for discussion
+of the ``NO_POLICY_SCOPE`` option.
+
+The command has two modes by which it searches for packages: "Module"
+mode and "Config" mode. The above signature selects Module mode.
+If no module is found the command falls back to Config mode, described
+below. This fall back is disabled if the ``MODULE`` option is given.
+
+In Module mode, CMake searches for a file called ``Find<PackageName>.cmake``.
+The file is first searched in the :variable:`CMAKE_MODULE_PATH`,
+then among the :ref:`Find Modules` provided by the CMake installation.
+If the file is found, it is read and processed by CMake. It is responsible
+for finding the package, checking the version, and producing any needed
+messages. Some find-modules provide limited or no support for versioning;
+check the module documentation.
+
+If the ``MODULE`` option is not specified in the above signature,
+CMake first searches for the package using Module mode. Then, if the
+package is not found, it searches again using Config mode. A user
+may set the variable :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` to
+``TRUE`` to direct CMake first search using Config mode before falling
+back to Module mode.
+
+Full Signature and Config Mode
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+User code should generally look for packages using the above `basic
+signature`_. The remainder of this command documentation specifies the
+full command signature and details of the search process. Project
+maintainers wishing to provide a package to be found by this command
+are encouraged to read on.
+
+The complete Config mode command signature is
+
+.. code-block:: cmake
+
+ find_package(<PackageName> [version] [EXACT] [QUIET]
+ [REQUIRED] [[COMPONENTS] [components...]]
+ [OPTIONAL_COMPONENTS components...]
+ [CONFIG|NO_MODULE]
+ [NO_POLICY_SCOPE]
+ [NAMES name1 [name2 ...]]
+ [CONFIGS config1 [config2 ...]]
+ [HINTS path1 [path2 ... ]]
+ [PATHS path1 [path2 ... ]]
+ [PATH_SUFFIXES suffix1 [suffix2 ...]]
+ [NO_DEFAULT_PATH]
+ [NO_PACKAGE_ROOT_PATH]
+ [NO_CMAKE_PATH]
+ [NO_CMAKE_ENVIRONMENT_PATH]
+ [NO_SYSTEM_ENVIRONMENT_PATH]
+ [NO_CMAKE_PACKAGE_REGISTRY]
+ [NO_CMAKE_BUILDS_PATH] # Deprecated; does nothing.
+ [NO_CMAKE_SYSTEM_PATH]
+ [NO_CMAKE_SYSTEM_PACKAGE_REGISTRY]
+ [CMAKE_FIND_ROOT_PATH_BOTH |
+ ONLY_CMAKE_FIND_ROOT_PATH |
+ NO_CMAKE_FIND_ROOT_PATH])
+
+The ``CONFIG`` option, the synonymous ``NO_MODULE`` option, or the use
+of options not specified in the `basic signature`_ all enforce pure Config
+mode. In pure Config mode, the command skips Module mode search and
+proceeds at once with Config mode search.
+
+Config mode search attempts to locate a configuration file provided by the
+package to be found. A cache entry called ``<PackageName>_DIR`` is created to
+hold the directory containing the file. By default the command
+searches for a package with the name ``<PackageName>``. If the ``NAMES`` option
+is given the names following it are used instead of ``<PackageName>``.
+The command searches for a file called ``<PackageName>Config.cmake`` or
+``<lower-case-package-name>-config.cmake`` for each name specified.
+A replacement set of possible configuration file names may be given
+using the ``CONFIGS`` option. The search procedure is specified below.
+Once found, the configuration file is read and processed by CMake.
+Since the file is provided by the package it already knows the
+location of package contents. The full path to the configuration file
+is stored in the cmake variable ``<PackageName>_CONFIG``.
+
+All configuration files which have been considered by CMake while
+searching for an installation of the package with an appropriate
+version are stored in the cmake variable ``<PackageName>_CONSIDERED_CONFIGS``,
+the associated versions in ``<PackageName>_CONSIDERED_VERSIONS``.
+
+If the package configuration file cannot be found CMake will generate
+an error describing the problem unless the ``QUIET`` argument is
+specified. If ``REQUIRED`` is specified and the package is not found a
+fatal error is generated and the configure step stops executing. If
+``<PackageName>_DIR`` has been set to a directory not containing a
+configuration file CMake will ignore it and search from scratch.
+
+Package maintainers providing CMake package configuration files are
+encouraged to name and install them such that the `Search Procedure`_
+outlined below will find them without requiring use of additional options.
+
+Version Selection
+^^^^^^^^^^^^^^^^^
+
+When the ``[version]`` argument is given Config mode will only find a
+version of the package that claims compatibility with the requested
+version (format is ``major[.minor[.patch[.tweak]]]``). If the ``EXACT``
+option is given only a version of the package claiming an exact match
+of the requested version may be found. CMake does not establish any
+convention for the meaning of version numbers. Package version
+numbers are checked by "version" files provided by the packages
+themselves. For a candidate package configuration file
+``<config-file>.cmake`` the corresponding version file is located next
+to it and named either ``<config-file>-version.cmake`` or
+``<config-file>Version.cmake``. If no such version file is available
+then the configuration file is assumed to not be compatible with any
+requested version. A basic version file containing generic version
+matching code can be created using the
+:module:`CMakePackageConfigHelpers` module. When a version file
+is found it is loaded to check the requested version number. The
+version file is loaded in a nested scope in which the following
+variables have been defined:
+
+``PACKAGE_FIND_NAME``
+ the ``<PackageName>``
+``PACKAGE_FIND_VERSION``
+ full requested version string
+``PACKAGE_FIND_VERSION_MAJOR``
+ major version if requested, else 0
+``PACKAGE_FIND_VERSION_MINOR``
+ minor version if requested, else 0
+``PACKAGE_FIND_VERSION_PATCH``
+ patch version if requested, else 0
+``PACKAGE_FIND_VERSION_TWEAK``
+ tweak version if requested, else 0
+``PACKAGE_FIND_VERSION_COUNT``
+ number of version components, 0 to 4
+
+The version file checks whether it satisfies the requested version and
+sets these variables:
+
+``PACKAGE_VERSION``
+ full provided version string
+``PACKAGE_VERSION_EXACT``
+ true if version is exact match
+``PACKAGE_VERSION_COMPATIBLE``
+ true if version is compatible
+``PACKAGE_VERSION_UNSUITABLE``
+ true if unsuitable as any version
+
+These variables are checked by the ``find_package`` command to determine
+whether the configuration file provides an acceptable version. They
+are not available after the ``find_package`` call returns. If the version
+is acceptable the following variables are set:
+
+``<PackageName>_VERSION``
+ full provided version string
+``<PackageName>_VERSION_MAJOR``
+ major version if provided, else 0
+``<PackageName>_VERSION_MINOR``
+ minor version if provided, else 0
+``<PackageName>_VERSION_PATCH``
+ patch version if provided, else 0
+``<PackageName>_VERSION_TWEAK``
+ tweak version if provided, else 0
+``<PackageName>_VERSION_COUNT``
+ number of version components, 0 to 4
+
+and the corresponding package configuration file is loaded.
+When multiple package configuration files are available whose version files
+claim compatibility with the version requested it is unspecified which
+one is chosen: unless the variable :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER`
+is set no attempt is made to choose a highest or closest version number.
+
+To control the order in which ``find_package`` checks for compatibility use
+the two variables :variable:`CMAKE_FIND_PACKAGE_SORT_ORDER` and
+:variable:`CMAKE_FIND_PACKAGE_SORT_DIRECTION`.
+For instance in order to select the highest version one can set
+
+.. code-block:: cmake
+
+ SET(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
+ SET(CMAKE_FIND_PACKAGE_SORT_DIRECTION DEC)
+
+before calling ``find_package``.
+
+Search Procedure
+^^^^^^^^^^^^^^^^
+
+CMake constructs a set of possible installation prefixes for the
+package. Under each prefix several directories are searched for a
+configuration file. The tables below show the directories searched.
+Each entry is meant for installation trees following Windows (``W``), UNIX
+(``U``), or Apple (``A``) conventions::
+
+ <prefix>/ (W)
+ <prefix>/(cmake|CMake)/ (W)
+ <prefix>/<name>*/ (W)
+ <prefix>/<name>*/(cmake|CMake)/ (W)
+ <prefix>/(lib/<arch>|lib*|share)/cmake/<name>*/ (U)
+ <prefix>/(lib/<arch>|lib*|share)/<name>*/ (U)
+ <prefix>/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/ (U)
+ <prefix>/<name>*/(lib/<arch>|lib*|share)/cmake/<name>*/ (W/U)
+ <prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/ (W/U)
+ <prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/ (W/U)
+
+On systems supporting macOS :prop_tgt:`FRAMEWORK` and :prop_tgt:`BUNDLE`, the
+following directories are searched for Frameworks or Application Bundles
+containing a configuration file::
+
+ <prefix>/<name>.framework/Resources/ (A)
+ <prefix>/<name>.framework/Resources/CMake/ (A)
+ <prefix>/<name>.framework/Versions/*/Resources/ (A)
+ <prefix>/<name>.framework/Versions/*/Resources/CMake/ (A)
+ <prefix>/<name>.app/Contents/Resources/ (A)
+ <prefix>/<name>.app/Contents/Resources/CMake/ (A)
+
+In all cases the ``<name>`` is treated as case-insensitive and corresponds
+to any of the names specified (``<PackageName>`` or names given by ``NAMES``).
+
+Paths with ``lib/<arch>`` are enabled if the
+:variable:`CMAKE_LIBRARY_ARCHITECTURE` variable is set. ``lib*`` includes one
+or more of the values ``lib64``, ``lib32``, ``libx32`` or ``lib`` (searched in
+that order).
+
+* Paths with ``lib64`` are searched on 64 bit platforms if the
+ :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` property is set to ``TRUE``.
+* Paths with ``lib32`` are searched on 32 bit platforms if the
+ :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` property is set to ``TRUE``.
+* Paths with ``libx32`` are searched on platforms using the x32 ABI
+ if the :prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` property is set to ``TRUE``.
+* The ``lib`` path is always searched.
+
+If ``PATH_SUFFIXES`` is specified, the suffixes are appended to each
+(``W``) or (``U``) directory entry one-by-one.
+
+This set of directories is intended to work in cooperation with
+projects that provide configuration files in their installation trees.
+Directories above marked with (``W``) are intended for installations on
+Windows where the prefix may point at the top of an application's
+installation directory. Those marked with (``U``) are intended for
+installations on UNIX platforms where the prefix is shared by multiple
+packages. This is merely a convention, so all (``W``) and (``U``) directories
+are still searched on all platforms. Directories marked with (``A``) are
+intended for installations on Apple platforms. The
+:variable:`CMAKE_FIND_FRAMEWORK` and :variable:`CMAKE_FIND_APPBUNDLE`
+variables determine the order of preference.
+
+The set of installation prefixes is constructed using the following
+steps. If ``NO_DEFAULT_PATH`` is specified all ``NO_*`` options are
+enabled.
+
+1. Search paths specified in the :variable:`<PackageName>_ROOT` CMake
+ variable and the :envvar:`<PackageName>_ROOT` environment variable,
+ where ``<PackageName>`` is the package to be found.
+ The package root variables are maintained as a stack so if
+ called from within a find module, root paths from the parent's find
+ module will also be searched after paths for the current package.
+ This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed or by setting
+ the :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` to ``FALSE``.
+ See policy :policy:`CMP0074`.
+
+2. Search paths specified in cmake-specific cache variables. These
+ are intended to be used on the command line with a ``-DVAR=value``.
+ The values are interpreted as :ref:`semicolon-separated lists <CMake Language Lists>`.
+ This can be skipped if ``NO_CMAKE_PATH`` is passed or by setting the
+ :variable:`CMAKE_FIND_USE_CMAKE_PATH` to ``FALSE``:
+
+ * :variable:`CMAKE_PREFIX_PATH`
+ * :variable:`CMAKE_FRAMEWORK_PATH`
+ * :variable:`CMAKE_APPBUNDLE_PATH`
+
+3. Search paths specified in cmake-specific environment variables.
+ These are intended to be set in the user's shell configuration,
+ and therefore use the host's native path separator
+ (``;`` on Windows and ``:`` on UNIX).
+ This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed or by setting
+ the :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` to ``FALSE``:
+
+ * ``<PackageName>_DIR``
+ * :envvar:`CMAKE_PREFIX_PATH`
+ * ``CMAKE_FRAMEWORK_PATH``
+ * ``CMAKE_APPBUNDLE_PATH``
+
+4. Search paths specified by the ``HINTS`` option. These should be paths
+ computed by system introspection, such as a hint provided by the
+ location of another item already found. Hard-coded guesses should
+ be specified with the ``PATHS`` option.
+
+5. Search the standard system environment variables. This can be
+ skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is passed or by setting the
+ :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` to ``FALSE``. Path entries
+ ending in ``/bin`` or ``/sbin`` are automatically converted to their
+ parent directories:
+
+ * ``PATH``
+
+6. Search paths stored in the CMake :ref:`User Package Registry`.
+ This can be skipped if ``NO_CMAKE_PACKAGE_REGISTRY`` is passed or by
+ setting the variable :variable:`CMAKE_FIND_USE_PACKAGE_REGISTRY`
+ to ``FALSE`` or the deprecated variable
+ :variable:`CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY` to ``TRUE``.
+
+ See the :manual:`cmake-packages(7)` manual for details on the user
+ package registry.
+
+7. Search cmake variables defined in the Platform files for the
+ current system. This can be skipped if ``NO_CMAKE_SYSTEM_PATH`` is
+ passed or by setting the :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH`
+ to ``FALSE``:
+
+ * :variable:`CMAKE_SYSTEM_PREFIX_PATH`
+ * :variable:`CMAKE_SYSTEM_FRAMEWORK_PATH`
+ * :variable:`CMAKE_SYSTEM_APPBUNDLE_PATH`
+
+ The platform paths that these variables contain are locations that
+ typically include installed software. An example being ``/usr/local`` for
+ UNIX based platforms.
+
+8. Search paths stored in the CMake :ref:`System Package Registry`.
+ This can be skipped if ``NO_CMAKE_SYSTEM_PACKAGE_REGISTRY`` is passed
+ or by setting the :variable:`CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY`
+ variable to ``FALSE`` or the deprecated variable
+ :variable:`CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY` to ``TRUE``.
+
+ See the :manual:`cmake-packages(7)` manual for details on the system
+ package registry.
+
+9. Search paths specified by the ``PATHS`` option. These are typically
+ hard-coded guesses.
+
+.. |FIND_XXX| replace:: find_package
+.. |FIND_ARGS_XXX| replace:: <PackageName>
+.. |CMAKE_FIND_ROOT_PATH_MODE_XXX| replace::
+ :variable:`CMAKE_FIND_ROOT_PATH_MODE_PACKAGE`
+
+.. include:: FIND_XXX_ROOT.txt
+.. include:: FIND_XXX_ORDER.txt
+
+By default the value stored in the result variable will be the path at
+which the file is found. The :variable:`CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS`
+variable may be set to ``TRUE`` before calling ``find_package`` in order
+to resolve symbolic links and store the real path to the file.
+
+Every non-REQUIRED ``find_package`` call can be disabled by setting the
+:variable:`CMAKE_DISABLE_FIND_PACKAGE_<PackageName>` variable to ``TRUE``.
+
+Package File Interface Variables
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When loading a find module or package configuration file ``find_package``
+defines variables to provide information about the call arguments (and
+restores their original state before returning):
+
+``CMAKE_FIND_PACKAGE_NAME``
+ the ``<PackageName>`` which is searched for
+``<PackageName>_FIND_REQUIRED``
+ true if ``REQUIRED`` option was given
+``<PackageName>_FIND_QUIETLY``
+ true if ``QUIET`` option was given
+``<PackageName>_FIND_VERSION``
+ full requested version string
+``<PackageName>_FIND_VERSION_MAJOR``
+ major version if requested, else 0
+``<PackageName>_FIND_VERSION_MINOR``
+ minor version if requested, else 0
+``<PackageName>_FIND_VERSION_PATCH``
+ patch version if requested, else 0
+``<PackageName>_FIND_VERSION_TWEAK``
+ tweak version if requested, else 0
+``<PackageName>_FIND_VERSION_COUNT``
+ number of version components, 0 to 4
+``<PackageName>_FIND_VERSION_EXACT``
+ true if ``EXACT`` option was given
+``<PackageName>_FIND_COMPONENTS``
+ list of requested components
+``<PackageName>_FIND_REQUIRED_<c>``
+ true if component ``<c>`` is required,
+ false if component ``<c>`` is optional
+
+In Module mode the loaded find module is responsible to honor the
+request detailed by these variables; see the find module for details.
+In Config mode ``find_package`` handles ``REQUIRED``, ``QUIET``, and
+``[version]`` options automatically but leaves it to the package
+configuration file to handle components in a way that makes sense
+for the package. The package configuration file may set
+``<PackageName>_FOUND`` to false to tell ``find_package`` that component
+requirements are not satisfied.
diff --git a/share/cmake-3.17/Help/command/find_path.rst b/share/cmake-3.18/Help/command/find_path.rst
index 52ffe3c..52ffe3c 100644
--- a/share/cmake-3.17/Help/command/find_path.rst
+++ b/share/cmake-3.18/Help/command/find_path.rst
diff --git a/share/cmake-3.17/Help/command/find_program.rst b/share/cmake-3.18/Help/command/find_program.rst
index e2ff693..e2ff693 100644
--- a/share/cmake-3.17/Help/command/find_program.rst
+++ b/share/cmake-3.18/Help/command/find_program.rst
diff --git a/share/cmake-3.17/Help/command/fltk_wrap_ui.rst b/share/cmake-3.18/Help/command/fltk_wrap_ui.rst
index 6675272..6675272 100644
--- a/share/cmake-3.17/Help/command/fltk_wrap_ui.rst
+++ b/share/cmake-3.18/Help/command/fltk_wrap_ui.rst
diff --git a/share/cmake-3.17/Help/command/foreach.rst b/share/cmake-3.18/Help/command/foreach.rst
index a01a104..a01a104 100644
--- a/share/cmake-3.17/Help/command/foreach.rst
+++ b/share/cmake-3.18/Help/command/foreach.rst
diff --git a/share/cmake-3.18/Help/command/function.rst b/share/cmake-3.18/Help/command/function.rst
new file mode 100644
index 0000000..7a9b907
--- /dev/null
+++ b/share/cmake-3.18/Help/command/function.rst
@@ -0,0 +1,74 @@
+function
+--------
+
+Start recording a function for later invocation as a command.
+
+.. code-block:: cmake
+
+ function(<name> [<arg1> ...])
+ <commands>
+ endfunction()
+
+Defines a function named ``<name>`` that takes arguments named
+``<arg1>``, ... The ``<commands>`` in the function definition
+are recorded; they are not executed until the function is invoked.
+
+Per legacy, the :command:`endfunction` command admits an optional
+``<name>`` argument. If used, it must be a verbatim repeat of the
+argument of the opening ``function`` command.
+
+A function opens a new scope: see :command:`set(var PARENT_SCOPE)` for
+details.
+
+See the :command:`cmake_policy()` command documentation for the behavior
+of policies inside functions.
+
+See the :command:`macro()` command documentation for differences
+between CMake functions and macros.
+
+Invocation
+^^^^^^^^^^
+
+The function invocation is case-insensitive. A function defined as
+
+.. code-block:: cmake
+
+ function(foo)
+ <commands>
+ endfunction()
+
+can be invoked through any of
+
+.. code-block:: cmake
+
+ foo()
+ Foo()
+ FOO()
+ cmake_language(CALL foo)
+
+and so on. However, it is strongly recommended to stay with the
+case chosen in the function definition. Typically functions use
+all-lowercase names.
+
+The :command:`cmake_language(CALL ...)` command can also be used to
+invoke the function.
+
+Arguments
+^^^^^^^^^
+
+When the function is invoked, the recorded ``<commands>`` 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
+``ARGC`` variable 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 functions with optional arguments.
+
+Furthermore, ``ARGV`` holds the list of all arguments given to the
+function 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.
diff --git a/share/cmake-3.17/Help/command/get_cmake_property.rst b/share/cmake-3.18/Help/command/get_cmake_property.rst
index 96764a3..96764a3 100644
--- a/share/cmake-3.17/Help/command/get_cmake_property.rst
+++ b/share/cmake-3.18/Help/command/get_cmake_property.rst
diff --git a/share/cmake-3.17/Help/command/get_directory_property.rst b/share/cmake-3.18/Help/command/get_directory_property.rst
index 218efa9..218efa9 100644
--- a/share/cmake-3.17/Help/command/get_directory_property.rst
+++ b/share/cmake-3.18/Help/command/get_directory_property.rst
diff --git a/share/cmake-3.17/Help/command/get_filename_component.rst b/share/cmake-3.18/Help/command/get_filename_component.rst
index 9bbf877..9bbf877 100644
--- a/share/cmake-3.17/Help/command/get_filename_component.rst
+++ b/share/cmake-3.18/Help/command/get_filename_component.rst
diff --git a/share/cmake-3.18/Help/command/get_property.rst b/share/cmake-3.18/Help/command/get_property.rst
new file mode 100644
index 0000000..0602518
--- /dev/null
+++ b/share/cmake-3.18/Help/command/get_property.rst
@@ -0,0 +1,85 @@
+get_property
+------------
+
+Get a property.
+
+.. code-block:: cmake
+
+ get_property(<variable>
+ <GLOBAL |
+ DIRECTORY [<dir>] |
+ TARGET <target> |
+ SOURCE <source> |
+ [DIRECTORY <dir> | TARGET_DIRECTORY <target>] |
+ INSTALL <file> |
+ TEST <test> |
+ CACHE <entry> |
+ VARIABLE >
+ PROPERTY <name>
+ [SET | DEFINED | BRIEF_DOCS | FULL_DOCS])
+
+Gets one property from one object in a scope.
+
+The first argument specifies the variable in which to store the result.
+The second argument determines the scope from which to get the property.
+It must be one of the following:
+
+``GLOBAL``
+ Scope is unique and does not accept a name.
+
+``DIRECTORY``
+ Scope defaults to the current directory but another
+ directory (already processed by CMake) may be named by the
+ full or relative path ``<dir>``.
+ See also the :command:`get_directory_property` command.
+
+``TARGET``
+ Scope must name one existing target.
+ See also the :command:`get_target_property` command.
+
+``SOURCE``
+ Scope must name one source file. By default, the source file's property
+ will be read from the current source directory's scope, but this can be
+ overridden with one of the following sub-options:
+
+ ``DIRECTORY <dir>``
+ The source file property will be read from the ``<dir>`` directory's
+ scope. CMake must already know about that source directory, either by
+ having added it through a call to :command:`add_subdirectory` or ``<dir>``
+ being the top level source directory. Relative paths are treated as
+ relative to the current source directory.
+
+ ``TARGET_DIRECTORY <target>``
+ The source file property will be read from the directory scope in which
+ ``<target>`` was created (``<target>`` must therefore already exist).
+
+ See also the :command:`get_source_file_property` command.
+
+``INSTALL``
+ Scope must name one installed file path.
+
+``TEST``
+ Scope must name one existing test.
+ See also the :command:`get_test_property` command.
+
+``CACHE``
+ Scope must name one cache entry.
+
+``VARIABLE``
+ Scope is unique and does not accept a name.
+
+The required ``PROPERTY`` option is immediately followed by the name of
+the property to get. If the property is not set an empty value is
+returned, although some properties support inheriting from a parent scope
+if defined to behave that way (see :command:`define_property`).
+
+If the ``SET`` option is given the variable is set to a boolean
+value indicating whether the property has been set. If the ``DEFINED``
+option is given the variable is set to a boolean value indicating
+whether the property has been defined such as with the
+:command:`define_property` command.
+
+If ``BRIEF_DOCS`` or ``FULL_DOCS`` is given then the variable is set to a
+string containing documentation for the requested property. If
+documentation is requested for a property that has not been defined
+``NOTFOUND`` is returned.
diff --git a/share/cmake-3.18/Help/command/get_source_file_property.rst b/share/cmake-3.18/Help/command/get_source_file_property.rst
new file mode 100644
index 0000000..76ed776
--- /dev/null
+++ b/share/cmake-3.18/Help/command/get_source_file_property.rst
@@ -0,0 +1,40 @@
+get_source_file_property
+------------------------
+
+Get a property for a source file.
+
+.. code-block:: cmake
+
+ get_source_file_property(<variable> <file>
+ [DIRECTORY <dir> | TARGET_DIRECTORY <target>]
+ <property>)
+
+Gets a property from a source file. The value of the property is
+stored in the specified ``<variable>``. If the source property is not found,
+the behavior depends on whether it has been defined to be an ``INHERITED``
+property or not (see :command:`define_property`). Non-inherited properties
+will set ``variable`` to ``NOTFOUND``, whereas inherited properties will search
+the relevant parent scope as described for the :command:`define_property`
+command and if still unable to find the property, ``variable`` will be set to
+an empty string.
+
+By default, the source file's property will be read from the current source
+directory's scope, but this can be overridden with one of the following
+sub-options:
+
+``DIRECTORY <dir>``
+ The source file property will be read from the ``<dir>`` directory's
+ scope. CMake must already know about that source directory, either by
+ having added it through a call to :command:`add_subdirectory` or ``<dir>``
+ being the top level source directory. Relative paths are treated as
+ relative to the current source directory.
+
+``TARGET_DIRECTORY <target>``
+ The source file property will be read from the directory scope in which
+ ``<target>`` was created (``<target>`` must therefore already exist).
+
+Use :command:`set_source_files_properties` to set property values. Source
+file properties usually control how the file is built. One property that is
+always there is :prop_sf:`LOCATION`.
+
+See also the more general :command:`get_property` command.
diff --git a/share/cmake-3.18/Help/command/get_target_property.rst b/share/cmake-3.18/Help/command/get_target_property.rst
new file mode 100644
index 0000000..985b1ff
--- /dev/null
+++ b/share/cmake-3.18/Help/command/get_target_property.rst
@@ -0,0 +1,27 @@
+get_target_property
+-------------------
+
+Get a property from a target.
+
+.. code-block:: cmake
+
+ get_target_property(<VAR> target property)
+
+Get a property from a target. The value of the property is stored in
+the variable ``<VAR>``. If the target property is not found, the behavior
+depends on whether it has been defined to be an ``INHERITED`` property
+or not (see :command:`define_property`). Non-inherited properties will
+set ``<VAR>`` to ``<VAR>-NOTFOUND``, whereas inherited properties will search
+the relevant parent scope as described for the :command:`define_property`
+command and if still unable to find the property, ``<VAR>`` will be set to
+an empty string.
+
+Use :command:`set_target_properties` to set target property values.
+Properties are usually used to control how a target is built, but some
+query the target instead. This command can get properties for any
+target so far created. The targets do not need to be in the current
+``CMakeLists.txt`` file.
+
+See also the more general :command:`get_property` command.
+
+See :ref:`Target Properties` for the list of properties known to CMake.
diff --git a/share/cmake-3.17/Help/command/get_test_property.rst b/share/cmake-3.18/Help/command/get_test_property.rst
index e02b9bc..e02b9bc 100644
--- a/share/cmake-3.17/Help/command/get_test_property.rst
+++ b/share/cmake-3.18/Help/command/get_test_property.rst
diff --git a/share/cmake-3.17/Help/command/if.rst b/share/cmake-3.18/Help/command/if.rst
index be992df..be992df 100644
--- a/share/cmake-3.17/Help/command/if.rst
+++ b/share/cmake-3.18/Help/command/if.rst
diff --git a/share/cmake-3.17/Help/command/include.rst b/share/cmake-3.18/Help/command/include.rst
index 80968da..80968da 100644
--- a/share/cmake-3.17/Help/command/include.rst
+++ b/share/cmake-3.18/Help/command/include.rst
diff --git a/share/cmake-3.17/Help/command/include_directories.rst b/share/cmake-3.18/Help/command/include_directories.rst
index fe281c3..fe281c3 100644
--- a/share/cmake-3.17/Help/command/include_directories.rst
+++ b/share/cmake-3.18/Help/command/include_directories.rst
diff --git a/share/cmake-3.17/Help/command/include_external_msproject.rst b/share/cmake-3.18/Help/command/include_external_msproject.rst
index 540a13a..540a13a 100644
--- a/share/cmake-3.17/Help/command/include_external_msproject.rst
+++ b/share/cmake-3.18/Help/command/include_external_msproject.rst
diff --git a/share/cmake-3.17/Help/command/include_guard.rst b/share/cmake-3.18/Help/command/include_guard.rst
index 877aa86..877aa86 100644
--- a/share/cmake-3.17/Help/command/include_guard.rst
+++ b/share/cmake-3.18/Help/command/include_guard.rst
diff --git a/share/cmake-3.17/Help/command/include_regular_expression.rst b/share/cmake-3.18/Help/command/include_regular_expression.rst
index dde8378..dde8378 100644
--- a/share/cmake-3.17/Help/command/include_regular_expression.rst
+++ b/share/cmake-3.18/Help/command/include_regular_expression.rst
diff --git a/share/cmake-3.18/Help/command/install.rst b/share/cmake-3.18/Help/command/install.rst
new file mode 100644
index 0000000..c8df7d9
--- /dev/null
+++ b/share/cmake-3.18/Help/command/install.rst
@@ -0,0 +1,733 @@
+install
+-------
+
+Specify rules to run at install time.
+
+Synopsis
+^^^^^^^^
+
+.. parsed-literal::
+
+ install(`TARGETS`_ <target>... [...])
+ install({`FILES`_ | `PROGRAMS`_} <file>... [...])
+ install(`DIRECTORY`_ <dir>... [...])
+ install(`SCRIPT`_ <file> [...])
+ install(`CODE`_ <code> [...])
+ install(`EXPORT`_ <export-name> [...])
+
+Introduction
+^^^^^^^^^^^^
+
+This command generates installation rules for a project. Install rules
+specified by calls to the ``install()`` command within a source directory
+are executed in order during installation. Install rules in subdirectories
+added by calls to the :command:`add_subdirectory` command are interleaved
+with those in the parent directory to run in the order declared (see
+policy :policy:`CMP0082`).
+
+There are multiple signatures for this command. Some of them define
+installation options for files and targets. Options common to
+multiple signatures are covered here but they are valid only for
+signatures that specify them. The common options are:
+
+``DESTINATION``
+ Specify the directory on disk to which a file will be installed.
+ Arguments can be relative or absolute paths.
+
+ If a relative path is given it is interpreted relative to the value
+ of the :variable:`CMAKE_INSTALL_PREFIX` variable.
+ The prefix can be relocated at install time using the ``DESTDIR``
+ mechanism explained in the :variable:`CMAKE_INSTALL_PREFIX` variable
+ documentation.
+
+ If an absolute path (with a leading slash or drive letter) is given
+ it is used verbatim.
+
+ As absolute paths are not supported by :manual:`cpack <cpack(1)>` installer
+ generators, it is preferable to use relative paths throughout.
+
+``PERMISSIONS``
+ Specify permissions for installed files. Valid permissions are
+ ``OWNER_READ``, ``OWNER_WRITE``, ``OWNER_EXECUTE``, ``GROUP_READ``,
+ ``GROUP_WRITE``, ``GROUP_EXECUTE``, ``WORLD_READ``, ``WORLD_WRITE``,
+ ``WORLD_EXECUTE``, ``SETUID``, and ``SETGID``. Permissions that do
+ not make sense on certain platforms are ignored on those platforms.
+
+``CONFIGURATIONS``
+ Specify a list of build configurations for which the install rule
+ applies (Debug, Release, etc.). Note that the values specified for
+ this option only apply to options listed AFTER the ``CONFIGURATIONS``
+ option. For example, to set separate install paths for the Debug and
+ Release configurations, do the following:
+
+ .. code-block:: cmake
+
+ install(TARGETS target
+ CONFIGURATIONS Debug
+ RUNTIME DESTINATION Debug/bin)
+ install(TARGETS target
+ CONFIGURATIONS Release
+ RUNTIME DESTINATION Release/bin)
+
+ Note that ``CONFIGURATIONS`` appears BEFORE ``RUNTIME DESTINATION``.
+
+``COMPONENT``
+ Specify an installation component name with which the install rule
+ is associated, such as "runtime" or "development". During
+ component-specific installation only install rules associated with
+ the given component name will be executed. During a full installation
+ all components are installed unless marked with ``EXCLUDE_FROM_ALL``.
+ If ``COMPONENT`` is not provided a default component "Unspecified" is
+ created. The default component name may be controlled with the
+ :variable:`CMAKE_INSTALL_DEFAULT_COMPONENT_NAME` variable.
+
+``EXCLUDE_FROM_ALL``
+ Specify that the file is excluded from a full installation and only
+ installed as part of a component-specific installation
+
+``RENAME``
+ Specify a name for an installed file that may be different from the
+ original file. Renaming is allowed only when a single file is
+ installed by the command.
+
+``OPTIONAL``
+ Specify that it is not an error if the file to be installed does
+ not exist.
+
+Command signatures that install files may print messages during
+installation. Use the :variable:`CMAKE_INSTALL_MESSAGE` variable
+to control which messages are printed.
+
+Many of the ``install()`` variants implicitly create the directories
+containing the installed files. If
+:variable:`CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS` is set, these
+directories will be created with the permissions specified. Otherwise,
+they will be created according to the uname rules on Unix-like platforms.
+Windows platforms are unaffected.
+
+Installing Targets
+^^^^^^^^^^^^^^^^^^
+
+.. _`install(TARGETS)`:
+.. _TARGETS:
+
+.. code-block:: cmake
+
+ install(TARGETS targets... [EXPORT <export-name>]
+ [[ARCHIVE|LIBRARY|RUNTIME|OBJECTS|FRAMEWORK|BUNDLE|
+ PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]
+ [DESTINATION <dir>]
+ [PERMISSIONS permissions...]
+ [CONFIGURATIONS [Debug|Release|...]]
+ [COMPONENT <component>]
+ [NAMELINK_COMPONENT <component>]
+ [OPTIONAL] [EXCLUDE_FROM_ALL]
+ [NAMELINK_ONLY|NAMELINK_SKIP]
+ ] [...]
+ [INCLUDES DESTINATION [<dir> ...]]
+ )
+
+The ``TARGETS`` form specifies rules for installing targets from a
+project. There are several kinds of target :ref:`Output Artifacts`
+that may be installed:
+
+``ARCHIVE``
+ Target artifacts of this kind include:
+
+ * *Static libraries*
+ (except on macOS when marked as ``FRAMEWORK``, see below);
+ * *DLL import libraries*
+ (on all Windows-based systems including Cygwin; they have extension
+ ``.lib``, in contrast to the ``.dll`` libraries that go to ``RUNTIME``);
+ * On AIX, the *linker import file* created for executables with
+ :prop_tgt:`ENABLE_EXPORTS` enabled.
+
+``LIBRARY``
+ Target artifacts of this kind include:
+
+ * *Shared libraries*, except
+
+ - DLLs (these go to ``RUNTIME``, see below),
+ - on macOS when marked as ``FRAMEWORK`` (see below).
+
+``RUNTIME``
+ Target artifacts of this kind include:
+
+ * *Executables*
+ (except on macOS when marked as ``MACOSX_BUNDLE``, see ``BUNDLE`` below);
+ * DLLs (on all Windows-based systems including Cygwin; note that the
+ accompanying import libraries are of kind ``ARCHIVE``).
+
+``OBJECTS``
+ Object files associated with *object libraries*.
+
+``FRAMEWORK``
+ Both static and shared libraries marked with the ``FRAMEWORK``
+ property are treated as ``FRAMEWORK`` targets on macOS.
+
+``BUNDLE``
+ Executables marked with the :prop_tgt:`MACOSX_BUNDLE` property are treated as
+ ``BUNDLE`` targets on macOS.
+
+``PUBLIC_HEADER``
+ Any :prop_tgt:`PUBLIC_HEADER` files associated with a library are installed in
+ the destination specified by the ``PUBLIC_HEADER`` argument on non-Apple
+ platforms. Rules defined by this argument are ignored for :prop_tgt:`FRAMEWORK`
+ libraries on Apple platforms because the associated files are installed
+ into the appropriate locations inside the framework folder. See
+ :prop_tgt:`PUBLIC_HEADER` for details.
+
+``PRIVATE_HEADER``
+ Similar to ``PUBLIC_HEADER``, but for ``PRIVATE_HEADER`` files. See
+ :prop_tgt:`PRIVATE_HEADER` for details.
+
+``RESOURCE``
+ Similar to ``PUBLIC_HEADER`` and ``PRIVATE_HEADER``, but for
+ ``RESOURCE`` files. See :prop_tgt:`RESOURCE` for details.
+
+For each of these arguments given, the arguments following them only apply
+to the target or file type specified in the argument. If none is given, the
+installation properties apply to all target types. If only one is given then
+only targets of that type will be installed (which can be used to install
+just a DLL or just an import library.)
+
+For regular executables, static libraries and shared libraries, the
+``DESTINATION`` argument is not required. For these target types, when
+``DESTINATION`` is omitted, a default destination will be taken from the
+appropriate variable from :module:`GNUInstallDirs`, or set to a built-in
+default value if that variable is not defined. The same is true for the
+public and private headers associated with the installed targets through the
+:prop_tgt:`PUBLIC_HEADER` and :prop_tgt:`PRIVATE_HEADER` target properties.
+A destination must always be provided for module libraries, Apple bundles and
+frameworks. A destination can be omitted for interface and object libraries,
+but they are handled differently (see the discussion of this topic toward the
+end of this section).
+
+The following table shows the target types with their associated variables and
+built-in defaults that apply when no destination is given:
+
+================== =============================== ======================
+ Target Type GNUInstallDirs Variable Built-In Default
+================== =============================== ======================
+``RUNTIME`` ``${CMAKE_INSTALL_BINDIR}`` ``bin``
+``LIBRARY`` ``${CMAKE_INSTALL_LIBDIR}`` ``lib``
+``ARCHIVE`` ``${CMAKE_INSTALL_LIBDIR}`` ``lib``
+``PRIVATE_HEADER`` ``${CMAKE_INSTALL_INCLUDEDIR}`` ``include``
+``PUBLIC_HEADER`` ``${CMAKE_INSTALL_INCLUDEDIR}`` ``include``
+================== =============================== ======================
+
+Projects wishing to follow the common practice of installing headers into a
+project-specific subdirectory will need to provide a destination rather than
+rely on the above.
+
+To make packages compliant with distribution filesystem layout policies, if
+projects must specify a ``DESTINATION``, it is recommended that they use a
+path that begins with the appropriate :module:`GNUInstallDirs` variable.
+This allows package maintainers to control the install destination by setting
+the appropriate cache variables. The following example shows a static library
+being installed to the default destination provided by
+:module:`GNUInstallDirs`, but with its headers installed to a project-specific
+subdirectory that follows the above recommendation:
+
+.. code-block:: cmake
+
+ add_library(mylib STATIC ...)
+ set_target_properties(mylib PROPERTIES PUBLIC_HEADER mylib.h)
+ include(GNUInstallDirs)
+ install(TARGETS mylib
+ PUBLIC_HEADER
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/myproj
+ )
+
+In addition to the common options listed above, each target can accept
+the following additional arguments:
+
+``NAMELINK_COMPONENT``
+ On some platforms a versioned shared library has a symbolic link such
+ as::
+
+ lib<name>.so -> lib<name>.so.1
+
+ where ``lib<name>.so.1`` is the soname of the library and ``lib<name>.so``
+ is a "namelink" allowing linkers to find the library when given
+ ``-l<name>``. The ``NAMELINK_COMPONENT`` option is similar to the
+ ``COMPONENT`` option, but it changes the installation component of a shared
+ library namelink if one is generated. If not specified, this defaults to the
+ value of ``COMPONENT``. It is an error to use this parameter outside of a
+ ``LIBRARY`` block.
+
+ Consider the following example:
+
+ .. code-block:: cmake
+
+ install(TARGETS mylib
+ LIBRARY
+ COMPONENT Libraries
+ NAMELINK_COMPONENT Development
+ PUBLIC_HEADER
+ COMPONENT Development
+ )
+
+ In this scenario, if you choose to install only the ``Development``
+ component, both the headers and namelink will be installed without the
+ library. (If you don't also install the ``Libraries`` component, the
+ namelink will be a dangling symlink, and projects that link to the library
+ will have build errors.) If you install only the ``Libraries`` component,
+ only the library will be installed, without the headers and namelink.
+
+ This option is typically used for package managers that have separate
+ runtime and development packages. For example, on Debian systems, the
+ library is expected to be in the runtime package, and the headers and
+ namelink are expected to be in the development package.
+
+ See the :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` target properties for
+ details on creating versioned shared libraries.
+
+``NAMELINK_ONLY``
+ This option causes the installation of only the namelink when a library
+ target is installed. On platforms where versioned shared libraries do not
+ have namelinks or when a library is not versioned, the ``NAMELINK_ONLY``
+ option installs nothing. It is an error to use this parameter outside of a
+ ``LIBRARY`` block.
+
+ When ``NAMELINK_ONLY`` is given, either ``NAMELINK_COMPONENT`` or
+ ``COMPONENT`` may be used to specify the installation component of the
+ namelink, but ``COMPONENT`` should generally be preferred.
+
+``NAMELINK_SKIP``
+ Similar to ``NAMELINK_ONLY``, but it has the opposite effect: it causes the
+ installation of library files other than the namelink when a library target
+ is installed. When neither ``NAMELINK_ONLY`` or ``NAMELINK_SKIP`` are given,
+ both portions are installed. On platforms where versioned shared libraries
+ do not have symlinks or when a library is not versioned, ``NAMELINK_SKIP``
+ installs the library. It is an error to use this parameter outside of a
+ ``LIBRARY`` block.
+
+ If ``NAMELINK_SKIP`` is specified, ``NAMELINK_COMPONENT`` has no effect. It
+ is not recommended to use ``NAMELINK_SKIP`` in conjunction with
+ ``NAMELINK_COMPONENT``.
+
+The `install(TARGETS)`_ command can also accept the following options at the
+top level:
+
+``EXPORT``
+ This option associates the installed target files with an export called
+ ``<export-name>``. It must appear before any target options. To actually
+ install the export file itself, call `install(EXPORT)`_, documented below.
+ See documentation of the :prop_tgt:`EXPORT_NAME` target property to change
+ the name of the exported target.
+
+``INCLUDES DESTINATION``
+ This option specifies a list of directories which will be added to the
+ :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target property of the
+ ``<targets>`` when exported by the `install(EXPORT)`_ command. If a
+ relative path is specified, it is treated as relative to the
+ ``$<INSTALL_PREFIX>``.
+
+One or more groups of properties may be specified in a single call to
+the ``TARGETS`` form of this command. A target may be installed more than
+once to different locations. Consider hypothetical targets ``myExe``,
+``mySharedLib``, and ``myStaticLib``. The code:
+
+.. code-block:: cmake
+
+ install(TARGETS myExe mySharedLib myStaticLib
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib/static)
+ install(TARGETS mySharedLib DESTINATION /some/full/path)
+
+will install ``myExe`` to ``<prefix>/bin`` and ``myStaticLib`` to
+``<prefix>/lib/static``. On non-DLL platforms ``mySharedLib`` will be
+installed to ``<prefix>/lib`` and ``/some/full/path``. On DLL platforms
+the ``mySharedLib`` DLL will be installed to ``<prefix>/bin`` and
+``/some/full/path`` and its import library will be installed to
+``<prefix>/lib/static`` and ``/some/full/path``.
+
+:ref:`Interface Libraries` may be listed among the targets to install.
+They install no artifacts but will be included in an associated ``EXPORT``.
+If :ref:`Object Libraries` are listed but given no destination for their
+object files, they will be exported as :ref:`Interface Libraries`.
+This is sufficient to satisfy transitive usage requirements of other
+targets that link to the object libraries in their implementation.
+
+Installing a target with the :prop_tgt:`EXCLUDE_FROM_ALL` target property
+set to ``TRUE`` has undefined behavior.
+
+`install(TARGETS)`_ can install targets that were created in
+other directories. When using such cross-directory install rules, running
+``make install`` (or similar) from a subdirectory will not guarantee that
+targets from other directories are up-to-date. You can use
+:command:`target_link_libraries` or :command:`add_dependencies`
+to ensure that such out-of-directory targets are built before the
+subdirectory-specific install rules are run.
+
+An install destination given as a ``DESTINATION`` argument may
+use "generator expressions" with the syntax ``$<...>``. See the
+:manual:`cmake-generator-expressions(7)` manual for available expressions.
+
+Installing Files
+^^^^^^^^^^^^^^^^
+
+.. _`install(FILES)`:
+.. _`install(PROGRAMS)`:
+.. _FILES:
+.. _PROGRAMS:
+
+.. code-block:: cmake
+
+ install(<FILES|PROGRAMS> files...
+ TYPE <type> | DESTINATION <dir>
+ [PERMISSIONS permissions...]
+ [CONFIGURATIONS [Debug|Release|...]]
+ [COMPONENT <component>]
+ [RENAME <name>] [OPTIONAL] [EXCLUDE_FROM_ALL])
+
+The ``FILES`` form specifies rules for installing files for a project.
+File names given as relative paths are interpreted with respect to the
+current source directory. Files installed by this form are by default
+given permissions ``OWNER_WRITE``, ``OWNER_READ``, ``GROUP_READ``, and
+``WORLD_READ`` if no ``PERMISSIONS`` argument is given.
+
+The ``PROGRAMS`` form is identical to the ``FILES`` form except that the
+default permissions for the installed file also include ``OWNER_EXECUTE``,
+``GROUP_EXECUTE``, and ``WORLD_EXECUTE``. This form is intended to install
+programs that are not targets, such as shell scripts. Use the ``TARGETS``
+form to install targets built within the project.
+
+The list of ``files...`` given to ``FILES`` or ``PROGRAMS`` may use
+"generator expressions" with the syntax ``$<...>``. See the
+:manual:`cmake-generator-expressions(7)` manual for available expressions.
+However, if any item begins in a generator expression it must evaluate
+to a full path.
+
+Either a ``TYPE`` or a ``DESTINATION`` must be provided, but not both.
+A ``TYPE`` argument specifies the generic file type of the files being
+installed. A destination will then be set automatically by taking the
+corresponding variable from :module:`GNUInstallDirs`, or by using a
+built-in default if that variable is not defined. See the table below for
+the supported file types and their corresponding variables and built-in
+defaults. Projects can provide a ``DESTINATION`` argument instead of a
+file type if they wish to explicitly define the install destination.
+
+======================= ================================== =========================
+ ``TYPE`` Argument GNUInstallDirs Variable Built-In Default
+======================= ================================== =========================
+``BIN`` ``${CMAKE_INSTALL_BINDIR}`` ``bin``
+``SBIN`` ``${CMAKE_INSTALL_SBINDIR}`` ``sbin``
+``LIB`` ``${CMAKE_INSTALL_LIBDIR}`` ``lib``
+``INCLUDE`` ``${CMAKE_INSTALL_INCLUDEDIR}`` ``include``
+``SYSCONF`` ``${CMAKE_INSTALL_SYSCONFDIR}`` ``etc``
+``SHAREDSTATE`` ``${CMAKE_INSTALL_SHARESTATEDIR}`` ``com``
+``LOCALSTATE`` ``${CMAKE_INSTALL_LOCALSTATEDIR}`` ``var``
+``RUNSTATE`` ``${CMAKE_INSTALL_RUNSTATEDIR}`` ``<LOCALSTATE dir>/run``
+``DATA`` ``${CMAKE_INSTALL_DATADIR}`` ``<DATAROOT dir>``
+``INFO`` ``${CMAKE_INSTALL_INFODIR}`` ``<DATAROOT dir>/info``
+``LOCALE`` ``${CMAKE_INSTALL_LOCALEDIR}`` ``<DATAROOT dir>/locale``
+``MAN`` ``${CMAKE_INSTALL_MANDIR}`` ``<DATAROOT dir>/man``
+``DOC`` ``${CMAKE_INSTALL_DOCDIR}`` ``<DATAROOT dir>/doc``
+======================= ================================== =========================
+
+Projects wishing to follow the common practice of installing headers into a
+project-specific subdirectory will need to provide a destination rather than
+rely on the above.
+
+Note that some of the types' built-in defaults use the ``DATAROOT`` directory as
+a prefix. The ``DATAROOT`` prefix is calculated similarly to the types, with
+``CMAKE_INSTALL_DATAROOTDIR`` as the variable and ``share`` as the built-in
+default. You cannot use ``DATAROOT`` as a ``TYPE`` parameter; please use
+``DATA`` instead.
+
+To make packages compliant with distribution filesystem layout policies, if
+projects must specify a ``DESTINATION``, it is recommended that they use a
+path that begins with the appropriate :module:`GNUInstallDirs` variable.
+This allows package maintainers to control the install destination by setting
+the appropriate cache variables. The following example shows how to follow
+this advice while installing headers to a project-specific subdirectory:
+
+.. code-block:: cmake
+
+ include(GNUInstallDirs)
+ install(FILES mylib.h
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/myproj
+ )
+
+An install destination given as a ``DESTINATION`` argument may
+use "generator expressions" with the syntax ``$<...>``. See the
+:manual:`cmake-generator-expressions(7)` manual for available expressions.
+
+Installing Directories
+^^^^^^^^^^^^^^^^^^^^^^
+
+.. _`install(DIRECTORY)`:
+.. _DIRECTORY:
+
+.. code-block:: cmake
+
+ install(DIRECTORY dirs...
+ TYPE <type> | DESTINATION <dir>
+ [FILE_PERMISSIONS permissions...]
+ [DIRECTORY_PERMISSIONS permissions...]
+ [USE_SOURCE_PERMISSIONS] [OPTIONAL] [MESSAGE_NEVER]
+ [CONFIGURATIONS [Debug|Release|...]]
+ [COMPONENT <component>] [EXCLUDE_FROM_ALL]
+ [FILES_MATCHING]
+ [[PATTERN <pattern> | REGEX <regex>]
+ [EXCLUDE] [PERMISSIONS permissions...]] [...])
+
+The ``DIRECTORY`` form installs contents of one or more directories to a
+given destination. The directory structure is copied verbatim to the
+destination. The last component of each directory name is appended to
+the destination directory but a trailing slash may be used to avoid
+this because it leaves the last component empty. Directory names
+given as relative paths are interpreted with respect to the current
+source directory. If no input directory names are given the
+destination directory will be created but nothing will be installed
+into it. The ``FILE_PERMISSIONS`` and ``DIRECTORY_PERMISSIONS`` options
+specify permissions given to files and directories in the destination.
+If ``USE_SOURCE_PERMISSIONS`` is specified and ``FILE_PERMISSIONS`` is not,
+file permissions will be copied from the source directory structure.
+If no permissions are specified files will be given the default
+permissions specified in the ``FILES`` form of the command, and the
+directories will be given the default permissions specified in the
+``PROGRAMS`` form of the command.
+
+The ``MESSAGE_NEVER`` option disables file installation status output.
+
+Installation of directories may be controlled with fine granularity
+using the ``PATTERN`` or ``REGEX`` options. These "match" options specify a
+globbing pattern or regular expression to match directories or files
+encountered within input directories. They may be used to apply
+certain options (see below) to a subset of the files and directories
+encountered. The full path to each input file or directory (with
+forward slashes) is matched against the expression. A ``PATTERN`` will
+match only complete file names: the portion of the full path matching
+the pattern must occur at the end of the file name and be preceded by
+a slash. A ``REGEX`` will match any portion of the full path but it may
+use ``/`` and ``$`` to simulate the ``PATTERN`` behavior. By default all
+files and directories are installed whether or not they are matched.
+The ``FILES_MATCHING`` option may be given before the first match option
+to disable installation of files (but not directories) not matched by
+any expression. For example, the code
+
+.. code-block:: cmake
+
+ install(DIRECTORY src/ DESTINATION include/myproj
+ FILES_MATCHING PATTERN "*.h")
+
+will extract and install header files from a source tree.
+
+Some options may follow a ``PATTERN`` or ``REGEX`` expression and are applied
+only to files or directories matching them. The ``EXCLUDE`` option will
+skip the matched file or directory. The ``PERMISSIONS`` option overrides
+the permissions setting for the matched file or directory. For
+example the code
+
+.. code-block:: cmake
+
+ install(DIRECTORY icons scripts/ DESTINATION share/myproj
+ PATTERN "CVS" EXCLUDE
+ PATTERN "scripts/*"
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_READ)
+
+will install the ``icons`` directory to ``share/myproj/icons`` and the
+``scripts`` directory to ``share/myproj``. The icons will get default
+file permissions, the scripts will be given specific permissions, and any
+``CVS`` directories will be excluded.
+
+Either a ``TYPE`` or a ``DESTINATION`` must be provided, but not both.
+A ``TYPE`` argument specifies the generic file type of the files within the
+listed directories being installed. A destination will then be set
+automatically by taking the corresponding variable from
+:module:`GNUInstallDirs`, or by using a built-in default if that variable
+is not defined. See the table below for the supported file types and their
+corresponding variables and built-in defaults. Projects can provide a
+``DESTINATION`` argument instead of a file type if they wish to explicitly
+define the install destination.
+
+======================= ================================== =========================
+ ``TYPE`` Argument GNUInstallDirs Variable Built-In Default
+======================= ================================== =========================
+``BIN`` ``${CMAKE_INSTALL_BINDIR}`` ``bin``
+``SBIN`` ``${CMAKE_INSTALL_SBINDIR}`` ``sbin``
+``LIB`` ``${CMAKE_INSTALL_LIBDIR}`` ``lib``
+``INCLUDE`` ``${CMAKE_INSTALL_INCLUDEDIR}`` ``include``
+``SYSCONF`` ``${CMAKE_INSTALL_SYSCONFDIR}`` ``etc``
+``SHAREDSTATE`` ``${CMAKE_INSTALL_SHARESTATEDIR}`` ``com``
+``LOCALSTATE`` ``${CMAKE_INSTALL_LOCALSTATEDIR}`` ``var``
+``RUNSTATE`` ``${CMAKE_INSTALL_RUNSTATEDIR}`` ``<LOCALSTATE dir>/run``
+``DATA`` ``${CMAKE_INSTALL_DATADIR}`` ``<DATAROOT dir>``
+``INFO`` ``${CMAKE_INSTALL_INFODIR}`` ``<DATAROOT dir>/info``
+``LOCALE`` ``${CMAKE_INSTALL_LOCALEDIR}`` ``<DATAROOT dir>/locale``
+``MAN`` ``${CMAKE_INSTALL_MANDIR}`` ``<DATAROOT dir>/man``
+``DOC`` ``${CMAKE_INSTALL_DOCDIR}`` ``<DATAROOT dir>/doc``
+======================= ================================== =========================
+
+Note that some of the types' built-in defaults use the ``DATAROOT`` directory as
+a prefix. The ``DATAROOT`` prefix is calculated similarly to the types, with
+``CMAKE_INSTALL_DATAROOTDIR`` as the variable and ``share`` as the built-in
+default. You cannot use ``DATAROOT`` as a ``TYPE`` parameter; please use
+``DATA`` instead.
+
+To make packages compliant with distribution filesystem layout policies, if
+projects must specify a ``DESTINATION``, it is recommended that they use a
+path that begins with the appropriate :module:`GNUInstallDirs` variable.
+This allows package maintainers to control the install destination by setting
+the appropriate cache variables.
+
+The list of ``dirs...`` given to ``DIRECTORY`` and an install destination
+given as a ``DESTINATION`` argument may use "generator expressions"
+with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
+manual for available expressions.
+
+Custom Installation Logic
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. _`install(CODE)`:
+.. _`install(SCRIPT)`:
+.. _CODE:
+.. _SCRIPT:
+
+.. code-block:: cmake
+
+ install([[SCRIPT <file>] [CODE <code>]]
+ [COMPONENT <component>] [EXCLUDE_FROM_ALL] [...])
+
+The ``SCRIPT`` form will invoke the given CMake script files during
+installation. If the script file name is a relative path it will be
+interpreted with respect to the current source directory. The ``CODE``
+form will invoke the given CMake code during installation. Code is
+specified as a single argument inside a double-quoted string. For
+example, the code
+
+.. code-block:: cmake
+
+ install(CODE "MESSAGE(\"Sample install message.\")")
+
+will print a message during installation.
+
+``<file>`` or ``<code>`` may use "generator expressions" with the syntax
+``$<...>`` (in the case of ``<file>``, this refers to their use in the file
+name, not the file's contents). See the
+:manual:`cmake-generator-expressions(7)` manual for available expressions.
+
+Installing Exports
+^^^^^^^^^^^^^^^^^^
+
+.. _`install(EXPORT)`:
+.. _EXPORT:
+
+.. code-block:: cmake
+
+ install(EXPORT <export-name> DESTINATION <dir>
+ [NAMESPACE <namespace>] [[FILE <name>.cmake]|
+ [PERMISSIONS permissions...]
+ [CONFIGURATIONS [Debug|Release|...]]
+ [EXPORT_LINK_INTERFACE_LIBRARIES]
+ [COMPONENT <component>]
+ [EXCLUDE_FROM_ALL])
+ install(EXPORT_ANDROID_MK <export-name> DESTINATION <dir> [...])
+
+The ``EXPORT`` form generates and installs a CMake file containing code to
+import targets from the installation tree into another project.
+Target installations are associated with the export ``<export-name>``
+using the ``EXPORT`` option of the `install(TARGETS)`_ signature
+documented above. The ``NAMESPACE`` option will prepend ``<namespace>`` to
+the target names as they are written to the import file. By default
+the generated file will be called ``<export-name>.cmake`` but the ``FILE``
+option may be used to specify a different name. The value given to
+the ``FILE`` option must be a file name with the ``.cmake`` extension.
+If a ``CONFIGURATIONS`` option is given then the file will only be installed
+when one of the named configurations is installed. Additionally, the
+generated import file will reference only the matching target
+configurations. The ``EXPORT_LINK_INTERFACE_LIBRARIES`` keyword, if
+present, causes the contents of the properties matching
+``(IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?`` to be exported, when
+policy :policy:`CMP0022` is ``NEW``.
+
+.. note::
+ The installed ``<export-name>.cmake`` file may come with additional
+ per-configuration ``<export-name>-*.cmake`` files to be loaded by
+ globbing. Do not use an export name that is the same as the package
+ name in combination with installing a ``<package-name>-config.cmake``
+ file or the latter may be incorrectly matched by the glob and loaded.
+
+When a ``COMPONENT`` option is given, the listed ``<component>`` implicitly
+depends on all components mentioned in the export set. The exported
+``<name>.cmake`` file will require each of the exported components to be
+present in order for dependent projects to build properly. For example, a
+project may define components ``Runtime`` and ``Development``, with shared
+libraries going into the ``Runtime`` component and static libraries and
+headers going into the ``Development`` component. The export set would also
+typically be part of the ``Development`` component, but it would export
+targets from both the ``Runtime`` and ``Development`` components. Therefore,
+the ``Runtime`` component would need to be installed if the ``Development``
+component was installed, but not vice versa. If the ``Development`` component
+was installed without the ``Runtime`` component, dependent projects that try
+to link against it would have build errors. Package managers, such as APT and
+RPM, typically handle this by listing the ``Runtime`` component as a dependency
+of the ``Development`` component in the package metadata, ensuring that the
+library is always installed if the headers and CMake export file are present.
+
+In addition to cmake language files, the ``EXPORT_ANDROID_MK`` mode maybe
+used to specify an export to the android ndk build system. This mode
+accepts the same options as the normal export mode. The Android
+NDK supports the use of prebuilt libraries, both static and shared. This
+allows cmake to build the libraries of a project and make them available
+to an ndk build system complete with transitive dependencies, include flags
+and defines required to use the libraries.
+
+The ``EXPORT`` form is useful to help outside projects use targets built
+and installed by the current project. For example, the code
+
+.. code-block:: cmake
+
+ install(TARGETS myexe EXPORT myproj DESTINATION bin)
+ install(EXPORT myproj NAMESPACE mp_ DESTINATION lib/myproj)
+ install(EXPORT_ANDROID_MK myproj DESTINATION share/ndk-modules)
+
+will install the executable ``myexe`` to ``<prefix>/bin`` and code to import
+it in the file ``<prefix>/lib/myproj/myproj.cmake`` and
+``<prefix>/share/ndk-modules/Android.mk``. An outside project
+may load this file with the include command and reference the ``myexe``
+executable from the installation tree using the imported target name
+``mp_myexe`` as if the target were built in its own tree.
+
+.. note::
+ This command supercedes the :command:`install_targets` command and
+ the :prop_tgt:`PRE_INSTALL_SCRIPT` and :prop_tgt:`POST_INSTALL_SCRIPT`
+ target properties. It also replaces the ``FILES`` forms of the
+ :command:`install_files` and :command:`install_programs` commands.
+ The processing order of these install rules relative to
+ those generated by :command:`install_targets`,
+ :command:`install_files`, and :command:`install_programs` commands
+ is not defined.
+
+Generated Installation Script
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. note::
+
+ Use of this feature is not recommended. Please consider using the
+ ``--install`` argument of :manual:`cmake(1)` instead.
+
+The ``install()`` command generates a file, ``cmake_install.cmake``, inside
+the build directory, which is used internally by the generated install target
+and by CPack. You can also invoke this script manually with ``cmake -P``. This
+script accepts several variables:
+
+``COMPONENT``
+ Set this variable to install only a single CPack component as opposed to all
+ of them. For example, if you only want to install the ``Development``
+ component, run ``cmake -DCOMPONENT=Development -P cmake_install.cmake``.
+
+``BUILD_TYPE``
+ Set this variable to change the build type if you are using a multi-config
+ generator. For example, to install with the ``Debug`` configuration, run
+ ``cmake -DBUILD_TYPE=Debug -P cmake_install.cmake``.
+
+``DESTDIR``
+ This is an environment variable rather than a CMake variable. It allows you
+ to change the installation prefix on UNIX systems. See :envvar:`DESTDIR` for
+ details.
diff --git a/share/cmake-3.17/Help/command/install_files.rst b/share/cmake-3.18/Help/command/install_files.rst
index ff074a8..ff074a8 100644
--- a/share/cmake-3.17/Help/command/install_files.rst
+++ b/share/cmake-3.18/Help/command/install_files.rst
diff --git a/share/cmake-3.17/Help/command/install_programs.rst b/share/cmake-3.18/Help/command/install_programs.rst
index fab6482..fab6482 100644
--- a/share/cmake-3.17/Help/command/install_programs.rst
+++ b/share/cmake-3.18/Help/command/install_programs.rst
diff --git a/share/cmake-3.17/Help/command/install_targets.rst b/share/cmake-3.18/Help/command/install_targets.rst
index c9efdce..c9efdce 100644
--- a/share/cmake-3.17/Help/command/install_targets.rst
+++ b/share/cmake-3.18/Help/command/install_targets.rst
diff --git a/share/cmake-3.17/Help/command/link_directories.rst b/share/cmake-3.18/Help/command/link_directories.rst
index 9cb8faa..9cb8faa 100644
--- a/share/cmake-3.17/Help/command/link_directories.rst
+++ b/share/cmake-3.18/Help/command/link_directories.rst
diff --git a/share/cmake-3.17/Help/command/link_libraries.rst b/share/cmake-3.18/Help/command/link_libraries.rst
index 8665cb7..8665cb7 100644
--- a/share/cmake-3.17/Help/command/link_libraries.rst
+++ b/share/cmake-3.18/Help/command/link_libraries.rst
diff --git a/share/cmake-3.18/Help/command/list.rst b/share/cmake-3.18/Help/command/list.rst
new file mode 100644
index 0000000..4d339a0
--- /dev/null
+++ b/share/cmake-3.18/Help/command/list.rst
@@ -0,0 +1,332 @@
+list
+----
+
+List operations.
+
+Synopsis
+^^^^^^^^
+
+.. parsed-literal::
+
+ `Reading`_
+ list(`LENGTH`_ <list> <out-var>)
+ list(`GET`_ <list> <element index> [<index> ...] <out-var>)
+ list(`JOIN`_ <list> <glue> <out-var>)
+ list(`SUBLIST`_ <list> <begin> <length> <out-var>)
+
+ `Search`_
+ list(`FIND`_ <list> <value> <out-var>)
+
+ `Modification`_
+ list(`APPEND`_ <list> [<element>...])
+ list(`FILTER`_ <list> {INCLUDE | EXCLUDE} REGEX <regex>)
+ list(`INSERT`_ <list> <index> [<element>...])
+ list(`POP_BACK`_ <list> [<out-var>...])
+ list(`POP_FRONT`_ <list> [<out-var>...])
+ list(`PREPEND`_ <list> [<element>...])
+ list(`REMOVE_ITEM`_ <list> <value>...)
+ list(`REMOVE_AT`_ <list> <index>...)
+ list(`REMOVE_DUPLICATES`_ <list>)
+ list(`TRANSFORM`_ <list> <ACTION> [...])
+
+ `Ordering`_
+ list(`REVERSE`_ <list>)
+ list(`SORT`_ <list> [...])
+
+Introduction
+^^^^^^^^^^^^
+
+The list subcommands ``APPEND``, ``INSERT``, ``FILTER``, ``PREPEND``,
+``POP_BACK``, ``POP_FRONT``, ``REMOVE_AT``, ``REMOVE_ITEM``,
+``REMOVE_DUPLICATES``, ``REVERSE`` and ``SORT`` may create
+new values for the list within the current CMake variable scope. Similar to
+the :command:`set` command, the LIST command creates new variable values in
+the current scope, even if the list itself is actually defined in a parent
+scope. To propagate the results of these operations upwards, use
+:command:`set` with ``PARENT_SCOPE``, :command:`set` with
+``CACHE INTERNAL``, or some other means of value propagation.
+
+.. note::
+
+ A list in cmake is a ``;`` separated group of strings. To create a
+ list the set command can be used. For example, ``set(var a b c d e)``
+ creates a list with ``a;b;c;d;e``, and ``set(var "a b c d e")`` creates a
+ string or a list with one item in it. (Note macro arguments are not
+ variables, and therefore cannot be used in LIST commands.)
+
+.. note::
+
+ When specifying index values, if ``<element index>`` is 0 or greater, it
+ is indexed from the beginning of the list, with 0 representing the
+ first list element. If ``<element index>`` is -1 or lesser, it is indexed
+ from the end of the list, with -1 representing the last list element.
+ Be careful when counting with negative indices: they do not start from
+ 0. -0 is equivalent to 0, the first list element.
+
+Reading
+^^^^^^^
+
+.. _LENGTH:
+
+.. code-block:: cmake
+
+ list(LENGTH <list> <output variable>)
+
+Returns the list's length.
+
+.. _GET:
+
+.. code-block:: cmake
+
+ list(GET <list> <element index> [<element index> ...] <output variable>)
+
+Returns the list of elements specified by indices from the list.
+
+.. _JOIN:
+
+.. code-block:: cmake
+
+ list(JOIN <list> <glue> <output variable>)
+
+Returns a string joining all list's elements using the glue string.
+To join multiple strings, which are not part of a list, use ``JOIN`` operator
+from :command:`string` command.
+
+.. _SUBLIST:
+
+.. code-block:: cmake
+
+ list(SUBLIST <list> <begin> <length> <output variable>)
+
+Returns a sublist of the given list.
+If ``<length>`` is 0, an empty list will be returned.
+If ``<length>`` is -1 or the list is smaller than ``<begin>+<length>`` then
+the remaining elements of the list starting at ``<begin>`` will be returned.
+
+Search
+^^^^^^
+
+.. _FIND:
+
+.. code-block:: cmake
+
+ list(FIND <list> <value> <output variable>)
+
+Returns the index of the element specified in the list or -1
+if it wasn't found.
+
+Modification
+^^^^^^^^^^^^
+
+.. _APPEND:
+
+.. code-block:: cmake
+
+ list(APPEND <list> [<element> ...])
+
+Appends elements to the list.
+
+.. _FILTER:
+
+.. code-block:: cmake
+
+ list(FILTER <list> <INCLUDE|EXCLUDE> REGEX <regular_expression>)
+
+Includes or removes items from the list that match the mode's pattern.
+In ``REGEX`` mode, items will be matched against the given regular expression.
+
+For more information on regular expressions see also the
+:command:`string` command.
+
+.. _INSERT:
+
+.. code-block:: cmake
+
+ list(INSERT <list> <element_index> <element> [<element> ...])
+
+Inserts elements to the list to the specified location.
+
+.. _POP_BACK:
+
+.. code-block:: cmake
+
+ list(POP_BACK <list> [<out-var>...])
+
+If no variable name is given, removes exactly one element. Otherwise,
+assign the last element's value to the given variable and removes it,
+up to the last variable name given.
+
+.. _POP_FRONT:
+
+.. code-block:: cmake
+
+ list(POP_FRONT <list> [<out-var>...])
+
+If no variable name is given, removes exactly one element. Otherwise,
+assign the first element's value to the given variable and removes it,
+up to the last variable name given.
+
+.. _PREPEND:
+
+.. code-block:: cmake
+
+ list(PREPEND <list> [<element> ...])
+
+Insert elements to the 0th position in the list.
+
+.. _REMOVE_ITEM:
+
+.. code-block:: cmake
+
+ list(REMOVE_ITEM <list> <value> [<value> ...])
+
+Removes all instances of the given items from the list.
+
+.. _REMOVE_AT:
+
+.. code-block:: cmake
+
+ list(REMOVE_AT <list> <index> [<index> ...])
+
+Removes items at given indices from the list.
+
+.. _REMOVE_DUPLICATES:
+
+.. code-block:: cmake
+
+ list(REMOVE_DUPLICATES <list>)
+
+Removes duplicated items in the list. The relative order of items is preserved,
+but if duplicates are encountered, only the first instance is preserved.
+
+.. _TRANSFORM:
+
+.. code-block:: cmake
+
+ list(TRANSFORM <list> <ACTION> [<SELECTOR>]
+ [OUTPUT_VARIABLE <output variable>])
+
+Transforms the list by applying an action to all or, by specifying a
+``<SELECTOR>``, to the selected elements of the list, storing the result
+in-place or in the specified output variable.
+
+.. note::
+
+ The ``TRANSFORM`` sub-command does not change the number of elements in the
+ list. If a ``<SELECTOR>`` is specified, only some elements will be changed,
+ the other ones will remain the same as before the transformation.
+
+``<ACTION>`` specifies the action to apply to the elements of the list.
+The actions have exactly the same semantics as sub-commands of the
+:command:`string` command. ``<ACTION>`` must be one of the following:
+
+``APPEND``, ``PREPEND``: Append, prepend specified value to each element of
+the list.
+
+ .. code-block:: cmake
+
+ list(TRANSFORM <list> <APPEND|PREPEND> <value> ...)
+
+``TOUPPER``, ``TOLOWER``: Convert each element of the list to upper, lower
+characters.
+
+ .. code-block:: cmake
+
+ list(TRANSFORM <list> <TOLOWER|TOUPPER> ...)
+
+``STRIP``: Remove leading and trailing spaces from each element of the
+list.
+
+ .. code-block:: cmake
+
+ list(TRANSFORM <list> STRIP ...)
+
+``GENEX_STRIP``: Strip any
+:manual:`generator expressions <cmake-generator-expressions(7)>` from each
+element of the list.
+
+ .. code-block:: cmake
+
+ list(TRANSFORM <list> GENEX_STRIP ...)
+
+``REPLACE``: Match the regular expression as many times as possible and
+substitute the replacement expression for the match for each element
+of the list
+(Same semantic as ``REGEX REPLACE`` from :command:`string` command).
+
+ .. code-block:: cmake
+
+ list(TRANSFORM <list> REPLACE <regular_expression>
+ <replace_expression> ...)
+
+``<SELECTOR>`` determines which elements of the list will be transformed.
+Only one type of selector can be specified at a time. When given,
+``<SELECTOR>`` must be one of the following:
+
+``AT``: Specify a list of indexes.
+
+ .. code-block:: cmake
+
+ list(TRANSFORM <list> <ACTION> AT <index> [<index> ...] ...)
+
+``FOR``: Specify a range with, optionally, an increment used to iterate over
+the range.
+
+ .. code-block:: cmake
+
+ list(TRANSFORM <list> <ACTION> FOR <start> <stop> [<step>] ...)
+
+``REGEX``: Specify a regular expression. Only elements matching the regular
+expression will be transformed.
+
+ .. code-block:: cmake
+
+ list(TRANSFORM <list> <ACTION> REGEX <regular_expression> ...)
+
+
+Ordering
+^^^^^^^^
+
+.. _REVERSE:
+
+.. code-block:: cmake
+
+ list(REVERSE <list>)
+
+Reverses the contents of the list in-place.
+
+.. _SORT:
+
+.. code-block:: cmake
+
+ list(SORT <list> [COMPARE <compare>] [CASE <case>] [ORDER <order>])
+
+Sorts the list in-place alphabetically.
+Use the ``COMPARE`` keyword to select the comparison method for sorting.
+The ``<compare>`` option should be one of:
+
+* ``STRING``: Sorts a list of strings alphabetically. This is the
+ default behavior if the ``COMPARE`` option is not given.
+* ``FILE_BASENAME``: Sorts a list of pathnames of files by their basenames.
+* ``NATURAL``: Sorts a list of strings using natural order
+ (see ``strverscmp(3)`` manual), i.e. such that contiguous digits
+ are compared as whole numbers.
+ For example: the following list `10.0 1.1 2.1 8.0 2.0 3.1`
+ will be sorted as `1.1 2.0 2.1 3.1 8.0 10.0` if the ``NATURAL``
+ comparison is selected where it will be sorted as
+ `1.1 10.0 2.0 2.1 3.1 8.0` with the ``STRING`` comparison.
+
+Use the ``CASE`` keyword to select a case sensitive or case insensitive
+sort mode. The ``<case>`` option should be one of:
+
+* ``SENSITIVE``: List items are sorted in a case-sensitive manner. This is
+ the default behavior if the ``CASE`` option is not given.
+* ``INSENSITIVE``: List items are sorted case insensitively. The order of
+ items which differ only by upper/lowercase is not specified.
+
+To control the sort order, the ``ORDER`` keyword can be given.
+The ``<order>`` option should be one of:
+
+* ``ASCENDING``: Sorts the list in ascending order. This is the default
+ behavior when the ``ORDER`` option is not given.
+* ``DESCENDING``: Sorts the list in descending order.
diff --git a/share/cmake-3.17/Help/command/load_cache.rst b/share/cmake-3.18/Help/command/load_cache.rst
index b89eb61..b89eb61 100644
--- a/share/cmake-3.17/Help/command/load_cache.rst
+++ b/share/cmake-3.18/Help/command/load_cache.rst
diff --git a/share/cmake-3.17/Help/command/load_command.rst b/share/cmake-3.18/Help/command/load_command.rst
index dc23599..dc23599 100644
--- a/share/cmake-3.17/Help/command/load_command.rst
+++ b/share/cmake-3.18/Help/command/load_command.rst
diff --git a/share/cmake-3.18/Help/command/macro.rst b/share/cmake-3.18/Help/command/macro.rst
new file mode 100644
index 0000000..797a90d
--- /dev/null
+++ b/share/cmake-3.18/Help/command/macro.rst
@@ -0,0 +1,150 @@
+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()
+ cmake_language(CALL 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.
+
+The :command:`cmake_language(CALL ...)` command can also be used to
+invoke the macro.
+
+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 a 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.17/Help/command/make_directory.rst b/share/cmake-3.18/Help/command/make_directory.rst
index 8469b0a..8469b0a 100644
--- a/share/cmake-3.17/Help/command/make_directory.rst
+++ b/share/cmake-3.18/Help/command/make_directory.rst
diff --git a/share/cmake-3.17/Help/command/mark_as_advanced.rst b/share/cmake-3.18/Help/command/mark_as_advanced.rst
index e52e623..e52e623 100644
--- a/share/cmake-3.17/Help/command/mark_as_advanced.rst
+++ b/share/cmake-3.18/Help/command/mark_as_advanced.rst
diff --git a/share/cmake-3.17/Help/command/math.rst b/share/cmake-3.18/Help/command/math.rst
index ddb1ec6..ddb1ec6 100644
--- a/share/cmake-3.17/Help/command/math.rst
+++ b/share/cmake-3.18/Help/command/math.rst
diff --git a/share/cmake-3.17/Help/command/message.rst b/share/cmake-3.18/Help/command/message.rst
index 6bc0e4c..6bc0e4c 100644
--- a/share/cmake-3.17/Help/command/message.rst
+++ b/share/cmake-3.18/Help/command/message.rst
diff --git a/share/cmake-3.18/Help/command/option.rst b/share/cmake-3.18/Help/command/option.rst
new file mode 100644
index 0000000..02b8dac
--- /dev/null
+++ b/share/cmake-3.18/Help/command/option.rst
@@ -0,0 +1,16 @@
+option
+------
+
+Provide an option that the user can optionally select.
+
+.. code-block:: cmake
+
+ option(<variable> "<help_text>" [value])
+
+Provides an option for the user to select as ``ON`` or ``OFF``.
+If no initial ``<value>`` is provided, ``OFF`` is used.
+If ``<variable>`` is already set as a normal or cache variable,
+then the command does nothing (see policy :policy:`CMP0077`).
+
+If you have options that depend on the values of other options, see
+the module help for :module:`CMakeDependentOption`.
diff --git a/share/cmake-3.17/Help/command/output_required_files.rst b/share/cmake-3.18/Help/command/output_required_files.rst
index b3a6e86..b3a6e86 100644
--- a/share/cmake-3.17/Help/command/output_required_files.rst
+++ b/share/cmake-3.18/Help/command/output_required_files.rst
diff --git a/share/cmake-3.17/Help/command/project.rst b/share/cmake-3.18/Help/command/project.rst
index b6093d3..b6093d3 100644
--- a/share/cmake-3.17/Help/command/project.rst
+++ b/share/cmake-3.18/Help/command/project.rst
diff --git a/share/cmake-3.17/Help/command/qt_wrap_cpp.rst b/share/cmake-3.18/Help/command/qt_wrap_cpp.rst
index ce11c2d..ce11c2d 100644
--- a/share/cmake-3.17/Help/command/qt_wrap_cpp.rst
+++ b/share/cmake-3.18/Help/command/qt_wrap_cpp.rst
diff --git a/share/cmake-3.17/Help/command/qt_wrap_ui.rst b/share/cmake-3.18/Help/command/qt_wrap_ui.rst
index efbbc54..efbbc54 100644
--- a/share/cmake-3.17/Help/command/qt_wrap_ui.rst
+++ b/share/cmake-3.18/Help/command/qt_wrap_ui.rst
diff --git a/share/cmake-3.17/Help/command/remove.rst b/share/cmake-3.18/Help/command/remove.rst
index 543d016..543d016 100644
--- a/share/cmake-3.17/Help/command/remove.rst
+++ b/share/cmake-3.18/Help/command/remove.rst
diff --git a/share/cmake-3.17/Help/command/remove_definitions.rst b/share/cmake-3.18/Help/command/remove_definitions.rst
index faad16d..faad16d 100644
--- a/share/cmake-3.17/Help/command/remove_definitions.rst
+++ b/share/cmake-3.18/Help/command/remove_definitions.rst
diff --git a/share/cmake-3.17/Help/command/return.rst b/share/cmake-3.18/Help/command/return.rst
index 830992c..830992c 100644
--- a/share/cmake-3.17/Help/command/return.rst
+++ b/share/cmake-3.18/Help/command/return.rst
diff --git a/share/cmake-3.18/Help/command/separate_arguments.rst b/share/cmake-3.18/Help/command/separate_arguments.rst
new file mode 100644
index 0000000..ab3d5c1
--- /dev/null
+++ b/share/cmake-3.18/Help/command/separate_arguments.rst
@@ -0,0 +1,46 @@
+separate_arguments
+------------------
+
+Parse command-line arguments into a semicolon-separated list.
+
+.. code-block:: cmake
+
+ separate_arguments(<variable> <mode> <args>)
+
+Parses a space-separated string ``<args>`` into a list of items,
+and stores this list in semicolon-separated standard form in ``<variable>``.
+
+This function is intended for parsing command-line arguments.
+The entire command line must be passed as one string in the
+argument ``<args>``.
+
+The exact parsing rules depend on the operating system.
+They are specified by the ``<mode>`` argument which must
+be one of the following keywords:
+
+``UNIX_COMMAND``
+ Arguments are separated by unquoted whitespace.
+ Both single-quote and double-quote pairs are respected.
+ A backslash escapes the next literal character (``\"`` is ``"``);
+ there are no special escapes (``\n`` is just ``n``).
+
+``WINDOWS_COMMAND``
+ A Windows command-line is parsed using the same
+ syntax the runtime library uses to construct argv at startup. It
+ separates arguments by whitespace that is not double-quoted.
+ Backslashes are literal unless they precede double-quotes. See the
+ MSDN article `Parsing C Command-Line Arguments`_ for details.
+
+``NATIVE_COMMAND``
+ Proceeds as in ``WINDOWS_COMMAND`` mode if the host system is Windows.
+ Otherwise proceeds as in ``UNIX_COMMAND`` mode.
+
+.. _`Parsing C Command-Line Arguments`: https://msdn.microsoft.com/library/a1y7w461.aspx
+
+.. code-block:: cmake
+
+ separate_arguments(<var>)
+
+Convert the value of ``<var>`` to a semi-colon separated list. All
+spaces are replaced with ';'. This helps with generating command
+lines.
diff --git a/share/cmake-3.17/Help/command/set.rst b/share/cmake-3.18/Help/command/set.rst
index c0e02e2..c0e02e2 100644
--- a/share/cmake-3.17/Help/command/set.rst
+++ b/share/cmake-3.18/Help/command/set.rst
diff --git a/share/cmake-3.17/Help/command/set_directory_properties.rst b/share/cmake-3.18/Help/command/set_directory_properties.rst
index f02a8e6..f02a8e6 100644
--- a/share/cmake-3.17/Help/command/set_directory_properties.rst
+++ b/share/cmake-3.18/Help/command/set_directory_properties.rst
diff --git a/share/cmake-3.18/Help/command/set_property.rst b/share/cmake-3.18/Help/command/set_property.rst
new file mode 100644
index 0000000..93c2d9c
--- /dev/null
+++ b/share/cmake-3.18/Help/command/set_property.rst
@@ -0,0 +1,96 @@
+set_property
+------------
+
+Set a named property in a given scope.
+
+.. code-block:: cmake
+
+ set_property(<GLOBAL |
+ DIRECTORY [<dir>] |
+ TARGET [<target1> ...] |
+ SOURCE [<src1> ...]
+ [DIRECTORY <dirs> ...] |
+ [TARGET_DIRECTORY <targets> ...]
+ INSTALL [<file1> ...] |
+ TEST [<test1> ...] |
+ CACHE [<entry1> ...] >
+ [APPEND] [APPEND_STRING]
+ PROPERTY <name> [<value1> ...])
+
+Sets one property on zero or more objects of a scope.
+
+The first argument determines the scope in which the property is set.
+It must be one of the following:
+
+``GLOBAL``
+ Scope is unique and does not accept a name.
+
+``DIRECTORY``
+ Scope defaults to the current directory but another directory
+ (already processed by CMake) may be named by full or relative path.
+ See also the :command:`set_directory_properties` command.
+
+``TARGET``
+ Scope may name zero or more existing targets.
+ See also the :command:`set_target_properties` command.
+
+``SOURCE``
+ Scope may name zero or more source files. By default, source file properties
+ are only visible to targets added in the same directory (``CMakeLists.txt``).
+ Visibility can be set in other directory scopes using one or both of the
+ following sub-options:
+
+ ``DIRECTORY <dirs>...``
+ The source file property will be set in each of the ``<dirs>``
+ directories' scopes. CMake must already know about each of these
+ source directories, either by having added them through a call to
+ :command:`add_subdirectory` or it being the top level source directory.
+ Relative paths are treated as relative to the current source directory.
+
+ ``TARGET_DIRECTORY <targets>...``
+ The source file property will be set in each of the directory scopes
+ where any of the specified ``<targets>`` were created (the ``<targets>``
+ must therefore already exist).
+
+ See also the :command:`set_source_files_properties` command.
+
+``INSTALL``
+ Scope may name zero or more installed file paths.
+ These are made available to CPack to influence deployment.
+
+ Both the property key and value may use generator expressions.
+ Specific properties may apply to installed files and/or directories.
+
+ Path components have to be separated by forward slashes,
+ must be normalized and are case sensitive.
+
+ To reference the installation prefix itself with a relative path use ``.``.
+
+ Currently installed file properties are only defined for
+ the WIX generator where the given paths are relative
+ to the installation prefix.
+
+``TEST``
+ Scope may name zero or more existing tests.
+ See also the :command:`set_tests_properties` command.
+
+``CACHE``
+ Scope must name zero or more cache existing entries.
+
+The required ``PROPERTY`` option is immediately followed by the name of
+the property to set. Remaining arguments are used to compose the
+property value in the form of a semicolon-separated list.
+
+If the ``APPEND`` option is given the list is appended to any existing
+property value (except that empty values are ignored and not appended).
+If the ``APPEND_STRING`` option is given the string is
+appended to any existing property value as string, i.e. it results in a
+longer string and not a list of strings. When using ``APPEND`` or
+``APPEND_STRING`` with a property defined to support ``INHERITED``
+behavior (see :command:`define_property`), no inheriting occurs when
+finding the initial value to append to. If the property is not already
+directly set in the nominated scope, the command will behave as though
+``APPEND`` or ``APPEND_STRING`` had not been given.
+
+See the :manual:`cmake-properties(7)` manual for a list of properties
+in each scope.
diff --git a/share/cmake-3.18/Help/command/set_source_files_properties.rst b/share/cmake-3.18/Help/command/set_source_files_properties.rst
new file mode 100644
index 0000000..9558b40
--- /dev/null
+++ b/share/cmake-3.18/Help/command/set_source_files_properties.rst
@@ -0,0 +1,37 @@
+set_source_files_properties
+---------------------------
+
+Source files can have properties that affect how they are built.
+
+.. code-block:: cmake
+
+ set_source_files_properties(<files> ...
+ [DIRECTORY <dirs> ...]
+ [TARGET_DIRECTORY <targets> ...]
+ PROPERTIES <prop1> <value1>
+ [<prop2> <value2>] ...)
+
+Sets properties associated with source files using a key/value paired
+list.
+
+By default, source file properties are only visible to targets added in the
+same directory (``CMakeLists.txt``). Visibility can be set in other directory
+scopes using one or both of the following options:
+
+``DIRECTORY <dirs>...``
+ The source file properties will be set in each of the ``<dirs>``
+ directories' scopes. CMake must already know about each of these
+ source directories, either by having added them through a call to
+ :command:`add_subdirectory` or it being the top level source directory.
+ Relative paths are treated as relative to the current source directory.
+
+``TARGET_DIRECTORY <targets>...``
+ The source file properties will be set in each of the directory scopes
+ where any of the specified ``<targets>`` were created (the ``<targets>``
+ must therefore already exist).
+
+Use :command:`get_source_file_property` to get property values.
+See also the :command:`set_property(SOURCE)` command.
+
+See :ref:`Source File Properties` for the list of properties known
+to CMake.
diff --git a/share/cmake-3.17/Help/command/set_target_properties.rst b/share/cmake-3.18/Help/command/set_target_properties.rst
index 597be23..597be23 100644
--- a/share/cmake-3.17/Help/command/set_target_properties.rst
+++ b/share/cmake-3.18/Help/command/set_target_properties.rst
diff --git a/share/cmake-3.17/Help/command/set_tests_properties.rst b/share/cmake-3.18/Help/command/set_tests_properties.rst
index 9bc94ae..9bc94ae 100644
--- a/share/cmake-3.17/Help/command/set_tests_properties.rst
+++ b/share/cmake-3.18/Help/command/set_tests_properties.rst
diff --git a/share/cmake-3.17/Help/command/site_name.rst b/share/cmake-3.18/Help/command/site_name.rst
index 1bcaead..1bcaead 100644
--- a/share/cmake-3.17/Help/command/site_name.rst
+++ b/share/cmake-3.18/Help/command/site_name.rst
diff --git a/share/cmake-3.18/Help/command/source_group.rst b/share/cmake-3.18/Help/command/source_group.rst
new file mode 100644
index 0000000..5ae9e51
--- /dev/null
+++ b/share/cmake-3.18/Help/command/source_group.rst
@@ -0,0 +1,60 @@
+source_group
+------------
+
+Define a grouping for source files in IDE project generation.
+There are two different signatures to create source groups.
+
+.. code-block:: cmake
+
+ source_group(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
+ source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])
+
+Defines a group into which sources will be placed in project files.
+This is intended to set up file tabs in Visual Studio.
+The options are:
+
+``TREE``
+ CMake will automatically detect, from ``<src>`` files paths, source groups
+ it needs to create, to keep structure of source groups analogically to the
+ actual files and directories structure in the project. Paths of ``<src>``
+ files will be cut to be relative to ``<root>``.
+
+``PREFIX``
+ Source group and files located directly in ``<root>`` path, will be placed
+ in ``<prefix>`` source groups.
+
+``FILES``
+ Any source file specified explicitly will be placed in group
+ ``<name>``. Relative paths are interpreted with respect to the
+ current source directory.
+
+``REGULAR_EXPRESSION``
+ Any source file whose name matches the regular expression will
+ be placed in group ``<name>``.
+
+If a source file matches multiple groups, the *last* group that
+explicitly lists the file with ``FILES`` will be favored, if any.
+If no group explicitly lists the file, the *last* group whose
+regular expression matches the file will be favored.
+
+The ``<name>`` of the group and ``<prefix>`` argument may contain forward
+slashes or backslashes to specify subgroups. Backslashes need to be escaped
+appropriately:
+
+.. code-block:: cmake
+
+ source_group(base/subdir ...)
+ source_group(outer\\inner ...)
+ source_group(TREE <root> PREFIX sources\\inc ...)
+
+For backwards compatibility, the short-hand signature
+
+.. code-block:: cmake
+
+ source_group(<name> <regex>)
+
+is equivalent to
+
+.. code-block:: cmake
+
+ source_group(<name> REGULAR_EXPRESSION <regex>)
diff --git a/share/cmake-3.18/Help/command/string.rst b/share/cmake-3.18/Help/command/string.rst
new file mode 100644
index 0000000..cfcf914
--- /dev/null
+++ b/share/cmake-3.18/Help/command/string.rst
@@ -0,0 +1,472 @@
+string
+------
+
+String operations.
+
+Synopsis
+^^^^^^^^
+
+.. parsed-literal::
+
+ `Search and Replace`_
+ string(`FIND`_ <string> <substring> <out-var> [...])
+ string(`REPLACE`_ <match-string> <replace-string> <out-var> <input>...)
+ string(`REGEX MATCH`_ <match-regex> <out-var> <input>...)
+ string(`REGEX MATCHALL`_ <match-regex> <out-var> <input>...)
+ string(`REGEX REPLACE`_ <match-regex> <replace-expr> <out-var> <input>...)
+
+ `Manipulation`_
+ string(`APPEND`_ <string-var> [<input>...])
+ string(`PREPEND`_ <string-var> [<input>...])
+ string(`CONCAT`_ <out-var> [<input>...])
+ string(`JOIN`_ <glue> <out-var> [<input>...])
+ string(`TOLOWER`_ <string> <out-var>)
+ string(`TOUPPER`_ <string> <out-var>)
+ string(`LENGTH`_ <string> <out-var>)
+ string(`SUBSTRING`_ <string> <begin> <length> <out-var>)
+ string(`STRIP`_ <string> <out-var>)
+ string(`GENEX_STRIP`_ <string> <out-var>)
+ string(`REPEAT`_ <string> <count> <out-var>)
+
+ `Comparison`_
+ string(`COMPARE`_ <op> <string1> <string2> <out-var>)
+
+ `Hashing`_
+ string(`\<HASH\> <HASH_>`_ <out-var> <input>)
+
+ `Generation`_
+ string(`ASCII`_ <number>... <out-var>)
+ string(`HEX`_ <string> <out-var>)
+ string(`CONFIGURE`_ <string> <out-var> [...])
+ string(`MAKE_C_IDENTIFIER`_ <string> <out-var>)
+ string(`RANDOM`_ [<option>...] <out-var>)
+ string(`TIMESTAMP`_ <out-var> [<format string>] [UTC])
+ string(`UUID`_ <out-var> ...)
+
+Search and Replace
+^^^^^^^^^^^^^^^^^^
+
+Search and Replace With Plain Strings
+"""""""""""""""""""""""""""""""""""""
+
+.. _FIND:
+
+.. code-block:: cmake
+
+ string(FIND <string> <substring> <output_variable> [REVERSE])
+
+Return the position where the given ``<substring>`` was found in
+the supplied ``<string>``. If the ``REVERSE`` flag was used, the command will
+search for the position of the last occurrence of the specified
+``<substring>``. If the ``<substring>`` is not found, a position of -1 is
+returned.
+
+The ``string(FIND)`` subcommand treats all strings as ASCII-only characters.
+The index stored in ``<output_variable>`` will also be counted in bytes,
+so strings containing multi-byte characters may lead to unexpected results.
+
+.. _REPLACE:
+
+.. code-block:: cmake
+
+ string(REPLACE <match_string>
+ <replace_string> <output_variable>
+ <input> [<input>...])
+
+Replace all occurrences of ``<match_string>`` in the ``<input>``
+with ``<replace_string>`` and store the result in the ``<output_variable>``.
+
+Search and Replace With Regular Expressions
+"""""""""""""""""""""""""""""""""""""""""""
+
+.. _`REGEX MATCH`:
+
+.. code-block:: cmake
+
+ string(REGEX MATCH <regular_expression>
+ <output_variable> <input> [<input>...])
+
+Match the ``<regular_expression>`` once and store the match in the
+``<output_variable>``.
+All ``<input>`` arguments are concatenated before matching.
+Regular expressions are specified in the subsection just below.
+
+.. _`REGEX MATCHALL`:
+
+.. code-block:: cmake
+
+ string(REGEX MATCHALL <regular_expression>
+ <output_variable> <input> [<input>...])
+
+Match the ``<regular_expression>`` as many times as possible and store the
+matches in the ``<output_variable>`` as a list.
+All ``<input>`` arguments are concatenated before matching.
+
+.. _`REGEX REPLACE`:
+
+.. code-block:: cmake
+
+ string(REGEX REPLACE <regular_expression>
+ <replacement_expression> <output_variable>
+ <input> [<input>...])
+
+Match the ``<regular_expression>`` as many times as possible and substitute
+the ``<replacement_expression>`` for the match in the output.
+All ``<input>`` arguments are concatenated before matching.
+
+The ``<replacement_expression>`` may refer to parenthesis-delimited
+subexpressions of the match using ``\1``, ``\2``, ..., ``\9``. Note that
+two backslashes (``\\1``) are required in CMake code to get a backslash
+through argument parsing.
+
+.. _`Regex Specification`:
+
+Regex Specification
+"""""""""""""""""""
+
+The following characters have special meaning in regular expressions:
+
+``^``
+ Matches at beginning of input
+``$``
+ Matches at end of input
+``.``
+ Matches any single character
+``\<char>``
+ Matches the single character specified by ``<char>``. Use this to
+ match special regex characters, e.g. ``\.`` for a literal ``.``
+ or ``\\`` for a literal backslash ``\``. Escaping a non-special
+ character is unnecessary but allowed, e.g. ``\a`` matches ``a``.
+``[ ]``
+ Matches any character(s) inside the brackets
+``[^ ]``
+ Matches any character(s) not inside the brackets
+``-``
+ Inside brackets, specifies an inclusive range between
+ characters on either side e.g. ``[a-f]`` is ``[abcdef]``
+ To match a literal ``-`` using brackets, make it the first
+ or the last character e.g. ``[+*/-]`` matches basic
+ mathematical operators.
+``*``
+ Matches preceding pattern zero or more times
+``+``
+ Matches preceding pattern one or more times
+``?``
+ Matches preceding pattern zero or once only
+``|``
+ Matches a pattern on either side of the ``|``
+``()``
+ Saves a matched subexpression, which can be referenced
+ in the ``REGEX REPLACE`` operation. Additionally it is saved
+ by all regular expression-related commands, including
+ e.g. :command:`if(MATCHES)`, in the variables
+ :variable:`CMAKE_MATCH_<n>` for ``<n>`` 0..9.
+
+``*``, ``+`` and ``?`` have higher precedence than concatenation. ``|``
+has lower precedence than concatenation. This means that the regular
+expression ``^ab+d$`` matches ``abbd`` but not ``ababd``, and the regular
+expression ``^(ab|cd)$`` matches ``ab`` but not ``abd``.
+
+CMake language :ref:`Escape Sequences` such as ``\t``, ``\r``, ``\n``,
+and ``\\`` may be used to construct literal tabs, carriage returns,
+newlines, and backslashes (respectively) to pass in a regex. For example:
+
+* The quoted argument ``"[ \t\r\n]"`` specifies a regex that matches
+ any single whitespace character.
+* The quoted argument ``"[/\\]"`` specifies a regex that matches
+ a single forward slash ``/`` or backslash ``\``.
+* The quoted argument ``"[A-Za-z0-9_]"`` specifies a regex that matches
+ any single "word" character in the C locale.
+* The quoted argument ``"\\(\\a\\+b\\)"`` specifies a regex that matches
+ the exact string ``(a+b)``. Each ``\\`` is parsed in a quoted argument
+ as just ``\``, so the regex itself is actually ``\(\a\+\b\)``. This
+ can alternatively be specified in a :ref:`bracket argument` without
+ having to escape the backslashes, e.g. ``[[\(\a\+\b\)]]``.
+
+Manipulation
+^^^^^^^^^^^^
+
+.. _APPEND:
+
+.. code-block:: cmake
+
+ string(APPEND <string_variable> [<input>...])
+
+Append all the ``<input>`` arguments to the string.
+
+.. _PREPEND:
+
+.. code-block:: cmake
+
+ string(PREPEND <string_variable> [<input>...])
+
+Prepend all the ``<input>`` arguments to the string.
+
+.. _CONCAT:
+
+.. code-block:: cmake
+
+ string(CONCAT <output_variable> [<input>...])
+
+Concatenate all the ``<input>`` arguments together and store
+the result in the named ``<output_variable>``.
+
+.. _JOIN:
+
+.. code-block:: cmake
+
+ string(JOIN <glue> <output_variable> [<input>...])
+
+Join all the ``<input>`` arguments together using the ``<glue>``
+string and store the result in the named ``<output_variable>``.
+
+To join a list's elements, prefer to use the ``JOIN`` operator
+from the :command:`list` command. This allows for the elements to have
+special characters like ``;`` in them.
+
+.. _TOLOWER:
+
+.. code-block:: cmake
+
+ string(TOLOWER <string> <output_variable>)
+
+Convert ``<string>`` to lower characters.
+
+.. _TOUPPER:
+
+.. code-block:: cmake
+
+ string(TOUPPER <string> <output_variable>)
+
+Convert ``<string>`` to upper characters.
+
+.. _LENGTH:
+
+.. code-block:: cmake
+
+ string(LENGTH <string> <output_variable>)
+
+Store in an ``<output_variable>`` a given string's length in bytes.
+Note that this means if ``<string>`` contains multi-byte characters, the
+result stored in ``<output_variable>`` will *not* be the number of characters.
+
+.. _SUBSTRING:
+
+.. code-block:: cmake
+
+ string(SUBSTRING <string> <begin> <length> <output_variable>)
+
+Store in an ``<output_variable>`` a substring of a given ``<string>``. If
+``<length>`` is ``-1`` the remainder of the string starting at ``<begin>``
+will be returned. If ``<string>`` is shorter than ``<length>`` then the
+end of the string is used instead.
+
+Both ``<begin>`` and ``<length>`` are counted in bytes, so care must
+be exercised if ``<string>`` could contain multi-byte characters.
+
+.. note::
+ CMake 3.1 and below reported an error if ``<length>`` pointed past
+ the end of ``<string>``.
+
+.. _STRIP:
+
+.. code-block:: cmake
+
+ string(STRIP <string> <output_variable>)
+
+Store in an ``<output_variable>`` a substring of a given ``<string>`` with
+leading and trailing spaces removed.
+
+.. _GENEX_STRIP:
+
+.. code-block:: cmake
+
+ string(GENEX_STRIP <string> <output_variable>)
+
+Strip any :manual:`generator expressions <cmake-generator-expressions(7)>`
+from the input ``<string>`` and store the result in the ``<output_variable>``.
+
+.. _REPEAT:
+
+.. code-block:: cmake
+
+ string(REPEAT <string> <count> <output_variable>)
+
+Produce the output string as the input ``<string>`` repeated ``<count>`` times.
+
+Comparison
+^^^^^^^^^^
+
+.. _COMPARE:
+
+.. code-block:: cmake
+
+ string(COMPARE LESS <string1> <string2> <output_variable>)
+ string(COMPARE GREATER <string1> <string2> <output_variable>)
+ string(COMPARE EQUAL <string1> <string2> <output_variable>)
+ string(COMPARE NOTEQUAL <string1> <string2> <output_variable>)
+ string(COMPARE LESS_EQUAL <string1> <string2> <output_variable>)
+ string(COMPARE GREATER_EQUAL <string1> <string2> <output_variable>)
+
+Compare the strings and store true or false in the ``<output_variable>``.
+
+.. _`Supported Hash Algorithms`:
+
+Hashing
+^^^^^^^
+
+.. _`HASH`:
+
+.. code-block:: cmake
+
+ string(<HASH> <output_variable> <input>)
+
+Compute a cryptographic hash of the ``<input>`` string.
+The supported ``<HASH>`` algorithm names are:
+
+``MD5``
+ Message-Digest Algorithm 5, RFC 1321.
+``SHA1``
+ US Secure Hash Algorithm 1, RFC 3174.
+``SHA224``
+ US Secure Hash Algorithms, RFC 4634.
+``SHA256``
+ US Secure Hash Algorithms, RFC 4634.
+``SHA384``
+ US Secure Hash Algorithms, RFC 4634.
+``SHA512``
+ US Secure Hash Algorithms, RFC 4634.
+``SHA3_224``
+ Keccak SHA-3.
+``SHA3_256``
+ Keccak SHA-3.
+``SHA3_384``
+ Keccak SHA-3.
+``SHA3_512``
+ Keccak SHA-3.
+
+Generation
+^^^^^^^^^^
+
+.. _ASCII:
+
+.. code-block:: cmake
+
+ string(ASCII <number> [<number> ...] <output_variable>)
+
+Convert all numbers into corresponding ASCII characters.
+
+.. _HEX:
+
+.. code-block:: cmake
+
+ string(HEX <string> <output_variable>)
+
+Convert each byte in the input ``<string>`` to its hexadecimal representation
+and store the concatenated hex digits in the ``<output_variable>``. Letters in
+the output (``a`` through ``f``) are in lowercase.
+
+.. _CONFIGURE:
+
+.. code-block:: cmake
+
+ string(CONFIGURE <string> <output_variable>
+ [@ONLY] [ESCAPE_QUOTES])
+
+Transform a ``<string>`` like :command:`configure_file` transforms a file.
+
+.. _MAKE_C_IDENTIFIER:
+
+.. code-block:: cmake
+
+ string(MAKE_C_IDENTIFIER <string> <output_variable>)
+
+Convert each non-alphanumeric character in the input ``<string>`` to an
+underscore and store the result in the ``<output_variable>``. If the first
+character of the ``<string>`` is a digit, an underscore will also be prepended
+to the result.
+
+.. _RANDOM:
+
+.. code-block:: cmake
+
+ string(RANDOM [LENGTH <length>] [ALPHABET <alphabet>]
+ [RANDOM_SEED <seed>] <output_variable>)
+
+Return a random string of given ``<length>`` consisting of
+characters from the given ``<alphabet>``. Default length is 5 characters
+and default alphabet is all numbers and upper and lower case letters.
+If an integer ``RANDOM_SEED`` is given, its value will be used to seed the
+random number generator.
+
+.. _TIMESTAMP:
+
+.. code-block:: cmake
+
+ string(TIMESTAMP <output_variable> [<format_string>] [UTC])
+
+Write a string representation of the current date
+and/or time to the ``<output_variable>``.
+
+If the command is unable to obtain a timestamp, the ``<output_variable>``
+will be set to the empty string ``""``.
+
+The optional ``UTC`` flag requests the current date/time representation to
+be in Coordinated Universal Time (UTC) rather than local time.
+
+The optional ``<format_string>`` may contain the following format
+specifiers:
+
+::
+
+ %% A literal percent sign (%).
+ %d The day of the current month (01-31).
+ %H The hour on a 24-hour clock (00-23).
+ %I The hour on a 12-hour clock (01-12).
+ %j The day of the current year (001-366).
+ %m The month of the current year (01-12).
+ %b Abbreviated month name (e.g. Oct).
+ %B Full month name (e.g. October).
+ %M The minute of the current hour (00-59).
+ %s Seconds since midnight (UTC) 1-Jan-1970 (UNIX time).
+ %S The second of the current minute.
+ 60 represents a leap second. (00-60)
+ %U The week number of the current year (00-53).
+ %w The day of the current week. 0 is Sunday. (0-6)
+ %a Abbreviated weekday name (e.g. Fri).
+ %A Full weekday name (e.g. Friday).
+ %y The last two digits of the current year (00-99)
+ %Y The current year.
+
+Unknown format specifiers will be ignored and copied to the output
+as-is.
+
+If no explicit ``<format_string>`` is given, it will default to:
+
+::
+
+ %Y-%m-%dT%H:%M:%S for local time.
+ %Y-%m-%dT%H:%M:%SZ for UTC.
+
+.. note::
+
+ If the ``SOURCE_DATE_EPOCH`` environment variable is set,
+ its value will be used instead of the current time.
+ See https://reproducible-builds.org/specs/source-date-epoch/ for details.
+
+.. _UUID:
+
+.. code-block:: cmake
+
+ string(UUID <output_variable> NAMESPACE <namespace> NAME <name>
+ TYPE <MD5|SHA1> [UPPER])
+
+Create a universally unique identifier (aka GUID) as per RFC4122
+based on the hash of the combined values of ``<namespace>``
+(which itself has to be a valid UUID) and ``<name>``.
+The hash algorithm can be either ``MD5`` (Version 3 UUID) or
+``SHA1`` (Version 5 UUID).
+A UUID has the format ``xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx``
+where each ``x`` represents a lower case hexadecimal character.
+Where required, an uppercase representation can be requested
+with the optional ``UPPER`` flag.
diff --git a/share/cmake-3.17/Help/command/subdir_depends.rst b/share/cmake-3.18/Help/command/subdir_depends.rst
index 0c1b3c1..0c1b3c1 100644
--- a/share/cmake-3.17/Help/command/subdir_depends.rst
+++ b/share/cmake-3.18/Help/command/subdir_depends.rst
diff --git a/share/cmake-3.17/Help/command/subdirs.rst b/share/cmake-3.18/Help/command/subdirs.rst
index 530951b..530951b 100644
--- a/share/cmake-3.17/Help/command/subdirs.rst
+++ b/share/cmake-3.18/Help/command/subdirs.rst
diff --git a/share/cmake-3.17/Help/command/target_compile_definitions.rst b/share/cmake-3.18/Help/command/target_compile_definitions.rst
index 9e9c690..9e9c690 100644
--- a/share/cmake-3.17/Help/command/target_compile_definitions.rst
+++ b/share/cmake-3.18/Help/command/target_compile_definitions.rst
diff --git a/share/cmake-3.17/Help/command/target_compile_features.rst b/share/cmake-3.18/Help/command/target_compile_features.rst
index c5401e6..c5401e6 100644
--- a/share/cmake-3.17/Help/command/target_compile_features.rst
+++ b/share/cmake-3.18/Help/command/target_compile_features.rst
diff --git a/share/cmake-3.18/Help/command/target_compile_options.rst b/share/cmake-3.18/Help/command/target_compile_options.rst
new file mode 100644
index 0000000..3c733c5
--- /dev/null
+++ b/share/cmake-3.18/Help/command/target_compile_options.rst
@@ -0,0 +1,50 @@
+target_compile_options
+----------------------
+
+Add compile options to a target.
+
+.. code-block:: cmake
+
+ target_compile_options(<target> [BEFORE]
+ <INTERFACE|PUBLIC|PRIVATE> [items1...]
+ [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
+
+Adds options to the :prop_tgt:`COMPILE_OPTIONS` or
+:prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties. These options
+are used when compiling the given ``<target>``, which 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
+^^^^^^^^^
+
+If ``BEFORE`` is specified, the content will be prepended to the property
+instead of being appended.
+
+The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
+specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
+items will populate the :prop_tgt:`COMPILE_OPTIONS` property of
+``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
+:prop_tgt:`INTERFACE_COMPILE_OPTIONS` property of ``<target>``.
+(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
+The following arguments specify compile options. Repeated calls for the same
+``<target>`` append items in the order called.
+
+Arguments to ``target_compile_options`` may use "generator expressions"
+with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
+manual for available expressions. See the :manual:`cmake-buildsystem(7)`
+manual for more on defining buildsystem properties.
+
+.. include:: OPTIONS_SHELL.txt
+
+See Also
+^^^^^^^^
+
+This command can be used to add any options. However, for adding
+preprocessor definitions and include directories it is recommended
+to use the more specific commands :command:`target_compile_definitions`
+and :command:`target_include_directories`.
+
+For directory-wide settings, there is the command :command:`add_compile_options`.
+
+For file-specific settings, there is the source file property :prop_sf:`COMPILE_OPTIONS`.
diff --git a/share/cmake-3.17/Help/command/target_include_directories.rst b/share/cmake-3.18/Help/command/target_include_directories.rst
index 660e15c..660e15c 100644
--- a/share/cmake-3.17/Help/command/target_include_directories.rst
+++ b/share/cmake-3.18/Help/command/target_include_directories.rst
diff --git a/share/cmake-3.17/Help/command/target_link_directories.rst b/share/cmake-3.18/Help/command/target_link_directories.rst
index 76da94d..76da94d 100644
--- a/share/cmake-3.17/Help/command/target_link_directories.rst
+++ b/share/cmake-3.18/Help/command/target_link_directories.rst
diff --git a/share/cmake-3.17/Help/command/target_link_libraries.rst b/share/cmake-3.18/Help/command/target_link_libraries.rst
index c2e7e8a..c2e7e8a 100644
--- a/share/cmake-3.17/Help/command/target_link_libraries.rst
+++ b/share/cmake-3.18/Help/command/target_link_libraries.rst
diff --git a/share/cmake-3.18/Help/command/target_link_options.rst b/share/cmake-3.18/Help/command/target_link_options.rst
new file mode 100644
index 0000000..89038e3
--- /dev/null
+++ b/share/cmake-3.18/Help/command/target_link_options.rst
@@ -0,0 +1,50 @@
+target_link_options
+-------------------
+
+Add options to the link step for an executable, shared library or module
+library target.
+
+.. code-block:: cmake
+
+ target_link_options(<target> [BEFORE]
+ <INTERFACE|PUBLIC|PRIVATE> [items1...]
+ [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
+
+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>`.
+
+This command can be used to add any link options, but alternative commands
+exist to add libraries (:command:`target_link_libraries` or
+:command:`link_libraries`). See documentation of the
+:prop_dir:`directory <LINK_OPTIONS>` and
+:prop_tgt:`target <LINK_OPTIONS>` ``LINK_OPTIONS`` properties.
+
+.. note::
+
+ This command cannot be used to add options for static library targets,
+ since they do not use a linker. To add archiver or MSVC librarian flags,
+ see the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property.
+
+If ``BEFORE`` is specified, the content will be prepended to the property
+instead of being appended.
+
+The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
+specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
+items will populate the :prop_tgt:`LINK_OPTIONS` property of
+``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
+:prop_tgt:`INTERFACE_LINK_OPTIONS` property of ``<target>``.
+(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items.)
+The following arguments specify link options. Repeated calls for the same
+``<target>`` append items in the order called.
+
+Arguments to ``target_link_options`` may use "generator expressions"
+with the syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)`
+manual for available expressions. See the :manual:`cmake-buildsystem(7)`
+manual for more on defining buildsystem properties.
+
+.. include:: DEVICE_LINK_OPTIONS.txt
+
+.. include:: OPTIONS_SHELL.txt
+
+.. include:: LINK_OPTIONS_LINKER.txt
diff --git a/share/cmake-3.18/Help/command/target_precompile_headers.rst b/share/cmake-3.18/Help/command/target_precompile_headers.rst
new file mode 100644
index 0000000..d4280b1
--- /dev/null
+++ b/share/cmake-3.18/Help/command/target_precompile_headers.rst
@@ -0,0 +1,123 @@
+target_precompile_headers
+-------------------------
+
+Add a list of header files to precompile.
+
+Precompiling header files can speed up compilation by creating a partially
+processed version of some header files, and then using that version during
+compilations rather than repeatedly parsing the original headers.
+
+Main Form
+^^^^^^^^^
+
+.. code-block:: cmake
+
+ target_precompile_headers(<target>
+ <INTERFACE|PUBLIC|PRIVATE> [header1...]
+ [<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])
+
+The command adds header files to the :prop_tgt:`PRECOMPILE_HEADERS` and/or
+:prop_tgt:`INTERFACE_PRECOMPILE_HEADERS` target properties of ``<target>``.
+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>`.
+
+The ``INTERFACE``, ``PUBLIC`` and ``PRIVATE`` keywords are required to
+specify the scope of the following arguments. ``PRIVATE`` and ``PUBLIC``
+items will populate the :prop_tgt:`PRECOMPILE_HEADERS` property of
+``<target>``. ``PUBLIC`` and ``INTERFACE`` items will populate the
+:prop_tgt:`INTERFACE_PRECOMPILE_HEADERS` property of ``<target>``
+(:ref:`IMPORTED targets <Imported Targets>` only support ``INTERFACE`` items).
+Repeated calls for the same ``<target>`` will append items in the order called.
+
+Projects should generally avoid using ``PUBLIC`` or ``INTERFACE`` for targets
+that will be :ref:`exported <install(EXPORT)>`, or they should at least use
+the ``$<BUILD_INTERFACE:...>`` generator expression to prevent precompile
+headers from appearing in an installed exported target. Consumers of a target
+should typically be in control of what precompile headers they use, not have
+precompile headers forced on them by the targets being consumed (since
+precompile headers are not typically usage requirements). A notable exception
+to this is where an :ref:`interface library <Interface Libraries>` is created
+to define a commonly used set of precompile headers in one place and then other
+targets link to that interface library privately. In this case, the interface
+library exists specifically to propagate the precompile headers to its
+consumers and the consumer is effectively still in control, since it decides
+whether to link to the interface library or not.
+
+The list of header files is used to generate a header file named
+``cmake_pch.h|xx`` which is used to generate the precompiled header file
+(``.pch``, ``.gch``, ``.pchi``) artifact. The ``cmake_pch.h|xx`` header
+file will be force included (``-include`` for GCC, ``/FI`` for MSVC) to
+all source files, so sources do not need to have ``#include "pch.h"``.
+
+Header file names specified with angle brackets (e.g. ``<unordered_map>``) or
+explicit double quotes (escaped for the :manual:`cmake-language(7)`,
+e.g. ``[["other_header.h"]]``) will be treated as is, and include directories
+must be available for the compiler to find them. Other header file names
+(e.g. ``project_header.h``) are interpreted as being relative to the current
+source directory (e.g. :variable:`CMAKE_CURRENT_SOURCE_DIR`) and will be
+included by absolute path. For example:
+
+.. code-block:: cmake
+
+ target_precompile_headers(myTarget
+ PUBLIC
+ project_header.h
+ PRIVATE
+ [["other_header.h"]]
+ <unordered_map>
+ )
+
+Arguments to ``target_precompile_headers()`` may use "generator expressions"
+with the syntax ``$<...>``.
+See the :manual:`cmake-generator-expressions(7)` manual for available
+expressions.
+The ``$<COMPILE_LANGUAGE:...>`` generator expression is particularly
+useful for specifying a language-specific header to precompile for
+only one language (e.g. ``CXX`` and not ``C``). In this case, header
+file names that are not explicitly in double quotes or angle brackets
+must be specified by absolute path. Also, when specifying angle brackets
+inside a generator expression, be sure to encode the closing ``>`` as
+``$<ANGLE-R>``. For example:
+
+.. code-block:: cmake
+
+ target_precompile_headers(mylib PRIVATE
+ "$<$<COMPILE_LANGUAGE:CXX>:${CMAKE_CURRENT_SOURCE_DIR}/cxx_only.h>"
+ "$<$<COMPILE_LANGUAGE:C>:<stddef.h$<ANGLE-R>>"
+ "$<$<COMPILE_LANGUAGE:CXX>:<cstddef$<ANGLE-R>>"
+ )
+
+
+Reusing Precompile Headers
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The command also supports a second signature which can be used to specify that
+one target re-uses a precompiled header file artifact from another target
+instead of generating its own:
+
+.. code-block:: cmake
+
+ target_precompile_headers(<target> REUSE_FROM <other_target>)
+
+This form sets the :prop_tgt:`PRECOMPILE_HEADERS_REUSE_FROM` property to
+``<other_target>`` and adds a dependency such that ``<target>`` will depend
+on ``<other_target>``. CMake will halt with an error if the
+:prop_tgt:`PRECOMPILE_HEADERS` property of ``<target>`` is already set when
+the ``REUSE_FROM`` form is used.
+
+.. note::
+
+ The ``REUSE_FROM`` form requires the same set of compiler options,
+ compiler flags and compiler definitions for both ``<target>`` and
+ ``<other_target>``. Some compilers (e.g. GCC) may issue a warning if the
+ precompiled header file cannot be used (``-Winvalid-pch``).
+
+See Also
+^^^^^^^^
+
+To disable precompile headers for specific targets, see the
+:prop_tgt:`DISABLE_PRECOMPILE_HEADERS` target property.
+
+To prevent precompile headers from being used when compiling a specific
+source file, see the :prop_sf:`SKIP_PRECOMPILE_HEADERS` source file property.
diff --git a/share/cmake-3.17/Help/command/target_sources.rst b/share/cmake-3.18/Help/command/target_sources.rst
index 27e737b..27e737b 100644
--- a/share/cmake-3.17/Help/command/target_sources.rst
+++ b/share/cmake-3.18/Help/command/target_sources.rst
diff --git a/share/cmake-3.18/Help/command/try_compile.rst b/share/cmake-3.18/Help/command/try_compile.rst
new file mode 100644
index 0000000..323077a
--- /dev/null
+++ b/share/cmake-3.18/Help/command/try_compile.rst
@@ -0,0 +1,192 @@
+try_compile
+-----------
+
+.. only:: html
+
+ .. contents::
+
+Try building some code.
+
+Try Compiling Whole Projects
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ try_compile(<resultVar> <bindir> <srcdir>
+ <projectName> [<targetName>] [CMAKE_FLAGS <flags>...]
+ [OUTPUT_VARIABLE <var>])
+
+Try building a project. The success or failure of the ``try_compile``,
+i.e. ``TRUE`` or ``FALSE`` respectively, is returned in ``<resultVar>``.
+
+In this form, ``<srcdir>`` should contain a complete CMake project with a
+``CMakeLists.txt`` file and all sources. The ``<bindir>`` and ``<srcdir>``
+will not be deleted after this command is run. Specify ``<targetName>`` to
+build a specific target instead of the ``all`` or ``ALL_BUILD`` target. See
+below for the meaning of other options.
+
+Try Compiling Source Files
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: cmake
+
+ try_compile(<resultVar> <bindir> <srcfile|SOURCES srcfile...>
+ [CMAKE_FLAGS <flags>...]
+ [COMPILE_DEFINITIONS <defs>...]
+ [LINK_OPTIONS <options>...]
+ [LINK_LIBRARIES <libs>...]
+ [OUTPUT_VARIABLE <var>]
+ [COPY_FILE <fileName> [COPY_FILE_ERROR <var>]]
+ [<LANG>_STANDARD <std>]
+ [<LANG>_STANDARD_REQUIRED <bool>]
+ [<LANG>_EXTENSIONS <bool>]
+ )
+
+Try building an executable or static library from one or more source files
+(which one is determined by the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE`
+variable). The success or failure of the ``try_compile``, i.e. ``TRUE`` or
+``FALSE`` respectively, is returned in ``<resultVar>``.
+
+In this form, one or more source files must be provided. If
+:variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` is unset or is set to ``EXECUTABLE``,
+the sources must include a definition for ``main`` and CMake will create a
+``CMakeLists.txt`` file to build the source(s) as an executable.
+If :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` is set to ``STATIC_LIBRARY``,
+a static library will be built instead and no definition for ``main`` is
+required. For an executable, the generated ``CMakeLists.txt`` file would
+contain something like the following:
+
+.. code-block:: cmake
+
+ add_definitions(<expanded COMPILE_DEFINITIONS from caller>)
+ include_directories(${INCLUDE_DIRECTORIES})
+ link_directories(${LINK_DIRECTORIES})
+ add_executable(cmTryCompileExec <srcfile>...)
+ target_link_options(cmTryCompileExec PRIVATE <LINK_OPTIONS from caller>)
+ target_link_libraries(cmTryCompileExec ${LINK_LIBRARIES})
+
+The options are:
+
+``CMAKE_FLAGS <flags>...``
+ Specify flags of the form ``-DVAR:TYPE=VALUE`` to be passed to
+ the ``cmake`` command-line used to drive the test build.
+ The above example shows how values for variables
+ ``INCLUDE_DIRECTORIES``, ``LINK_DIRECTORIES``, and ``LINK_LIBRARIES``
+ are used.
+
+``COMPILE_DEFINITIONS <defs>...``
+ Specify ``-Ddefinition`` arguments to pass to :command:`add_definitions`
+ in the generated test project.
+
+``COPY_FILE <fileName>``
+ Copy the built executable or static library to the given ``<fileName>``.
+
+``COPY_FILE_ERROR <var>``
+ Use after ``COPY_FILE`` to capture into variable ``<var>`` any error
+ message encountered while trying to copy the file.
+
+``LINK_LIBRARIES <libs>...``
+ Specify libraries to be linked in the generated project.
+ The list of libraries may refer to system libraries and to
+ :ref:`Imported Targets <Imported Targets>` from the calling project.
+
+ If this option is specified, any ``-DLINK_LIBRARIES=...`` value
+ given to the ``CMAKE_FLAGS`` option will be ignored.
+
+``LINK_OPTIONS <options>...``
+ Specify link step options to pass to :command:`target_link_options` or to
+ set the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property in the generated
+ project, depending on the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable.
+
+``OUTPUT_VARIABLE <var>``
+ Store the output from the build process in the given variable.
+
+``<LANG>_STANDARD <std>``
+ Specify the :prop_tgt:`C_STANDARD`, :prop_tgt:`CXX_STANDARD`,
+ :prop_tgt:`OBJC_STANDARD`, :prop_tgt:`OBJCXX_STANDARD`,
+ or :prop_tgt:`CUDA_STANDARD` target property of the generated project.
+
+``<LANG>_STANDARD_REQUIRED <bool>``
+ Specify the :prop_tgt:`C_STANDARD_REQUIRED`,
+ :prop_tgt:`CXX_STANDARD_REQUIRED`, :prop_tgt:`OBJC_STANDARD_REQUIRED`,
+ :prop_tgt:`OBJCXX_STANDARD_REQUIRED`,or :prop_tgt:`CUDA_STANDARD_REQUIRED`
+ target property of the generated project.
+
+``<LANG>_EXTENSIONS <bool>``
+ Specify the :prop_tgt:`C_EXTENSIONS`, :prop_tgt:`CXX_EXTENSIONS`,
+ :prop_tgt:`OBJC_EXTENSIONS`, :prop_tgt:`OBJCXX_EXTENSIONS`,
+ or :prop_tgt:`CUDA_EXTENSIONS` target property of the generated project.
+
+In this version all files in ``<bindir>/CMakeFiles/CMakeTmp`` will be
+cleaned automatically. For debugging, ``--debug-trycompile`` can be
+passed to ``cmake`` to avoid this clean. However, multiple sequential
+``try_compile`` operations reuse this single output directory. If you use
+``--debug-trycompile``, you can only debug one ``try_compile`` call at a time.
+The recommended procedure is to protect all ``try_compile`` calls in your
+project by ``if(NOT DEFINED <resultVar>)`` logic, configure with cmake
+all the way through once, then delete the cache entry associated with
+the try_compile call of interest, and then re-run cmake again with
+``--debug-trycompile``.
+
+Other Behavior Settings
+^^^^^^^^^^^^^^^^^^^^^^^
+
+If set, the following variables are passed in to the generated
+try_compile CMakeLists.txt to initialize compile target properties with
+default values:
+
+* :variable:`CMAKE_CUDA_RUNTIME_LIBRARY`
+* :variable:`CMAKE_ENABLE_EXPORTS`
+* :variable:`CMAKE_LINK_SEARCH_START_STATIC`
+* :variable:`CMAKE_LINK_SEARCH_END_STATIC`
+* :variable:`CMAKE_MSVC_RUNTIME_LIBRARY`
+* :variable:`CMAKE_POSITION_INDEPENDENT_CODE`
+
+If :policy:`CMP0056` is set to ``NEW``, then
+:variable:`CMAKE_EXE_LINKER_FLAGS` is passed in as well.
+
+If :policy:`CMP0083` is set to ``NEW``, then in order to obtain correct
+behavior at link time, the ``check_pie_supported()`` command from the
+:module:`CheckPIESupported` module must be called before using the
+:command:`try_compile` command.
+
+The current settings of :policy:`CMP0065` and :policy:`CMP0083` are propagated
+through to the generated test project.
+
+Set the :variable:`CMAKE_TRY_COMPILE_CONFIGURATION` variable to choose
+a build configuration.
+
+Set the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to specify
+the type of target used for the source file signature.
+
+Set the :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify
+variables that must be propagated into the test project. This variable is
+meant for use only in toolchain files and is only honored by the
+``try_compile()`` command for the source files form, not when given a whole
+project.
+
+If :policy:`CMP0067` is set to ``NEW``, or any of the ``<LANG>_STANDARD``,
+``<LANG>_STANDARD_REQUIRED``, or ``<LANG>_EXTENSIONS`` options are used,
+then the language standard variables are honored:
+
+* :variable:`CMAKE_C_STANDARD`
+* :variable:`CMAKE_C_STANDARD_REQUIRED`
+* :variable:`CMAKE_C_EXTENSIONS`
+* :variable:`CMAKE_CXX_STANDARD`
+* :variable:`CMAKE_CXX_STANDARD_REQUIRED`
+* :variable:`CMAKE_CXX_EXTENSIONS`
+* :variable:`CMAKE_OBJC_STANDARD`
+* :variable:`CMAKE_OBJC_STANDARD_REQUIRED`
+* :variable:`CMAKE_OBJC_EXTENSIONS`
+* :variable:`CMAKE_OBJCXX_STANDARD`
+* :variable:`CMAKE_OBJCXX_STANDARD_REQUIRED`
+* :variable:`CMAKE_OBJCXX_EXTENSIONS`
+* :variable:`CMAKE_CUDA_STANDARD`
+* :variable:`CMAKE_CUDA_STANDARD_REQUIRED`
+* :variable:`CMAKE_CUDA_EXTENSIONS`
+
+Their values are used to set the corresponding target properties in
+the generated project (unless overridden by an explicit option).
+
+For the :generator:`Green Hills MULTI` generator the GHS toolset and target
+system customization cache variables are also propagated into the test project.
diff --git a/share/cmake-3.17/Help/command/try_run.rst b/share/cmake-3.18/Help/command/try_run.rst
index d401ebe..d401ebe 100644
--- a/share/cmake-3.17/Help/command/try_run.rst
+++ b/share/cmake-3.18/Help/command/try_run.rst
diff --git a/share/cmake-3.17/Help/command/unset.rst b/share/cmake-3.18/Help/command/unset.rst
index 7521052..7521052 100644
--- a/share/cmake-3.17/Help/command/unset.rst
+++ b/share/cmake-3.18/Help/command/unset.rst
diff --git a/share/cmake-3.17/Help/command/use_mangled_mesa.rst b/share/cmake-3.18/Help/command/use_mangled_mesa.rst
index 5b0e2ee..5b0e2ee 100644
--- a/share/cmake-3.17/Help/command/use_mangled_mesa.rst
+++ b/share/cmake-3.18/Help/command/use_mangled_mesa.rst
diff --git a/share/cmake-3.17/Help/command/utility_source.rst b/share/cmake-3.18/Help/command/utility_source.rst
index 94d6a4e..94d6a4e 100644
--- a/share/cmake-3.17/Help/command/utility_source.rst
+++ b/share/cmake-3.18/Help/command/utility_source.rst
diff --git a/share/cmake-3.17/Help/command/variable_requires.rst b/share/cmake-3.18/Help/command/variable_requires.rst
index 322b154..322b154 100644
--- a/share/cmake-3.17/Help/command/variable_requires.rst
+++ b/share/cmake-3.18/Help/command/variable_requires.rst
diff --git a/share/cmake-3.17/Help/command/variable_watch.rst b/share/cmake-3.18/Help/command/variable_watch.rst
index ce69bcf..ce69bcf 100644
--- a/share/cmake-3.17/Help/command/variable_watch.rst
+++ b/share/cmake-3.18/Help/command/variable_watch.rst
diff --git a/share/cmake-3.17/Help/command/while.rst b/share/cmake-3.18/Help/command/while.rst
index a4957c1..a4957c1 100644
--- a/share/cmake-3.17/Help/command/while.rst
+++ b/share/cmake-3.18/Help/command/while.rst
diff --git a/share/cmake-3.17/Help/command/write_file.rst b/share/cmake-3.18/Help/command/write_file.rst
index 4d476bd..4d476bd 100644
--- a/share/cmake-3.17/Help/command/write_file.rst
+++ b/share/cmake-3.18/Help/command/write_file.rst
diff --git a/share/cmake-3.18/Help/cpack_gen/archive.rst b/share/cmake-3.18/Help/cpack_gen/archive.rst
new file mode 100644
index 0000000..3656aa2
--- /dev/null
+++ b/share/cmake-3.18/Help/cpack_gen/archive.rst
@@ -0,0 +1,75 @@
+CPack Archive Generator
+-----------------------
+
+CPack generator for packaging files into an archive, which can have
+any of the following formats:
+
+ - 7Z - 7zip - (.7z)
+ - TBZ2 (.tar.bz2)
+ - TGZ (.tar.gz)
+ - TXZ (.tar.xz)
+ - TZ (.tar.Z)
+ - TZST (.tar.zst)
+ - ZIP (.zip)
+
+When this generator is called from ``CPackSourceConfig.cmake`` (or through
+the ``package_source`` target), then the generated archive will contain all
+files in the project directory, except those specified in
+:variable:`CPACK_SOURCE_IGNORE_FILES`. The following is one example of
+packaging all source files of a project:
+
+.. code-block:: cmake
+
+ set(CPACK_SOURCE_GENERATOR "TGZ")
+ set(CPACK_SOURCE_IGNORE_FILES
+ \\.git/
+ build/
+ ".*~$"
+ )
+ set(CPACK_VERBATIM_VARIABLES YES)
+ include(CPack)
+
+When this generator is called from ``CPackConfig.cmake`` (or through the
+``package`` target), then the generated archive will contain all files
+that have been installed via CMake's :command:`install` command (and the
+deprecated commands :command:`install_files`, :command:`install_programs`,
+and :command:`install_targets`).
+
+Variables specific to CPack Archive generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. variable:: CPACK_ARCHIVE_FILE_NAME
+ CPACK_ARCHIVE_<component>_FILE_NAME
+
+ Package file name without extension. The extension is determined from the
+ archive format (see list above) and automatically appended to the file name.
+ The default is ``<CPACK_PACKAGE_FILE_NAME>[-<component>]``, with spaces
+ replaced by '-'.
+
+.. variable:: CPACK_ARCHIVE_COMPONENT_INSTALL
+
+ Enable component packaging. If enabled (ON), then the archive generator
+ creates multiple packages. The default is OFF, which means that a single
+ package containing files of all components is generated.
+
+Variables used by CPack Archive generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+These variables are used by the Archive generator, but are also available to
+CPack generators which are essentially archives at their core. These include:
+
+ - :cpack_gen:`CPack Cygwin Generator`
+ - :cpack_gen:`CPack FreeBSD Generator`
+
+.. variable:: CPACK_ARCHIVE_THREADS
+
+ The number of threads to use when performing the compression. If set to
+ ``0``, the number of available cores on the machine will be used instead.
+ The default is ``1`` which limits compression to a single thread. Note that
+ not all compression modes support threading in all environments. Currently,
+ only the XZ compression may support it.
+
+.. note::
+
+ Official CMake binaries available on ``cmake.org`` ship with a ``liblzma``
+ that does not support parallel compression.
diff --git a/share/cmake-3.17/Help/cpack_gen/bundle.rst b/share/cmake-3.18/Help/cpack_gen/bundle.rst
index b16dbda..b16dbda 100644
--- a/share/cmake-3.17/Help/cpack_gen/bundle.rst
+++ b/share/cmake-3.18/Help/cpack_gen/bundle.rst
diff --git a/share/cmake-3.18/Help/cpack_gen/cygwin.rst b/share/cmake-3.18/Help/cpack_gen/cygwin.rst
new file mode 100644
index 0000000..c65653e
--- /dev/null
+++ b/share/cmake-3.18/Help/cpack_gen/cygwin.rst
@@ -0,0 +1,28 @@
+CPack Cygwin Generator
+----------------------
+
+Cygwin CPack generator (Cygwin).
+
+Variables affecting the CPack Cygwin generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ - :variable:`CPACK_ARCHIVE_THREADS`
+
+Variables specific to CPack Cygwin generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The
+following variable is specific to installers build on and/or for
+Cygwin:
+
+.. variable:: CPACK_CYGWIN_PATCH_NUMBER
+
+ The Cygwin patch number. FIXME: This documentation is incomplete.
+
+.. variable:: CPACK_CYGWIN_PATCH_FILE
+
+ The Cygwin patch file. FIXME: This documentation is incomplete.
+
+.. variable:: CPACK_CYGWIN_BUILD_SCRIPT
+
+ The Cygwin build script. FIXME: This documentation is incomplete.
diff --git a/share/cmake-3.18/Help/cpack_gen/deb.rst b/share/cmake-3.18/Help/cpack_gen/deb.rst
new file mode 100644
index 0000000..bf50c55
--- /dev/null
+++ b/share/cmake-3.18/Help/cpack_gen/deb.rst
@@ -0,0 +1,565 @@
+CPack DEB Generator
+-------------------
+
+The built in (binary) CPack DEB generator (Unix only)
+
+Variables specific to CPack Debian (DEB) generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The CPack DEB generator may be used to create DEB package using :module:`CPack`.
+The CPack DEB generator is a :module:`CPack` generator thus it uses the
+``CPACK_XXX`` variables used by :module:`CPack`.
+
+The CPack DEB generator should work on any Linux host but it will produce
+better deb package when Debian specific tools ``dpkg-xxx`` are usable on
+the build system.
+
+The CPack DEB generator has specific features which are controlled by the
+specifics ``CPACK_DEBIAN_XXX`` variables.
+
+``CPACK_DEBIAN_<COMPONENT>_XXXX`` variables may be used in order to have
+**component** specific values. Note however that ``<COMPONENT>`` refers to
+the **grouping name** written in upper case. It may be either a component name
+or a component GROUP name.
+
+Here are some CPack DEB generator wiki resources that are here for historic
+reasons and are no longer maintained but may still prove useful:
+
+ - https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
+ - https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#deb-unix-only
+
+List of CPack DEB generator specific variables:
+
+.. variable:: CPACK_DEB_COMPONENT_INSTALL
+
+ Enable component packaging for CPackDEB
+
+ * Mandatory : NO
+ * Default : OFF
+
+ If enabled (ON) multiple packages are generated. By default a single package
+ containing files of all components is generated.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_NAME
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_NAME
+
+ Set Package control field (variable is automatically transformed to lower
+ case).
+
+ * Mandatory : YES
+ * Default :
+
+ - :variable:`CPACK_PACKAGE_NAME` for non-component based
+ installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_NAME` suffixed with -<COMPONENT>
+ for component-based installations.
+
+ See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source
+
+.. variable:: CPACK_DEBIAN_FILE_NAME
+ CPACK_DEBIAN_<COMPONENT>_FILE_NAME
+
+ Package file name.
+
+ * Mandatory : YES
+ * Default : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].deb``
+
+ This may be set to ``DEB-DEFAULT`` to allow the CPack DEB generator to generate
+ package file name by itself in deb format::
+
+ <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
+
+ Alternatively provided package file name must end
+ with either ``.deb`` or ``.ipk`` suffix.
+
+ .. note::
+
+ Preferred setting of this variable is ``DEB-DEFAULT`` but for backward
+ compatibility with the CPack DEB generator in CMake prior to version 3.6 this
+ feature is disabled by default.
+
+ .. note::
+
+ By using non default filenames duplicate names may occur. Duplicate files
+ get overwritten and it is up to the packager to set the variables in a
+ manner that will prevent such errors.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_EPOCH
+
+ The Debian package epoch
+
+ * Mandatory : No
+ * Default : -
+
+ Optional number that should be incremented when changing versioning schemas
+ or fixing mistakes in the version numbers of older packages.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_VERSION
+
+ The Debian package version
+
+ * Mandatory : YES
+ * Default : :variable:`CPACK_PACKAGE_VERSION`
+
+ This variable may contain only alphanumerics (A-Za-z0-9) and the characters
+ . + - ~ (full stop, plus, hyphen, tilde) and should start with a digit. If
+ :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` is not set then hyphens are not
+ allowed.
+
+ .. note::
+
+ For backward compatibility with CMake 3.9 and lower a failed test of this
+ variable's content is not a hard error when both
+ :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` and
+ :variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables are not set. An author
+ warning is reported instead.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_RELEASE
+
+ The Debian package release - Debian revision number.
+
+ * Mandatory : No
+ * Default : -
+
+ This is the numbering of the DEB package itself, i.e. the version of the
+ packaging and not the version of the content (see
+ :variable:`CPACK_DEBIAN_PACKAGE_VERSION`). One may change the default value
+ if the previous packaging was buggy and/or you want to put here a fancy Linux
+ distro specific numbering.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_ARCHITECTURE
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE
+
+ The Debian package architecture
+
+ * Mandatory : YES
+ * Default : Output of ``dpkg --print-architecture`` (or ``i386``
+ if ``dpkg`` is not found)
+
+.. variable:: CPACK_DEBIAN_PACKAGE_DEPENDS
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS
+
+ Sets the Debian dependencies of this package.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_DEPENDS` for component-based
+ installations.
+
+ .. note::
+
+ If :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` or
+ more specifically :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS`
+ is set for this component, the discovered dependencies will be appended
+ to :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS` instead of
+ :variable:`CPACK_DEBIAN_PACKAGE_DEPENDS`. If
+ :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_DEPENDS` is an empty string,
+ only the automatically discovered dependencies will be set for this
+ component.
+
+ Example::
+
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libc6 (< 2.4)")
+
+.. variable:: CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS
+
+ Sets inter component dependencies if listed with
+ :variable:`CPACK_COMPONENT_<compName>_DEPENDS` variables.
+
+ * Mandatory : NO
+ * Default : -
+
+.. variable:: CPACK_DEBIAN_PACKAGE_MAINTAINER
+
+ The Debian package maintainer
+
+ * Mandatory : YES
+ * Default : ``CPACK_PACKAGE_CONTACT``
+
+.. variable:: CPACK_DEBIAN_PACKAGE_DESCRIPTION
+ CPACK_DEBIAN_<COMPONENT>_DESCRIPTION
+
+ The Debian package description
+
+ * Mandatory : YES
+ * Default :
+
+ - :variable:`CPACK_DEBIAN_<COMPONENT>_DESCRIPTION` (component
+ based installers only) if set, or :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION` if set, or
+ - :variable:`CPACK_COMPONENT_<compName>_DESCRIPTION` (component
+ based installers only) if set, or :variable:`CPACK_PACKAGE_DESCRIPTION` if set, or
+ - content of the file specified in :variable:`CPACK_PACKAGE_DESCRIPTION_FILE` if set
+
+ If after that description is not set, :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` going to be
+ used if set. Otherwise, :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` will be added as the first
+ line of description as defined in `Debian Policy Manual`_.
+
+.. _Debian Policy Manual: https://www.debian.org/doc/debian-policy/ch-controlfields.html#description
+
+.. variable:: CPACK_DEBIAN_PACKAGE_SECTION
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_SECTION
+
+ Set Section control field e.g. admin, devel, doc, ...
+
+ * Mandatory : YES
+ * Default : "devel"
+
+ See https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections
+
+.. variable:: CPACK_DEBIAN_ARCHIVE_TYPE
+
+ The archive format used for creating the Debian package.
+
+ * Mandatory : YES
+ * Default : "gnutar"
+
+ Possible value is:
+
+ - gnutar
+
+ .. note::
+
+ This variable previously defaulted to the ``paxr`` value, but ``dpkg``
+ has never supported that tar format. For backwards compatibility the
+ ``paxr`` value will be mapped to ``gnutar`` and a deprecation message
+ will be emitted.
+
+.. variable:: CPACK_DEBIAN_COMPRESSION_TYPE
+
+ The compression used for creating the Debian package.
+
+ * Mandatory : YES
+ * Default : "gzip"
+
+ Possible values are:
+
+ - lzma
+ - xz
+ - bzip2
+ - gzip
+
+.. variable:: CPACK_DEBIAN_PACKAGE_PRIORITY
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_PRIORITY
+
+ Set Priority control field e.g. required, important, standard, optional,
+ extra
+
+ * Mandatory : YES
+ * Default : "optional"
+
+ See https://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities
+
+.. variable:: CPACK_DEBIAN_PACKAGE_HOMEPAGE
+
+ The URL of the web site for this package, preferably (when applicable) the
+ site from which the original source can be obtained and any additional
+ upstream documentation or information may be found.
+
+ * Mandatory : NO
+ * Default : :variable:`CMAKE_PROJECT_HOMEPAGE_URL`
+
+ .. note::
+
+ The content of this field is a simple URL without any surrounding
+ characters such as <>.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_SHLIBDEPS
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_SHLIBDEPS
+
+ May be set to ON in order to use ``dpkg-shlibdeps`` to generate
+ better package dependency list.
+
+ * Mandatory : NO
+ * Default :
+
+ - :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS` if set or
+ - OFF
+
+ .. note::
+
+ You may need set :variable:`CMAKE_INSTALL_RPATH` to an appropriate value
+ if you use this feature, because if you don't ``dpkg-shlibdeps``
+ may fail to find your own shared libs.
+ See https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
+
+.. variable:: CPACK_DEBIAN_PACKAGE_DEBUG
+
+ May be set when invoking cpack in order to trace debug information
+ during the CPack DEB generator run.
+
+ * Mandatory : NO
+ * Default : -
+
+.. variable:: CPACK_DEBIAN_PACKAGE_PREDEPENDS
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS
+
+ Sets the `Pre-Depends` field of the Debian package.
+ Like :variable:`Depends <CPACK_DEBIAN_PACKAGE_DEPENDS>`, except that it
+ also forces ``dpkg`` to complete installation of the packages named
+ before even starting the installation of the package which declares the
+ pre-dependency.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_PREDEPENDS` for component-based
+ installations.
+
+ See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
+
+.. variable:: CPACK_DEBIAN_PACKAGE_ENHANCES
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES
+
+ Sets the `Enhances` field of the Debian package.
+ Similar to :variable:`Suggests <CPACK_DEBIAN_PACKAGE_SUGGESTS>` but works
+ in the opposite direction: declares that a package can enhance the
+ functionality of another package.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_ENHANCES` for component-based
+ installations.
+
+ See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
+
+.. variable:: CPACK_DEBIAN_PACKAGE_BREAKS
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS
+
+ Sets the `Breaks` field of the Debian package.
+ When a binary package (P) declares that it breaks other packages (B),
+ ``dpkg`` will not allow the package (P) which declares `Breaks` be
+ **unpacked** unless the packages that will be broken (B) are deconfigured
+ first.
+ As long as the package (P) is configured, the previously deconfigured
+ packages (B) cannot be reconfigured again.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_BREAKS` for component-based
+ installations.
+
+ See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-breaks
+
+.. variable:: CPACK_DEBIAN_PACKAGE_CONFLICTS
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS
+
+ Sets the `Conflicts` field of the Debian package.
+ When one binary package declares a conflict with another using a `Conflicts`
+ field, ``dpkg`` will not allow them to be unpacked on the system at
+ the same time.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_CONFLICTS` for component-based
+ installations.
+
+ See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-conflicts
+
+ .. note::
+
+ This is a stronger restriction than
+ :variable:`Breaks <CPACK_DEBIAN_PACKAGE_BREAKS>`, which prevents the
+ broken package from being configured while the breaking package is in
+ the "Unpacked" state but allows both packages to be unpacked at the same
+ time.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_PROVIDES
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES
+
+ Sets the `Provides` field of the Debian package.
+ A virtual package is one which appears in the `Provides` control field of
+ another package.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_PROVIDES` for component-based
+ installations.
+
+ See https://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual
+
+.. variable:: CPACK_DEBIAN_PACKAGE_REPLACES
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES
+
+ Sets the `Replaces` field of the Debian package.
+ Packages can declare in their control file that they should overwrite
+ files in certain other packages, or completely replace other packages.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_REPLACES` for component-based
+ installations.
+
+ See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
+
+.. variable:: CPACK_DEBIAN_PACKAGE_RECOMMENDS
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS
+
+ Sets the `Recommends` field of the Debian package.
+ Allows packages to declare a strong, but not absolute, dependency on other
+ packages.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_RECOMMENDS` for component-based
+ installations.
+
+ See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
+
+.. variable:: CPACK_DEBIAN_PACKAGE_SUGGESTS
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS
+
+ Sets the `Suggests` field of the Debian package.
+ Allows packages to declare a suggested package install grouping.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_SUGGESTS` for component-based
+ installations.
+
+ See http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
+
+.. variable:: CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS
+
+ * Mandatory : NO
+ * Default : OFF
+
+ Allows to generate shlibs control file automatically. Compatibility is defined by
+ :variable:`CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY` variable value.
+
+ .. note::
+
+ Libraries are only considered if they have both library name and version
+ set. This can be done by setting SOVERSION property with
+ :command:`set_target_properties` command.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY
+
+ Compatibility policy for auto-generated shlibs control file.
+
+ * Mandatory : NO
+ * Default : "="
+
+ Defines compatibility policy for auto-generated shlibs control file.
+ Possible values: "=", ">="
+
+ See https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps
+
+.. variable:: CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_EXTRA
+
+ This variable allow advanced user to add custom script to the
+ control.tar.gz.
+ Typical usage is for conffiles, postinst, postrm, prerm.
+
+ * Mandatory : NO
+ * Default : -
+
+ Usage::
+
+ set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
+ "${CMAKE_CURRENT_SOURCE_DIR}/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm")
+
+ .. note::
+
+ The original permissions of the files will be used in the final
+ package unless the variable
+ :variable:`CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION` is set.
+ In particular, the scripts should have the proper executable
+ flag prior to the generation of the package.
+
+.. variable:: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONTROL_STRICT_PERMISSION
+
+ This variable indicates if the Debian policy on control files should be
+ strictly followed.
+
+ * Mandatory : NO
+ * Default : FALSE
+
+ Usage::
+
+ set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION TRUE)
+
+ .. note::
+
+ This overrides the permissions on the original files, following the rules
+ set by Debian policy
+ https://www.debian.org/doc/debian-policy/ch-files.html#s-permissions-owners
+
+.. variable:: CPACK_DEBIAN_PACKAGE_SOURCE
+ CPACK_DEBIAN_<COMPONENT>_PACKAGE_SOURCE
+
+ Sets the ``Source`` field of the binary Debian package.
+ When the binary package name is not the same as the source package name
+ (in particular when several components/binaries are generated from one
+ source) the source from which the binary has been generated should be
+ indicated with the field ``Source``.
+
+ * Mandatory : NO
+ * Default :
+
+ - An empty string for non-component based installations
+ - :variable:`CPACK_DEBIAN_PACKAGE_SOURCE` for component-based
+ installations.
+
+ See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source
+
+ .. note::
+
+ This value is not interpreted. It is possible to pass an optional
+ revision number of the referenced source package as well.
+
+Packaging of debug information
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Dbgsym packages contain debug symbols for debugging packaged binaries.
+
+Dbgsym packaging has its own set of variables:
+
+.. variable:: CPACK_DEBIAN_DEBUGINFO_PACKAGE
+ CPACK_DEBIAN_<component>_DEBUGINFO_PACKAGE
+
+ Enable generation of dbgsym .ddeb package(s).
+
+ * Mandatory : NO
+ * Default : OFF
+
+.. note::
+
+ Binaries must contain debug symbols before packaging so use either ``Debug``
+ or ``RelWithDebInfo`` for :variable:`CMAKE_BUILD_TYPE` variable value.
+
+Building Debian packages on Windows
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To communicate UNIX file permissions from the install stage
+to the CPack DEB generator the "cmake_mode_t" NTFS
+alternate data stream (ADT) is used.
+
+When a filesystem without ADT support is used only owner read/write
+permissions can be preserved.
+
+Reproducible packages
+^^^^^^^^^^^^^^^^^^^^^
+
+The environment variable ``SOURCE_DATE_EPOCH`` may be set to a UNIX
+timestamp, defined as the number of seconds, excluding leap seconds,
+since 01 Jan 1970 00:00:00 UTC. If set, the CPack DEB generator will
+use its value for timestamps in the package.
diff --git a/share/cmake-3.17/Help/cpack_gen/dmg.rst b/share/cmake-3.18/Help/cpack_gen/dmg.rst
index cede0f2..cede0f2 100644
--- a/share/cmake-3.17/Help/cpack_gen/dmg.rst
+++ b/share/cmake-3.18/Help/cpack_gen/dmg.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/external.rst b/share/cmake-3.18/Help/cpack_gen/external.rst
index 406f6be..406f6be 100644
--- a/share/cmake-3.17/Help/cpack_gen/external.rst
+++ b/share/cmake-3.18/Help/cpack_gen/external.rst
diff --git a/share/cmake-3.18/Help/cpack_gen/freebsd.rst b/share/cmake-3.18/Help/cpack_gen/freebsd.rst
new file mode 100644
index 0000000..47a7784
--- /dev/null
+++ b/share/cmake-3.18/Help/cpack_gen/freebsd.rst
@@ -0,0 +1,143 @@
+CPack FreeBSD Generator
+-----------------------
+
+The built in (binary) CPack FreeBSD (pkg) generator (Unix only)
+
+Variables affecting the CPack FreeBSD (pkg) generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ - :variable:`CPACK_ARCHIVE_THREADS`
+
+Variables specific to CPack FreeBSD (pkg) generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The CPack FreeBSD generator may be used to create pkg(8) packages -- these may
+be used on FreeBSD, DragonflyBSD, NetBSD, OpenBSD, but also on Linux or OSX,
+depending on the installed package-management tools -- using :module:`CPack`.
+
+The CPack FreeBSD generator is a :module:`CPack` generator and uses the
+``CPACK_XXX`` variables used by :module:`CPack`. It tries to re-use packaging
+information that may already be specified for Debian packages for the
+:cpack_gen:`CPack DEB Generator`. It also tries to re-use RPM packaging
+information when Debian does not specify.
+
+The CPack FreeBSD generator should work on any host with libpkg installed. The
+packages it produces are specific to the host architecture and ABI.
+
+The CPack FreeBSD generator sets package-metadata through
+``CPACK_FREEBSD_XXX`` variables. The CPack FreeBSD generator, unlike the
+CPack Deb generator, does not specially support componentized packages; a
+single package is created from all the software artifacts created through
+CMake.
+
+All of the variables can be set specifically for FreeBSD packaging in
+the CPackConfig file or in CMakeLists.txt, but most of them have defaults
+that use general settings (e.g. CMAKE_PROJECT_NAME) or Debian-specific
+variables when those make sense (e.g. the homepage of an upstream project
+is usually unchanged by the flavor of packaging). When there is no Debian
+information to fall back on, but the RPM packaging has it, fall back to
+the RPM information (e.g. package license).
+
+.. variable:: CPACK_FREEBSD_PACKAGE_NAME
+
+ Sets the package name (in the package manifest, but also affects the
+ output filename).
+
+ * Mandatory: YES
+ * Default:
+
+ - :variable:`CPACK_PACKAGE_NAME` (this is always set by CPack itself,
+ based on CMAKE_PROJECT_NAME).
+
+.. variable:: CPACK_FREEBSD_PACKAGE_COMMENT
+
+ Sets the package comment. This is the short description displayed by
+ pkg(8) in standard "pkg info" output.
+
+ * Mandatory: YES
+ * Default:
+
+ - :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY` (this is always set
+ by CPack itself, if nothing else sets it explicitly).
+ - :variable:`PROJECT_DESCRIPTION` (this can be set with the DESCRIPTION
+ parameter for :command:`project`).
+
+.. variable:: CPACK_FREEBSD_PACKAGE_DESCRIPTION
+
+ Sets the package description. This is the long description of the package,
+ given by "pkg info" with a specific package as argument.
+
+ * Mandatory: YES
+ * Default:
+
+ - :variable:`CPACK_DEBIAN_PACKAGE_DESCRIPTION` (this may be set already
+ for Debian packaging, so we may as well re-use it).
+
+.. variable:: CPACK_FREEBSD_PACKAGE_WWW
+
+ The URL of the web site for this package, preferably (when applicable) the
+ site from which the original source can be obtained and any additional
+ upstream documentation or information may be found.
+
+ * Mandatory: YES
+ * Default:
+
+ - :variable:`CMAKE_PROJECT_HOMEPAGE_URL`, or if that is not set,
+ :variable:`CPACK_DEBIAN_PACKAGE_HOMEPAGE` (this may be set already
+ for Debian packaging, so we may as well re-use it).
+
+.. variable:: CPACK_FREEBSD_PACKAGE_LICENSE
+
+ The license, or licenses, which apply to this software package. This must
+ be one or more license-identifiers that pkg recognizes as acceptable license
+ identifiers (e.g. "GPLv2").
+
+ * Mandatory: YES
+ * Default:
+
+ - :variable:`CPACK_RPM_PACKAGE_LICENSE`
+
+.. variable:: CPACK_FREEBSD_PACKAGE_LICENSE_LOGIC
+
+ This variable is only of importance if there is more than one license.
+ The default is "single", which is only applicable to a single license.
+ Other acceptable values are determined by pkg -- those are "dual" or "multi" --
+ meaning choice (OR) or simultaneous (AND) application of the licenses.
+
+ * Mandatory: NO
+ * Default: single
+
+.. variable:: CPACK_FREEBSD_PACKAGE_MAINTAINER
+
+ The FreeBSD maintainer (e.g. kde@freebsd.org) of this package.
+
+ * Mandatory: YES
+ * Default: none
+
+.. variable:: CPACK_FREEBSD_PACKAGE_ORIGIN
+
+ The origin (ports label) of this package; for packages built by CPack
+ outside of the ports system this is of less importance. The default
+ puts the package somewhere under misc/, as a stopgap.
+
+ * Mandatory: YES
+ * Default: misc/<package name>
+
+.. variable:: CPACK_FREEBSD_PACKAGE_CATEGORIES
+
+ The ports categories where this package lives (if it were to be built
+ from ports). If none is set a single category is determined based on
+ the package origin.
+
+ * Mandatory: YES
+ * Default: derived from ORIGIN
+
+.. variable:: CPACK_FREEBSD_PACKAGE_DEPS
+
+ A list of package origins that should be added as package dependencies.
+ These are in the form <category>/<packagename>, e.g. x11/libkonq.
+ No version information needs to be provided (this is not included
+ in the manifest).
+
+ * Mandatory: NO
+ * Default: empty
diff --git a/share/cmake-3.18/Help/cpack_gen/ifw.rst b/share/cmake-3.18/Help/cpack_gen/ifw.rst
new file mode 100644
index 0000000..776bb46
--- /dev/null
+++ b/share/cmake-3.18/Help/cpack_gen/ifw.rst
@@ -0,0 +1,347 @@
+CPack IFW Generator
+-------------------
+
+Configure and run the Qt Installer Framework to generate a Qt installer.
+
+.. only:: html
+
+ .. contents::
+
+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),
+and runs QtIFW tools to generate a Qt installer.
+
+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 needs to be installed.
+The :module:`CPackIFW` module looks for the location of the
+QtIFW command-line utilities, and defines several commands to
+control the behavior of this generator.
+
+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`"
+ (variables embedded in '@' are expanded by the
+ `QtIFW scripting engine <https://doc.qt.io/qtinstallerframework/scripting.html>`_).
+
+ 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.
+
+QtIFW Tools
+"""""""""""
+
+.. variable:: CPACK_IFW_FRAMEWORK_VERSION
+
+ The version of used QtIFW tools.
+
+The following variables provide the locations of the QtIFW
+command-line tools as discovered by the module :module:`CPackIFW`.
+These variables are cached, and may be configured if needed.
+
+.. variable:: CPACK_IFW_BINARYCREATOR_EXECUTABLE
+
+ The path to ``binarycreator``.
+
+.. variable:: CPACK_IFW_REPOGEN_EXECUTABLE
+
+ The path to ``repogen``.
+
+.. variable:: CPACK_IFW_INSTALLERBASE_EXECUTABLE
+
+ The path to ``installerbase``.
+
+.. variable:: CPACK_IFW_DEVTOOL_EXECUTABLE
+
+ The path to ``devtool``.
+
+Hints for Finding QtIFW
+"""""""""""""""""""""""
+
+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.
+
+Other Settings
+^^^^^^^^^^^^^^
+
+Online installer
+""""""""""""""""
+
+By default, this generator generates an *offline installer*. This means that
+that all packaged files are fully contained in the installer executable.
+
+In contrast, an *online installer* will download some or all components from
+a remote server.
+
+The ``DOWNLOADED`` option in the :command:`cpack_add_component` command
+specifies that a component is to be downloaded. Alternatively, the ``ALL``
+option in the :command:`cpack_configure_downloads` command specifies that
+`all` components are to be be downloaded.
+
+The :command:`cpack_ifw_add_repository` command and the
+:variable:`CPACK_IFW_DOWNLOAD_ALL` variable allow for more specific
+configuration.
+
+When there are online components, CPack will write them to archive files.
+The help page of the :module:`CPackComponent` module, especially the section
+on the :command:`cpack_configure_downloads` function, explains how to make
+these files accessible from a download URL.
+
+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"
+ )
+
+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 your platform from Qt site:
+ http://download.qt.io/official_releases/qt-installer-framework
diff --git a/share/cmake-3.18/Help/cpack_gen/nsis.rst b/share/cmake-3.18/Help/cpack_gen/nsis.rst
new file mode 100644
index 0000000..0dd876e
--- /dev/null
+++ b/share/cmake-3.18/Help/cpack_gen/nsis.rst
@@ -0,0 +1,161 @@
+CPack NSIS Generator
+--------------------
+
+CPack Nullsoft Scriptable Install System (NSIS) generator specific options.
+
+The NSIS generator requires NSIS 3.0 or newer.
+
+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.
+
+.. variable:: CPACK_NSIS_MANIFEST_DPI_AWARE
+
+ If set, declares that the installer is DPI-aware.
diff --git a/share/cmake-3.17/Help/cpack_gen/nuget.rst b/share/cmake-3.18/Help/cpack_gen/nuget.rst
index f8aa626..f8aa626 100644
--- a/share/cmake-3.17/Help/cpack_gen/nuget.rst
+++ b/share/cmake-3.18/Help/cpack_gen/nuget.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/packagemaker.rst b/share/cmake-3.18/Help/cpack_gen/packagemaker.rst
index c2a450e..c2a450e 100644
--- a/share/cmake-3.17/Help/cpack_gen/packagemaker.rst
+++ b/share/cmake-3.18/Help/cpack_gen/packagemaker.rst
diff --git a/share/cmake-3.17/Help/cpack_gen/productbuild.rst b/share/cmake-3.18/Help/cpack_gen/productbuild.rst
index 82b79ae..82b79ae 100644
--- a/share/cmake-3.17/Help/cpack_gen/productbuild.rst
+++ b/share/cmake-3.18/Help/cpack_gen/productbuild.rst
diff --git a/share/cmake-3.18/Help/cpack_gen/rpm.rst b/share/cmake-3.18/Help/cpack_gen/rpm.rst
new file mode 100644
index 0000000..ccb7ebd
--- /dev/null
+++ b/share/cmake-3.18/Help/cpack_gen/rpm.rst
@@ -0,0 +1,959 @@
+CPack RPM Generator
+-------------------
+
+The built in (binary) CPack RPM generator (Unix only)
+
+Variables specific to CPack RPM generator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The CPack RPM generator may be used to create RPM packages using :module:`CPack`.
+The CPack RPM generator is a :module:`CPack` generator thus it uses the
+``CPACK_XXX`` variables used by :module:`CPack`.
+
+The CPack RPM generator has specific features which are controlled by the specifics
+``CPACK_RPM_XXX`` variables.
+
+``CPACK_RPM_<COMPONENT>_XXXX`` variables may be used in order to have
+**component** specific values. Note however that ``<COMPONENT>`` refers to the
+**grouping name** written in upper case. It may be either a component name or
+a component GROUP name. Usually those variables correspond to RPM spec file
+entities. One may find information about spec files here
+http://www.rpm.org/wiki/Docs
+
+.. note::
+
+ `<COMPONENT>` part of variables is preferred to be in upper case (e.g. if
+ component is named ``foo`` then use ``CPACK_RPM_FOO_XXXX`` variable name format)
+ as is with other ``CPACK_<COMPONENT>_XXXX`` variables.
+ For the purposes of back compatibility (CMake/CPack version 3.5 and lower)
+ support for same cased component (e.g. ``fOo`` would be used as
+ ``CPACK_RPM_fOo_XXXX``) is still supported for variables defined in older
+ versions of CMake/CPack but is not guaranteed for variables that
+ will be added in the future. For the sake of back compatibility same cased
+ component variables also override upper cased versions where both are
+ present.
+
+Here are some CPack RPM generator wiki resources that are here for historic
+reasons and are no longer maintained but may still prove useful:
+
+ - https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/Configuration
+ - https://gitlab.kitware.com/cmake/community/-/wikis/doc/cpack/PackageGenerators#rpm-unix-only
+
+List of CPack RPM generator specific variables:
+
+.. variable:: CPACK_RPM_COMPONENT_INSTALL
+
+ Enable component packaging for CPack RPM generator
+
+ * Mandatory : NO
+ * Default : OFF
+
+ If enabled (``ON``) multiple packages are generated. By default
+ a single package containing files of all components is generated.
+
+.. variable:: CPACK_RPM_PACKAGE_SUMMARY
+ CPACK_RPM_<component>_PACKAGE_SUMMARY
+
+ The RPM package summary.
+
+ * Mandatory : YES
+ * Default : :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`
+
+.. variable:: CPACK_RPM_PACKAGE_NAME
+ CPACK_RPM_<component>_PACKAGE_NAME
+
+ The RPM package name.
+
+ * Mandatory : YES
+ * Default : :variable:`CPACK_PACKAGE_NAME`
+
+.. variable:: CPACK_RPM_FILE_NAME
+ CPACK_RPM_<component>_FILE_NAME
+
+ Package file name.
+
+ * Mandatory : YES
+ * Default : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].rpm`` with spaces
+ replaced by '-'
+
+ This may be set to ``RPM-DEFAULT`` to allow ``rpmbuild`` tool to generate package
+ file name by itself.
+ Alternatively provided package file name must end with ``.rpm`` suffix.
+
+ .. note::
+
+ By using user provided spec file, rpm macro extensions such as for
+ generating ``debuginfo`` packages or by simply using multiple components more
+ than one rpm file may be generated, either from a single spec file or from
+ multiple spec files (each component execution produces its own spec file).
+ In such cases duplicate file names may occur as a result of this variable
+ setting or spec file content structure. Duplicate files get overwritten
+ and it is up to the packager to set the variables in a manner that will
+ prevent such errors.
+
+.. variable:: CPACK_RPM_MAIN_COMPONENT
+
+ Main component that is packaged without component suffix.
+
+ * Mandatory : NO
+ * Default : -
+
+ This variable can be set to any component or group name so that component or
+ group rpm package is generated without component suffix in filename and
+ package name.
+
+.. variable:: CPACK_RPM_PACKAGE_EPOCH
+
+ The RPM package epoch
+
+ * Mandatory : No
+ * Default : -
+
+ Optional number that should be incremented when changing versioning schemas
+ or fixing mistakes in the version numbers of older packages.
+
+.. variable:: CPACK_RPM_PACKAGE_VERSION
+
+ The RPM package version.
+
+ * Mandatory : YES
+ * Default : :variable:`CPACK_PACKAGE_VERSION`
+
+.. variable:: CPACK_RPM_PACKAGE_ARCHITECTURE
+ CPACK_RPM_<component>_PACKAGE_ARCHITECTURE
+
+ The RPM package architecture.
+
+ * Mandatory : YES
+ * Default : Native architecture output by ``uname -m``
+
+ This may be set to ``noarch`` if you know you are building a ``noarch`` package.
+
+.. variable:: CPACK_RPM_PACKAGE_RELEASE
+
+ The RPM package release.
+
+ * Mandatory : YES
+ * Default : 1
+
+ This is the numbering of the RPM package itself, i.e. the version of the
+ packaging and not the version of the content (see
+ :variable:`CPACK_RPM_PACKAGE_VERSION`). One may change the default value if
+ the previous packaging was buggy and/or you want to put here a fancy Linux
+ distro specific numbering.
+
+.. note::
+
+ This is the string that goes into the RPM ``Release:`` field. Some distros
+ (e.g. Fedora, CentOS) require ``1%{?dist}`` format and not just a number.
+ ``%{?dist}`` part can be added by setting :variable:`CPACK_RPM_PACKAGE_RELEASE_DIST`.
+
+.. variable:: CPACK_RPM_PACKAGE_RELEASE_DIST
+
+ The dist tag that is added RPM ``Release:`` field.
+
+ * Mandatory : NO
+ * Default : OFF
+
+ This is the reported ``%{dist}`` tag from the current distribution or empty
+ ``%{dist}`` if RPM macro is not set. If this variable is set then RPM
+ ``Release:`` field value is set to ``${CPACK_RPM_PACKAGE_RELEASE}%{?dist}``.
+
+.. variable:: CPACK_RPM_PACKAGE_LICENSE
+
+ The RPM package license policy.
+
+ * Mandatory : YES
+ * Default : "unknown"
+
+.. variable:: CPACK_RPM_PACKAGE_GROUP
+ CPACK_RPM_<component>_PACKAGE_GROUP
+
+ The RPM package group.
+
+ * Mandatory : YES
+ * Default : "unknown"
+
+.. variable:: CPACK_RPM_PACKAGE_VENDOR
+
+ The RPM package vendor.
+
+ * Mandatory : YES
+ * Default : CPACK_PACKAGE_VENDOR if set or "unknown"
+
+.. variable:: CPACK_RPM_PACKAGE_URL
+ CPACK_RPM_<component>_PACKAGE_URL
+
+ The projects URL.
+
+ * Mandatory : NO
+ * Default : :variable:`CMAKE_PROJECT_HOMEPAGE_URL`
+
+.. variable:: CPACK_RPM_PACKAGE_DESCRIPTION
+ CPACK_RPM_<component>_PACKAGE_DESCRIPTION
+
+ RPM package description.
+
+ * Mandatory : YES
+ * Default : :variable:`CPACK_COMPONENT_<compName>_DESCRIPTION` (component
+ based installers only) if set, :variable:`CPACK_PACKAGE_DESCRIPTION_FILE`
+ if set or "no package description available"
+
+.. variable:: CPACK_RPM_COMPRESSION_TYPE
+
+ RPM compression type.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to override RPM compression type to be used to build the
+ RPM. For example some Linux distribution now default to ``lzma`` or ``xz``
+ compression whereas older cannot use such RPM. Using this one can enforce
+ compression type to be used.
+
+ Possible values are:
+
+ - lzma
+ - xz
+ - bzip2
+ - gzip
+
+.. variable:: CPACK_RPM_PACKAGE_AUTOREQ
+ CPACK_RPM_<component>_PACKAGE_AUTOREQ
+
+ RPM spec autoreq field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to enable (``1``, ``yes``) or disable (``0``, ``no``) automatic
+ shared libraries dependency detection. Dependencies are added to requires list.
+
+ .. note::
+
+ By default automatic dependency detection is enabled by rpm generator.
+
+.. variable:: CPACK_RPM_PACKAGE_AUTOPROV
+ CPACK_RPM_<component>_PACKAGE_AUTOPROV
+
+ RPM spec autoprov field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to enable (``1``, ``yes``) or disable (``0``, ``no``)
+ automatic listing of shared libraries that are provided by the package.
+ Shared libraries are added to provides list.
+
+ .. note::
+
+ By default automatic provides detection is enabled by rpm generator.
+
+.. variable:: CPACK_RPM_PACKAGE_AUTOREQPROV
+ CPACK_RPM_<component>_PACKAGE_AUTOREQPROV
+
+ RPM spec autoreqprov field.
+
+ * Mandatory : NO
+ * Default : -
+
+ Variable enables/disables autoreq and autoprov at the same time.
+ See :variable:`CPACK_RPM_PACKAGE_AUTOREQ` and
+ :variable:`CPACK_RPM_PACKAGE_AUTOPROV` for more details.
+
+ .. note::
+
+ By default automatic detection feature is enabled by rpm.
+
+.. variable:: CPACK_RPM_PACKAGE_REQUIRES
+ CPACK_RPM_<component>_PACKAGE_REQUIRES
+
+ RPM spec requires field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set RPM dependencies (requires). Note that you must enclose
+ the complete requires string between quotes, for example::
+
+ set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
+
+ The required package list of an RPM file could be printed with::
+
+ rpm -qp --requires file.rpm
+
+.. variable:: CPACK_RPM_PACKAGE_CONFLICTS
+ CPACK_RPM_<component>_PACKAGE_CONFLICTS
+
+ RPM spec conflicts field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set negative RPM dependencies (conflicts). Note that you must
+ enclose the complete requires string between quotes, for example::
+
+ set(CPACK_RPM_PACKAGE_CONFLICTS "libxml2")
+
+ The conflicting package list of an RPM file could be printed with::
+
+ rpm -qp --conflicts file.rpm
+
+.. variable:: CPACK_RPM_PACKAGE_REQUIRES_PRE
+ CPACK_RPM_<component>_PACKAGE_REQUIRES_PRE
+
+ RPM spec requires(pre) field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set RPM preinstall dependencies (requires(pre)). Note that
+ you must enclose the complete requires string between quotes, for example::
+
+ set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils, initscripts")
+
+.. variable:: CPACK_RPM_PACKAGE_REQUIRES_POST
+ CPACK_RPM_<component>_PACKAGE_REQUIRES_POST
+
+ RPM spec requires(post) field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set RPM postinstall dependencies (requires(post)). Note that
+ you must enclose the complete requires string between quotes, for example::
+
+ set(CPACK_RPM_PACKAGE_REQUIRES_POST "shadow-utils, initscripts")
+
+.. variable:: CPACK_RPM_PACKAGE_REQUIRES_POSTUN
+ CPACK_RPM_<component>_PACKAGE_REQUIRES_POSTUN
+
+ RPM spec requires(postun) field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set RPM postuninstall dependencies (requires(postun)). Note
+ that you must enclose the complete requires string between quotes, for
+ example::
+
+ set(CPACK_RPM_PACKAGE_REQUIRES_POSTUN "shadow-utils, initscripts")
+
+.. variable:: CPACK_RPM_PACKAGE_REQUIRES_PREUN
+ CPACK_RPM_<component>_PACKAGE_REQUIRES_PREUN
+
+ RPM spec requires(preun) field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set RPM preuninstall dependencies (requires(preun)). Note that
+ you must enclose the complete requires string between quotes, for example::
+
+ set(CPACK_RPM_PACKAGE_REQUIRES_PREUN "shadow-utils, initscripts")
+
+.. variable:: CPACK_RPM_PACKAGE_SUGGESTS
+ CPACK_RPM_<component>_PACKAGE_SUGGESTS
+
+ RPM spec suggest field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set weak RPM dependencies (suggests). Note that you must
+ enclose the complete requires string between quotes.
+
+.. variable:: CPACK_RPM_PACKAGE_PROVIDES
+ CPACK_RPM_<component>_PACKAGE_PROVIDES
+
+ RPM spec provides field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set RPM dependencies (provides). The provided package list
+ of an RPM file could be printed with::
+
+ rpm -qp --provides file.rpm
+
+.. variable:: CPACK_RPM_PACKAGE_OBSOLETES
+ CPACK_RPM_<component>_PACKAGE_OBSOLETES
+
+ RPM spec obsoletes field.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set RPM packages that are obsoleted by this one.
+
+.. variable:: CPACK_RPM_PACKAGE_RELOCATABLE
+
+ build a relocatable RPM.
+
+ * Mandatory : NO
+ * Default : CPACK_PACKAGE_RELOCATABLE
+
+ If this variable is set to TRUE or ON, the CPack RPM generator will try
+ to build a relocatable RPM package. A relocatable RPM may
+ be installed using::
+
+ rpm --prefix or --relocate
+
+ in order to install it at an alternate place see rpm(8). Note that
+ currently this may fail if :variable:`CPACK_SET_DESTDIR` is set to ``ON``. If
+ :variable:`CPACK_SET_DESTDIR` is set then you will get a warning message but
+ if there is file installed with absolute path you'll get unexpected behavior.
+
+.. variable:: CPACK_RPM_SPEC_INSTALL_POST
+
+ Deprecated - use :variable:`CPACK_RPM_SPEC_MORE_DEFINE` instead.
+
+ * Mandatory : NO
+ * Default : -
+ * Deprecated: YES
+
+ May be used to override the ``__spec_install_post`` section within the
+ generated spec file. This affects the install step during package creation,
+ not during package installation. For adding operations to be performed
+ during package installation, use
+ :variable:`CPACK_RPM_POST_INSTALL_SCRIPT_FILE` instead.
+
+.. variable:: CPACK_RPM_SPEC_MORE_DEFINE
+
+ RPM extended spec definitions lines.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to add any ``%define`` lines to the generated spec file. An
+ example of its use is to prevent stripping of executables (but note that
+ this may also disable other default post install processing)::
+
+ set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
+
+.. variable:: CPACK_RPM_PACKAGE_DEBUG
+
+ Toggle CPack RPM generator debug output.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be set when invoking cpack in order to trace debug information
+ during CPack RPM run. For example you may launch CPack like this::
+
+ cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
+
+.. variable:: CPACK_RPM_USER_BINARY_SPECFILE
+ CPACK_RPM_<componentName>_USER_BINARY_SPECFILE
+
+ A user provided spec file.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be set by the user in order to specify a USER binary spec file
+ to be used by the CPack RPM generator instead of generating the file.
+ The specified file will be processed by configure_file( @ONLY).
+
+.. variable:: CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
+
+ Spec file template.
+
+ * Mandatory : NO
+ * Default : -
+
+ If set CPack will generate a template for USER specified binary
+ spec file and stop with an error. For example launch CPack like this::
+
+ cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
+
+ The user may then use this file in order to hand-craft is own
+ binary spec file which may be used with
+ :variable:`CPACK_RPM_USER_BINARY_SPECFILE`.
+
+.. variable:: CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
+ CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
+ CPACK_RPM_PRE_TRANS_SCRIPT_FILE
+
+ Path to file containing pre install/uninstall/transaction script.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to embed a pre installation/uninstallation/transaction script in the spec file.
+ The referred script file (or both) will be read and directly
+ put after the ``%pre`` or ``%preun`` section
+ If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the install/uninstall/transaction
+ script for each component can be overridden with
+ ``CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE``,
+ ``CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE``, and
+ ``CPACK_RPM_<COMPONENT>_PRE_TRANS_SCRIPT_FILE``
+ One may verify which scriptlet has been included with::
+
+ rpm -qp --scripts package.rpm
+
+.. variable:: CPACK_RPM_POST_INSTALL_SCRIPT_FILE
+ CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE
+ CPACK_RPM_POST_TRANS_SCRIPT_FILE
+
+ Path to file containing post install/uninstall/transaction script.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to embed a post installation/uninstallation/transaction script in the spec file.
+ The referred script file (or both) will be read and directly
+ put after the ``%post`` or ``%postun`` section.
+ If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the install/uninstall/transaction
+ script for each component can be overridden with
+ ``CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE``,
+ ``CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE``, and
+ ``CPACK_RPM_<COMPONENT>_POST_TRANS_SCRIPT_FILE``
+ One may verify which scriptlet has been included with::
+
+ rpm -qp --scripts package.rpm
+
+.. variable:: CPACK_RPM_USER_FILELIST
+ CPACK_RPM_<COMPONENT>_USER_FILELIST
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to explicitly specify ``%(<directive>)`` file line
+ in the spec file. Like ``%config(noreplace)`` or any other directive
+ that be found in the ``%files`` section. You can have multiple directives
+ per line, as in ``%attr(600,root,root) %config(noreplace)``. Since
+ the CPack RPM generator is generating the list of files (and directories) the
+ user specified files of the ``CPACK_RPM_<COMPONENT>_USER_FILELIST`` list will
+ be removed from the generated list. If referring to directories do
+ not add a trailing slash.
+
+.. variable:: CPACK_RPM_CHANGELOG_FILE
+
+ RPM changelog file.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to embed a changelog in the spec file.
+ The referred file will be read and directly put after the ``%changelog``
+ section.
+
+.. variable:: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST
+
+ list of path to be excluded.
+
+ * Mandatory : NO
+ * Default : /etc /etc/init.d /usr /usr/bin /usr/include /usr/lib
+ /usr/libx32 /usr/lib64 /usr/share /usr/share/aclocal
+ /usr/share/doc
+
+ May be used to exclude path (directories or files) from the auto-generated
+ list of paths discovered by CPack RPM. The default value contains a
+ reasonable set of values if the variable is not defined by the user. If the
+ variable is defined by the user then the CPack RPM generator will NOT any of
+ the default path. If you want to add some path to the default list then you
+ can use :variable:`CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION` variable.
+
+.. variable:: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
+
+ additional list of path to be excluded.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to add more exclude path (directories or files) from the initial
+ default list of excluded paths. See
+ :variable:`CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST`.
+
+.. variable:: CPACK_RPM_RELOCATION_PATHS
+
+ Packages relocation paths list.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to specify more than one relocation path per relocatable RPM.
+ Variable contains a list of relocation paths that if relative are prefixed
+ by the value of :variable:`CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX` or by the
+ value of :variable:`CPACK_PACKAGING_INSTALL_PREFIX` if the component version
+ is not provided.
+ Variable is not component based as its content can be used to set a different
+ path prefix for e.g. binary dir and documentation dir at the same time.
+ Only prefixes that are required by a certain component are added to that
+ component - component must contain at least one file/directory/symbolic link
+ with :variable:`CPACK_RPM_RELOCATION_PATHS` prefix for a certain relocation
+ path to be added. Package will not contain any relocation paths if there are
+ no files/directories/symbolic links on any of the provided prefix locations.
+ Packages that either do not contain any relocation paths or contain
+ files/directories/symbolic links that are outside relocation paths print
+ out an ``AUTHOR_WARNING`` that RPM will be partially relocatable.
+
+.. variable:: CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
+
+ Per component relocation path install prefix.
+
+ * Mandatory : NO
+ * Default : CPACK_PACKAGING_INSTALL_PREFIX
+
+ May be used to set per component :variable:`CPACK_PACKAGING_INSTALL_PREFIX`
+ for relocatable RPM packages.
+
+.. variable:: CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION
+ CPACK_RPM_NO_<COMPONENT>_INSTALL_PREFIX_RELOCATION
+
+ Removal of default install prefix from relocation paths list.
+
+ * Mandatory : NO
+ * Default : CPACK_PACKAGING_INSTALL_PREFIX or CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
+ are treated as one of relocation paths
+
+ May be used to remove CPACK_PACKAGING_INSTALL_PREFIX and CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
+ from relocatable RPM prefix paths.
+
+.. variable:: CPACK_RPM_ADDITIONAL_MAN_DIRS
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set additional man dirs that could potentially be compressed
+ by brp-compress RPM macro. Variable content must be a list of regular
+ expressions that point to directories containing man files or to man files
+ directly. Note that in order to compress man pages a path must also be
+ present in brp-compress RPM script and that brp-compress script must be
+ added to RPM configuration by the operating system.
+
+ Regular expressions that are added by default were taken from brp-compress
+ RPM macro:
+
+ - /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.*
+
+.. variable:: CPACK_RPM_DEFAULT_USER
+ CPACK_RPM_<compName>_DEFAULT_USER
+
+ default user ownership of RPM content
+
+ * Mandatory : NO
+ * Default : root
+
+ Value should be user name and not UID.
+ Note that <compName> must be in upper-case.
+
+.. variable:: CPACK_RPM_DEFAULT_GROUP
+ CPACK_RPM_<compName>_DEFAULT_GROUP
+
+ default group ownership of RPM content
+
+ * Mandatory : NO
+ * Default : root
+
+ Value should be group name and not GID.
+ Note that <compName> must be in upper-case.
+
+.. variable:: CPACK_RPM_DEFAULT_FILE_PERMISSIONS
+ CPACK_RPM_<compName>_DEFAULT_FILE_PERMISSIONS
+
+ default permissions used for packaged files
+
+ * Mandatory : NO
+ * Default : - (system default)
+
+ Accepted values are lists with ``PERMISSIONS``. Valid permissions
+ are:
+
+ - OWNER_READ
+ - OWNER_WRITE
+ - OWNER_EXECUTE
+ - GROUP_READ
+ - GROUP_WRITE
+ - GROUP_EXECUTE
+ - WORLD_READ
+ - WORLD_WRITE
+ - WORLD_EXECUTE
+
+ Note that <compName> must be in upper-case.
+
+.. variable:: CPACK_RPM_DEFAULT_DIR_PERMISSIONS
+ CPACK_RPM_<compName>_DEFAULT_DIR_PERMISSIONS
+
+ default permissions used for packaged directories
+
+ * Mandatory : NO
+ * Default : - (system default)
+
+ Accepted values are lists with PERMISSIONS. Valid permissions
+ are the same as for :variable:`CPACK_RPM_DEFAULT_FILE_PERMISSIONS`.
+ Note that <compName> must be in upper-case.
+
+.. variable:: CPACK_RPM_INSTALL_WITH_EXEC
+
+ force execute permissions on programs and shared libraries
+
+ * Mandatory : NO
+ * Default : - (system default)
+
+ Force set owner, group and world execute permissions on programs and shared
+ libraries. This can be used for creating valid rpm packages on systems such
+ as Debian where shared libraries do not have execute permissions set.
+
+.. note::
+
+ Programs and shared libraries without execute permissions are ignored during
+ separation of debug symbols from the binary for debuginfo packages.
+
+Packaging of Symbolic Links
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The CPack RPM generator supports packaging of symbolic links::
+
+ execute_process(COMMAND ${CMAKE_COMMAND}
+ -E create_symlink <relative_path_location> <symlink_name>)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/<symlink_name>
+ DESTINATION <symlink_location> COMPONENT libraries)
+
+Symbolic links will be optimized (paths will be shortened if possible)
+before being added to the package or if multiple relocation paths are
+detected, a post install symlink relocation script will be generated.
+
+Symbolic links may point to locations that are not packaged by the same
+package (either a different component or even not packaged at all) but
+those locations will be treated as if they were a part of the package
+while determining if symlink should be either created or present in a
+post install script - depending on relocation paths.
+
+Symbolic links that point to locations outside packaging path produce a
+warning and are treated as non relocatable permanent symbolic links.
+
+Currently there are a few limitations though:
+
+* For component based packaging component interdependency is not checked
+ when processing symbolic links. Symbolic links pointing to content of
+ a different component are treated the same way as if pointing to location
+ that will not be packaged.
+
+* Symbolic links pointing to a location through one or more intermediate
+ symbolic links will not be handled differently - if the intermediate
+ symbolic link(s) is also on a relocatable path, relocating it during
+ package installation may cause initial symbolic link to point to an
+ invalid location.
+
+Packaging of debug information
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Debuginfo packages contain debug symbols and sources for debugging packaged
+binaries.
+
+Debuginfo RPM packaging has its own set of variables:
+
+.. variable:: CPACK_RPM_DEBUGINFO_PACKAGE
+ CPACK_RPM_<component>_DEBUGINFO_PACKAGE
+
+ Enable generation of debuginfo RPM package(s).
+
+ * Mandatory : NO
+ * Default : OFF
+
+.. note::
+
+ Binaries must contain debug symbols before packaging so use either ``Debug``
+ or ``RelWithDebInfo`` for :variable:`CMAKE_BUILD_TYPE` variable value.
+
+.. note::
+
+ Packages generated from packages without binary files, with binary files but
+ without execute permissions or without debug symbols will cause packaging
+ termination.
+
+.. variable:: CPACK_BUILD_SOURCE_DIRS
+
+ Provides locations of root directories of source files from which binaries
+ were built.
+
+ * Mandatory : YES if :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is set
+ * Default : -
+
+.. note::
+
+ For CMake project :variable:`CPACK_BUILD_SOURCE_DIRS` is set by default to
+ point to :variable:`CMAKE_SOURCE_DIR` and :variable:`CMAKE_BINARY_DIR` paths.
+
+.. note::
+
+ Sources with path prefixes that do not fall under any location provided with
+ :variable:`CPACK_BUILD_SOURCE_DIRS` will not be present in debuginfo package.
+
+.. variable:: CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX
+ CPACK_RPM_<component>_BUILD_SOURCE_DIRS_PREFIX
+
+ Prefix of location where sources will be placed during package installation.
+
+ * Mandatory : YES if :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is set
+ * Default : "/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>" and
+ for component packaging "/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>-<component>"
+
+.. note::
+
+ Each source path prefix is additionally suffixed by ``src_<index>`` where
+ index is index of the path used from :variable:`CPACK_BUILD_SOURCE_DIRS`
+ variable. This produces ``<CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX>/src_<index>``
+ replacement path.
+ Limitation is that replaced path part must be shorter or of equal
+ length than the length of its replacement. If that is not the case either
+ :variable:`CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX` variable has to be set to
+ a shorter path or source directories must be placed on a longer path.
+
+.. variable:: CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS
+
+ Directories containing sources that should be excluded from debuginfo packages.
+
+ * Mandatory : NO
+ * Default : "/usr /usr/src /usr/src/debug"
+
+ Listed paths are owned by other RPM packages and should therefore not be
+ deleted on debuginfo package uninstallation.
+
+.. variable:: CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION
+
+ Paths that should be appended to :variable:`CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS`
+ for exclusion.
+
+ * Mandatory : NO
+ * Default : -
+
+.. variable:: CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE
+
+ Create a single debuginfo package even if components packaging is set.
+
+ * Mandatory : NO
+ * Default : OFF
+
+ When this variable is enabled it produces a single debuginfo package even if
+ component packaging is enabled.
+
+ When using this feature in combination with components packaging and there is
+ more than one component this variable requires :variable:`CPACK_RPM_MAIN_COMPONENT`
+ to be set.
+
+.. note::
+
+ If none of the :variable:`CPACK_RPM_<component>_DEBUGINFO_PACKAGE` variables
+ is set then :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is automatically set to
+ ``ON`` when :variable:`CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE` is set.
+
+.. variable:: CPACK_RPM_DEBUGINFO_FILE_NAME
+ CPACK_RPM_<component>_DEBUGINFO_FILE_NAME
+
+ Debuginfo package file name.
+
+ * Mandatory : NO
+ * Default : rpmbuild tool generated package file name
+
+ Alternatively provided debuginfo package file name must end with ``.rpm``
+ suffix and should differ from file names of other generated packages.
+
+ Variable may contain ``@cpack_component@`` placeholder which will be
+ replaced by component name if component packaging is enabled otherwise it
+ deletes the placeholder.
+
+ Setting the variable to ``RPM-DEFAULT`` may be used to explicitly set
+ filename generation to default.
+
+.. note::
+
+ :variable:`CPACK_RPM_FILE_NAME` also supports rpmbuild tool generated package
+ file name - disabled by default but can be enabled by setting the variable to
+ ``RPM-DEFAULT``.
+
+Packaging of sources (SRPM)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+SRPM packaging is enabled by setting :variable:`CPACK_RPM_PACKAGE_SOURCES`
+variable while usually using :variable:`CPACK_INSTALLED_DIRECTORIES` variable
+to provide directory containing CMakeLists.txt and source files.
+
+For CMake projects SRPM package would be produced by executing::
+
+ cpack -G RPM --config ./CPackSourceConfig.cmake
+
+.. note::
+
+ Produced SRPM package is expected to be built with :manual:`cmake(1)` executable
+ and packaged with :manual:`cpack(1)` executable so CMakeLists.txt has to be
+ located in root source directory and must be able to generate binary rpm
+ packages by executing ``cpack -G`` command. The two executables as well as
+ rpmbuild must also be present when generating binary rpm packages from the
+ produced SRPM package.
+
+Once the SRPM package is generated it can be used to generate binary packages
+by creating a directory structure for rpm generation and executing rpmbuild
+tool::
+
+ mkdir -p build_dir/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
+ rpmbuild --define "_topdir <path_to_build_dir>" --rebuild <SRPM_file_name>
+
+Generated packages will be located in build_dir/RPMS directory or its sub
+directories.
+
+.. note::
+
+ SRPM package internally uses CPack/RPM generator to generate binary packages
+ so CMakeScripts.txt can decide during the SRPM to binary rpm generation step
+ what content the package(s) should have as well as how they should be packaged
+ (monolithic or components). CMake can decide this for e.g. by reading environment
+ variables set by the package manager before starting the process of generating
+ binary rpm packages. This way a single SRPM package can be used to produce
+ different binary rpm packages on different platforms depending on the platform's
+ packaging rules.
+
+Source RPM packaging has its own set of variables:
+
+.. variable:: CPACK_RPM_PACKAGE_SOURCES
+
+ Should the content be packaged as a source rpm (default is binary rpm).
+
+ * Mandatory : NO
+ * Default : OFF
+
+.. note::
+
+ For cmake projects :variable:`CPACK_RPM_PACKAGE_SOURCES` variable is set
+ to ``OFF`` in CPackConfig.cmake and ``ON`` in CPackSourceConfig.cmake
+ generated files.
+
+.. variable:: CPACK_RPM_SOURCE_PKG_BUILD_PARAMS
+
+ Additional command-line parameters provided to :manual:`cmake(1)` executable.
+
+ * Mandatory : NO
+ * Default : -
+
+.. variable:: CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX
+
+ Packaging install prefix that would be provided in :variable:`CPACK_PACKAGING_INSTALL_PREFIX`
+ variable for producing binary RPM packages.
+
+ * Mandatory : YES
+ * Default : "/"
+
+.. VARIABLE:: CPACK_RPM_BUILDREQUIRES
+
+ List of source rpm build dependencies.
+
+ * Mandatory : NO
+ * Default : -
+
+ May be used to set source RPM build dependencies (BuildRequires). Note that
+ you must enclose the complete build requirements string between quotes, for
+ example::
+
+ set(CPACK_RPM_BUILDREQUIRES "python >= 2.5.0, cmake >= 2.8")
diff --git a/share/cmake-3.17/Help/cpack_gen/wix.rst b/share/cmake-3.18/Help/cpack_gen/wix.rst
index 7fb5a12..7fb5a12 100644
--- a/share/cmake-3.17/Help/cpack_gen/wix.rst
+++ b/share/cmake-3.18/Help/cpack_gen/wix.rst
diff --git a/share/cmake-3.17/Help/envvar/ASM_DIALECT.rst b/share/cmake-3.18/Help/envvar/ASM_DIALECT.rst
index a06e3cb..a06e3cb 100644
--- a/share/cmake-3.17/Help/envvar/ASM_DIALECT.rst
+++ b/share/cmake-3.18/Help/envvar/ASM_DIALECT.rst
diff --git a/share/cmake-3.18/Help/envvar/ASM_DIALECTFLAGS.rst b/share/cmake-3.18/Help/envvar/ASM_DIALECTFLAGS.rst
new file mode 100644
index 0000000..2e1c6d2
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/ASM_DIALECTFLAGS.rst
@@ -0,0 +1,15 @@
+ASM<DIALECT>FLAGS
+-----------------
+
+.. include:: ENV_VAR.txt
+
+Default compilation flags to be used when compiling a specific dialect of an
+assembly language. ``ASM<DIALECT>FLAGS`` can be ``ASMFLAGS``, ``ASM_NASMFLAGS``,
+``ASM_MASMFLAGS`` or ``ASM-ATTFLAGS``. Will only be used by CMake on the
+first configuration to determine ``ASM_<DIALECT>`` default compilation
+flags, after which the value for ``ASM<DIALECT>FLAGS`` is stored in the cache
+as ``CMAKE_ASM<DIALECT>_FLAGS <CMAKE_<LANG>_FLAGS>``. For any configuration
+run (including the first), the environment variable will be ignored, if the
+``CMAKE_ASM<DIALECT>_FLAGS <CMAKE_<LANG>_FLAGS>`` variable is defined.
+
+See also :variable:`CMAKE_ASM<DIALECT>_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/CC.rst b/share/cmake-3.18/Help/envvar/CC.rst
index ef12059..ef12059 100644
--- a/share/cmake-3.17/Help/envvar/CC.rst
+++ b/share/cmake-3.18/Help/envvar/CC.rst
diff --git a/share/cmake-3.18/Help/envvar/CCMAKE_COLORS.rst b/share/cmake-3.18/Help/envvar/CCMAKE_COLORS.rst
new file mode 100644
index 0000000..d4750c3
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/CCMAKE_COLORS.rst
@@ -0,0 +1,34 @@
+CCMAKE_COLORS
+-------------
+
+Determines what colors are used by the CMake curses interface,
+when run on a terminal that supports colors.
+The syntax follows the same conventions as ``LS_COLORS``;
+that is, a list of key/value pairs separated by ``:``.
+
+Keys are a single letter corresponding to a CMake cache variable type:
+
+- ``s``: A ``STRING``.
+- ``p``: A ``FILEPATH``.
+- ``c``: A value which has an associated list of choices.
+- ``y``: A ``BOOL`` which has a true-like value (e.g. ``ON``, ``YES``).
+- ``n``: A ``BOOL`` which has a false-like value (e.g. ``OFF``, ``NO``).
+
+Values are an integer number that specifies what color to use.
+``0`` is black (you probably don't want to use that).
+Others are determined by your terminal's color support.
+Most (color) terminals will support at least 8 or 16 colors.
+Some will support up to 256 colors. The colors will likely match
+`this chart <https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg>`_,
+although the first 16 colors may match the original
+`CGA color palette <https://en.wikipedia.org/wiki/Color_Graphics_Adapter#Color_palette>`_.
+(Many modern terminal emulators also allow their color palette,
+at least for the first 16 colors, to be configured by the user.)
+
+Note that fairly minimal checking is done for bad colors
+(although a value higher than what curses believes your terminal supports
+will be silently ignored) or bad syntax.
+
+For example::
+
+ CCMAKE_COLORS='s=39:p=220:c=207:n=196:y=46'
diff --git a/share/cmake-3.18/Help/envvar/CFLAGS.rst b/share/cmake-3.18/Help/envvar/CFLAGS.rst
new file mode 100644
index 0000000..190b4f4
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/CFLAGS.rst
@@ -0,0 +1,13 @@
+CFLAGS
+------
+
+.. include:: ENV_VAR.txt
+
+Default compilation flags to be used when compiling ``C`` files. Will only be
+used by CMake on the first configuration to determine ``CC`` default compilation
+flags, after which the value for ``CFLAGS`` is stored in the cache
+as :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration run
+(including the first), the environment variable will be ignored if the
+:variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_C_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst b/share/cmake-3.18/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
index 199ca3e..199ca3e 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_BUILD_PARALLEL_LEVEL.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_CONFIG_TYPE.rst b/share/cmake-3.18/Help/envvar/CMAKE_CONFIG_TYPE.rst
index 168593d..168593d 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_CONFIG_TYPE.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_CONFIG_TYPE.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst b/share/cmake-3.18/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst
index e9e0810..e9e0810 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_EXPORT_COMPILE_COMMANDS.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR.rst b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR.rst
index f2d055f..f2d055f 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
index 1654fa1..1654fa1 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_INSTANCE.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
index 917b30b..917b30b 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_PLATFORM.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
index 7ac3856..7ac3856 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_GENERATOR_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.18/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst
index 4f91e9a..4f91e9a 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_LANG_COMPILER_LAUNCHER.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst b/share/cmake-3.18/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
index 77ead4d..77ead4d 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_MSVCIDE_RUN_PATH.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_NO_VERBOSE.rst b/share/cmake-3.18/Help/envvar/CMAKE_NO_VERBOSE.rst
index 149efbd..149efbd 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_NO_VERBOSE.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_NO_VERBOSE.rst
diff --git a/share/cmake-3.17/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst b/share/cmake-3.18/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
index ef7d547..ef7d547 100644
--- a/share/cmake-3.17/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
+++ b/share/cmake-3.18/Help/envvar/CMAKE_OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.18/Help/envvar/CMAKE_PREFIX_PATH.rst b/share/cmake-3.18/Help/envvar/CMAKE_PREFIX_PATH.rst
new file mode 100644
index 0000000..276fdd6
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/CMAKE_PREFIX_PATH.rst
@@ -0,0 +1,17 @@
+CMAKE_PREFIX_PATH
+-----------------
+
+.. include:: ENV_VAR.txt
+
+The ``CMAKE_PREFIX_PATH`` environment variable may be set to a list of
+directories specifying installation *prefixes* to be searched by the
+:command:`find_package`, :command:`find_program`, :command:`find_library`,
+:command:`find_file`, and :command:`find_path` commands. Each command will
+add appropriate subdirectories (like ``bin``, ``lib``, or ``include``)
+as specified in its own documentation.
+
+This variable may hold a single prefix or a list of prefixes separated
+by ``:`` on UNIX or ``;`` on Windows (the same as the ``PATH`` environment
+variable convention on those platforms).
+
+See also the :variable:`CMAKE_PREFIX_PATH` CMake variable.
diff --git a/share/cmake-3.18/Help/envvar/CSFLAGS.rst b/share/cmake-3.18/Help/envvar/CSFLAGS.rst
new file mode 100644
index 0000000..8762982
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/CSFLAGS.rst
@@ -0,0 +1,13 @@
+CSFLAGS
+-------
+
+.. include:: ENV_VAR.txt
+
+Preferred executable for compiling ``CSharp`` language files. Will only be
+used by CMake on the first configuration to determine ``CSharp`` default
+compilation flags, after which the value for ``CSFLAGS`` is stored in the cache
+as :variable:`CMAKE_CSharp_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
+run (including the first), the environment variable will be ignored if the
+:variable:`CMAKE_CSharp_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_CSharp_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst b/share/cmake-3.18/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
index e1991b2..e1991b2 100644
--- a/share/cmake-3.17/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
+++ b/share/cmake-3.18/Help/envvar/CTEST_INTERACTIVE_DEBUG_MODE.rst
diff --git a/share/cmake-3.17/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst b/share/cmake-3.18/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
index d8b4262..d8b4262 100644
--- a/share/cmake-3.17/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
+++ b/share/cmake-3.18/Help/envvar/CTEST_OUTPUT_ON_FAILURE.rst
diff --git a/share/cmake-3.17/Help/envvar/CTEST_PARALLEL_LEVEL.rst b/share/cmake-3.18/Help/envvar/CTEST_PARALLEL_LEVEL.rst
index fd4936e..fd4936e 100644
--- a/share/cmake-3.17/Help/envvar/CTEST_PARALLEL_LEVEL.rst
+++ b/share/cmake-3.18/Help/envvar/CTEST_PARALLEL_LEVEL.rst
diff --git a/share/cmake-3.17/Help/envvar/CTEST_PROGRESS_OUTPUT.rst b/share/cmake-3.18/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
index b36a6b8..b36a6b8 100644
--- a/share/cmake-3.17/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
+++ b/share/cmake-3.18/Help/envvar/CTEST_PROGRESS_OUTPUT.rst
diff --git a/share/cmake-3.17/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst b/share/cmake-3.18/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
index 79dbb79..79dbb79 100644
--- a/share/cmake-3.17/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
+++ b/share/cmake-3.18/Help/envvar/CTEST_USE_LAUNCHERS_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/envvar/CUDACXX.rst b/share/cmake-3.18/Help/envvar/CUDACXX.rst
index 10c0f9d..10c0f9d 100644
--- a/share/cmake-3.17/Help/envvar/CUDACXX.rst
+++ b/share/cmake-3.18/Help/envvar/CUDACXX.rst
diff --git a/share/cmake-3.18/Help/envvar/CUDAFLAGS.rst b/share/cmake-3.18/Help/envvar/CUDAFLAGS.rst
new file mode 100644
index 0000000..14c5d84
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/CUDAFLAGS.rst
@@ -0,0 +1,13 @@
+CUDAFLAGS
+---------
+
+.. include:: ENV_VAR.txt
+
+Default compilation flags to be used when compiling ``CUDA`` files. Will only be
+used by CMake on the first configuration to determine ``CUDA`` default
+compilation flags, after which the value for ``CUDAFLAGS`` is stored in the
+cache as :variable:`CMAKE_CUDA_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
+run (including the first), the environment variable will be ignored if
+the :variable:`CMAKE_CUDA_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_CUDA_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/CUDAHOSTCXX.rst b/share/cmake-3.18/Help/envvar/CUDAHOSTCXX.rst
index b9f65bd..b9f65bd 100644
--- a/share/cmake-3.17/Help/envvar/CUDAHOSTCXX.rst
+++ b/share/cmake-3.18/Help/envvar/CUDAHOSTCXX.rst
diff --git a/share/cmake-3.17/Help/envvar/CXX.rst b/share/cmake-3.18/Help/envvar/CXX.rst
index d655350..d655350 100644
--- a/share/cmake-3.17/Help/envvar/CXX.rst
+++ b/share/cmake-3.18/Help/envvar/CXX.rst
diff --git a/share/cmake-3.18/Help/envvar/CXXFLAGS.rst b/share/cmake-3.18/Help/envvar/CXXFLAGS.rst
new file mode 100644
index 0000000..460a347
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/CXXFLAGS.rst
@@ -0,0 +1,13 @@
+CXXFLAGS
+--------
+
+.. include:: ENV_VAR.txt
+
+Default compilation flags to be used when compiling ``CXX`` (C++) files. Will
+only be used by CMake on the first configuration to determine ``CXX`` default
+compilation flags, after which the value for ``CXXFLAGS`` is stored in the cache
+as :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration run (
+including the first), the environment variable will be ignored if
+the :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_CXX_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst b/share/cmake-3.18/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
index 6a52d64..6a52d64 100644
--- a/share/cmake-3.17/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
+++ b/share/cmake-3.18/Help/envvar/DASHBOARD_TEST_FROM_CTEST.rst
diff --git a/share/cmake-3.17/Help/envvar/DESTDIR.rst b/share/cmake-3.18/Help/envvar/DESTDIR.rst
index d2144ae..d2144ae 100644
--- a/share/cmake-3.17/Help/envvar/DESTDIR.rst
+++ b/share/cmake-3.18/Help/envvar/DESTDIR.rst
diff --git a/share/cmake-3.17/Help/envvar/ENV_VAR.txt b/share/cmake-3.18/Help/envvar/ENV_VAR.txt
index e1e70cd..e1e70cd 100644
--- a/share/cmake-3.17/Help/envvar/ENV_VAR.txt
+++ b/share/cmake-3.18/Help/envvar/ENV_VAR.txt
diff --git a/share/cmake-3.17/Help/envvar/FC.rst b/share/cmake-3.18/Help/envvar/FC.rst
index d6cabbc..d6cabbc 100644
--- a/share/cmake-3.17/Help/envvar/FC.rst
+++ b/share/cmake-3.18/Help/envvar/FC.rst
diff --git a/share/cmake-3.18/Help/envvar/FFLAGS.rst b/share/cmake-3.18/Help/envvar/FFLAGS.rst
new file mode 100644
index 0000000..53bffb6
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/FFLAGS.rst
@@ -0,0 +1,13 @@
+FFLAGS
+------
+
+.. include:: ENV_VAR.txt
+
+Default compilation flags to be used when compiling ``Fortran`` files. Will only
+be used by CMake on the first configuration to determine ``Fortran`` default
+compilation flags, after which the value for ``FFLAGS`` is stored in the cache
+as :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>`. For any configuration
+run (including the first), the environment variable will be ignored if
+the :variable:`CMAKE_Fortran_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_Fortran_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/LDFLAGS.rst b/share/cmake-3.18/Help/envvar/LDFLAGS.rst
index 816d6ef..816d6ef 100644
--- a/share/cmake-3.17/Help/envvar/LDFLAGS.rst
+++ b/share/cmake-3.18/Help/envvar/LDFLAGS.rst
diff --git a/share/cmake-3.17/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst b/share/cmake-3.18/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
index 662bd03..662bd03 100644
--- a/share/cmake-3.17/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
+++ b/share/cmake-3.18/Help/envvar/MACOSX_DEPLOYMENT_TARGET.rst
diff --git a/share/cmake-3.18/Help/envvar/OBJC.rst b/share/cmake-3.18/Help/envvar/OBJC.rst
new file mode 100644
index 0000000..30c0d13
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/OBJC.rst
@@ -0,0 +1,14 @@
+OBJC
+----
+
+.. include:: ENV_VAR.txt
+
+Preferred executable for compiling ``OBJC`` language files. Will only be used
+by CMake on the first configuration to determine ``OBJC`` compiler, after
+which the value for ``OBJC`` is stored in the cache as
+:variable:`CMAKE_OBJC_COMPILER <CMAKE_<LANG>_COMPILER>`. For any configuration
+run (including the first), the environment variable will be ignored if the
+:variable:`CMAKE_OBJC_COMPILER <CMAKE_<LANG>_COMPILER>` variable is defined.
+
+If ``OBJC`` is not defined, the :envvar:`CC` environment variable will
+be checked instead.
diff --git a/share/cmake-3.18/Help/envvar/OBJCXX.rst b/share/cmake-3.18/Help/envvar/OBJCXX.rst
new file mode 100644
index 0000000..a72f7e7
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/OBJCXX.rst
@@ -0,0 +1,14 @@
+OBJCXX
+------
+
+.. include:: ENV_VAR.txt
+
+Preferred executable for compiling ``OBJCXX`` language files. Will only be used
+by CMake on the first configuration to determine ``OBJCXX`` compiler, after
+which the value for ``OBJCXX`` is stored in the cache as
+:variable:`CMAKE_OBJCXX_COMPILER <CMAKE_<LANG>_COMPILER>`. For any configuration
+run (including the first), the environment variable will be ignored if the
+:variable:`CMAKE_OBJCXX_COMPILER <CMAKE_<LANG>_COMPILER>` variable is defined.
+
+If ``OBJCXX`` is not defined, the :envvar:`CXX` environment variable will
+be checked instead.
diff --git a/share/cmake-3.17/Help/envvar/PackageName_ROOT.rst b/share/cmake-3.18/Help/envvar/PackageName_ROOT.rst
index 82b0a06..82b0a06 100644
--- a/share/cmake-3.17/Help/envvar/PackageName_ROOT.rst
+++ b/share/cmake-3.18/Help/envvar/PackageName_ROOT.rst
diff --git a/share/cmake-3.17/Help/envvar/RC.rst b/share/cmake-3.18/Help/envvar/RC.rst
index 557520e..557520e 100644
--- a/share/cmake-3.17/Help/envvar/RC.rst
+++ b/share/cmake-3.18/Help/envvar/RC.rst
diff --git a/share/cmake-3.18/Help/envvar/RCFLAGS.rst b/share/cmake-3.18/Help/envvar/RCFLAGS.rst
new file mode 100644
index 0000000..bc43cb2
--- /dev/null
+++ b/share/cmake-3.18/Help/envvar/RCFLAGS.rst
@@ -0,0 +1,13 @@
+RCFLAGS
+-------
+
+.. include:: ENV_VAR.txt
+
+Default compilation flags to be used when compiling ``resource`` files. Will
+only be used by CMake on the first configuration to determine ``resource``
+default compilation flags, after which the value for ``RCFLAGS`` is stored in
+the cache as :variable:`CMAKE_RC_FLAGS <CMAKE_<LANG>_FLAGS>`. For any
+configuration run (including the first), the environment variable will be ignored
+if the :variable:`CMAKE_RC_FLAGS <CMAKE_<LANG>_FLAGS>` variable is defined.
+
+See also :variable:`CMAKE_RC_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>`.
diff --git a/share/cmake-3.17/Help/envvar/SWIFTC.rst b/share/cmake-3.18/Help/envvar/SWIFTC.rst
index b12e51d..b12e51d 100644
--- a/share/cmake-3.17/Help/envvar/SWIFTC.rst
+++ b/share/cmake-3.18/Help/envvar/SWIFTC.rst
diff --git a/share/cmake-3.17/Help/envvar/VERBOSE.rst b/share/cmake-3.18/Help/envvar/VERBOSE.rst
index 2d775a5..2d775a5 100644
--- a/share/cmake-3.17/Help/envvar/VERBOSE.rst
+++ b/share/cmake-3.18/Help/envvar/VERBOSE.rst
diff --git a/share/cmake-3.17/Help/generator/Borland Makefiles.rst b/share/cmake-3.18/Help/generator/Borland Makefiles.rst
index c00d00a..c00d00a 100644
--- a/share/cmake-3.17/Help/generator/Borland Makefiles.rst
+++ b/share/cmake-3.18/Help/generator/Borland Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/CodeBlocks.rst b/share/cmake-3.18/Help/generator/CodeBlocks.rst
index d830542..d830542 100644
--- a/share/cmake-3.17/Help/generator/CodeBlocks.rst
+++ b/share/cmake-3.18/Help/generator/CodeBlocks.rst
diff --git a/share/cmake-3.17/Help/generator/CodeLite.rst b/share/cmake-3.18/Help/generator/CodeLite.rst
index 46fa5be..46fa5be 100644
--- a/share/cmake-3.17/Help/generator/CodeLite.rst
+++ b/share/cmake-3.18/Help/generator/CodeLite.rst
diff --git a/share/cmake-3.17/Help/generator/Eclipse CDT4.rst b/share/cmake-3.18/Help/generator/Eclipse CDT4.rst
index 634e2b6..634e2b6 100644
--- a/share/cmake-3.17/Help/generator/Eclipse CDT4.rst
+++ b/share/cmake-3.18/Help/generator/Eclipse CDT4.rst
diff --git a/share/cmake-3.17/Help/generator/Green Hills MULTI.rst b/share/cmake-3.18/Help/generator/Green Hills MULTI.rst
index dffc679..dffc679 100644
--- a/share/cmake-3.17/Help/generator/Green Hills MULTI.rst
+++ b/share/cmake-3.18/Help/generator/Green Hills MULTI.rst
diff --git a/share/cmake-3.17/Help/generator/Kate.rst b/share/cmake-3.18/Help/generator/Kate.rst
index 129bf63..129bf63 100644
--- a/share/cmake-3.17/Help/generator/Kate.rst
+++ b/share/cmake-3.18/Help/generator/Kate.rst
diff --git a/share/cmake-3.17/Help/generator/MSYS Makefiles.rst b/share/cmake-3.18/Help/generator/MSYS Makefiles.rst
index 75b9fe5..75b9fe5 100644
--- a/share/cmake-3.17/Help/generator/MSYS Makefiles.rst
+++ b/share/cmake-3.18/Help/generator/MSYS Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/MinGW Makefiles.rst b/share/cmake-3.18/Help/generator/MinGW Makefiles.rst
index 134ea70..134ea70 100644
--- a/share/cmake-3.17/Help/generator/MinGW Makefiles.rst
+++ b/share/cmake-3.18/Help/generator/MinGW Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/NMake Makefiles JOM.rst b/share/cmake-3.18/Help/generator/NMake Makefiles JOM.rst
index 3a8744c..3a8744c 100644
--- a/share/cmake-3.17/Help/generator/NMake Makefiles JOM.rst
+++ b/share/cmake-3.18/Help/generator/NMake Makefiles JOM.rst
diff --git a/share/cmake-3.17/Help/generator/NMake Makefiles.rst b/share/cmake-3.18/Help/generator/NMake Makefiles.rst
index 89f2479..89f2479 100644
--- a/share/cmake-3.17/Help/generator/NMake Makefiles.rst
+++ b/share/cmake-3.18/Help/generator/NMake Makefiles.rst
diff --git a/share/cmake-3.18/Help/generator/Ninja Multi-Config.rst b/share/cmake-3.18/Help/generator/Ninja Multi-Config.rst
new file mode 100644
index 0000000..f480eb8
--- /dev/null
+++ b/share/cmake-3.18/Help/generator/Ninja Multi-Config.rst
@@ -0,0 +1,87 @@
+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.
+
+:variable:`CMAKE_CROSS_CONFIGS`
+ Specifies a :ref:`semicolon-separated list <CMake Language Lists>` of
+ configurations available from all ``build-<Config>.ninja`` files.
+
+:variable:`CMAKE_DEFAULT_BUILD_TYPE`
+ Specifies the configuration to use by default in a ``build.ninja`` file.
+
+: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.
+
+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.18/Help/generator/Ninja.rst b/share/cmake-3.18/Help/generator/Ninja.rst
new file mode 100644
index 0000000..08ee81b
--- /dev/null
+++ b/share/cmake-3.18/Help/generator/Ninja.rst
@@ -0,0 +1,42 @@
+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 is at least version 1.10 (which has the required features).
+
+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.17/Help/generator/Sublime Text 2.rst b/share/cmake-3.18/Help/generator/Sublime Text 2.rst
index 0a07ea9..0a07ea9 100644
--- a/share/cmake-3.17/Help/generator/Sublime Text 2.rst
+++ b/share/cmake-3.18/Help/generator/Sublime Text 2.rst
diff --git a/share/cmake-3.17/Help/generator/Unix Makefiles.rst b/share/cmake-3.18/Help/generator/Unix Makefiles.rst
index dfe4ecb..dfe4ecb 100644
--- a/share/cmake-3.17/Help/generator/Unix Makefiles.rst
+++ b/share/cmake-3.18/Help/generator/Unix Makefiles.rst
diff --git a/share/cmake-3.17/Help/generator/VS_TOOLSET_HOST_ARCH.txt b/share/cmake-3.18/Help/generator/VS_TOOLSET_HOST_ARCH.txt
index 0293631..0293631 100644
--- a/share/cmake-3.17/Help/generator/VS_TOOLSET_HOST_ARCH.txt
+++ b/share/cmake-3.18/Help/generator/VS_TOOLSET_HOST_ARCH.txt
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 10 2010.rst b/share/cmake-3.18/Help/generator/Visual Studio 10 2010.rst
index 4bf9a8f..4bf9a8f 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 10 2010.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 10 2010.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 11 2012.rst b/share/cmake-3.18/Help/generator/Visual Studio 11 2012.rst
index 5d89a6e..5d89a6e 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 11 2012.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 11 2012.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 12 2013.rst b/share/cmake-3.18/Help/generator/Visual Studio 12 2013.rst
index fb8e021..fb8e021 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 12 2013.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 12 2013.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 14 2015.rst b/share/cmake-3.18/Help/generator/Visual Studio 14 2015.rst
index 7383f7a..7383f7a 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 14 2015.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 14 2015.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 15 2017.rst b/share/cmake-3.18/Help/generator/Visual Studio 15 2017.rst
index 7e6f0fb..7e6f0fb 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 15 2017.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 15 2017.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 16 2019.rst b/share/cmake-3.18/Help/generator/Visual Studio 16 2019.rst
index 4aec7f7..4aec7f7 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 16 2019.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 16 2019.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 6.rst b/share/cmake-3.18/Help/generator/Visual Studio 6.rst
index 2dd07e0..2dd07e0 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 6.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 6.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 7 .NET 2003.rst b/share/cmake-3.18/Help/generator/Visual Studio 7 .NET 2003.rst
index d4c7869..d4c7869 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 7 .NET 2003.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 7 .NET 2003.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 7.rst b/share/cmake-3.18/Help/generator/Visual Studio 7.rst
index 54d29df..54d29df 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 7.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 7.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 8 2005.rst b/share/cmake-3.18/Help/generator/Visual Studio 8 2005.rst
index 947e7a5..947e7a5 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 8 2005.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 8 2005.rst
diff --git a/share/cmake-3.17/Help/generator/Visual Studio 9 2008.rst b/share/cmake-3.18/Help/generator/Visual Studio 9 2008.rst
index a09d047..a09d047 100644
--- a/share/cmake-3.17/Help/generator/Visual Studio 9 2008.rst
+++ b/share/cmake-3.18/Help/generator/Visual Studio 9 2008.rst
diff --git a/share/cmake-3.17/Help/generator/Watcom WMake.rst b/share/cmake-3.18/Help/generator/Watcom WMake.rst
index 09bdc3d..09bdc3d 100644
--- a/share/cmake-3.17/Help/generator/Watcom WMake.rst
+++ b/share/cmake-3.18/Help/generator/Watcom WMake.rst
diff --git a/share/cmake-3.17/Help/generator/Xcode.rst b/share/cmake-3.18/Help/generator/Xcode.rst
index d893ac5..d893ac5 100644
--- a/share/cmake-3.17/Help/generator/Xcode.rst
+++ b/share/cmake-3.18/Help/generator/Xcode.rst
diff --git a/share/cmake-3.17/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt b/share/cmake-3.18/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
index 6797d0e..6797d0e 100644
--- a/share/cmake-3.17/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
+++ b/share/cmake-3.18/Help/include/COMPILE_DEFINITIONS_DISCLAIMER.txt
diff --git a/share/cmake-3.17/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt b/share/cmake-3.18/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
index a54d728..a54d728 100644
--- a/share/cmake-3.17/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
+++ b/share/cmake-3.18/Help/include/INTERFACE_INCLUDE_DIRECTORIES_WARNING.txt
diff --git a/share/cmake-3.17/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt b/share/cmake-3.18/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
index 46e84ac..46e84ac 100644
--- a/share/cmake-3.17/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
+++ b/share/cmake-3.18/Help/include/INTERFACE_LINK_LIBRARIES_WARNING.txt
diff --git a/share/cmake-3.17/Help/index.rst b/share/cmake-3.18/Help/index.rst
index 4d9a9c8..4d9a9c8 100644
--- a/share/cmake-3.17/Help/index.rst
+++ b/share/cmake-3.18/Help/index.rst
diff --git a/share/cmake-3.17/Help/manual/ID_RESERVE.txt b/share/cmake-3.18/Help/manual/ID_RESERVE.txt
index be2b163..be2b163 100644
--- a/share/cmake-3.17/Help/manual/ID_RESERVE.txt
+++ b/share/cmake-3.18/Help/manual/ID_RESERVE.txt
diff --git a/share/cmake-3.17/Help/manual/LINKS.txt b/share/cmake-3.18/Help/manual/LINKS.txt
index 810fa0b..810fa0b 100644
--- a/share/cmake-3.17/Help/manual/LINKS.txt
+++ b/share/cmake-3.18/Help/manual/LINKS.txt
diff --git a/share/cmake-3.17/Help/manual/OPTIONS_BUILD.txt b/share/cmake-3.18/Help/manual/OPTIONS_BUILD.txt
index 0947e41..0947e41 100644
--- a/share/cmake-3.17/Help/manual/OPTIONS_BUILD.txt
+++ b/share/cmake-3.18/Help/manual/OPTIONS_BUILD.txt
diff --git a/share/cmake-3.17/Help/manual/OPTIONS_HELP.txt b/share/cmake-3.18/Help/manual/OPTIONS_HELP.txt
index feeca7d..feeca7d 100644
--- a/share/cmake-3.17/Help/manual/OPTIONS_HELP.txt
+++ b/share/cmake-3.18/Help/manual/OPTIONS_HELP.txt
diff --git a/share/cmake-3.17/Help/manual/VS-Choose-Arch.png b/share/cmake-3.18/Help/manual/VS-Choose-Arch.png
index 816b0f4..816b0f4 100644
--- a/share/cmake-3.17/Help/manual/VS-Choose-Arch.png
+++ b/share/cmake-3.18/Help/manual/VS-Choose-Arch.png
Binary files differ
diff --git a/share/cmake-3.17/Help/manual/ccmake.1.rst b/share/cmake-3.18/Help/manual/ccmake.1.rst
index 60d45a3..60d45a3 100644
--- a/share/cmake-3.17/Help/manual/ccmake.1.rst
+++ b/share/cmake-3.18/Help/manual/ccmake.1.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-buildsystem.7.rst b/share/cmake-3.18/Help/manual/cmake-buildsystem.7.rst
index d8142a2..d8142a2 100644
--- a/share/cmake-3.17/Help/manual/cmake-buildsystem.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-buildsystem.7.rst
diff --git a/share/cmake-3.18/Help/manual/cmake-commands.7.rst b/share/cmake-3.18/Help/manual/cmake-commands.7.rst
new file mode 100644
index 0000000..0aa4f75
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake-commands.7.rst
@@ -0,0 +1,173 @@
+.. cmake-manual-description: CMake Language Command Reference
+
+cmake-commands(7)
+*****************
+
+.. only:: html
+
+ .. contents::
+
+Scripting Commands
+==================
+
+These commands are always available.
+
+.. toctree::
+ :maxdepth: 1
+
+ /command/break
+ /command/cmake_host_system_information
+ /command/cmake_language
+ /command/cmake_minimum_required
+ /command/cmake_parse_arguments
+ /command/cmake_policy
+ /command/configure_file
+ /command/continue
+ /command/else
+ /command/elseif
+ /command/endforeach
+ /command/endfunction
+ /command/endif
+ /command/endmacro
+ /command/endwhile
+ /command/execute_process
+ /command/file
+ /command/find_file
+ /command/find_library
+ /command/find_package
+ /command/find_path
+ /command/find_program
+ /command/foreach
+ /command/function
+ /command/get_cmake_property
+ /command/get_directory_property
+ /command/get_filename_component
+ /command/get_property
+ /command/if
+ /command/include
+ /command/include_guard
+ /command/list
+ /command/macro
+ /command/mark_as_advanced
+ /command/math
+ /command/message
+ /command/option
+ /command/return
+ /command/separate_arguments
+ /command/set
+ /command/set_directory_properties
+ /command/set_property
+ /command/site_name
+ /command/string
+ /command/unset
+ /command/variable_watch
+ /command/while
+
+Project Commands
+================
+
+These commands are available only in CMake projects.
+
+.. toctree::
+ :maxdepth: 1
+
+ /command/add_compile_definitions
+ /command/add_compile_options
+ /command/add_custom_command
+ /command/add_custom_target
+ /command/add_definitions
+ /command/add_dependencies
+ /command/add_executable
+ /command/add_library
+ /command/add_link_options
+ /command/add_subdirectory
+ /command/add_test
+ /command/aux_source_directory
+ /command/build_command
+ /command/create_test_sourcelist
+ /command/define_property
+ /command/enable_language
+ /command/enable_testing
+ /command/export
+ /command/fltk_wrap_ui
+ /command/get_source_file_property
+ /command/get_target_property
+ /command/get_test_property
+ /command/include_directories
+ /command/include_external_msproject
+ /command/include_regular_expression
+ /command/install
+ /command/link_directories
+ /command/link_libraries
+ /command/load_cache
+ /command/project
+ /command/remove_definitions
+ /command/set_source_files_properties
+ /command/set_target_properties
+ /command/set_tests_properties
+ /command/source_group
+ /command/target_compile_definitions
+ /command/target_compile_features
+ /command/target_compile_options
+ /command/target_include_directories
+ /command/target_link_directories
+ /command/target_link_libraries
+ /command/target_link_options
+ /command/target_precompile_headers
+ /command/target_sources
+ /command/try_compile
+ /command/try_run
+
+.. _`CTest Commands`:
+
+CTest Commands
+==============
+
+These commands are available only in CTest scripts.
+
+.. toctree::
+ :maxdepth: 1
+
+ /command/ctest_build
+ /command/ctest_configure
+ /command/ctest_coverage
+ /command/ctest_empty_binary_directory
+ /command/ctest_memcheck
+ /command/ctest_read_custom_files
+ /command/ctest_run_script
+ /command/ctest_sleep
+ /command/ctest_start
+ /command/ctest_submit
+ /command/ctest_test
+ /command/ctest_update
+ /command/ctest_upload
+
+Deprecated Commands
+===================
+
+These commands are deprecated and are only made available to maintain
+backward compatibility. The documentation of each command states the
+CMake version in which it was deprecated. Do not use these commands
+in new code.
+
+.. toctree::
+ :maxdepth: 1
+
+ /command/build_name
+ /command/exec_program
+ /command/export_library_dependencies
+ /command/install_files
+ /command/install_programs
+ /command/install_targets
+ /command/load_command
+ /command/make_directory
+ /command/output_required_files
+ /command/qt_wrap_cpp
+ /command/qt_wrap_ui
+ /command/remove
+ /command/subdir_depends
+ /command/subdirs
+ /command/use_mangled_mesa
+ /command/utility_source
+ /command/variable_requires
+ /command/write_file
diff --git a/share/cmake-3.17/Help/manual/cmake-compile-features.7.rst b/share/cmake-3.18/Help/manual/cmake-compile-features.7.rst
index 05dc038..05dc038 100644
--- a/share/cmake-3.17/Help/manual/cmake-compile-features.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-compile-features.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-developer.7.rst b/share/cmake-3.18/Help/manual/cmake-developer.7.rst
index 85ed935..85ed935 100644
--- a/share/cmake-3.17/Help/manual/cmake-developer.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-developer.7.rst
diff --git a/share/cmake-3.18/Help/manual/cmake-env-variables.7.rst b/share/cmake-3.18/Help/manual/cmake-env-variables.7.rst
new file mode 100644
index 0000000..ce1e360
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake-env-variables.7.rst
@@ -0,0 +1,92 @@
+.. 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 Change Behavior
+==========================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /envvar/CMAKE_PREFIX_PATH
+
+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/OBJC
+ /envvar/OBJCXX
+ /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
+
+Environment Variables for the CMake curses interface
+====================================================
+
+.. toctree::
+ :maxdepth: 1
+
+ /envvar/CCMAKE_COLORS
diff --git a/share/cmake-3.18/Help/manual/cmake-file-api.7.rst b/share/cmake-3.18/Help/manual/cmake-file-api.7.rst
new file mode 100644
index 0000000..cc50952
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake-file-api.7.rst
@@ -0,0 +1,1135 @@
+.. 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": 1 },
+ "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.
+
+ ``precompileHeaders``
+ Optional member that is present when :command:`target_precompile_headers`
+ or other command invocations set :prop_tgt:`PRECOMPILE_HEADERS` on the
+ target. The value is a JSON array with an entry for each header. Each
+ entry is a JSON object with members:
+
+ ``header``
+ Full path to the precompile header file.
+
+ ``backtrace``
+ Optional member that is present when a CMake language backtrace to
+ the :command:`target_precompile_headers` or other command invocation
+ that added this precompiled header is available. The value is an
+ unsigned integer 0-based index into the ``backtraceGraph`` member's
+ ``nodes`` array.
+
+ This field was added in codemodel version 2.1.
+
+ ``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.18/Help/manual/cmake-generator-expressions.7.rst b/share/cmake-3.18/Help/manual/cmake-generator-expressions.7.rst
new file mode 100644
index 0000000..124da44
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake-generator-expressions.7.rst
@@ -0,0 +1,791 @@
+.. 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)
+
+.. _`Boolean LINK_LANGUAGE Generator Expression`:
+
+``$<LINK_LANG_AND_ID:language,compiler_ids>``
+ ``1`` when the language used for link step matches ``language`` and the
+ CMake's compiler id of the language linker matches any one of the entries
+ in ``compiler_ids``, otherwise ``0``. This expression is a short form for the
+ combination of ``$<LINK_LANGUAGE:language>`` and
+ ``$<LANG_COMPILER_ID:compiler_ids>``. This expression may be used to specify
+ link libraries, link options, link directories and link dependencies of a
+ particular language and linker combination in a target. For example:
+
+ .. code-block:: cmake
+
+ add_library(libC_Clang ...)
+ add_library(libCXX_Clang ...)
+ add_library(libC_Intel ...)
+ add_library(libCXX_Intel ...)
+
+ add_executable(myapp main.c)
+ if (CXX_CONFIG)
+ target_sources(myapp PRIVATE file.cxx)
+ endif()
+ target_link_libraries(myapp
+ PRIVATE $<$<LINK_LANG_AND_ID:CXX,Clang,AppleClang>:libCXX_Clang>
+ $<$<LINK_LANG_AND_ID:C,Clang,AppleClang>:libC_Clang>
+ $<$<LINK_LANG_AND_ID:CXX,Intel>:libCXX_Intel>
+ $<$<LINK_LANG_AND_ID:C,Intel>:libC_Intel>)
+
+ This specifies the use of different link libraries based on both the
+ compiler id and link language. This example will have target ``libCXX_Clang``
+ as link dependency when ``Clang`` or ``AppleClang`` is the ``CXX``
+ linker, and ``libCXX_Intel`` when ``Intel`` is the ``CXX`` linker.
+ Likewise when the ``C`` linker is ``Clang`` or ``AppleClang``, target
+ ``libC_Clang`` will be added as link dependency and ``libC_Intel`` when
+ ``Intel`` is the ``C`` linker.
+
+ See :ref:`the note related to
+ <Constraints LINK_LANGUAGE Generator Expression>`
+ ``$<LINK_LANGUAGE:language>`` for constraints about the usage of this
+ generator expression.
+
+``$<LINK_LANGUAGE:languages>``
+ ``1`` when the language used for link step matches any of the entries
+ in ``languages``, otherwise ``0``. This expression may be used to specify
+ link libraries, link options, link directories and link dependencies of a
+ particular language in a target. For example:
+
+ .. code-block:: cmake
+
+ add_library(api_C ...)
+ add_library(api_CXX ...)
+ add_library(api INTERFACE)
+ target_link_options(api INTERFACE $<$<LINK_LANGUAGE:C>:-opt_c>
+ $<$<LINK_LANGUAGE:CXX>:-opt_cxx>)
+ target_link_libraries(api INTERFACE $<$<LINK_LANGUAGE:C>:api_C>
+ $<$<LINK_LANGUAGE:CXX>:api_CXX>)
+
+ add_executable(myapp1 main.c)
+ target_link_options(myapp1 PRIVATE api)
+
+ add_executable(myapp2 main.cpp)
+ target_link_options(myapp2 PRIVATE api)
+
+ This specifies to use the ``api`` target for linking targets ``myapp1`` and
+ ``myapp2``. In practice, ``myapp1`` will link with target ``api_C`` and
+ option ``-opt_c`` because it will use ``C`` as link language. And ``myapp2``
+ will link with ``api_CXX`` and option ``-opt_cxx`` because ``CXX`` will be
+ the link language.
+
+ .. _`Constraints LINK_LANGUAGE Generator Expression`:
+
+ .. note::
+
+ To determine the link language of a target, it is required to collect,
+ transitively, all the targets which will be linked to it. So, for link
+ libraries properties, a double evaluation will be done. During the first
+ evaluation, ``$<LINK_LANGUAGE:..>`` expressions will always return ``0``.
+ The link language computed after this first pass will be used to do the
+ second pass. To avoid inconsistency, it is required that the second pass
+ do not change the link language. Moreover, to avoid unexpected
+ side-effects, it is required to specify complete entities as part of the
+ ``$<LINK_LANGUAGE:..>`` expression. For example:
+
+ .. code-block:: cmake
+
+ add_library(lib STATIC file.cxx)
+ add_library(libother STATIC file.c)
+
+ # bad usage
+ add_executable(myapp1 main.c)
+ target_link_libraries(myapp1 PRIVATE lib$<$<LINK_LANGUAGE:C>:other>)
+
+ # correct usage
+ add_executable(myapp2 main.c)
+ target_link_libraries(myapp2 PRIVATE $<$<LINK_LANGUAGE:C>:libother>)
+
+ In this example, for ``myapp1``, the first pass will, unexpectedly,
+ determine that the link language is ``CXX`` because the evaluation of the
+ generator expression will be an empty string so ``myapp1`` will depends on
+ target ``lib`` which is ``C++``. On the contrary, for ``myapp2``, the first
+ evaluation will give ``C`` as link language, so the second pass will
+ correctly add target ``libother`` as link dependency.
+
+``$<DEVICE_LINK:list>``
+ Returns the list if it is the device link step, an empty list otherwise.
+ The device link step is controlled by :prop_tgt:`CUDA_SEPARABLE_COMPILATION`
+ and :prop_tgt:`CUDA_RESOLVE_DEVICE_SYMBOLS` properties and
+ policy :policy:`CMP0105`. This expression can only be used to specify link
+ options.
+
+``$<HOST_LINK:list>``
+ Returns the list if it is the normal link step, an empty list otherwise.
+ This expression is mainly useful when a device link step is also involved
+ (see ``$<DEVICE_LINK:list>`` generator expression). This expression can only
+ be used to specify link options.
+
+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.
+``$<LINK_LANGUAGE>``
+ The link language of target when evaluating link options.
+ See :ref:`the related boolean expression
+ <Boolean LINK_LANGUAGE Generator Expression>` ``$<LINK_LANGUAGE:language>``
+ for notes about the portability of this generator expression.
+
+ .. note::
+
+ This generator expression is not supported by the link libraries
+ properties to avoid side-effects due to the double evaluation of
+ these properties.
+
+Target-Dependent Queries
+------------------------
+
+These queries refer to a target ``tgt``. This can be any runtime artifact,
+namely:
+
+* an executable target created by :command:`add_executable`
+* a shared library target (``.so``, ``.dll`` but not their ``.lib`` import library)
+ created by :command:`add_library`
+* a static library target created by :command:`add_library`
+
+In the following, "the ``tgt`` filename" means the name of the ``tgt``
+binary file. This has to be distinguished from "the target name",
+which is just the string ``tgt``.
+
+``$<TARGET_NAME_IF_EXISTS:tgt>``
+ The target name ``tgt`` if the target exists, an empty string otherwise.
+``$<TARGET_FILE:tgt>``
+ Full path to the ``tgt`` binary file.
+``$<TARGET_FILE_BASE_NAME:tgt>``
+ Base name of ``tgt``, i.e. ``$<TARGET_FILE_NAME:tgt>`` without prefix and
+ suffix.
+ For example, if the ``tgt`` filename 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 the ``tgt`` filename (such as ``lib``).
+
+ 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 the ``tgt`` filename (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>``
+ The ``tgt`` filename.
+``$<TARGET_FILE_DIR:tgt>``
+ Directory of the ``tgt`` binary file.
+``$<TARGET_LINKER_FILE:tgt>``
+ File used when linking to the ``tgt`` target. This will usually
+ be the library that ``tgt`` represents (``.a``, ``.lib``, ``.so``),
+ but for a shared library on DLL platforms, it would be the ``.lib``
+ import library associated with the DLL.
+``$<TARGET_LINKER_FILE_BASE_NAME:tgt>``
+ Base name of file used to link the target ``tgt``, i.e.
+ ``$<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 target ``tgt``.
+
+ 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 target ``tgt``.
+``$<TARGET_LINKER_FILE_DIR:tgt>``
+ Directory of file used to link target ``tgt``.
+``$<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 for which the expression
+ is being evaluated. Note that for generator expressions in
+ :ref:`Target Usage Requirements` this is 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.18/Help/manual/cmake-generators.7.rst
index 6f88c0a..6f88c0a 100644
--- a/share/cmake-3.17/Help/manual/cmake-generators.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-generators.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-gui.1.rst b/share/cmake-3.18/Help/manual/cmake-gui.1.rst
index ff8311b..ff8311b 100644
--- a/share/cmake-3.17/Help/manual/cmake-gui.1.rst
+++ b/share/cmake-3.18/Help/manual/cmake-gui.1.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-language.7.rst b/share/cmake-3.18/Help/manual/cmake-language.7.rst
index b7f0861..b7f0861 100644
--- a/share/cmake-3.17/Help/manual/cmake-language.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-language.7.rst
diff --git a/share/cmake-3.18/Help/manual/cmake-modules.7.rst b/share/cmake-3.18/Help/manual/cmake-modules.7.rst
new file mode 100644
index 0000000..50131e8
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake-modules.7.rst
@@ -0,0 +1,319 @@
+.. 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/CheckLinkerFlag
+ /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.17/Help/manual/cmake-packages.7.rst b/share/cmake-3.18/Help/manual/cmake-packages.7.rst
index 4b2934a..4b2934a 100644
--- a/share/cmake-3.17/Help/manual/cmake-packages.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-packages.7.rst
diff --git a/share/cmake-3.18/Help/manual/cmake-policies.7.rst b/share/cmake-3.18/Help/manual/cmake-policies.7.rst
new file mode 100644
index 0000000..e98038a
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake-policies.7.rst
@@ -0,0 +1,295 @@
+.. 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.18
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0108: A target cannot link to itself through an alias. </policy/CMP0108>
+ CMP0107: An ALIAS target cannot overwrite another target. </policy/CMP0107>
+ CMP0106: The Documentation module is removed. </policy/CMP0106>
+ CMP0105: Device link step uses the link options. </policy/CMP0105>
+ CMP0104: CMAKE_CUDA_ARCHITECTURES now detected for NVCC, empty CUDA_ARCHITECTURES not allowed. </policy/CMP0104>
+ CMP0103: Multiple export() with same FILE without APPEND is not allowed. </policy/CMP0103>
+
+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.18/Help/manual/cmake-properties.7.rst b/share/cmake-3.18/Help/manual/cmake-properties.7.rst
new file mode 100644
index 0000000..30b2a05
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake-properties.7.rst
@@ -0,0 +1,574 @@
+.. 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/ALIAS_GLOBAL
+ /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_ARCHITECTURES
+ /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/Fortran_PREPROCESS
+ /prop_tgt/FRAMEWORK
+ /prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG
+ /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/PCH_WARN_INVALID
+ /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/UNITY_BUILD_MODE
+ /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_PLATFORM_TOOLSET
+ /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_SOLUTION_DEPLOY
+ /prop_tgt/VS_SOURCE_SETTINGS_tool
+ /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/Fortran_PREPROCESS
+ /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/UNITY_GROUP
+ /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_SETTINGS
+ /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.17/Help/manual/cmake-qt.7.rst b/share/cmake-3.18/Help/manual/cmake-qt.7.rst
index d8d6172..d8d6172 100644
--- a/share/cmake-3.17/Help/manual/cmake-qt.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-qt.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-server.7.rst b/share/cmake-3.18/Help/manual/cmake-server.7.rst
index 8f10b9f..8f10b9f 100644
--- a/share/cmake-3.17/Help/manual/cmake-server.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-server.7.rst
diff --git a/share/cmake-3.17/Help/manual/cmake-toolchains.7.rst b/share/cmake-3.18/Help/manual/cmake-toolchains.7.rst
index e8badd4..e8badd4 100644
--- a/share/cmake-3.17/Help/manual/cmake-toolchains.7.rst
+++ b/share/cmake-3.18/Help/manual/cmake-toolchains.7.rst
diff --git a/share/cmake-3.18/Help/manual/cmake-variables.7.rst b/share/cmake-3.18/Help/manual/cmake-variables.7.rst
new file mode 100644
index 0000000..4ce8365
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake-variables.7.rst
@@ -0,0 +1,688 @@
+.. 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_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG
+ /variable/CMAKE_Fortran_FORMAT
+ /variable/CMAKE_Fortran_MODULE_DIRECTORY
+ /variable/CMAKE_Fortran_PREPROCESS
+ /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_PCH_WARN_INVALID
+ /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_ARCHITECTURES
+ /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_RESOURCE_SPEC_FILE
+ /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.18/Help/manual/cmake.1.rst b/share/cmake-3.18/Help/manual/cmake.1.rst
new file mode 100644
index 0000000..9becfc6
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/cmake.1.rst
@@ -0,0 +1,804 @@
+.. 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 commands 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.
+ See also the :variable:`CMAKE_FIND_DEBUG_MODE` variable for debugging
+ a more local part of the project.
+
+``--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.
+
+``--profiling-output=<path>``
+ Used in conjuction with ``--profiling-format`` to output to a given path.
+
+``--profiling-format=<file>``
+ Enable the output of profiling data of CMake script in the given format.
+
+ This can aid performance analysis of CMake scripts executed. Third party
+ applications should be used to process the output into human readable format.
+
+ Currently supported values are:
+ ``google-trace`` Outputs in Google Trace Format, which can be parsed by the
+ about:tracing tab of Google Chrome or using a plugin for a tool like Trace
+ Compass.
+
+.. _`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> [-- <unparsed-options>...]
+
+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.
+
+Any options after ``--`` are not parsed by CMake, but they are still included
+in the set of :variable:`CMAKE_ARGV<n> <CMAKE_ARGV0>` variables passed to the
+script (including the ``--`` itself).
+
+
+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.
+
+``cat <files>...``
+ Concatenate files and print on the standard output.
+
+``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.17/Help/manual/cpack-generators.7.rst b/share/cmake-3.18/Help/manual/cpack-generators.7.rst
index ade9149..ade9149 100644
--- a/share/cmake-3.17/Help/manual/cpack-generators.7.rst
+++ b/share/cmake-3.18/Help/manual/cpack-generators.7.rst
diff --git a/share/cmake-3.17/Help/manual/cpack.1.rst b/share/cmake-3.18/Help/manual/cpack.1.rst
index 395cd41..395cd41 100644
--- a/share/cmake-3.17/Help/manual/cpack.1.rst
+++ b/share/cmake-3.18/Help/manual/cpack.1.rst
diff --git a/share/cmake-3.18/Help/manual/ctest.1.rst b/share/cmake-3.18/Help/manual/ctest.1.rst
new file mode 100644
index 0000000..d3ab75a
--- /dev/null
+++ b/share/cmake-3.18/Help/manual/ctest.1.rst
@@ -0,0 +1,1593 @@
+.. 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
+
+``--stop-on-failure``
+ Stop running the tests when the first failure happens.
+
+``-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>`.
+
+ * `CTest Script`_ variable: :variable:`CTEST_RESOURCE_SPEC_FILE`
+ * :module:`CTest` module variable: ``CTEST_RESOURCE_SPEC_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`. If a dashboard script
+is used and ``RESOURCE_SPEC_FILE`` is not specified, the value of
+:variable:`CTEST_RESOURCE_SPEC_FILE` in the dashboard script is used instead.
+If ``--resource-spec-file``, ``RESOURCE_SPEC_FILE``, and
+:variable:`CTEST_RESOURCE_SPEC_FILE` in the dashboard script are not specified,
+the value of :variable:`CTEST_RESOURCE_SPEC_FILE` in the CMake build is used
+instead. If none of these are specified, no resource spec file is used.
+
+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.17/Help/module/AddFileDependencies.rst b/share/cmake-3.18/Help/module/AddFileDependencies.rst
index 3cbce33..3cbce33 100644
--- a/share/cmake-3.17/Help/module/AddFileDependencies.rst
+++ b/share/cmake-3.18/Help/module/AddFileDependencies.rst
diff --git a/share/cmake-3.17/Help/module/AndroidTestUtilities.rst b/share/cmake-3.18/Help/module/AndroidTestUtilities.rst
index e7ec864..e7ec864 100644
--- a/share/cmake-3.17/Help/module/AndroidTestUtilities.rst
+++ b/share/cmake-3.18/Help/module/AndroidTestUtilities.rst
diff --git a/share/cmake-3.17/Help/module/BundleUtilities.rst b/share/cmake-3.18/Help/module/BundleUtilities.rst
index 5d9c840..5d9c840 100644
--- a/share/cmake-3.17/Help/module/BundleUtilities.rst
+++ b/share/cmake-3.18/Help/module/BundleUtilities.rst
diff --git a/share/cmake-3.17/Help/module/CMakeAddFortranSubdirectory.rst b/share/cmake-3.18/Help/module/CMakeAddFortranSubdirectory.rst
index 9abf571..9abf571 100644
--- a/share/cmake-3.17/Help/module/CMakeAddFortranSubdirectory.rst
+++ b/share/cmake-3.18/Help/module/CMakeAddFortranSubdirectory.rst
diff --git a/share/cmake-3.17/Help/module/CMakeBackwardCompatibilityCXX.rst b/share/cmake-3.18/Help/module/CMakeBackwardCompatibilityCXX.rst
index 05e5f4a..05e5f4a 100644
--- a/share/cmake-3.17/Help/module/CMakeBackwardCompatibilityCXX.rst
+++ b/share/cmake-3.18/Help/module/CMakeBackwardCompatibilityCXX.rst
diff --git a/share/cmake-3.17/Help/module/CMakeDependentOption.rst b/share/cmake-3.18/Help/module/CMakeDependentOption.rst
index fd071b5..fd071b5 100644
--- a/share/cmake-3.17/Help/module/CMakeDependentOption.rst
+++ b/share/cmake-3.18/Help/module/CMakeDependentOption.rst
diff --git a/share/cmake-3.17/Help/module/CMakeDetermineVSServicePack.rst b/share/cmake-3.18/Help/module/CMakeDetermineVSServicePack.rst
index 1768533..1768533 100644
--- a/share/cmake-3.17/Help/module/CMakeDetermineVSServicePack.rst
+++ b/share/cmake-3.18/Help/module/CMakeDetermineVSServicePack.rst
diff --git a/share/cmake-3.17/Help/module/CMakeExpandImportedTargets.rst b/share/cmake-3.18/Help/module/CMakeExpandImportedTargets.rst
index 1084280..1084280 100644
--- a/share/cmake-3.17/Help/module/CMakeExpandImportedTargets.rst
+++ b/share/cmake-3.18/Help/module/CMakeExpandImportedTargets.rst
diff --git a/share/cmake-3.17/Help/module/CMakeFindDependencyMacro.rst b/share/cmake-3.18/Help/module/CMakeFindDependencyMacro.rst
index 5b5b550..5b5b550 100644
--- a/share/cmake-3.17/Help/module/CMakeFindDependencyMacro.rst
+++ b/share/cmake-3.18/Help/module/CMakeFindDependencyMacro.rst
diff --git a/share/cmake-3.17/Help/module/CMakeFindFrameworks.rst b/share/cmake-3.18/Help/module/CMakeFindFrameworks.rst
index c2c219b..c2c219b 100644
--- a/share/cmake-3.17/Help/module/CMakeFindFrameworks.rst
+++ b/share/cmake-3.18/Help/module/CMakeFindFrameworks.rst
diff --git a/share/cmake-3.17/Help/module/CMakeFindPackageMode.rst b/share/cmake-3.18/Help/module/CMakeFindPackageMode.rst
index d099d19..d099d19 100644
--- a/share/cmake-3.17/Help/module/CMakeFindPackageMode.rst
+++ b/share/cmake-3.18/Help/module/CMakeFindPackageMode.rst
diff --git a/share/cmake-3.17/Help/module/CMakeForceCompiler.rst b/share/cmake-3.18/Help/module/CMakeForceCompiler.rst
index 3277426..3277426 100644
--- a/share/cmake-3.17/Help/module/CMakeForceCompiler.rst
+++ b/share/cmake-3.18/Help/module/CMakeForceCompiler.rst
diff --git a/share/cmake-3.17/Help/module/CMakeGraphVizOptions.rst b/share/cmake-3.18/Help/module/CMakeGraphVizOptions.rst
index 2cd97b3..2cd97b3 100644
--- a/share/cmake-3.17/Help/module/CMakeGraphVizOptions.rst
+++ b/share/cmake-3.18/Help/module/CMakeGraphVizOptions.rst
diff --git a/share/cmake-3.17/Help/module/CMakePackageConfigHelpers.rst b/share/cmake-3.18/Help/module/CMakePackageConfigHelpers.rst
index a291aff..a291aff 100644
--- a/share/cmake-3.17/Help/module/CMakePackageConfigHelpers.rst
+++ b/share/cmake-3.18/Help/module/CMakePackageConfigHelpers.rst
diff --git a/share/cmake-3.17/Help/module/CMakeParseArguments.rst b/share/cmake-3.18/Help/module/CMakeParseArguments.rst
index 810a9dd..810a9dd 100644
--- a/share/cmake-3.17/Help/module/CMakeParseArguments.rst
+++ b/share/cmake-3.18/Help/module/CMakeParseArguments.rst
diff --git a/share/cmake-3.17/Help/module/CMakePrintHelpers.rst b/share/cmake-3.18/Help/module/CMakePrintHelpers.rst
index a75a34f..a75a34f 100644
--- a/share/cmake-3.17/Help/module/CMakePrintHelpers.rst
+++ b/share/cmake-3.18/Help/module/CMakePrintHelpers.rst
diff --git a/share/cmake-3.17/Help/module/CMakePrintSystemInformation.rst b/share/cmake-3.18/Help/module/CMakePrintSystemInformation.rst
index 0b5d848..0b5d848 100644
--- a/share/cmake-3.17/Help/module/CMakePrintSystemInformation.rst
+++ b/share/cmake-3.18/Help/module/CMakePrintSystemInformation.rst
diff --git a/share/cmake-3.17/Help/module/CMakePushCheckState.rst b/share/cmake-3.18/Help/module/CMakePushCheckState.rst
index e897929..e897929 100644
--- a/share/cmake-3.17/Help/module/CMakePushCheckState.rst
+++ b/share/cmake-3.18/Help/module/CMakePushCheckState.rst
diff --git a/share/cmake-3.17/Help/module/CMakeVerifyManifest.rst b/share/cmake-3.18/Help/module/CMakeVerifyManifest.rst
index eeff1bf..eeff1bf 100644
--- a/share/cmake-3.17/Help/module/CMakeVerifyManifest.rst
+++ b/share/cmake-3.18/Help/module/CMakeVerifyManifest.rst
diff --git a/share/cmake-3.17/Help/module/CPack.rst b/share/cmake-3.18/Help/module/CPack.rst
index bfbda1f..bfbda1f 100644
--- a/share/cmake-3.17/Help/module/CPack.rst
+++ b/share/cmake-3.18/Help/module/CPack.rst
diff --git a/share/cmake-3.17/Help/module/CPackArchive.rst b/share/cmake-3.18/Help/module/CPackArchive.rst
index 8616098..8616098 100644
--- a/share/cmake-3.17/Help/module/CPackArchive.rst
+++ b/share/cmake-3.18/Help/module/CPackArchive.rst
diff --git a/share/cmake-3.17/Help/module/CPackBundle.rst b/share/cmake-3.18/Help/module/CPackBundle.rst
index 5134884..5134884 100644
--- a/share/cmake-3.17/Help/module/CPackBundle.rst
+++ b/share/cmake-3.18/Help/module/CPackBundle.rst
diff --git a/share/cmake-3.17/Help/module/CPackComponent.rst b/share/cmake-3.18/Help/module/CPackComponent.rst
index df82836..df82836 100644
--- a/share/cmake-3.17/Help/module/CPackComponent.rst
+++ b/share/cmake-3.18/Help/module/CPackComponent.rst
diff --git a/share/cmake-3.17/Help/module/CPackCygwin.rst b/share/cmake-3.18/Help/module/CPackCygwin.rst
index 719dfce..719dfce 100644
--- a/share/cmake-3.17/Help/module/CPackCygwin.rst
+++ b/share/cmake-3.18/Help/module/CPackCygwin.rst
diff --git a/share/cmake-3.17/Help/module/CPackDMG.rst b/share/cmake-3.18/Help/module/CPackDMG.rst
index e59dcbb..e59dcbb 100644
--- a/share/cmake-3.17/Help/module/CPackDMG.rst
+++ b/share/cmake-3.18/Help/module/CPackDMG.rst
diff --git a/share/cmake-3.17/Help/module/CPackDeb.rst b/share/cmake-3.18/Help/module/CPackDeb.rst
index cd7e5f3..cd7e5f3 100644
--- a/share/cmake-3.17/Help/module/CPackDeb.rst
+++ b/share/cmake-3.18/Help/module/CPackDeb.rst
diff --git a/share/cmake-3.17/Help/module/CPackFreeBSD.rst b/share/cmake-3.18/Help/module/CPackFreeBSD.rst
index 69701b8..69701b8 100644
--- a/share/cmake-3.17/Help/module/CPackFreeBSD.rst
+++ b/share/cmake-3.18/Help/module/CPackFreeBSD.rst
diff --git a/share/cmake-3.17/Help/module/CPackIFW.rst b/share/cmake-3.18/Help/module/CPackIFW.rst
index ea05796..ea05796 100644
--- a/share/cmake-3.17/Help/module/CPackIFW.rst
+++ b/share/cmake-3.18/Help/module/CPackIFW.rst
diff --git a/share/cmake-3.17/Help/module/CPackIFWConfigureFile.rst b/share/cmake-3.18/Help/module/CPackIFWConfigureFile.rst
index e88517c..e88517c 100644
--- a/share/cmake-3.17/Help/module/CPackIFWConfigureFile.rst
+++ b/share/cmake-3.18/Help/module/CPackIFWConfigureFile.rst
diff --git a/share/cmake-3.17/Help/module/CPackNSIS.rst b/share/cmake-3.18/Help/module/CPackNSIS.rst
index 2cb407a..2cb407a 100644
--- a/share/cmake-3.17/Help/module/CPackNSIS.rst
+++ b/share/cmake-3.18/Help/module/CPackNSIS.rst
diff --git a/share/cmake-3.17/Help/module/CPackNuGet.rst b/share/cmake-3.18/Help/module/CPackNuGet.rst
index 4f39b3a..4f39b3a 100644
--- a/share/cmake-3.17/Help/module/CPackNuGet.rst
+++ b/share/cmake-3.18/Help/module/CPackNuGet.rst
diff --git a/share/cmake-3.17/Help/module/CPackPackageMaker.rst b/share/cmake-3.18/Help/module/CPackPackageMaker.rst
index 226b6fd..226b6fd 100644
--- a/share/cmake-3.17/Help/module/CPackPackageMaker.rst
+++ b/share/cmake-3.18/Help/module/CPackPackageMaker.rst
diff --git a/share/cmake-3.17/Help/module/CPackProductBuild.rst b/share/cmake-3.18/Help/module/CPackProductBuild.rst
index 8cd9198..8cd9198 100644
--- a/share/cmake-3.17/Help/module/CPackProductBuild.rst
+++ b/share/cmake-3.18/Help/module/CPackProductBuild.rst
diff --git a/share/cmake-3.17/Help/module/CPackRPM.rst b/share/cmake-3.18/Help/module/CPackRPM.rst
index 00b7e0a..00b7e0a 100644
--- a/share/cmake-3.17/Help/module/CPackRPM.rst
+++ b/share/cmake-3.18/Help/module/CPackRPM.rst
diff --git a/share/cmake-3.17/Help/module/CPackWIX.rst b/share/cmake-3.18/Help/module/CPackWIX.rst
index fd378b8..fd378b8 100644
--- a/share/cmake-3.17/Help/module/CPackWIX.rst
+++ b/share/cmake-3.18/Help/module/CPackWIX.rst
diff --git a/share/cmake-3.17/Help/module/CSharpUtilities.rst b/share/cmake-3.18/Help/module/CSharpUtilities.rst
index 3621bbc..3621bbc 100644
--- a/share/cmake-3.17/Help/module/CSharpUtilities.rst
+++ b/share/cmake-3.18/Help/module/CSharpUtilities.rst
diff --git a/share/cmake-3.17/Help/module/CTest.rst b/share/cmake-3.18/Help/module/CTest.rst
index 11a6af7..11a6af7 100644
--- a/share/cmake-3.17/Help/module/CTest.rst
+++ b/share/cmake-3.18/Help/module/CTest.rst
diff --git a/share/cmake-3.17/Help/module/CTestCoverageCollectGCOV.rst b/share/cmake-3.18/Help/module/CTestCoverageCollectGCOV.rst
index 4c5deca..4c5deca 100644
--- a/share/cmake-3.17/Help/module/CTestCoverageCollectGCOV.rst
+++ b/share/cmake-3.18/Help/module/CTestCoverageCollectGCOV.rst
diff --git a/share/cmake-3.17/Help/module/CTestScriptMode.rst b/share/cmake-3.18/Help/module/CTestScriptMode.rst
index be1b044..be1b044 100644
--- a/share/cmake-3.17/Help/module/CTestScriptMode.rst
+++ b/share/cmake-3.18/Help/module/CTestScriptMode.rst
diff --git a/share/cmake-3.17/Help/module/CTestUseLaunchers.rst b/share/cmake-3.18/Help/module/CTestUseLaunchers.rst
index 688da08..688da08 100644
--- a/share/cmake-3.17/Help/module/CTestUseLaunchers.rst
+++ b/share/cmake-3.18/Help/module/CTestUseLaunchers.rst
diff --git a/share/cmake-3.17/Help/module/CheckCCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckCCompilerFlag.rst
index 1be1491..1be1491 100644
--- a/share/cmake-3.17/Help/module/CheckCCompilerFlag.rst
+++ b/share/cmake-3.18/Help/module/CheckCCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckCSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckCSourceCompiles.rst
index 1fa02f9..1fa02f9 100644
--- a/share/cmake-3.17/Help/module/CheckCSourceCompiles.rst
+++ b/share/cmake-3.18/Help/module/CheckCSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckCSourceRuns.rst b/share/cmake-3.18/Help/module/CheckCSourceRuns.rst
index 16b47e6..16b47e6 100644
--- a/share/cmake-3.17/Help/module/CheckCSourceRuns.rst
+++ b/share/cmake-3.18/Help/module/CheckCSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckCXXCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckCXXCompilerFlag.rst
index cfd1f45..cfd1f45 100644
--- a/share/cmake-3.17/Help/module/CheckCXXCompilerFlag.rst
+++ b/share/cmake-3.18/Help/module/CheckCXXCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckCXXSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckCXXSourceCompiles.rst
index d701c4e..d701c4e 100644
--- a/share/cmake-3.17/Help/module/CheckCXXSourceCompiles.rst
+++ b/share/cmake-3.18/Help/module/CheckCXXSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckCXXSourceRuns.rst b/share/cmake-3.18/Help/module/CheckCXXSourceRuns.rst
index caab975..caab975 100644
--- a/share/cmake-3.17/Help/module/CheckCXXSourceRuns.rst
+++ b/share/cmake-3.18/Help/module/CheckCXXSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckCXXSymbolExists.rst b/share/cmake-3.18/Help/module/CheckCXXSymbolExists.rst
index fc192e8..fc192e8 100644
--- a/share/cmake-3.17/Help/module/CheckCXXSymbolExists.rst
+++ b/share/cmake-3.18/Help/module/CheckCXXSymbolExists.rst
diff --git a/share/cmake-3.17/Help/module/CheckFortranCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckFortranCompilerFlag.rst
index 58bf6ec..58bf6ec 100644
--- a/share/cmake-3.17/Help/module/CheckFortranCompilerFlag.rst
+++ b/share/cmake-3.18/Help/module/CheckFortranCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckFortranFunctionExists.rst b/share/cmake-3.18/Help/module/CheckFortranFunctionExists.rst
index 3395d05..3395d05 100644
--- a/share/cmake-3.17/Help/module/CheckFortranFunctionExists.rst
+++ b/share/cmake-3.18/Help/module/CheckFortranFunctionExists.rst
diff --git a/share/cmake-3.17/Help/module/CheckFortranSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckFortranSourceCompiles.rst
index b749a2a..b749a2a 100644
--- a/share/cmake-3.17/Help/module/CheckFortranSourceCompiles.rst
+++ b/share/cmake-3.18/Help/module/CheckFortranSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckFortranSourceRuns.rst b/share/cmake-3.18/Help/module/CheckFortranSourceRuns.rst
index a1bff70..a1bff70 100644
--- a/share/cmake-3.17/Help/module/CheckFortranSourceRuns.rst
+++ b/share/cmake-3.18/Help/module/CheckFortranSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckFunctionExists.rst b/share/cmake-3.18/Help/module/CheckFunctionExists.rst
index ed89dc4..ed89dc4 100644
--- a/share/cmake-3.17/Help/module/CheckFunctionExists.rst
+++ b/share/cmake-3.18/Help/module/CheckFunctionExists.rst
diff --git a/share/cmake-3.17/Help/module/CheckIPOSupported.rst b/share/cmake-3.18/Help/module/CheckIPOSupported.rst
index 9c8a77b..9c8a77b 100644
--- a/share/cmake-3.17/Help/module/CheckIPOSupported.rst
+++ b/share/cmake-3.18/Help/module/CheckIPOSupported.rst
diff --git a/share/cmake-3.17/Help/module/CheckIncludeFile.rst b/share/cmake-3.18/Help/module/CheckIncludeFile.rst
index 6b83108..6b83108 100644
--- a/share/cmake-3.17/Help/module/CheckIncludeFile.rst
+++ b/share/cmake-3.18/Help/module/CheckIncludeFile.rst
diff --git a/share/cmake-3.17/Help/module/CheckIncludeFileCXX.rst b/share/cmake-3.18/Help/module/CheckIncludeFileCXX.rst
index fdbf39f..fdbf39f 100644
--- a/share/cmake-3.17/Help/module/CheckIncludeFileCXX.rst
+++ b/share/cmake-3.18/Help/module/CheckIncludeFileCXX.rst
diff --git a/share/cmake-3.17/Help/module/CheckIncludeFiles.rst b/share/cmake-3.18/Help/module/CheckIncludeFiles.rst
index b56f145..b56f145 100644
--- a/share/cmake-3.17/Help/module/CheckIncludeFiles.rst
+++ b/share/cmake-3.18/Help/module/CheckIncludeFiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckLanguage.rst b/share/cmake-3.18/Help/module/CheckLanguage.rst
index 16f1a3f..16f1a3f 100644
--- a/share/cmake-3.17/Help/module/CheckLanguage.rst
+++ b/share/cmake-3.18/Help/module/CheckLanguage.rst
diff --git a/share/cmake-3.17/Help/module/CheckLibraryExists.rst b/share/cmake-3.18/Help/module/CheckLibraryExists.rst
index 7512f46..7512f46 100644
--- a/share/cmake-3.17/Help/module/CheckLibraryExists.rst
+++ b/share/cmake-3.18/Help/module/CheckLibraryExists.rst
diff --git a/share/cmake-3.18/Help/module/CheckLinkerFlag.rst b/share/cmake-3.18/Help/module/CheckLinkerFlag.rst
new file mode 100644
index 0000000..4005725
--- /dev/null
+++ b/share/cmake-3.18/Help/module/CheckLinkerFlag.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/CheckLinkerFlag.cmake
diff --git a/share/cmake-3.17/Help/module/CheckOBJCCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckOBJCCompilerFlag.rst
index e4bd6fd..e4bd6fd 100644
--- a/share/cmake-3.17/Help/module/CheckOBJCCompilerFlag.rst
+++ b/share/cmake-3.18/Help/module/CheckOBJCCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckOBJCSourceCompiles.rst
index d4a1484..d4a1484 100644
--- a/share/cmake-3.17/Help/module/CheckOBJCSourceCompiles.rst
+++ b/share/cmake-3.18/Help/module/CheckOBJCSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCSourceRuns.rst b/share/cmake-3.18/Help/module/CheckOBJCSourceRuns.rst
index c72f0db..c72f0db 100644
--- a/share/cmake-3.17/Help/module/CheckOBJCSourceRuns.rst
+++ b/share/cmake-3.18/Help/module/CheckOBJCSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCXXCompilerFlag.rst b/share/cmake-3.18/Help/module/CheckOBJCXXCompilerFlag.rst
index 1518a48..1518a48 100644
--- a/share/cmake-3.17/Help/module/CheckOBJCXXCompilerFlag.rst
+++ b/share/cmake-3.18/Help/module/CheckOBJCXXCompilerFlag.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCXXSourceCompiles.rst b/share/cmake-3.18/Help/module/CheckOBJCXXSourceCompiles.rst
index a1c8ae9..a1c8ae9 100644
--- a/share/cmake-3.17/Help/module/CheckOBJCXXSourceCompiles.rst
+++ b/share/cmake-3.18/Help/module/CheckOBJCXXSourceCompiles.rst
diff --git a/share/cmake-3.17/Help/module/CheckOBJCXXSourceRuns.rst b/share/cmake-3.18/Help/module/CheckOBJCXXSourceRuns.rst
index 5198e1b..5198e1b 100644
--- a/share/cmake-3.17/Help/module/CheckOBJCXXSourceRuns.rst
+++ b/share/cmake-3.18/Help/module/CheckOBJCXXSourceRuns.rst
diff --git a/share/cmake-3.17/Help/module/CheckPIESupported.rst b/share/cmake-3.18/Help/module/CheckPIESupported.rst
index 02e7b43..02e7b43 100644
--- a/share/cmake-3.17/Help/module/CheckPIESupported.rst
+++ b/share/cmake-3.18/Help/module/CheckPIESupported.rst
diff --git a/share/cmake-3.17/Help/module/CheckPrototypeDefinition.rst b/share/cmake-3.18/Help/module/CheckPrototypeDefinition.rst
index 073fcb5..073fcb5 100644
--- a/share/cmake-3.17/Help/module/CheckPrototypeDefinition.rst
+++ b/share/cmake-3.18/Help/module/CheckPrototypeDefinition.rst
diff --git a/share/cmake-3.17/Help/module/CheckStructHasMember.rst b/share/cmake-3.18/Help/module/CheckStructHasMember.rst
index 5277ad2..5277ad2 100644
--- a/share/cmake-3.17/Help/module/CheckStructHasMember.rst
+++ b/share/cmake-3.18/Help/module/CheckStructHasMember.rst
diff --git a/share/cmake-3.17/Help/module/CheckSymbolExists.rst b/share/cmake-3.18/Help/module/CheckSymbolExists.rst
index 68ae700..68ae700 100644
--- a/share/cmake-3.17/Help/module/CheckSymbolExists.rst
+++ b/share/cmake-3.18/Help/module/CheckSymbolExists.rst
diff --git a/share/cmake-3.17/Help/module/CheckTypeSize.rst b/share/cmake-3.18/Help/module/CheckTypeSize.rst
index 6ad0345..6ad0345 100644
--- a/share/cmake-3.17/Help/module/CheckTypeSize.rst
+++ b/share/cmake-3.18/Help/module/CheckTypeSize.rst
diff --git a/share/cmake-3.17/Help/module/CheckVariableExists.rst b/share/cmake-3.18/Help/module/CheckVariableExists.rst
index 07f0777..07f0777 100644
--- a/share/cmake-3.17/Help/module/CheckVariableExists.rst
+++ b/share/cmake-3.18/Help/module/CheckVariableExists.rst
diff --git a/share/cmake-3.17/Help/module/Dart.rst b/share/cmake-3.18/Help/module/Dart.rst
index 524ac33..524ac33 100644
--- a/share/cmake-3.17/Help/module/Dart.rst
+++ b/share/cmake-3.18/Help/module/Dart.rst
diff --git a/share/cmake-3.17/Help/module/DeployQt4.rst b/share/cmake-3.18/Help/module/DeployQt4.rst
index 3c0ef44..3c0ef44 100644
--- a/share/cmake-3.17/Help/module/DeployQt4.rst
+++ b/share/cmake-3.18/Help/module/DeployQt4.rst
diff --git a/share/cmake-3.17/Help/module/Documentation.rst b/share/cmake-3.18/Help/module/Documentation.rst
index 08e2ffb..08e2ffb 100644
--- a/share/cmake-3.17/Help/module/Documentation.rst
+++ b/share/cmake-3.18/Help/module/Documentation.rst
diff --git a/share/cmake-3.17/Help/module/ExternalData.rst b/share/cmake-3.18/Help/module/ExternalData.rst
index f0f8f1d..f0f8f1d 100644
--- a/share/cmake-3.17/Help/module/ExternalData.rst
+++ b/share/cmake-3.18/Help/module/ExternalData.rst
diff --git a/share/cmake-3.17/Help/module/ExternalProject.rst b/share/cmake-3.18/Help/module/ExternalProject.rst
index fce7056..fce7056 100644
--- a/share/cmake-3.17/Help/module/ExternalProject.rst
+++ b/share/cmake-3.18/Help/module/ExternalProject.rst
diff --git a/share/cmake-3.17/Help/module/FeatureSummary.rst b/share/cmake-3.18/Help/module/FeatureSummary.rst
index 6fd8f38..6fd8f38 100644
--- a/share/cmake-3.17/Help/module/FeatureSummary.rst
+++ b/share/cmake-3.18/Help/module/FeatureSummary.rst
diff --git a/share/cmake-3.17/Help/module/FetchContent.rst b/share/cmake-3.18/Help/module/FetchContent.rst
index c130a6d..c130a6d 100644
--- a/share/cmake-3.17/Help/module/FetchContent.rst
+++ b/share/cmake-3.18/Help/module/FetchContent.rst
diff --git a/share/cmake-3.17/Help/module/FindALSA.rst b/share/cmake-3.18/Help/module/FindALSA.rst
index 2a73786..2a73786 100644
--- a/share/cmake-3.17/Help/module/FindALSA.rst
+++ b/share/cmake-3.18/Help/module/FindALSA.rst
diff --git a/share/cmake-3.17/Help/module/FindASPELL.rst b/share/cmake-3.18/Help/module/FindASPELL.rst
index 56dedc4..56dedc4 100644
--- a/share/cmake-3.17/Help/module/FindASPELL.rst
+++ b/share/cmake-3.18/Help/module/FindASPELL.rst
diff --git a/share/cmake-3.17/Help/module/FindAVIFile.rst b/share/cmake-3.18/Help/module/FindAVIFile.rst
index 71282a6..71282a6 100644
--- a/share/cmake-3.17/Help/module/FindAVIFile.rst
+++ b/share/cmake-3.18/Help/module/FindAVIFile.rst
diff --git a/share/cmake-3.17/Help/module/FindArmadillo.rst b/share/cmake-3.18/Help/module/FindArmadillo.rst
index f0ac933..f0ac933 100644
--- a/share/cmake-3.17/Help/module/FindArmadillo.rst
+++ b/share/cmake-3.18/Help/module/FindArmadillo.rst
diff --git a/share/cmake-3.17/Help/module/FindBISON.rst b/share/cmake-3.18/Help/module/FindBISON.rst
index c6e5791..c6e5791 100644
--- a/share/cmake-3.17/Help/module/FindBISON.rst
+++ b/share/cmake-3.18/Help/module/FindBISON.rst
diff --git a/share/cmake-3.17/Help/module/FindBLAS.rst b/share/cmake-3.18/Help/module/FindBLAS.rst
index 41f6771..41f6771 100644
--- a/share/cmake-3.17/Help/module/FindBLAS.rst
+++ b/share/cmake-3.18/Help/module/FindBLAS.rst
diff --git a/share/cmake-3.17/Help/module/FindBZip2.rst b/share/cmake-3.18/Help/module/FindBZip2.rst
index 281b1d1..281b1d1 100644
--- a/share/cmake-3.17/Help/module/FindBZip2.rst
+++ b/share/cmake-3.18/Help/module/FindBZip2.rst
diff --git a/share/cmake-3.17/Help/module/FindBacktrace.rst b/share/cmake-3.18/Help/module/FindBacktrace.rst
index e1ca48c..e1ca48c 100644
--- a/share/cmake-3.17/Help/module/FindBacktrace.rst
+++ b/share/cmake-3.18/Help/module/FindBacktrace.rst
diff --git a/share/cmake-3.17/Help/module/FindBoost.rst b/share/cmake-3.18/Help/module/FindBoost.rst
index 1392540..1392540 100644
--- a/share/cmake-3.17/Help/module/FindBoost.rst
+++ b/share/cmake-3.18/Help/module/FindBoost.rst
diff --git a/share/cmake-3.17/Help/module/FindBullet.rst b/share/cmake-3.18/Help/module/FindBullet.rst
index 4ed2b85..4ed2b85 100644
--- a/share/cmake-3.17/Help/module/FindBullet.rst
+++ b/share/cmake-3.18/Help/module/FindBullet.rst
diff --git a/share/cmake-3.17/Help/module/FindCABLE.rst b/share/cmake-3.18/Help/module/FindCABLE.rst
index 716d5ab..716d5ab 100644
--- a/share/cmake-3.17/Help/module/FindCABLE.rst
+++ b/share/cmake-3.18/Help/module/FindCABLE.rst
diff --git a/share/cmake-3.17/Help/module/FindCUDA.rst b/share/cmake-3.18/Help/module/FindCUDA.rst
index 46ffa9f..46ffa9f 100644
--- a/share/cmake-3.17/Help/module/FindCUDA.rst
+++ b/share/cmake-3.18/Help/module/FindCUDA.rst
diff --git a/share/cmake-3.17/Help/module/FindCUDAToolkit.rst b/share/cmake-3.18/Help/module/FindCUDAToolkit.rst
index 5f01d68..5f01d68 100644
--- a/share/cmake-3.17/Help/module/FindCUDAToolkit.rst
+++ b/share/cmake-3.18/Help/module/FindCUDAToolkit.rst
diff --git a/share/cmake-3.17/Help/module/FindCURL.rst b/share/cmake-3.18/Help/module/FindCURL.rst
index e2acc49..e2acc49 100644
--- a/share/cmake-3.17/Help/module/FindCURL.rst
+++ b/share/cmake-3.18/Help/module/FindCURL.rst
diff --git a/share/cmake-3.17/Help/module/FindCVS.rst b/share/cmake-3.18/Help/module/FindCVS.rst
index c891c07..c891c07 100644
--- a/share/cmake-3.17/Help/module/FindCVS.rst
+++ b/share/cmake-3.18/Help/module/FindCVS.rst
diff --git a/share/cmake-3.17/Help/module/FindCoin3D.rst b/share/cmake-3.18/Help/module/FindCoin3D.rst
index fc70a74..fc70a74 100644
--- a/share/cmake-3.17/Help/module/FindCoin3D.rst
+++ b/share/cmake-3.18/Help/module/FindCoin3D.rst
diff --git a/share/cmake-3.17/Help/module/FindCups.rst b/share/cmake-3.18/Help/module/FindCups.rst
index 10d0646..10d0646 100644
--- a/share/cmake-3.17/Help/module/FindCups.rst
+++ b/share/cmake-3.18/Help/module/FindCups.rst
diff --git a/share/cmake-3.17/Help/module/FindCurses.rst b/share/cmake-3.18/Help/module/FindCurses.rst
index 73dd011..73dd011 100644
--- a/share/cmake-3.17/Help/module/FindCurses.rst
+++ b/share/cmake-3.18/Help/module/FindCurses.rst
diff --git a/share/cmake-3.17/Help/module/FindCxxTest.rst b/share/cmake-3.18/Help/module/FindCxxTest.rst
index 4f17c39..4f17c39 100644
--- a/share/cmake-3.17/Help/module/FindCxxTest.rst
+++ b/share/cmake-3.18/Help/module/FindCxxTest.rst
diff --git a/share/cmake-3.17/Help/module/FindCygwin.rst b/share/cmake-3.18/Help/module/FindCygwin.rst
index 2e529dd..2e529dd 100644
--- a/share/cmake-3.17/Help/module/FindCygwin.rst
+++ b/share/cmake-3.18/Help/module/FindCygwin.rst
diff --git a/share/cmake-3.17/Help/module/FindDCMTK.rst b/share/cmake-3.18/Help/module/FindDCMTK.rst
index 8437d55..8437d55 100644
--- a/share/cmake-3.17/Help/module/FindDCMTK.rst
+++ b/share/cmake-3.18/Help/module/FindDCMTK.rst
diff --git a/share/cmake-3.17/Help/module/FindDart.rst b/share/cmake-3.18/Help/module/FindDart.rst
index 6f21ad4..6f21ad4 100644
--- a/share/cmake-3.17/Help/module/FindDart.rst
+++ b/share/cmake-3.18/Help/module/FindDart.rst
diff --git a/share/cmake-3.17/Help/module/FindDevIL.rst b/share/cmake-3.18/Help/module/FindDevIL.rst
index 91a28dd..91a28dd 100644
--- a/share/cmake-3.17/Help/module/FindDevIL.rst
+++ b/share/cmake-3.18/Help/module/FindDevIL.rst
diff --git a/share/cmake-3.17/Help/module/FindDoxygen.rst b/share/cmake-3.18/Help/module/FindDoxygen.rst
index cffe734..cffe734 100644
--- a/share/cmake-3.17/Help/module/FindDoxygen.rst
+++ b/share/cmake-3.18/Help/module/FindDoxygen.rst
diff --git a/share/cmake-3.17/Help/module/FindEXPAT.rst b/share/cmake-3.18/Help/module/FindEXPAT.rst
index 5063680..5063680 100644
--- a/share/cmake-3.17/Help/module/FindEXPAT.rst
+++ b/share/cmake-3.18/Help/module/FindEXPAT.rst
diff --git a/share/cmake-3.17/Help/module/FindEnvModules.rst b/share/cmake-3.18/Help/module/FindEnvModules.rst
index 72c120f..72c120f 100644
--- a/share/cmake-3.17/Help/module/FindEnvModules.rst
+++ b/share/cmake-3.18/Help/module/FindEnvModules.rst
diff --git a/share/cmake-3.17/Help/module/FindFLEX.rst b/share/cmake-3.18/Help/module/FindFLEX.rst
index cc90791..cc90791 100644
--- a/share/cmake-3.17/Help/module/FindFLEX.rst
+++ b/share/cmake-3.18/Help/module/FindFLEX.rst
diff --git a/share/cmake-3.17/Help/module/FindFLTK.rst b/share/cmake-3.18/Help/module/FindFLTK.rst
index cc1964c..cc1964c 100644
--- a/share/cmake-3.17/Help/module/FindFLTK.rst
+++ b/share/cmake-3.18/Help/module/FindFLTK.rst
diff --git a/share/cmake-3.17/Help/module/FindFLTK2.rst b/share/cmake-3.18/Help/module/FindFLTK2.rst
index 5c2acc4..5c2acc4 100644
--- a/share/cmake-3.17/Help/module/FindFLTK2.rst
+++ b/share/cmake-3.18/Help/module/FindFLTK2.rst
diff --git a/share/cmake-3.17/Help/module/FindFontconfig.rst b/share/cmake-3.18/Help/module/FindFontconfig.rst
index 449fe09..449fe09 100644
--- a/share/cmake-3.17/Help/module/FindFontconfig.rst
+++ b/share/cmake-3.18/Help/module/FindFontconfig.rst
diff --git a/share/cmake-3.17/Help/module/FindFreetype.rst b/share/cmake-3.18/Help/module/FindFreetype.rst
index 424c3fc..424c3fc 100644
--- a/share/cmake-3.17/Help/module/FindFreetype.rst
+++ b/share/cmake-3.18/Help/module/FindFreetype.rst
diff --git a/share/cmake-3.17/Help/module/FindGCCXML.rst b/share/cmake-3.18/Help/module/FindGCCXML.rst
index 15fd4d0..15fd4d0 100644
--- a/share/cmake-3.17/Help/module/FindGCCXML.rst
+++ b/share/cmake-3.18/Help/module/FindGCCXML.rst
diff --git a/share/cmake-3.17/Help/module/FindGDAL.rst b/share/cmake-3.18/Help/module/FindGDAL.rst
index 81fcb3a..81fcb3a 100644
--- a/share/cmake-3.17/Help/module/FindGDAL.rst
+++ b/share/cmake-3.18/Help/module/FindGDAL.rst
diff --git a/share/cmake-3.17/Help/module/FindGIF.rst b/share/cmake-3.18/Help/module/FindGIF.rst
index 03d3a75..03d3a75 100644
--- a/share/cmake-3.17/Help/module/FindGIF.rst
+++ b/share/cmake-3.18/Help/module/FindGIF.rst
diff --git a/share/cmake-3.17/Help/module/FindGLEW.rst b/share/cmake-3.18/Help/module/FindGLEW.rst
index 77755da..77755da 100644
--- a/share/cmake-3.17/Help/module/FindGLEW.rst
+++ b/share/cmake-3.18/Help/module/FindGLEW.rst
diff --git a/share/cmake-3.17/Help/module/FindGLUT.rst b/share/cmake-3.18/Help/module/FindGLUT.rst
index 40263ee..40263ee 100644
--- a/share/cmake-3.17/Help/module/FindGLUT.rst
+++ b/share/cmake-3.18/Help/module/FindGLUT.rst
diff --git a/share/cmake-3.17/Help/module/FindGSL.rst b/share/cmake-3.18/Help/module/FindGSL.rst
index baf2213..baf2213 100644
--- a/share/cmake-3.17/Help/module/FindGSL.rst
+++ b/share/cmake-3.18/Help/module/FindGSL.rst
diff --git a/share/cmake-3.17/Help/module/FindGTK.rst b/share/cmake-3.18/Help/module/FindGTK.rst
index 1ce6a86..1ce6a86 100644
--- a/share/cmake-3.17/Help/module/FindGTK.rst
+++ b/share/cmake-3.18/Help/module/FindGTK.rst
diff --git a/share/cmake-3.17/Help/module/FindGTK2.rst b/share/cmake-3.18/Help/module/FindGTK2.rst
index 67c1ba9..67c1ba9 100644
--- a/share/cmake-3.17/Help/module/FindGTK2.rst
+++ b/share/cmake-3.18/Help/module/FindGTK2.rst
diff --git a/share/cmake-3.17/Help/module/FindGTest.rst b/share/cmake-3.18/Help/module/FindGTest.rst
index 0e3b4d7..0e3b4d7 100644
--- a/share/cmake-3.17/Help/module/FindGTest.rst
+++ b/share/cmake-3.18/Help/module/FindGTest.rst
diff --git a/share/cmake-3.17/Help/module/FindGettext.rst b/share/cmake-3.18/Help/module/FindGettext.rst
index e880dc0..e880dc0 100644
--- a/share/cmake-3.17/Help/module/FindGettext.rst
+++ b/share/cmake-3.18/Help/module/FindGettext.rst
diff --git a/share/cmake-3.17/Help/module/FindGit.rst b/share/cmake-3.18/Help/module/FindGit.rst
index dd540ef..dd540ef 100644
--- a/share/cmake-3.17/Help/module/FindGit.rst
+++ b/share/cmake-3.18/Help/module/FindGit.rst
diff --git a/share/cmake-3.17/Help/module/FindGnuTLS.rst b/share/cmake-3.18/Help/module/FindGnuTLS.rst
index de0c1d4..de0c1d4 100644
--- a/share/cmake-3.17/Help/module/FindGnuTLS.rst
+++ b/share/cmake-3.18/Help/module/FindGnuTLS.rst
diff --git a/share/cmake-3.17/Help/module/FindGnuplot.rst b/share/cmake-3.18/Help/module/FindGnuplot.rst
index 93a18b6..93a18b6 100644
--- a/share/cmake-3.17/Help/module/FindGnuplot.rst
+++ b/share/cmake-3.18/Help/module/FindGnuplot.rst
diff --git a/share/cmake-3.17/Help/module/FindHDF5.rst b/share/cmake-3.18/Help/module/FindHDF5.rst
index 8ac1b8b..8ac1b8b 100644
--- a/share/cmake-3.17/Help/module/FindHDF5.rst
+++ b/share/cmake-3.18/Help/module/FindHDF5.rst
diff --git a/share/cmake-3.17/Help/module/FindHSPELL.rst b/share/cmake-3.18/Help/module/FindHSPELL.rst
index c1905a2..c1905a2 100644
--- a/share/cmake-3.17/Help/module/FindHSPELL.rst
+++ b/share/cmake-3.18/Help/module/FindHSPELL.rst
diff --git a/share/cmake-3.17/Help/module/FindHTMLHelp.rst b/share/cmake-3.18/Help/module/FindHTMLHelp.rst
index 47d9c8c..47d9c8c 100644
--- a/share/cmake-3.17/Help/module/FindHTMLHelp.rst
+++ b/share/cmake-3.18/Help/module/FindHTMLHelp.rst
diff --git a/share/cmake-3.17/Help/module/FindHg.rst b/share/cmake-3.18/Help/module/FindHg.rst
index 94aba6f..94aba6f 100644
--- a/share/cmake-3.17/Help/module/FindHg.rst
+++ b/share/cmake-3.18/Help/module/FindHg.rst
diff --git a/share/cmake-3.17/Help/module/FindICU.rst b/share/cmake-3.18/Help/module/FindICU.rst
index ee3f4a9..ee3f4a9 100644
--- a/share/cmake-3.17/Help/module/FindICU.rst
+++ b/share/cmake-3.18/Help/module/FindICU.rst
diff --git a/share/cmake-3.17/Help/module/FindITK.rst b/share/cmake-3.18/Help/module/FindITK.rst
index 21a922f..21a922f 100644
--- a/share/cmake-3.17/Help/module/FindITK.rst
+++ b/share/cmake-3.18/Help/module/FindITK.rst
diff --git a/share/cmake-3.17/Help/module/FindIce.rst b/share/cmake-3.18/Help/module/FindIce.rst
index 3af9405..3af9405 100644
--- a/share/cmake-3.17/Help/module/FindIce.rst
+++ b/share/cmake-3.18/Help/module/FindIce.rst
diff --git a/share/cmake-3.17/Help/module/FindIconv.rst b/share/cmake-3.18/Help/module/FindIconv.rst
index c1f3ed0..c1f3ed0 100644
--- a/share/cmake-3.17/Help/module/FindIconv.rst
+++ b/share/cmake-3.18/Help/module/FindIconv.rst
diff --git a/share/cmake-3.17/Help/module/FindIcotool.rst b/share/cmake-3.18/Help/module/FindIcotool.rst
index c139f58..c139f58 100644
--- a/share/cmake-3.17/Help/module/FindIcotool.rst
+++ b/share/cmake-3.18/Help/module/FindIcotool.rst
diff --git a/share/cmake-3.17/Help/module/FindImageMagick.rst b/share/cmake-3.18/Help/module/FindImageMagick.rst
index 3a3596e..3a3596e 100644
--- a/share/cmake-3.17/Help/module/FindImageMagick.rst
+++ b/share/cmake-3.18/Help/module/FindImageMagick.rst
diff --git a/share/cmake-3.17/Help/module/FindIntl.rst b/share/cmake-3.18/Help/module/FindIntl.rst
index 813e2df..813e2df 100644
--- a/share/cmake-3.17/Help/module/FindIntl.rst
+++ b/share/cmake-3.18/Help/module/FindIntl.rst
diff --git a/share/cmake-3.17/Help/module/FindJNI.rst b/share/cmake-3.18/Help/module/FindJNI.rst
index b753cf8..b753cf8 100644
--- a/share/cmake-3.17/Help/module/FindJNI.rst
+++ b/share/cmake-3.18/Help/module/FindJNI.rst
diff --git a/share/cmake-3.17/Help/module/FindJPEG.rst b/share/cmake-3.18/Help/module/FindJPEG.rst
index 8036352..8036352 100644
--- a/share/cmake-3.17/Help/module/FindJPEG.rst
+++ b/share/cmake-3.18/Help/module/FindJPEG.rst
diff --git a/share/cmake-3.17/Help/module/FindJasper.rst b/share/cmake-3.18/Help/module/FindJasper.rst
index 725a87f..725a87f 100644
--- a/share/cmake-3.17/Help/module/FindJasper.rst
+++ b/share/cmake-3.18/Help/module/FindJasper.rst
diff --git a/share/cmake-3.17/Help/module/FindJava.rst b/share/cmake-3.18/Help/module/FindJava.rst
index 39e6b6b..39e6b6b 100644
--- a/share/cmake-3.17/Help/module/FindJava.rst
+++ b/share/cmake-3.18/Help/module/FindJava.rst
diff --git a/share/cmake-3.17/Help/module/FindKDE3.rst b/share/cmake-3.18/Help/module/FindKDE3.rst
index 13ac15c..13ac15c 100644
--- a/share/cmake-3.17/Help/module/FindKDE3.rst
+++ b/share/cmake-3.18/Help/module/FindKDE3.rst
diff --git a/share/cmake-3.17/Help/module/FindKDE4.rst b/share/cmake-3.18/Help/module/FindKDE4.rst
index 8b22f7f..8b22f7f 100644
--- a/share/cmake-3.17/Help/module/FindKDE4.rst
+++ b/share/cmake-3.18/Help/module/FindKDE4.rst
diff --git a/share/cmake-3.17/Help/module/FindLAPACK.rst b/share/cmake-3.18/Help/module/FindLAPACK.rst
index 6e99090..6e99090 100644
--- a/share/cmake-3.17/Help/module/FindLAPACK.rst
+++ b/share/cmake-3.18/Help/module/FindLAPACK.rst
diff --git a/share/cmake-3.17/Help/module/FindLATEX.rst b/share/cmake-3.18/Help/module/FindLATEX.rst
index 4b14c71..4b14c71 100644
--- a/share/cmake-3.17/Help/module/FindLATEX.rst
+++ b/share/cmake-3.18/Help/module/FindLATEX.rst
diff --git a/share/cmake-3.17/Help/module/FindLTTngUST.rst b/share/cmake-3.18/Help/module/FindLTTngUST.rst
index a775462..a775462 100644
--- a/share/cmake-3.17/Help/module/FindLTTngUST.rst
+++ b/share/cmake-3.18/Help/module/FindLTTngUST.rst
diff --git a/share/cmake-3.17/Help/module/FindLibArchive.rst b/share/cmake-3.18/Help/module/FindLibArchive.rst
index c46b1d0..c46b1d0 100644
--- a/share/cmake-3.17/Help/module/FindLibArchive.rst
+++ b/share/cmake-3.18/Help/module/FindLibArchive.rst
diff --git a/share/cmake-3.17/Help/module/FindLibLZMA.rst b/share/cmake-3.18/Help/module/FindLibLZMA.rst
index 8880158..8880158 100644
--- a/share/cmake-3.17/Help/module/FindLibLZMA.rst
+++ b/share/cmake-3.18/Help/module/FindLibLZMA.rst
diff --git a/share/cmake-3.17/Help/module/FindLibXml2.rst b/share/cmake-3.18/Help/module/FindLibXml2.rst
index bbb3225..bbb3225 100644
--- a/share/cmake-3.17/Help/module/FindLibXml2.rst
+++ b/share/cmake-3.18/Help/module/FindLibXml2.rst
diff --git a/share/cmake-3.17/Help/module/FindLibXslt.rst b/share/cmake-3.18/Help/module/FindLibXslt.rst
index 4107170..4107170 100644
--- a/share/cmake-3.17/Help/module/FindLibXslt.rst
+++ b/share/cmake-3.18/Help/module/FindLibXslt.rst
diff --git a/share/cmake-3.17/Help/module/FindLibinput.rst b/share/cmake-3.18/Help/module/FindLibinput.rst
index a8ca0b0..a8ca0b0 100644
--- a/share/cmake-3.17/Help/module/FindLibinput.rst
+++ b/share/cmake-3.18/Help/module/FindLibinput.rst
diff --git a/share/cmake-3.17/Help/module/FindLua.rst b/share/cmake-3.18/Help/module/FindLua.rst
index 977e5bf..977e5bf 100644
--- a/share/cmake-3.17/Help/module/FindLua.rst
+++ b/share/cmake-3.18/Help/module/FindLua.rst
diff --git a/share/cmake-3.17/Help/module/FindLua50.rst b/share/cmake-3.18/Help/module/FindLua50.rst
index 0353fc3..0353fc3 100644
--- a/share/cmake-3.17/Help/module/FindLua50.rst
+++ b/share/cmake-3.18/Help/module/FindLua50.rst
diff --git a/share/cmake-3.17/Help/module/FindLua51.rst b/share/cmake-3.18/Help/module/FindLua51.rst
index 672ff35..672ff35 100644
--- a/share/cmake-3.17/Help/module/FindLua51.rst
+++ b/share/cmake-3.18/Help/module/FindLua51.rst
diff --git a/share/cmake-3.17/Help/module/FindMFC.rst b/share/cmake-3.18/Help/module/FindMFC.rst
index a3226a6..a3226a6 100644
--- a/share/cmake-3.17/Help/module/FindMFC.rst
+++ b/share/cmake-3.18/Help/module/FindMFC.rst
diff --git a/share/cmake-3.17/Help/module/FindMPEG.rst b/share/cmake-3.18/Help/module/FindMPEG.rst
index c9ce481..c9ce481 100644
--- a/share/cmake-3.17/Help/module/FindMPEG.rst
+++ b/share/cmake-3.18/Help/module/FindMPEG.rst
diff --git a/share/cmake-3.17/Help/module/FindMPEG2.rst b/share/cmake-3.18/Help/module/FindMPEG2.rst
index f843c89..f843c89 100644
--- a/share/cmake-3.17/Help/module/FindMPEG2.rst
+++ b/share/cmake-3.18/Help/module/FindMPEG2.rst
diff --git a/share/cmake-3.17/Help/module/FindMPI.rst b/share/cmake-3.18/Help/module/FindMPI.rst
index fad10c7..fad10c7 100644
--- a/share/cmake-3.17/Help/module/FindMPI.rst
+++ b/share/cmake-3.18/Help/module/FindMPI.rst
diff --git a/share/cmake-3.17/Help/module/FindMatlab.rst b/share/cmake-3.18/Help/module/FindMatlab.rst
index 43f861a..43f861a 100644
--- a/share/cmake-3.17/Help/module/FindMatlab.rst
+++ b/share/cmake-3.18/Help/module/FindMatlab.rst
diff --git a/share/cmake-3.17/Help/module/FindMotif.rst b/share/cmake-3.18/Help/module/FindMotif.rst
index e602a50..e602a50 100644
--- a/share/cmake-3.17/Help/module/FindMotif.rst
+++ b/share/cmake-3.18/Help/module/FindMotif.rst
diff --git a/share/cmake-3.17/Help/module/FindODBC.rst b/share/cmake-3.18/Help/module/FindODBC.rst
index 8558334..8558334 100644
--- a/share/cmake-3.17/Help/module/FindODBC.rst
+++ b/share/cmake-3.18/Help/module/FindODBC.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenACC.rst b/share/cmake-3.18/Help/module/FindOpenACC.rst
index dda3308..dda3308 100644
--- a/share/cmake-3.17/Help/module/FindOpenACC.rst
+++ b/share/cmake-3.18/Help/module/FindOpenACC.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenAL.rst b/share/cmake-3.18/Help/module/FindOpenAL.rst
index f086556..f086556 100644
--- a/share/cmake-3.17/Help/module/FindOpenAL.rst
+++ b/share/cmake-3.18/Help/module/FindOpenAL.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenCL.rst b/share/cmake-3.18/Help/module/FindOpenCL.rst
index e87e289..e87e289 100644
--- a/share/cmake-3.17/Help/module/FindOpenCL.rst
+++ b/share/cmake-3.18/Help/module/FindOpenCL.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenGL.rst b/share/cmake-3.18/Help/module/FindOpenGL.rst
index 85e89bc..85e89bc 100644
--- a/share/cmake-3.17/Help/module/FindOpenGL.rst
+++ b/share/cmake-3.18/Help/module/FindOpenGL.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenMP.rst b/share/cmake-3.18/Help/module/FindOpenMP.rst
index 01362ab..01362ab 100644
--- a/share/cmake-3.17/Help/module/FindOpenMP.rst
+++ b/share/cmake-3.18/Help/module/FindOpenMP.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenSSL.rst b/share/cmake-3.18/Help/module/FindOpenSSL.rst
index f622bb1..f622bb1 100644
--- a/share/cmake-3.17/Help/module/FindOpenSSL.rst
+++ b/share/cmake-3.18/Help/module/FindOpenSSL.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenSceneGraph.rst b/share/cmake-3.18/Help/module/FindOpenSceneGraph.rst
index 4346492..4346492 100644
--- a/share/cmake-3.17/Help/module/FindOpenSceneGraph.rst
+++ b/share/cmake-3.18/Help/module/FindOpenSceneGraph.rst
diff --git a/share/cmake-3.17/Help/module/FindOpenThreads.rst b/share/cmake-3.18/Help/module/FindOpenThreads.rst
index bb3f0f9..bb3f0f9 100644
--- a/share/cmake-3.17/Help/module/FindOpenThreads.rst
+++ b/share/cmake-3.18/Help/module/FindOpenThreads.rst
diff --git a/share/cmake-3.17/Help/module/FindPHP4.rst b/share/cmake-3.18/Help/module/FindPHP4.rst
index 1de62e8..1de62e8 100644
--- a/share/cmake-3.17/Help/module/FindPHP4.rst
+++ b/share/cmake-3.18/Help/module/FindPHP4.rst
diff --git a/share/cmake-3.17/Help/module/FindPNG.rst b/share/cmake-3.18/Help/module/FindPNG.rst
index e6d1618..e6d1618 100644
--- a/share/cmake-3.17/Help/module/FindPNG.rst
+++ b/share/cmake-3.18/Help/module/FindPNG.rst
diff --git a/share/cmake-3.17/Help/module/FindPackageHandleStandardArgs.rst b/share/cmake-3.18/Help/module/FindPackageHandleStandardArgs.rst
index feda7ef..feda7ef 100644
--- a/share/cmake-3.17/Help/module/FindPackageHandleStandardArgs.rst
+++ b/share/cmake-3.18/Help/module/FindPackageHandleStandardArgs.rst
diff --git a/share/cmake-3.17/Help/module/FindPackageMessage.rst b/share/cmake-3.18/Help/module/FindPackageMessage.rst
index b682d8c..b682d8c 100644
--- a/share/cmake-3.17/Help/module/FindPackageMessage.rst
+++ b/share/cmake-3.18/Help/module/FindPackageMessage.rst
diff --git a/share/cmake-3.17/Help/module/FindPatch.rst b/share/cmake-3.18/Help/module/FindPatch.rst
index ba5e910..ba5e910 100644
--- a/share/cmake-3.17/Help/module/FindPatch.rst
+++ b/share/cmake-3.18/Help/module/FindPatch.rst
diff --git a/share/cmake-3.17/Help/module/FindPerl.rst b/share/cmake-3.18/Help/module/FindPerl.rst
index 098f4b5..098f4b5 100644
--- a/share/cmake-3.17/Help/module/FindPerl.rst
+++ b/share/cmake-3.18/Help/module/FindPerl.rst
diff --git a/share/cmake-3.17/Help/module/FindPerlLibs.rst b/share/cmake-3.18/Help/module/FindPerlLibs.rst
index 8d8bbab..8d8bbab 100644
--- a/share/cmake-3.17/Help/module/FindPerlLibs.rst
+++ b/share/cmake-3.18/Help/module/FindPerlLibs.rst
diff --git a/share/cmake-3.17/Help/module/FindPhysFS.rst b/share/cmake-3.18/Help/module/FindPhysFS.rst
index 21d928b..21d928b 100644
--- a/share/cmake-3.17/Help/module/FindPhysFS.rst
+++ b/share/cmake-3.18/Help/module/FindPhysFS.rst
diff --git a/share/cmake-3.17/Help/module/FindPike.rst b/share/cmake-3.18/Help/module/FindPike.rst
index b096ca4..b096ca4 100644
--- a/share/cmake-3.17/Help/module/FindPike.rst
+++ b/share/cmake-3.18/Help/module/FindPike.rst
diff --git a/share/cmake-3.17/Help/module/FindPkgConfig.rst b/share/cmake-3.18/Help/module/FindPkgConfig.rst
index b8caf74..b8caf74 100644
--- a/share/cmake-3.17/Help/module/FindPkgConfig.rst
+++ b/share/cmake-3.18/Help/module/FindPkgConfig.rst
diff --git a/share/cmake-3.17/Help/module/FindPostgreSQL.rst b/share/cmake-3.18/Help/module/FindPostgreSQL.rst
index b45c07e..b45c07e 100644
--- a/share/cmake-3.17/Help/module/FindPostgreSQL.rst
+++ b/share/cmake-3.18/Help/module/FindPostgreSQL.rst
diff --git a/share/cmake-3.17/Help/module/FindProducer.rst b/share/cmake-3.18/Help/module/FindProducer.rst
index 1c0c575..1c0c575 100644
--- a/share/cmake-3.17/Help/module/FindProducer.rst
+++ b/share/cmake-3.18/Help/module/FindProducer.rst
diff --git a/share/cmake-3.17/Help/module/FindProtobuf.rst b/share/cmake-3.18/Help/module/FindProtobuf.rst
index b978e01..b978e01 100644
--- a/share/cmake-3.17/Help/module/FindProtobuf.rst
+++ b/share/cmake-3.18/Help/module/FindProtobuf.rst
diff --git a/share/cmake-3.17/Help/module/FindPython.rst b/share/cmake-3.18/Help/module/FindPython.rst
index 057a350..057a350 100644
--- a/share/cmake-3.17/Help/module/FindPython.rst
+++ b/share/cmake-3.18/Help/module/FindPython.rst
diff --git a/share/cmake-3.17/Help/module/FindPython2.rst b/share/cmake-3.18/Help/module/FindPython2.rst
index 1696bed..1696bed 100644
--- a/share/cmake-3.17/Help/module/FindPython2.rst
+++ b/share/cmake-3.18/Help/module/FindPython2.rst
diff --git a/share/cmake-3.17/Help/module/FindPython3.rst b/share/cmake-3.18/Help/module/FindPython3.rst
index e530ab8..e530ab8 100644
--- a/share/cmake-3.17/Help/module/FindPython3.rst
+++ b/share/cmake-3.18/Help/module/FindPython3.rst
diff --git a/share/cmake-3.17/Help/module/FindPythonInterp.rst b/share/cmake-3.18/Help/module/FindPythonInterp.rst
index 3be2306..3be2306 100644
--- a/share/cmake-3.17/Help/module/FindPythonInterp.rst
+++ b/share/cmake-3.18/Help/module/FindPythonInterp.rst
diff --git a/share/cmake-3.17/Help/module/FindPythonLibs.rst b/share/cmake-3.18/Help/module/FindPythonLibs.rst
index 8f0015d..8f0015d 100644
--- a/share/cmake-3.17/Help/module/FindPythonLibs.rst
+++ b/share/cmake-3.18/Help/module/FindPythonLibs.rst
diff --git a/share/cmake-3.17/Help/module/FindQt.rst b/share/cmake-3.18/Help/module/FindQt.rst
index 3aa8a26..3aa8a26 100644
--- a/share/cmake-3.17/Help/module/FindQt.rst
+++ b/share/cmake-3.18/Help/module/FindQt.rst
diff --git a/share/cmake-3.17/Help/module/FindQt3.rst b/share/cmake-3.18/Help/module/FindQt3.rst
index b933059..b933059 100644
--- a/share/cmake-3.17/Help/module/FindQt3.rst
+++ b/share/cmake-3.18/Help/module/FindQt3.rst
diff --git a/share/cmake-3.17/Help/module/FindQt4.rst b/share/cmake-3.18/Help/module/FindQt4.rst
index 28036b2..28036b2 100644
--- a/share/cmake-3.17/Help/module/FindQt4.rst
+++ b/share/cmake-3.18/Help/module/FindQt4.rst
diff --git a/share/cmake-3.17/Help/module/FindQuickTime.rst b/share/cmake-3.18/Help/module/FindQuickTime.rst
index 735f7d2..735f7d2 100644
--- a/share/cmake-3.17/Help/module/FindQuickTime.rst
+++ b/share/cmake-3.18/Help/module/FindQuickTime.rst
diff --git a/share/cmake-3.17/Help/module/FindRTI.rst b/share/cmake-3.18/Help/module/FindRTI.rst
index a93ad16..a93ad16 100644
--- a/share/cmake-3.17/Help/module/FindRTI.rst
+++ b/share/cmake-3.18/Help/module/FindRTI.rst
diff --git a/share/cmake-3.17/Help/module/FindRuby.rst b/share/cmake-3.18/Help/module/FindRuby.rst
index a1e7922..a1e7922 100644
--- a/share/cmake-3.17/Help/module/FindRuby.rst
+++ b/share/cmake-3.18/Help/module/FindRuby.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL.rst b/share/cmake-3.18/Help/module/FindSDL.rst
index 79893c0..79893c0 100644
--- a/share/cmake-3.17/Help/module/FindSDL.rst
+++ b/share/cmake-3.18/Help/module/FindSDL.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_image.rst b/share/cmake-3.18/Help/module/FindSDL_image.rst
index dc69d70..dc69d70 100644
--- a/share/cmake-3.17/Help/module/FindSDL_image.rst
+++ b/share/cmake-3.18/Help/module/FindSDL_image.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_mixer.rst b/share/cmake-3.18/Help/module/FindSDL_mixer.rst
index 1c9c446..1c9c446 100644
--- a/share/cmake-3.17/Help/module/FindSDL_mixer.rst
+++ b/share/cmake-3.18/Help/module/FindSDL_mixer.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_net.rst b/share/cmake-3.18/Help/module/FindSDL_net.rst
index 079d0bb..079d0bb 100644
--- a/share/cmake-3.17/Help/module/FindSDL_net.rst
+++ b/share/cmake-3.18/Help/module/FindSDL_net.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_sound.rst b/share/cmake-3.18/Help/module/FindSDL_sound.rst
index 077edf7..077edf7 100644
--- a/share/cmake-3.17/Help/module/FindSDL_sound.rst
+++ b/share/cmake-3.18/Help/module/FindSDL_sound.rst
diff --git a/share/cmake-3.17/Help/module/FindSDL_ttf.rst b/share/cmake-3.18/Help/module/FindSDL_ttf.rst
index 40c5ec4..40c5ec4 100644
--- a/share/cmake-3.17/Help/module/FindSDL_ttf.rst
+++ b/share/cmake-3.18/Help/module/FindSDL_ttf.rst
diff --git a/share/cmake-3.17/Help/module/FindSQLite3.rst b/share/cmake-3.18/Help/module/FindSQLite3.rst
index d1910e5..d1910e5 100644
--- a/share/cmake-3.17/Help/module/FindSQLite3.rst
+++ b/share/cmake-3.18/Help/module/FindSQLite3.rst
diff --git a/share/cmake-3.17/Help/module/FindSWIG.rst b/share/cmake-3.18/Help/module/FindSWIG.rst
index 9b25b94..9b25b94 100644
--- a/share/cmake-3.17/Help/module/FindSWIG.rst
+++ b/share/cmake-3.18/Help/module/FindSWIG.rst
diff --git a/share/cmake-3.17/Help/module/FindSelfPackers.rst b/share/cmake-3.18/Help/module/FindSelfPackers.rst
index 5f2c689..5f2c689 100644
--- a/share/cmake-3.17/Help/module/FindSelfPackers.rst
+++ b/share/cmake-3.18/Help/module/FindSelfPackers.rst
diff --git a/share/cmake-3.17/Help/module/FindSquish.rst b/share/cmake-3.18/Help/module/FindSquish.rst
index dc2c86d..dc2c86d 100644
--- a/share/cmake-3.17/Help/module/FindSquish.rst
+++ b/share/cmake-3.18/Help/module/FindSquish.rst
diff --git a/share/cmake-3.17/Help/module/FindSubversion.rst b/share/cmake-3.18/Help/module/FindSubversion.rst
index aa15857..aa15857 100644
--- a/share/cmake-3.17/Help/module/FindSubversion.rst
+++ b/share/cmake-3.18/Help/module/FindSubversion.rst
diff --git a/share/cmake-3.17/Help/module/FindTCL.rst b/share/cmake-3.18/Help/module/FindTCL.rst
index cbd2035..cbd2035 100644
--- a/share/cmake-3.17/Help/module/FindTCL.rst
+++ b/share/cmake-3.18/Help/module/FindTCL.rst
diff --git a/share/cmake-3.17/Help/module/FindTIFF.rst b/share/cmake-3.18/Help/module/FindTIFF.rst
index 69f8ca5..69f8ca5 100644
--- a/share/cmake-3.17/Help/module/FindTIFF.rst
+++ b/share/cmake-3.18/Help/module/FindTIFF.rst
diff --git a/share/cmake-3.17/Help/module/FindTclStub.rst b/share/cmake-3.18/Help/module/FindTclStub.rst
index 6cc5b2d..6cc5b2d 100644
--- a/share/cmake-3.17/Help/module/FindTclStub.rst
+++ b/share/cmake-3.18/Help/module/FindTclStub.rst
diff --git a/share/cmake-3.17/Help/module/FindTclsh.rst b/share/cmake-3.18/Help/module/FindTclsh.rst
index 23e7d6b..23e7d6b 100644
--- a/share/cmake-3.17/Help/module/FindTclsh.rst
+++ b/share/cmake-3.18/Help/module/FindTclsh.rst
diff --git a/share/cmake-3.17/Help/module/FindThreads.rst b/share/cmake-3.18/Help/module/FindThreads.rst
index 91967a7..91967a7 100644
--- a/share/cmake-3.17/Help/module/FindThreads.rst
+++ b/share/cmake-3.18/Help/module/FindThreads.rst
diff --git a/share/cmake-3.17/Help/module/FindUnixCommands.rst b/share/cmake-3.18/Help/module/FindUnixCommands.rst
index 9ad05ad..9ad05ad 100644
--- a/share/cmake-3.17/Help/module/FindUnixCommands.rst
+++ b/share/cmake-3.18/Help/module/FindUnixCommands.rst
diff --git a/share/cmake-3.17/Help/module/FindVTK.rst b/share/cmake-3.18/Help/module/FindVTK.rst
index 3bc67c5..3bc67c5 100644
--- a/share/cmake-3.17/Help/module/FindVTK.rst
+++ b/share/cmake-3.18/Help/module/FindVTK.rst
diff --git a/share/cmake-3.17/Help/module/FindVulkan.rst b/share/cmake-3.18/Help/module/FindVulkan.rst
index adf824e..adf824e 100644
--- a/share/cmake-3.17/Help/module/FindVulkan.rst
+++ b/share/cmake-3.18/Help/module/FindVulkan.rst
diff --git a/share/cmake-3.17/Help/module/FindWget.rst b/share/cmake-3.18/Help/module/FindWget.rst
index 06affd4..06affd4 100644
--- a/share/cmake-3.17/Help/module/FindWget.rst
+++ b/share/cmake-3.18/Help/module/FindWget.rst
diff --git a/share/cmake-3.17/Help/module/FindWish.rst b/share/cmake-3.18/Help/module/FindWish.rst
index 76be4cf..76be4cf 100644
--- a/share/cmake-3.17/Help/module/FindWish.rst
+++ b/share/cmake-3.18/Help/module/FindWish.rst
diff --git a/share/cmake-3.17/Help/module/FindX11.rst b/share/cmake-3.18/Help/module/FindX11.rst
index 906efd7..906efd7 100644
--- a/share/cmake-3.17/Help/module/FindX11.rst
+++ b/share/cmake-3.18/Help/module/FindX11.rst
diff --git a/share/cmake-3.17/Help/module/FindXCTest.rst b/share/cmake-3.18/Help/module/FindXCTest.rst
index ff6273c..ff6273c 100644
--- a/share/cmake-3.17/Help/module/FindXCTest.rst
+++ b/share/cmake-3.18/Help/module/FindXCTest.rst
diff --git a/share/cmake-3.17/Help/module/FindXMLRPC.rst b/share/cmake-3.18/Help/module/FindXMLRPC.rst
index 5d11a0c..5d11a0c 100644
--- a/share/cmake-3.17/Help/module/FindXMLRPC.rst
+++ b/share/cmake-3.18/Help/module/FindXMLRPC.rst
diff --git a/share/cmake-3.17/Help/module/FindXalanC.rst b/share/cmake-3.18/Help/module/FindXalanC.rst
index b99d212..b99d212 100644
--- a/share/cmake-3.17/Help/module/FindXalanC.rst
+++ b/share/cmake-3.18/Help/module/FindXalanC.rst
diff --git a/share/cmake-3.17/Help/module/FindXercesC.rst b/share/cmake-3.18/Help/module/FindXercesC.rst
index 4818071..4818071 100644
--- a/share/cmake-3.17/Help/module/FindXercesC.rst
+++ b/share/cmake-3.18/Help/module/FindXercesC.rst
diff --git a/share/cmake-3.17/Help/module/FindZLIB.rst b/share/cmake-3.18/Help/module/FindZLIB.rst
index ded8634..ded8634 100644
--- a/share/cmake-3.17/Help/module/FindZLIB.rst
+++ b/share/cmake-3.18/Help/module/FindZLIB.rst
diff --git a/share/cmake-3.17/Help/module/Findosg.rst b/share/cmake-3.18/Help/module/Findosg.rst
index 6b407ac..6b407ac 100644
--- a/share/cmake-3.17/Help/module/Findosg.rst
+++ b/share/cmake-3.18/Help/module/Findosg.rst
diff --git a/share/cmake-3.17/Help/module/FindosgAnimation.rst b/share/cmake-3.18/Help/module/FindosgAnimation.rst
index f14a1e7..f14a1e7 100644
--- a/share/cmake-3.17/Help/module/FindosgAnimation.rst
+++ b/share/cmake-3.18/Help/module/FindosgAnimation.rst
diff --git a/share/cmake-3.17/Help/module/FindosgDB.rst b/share/cmake-3.18/Help/module/FindosgDB.rst
index 9f72bc7..9f72bc7 100644
--- a/share/cmake-3.17/Help/module/FindosgDB.rst
+++ b/share/cmake-3.18/Help/module/FindosgDB.rst
diff --git a/share/cmake-3.17/Help/module/FindosgFX.rst b/share/cmake-3.18/Help/module/FindosgFX.rst
index 0e1edfb..0e1edfb 100644
--- a/share/cmake-3.17/Help/module/FindosgFX.rst
+++ b/share/cmake-3.18/Help/module/FindosgFX.rst
diff --git a/share/cmake-3.17/Help/module/FindosgGA.rst b/share/cmake-3.18/Help/module/FindosgGA.rst
index 562d73f..562d73f 100644
--- a/share/cmake-3.17/Help/module/FindosgGA.rst
+++ b/share/cmake-3.18/Help/module/FindosgGA.rst
diff --git a/share/cmake-3.17/Help/module/FindosgIntrospection.rst b/share/cmake-3.18/Help/module/FindosgIntrospection.rst
index 53621a7..53621a7 100644
--- a/share/cmake-3.17/Help/module/FindosgIntrospection.rst
+++ b/share/cmake-3.18/Help/module/FindosgIntrospection.rst
diff --git a/share/cmake-3.17/Help/module/FindosgManipulator.rst b/share/cmake-3.18/Help/module/FindosgManipulator.rst
index b9d615d..b9d615d 100644
--- a/share/cmake-3.17/Help/module/FindosgManipulator.rst
+++ b/share/cmake-3.18/Help/module/FindosgManipulator.rst
diff --git a/share/cmake-3.17/Help/module/FindosgParticle.rst b/share/cmake-3.18/Help/module/FindosgParticle.rst
index 9cf191c..9cf191c 100644
--- a/share/cmake-3.17/Help/module/FindosgParticle.rst
+++ b/share/cmake-3.18/Help/module/FindosgParticle.rst
diff --git a/share/cmake-3.17/Help/module/FindosgPresentation.rst b/share/cmake-3.18/Help/module/FindosgPresentation.rst
index cb47841..cb47841 100644
--- a/share/cmake-3.17/Help/module/FindosgPresentation.rst
+++ b/share/cmake-3.18/Help/module/FindosgPresentation.rst
diff --git a/share/cmake-3.17/Help/module/FindosgProducer.rst b/share/cmake-3.18/Help/module/FindosgProducer.rst
index c502851..c502851 100644
--- a/share/cmake-3.17/Help/module/FindosgProducer.rst
+++ b/share/cmake-3.18/Help/module/FindosgProducer.rst
diff --git a/share/cmake-3.17/Help/module/FindosgQt.rst b/share/cmake-3.18/Help/module/FindosgQt.rst
index 08c8704..08c8704 100644
--- a/share/cmake-3.17/Help/module/FindosgQt.rst
+++ b/share/cmake-3.18/Help/module/FindosgQt.rst
diff --git a/share/cmake-3.17/Help/module/FindosgShadow.rst b/share/cmake-3.18/Help/module/FindosgShadow.rst
index fbb22e1..fbb22e1 100644
--- a/share/cmake-3.17/Help/module/FindosgShadow.rst
+++ b/share/cmake-3.18/Help/module/FindosgShadow.rst
diff --git a/share/cmake-3.17/Help/module/FindosgSim.rst b/share/cmake-3.18/Help/module/FindosgSim.rst
index 9e47b65..9e47b65 100644
--- a/share/cmake-3.17/Help/module/FindosgSim.rst
+++ b/share/cmake-3.18/Help/module/FindosgSim.rst
diff --git a/share/cmake-3.17/Help/module/FindosgTerrain.rst b/share/cmake-3.18/Help/module/FindosgTerrain.rst
index dd401d8..dd401d8 100644
--- a/share/cmake-3.17/Help/module/FindosgTerrain.rst
+++ b/share/cmake-3.18/Help/module/FindosgTerrain.rst
diff --git a/share/cmake-3.17/Help/module/FindosgText.rst b/share/cmake-3.18/Help/module/FindosgText.rst
index bb028fb..bb028fb 100644
--- a/share/cmake-3.17/Help/module/FindosgText.rst
+++ b/share/cmake-3.18/Help/module/FindosgText.rst
diff --git a/share/cmake-3.17/Help/module/FindosgUtil.rst b/share/cmake-3.18/Help/module/FindosgUtil.rst
index bb11bdf..bb11bdf 100644
--- a/share/cmake-3.17/Help/module/FindosgUtil.rst
+++ b/share/cmake-3.18/Help/module/FindosgUtil.rst
diff --git a/share/cmake-3.17/Help/module/FindosgViewer.rst b/share/cmake-3.18/Help/module/FindosgViewer.rst
index 5def375..5def375 100644
--- a/share/cmake-3.17/Help/module/FindosgViewer.rst
+++ b/share/cmake-3.18/Help/module/FindosgViewer.rst
diff --git a/share/cmake-3.17/Help/module/FindosgVolume.rst b/share/cmake-3.18/Help/module/FindosgVolume.rst
index d836906..d836906 100644
--- a/share/cmake-3.17/Help/module/FindosgVolume.rst
+++ b/share/cmake-3.18/Help/module/FindosgVolume.rst
diff --git a/share/cmake-3.17/Help/module/FindosgWidget.rst b/share/cmake-3.18/Help/module/FindosgWidget.rst
index bdd1135..bdd1135 100644
--- a/share/cmake-3.17/Help/module/FindosgWidget.rst
+++ b/share/cmake-3.18/Help/module/FindosgWidget.rst
diff --git a/share/cmake-3.17/Help/module/Findosg_functions.rst b/share/cmake-3.18/Help/module/Findosg_functions.rst
index 522e1ac..522e1ac 100644
--- a/share/cmake-3.17/Help/module/Findosg_functions.rst
+++ b/share/cmake-3.18/Help/module/Findosg_functions.rst
diff --git a/share/cmake-3.17/Help/module/FindwxWidgets.rst b/share/cmake-3.18/Help/module/FindwxWidgets.rst
index 519beb7..519beb7 100644
--- a/share/cmake-3.17/Help/module/FindwxWidgets.rst
+++ b/share/cmake-3.18/Help/module/FindwxWidgets.rst
diff --git a/share/cmake-3.17/Help/module/FindwxWindows.rst b/share/cmake-3.18/Help/module/FindwxWindows.rst
index 35c9728..35c9728 100644
--- a/share/cmake-3.17/Help/module/FindwxWindows.rst
+++ b/share/cmake-3.18/Help/module/FindwxWindows.rst
diff --git a/share/cmake-3.17/Help/module/FortranCInterface.rst b/share/cmake-3.18/Help/module/FortranCInterface.rst
index 7afcf15..7afcf15 100644
--- a/share/cmake-3.17/Help/module/FortranCInterface.rst
+++ b/share/cmake-3.18/Help/module/FortranCInterface.rst
diff --git a/share/cmake-3.17/Help/module/GNUInstallDirs.rst b/share/cmake-3.18/Help/module/GNUInstallDirs.rst
index 79d3570..79d3570 100644
--- a/share/cmake-3.17/Help/module/GNUInstallDirs.rst
+++ b/share/cmake-3.18/Help/module/GNUInstallDirs.rst
diff --git a/share/cmake-3.17/Help/module/GenerateExportHeader.rst b/share/cmake-3.18/Help/module/GenerateExportHeader.rst
index 115713e..115713e 100644
--- a/share/cmake-3.17/Help/module/GenerateExportHeader.rst
+++ b/share/cmake-3.18/Help/module/GenerateExportHeader.rst
diff --git a/share/cmake-3.17/Help/module/GetPrerequisites.rst b/share/cmake-3.18/Help/module/GetPrerequisites.rst
index 84b20c8..84b20c8 100644
--- a/share/cmake-3.17/Help/module/GetPrerequisites.rst
+++ b/share/cmake-3.18/Help/module/GetPrerequisites.rst
diff --git a/share/cmake-3.17/Help/module/GoogleTest.rst b/share/cmake-3.18/Help/module/GoogleTest.rst
index 3d4cc97..3d4cc97 100644
--- a/share/cmake-3.17/Help/module/GoogleTest.rst
+++ b/share/cmake-3.18/Help/module/GoogleTest.rst
diff --git a/share/cmake-3.17/Help/module/InstallRequiredSystemLibraries.rst b/share/cmake-3.18/Help/module/InstallRequiredSystemLibraries.rst
index 5ea9af3..5ea9af3 100644
--- a/share/cmake-3.17/Help/module/InstallRequiredSystemLibraries.rst
+++ b/share/cmake-3.18/Help/module/InstallRequiredSystemLibraries.rst
diff --git a/share/cmake-3.17/Help/module/MacroAddFileDependencies.rst b/share/cmake-3.18/Help/module/MacroAddFileDependencies.rst
index 5f0bf6b..5f0bf6b 100644
--- a/share/cmake-3.17/Help/module/MacroAddFileDependencies.rst
+++ b/share/cmake-3.18/Help/module/MacroAddFileDependencies.rst
diff --git a/share/cmake-3.17/Help/module/ProcessorCount.rst b/share/cmake-3.18/Help/module/ProcessorCount.rst
index 0149d09..0149d09 100644
--- a/share/cmake-3.17/Help/module/ProcessorCount.rst
+++ b/share/cmake-3.18/Help/module/ProcessorCount.rst
diff --git a/share/cmake-3.17/Help/module/SelectLibraryConfigurations.rst b/share/cmake-3.18/Help/module/SelectLibraryConfigurations.rst
index 14fd6f8..14fd6f8 100644
--- a/share/cmake-3.17/Help/module/SelectLibraryConfigurations.rst
+++ b/share/cmake-3.18/Help/module/SelectLibraryConfigurations.rst
diff --git a/share/cmake-3.17/Help/module/SquishTestScript.rst b/share/cmake-3.18/Help/module/SquishTestScript.rst
index 47da404..47da404 100644
--- a/share/cmake-3.17/Help/module/SquishTestScript.rst
+++ b/share/cmake-3.18/Help/module/SquishTestScript.rst
diff --git a/share/cmake-3.17/Help/module/TestBigEndian.rst b/share/cmake-3.18/Help/module/TestBigEndian.rst
index f9e4d2f..f9e4d2f 100644
--- a/share/cmake-3.17/Help/module/TestBigEndian.rst
+++ b/share/cmake-3.18/Help/module/TestBigEndian.rst
diff --git a/share/cmake-3.17/Help/module/TestCXXAcceptsFlag.rst b/share/cmake-3.18/Help/module/TestCXXAcceptsFlag.rst
index ee3d70a..ee3d70a 100644
--- a/share/cmake-3.17/Help/module/TestCXXAcceptsFlag.rst
+++ b/share/cmake-3.18/Help/module/TestCXXAcceptsFlag.rst
diff --git a/share/cmake-3.17/Help/module/TestForANSIForScope.rst b/share/cmake-3.18/Help/module/TestForANSIForScope.rst
index 00d9238..00d9238 100644
--- a/share/cmake-3.17/Help/module/TestForANSIForScope.rst
+++ b/share/cmake-3.18/Help/module/TestForANSIForScope.rst
diff --git a/share/cmake-3.17/Help/module/TestForANSIStreamHeaders.rst b/share/cmake-3.18/Help/module/TestForANSIStreamHeaders.rst
index 212a30b..212a30b 100644
--- a/share/cmake-3.17/Help/module/TestForANSIStreamHeaders.rst
+++ b/share/cmake-3.18/Help/module/TestForANSIStreamHeaders.rst
diff --git a/share/cmake-3.17/Help/module/TestForSSTREAM.rst b/share/cmake-3.18/Help/module/TestForSSTREAM.rst
index d154751..d154751 100644
--- a/share/cmake-3.17/Help/module/TestForSSTREAM.rst
+++ b/share/cmake-3.18/Help/module/TestForSSTREAM.rst
diff --git a/share/cmake-3.17/Help/module/TestForSTDNamespace.rst b/share/cmake-3.18/Help/module/TestForSTDNamespace.rst
index ad989e3..ad989e3 100644
--- a/share/cmake-3.17/Help/module/TestForSTDNamespace.rst
+++ b/share/cmake-3.18/Help/module/TestForSTDNamespace.rst
diff --git a/share/cmake-3.17/Help/module/UseEcos.rst b/share/cmake-3.18/Help/module/UseEcos.rst
index 0e57868..0e57868 100644
--- a/share/cmake-3.17/Help/module/UseEcos.rst
+++ b/share/cmake-3.18/Help/module/UseEcos.rst
diff --git a/share/cmake-3.17/Help/module/UseJava.rst b/share/cmake-3.18/Help/module/UseJava.rst
index fa2f1bd..fa2f1bd 100644
--- a/share/cmake-3.17/Help/module/UseJava.rst
+++ b/share/cmake-3.18/Help/module/UseJava.rst
diff --git a/share/cmake-3.17/Help/module/UseJavaClassFilelist.rst b/share/cmake-3.18/Help/module/UseJavaClassFilelist.rst
index b9cd476..b9cd476 100644
--- a/share/cmake-3.17/Help/module/UseJavaClassFilelist.rst
+++ b/share/cmake-3.18/Help/module/UseJavaClassFilelist.rst
diff --git a/share/cmake-3.17/Help/module/UseJavaSymlinks.rst b/share/cmake-3.18/Help/module/UseJavaSymlinks.rst
index 2fab8e8..2fab8e8 100644
--- a/share/cmake-3.17/Help/module/UseJavaSymlinks.rst
+++ b/share/cmake-3.18/Help/module/UseJavaSymlinks.rst
diff --git a/share/cmake-3.17/Help/module/UsePkgConfig.rst b/share/cmake-3.18/Help/module/UsePkgConfig.rst
index 668f766..668f766 100644
--- a/share/cmake-3.17/Help/module/UsePkgConfig.rst
+++ b/share/cmake-3.18/Help/module/UsePkgConfig.rst
diff --git a/share/cmake-3.17/Help/module/UseSWIG.rst b/share/cmake-3.18/Help/module/UseSWIG.rst
index 0007c35..0007c35 100644
--- a/share/cmake-3.17/Help/module/UseSWIG.rst
+++ b/share/cmake-3.18/Help/module/UseSWIG.rst
diff --git a/share/cmake-3.17/Help/module/Use_wxWindows.rst b/share/cmake-3.18/Help/module/Use_wxWindows.rst
index a489e98..a489e98 100644
--- a/share/cmake-3.17/Help/module/Use_wxWindows.rst
+++ b/share/cmake-3.18/Help/module/Use_wxWindows.rst
diff --git a/share/cmake-3.17/Help/module/UsewxWidgets.rst b/share/cmake-3.18/Help/module/UsewxWidgets.rst
index 6829c2d..6829c2d 100644
--- a/share/cmake-3.17/Help/module/UsewxWidgets.rst
+++ b/share/cmake-3.18/Help/module/UsewxWidgets.rst
diff --git a/share/cmake-3.17/Help/module/WriteBasicConfigVersionFile.rst b/share/cmake-3.18/Help/module/WriteBasicConfigVersionFile.rst
index c637d5d..c637d5d 100644
--- a/share/cmake-3.17/Help/module/WriteBasicConfigVersionFile.rst
+++ b/share/cmake-3.18/Help/module/WriteBasicConfigVersionFile.rst
diff --git a/share/cmake-3.17/Help/module/WriteCompilerDetectionHeader.rst b/share/cmake-3.18/Help/module/WriteCompilerDetectionHeader.rst
index 4c81b48..4c81b48 100644
--- a/share/cmake-3.17/Help/module/WriteCompilerDetectionHeader.rst
+++ b/share/cmake-3.18/Help/module/WriteCompilerDetectionHeader.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0000.rst b/share/cmake-3.18/Help/policy/CMP0000.rst
index aecfa71..aecfa71 100644
--- a/share/cmake-3.17/Help/policy/CMP0000.rst
+++ b/share/cmake-3.18/Help/policy/CMP0000.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0001.rst b/share/cmake-3.18/Help/policy/CMP0001.rst
index 6fa64d9..6fa64d9 100644
--- a/share/cmake-3.17/Help/policy/CMP0001.rst
+++ b/share/cmake-3.18/Help/policy/CMP0001.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0002.rst b/share/cmake-3.18/Help/policy/CMP0002.rst
index dc68d51..dc68d51 100644
--- a/share/cmake-3.17/Help/policy/CMP0002.rst
+++ b/share/cmake-3.18/Help/policy/CMP0002.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0003.rst b/share/cmake-3.18/Help/policy/CMP0003.rst
index dd90883..dd90883 100644
--- a/share/cmake-3.17/Help/policy/CMP0003.rst
+++ b/share/cmake-3.18/Help/policy/CMP0003.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0004.rst b/share/cmake-3.18/Help/policy/CMP0004.rst
index be6d307..be6d307 100644
--- a/share/cmake-3.17/Help/policy/CMP0004.rst
+++ b/share/cmake-3.18/Help/policy/CMP0004.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0005.rst b/share/cmake-3.18/Help/policy/CMP0005.rst
index 59567d5..59567d5 100644
--- a/share/cmake-3.17/Help/policy/CMP0005.rst
+++ b/share/cmake-3.18/Help/policy/CMP0005.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0006.rst b/share/cmake-3.18/Help/policy/CMP0006.rst
index 181958b..181958b 100644
--- a/share/cmake-3.17/Help/policy/CMP0006.rst
+++ b/share/cmake-3.18/Help/policy/CMP0006.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0007.rst b/share/cmake-3.18/Help/policy/CMP0007.rst
index 1006ed3..1006ed3 100644
--- a/share/cmake-3.17/Help/policy/CMP0007.rst
+++ b/share/cmake-3.18/Help/policy/CMP0007.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0008.rst b/share/cmake-3.18/Help/policy/CMP0008.rst
index 18ede82..18ede82 100644
--- a/share/cmake-3.17/Help/policy/CMP0008.rst
+++ b/share/cmake-3.18/Help/policy/CMP0008.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0009.rst b/share/cmake-3.18/Help/policy/CMP0009.rst
index 27cfde0..27cfde0 100644
--- a/share/cmake-3.17/Help/policy/CMP0009.rst
+++ b/share/cmake-3.18/Help/policy/CMP0009.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0010.rst b/share/cmake-3.18/Help/policy/CMP0010.rst
index cfae498..cfae498 100644
--- a/share/cmake-3.17/Help/policy/CMP0010.rst
+++ b/share/cmake-3.18/Help/policy/CMP0010.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0011.rst b/share/cmake-3.18/Help/policy/CMP0011.rst
index 257415c..257415c 100644
--- a/share/cmake-3.17/Help/policy/CMP0011.rst
+++ b/share/cmake-3.18/Help/policy/CMP0011.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0012.rst b/share/cmake-3.18/Help/policy/CMP0012.rst
index 17ec8d3..17ec8d3 100644
--- a/share/cmake-3.17/Help/policy/CMP0012.rst
+++ b/share/cmake-3.18/Help/policy/CMP0012.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0013.rst b/share/cmake-3.18/Help/policy/CMP0013.rst
index dbd67a1..dbd67a1 100644
--- a/share/cmake-3.17/Help/policy/CMP0013.rst
+++ b/share/cmake-3.18/Help/policy/CMP0013.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0014.rst b/share/cmake-3.18/Help/policy/CMP0014.rst
index 331dde5..331dde5 100644
--- a/share/cmake-3.17/Help/policy/CMP0014.rst
+++ b/share/cmake-3.18/Help/policy/CMP0014.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0015.rst b/share/cmake-3.18/Help/policy/CMP0015.rst
index 90d5203..90d5203 100644
--- a/share/cmake-3.17/Help/policy/CMP0015.rst
+++ b/share/cmake-3.18/Help/policy/CMP0015.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0016.rst b/share/cmake-3.18/Help/policy/CMP0016.rst
index 026d02a..026d02a 100644
--- a/share/cmake-3.17/Help/policy/CMP0016.rst
+++ b/share/cmake-3.18/Help/policy/CMP0016.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0017.rst b/share/cmake-3.18/Help/policy/CMP0017.rst
index ca4664e..ca4664e 100644
--- a/share/cmake-3.17/Help/policy/CMP0017.rst
+++ b/share/cmake-3.18/Help/policy/CMP0017.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0018.rst b/share/cmake-3.18/Help/policy/CMP0018.rst
index 6248406..6248406 100644
--- a/share/cmake-3.17/Help/policy/CMP0018.rst
+++ b/share/cmake-3.18/Help/policy/CMP0018.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0019.rst b/share/cmake-3.18/Help/policy/CMP0019.rst
index 682dcdf..682dcdf 100644
--- a/share/cmake-3.17/Help/policy/CMP0019.rst
+++ b/share/cmake-3.18/Help/policy/CMP0019.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0020.rst b/share/cmake-3.18/Help/policy/CMP0020.rst
index 6d27684..6d27684 100644
--- a/share/cmake-3.17/Help/policy/CMP0020.rst
+++ b/share/cmake-3.18/Help/policy/CMP0020.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0021.rst b/share/cmake-3.18/Help/policy/CMP0021.rst
index 937b106..937b106 100644
--- a/share/cmake-3.17/Help/policy/CMP0021.rst
+++ b/share/cmake-3.18/Help/policy/CMP0021.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0022.rst b/share/cmake-3.18/Help/policy/CMP0022.rst
index be60e37..be60e37 100644
--- a/share/cmake-3.17/Help/policy/CMP0022.rst
+++ b/share/cmake-3.18/Help/policy/CMP0022.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0023.rst b/share/cmake-3.18/Help/policy/CMP0023.rst
index 3c72c81..3c72c81 100644
--- a/share/cmake-3.17/Help/policy/CMP0023.rst
+++ b/share/cmake-3.18/Help/policy/CMP0023.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0024.rst b/share/cmake-3.18/Help/policy/CMP0024.rst
index 6e24b04..6e24b04 100644
--- a/share/cmake-3.17/Help/policy/CMP0024.rst
+++ b/share/cmake-3.18/Help/policy/CMP0024.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0025.rst b/share/cmake-3.18/Help/policy/CMP0025.rst
index ba5e1e9..ba5e1e9 100644
--- a/share/cmake-3.17/Help/policy/CMP0025.rst
+++ b/share/cmake-3.18/Help/policy/CMP0025.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0026.rst b/share/cmake-3.18/Help/policy/CMP0026.rst
index 3401d4a..3401d4a 100644
--- a/share/cmake-3.17/Help/policy/CMP0026.rst
+++ b/share/cmake-3.18/Help/policy/CMP0026.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0027.rst b/share/cmake-3.18/Help/policy/CMP0027.rst
index bf7b6a9..bf7b6a9 100644
--- a/share/cmake-3.17/Help/policy/CMP0027.rst
+++ b/share/cmake-3.18/Help/policy/CMP0027.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0028.rst b/share/cmake-3.18/Help/policy/CMP0028.rst
index ab38229..ab38229 100644
--- a/share/cmake-3.17/Help/policy/CMP0028.rst
+++ b/share/cmake-3.18/Help/policy/CMP0028.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0029.rst b/share/cmake-3.18/Help/policy/CMP0029.rst
index aa10b97..aa10b97 100644
--- a/share/cmake-3.17/Help/policy/CMP0029.rst
+++ b/share/cmake-3.18/Help/policy/CMP0029.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0030.rst b/share/cmake-3.18/Help/policy/CMP0030.rst
index 81bbb84..81bbb84 100644
--- a/share/cmake-3.17/Help/policy/CMP0030.rst
+++ b/share/cmake-3.18/Help/policy/CMP0030.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0031.rst b/share/cmake-3.18/Help/policy/CMP0031.rst
index 8c3eef6..8c3eef6 100644
--- a/share/cmake-3.17/Help/policy/CMP0031.rst
+++ b/share/cmake-3.18/Help/policy/CMP0031.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0032.rst b/share/cmake-3.18/Help/policy/CMP0032.rst
index 5c1fa4b..5c1fa4b 100644
--- a/share/cmake-3.17/Help/policy/CMP0032.rst
+++ b/share/cmake-3.18/Help/policy/CMP0032.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0033.rst b/share/cmake-3.18/Help/policy/CMP0033.rst
index 4a6cc59..4a6cc59 100644
--- a/share/cmake-3.17/Help/policy/CMP0033.rst
+++ b/share/cmake-3.18/Help/policy/CMP0033.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0034.rst b/share/cmake-3.18/Help/policy/CMP0034.rst
index 0f3934a..0f3934a 100644
--- a/share/cmake-3.17/Help/policy/CMP0034.rst
+++ b/share/cmake-3.18/Help/policy/CMP0034.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0035.rst b/share/cmake-3.18/Help/policy/CMP0035.rst
index 58199a4..58199a4 100644
--- a/share/cmake-3.17/Help/policy/CMP0035.rst
+++ b/share/cmake-3.18/Help/policy/CMP0035.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0036.rst b/share/cmake-3.18/Help/policy/CMP0036.rst
index 4bcfc54..4bcfc54 100644
--- a/share/cmake-3.17/Help/policy/CMP0036.rst
+++ b/share/cmake-3.18/Help/policy/CMP0036.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0037.rst b/share/cmake-3.18/Help/policy/CMP0037.rst
index 9895fb0..9895fb0 100644
--- a/share/cmake-3.17/Help/policy/CMP0037.rst
+++ b/share/cmake-3.18/Help/policy/CMP0037.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0038.rst b/share/cmake-3.18/Help/policy/CMP0038.rst
index 7fb2209..7fb2209 100644
--- a/share/cmake-3.17/Help/policy/CMP0038.rst
+++ b/share/cmake-3.18/Help/policy/CMP0038.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0039.rst b/share/cmake-3.18/Help/policy/CMP0039.rst
index 4b14e21..4b14e21 100644
--- a/share/cmake-3.17/Help/policy/CMP0039.rst
+++ b/share/cmake-3.18/Help/policy/CMP0039.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0040.rst b/share/cmake-3.18/Help/policy/CMP0040.rst
index 0afe589..0afe589 100644
--- a/share/cmake-3.17/Help/policy/CMP0040.rst
+++ b/share/cmake-3.18/Help/policy/CMP0040.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0041.rst b/share/cmake-3.18/Help/policy/CMP0041.rst
index 3b4df36..3b4df36 100644
--- a/share/cmake-3.17/Help/policy/CMP0041.rst
+++ b/share/cmake-3.18/Help/policy/CMP0041.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0042.rst b/share/cmake-3.18/Help/policy/CMP0042.rst
index 0877564..0877564 100644
--- a/share/cmake-3.17/Help/policy/CMP0042.rst
+++ b/share/cmake-3.18/Help/policy/CMP0042.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0043.rst b/share/cmake-3.18/Help/policy/CMP0043.rst
index 05210ac..05210ac 100644
--- a/share/cmake-3.17/Help/policy/CMP0043.rst
+++ b/share/cmake-3.18/Help/policy/CMP0043.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0044.rst b/share/cmake-3.18/Help/policy/CMP0044.rst
index 6a4d040..6a4d040 100644
--- a/share/cmake-3.17/Help/policy/CMP0044.rst
+++ b/share/cmake-3.18/Help/policy/CMP0044.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0045.rst b/share/cmake-3.18/Help/policy/CMP0045.rst
index 80e217b..80e217b 100644
--- a/share/cmake-3.17/Help/policy/CMP0045.rst
+++ b/share/cmake-3.18/Help/policy/CMP0045.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0046.rst b/share/cmake-3.18/Help/policy/CMP0046.rst
index bf78584..bf78584 100644
--- a/share/cmake-3.17/Help/policy/CMP0046.rst
+++ b/share/cmake-3.18/Help/policy/CMP0046.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0047.rst b/share/cmake-3.18/Help/policy/CMP0047.rst
index 9588edd..9588edd 100644
--- a/share/cmake-3.17/Help/policy/CMP0047.rst
+++ b/share/cmake-3.18/Help/policy/CMP0047.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0048.rst b/share/cmake-3.18/Help/policy/CMP0048.rst
index e63ec01..e63ec01 100644
--- a/share/cmake-3.17/Help/policy/CMP0048.rst
+++ b/share/cmake-3.18/Help/policy/CMP0048.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0049.rst b/share/cmake-3.18/Help/policy/CMP0049.rst
index 49b20be..49b20be 100644
--- a/share/cmake-3.17/Help/policy/CMP0049.rst
+++ b/share/cmake-3.18/Help/policy/CMP0049.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0050.rst b/share/cmake-3.18/Help/policy/CMP0050.rst
index 27e7b1d..27e7b1d 100644
--- a/share/cmake-3.17/Help/policy/CMP0050.rst
+++ b/share/cmake-3.18/Help/policy/CMP0050.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0051.rst b/share/cmake-3.18/Help/policy/CMP0051.rst
index 6b679e5..6b679e5 100644
--- a/share/cmake-3.17/Help/policy/CMP0051.rst
+++ b/share/cmake-3.18/Help/policy/CMP0051.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0052.rst b/share/cmake-3.18/Help/policy/CMP0052.rst
index ee2e6e8..ee2e6e8 100644
--- a/share/cmake-3.17/Help/policy/CMP0052.rst
+++ b/share/cmake-3.18/Help/policy/CMP0052.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0053.rst b/share/cmake-3.18/Help/policy/CMP0053.rst
index 032b3e5..032b3e5 100644
--- a/share/cmake-3.17/Help/policy/CMP0053.rst
+++ b/share/cmake-3.18/Help/policy/CMP0053.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0054.rst b/share/cmake-3.18/Help/policy/CMP0054.rst
index 1e000a6..1e000a6 100644
--- a/share/cmake-3.17/Help/policy/CMP0054.rst
+++ b/share/cmake-3.18/Help/policy/CMP0054.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0055.rst b/share/cmake-3.18/Help/policy/CMP0055.rst
index bc5ad08..bc5ad08 100644
--- a/share/cmake-3.17/Help/policy/CMP0055.rst
+++ b/share/cmake-3.18/Help/policy/CMP0055.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0056.rst b/share/cmake-3.18/Help/policy/CMP0056.rst
index 834da84..834da84 100644
--- a/share/cmake-3.17/Help/policy/CMP0056.rst
+++ b/share/cmake-3.18/Help/policy/CMP0056.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0057.rst b/share/cmake-3.18/Help/policy/CMP0057.rst
index 83db186..83db186 100644
--- a/share/cmake-3.17/Help/policy/CMP0057.rst
+++ b/share/cmake-3.18/Help/policy/CMP0057.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0058.rst b/share/cmake-3.18/Help/policy/CMP0058.rst
index 05efd48..05efd48 100644
--- a/share/cmake-3.17/Help/policy/CMP0058.rst
+++ b/share/cmake-3.18/Help/policy/CMP0058.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0059.rst b/share/cmake-3.18/Help/policy/CMP0059.rst
index bce982e..bce982e 100644
--- a/share/cmake-3.17/Help/policy/CMP0059.rst
+++ b/share/cmake-3.18/Help/policy/CMP0059.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0060.rst b/share/cmake-3.18/Help/policy/CMP0060.rst
index 98ac2cf..98ac2cf 100644
--- a/share/cmake-3.17/Help/policy/CMP0060.rst
+++ b/share/cmake-3.18/Help/policy/CMP0060.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0061.rst b/share/cmake-3.18/Help/policy/CMP0061.rst
index 57e4161..57e4161 100644
--- a/share/cmake-3.17/Help/policy/CMP0061.rst
+++ b/share/cmake-3.18/Help/policy/CMP0061.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0062.rst b/share/cmake-3.18/Help/policy/CMP0062.rst
index 0db7aaf..0db7aaf 100644
--- a/share/cmake-3.17/Help/policy/CMP0062.rst
+++ b/share/cmake-3.18/Help/policy/CMP0062.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0063.rst b/share/cmake-3.18/Help/policy/CMP0063.rst
index d736d06..d736d06 100644
--- a/share/cmake-3.17/Help/policy/CMP0063.rst
+++ b/share/cmake-3.18/Help/policy/CMP0063.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0064.rst b/share/cmake-3.18/Help/policy/CMP0064.rst
index e9a061b..e9a061b 100644
--- a/share/cmake-3.17/Help/policy/CMP0064.rst
+++ b/share/cmake-3.18/Help/policy/CMP0064.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0065.rst b/share/cmake-3.18/Help/policy/CMP0065.rst
index b820aad..b820aad 100644
--- a/share/cmake-3.17/Help/policy/CMP0065.rst
+++ b/share/cmake-3.18/Help/policy/CMP0065.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0066.rst b/share/cmake-3.18/Help/policy/CMP0066.rst
index e110ae1..e110ae1 100644
--- a/share/cmake-3.17/Help/policy/CMP0066.rst
+++ b/share/cmake-3.18/Help/policy/CMP0066.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0067.rst b/share/cmake-3.18/Help/policy/CMP0067.rst
index f802787..f802787 100644
--- a/share/cmake-3.17/Help/policy/CMP0067.rst
+++ b/share/cmake-3.18/Help/policy/CMP0067.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0068.rst b/share/cmake-3.18/Help/policy/CMP0068.rst
index 978a6e3..978a6e3 100644
--- a/share/cmake-3.17/Help/policy/CMP0068.rst
+++ b/share/cmake-3.18/Help/policy/CMP0068.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0069.rst b/share/cmake-3.18/Help/policy/CMP0069.rst
index 0d5ddfd..0d5ddfd 100644
--- a/share/cmake-3.17/Help/policy/CMP0069.rst
+++ b/share/cmake-3.18/Help/policy/CMP0069.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0070.rst b/share/cmake-3.18/Help/policy/CMP0070.rst
index 0fb3617..0fb3617 100644
--- a/share/cmake-3.17/Help/policy/CMP0070.rst
+++ b/share/cmake-3.18/Help/policy/CMP0070.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0071.rst b/share/cmake-3.18/Help/policy/CMP0071.rst
index 855ecf0..855ecf0 100644
--- a/share/cmake-3.17/Help/policy/CMP0071.rst
+++ b/share/cmake-3.18/Help/policy/CMP0071.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0072.rst b/share/cmake-3.18/Help/policy/CMP0072.rst
index 3abbad7..3abbad7 100644
--- a/share/cmake-3.17/Help/policy/CMP0072.rst
+++ b/share/cmake-3.18/Help/policy/CMP0072.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0073.rst b/share/cmake-3.18/Help/policy/CMP0073.rst
index 9bfa0e9..9bfa0e9 100644
--- a/share/cmake-3.17/Help/policy/CMP0073.rst
+++ b/share/cmake-3.18/Help/policy/CMP0073.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0074.rst b/share/cmake-3.18/Help/policy/CMP0074.rst
index 63ebf7b..63ebf7b 100644
--- a/share/cmake-3.17/Help/policy/CMP0074.rst
+++ b/share/cmake-3.18/Help/policy/CMP0074.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0075.rst b/share/cmake-3.18/Help/policy/CMP0075.rst
index aa5c3f7..aa5c3f7 100644
--- a/share/cmake-3.17/Help/policy/CMP0075.rst
+++ b/share/cmake-3.18/Help/policy/CMP0075.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0076.rst b/share/cmake-3.18/Help/policy/CMP0076.rst
index dd25f80..dd25f80 100644
--- a/share/cmake-3.17/Help/policy/CMP0076.rst
+++ b/share/cmake-3.18/Help/policy/CMP0076.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0077.rst b/share/cmake-3.18/Help/policy/CMP0077.rst
index 44797b6..44797b6 100644
--- a/share/cmake-3.17/Help/policy/CMP0077.rst
+++ b/share/cmake-3.18/Help/policy/CMP0077.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0078.rst b/share/cmake-3.18/Help/policy/CMP0078.rst
index 2e97934..2e97934 100644
--- a/share/cmake-3.17/Help/policy/CMP0078.rst
+++ b/share/cmake-3.18/Help/policy/CMP0078.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0079.rst b/share/cmake-3.18/Help/policy/CMP0079.rst
index 0244d6c..0244d6c 100644
--- a/share/cmake-3.17/Help/policy/CMP0079.rst
+++ b/share/cmake-3.18/Help/policy/CMP0079.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0080.rst b/share/cmake-3.18/Help/policy/CMP0080.rst
index 5ce9591..5ce9591 100644
--- a/share/cmake-3.17/Help/policy/CMP0080.rst
+++ b/share/cmake-3.18/Help/policy/CMP0080.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0081.rst b/share/cmake-3.18/Help/policy/CMP0081.rst
index d3b2872..d3b2872 100644
--- a/share/cmake-3.17/Help/policy/CMP0081.rst
+++ b/share/cmake-3.18/Help/policy/CMP0081.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0082.rst b/share/cmake-3.18/Help/policy/CMP0082.rst
index d887616..d887616 100644
--- a/share/cmake-3.17/Help/policy/CMP0082.rst
+++ b/share/cmake-3.18/Help/policy/CMP0082.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0083.rst b/share/cmake-3.18/Help/policy/CMP0083.rst
index e0b09cf..e0b09cf 100644
--- a/share/cmake-3.17/Help/policy/CMP0083.rst
+++ b/share/cmake-3.18/Help/policy/CMP0083.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0084.rst b/share/cmake-3.18/Help/policy/CMP0084.rst
index 713d295..713d295 100644
--- a/share/cmake-3.17/Help/policy/CMP0084.rst
+++ b/share/cmake-3.18/Help/policy/CMP0084.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0085.rst b/share/cmake-3.18/Help/policy/CMP0085.rst
index d9ec9a2..d9ec9a2 100644
--- a/share/cmake-3.17/Help/policy/CMP0085.rst
+++ b/share/cmake-3.18/Help/policy/CMP0085.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0086.rst b/share/cmake-3.18/Help/policy/CMP0086.rst
index 4a9e8b8..4a9e8b8 100644
--- a/share/cmake-3.17/Help/policy/CMP0086.rst
+++ b/share/cmake-3.18/Help/policy/CMP0086.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0087.rst b/share/cmake-3.18/Help/policy/CMP0087.rst
index 4c45b99..4c45b99 100644
--- a/share/cmake-3.17/Help/policy/CMP0087.rst
+++ b/share/cmake-3.18/Help/policy/CMP0087.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0088.rst b/share/cmake-3.18/Help/policy/CMP0088.rst
index 82c04ef..82c04ef 100644
--- a/share/cmake-3.17/Help/policy/CMP0088.rst
+++ b/share/cmake-3.18/Help/policy/CMP0088.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0089.rst b/share/cmake-3.18/Help/policy/CMP0089.rst
index 029de55..029de55 100644
--- a/share/cmake-3.17/Help/policy/CMP0089.rst
+++ b/share/cmake-3.18/Help/policy/CMP0089.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0090.rst b/share/cmake-3.18/Help/policy/CMP0090.rst
index 720c17c..720c17c 100644
--- a/share/cmake-3.17/Help/policy/CMP0090.rst
+++ b/share/cmake-3.18/Help/policy/CMP0090.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0091.rst b/share/cmake-3.18/Help/policy/CMP0091.rst
index 1a5878a..1a5878a 100644
--- a/share/cmake-3.17/Help/policy/CMP0091.rst
+++ b/share/cmake-3.18/Help/policy/CMP0091.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0092.rst b/share/cmake-3.18/Help/policy/CMP0092.rst
index 8d3a288..8d3a288 100644
--- a/share/cmake-3.17/Help/policy/CMP0092.rst
+++ b/share/cmake-3.18/Help/policy/CMP0092.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0093.rst b/share/cmake-3.18/Help/policy/CMP0093.rst
index 0ffc493..0ffc493 100644
--- a/share/cmake-3.17/Help/policy/CMP0093.rst
+++ b/share/cmake-3.18/Help/policy/CMP0093.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0094.rst b/share/cmake-3.18/Help/policy/CMP0094.rst
index 836f30f..836f30f 100644
--- a/share/cmake-3.17/Help/policy/CMP0094.rst
+++ b/share/cmake-3.18/Help/policy/CMP0094.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0095.rst b/share/cmake-3.18/Help/policy/CMP0095.rst
index 4c56a05..4c56a05 100644
--- a/share/cmake-3.17/Help/policy/CMP0095.rst
+++ b/share/cmake-3.18/Help/policy/CMP0095.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0096.rst b/share/cmake-3.18/Help/policy/CMP0096.rst
index 8eaf0f9..8eaf0f9 100644
--- a/share/cmake-3.17/Help/policy/CMP0096.rst
+++ b/share/cmake-3.18/Help/policy/CMP0096.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0097.rst b/share/cmake-3.18/Help/policy/CMP0097.rst
index 4840aa6..4840aa6 100644
--- a/share/cmake-3.17/Help/policy/CMP0097.rst
+++ b/share/cmake-3.18/Help/policy/CMP0097.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0098.rst b/share/cmake-3.18/Help/policy/CMP0098.rst
index 6d1443b..6d1443b 100644
--- a/share/cmake-3.17/Help/policy/CMP0098.rst
+++ b/share/cmake-3.18/Help/policy/CMP0098.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0099.rst b/share/cmake-3.18/Help/policy/CMP0099.rst
index c897e7b..c897e7b 100644
--- a/share/cmake-3.17/Help/policy/CMP0099.rst
+++ b/share/cmake-3.18/Help/policy/CMP0099.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0100.rst b/share/cmake-3.18/Help/policy/CMP0100.rst
index b24d013..b24d013 100644
--- a/share/cmake-3.17/Help/policy/CMP0100.rst
+++ b/share/cmake-3.18/Help/policy/CMP0100.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0101.rst b/share/cmake-3.18/Help/policy/CMP0101.rst
index 9941acf..9941acf 100644
--- a/share/cmake-3.17/Help/policy/CMP0101.rst
+++ b/share/cmake-3.18/Help/policy/CMP0101.rst
diff --git a/share/cmake-3.17/Help/policy/CMP0102.rst b/share/cmake-3.18/Help/policy/CMP0102.rst
index 9859006..9859006 100644
--- a/share/cmake-3.17/Help/policy/CMP0102.rst
+++ b/share/cmake-3.18/Help/policy/CMP0102.rst
diff --git a/share/cmake-3.18/Help/policy/CMP0103.rst b/share/cmake-3.18/Help/policy/CMP0103.rst
new file mode 100644
index 0000000..223e0cb
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0103.rst
@@ -0,0 +1,22 @@
+CMP0103
+-------
+
+Multiple calls to :command:`export` command with same ``FILE`` without
+``APPEND`` is no longer allowed.
+
+In CMake 3.17 and below, multiple calls to :command:`export` command with the
+same ``FILE`` without ``APPEND`` are accepted silently but only the last
+occurrence is taken into account during the generation.
+
+The ``OLD`` behavior for this policy is to ignore the multiple occurrences of
+ :command:`export` command except the last one.
+
+The ``NEW`` behavior of this policy is to raise an error on second call to
+:command:`export` command with same ``FILE`` without ``APPEND``.
+
+This policy was introduced in CMake version 3.18. 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.18/Help/policy/CMP0104.rst b/share/cmake-3.18/Help/policy/CMP0104.rst
new file mode 100644
index 0000000..8516716
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0104.rst
@@ -0,0 +1,56 @@
+CMP0104
+-------
+
+Initialize :variable:`CMAKE_CUDA_ARCHITECTURES` when
+:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
+Raise an error if :prop_tgt:`CUDA_ARCHITECTURES` is empty.
+
+:variable:`CMAKE_CUDA_ARCHITECTURES` introduced in CMake 3.18 is used to
+initialize :prop_tgt:`CUDA_ARCHITECTURES`, which passes correct code generation
+flags to the CUDA compiler.
+
+Previous to this users had to manually specify the code generation flags. This
+policy is for backwards compatibility with manually specifying code generation
+flags.
+
+The ``OLD`` behavior for this policy is to not initialize
+:variable:`CMAKE_CUDA_ARCHITECTURES` when
+:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
+Empty :prop_tgt:`CUDA_ARCHITECTURES` is allowed.
+
+The ``NEW`` behavior of this policy is to initialize
+:variable:`CMAKE_CUDA_ARCHITECTURES` when
+:variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``
+and raise an error if :prop_tgt:`CUDA_ARCHITECTURES` is empty during generation.
+
+If :prop_tgt:`CUDA_ARCHITECTURES` is set to a false value no architectures
+flags are passed to the compiler. This is intended to support packagers and
+the rare cases where full control over the passed flags is required.
+
+This policy was introduced in CMake version 3.18. 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
+
+Examples
+^^^^^^^^
+
+.. code-block:: cmake
+
+ set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 35 50 72)
+
+Generates code for real and virtual architectures ``30``, ``50`` and ``72``.
+
+.. code-block:: cmake
+
+ set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)
+
+Generates code for real architecture ``70`` and virtual architecture ``72``.
+
+.. code-block:: cmake
+
+ set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES OFF)
+
+CMake will not pass any architecture flags to the compiler.
diff --git a/share/cmake-3.18/Help/policy/CMP0105.rst b/share/cmake-3.18/Help/policy/CMP0105.rst
new file mode 100644
index 0000000..19a1edb
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0105.rst
@@ -0,0 +1,19 @@
+CMP0105
+-------
+
+:prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target
+properties are now used for the device link step.
+
+In CMake 3.17 and below, link options are not used by the device link step.
+
+The ``OLD`` behavior for this policy is to ignore the link options.
+
+The ``NEW`` behavior of this policy is to use the link options during the
+device link step.
+
+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.18/Help/policy/CMP0106.rst b/share/cmake-3.18/Help/policy/CMP0106.rst
new file mode 100644
index 0000000..e34d15a
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0106.rst
@@ -0,0 +1,19 @@
+CMP0106
+-------
+
+The :module:`Documentation` module is removed.
+
+The :module:`Documentation` was added as a support mechanism for the VTK
+project and was tuned for that project. Instead of CMake providing this module
+with (now old) VTK patterns for cache variables and required packages, the
+module is now deprecated by CMake itself.
+
+The ``OLD`` behavior of this policy is for :module:`Documentation` to add
+cache variables and find VTK documentation dependent packages. The ``NEW``
+behavior is to act as an empty module.
+
+This policy was introduced in CMake version 3.18. 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.18/Help/policy/CMP0107.rst b/share/cmake-3.18/Help/policy/CMP0107.rst
new file mode 100644
index 0000000..111bef7
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0107.rst
@@ -0,0 +1,19 @@
+CMP0107
+-------
+
+It is not allowed to create an ``ALIAS`` target with the same name as an
+another target.
+
+In CMake 3.17 and below, an ``ALIAS`` target can overwrite silently an existing
+target with the same name.
+
+The ``OLD`` behavior for this policy is to allow target overwrite.
+
+The ``NEW`` behavior of this policy is to prevent target overwriting.
+
+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.18/Help/policy/CMP0108.rst b/share/cmake-3.18/Help/policy/CMP0108.rst
new file mode 100644
index 0000000..0d54cfa
--- /dev/null
+++ b/share/cmake-3.18/Help/policy/CMP0108.rst
@@ -0,0 +1,19 @@
+CMP0108
+-------
+
+A target is not allowed to link to itself even through an ``ALIAS`` target.
+
+In CMake 3.17 and below, a target can link to a target aliased to itself.
+
+The ``OLD`` behavior for this policy is to allow a target to link to a target
+aliased to itself.
+
+The ``NEW`` behavior of this policy is to prevent a target to link to itself
+through an ``ALIAS`` target.
+
+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/DEPRECATED.txt b/share/cmake-3.18/Help/policy/DEPRECATED.txt
index f66de55..f66de55 100644
--- a/share/cmake-3.17/Help/policy/DEPRECATED.txt
+++ b/share/cmake-3.18/Help/policy/DEPRECATED.txt
diff --git a/share/cmake-3.17/Help/policy/DISALLOWED_COMMAND.txt b/share/cmake-3.18/Help/policy/DISALLOWED_COMMAND.txt
index 6500bb0..6500bb0 100644
--- a/share/cmake-3.17/Help/policy/DISALLOWED_COMMAND.txt
+++ b/share/cmake-3.18/Help/policy/DISALLOWED_COMMAND.txt
diff --git a/share/cmake-3.17/Help/prop_cache/ADVANCED.rst b/share/cmake-3.18/Help/prop_cache/ADVANCED.rst
index ec4de9d..ec4de9d 100644
--- a/share/cmake-3.17/Help/prop_cache/ADVANCED.rst
+++ b/share/cmake-3.18/Help/prop_cache/ADVANCED.rst
diff --git a/share/cmake-3.17/Help/prop_cache/HELPSTRING.rst b/share/cmake-3.18/Help/prop_cache/HELPSTRING.rst
index 71a86d0..71a86d0 100644
--- a/share/cmake-3.17/Help/prop_cache/HELPSTRING.rst
+++ b/share/cmake-3.18/Help/prop_cache/HELPSTRING.rst
diff --git a/share/cmake-3.17/Help/prop_cache/MODIFIED.rst b/share/cmake-3.18/Help/prop_cache/MODIFIED.rst
index 3ad7035..3ad7035 100644
--- a/share/cmake-3.17/Help/prop_cache/MODIFIED.rst
+++ b/share/cmake-3.18/Help/prop_cache/MODIFIED.rst
diff --git a/share/cmake-3.17/Help/prop_cache/STRINGS.rst b/share/cmake-3.18/Help/prop_cache/STRINGS.rst
index 0e3c326..0e3c326 100644
--- a/share/cmake-3.17/Help/prop_cache/STRINGS.rst
+++ b/share/cmake-3.18/Help/prop_cache/STRINGS.rst
diff --git a/share/cmake-3.17/Help/prop_cache/TYPE.rst b/share/cmake-3.18/Help/prop_cache/TYPE.rst
index 7ca859f..7ca859f 100644
--- a/share/cmake-3.17/Help/prop_cache/TYPE.rst
+++ b/share/cmake-3.18/Help/prop_cache/TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_cache/VALUE.rst b/share/cmake-3.18/Help/prop_cache/VALUE.rst
index 59aabd4..59aabd4 100644
--- a/share/cmake-3.17/Help/prop_cache/VALUE.rst
+++ b/share/cmake-3.18/Help/prop_cache/VALUE.rst
diff --git a/share/cmake-3.17/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst b/share/cmake-3.18/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
index 051d22a..051d22a 100644
--- a/share/cmake-3.17/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
+++ b/share/cmake-3.18/Help/prop_dir/ADDITIONAL_CLEAN_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst b/share/cmake-3.18/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
index b6f6160..b6f6160 100644
--- a/share/cmake-3.17/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
+++ b/share/cmake-3.18/Help/prop_dir/ADDITIONAL_MAKE_CLEAN_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/BINARY_DIR.rst b/share/cmake-3.18/Help/prop_dir/BINARY_DIR.rst
index 597c79a..597c79a 100644
--- a/share/cmake-3.17/Help/prop_dir/BINARY_DIR.rst
+++ b/share/cmake-3.18/Help/prop_dir/BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_dir/BUILDSYSTEM_TARGETS.rst b/share/cmake-3.18/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
index 04bb56e..04bb56e 100644
--- a/share/cmake-3.17/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
+++ b/share/cmake-3.18/Help/prop_dir/BUILDSYSTEM_TARGETS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/CACHE_VARIABLES.rst b/share/cmake-3.18/Help/prop_dir/CACHE_VARIABLES.rst
index 2c66f93..2c66f93 100644
--- a/share/cmake-3.17/Help/prop_dir/CACHE_VARIABLES.rst
+++ b/share/cmake-3.18/Help/prop_dir/CACHE_VARIABLES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/CLEAN_NO_CUSTOM.rst b/share/cmake-3.18/Help/prop_dir/CLEAN_NO_CUSTOM.rst
index 5ae78bf..5ae78bf 100644
--- a/share/cmake-3.17/Help/prop_dir/CLEAN_NO_CUSTOM.rst
+++ b/share/cmake-3.18/Help/prop_dir/CLEAN_NO_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst b/share/cmake-3.18/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
index b1aef19..b1aef19 100644
--- a/share/cmake-3.17/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
+++ b/share/cmake-3.18/Help/prop_dir/CMAKE_CONFIGURE_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS.rst b/share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS.rst
index 18f4567..18f4567 100644
--- a/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS.rst
+++ b/share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
index a6af45f..a6af45f 100644
--- a/share/cmake-3.17/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_dir/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_dir/COMPILE_OPTIONS.rst b/share/cmake-3.18/Help/prop_dir/COMPILE_OPTIONS.rst
index 48e8b9b..48e8b9b 100644
--- a/share/cmake-3.17/Help/prop_dir/COMPILE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_dir/COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/DEFINITIONS.rst b/share/cmake-3.18/Help/prop_dir/DEFINITIONS.rst
index 79ac3f3..79ac3f3 100644
--- a/share/cmake-3.17/Help/prop_dir/DEFINITIONS.rst
+++ b/share/cmake-3.18/Help/prop_dir/DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/EXCLUDE_FROM_ALL.rst b/share/cmake-3.18/Help/prop_dir/EXCLUDE_FROM_ALL.rst
index 8e3cca0..8e3cca0 100644
--- a/share/cmake-3.17/Help/prop_dir/EXCLUDE_FROM_ALL.rst
+++ b/share/cmake-3.18/Help/prop_dir/EXCLUDE_FROM_ALL.rst
diff --git a/share/cmake-3.17/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst b/share/cmake-3.18/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
index f534976..f534976 100644
--- a/share/cmake-3.17/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
+++ b/share/cmake-3.18/Help/prop_dir/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
diff --git a/share/cmake-3.17/Help/prop_dir/INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_dir/INCLUDE_DIRECTORIES.rst
index 5d856b8..5d856b8 100644
--- a/share/cmake-3.17/Help/prop_dir/INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_dir/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst b/share/cmake-3.18/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
index bb90c61..bb90c61 100644
--- a/share/cmake-3.17/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
+++ b/share/cmake-3.18/Help/prop_dir/INCLUDE_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
index 0c78dfb..0c78dfb 100644
--- a/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
+++ b/share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
index 840a1db..840a1db 100644
--- a/share/cmake-3.17/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_dir/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_dir/LABELS.rst b/share/cmake-3.18/Help/prop_dir/LABELS.rst
index de27d90..de27d90 100644
--- a/share/cmake-3.17/Help/prop_dir/LABELS.rst
+++ b/share/cmake-3.18/Help/prop_dir/LABELS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/LINK_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_dir/LINK_DIRECTORIES.rst
index 44dc230..44dc230 100644
--- a/share/cmake-3.17/Help/prop_dir/LINK_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_dir/LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.18/Help/prop_dir/LINK_OPTIONS.rst b/share/cmake-3.18/Help/prop_dir/LINK_OPTIONS.rst
new file mode 100644
index 0000000..f229ba6
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_dir/LINK_OPTIONS.rst
@@ -0,0 +1,17 @@
+LINK_OPTIONS
+------------
+
+List of options to use for the link step of shared library, module
+and executable targets as well as the device link step.
+
+This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
+given so far to the :command:`add_link_options` command.
+
+This property is used to initialize the :prop_tgt:`LINK_OPTIONS` target
+property when a target is created, which is used by the generators to set
+the options for the compiler.
+
+Contents of ``LINK_OPTIONS`` may use "generator expressions" with the
+syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
+for available expressions. See the :manual:`cmake-buildsystem(7)` manual
+for more on defining buildsystem properties.
diff --git a/share/cmake-3.17/Help/prop_dir/LISTFILE_STACK.rst b/share/cmake-3.18/Help/prop_dir/LISTFILE_STACK.rst
index 22ec4b6..22ec4b6 100644
--- a/share/cmake-3.17/Help/prop_dir/LISTFILE_STACK.rst
+++ b/share/cmake-3.18/Help/prop_dir/LISTFILE_STACK.rst
diff --git a/share/cmake-3.17/Help/prop_dir/MACROS.rst b/share/cmake-3.18/Help/prop_dir/MACROS.rst
index 245cc1b..245cc1b 100644
--- a/share/cmake-3.17/Help/prop_dir/MACROS.rst
+++ b/share/cmake-3.18/Help/prop_dir/MACROS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/PARENT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_dir/PARENT_DIRECTORY.rst
index 3bc5824..3bc5824 100644
--- a/share/cmake-3.17/Help/prop_dir/PARENT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_dir/PARENT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
index 342d0ae..342d0ae 100644
--- a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
+++ b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
index 93d1e01..93d1e01 100644
--- a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
+++ b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_LINK.rst b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_LINK.rst
index 3cfb236..3cfb236 100644
--- a/share/cmake-3.17/Help/prop_dir/RULE_LAUNCH_LINK.rst
+++ b/share/cmake-3.18/Help/prop_dir/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.17/Help/prop_dir/SOURCE_DIR.rst b/share/cmake-3.18/Help/prop_dir/SOURCE_DIR.rst
index ac98c3b..ac98c3b 100644
--- a/share/cmake-3.17/Help/prop_dir/SOURCE_DIR.rst
+++ b/share/cmake-3.18/Help/prop_dir/SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_dir/SUBDIRECTORIES.rst b/share/cmake-3.18/Help/prop_dir/SUBDIRECTORIES.rst
index 6a0ac80..6a0ac80 100644
--- a/share/cmake-3.17/Help/prop_dir/SUBDIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_dir/SUBDIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/TESTS.rst b/share/cmake-3.18/Help/prop_dir/TESTS.rst
index 1c9f6e5..1c9f6e5 100644
--- a/share/cmake-3.17/Help/prop_dir/TESTS.rst
+++ b/share/cmake-3.18/Help/prop_dir/TESTS.rst
diff --git a/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILE.rst b/share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILE.rst
index 31b2382..31b2382 100644
--- a/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILE.rst
+++ b/share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILES.rst b/share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILES.rst
index c3e4602..c3e4602 100644
--- a/share/cmake-3.17/Help/prop_dir/TEST_INCLUDE_FILES.rst
+++ b/share/cmake-3.18/Help/prop_dir/TEST_INCLUDE_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/VARIABLES.rst b/share/cmake-3.18/Help/prop_dir/VARIABLES.rst
index 0328295..0328295 100644
--- a/share/cmake-3.17/Help/prop_dir/VARIABLES.rst
+++ b/share/cmake-3.18/Help/prop_dir/VARIABLES.rst
diff --git a/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst b/share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
index b65db99..b65db99 100644
--- a/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
+++ b/share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_POST_section.rst
diff --git a/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst b/share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
index 7f8bf61..7f8bf61 100644
--- a/share/cmake-3.17/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
+++ b/share/cmake-3.18/Help/prop_dir/VS_GLOBAL_SECTION_PRE_section.rst
diff --git a/share/cmake-3.17/Help/prop_dir/VS_STARTUP_PROJECT.rst b/share/cmake-3.18/Help/prop_dir/VS_STARTUP_PROJECT.rst
index 2680dfa..2680dfa 100644
--- a/share/cmake-3.17/Help/prop_dir/VS_STARTUP_PROJECT.rst
+++ b/share/cmake-3.18/Help/prop_dir/VS_STARTUP_PROJECT.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst b/share/cmake-3.18/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
index 19775ff..19775ff 100644
--- a/share/cmake-3.17/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst b/share/cmake-3.18/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
index d294eb1..d294eb1 100644
--- a/share/cmake-3.17/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
+++ b/share/cmake-3.18/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst b/share/cmake-3.18/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
index 0b747b2..0b747b2 100644
--- a/share/cmake-3.17/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
+++ b/share/cmake-3.18/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst b/share/cmake-3.18/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
index 2455dc7..2455dc7 100644
--- a/share/cmake-3.17/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
+++ b/share/cmake-3.18/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst b/share/cmake-3.18/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
index 17666e4..17666e4 100644
--- a/share/cmake-3.17/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
+++ b/share/cmake-3.18/Help/prop_gbl/AUTOMOC_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst b/share/cmake-3.18/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
index 65ea95b..65ea95b 100644
--- a/share/cmake-3.17/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst
+++ b/share/cmake-3.18/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.18/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst
index 44e37fe..44e37fe 100644
--- a/share/cmake-3.17/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/CMAKE_CUDA_KNOWN_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
index b921c6b..b921c6b 100644
--- a/share/cmake-3.17/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
index e5f896e..e5f896e 100644
--- a/share/cmake-3.17/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/CMAKE_C_KNOWN_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/CMAKE_ROLE.rst b/share/cmake-3.18/Help/prop_gbl/CMAKE_ROLE.rst
index 27512fa..27512fa 100644
--- a/share/cmake-3.17/Help/prop_gbl/CMAKE_ROLE.rst
+++ b/share/cmake-3.18/Help/prop_gbl/CMAKE_ROLE.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst b/share/cmake-3.18/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
index fec6fda..fec6fda 100644
--- a/share/cmake-3.17/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/DEBUG_CONFIGURATIONS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/DISABLED_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/DISABLED_FEATURES.rst
index 882bbfa..882bbfa 100644
--- a/share/cmake-3.17/Help/prop_gbl/DISABLED_FEATURES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/DISABLED_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst b/share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
index 50c41a9..50c41a9 100644
--- a/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_CPROJECT_CONTENTS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst b/share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
index a46575f..a46575f 100644
--- a/share/cmake-3.17/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/ECLIPSE_EXTRA_NATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ENABLED_FEATURES.rst b/share/cmake-3.18/Help/prop_gbl/ENABLED_FEATURES.rst
index acbb3d0..acbb3d0 100644
--- a/share/cmake-3.17/Help/prop_gbl/ENABLED_FEATURES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/ENABLED_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/ENABLED_LANGUAGES.rst b/share/cmake-3.18/Help/prop_gbl/ENABLED_LANGUAGES.rst
index 43e3c09..43e3c09 100644
--- a/share/cmake-3.17/Help/prop_gbl/ENABLED_LANGUAGES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/ENABLED_LANGUAGES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
index 8396026..8396026 100644
--- a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
index ed343ba..ed343ba 100644
--- a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
index b87b09b..b87b09b 100644
--- a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
index beb94ac..beb94ac 100644
--- a/share/cmake-3.17/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
+++ b/share/cmake-3.18/Help/prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst b/share/cmake-3.18/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
index b8ec8a6..b8ec8a6 100644
--- a/share/cmake-3.17/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_gbl/GENERATOR_IS_MULTI_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst b/share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
index 832503b..832503b 100644
--- a/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
+++ b/share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst b/share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
index d10661e..d10661e 100644
--- a/share/cmake-3.17/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/GLOBAL_DEPENDS_NO_CYCLES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/IN_TRY_COMPILE.rst b/share/cmake-3.18/Help/prop_gbl/IN_TRY_COMPILE.rst
index fd2d2e1..fd2d2e1 100644
--- a/share/cmake-3.17/Help/prop_gbl/IN_TRY_COMPILE.rst
+++ b/share/cmake-3.18/Help/prop_gbl/IN_TRY_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/JOB_POOLS.rst b/share/cmake-3.18/Help/prop_gbl/JOB_POOLS.rst
index 21da466..21da466 100644
--- a/share/cmake-3.17/Help/prop_gbl/JOB_POOLS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/JOB_POOLS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/PACKAGES_FOUND.rst b/share/cmake-3.18/Help/prop_gbl/PACKAGES_FOUND.rst
index 61cce1f..61cce1f 100644
--- a/share/cmake-3.17/Help/prop_gbl/PACKAGES_FOUND.rst
+++ b/share/cmake-3.18/Help/prop_gbl/PACKAGES_FOUND.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/PACKAGES_NOT_FOUND.rst b/share/cmake-3.18/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
index ca3c5ba..ca3c5ba 100644
--- a/share/cmake-3.17/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
+++ b/share/cmake-3.18/Help/prop_gbl/PACKAGES_NOT_FOUND.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst b/share/cmake-3.18/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
index bf8c9a3..bf8c9a3 100644
--- a/share/cmake-3.17/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
+++ b/share/cmake-3.18/Help/prop_gbl/PREDEFINED_TARGETS_FOLDER.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst b/share/cmake-3.18/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
index 29ba365..29ba365 100644
--- a/share/cmake-3.17/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/REPORT_UNDEFINED_PROPERTIES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
index e0df878..e0df878 100644
--- a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
+++ b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
index b20c59b..b20c59b 100644
--- a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
+++ b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_LINK.rst b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_LINK.rst
index 567bb68..567bb68 100644
--- a/share/cmake-3.17/Help/prop_gbl/RULE_LAUNCH_LINK.rst
+++ b/share/cmake-3.18/Help/prop_gbl/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/RULE_MESSAGES.rst b/share/cmake-3.18/Help/prop_gbl/RULE_MESSAGES.rst
index a9734a7..a9734a7 100644
--- a/share/cmake-3.17/Help/prop_gbl/RULE_MESSAGES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/RULE_MESSAGES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst b/share/cmake-3.18/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
index 930feba..930feba 100644
--- a/share/cmake-3.17/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/TARGET_MESSAGES.rst b/share/cmake-3.18/Help/prop_gbl/TARGET_MESSAGES.rst
index 275b074..275b074 100644
--- a/share/cmake-3.17/Help/prop_gbl/TARGET_MESSAGES.rst
+++ b/share/cmake-3.18/Help/prop_gbl/TARGET_MESSAGES.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst b/share/cmake-3.18/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
index f6e89fb..f6e89fb 100644
--- a/share/cmake-3.17/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/USE_FOLDERS.rst b/share/cmake-3.18/Help/prop_gbl/USE_FOLDERS.rst
index 5919723..5919723 100644
--- a/share/cmake-3.17/Help/prop_gbl/USE_FOLDERS.rst
+++ b/share/cmake-3.18/Help/prop_gbl/USE_FOLDERS.rst
diff --git a/share/cmake-3.17/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst b/share/cmake-3.18/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
index 9500443..9500443 100644
--- a/share/cmake-3.17/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
+++ b/share/cmake-3.18/Help/prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst b/share/cmake-3.18/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
index 729ab60..729ab60 100644
--- a/share/cmake-3.17/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
+++ b/share/cmake-3.18/Help/prop_inst/CPACK_DESKTOP_SHORTCUTS.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst b/share/cmake-3.18/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
index 4789e25..4789e25 100644
--- a/share/cmake-3.17/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
+++ b/share/cmake-3.18/Help/prop_inst/CPACK_NEVER_OVERWRITE.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_PERMANENT.rst b/share/cmake-3.18/Help/prop_inst/CPACK_PERMANENT.rst
index 985de0d..985de0d 100644
--- a/share/cmake-3.17/Help/prop_inst/CPACK_PERMANENT.rst
+++ b/share/cmake-3.18/Help/prop_inst/CPACK_PERMANENT.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst b/share/cmake-3.18/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
index d9208b9..d9208b9 100644
--- a/share/cmake-3.17/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
+++ b/share/cmake-3.18/Help/prop_inst/CPACK_STARTUP_SHORTCUTS.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst b/share/cmake-3.18/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
index 092334a..092334a 100644
--- a/share/cmake-3.17/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
+++ b/share/cmake-3.18/Help/prop_inst/CPACK_START_MENU_SHORTCUTS.rst
diff --git a/share/cmake-3.17/Help/prop_inst/CPACK_WIX_ACL.rst b/share/cmake-3.18/Help/prop_inst/CPACK_WIX_ACL.rst
index c88f426..c88f426 100644
--- a/share/cmake-3.17/Help/prop_inst/CPACK_WIX_ACL.rst
+++ b/share/cmake-3.18/Help/prop_inst/CPACK_WIX_ACL.rst
diff --git a/share/cmake-3.17/Help/prop_sf/ABSTRACT.rst b/share/cmake-3.18/Help/prop_sf/ABSTRACT.rst
index 339d115..339d115 100644
--- a/share/cmake-3.17/Help/prop_sf/ABSTRACT.rst
+++ b/share/cmake-3.18/Help/prop_sf/ABSTRACT.rst
diff --git a/share/cmake-3.17/Help/prop_sf/AUTORCC_OPTIONS.rst b/share/cmake-3.18/Help/prop_sf/AUTORCC_OPTIONS.rst
index 2bec033..2bec033 100644
--- a/share/cmake-3.17/Help/prop_sf/AUTORCC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_sf/AUTORCC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/AUTOUIC_OPTIONS.rst b/share/cmake-3.18/Help/prop_sf/AUTOUIC_OPTIONS.rst
index e2f47ec..e2f47ec 100644
--- a/share/cmake-3.17/Help/prop_sf/AUTOUIC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_sf/AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS.rst b/share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS.rst
index 6317690..6317690 100644
--- a/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS.rst
+++ b/share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
index ec867b6..ec867b6 100644
--- a/share/cmake-3.17/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_sf/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_sf/COMPILE_FLAGS.rst b/share/cmake-3.18/Help/prop_sf/COMPILE_FLAGS.rst
index c211b89..c211b89 100644
--- a/share/cmake-3.17/Help/prop_sf/COMPILE_FLAGS.rst
+++ b/share/cmake-3.18/Help/prop_sf/COMPILE_FLAGS.rst
diff --git a/share/cmake-3.18/Help/prop_sf/COMPILE_OPTIONS.rst b/share/cmake-3.18/Help/prop_sf/COMPILE_OPTIONS.rst
new file mode 100644
index 0000000..537dcec
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/COMPILE_OPTIONS.rst
@@ -0,0 +1,32 @@
+COMPILE_OPTIONS
+---------------
+
+List of additional options to pass to the compiler.
+
+This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of options
+and will be added to the list of compile flags when this
+source file builds.
+
+Contents of ``COMPILE_OPTIONS`` may use "generator expressions" with the
+syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
+for available expressions. However, :generator:`Xcode`
+does not support per-config per-source settings, so expressions
+that depend on the build configuration are not allowed with that
+generator.
+
+Usage example:
+
+.. code-block:: cmake
+
+ set_source_files_properties(foo.cpp PROPERTIES COMPILE_OPTIONS "-Wno-unused-parameter;-Wno-missing-field-initializer")
+
+Related properties:
+
+* Prefer this property over :prop_sf:`COMPILE_FLAGS`.
+* Use :prop_sf:`COMPILE_DEFINITIONS` to pass additional preprocessor definitions.
+* Use :prop_sf:`INCLUDE_DIRECTORIES` to pass additional include directories.
+
+Related commands:
+
+* :command:`add_compile_options` for directory-wide settings
+* :command:`target_compile_options` for target-specific settings
diff --git a/share/cmake-3.17/Help/prop_sf/EXTERNAL_OBJECT.rst b/share/cmake-3.18/Help/prop_sf/EXTERNAL_OBJECT.rst
index 351c04d..351c04d 100644
--- a/share/cmake-3.17/Help/prop_sf/EXTERNAL_OBJECT.rst
+++ b/share/cmake-3.18/Help/prop_sf/EXTERNAL_OBJECT.rst
diff --git a/share/cmake-3.18/Help/prop_sf/Fortran_FORMAT.rst b/share/cmake-3.18/Help/prop_sf/Fortran_FORMAT.rst
new file mode 100644
index 0000000..ef33926
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/Fortran_FORMAT.rst
@@ -0,0 +1,12 @@
+Fortran_FORMAT
+--------------
+
+Set to ``FIXED`` or ``FREE`` to indicate the Fortran source layout.
+
+This property tells CMake whether a given Fortran source file uses
+fixed-format or free-format. CMake will pass the corresponding format flag
+to the compiler. Consider using the target-wide :prop_tgt:`Fortran_FORMAT`
+property if all source files in a target share the same format.
+
+.. note:: For some compilers, ``NAG``, ``PGI`` and ``Solaris Studio``,
+ setting this to ``OFF`` will have no effect.
diff --git a/share/cmake-3.18/Help/prop_sf/Fortran_PREPROCESS.rst b/share/cmake-3.18/Help/prop_sf/Fortran_PREPROCESS.rst
new file mode 100644
index 0000000..25ea827
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/Fortran_PREPROCESS.rst
@@ -0,0 +1,17 @@
+Fortran_PREPROCESS
+------------------
+
+Control whether the Fortran source file should be unconditionally preprocessed.
+
+If unset or empty, rely on the compiler to determine whether the file
+should be preprocessed. If explicitly set to ``OFF`` then the file
+does not need to be preprocessed. If explicitly set to ``ON``, then
+the file does need to be preprocessed as part of the compilation step.
+
+When using the :generator:`Ninja` generator, all source files are
+first preprocessed in order to generate module dependency
+information. Setting this property to ``OFF`` will make ``Ninja``
+skip this step.
+
+Consider using the target-wide :prop_tgt:`Fortran_PREPROCESS` property
+if all source files in a target need to be preprocessed.
diff --git a/share/cmake-3.17/Help/prop_sf/GENERATED.rst b/share/cmake-3.18/Help/prop_sf/GENERATED.rst
index 48ff70c..48ff70c 100644
--- a/share/cmake-3.17/Help/prop_sf/GENERATED.rst
+++ b/share/cmake-3.18/Help/prop_sf/GENERATED.rst
diff --git a/share/cmake-3.17/Help/prop_sf/HEADER_FILE_ONLY.rst b/share/cmake-3.18/Help/prop_sf/HEADER_FILE_ONLY.rst
index 71d62ae..71d62ae 100644
--- a/share/cmake-3.17/Help/prop_sf/HEADER_FILE_ONLY.rst
+++ b/share/cmake-3.18/Help/prop_sf/HEADER_FILE_ONLY.rst
diff --git a/share/cmake-3.17/Help/prop_sf/INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_sf/INCLUDE_DIRECTORIES.rst
index 23de70e..23de70e 100644
--- a/share/cmake-3.17/Help/prop_sf/INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_sf/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_sf/KEEP_EXTENSION.rst b/share/cmake-3.18/Help/prop_sf/KEEP_EXTENSION.rst
index a32f968..a32f968 100644
--- a/share/cmake-3.17/Help/prop_sf/KEEP_EXTENSION.rst
+++ b/share/cmake-3.18/Help/prop_sf/KEEP_EXTENSION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/LABELS.rst b/share/cmake-3.18/Help/prop_sf/LABELS.rst
index d0d2a0a..d0d2a0a 100644
--- a/share/cmake-3.17/Help/prop_sf/LABELS.rst
+++ b/share/cmake-3.18/Help/prop_sf/LABELS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/LANGUAGE.rst b/share/cmake-3.18/Help/prop_sf/LANGUAGE.rst
index 88d438e..88d438e 100644
--- a/share/cmake-3.17/Help/prop_sf/LANGUAGE.rst
+++ b/share/cmake-3.18/Help/prop_sf/LANGUAGE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/LOCATION.rst b/share/cmake-3.18/Help/prop_sf/LOCATION.rst
index 252d680..252d680 100644
--- a/share/cmake-3.17/Help/prop_sf/LOCATION.rst
+++ b/share/cmake-3.18/Help/prop_sf/LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst b/share/cmake-3.18/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
index d185d91..d185d91 100644
--- a/share/cmake-3.17/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
+++ b/share/cmake-3.18/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/OBJECT_DEPENDS.rst b/share/cmake-3.18/Help/prop_sf/OBJECT_DEPENDS.rst
index aaff956..aaff956 100644
--- a/share/cmake-3.17/Help/prop_sf/OBJECT_DEPENDS.rst
+++ b/share/cmake-3.18/Help/prop_sf/OBJECT_DEPENDS.rst
diff --git a/share/cmake-3.18/Help/prop_sf/OBJECT_OUTPUTS.rst b/share/cmake-3.18/Help/prop_sf/OBJECT_OUTPUTS.rst
new file mode 100644
index 0000000..3e799ed
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/OBJECT_OUTPUTS.rst
@@ -0,0 +1,12 @@
+OBJECT_OUTPUTS
+--------------
+
+Additional outputs for a :generator:`Ninja` or :ref:`Makefile Generators` rule.
+
+Additional outputs created by compilation of this source file. If any
+of these outputs is missing the object will be recompiled. This is
+supported only on the :generator:`Ninja` and :ref:`Makefile Generators`
+and will be ignored on other generators.
+
+This property supports
+:manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOGEN.rst b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOGEN.rst
index f31185a..f31185a 100644
--- a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOGEN.rst
+++ b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOGEN.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOMOC.rst b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOMOC.rst
index a929448..a929448 100644
--- a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOMOC.rst
+++ b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOMOC.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_AUTORCC.rst b/share/cmake-3.18/Help/prop_sf/SKIP_AUTORCC.rst
index bccccfc..bccccfc 100644
--- a/share/cmake-3.17/Help/prop_sf/SKIP_AUTORCC.rst
+++ b/share/cmake-3.18/Help/prop_sf/SKIP_AUTORCC.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOUIC.rst b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOUIC.rst
index 8c962db..8c962db 100644
--- a/share/cmake-3.17/Help/prop_sf/SKIP_AUTOUIC.rst
+++ b/share/cmake-3.18/Help/prop_sf/SKIP_AUTOUIC.rst
diff --git a/share/cmake-3.18/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
new file mode 100644
index 0000000..0031da3
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/SKIP_PRECOMPILE_HEADERS.rst
@@ -0,0 +1,13 @@
+SKIP_PRECOMPILE_HEADERS
+-----------------------
+
+Is this source file skipped by :prop_tgt:`PRECOMPILE_HEADERS` feature.
+
+This property helps with build problems that one would run into
+when using the :prop_tgt:`PRECOMPILE_HEADERS` feature.
+
+One example would be the usage of Objective-C (``*.m``) files, and
+Objective-C++ (``*.mm``) files, which lead to compilation failure
+because they are treated (in case of Ninja / Makefile generator)
+as C, and CXX respectively. The precompile headers are not
+compatible between languages.
diff --git a/share/cmake-3.17/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst b/share/cmake-3.18/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
index 6d1e60d..6d1e60d 100644
--- a/share/cmake-3.17/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
+++ b/share/cmake-3.18/Help/prop_sf/SKIP_UNITY_BUILD_INCLUSION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/SYMBOLIC.rst b/share/cmake-3.18/Help/prop_sf/SYMBOLIC.rst
index 8bebe30..8bebe30 100644
--- a/share/cmake-3.17/Help/prop_sf/SYMBOLIC.rst
+++ b/share/cmake-3.18/Help/prop_sf/SYMBOLIC.rst
diff --git a/share/cmake-3.17/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst b/share/cmake-3.18/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
index faac2df..faac2df 100644
--- a/share/cmake-3.17/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
+++ b/share/cmake-3.18/Help/prop_sf/Swift_DEPENDENCIES_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst b/share/cmake-3.18/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
index 5bf5d59..5bf5d59 100644
--- a/share/cmake-3.17/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
+++ b/share/cmake-3.18/Help/prop_sf/Swift_DIAGNOSTICS_FILE.rst
diff --git a/share/cmake-3.18/Help/prop_sf/UNITY_GROUP.rst b/share/cmake-3.18/Help/prop_sf/UNITY_GROUP.rst
new file mode 100644
index 0000000..ec6b0f6
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/UNITY_GROUP.rst
@@ -0,0 +1,5 @@
+UNITY_GROUP
+-----------
+
+This property controls which *bucket* the source will be part of when
+the :prop_tgt:`UNITY_BUILD_MODE` is set to ``GROUP``.
diff --git a/share/cmake-3.17/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst b/share/cmake-3.18/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
index 16c8d83..16c8d83 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_COPY_TO_OUT_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_CSHARP_tagname.rst b/share/cmake-3.18/Help/prop_sf/VS_CSHARP_tagname.rst
index 91c4a06..91c4a06 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_CSHARP_tagname.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_CSHARP_tagname.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst b/share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
index 6a38478..6a38478 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_CONTENT.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst b/share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
index 2ce22fc..2ce22fc 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_DEPLOYMENT_LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst b/share/cmake-3.18/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
index db470ef..db470ef 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_INCLUDE_IN_VSIX.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_RESOURCE_GENERATOR.rst b/share/cmake-3.18/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
index 97e5aac..97e5aac 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_RESOURCE_GENERATOR.rst
diff --git a/share/cmake-3.18/Help/prop_sf/VS_SETTINGS.rst b/share/cmake-3.18/Help/prop_sf/VS_SETTINGS.rst
new file mode 100644
index 0000000..50034fb
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_sf/VS_SETTINGS.rst
@@ -0,0 +1,18 @@
+VS_SETTINGS
+-----------
+
+Set any item metadata on a non-built file.
+
+Takes a list of ``Key=Value`` pairs. Tells the Visual Studio generator to set
+``Key`` to ``Value`` as item metadata on the file.
+
+For example:
+
+.. code-block:: cmake
+
+ set_property(SOURCE file.hlsl PROPERTY VS_SETTINGS "Key=Value" "Key2=Value2")
+
+will set ``Key`` to ``Value`` and ``Key2`` to ``Value2`` on the
+``file.hlsl`` item as metadata.
+
+:manual:`Generator expressions <cmake-generator-expressions(7)>` are supported.
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
index 446dd26..446dd26 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_DISABLE_OPTIMIZATIONS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
index c0e60a3..c0e60a3 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_ENABLE_DEBUG.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
index fe3471f..fe3471f 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_ENTRYPOINT.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_FLAGS.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_FLAGS.rst
index 0a53afd..0a53afd 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_FLAGS.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_MODEL.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_MODEL.rst
index b1cf0df..b1cf0df 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_MODEL.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_MODEL.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
index 093bcc6..093bcc6 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_OBJECT_FILE_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
index e6763d3..e6763d3 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_OUTPUT_HEADER_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_TYPE.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_TYPE.rst
index f104837..f104837 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_TYPE.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst b/share/cmake-3.18/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
index 1a5e369..1a5e369 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_SHADER_VARIABLE_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_TOOL_OVERRIDE.rst b/share/cmake-3.18/Help/prop_sf/VS_TOOL_OVERRIDE.rst
index 8bdc5ca..8bdc5ca 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_TOOL_OVERRIDE.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_TOOL_OVERRIDE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/VS_XAML_TYPE.rst b/share/cmake-3.18/Help/prop_sf/VS_XAML_TYPE.rst
index 1a274ba..1a274ba 100644
--- a/share/cmake-3.17/Help/prop_sf/VS_XAML_TYPE.rst
+++ b/share/cmake-3.18/Help/prop_sf/VS_XAML_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/WRAP_EXCLUDE.rst b/share/cmake-3.18/Help/prop_sf/WRAP_EXCLUDE.rst
index 638ff03..638ff03 100644
--- a/share/cmake-3.17/Help/prop_sf/WRAP_EXCLUDE.rst
+++ b/share/cmake-3.18/Help/prop_sf/WRAP_EXCLUDE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst b/share/cmake-3.18/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
index b8cf946..b8cf946 100644
--- a/share/cmake-3.17/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
+++ b/share/cmake-3.18/Help/prop_sf/XCODE_EXPLICIT_FILE_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst b/share/cmake-3.18/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
index 4c93f44..4c93f44 100644
--- a/share/cmake-3.17/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
+++ b/share/cmake-3.18/Help/prop_sf/XCODE_FILE_ATTRIBUTES.rst
diff --git a/share/cmake-3.17/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst b/share/cmake-3.18/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
index b21891f..b21891f 100644
--- a/share/cmake-3.17/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
+++ b/share/cmake-3.18/Help/prop_sf/XCODE_LAST_KNOWN_FILE_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_test/ATTACHED_FILES.rst b/share/cmake-3.18/Help/prop_test/ATTACHED_FILES.rst
index 496d800..496d800 100644
--- a/share/cmake-3.17/Help/prop_test/ATTACHED_FILES.rst
+++ b/share/cmake-3.18/Help/prop_test/ATTACHED_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst b/share/cmake-3.18/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
index add54b2..add54b2 100644
--- a/share/cmake-3.17/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
+++ b/share/cmake-3.18/Help/prop_test/ATTACHED_FILES_ON_FAIL.rst
diff --git a/share/cmake-3.17/Help/prop_test/COST.rst b/share/cmake-3.18/Help/prop_test/COST.rst
index 9300d7b..9300d7b 100644
--- a/share/cmake-3.17/Help/prop_test/COST.rst
+++ b/share/cmake-3.18/Help/prop_test/COST.rst
diff --git a/share/cmake-3.18/Help/prop_test/DEPENDS.rst b/share/cmake-3.18/Help/prop_test/DEPENDS.rst
new file mode 100644
index 0000000..5aa36b4
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_test/DEPENDS.rst
@@ -0,0 +1,22 @@
+DEPENDS
+-------
+
+Specifies that this test should only be run after the specified list of tests.
+
+Set this to a list of tests that must finish before this test is run. The
+results of those tests are not considered, the dependency relationship is
+purely for order of execution (i.e. it is really just a *run after*
+relationship). Consider using test fixtures with setup tests if a dependency
+with successful completion is required (see :prop_test:`FIXTURES_REQUIRED`).
+
+Examples
+~~~~~~~~
+
+.. code-block:: cmake
+
+ add_test(NAME baseTest1 ...)
+ add_test(NAME baseTest2 ...)
+ add_test(NAME dependsTest12 ...)
+
+ set_tests_properties(dependsTest12 PROPERTIES DEPENDS "baseTest1;baseTest2")
+ # dependsTest12 runs after baseTest1 and baseTest2, even if they fail
diff --git a/share/cmake-3.17/Help/prop_test/DISABLED.rst b/share/cmake-3.18/Help/prop_test/DISABLED.rst
index 1d469e8..1d469e8 100644
--- a/share/cmake-3.17/Help/prop_test/DISABLED.rst
+++ b/share/cmake-3.18/Help/prop_test/DISABLED.rst
diff --git a/share/cmake-3.17/Help/prop_test/ENVIRONMENT.rst b/share/cmake-3.18/Help/prop_test/ENVIRONMENT.rst
index 102c792..102c792 100644
--- a/share/cmake-3.17/Help/prop_test/ENVIRONMENT.rst
+++ b/share/cmake-3.18/Help/prop_test/ENVIRONMENT.rst
diff --git a/share/cmake-3.17/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst b/share/cmake-3.18/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
index facf902..facf902 100644
--- a/share/cmake-3.17/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
+++ b/share/cmake-3.18/Help/prop_test/FAIL_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.17/Help/prop_test/FIXTURES_CLEANUP.rst b/share/cmake-3.18/Help/prop_test/FIXTURES_CLEANUP.rst
index 3075b4d..3075b4d 100644
--- a/share/cmake-3.17/Help/prop_test/FIXTURES_CLEANUP.rst
+++ b/share/cmake-3.18/Help/prop_test/FIXTURES_CLEANUP.rst
diff --git a/share/cmake-3.17/Help/prop_test/FIXTURES_REQUIRED.rst b/share/cmake-3.18/Help/prop_test/FIXTURES_REQUIRED.rst
index e3f60c4..e3f60c4 100644
--- a/share/cmake-3.17/Help/prop_test/FIXTURES_REQUIRED.rst
+++ b/share/cmake-3.18/Help/prop_test/FIXTURES_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_test/FIXTURES_SETUP.rst b/share/cmake-3.18/Help/prop_test/FIXTURES_SETUP.rst
index fdb21cc..fdb21cc 100644
--- a/share/cmake-3.17/Help/prop_test/FIXTURES_SETUP.rst
+++ b/share/cmake-3.18/Help/prop_test/FIXTURES_SETUP.rst
diff --git a/share/cmake-3.17/Help/prop_test/LABELS.rst b/share/cmake-3.18/Help/prop_test/LABELS.rst
index 8d75570..8d75570 100644
--- a/share/cmake-3.17/Help/prop_test/LABELS.rst
+++ b/share/cmake-3.18/Help/prop_test/LABELS.rst
diff --git a/share/cmake-3.17/Help/prop_test/MEASUREMENT.rst b/share/cmake-3.18/Help/prop_test/MEASUREMENT.rst
index de459ed..de459ed 100644
--- a/share/cmake-3.17/Help/prop_test/MEASUREMENT.rst
+++ b/share/cmake-3.18/Help/prop_test/MEASUREMENT.rst
diff --git a/share/cmake-3.17/Help/prop_test/PASS_REGULAR_EXPRESSION.rst b/share/cmake-3.18/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
index 0cd6215..0cd6215 100644
--- a/share/cmake-3.17/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
+++ b/share/cmake-3.18/Help/prop_test/PASS_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.17/Help/prop_test/PROCESSORS.rst b/share/cmake-3.18/Help/prop_test/PROCESSORS.rst
index a927c10..a927c10 100644
--- a/share/cmake-3.17/Help/prop_test/PROCESSORS.rst
+++ b/share/cmake-3.18/Help/prop_test/PROCESSORS.rst
diff --git a/share/cmake-3.17/Help/prop_test/PROCESSOR_AFFINITY.rst b/share/cmake-3.18/Help/prop_test/PROCESSOR_AFFINITY.rst
index 38ec179..38ec179 100644
--- a/share/cmake-3.17/Help/prop_test/PROCESSOR_AFFINITY.rst
+++ b/share/cmake-3.18/Help/prop_test/PROCESSOR_AFFINITY.rst
diff --git a/share/cmake-3.18/Help/prop_test/REQUIRED_FILES.rst b/share/cmake-3.18/Help/prop_test/REQUIRED_FILES.rst
new file mode 100644
index 0000000..baf209c
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_test/REQUIRED_FILES.rst
@@ -0,0 +1,38 @@
+REQUIRED_FILES
+--------------
+
+List of files required to run the test. The filenames are relative to the
+test :prop_test:`WORKING_DIRECTORY` unless an absolute path is specified.
+
+If set to a list of files, the test will not be run unless all of the
+files exist.
+
+Examples
+~~~~~~~~
+
+Suppose that ``test.txt`` is created by test ``baseTest`` and ``none.txt``
+does not exist:
+
+.. code-block:: cmake
+
+ add_test(NAME baseTest ...) # Assumed to create test.txt
+ add_test(NAME fileTest ...)
+
+ # The following ensures that if baseTest is successful, test.txt will
+ # have been created before fileTest is run
+ set_tests_properties(fileTest PROPERTIES
+ DEPENDS baseTest
+ REQUIRED_FILES test.txt
+ )
+
+ add_test(NAME notRunTest ...)
+
+ # The following makes notRunTest depend on two files. Nothing creates
+ # the none.txt file, so notRunTest will fail with status "Not Run".
+ set_tests_properties(notRunTest PROPERTIES
+ REQUIRED_FILES "test.txt;none.txt"
+ )
+
+The above example demonstrates how ``REQUIRED_FILES`` works, but it is not the
+most robust way to implement test ordering with failure detection. For that,
+test fixtures are a better alternative (see :prop_test:`FIXTURES_REQUIRED`).
diff --git a/share/cmake-3.17/Help/prop_test/RESOURCE_GROUPS.rst b/share/cmake-3.18/Help/prop_test/RESOURCE_GROUPS.rst
index 63c56ce..63c56ce 100644
--- a/share/cmake-3.17/Help/prop_test/RESOURCE_GROUPS.rst
+++ b/share/cmake-3.18/Help/prop_test/RESOURCE_GROUPS.rst
diff --git a/share/cmake-3.17/Help/prop_test/RESOURCE_LOCK.rst b/share/cmake-3.18/Help/prop_test/RESOURCE_LOCK.rst
index 8b13a01..8b13a01 100644
--- a/share/cmake-3.17/Help/prop_test/RESOURCE_LOCK.rst
+++ b/share/cmake-3.18/Help/prop_test/RESOURCE_LOCK.rst
diff --git a/share/cmake-3.17/Help/prop_test/RUN_SERIAL.rst b/share/cmake-3.18/Help/prop_test/RUN_SERIAL.rst
index ab4c542..ab4c542 100644
--- a/share/cmake-3.17/Help/prop_test/RUN_SERIAL.rst
+++ b/share/cmake-3.18/Help/prop_test/RUN_SERIAL.rst
diff --git a/share/cmake-3.17/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst b/share/cmake-3.18/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
index 2c6d980..2c6d980 100644
--- a/share/cmake-3.17/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
+++ b/share/cmake-3.18/Help/prop_test/SKIP_REGULAR_EXPRESSION.rst
diff --git a/share/cmake-3.17/Help/prop_test/SKIP_RETURN_CODE.rst b/share/cmake-3.18/Help/prop_test/SKIP_RETURN_CODE.rst
index 23c4c62..23c4c62 100644
--- a/share/cmake-3.17/Help/prop_test/SKIP_RETURN_CODE.rst
+++ b/share/cmake-3.18/Help/prop_test/SKIP_RETURN_CODE.rst
diff --git a/share/cmake-3.17/Help/prop_test/TIMEOUT.rst b/share/cmake-3.18/Help/prop_test/TIMEOUT.rst
index d1cb90d..d1cb90d 100644
--- a/share/cmake-3.17/Help/prop_test/TIMEOUT.rst
+++ b/share/cmake-3.18/Help/prop_test/TIMEOUT.rst
diff --git a/share/cmake-3.17/Help/prop_test/TIMEOUT_AFTER_MATCH.rst b/share/cmake-3.18/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
index d607992..d607992 100644
--- a/share/cmake-3.17/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
+++ b/share/cmake-3.18/Help/prop_test/TIMEOUT_AFTER_MATCH.rst
diff --git a/share/cmake-3.17/Help/prop_test/WILL_FAIL.rst b/share/cmake-3.18/Help/prop_test/WILL_FAIL.rst
index f1f94a4..f1f94a4 100644
--- a/share/cmake-3.17/Help/prop_test/WILL_FAIL.rst
+++ b/share/cmake-3.18/Help/prop_test/WILL_FAIL.rst
diff --git a/share/cmake-3.17/Help/prop_test/WORKING_DIRECTORY.rst b/share/cmake-3.18/Help/prop_test/WORKING_DIRECTORY.rst
index 92a0409..92a0409 100644
--- a/share/cmake-3.17/Help/prop_test/WORKING_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_test/WORKING_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst b/share/cmake-3.18/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst
index 3b9d965..3b9d965 100644
--- a/share/cmake-3.17/Help/prop_tgt/ADDITIONAL_CLEAN_FILES.rst
+++ b/share/cmake-3.18/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.18/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst
index 15ddc0b..15ddc0b 100644
--- a/share/cmake-3.17/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AIX_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ALIASED_TARGET.rst b/share/cmake-3.18/Help/prop_tgt/ALIASED_TARGET.rst
index f9e6034..f9e6034 100644
--- a/share/cmake-3.17/Help/prop_tgt/ALIASED_TARGET.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ALIASED_TARGET.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/ALIAS_GLOBAL.rst b/share/cmake-3.18/Help/prop_tgt/ALIAS_GLOBAL.rst
new file mode 100644
index 0000000..8854f57
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/ALIAS_GLOBAL.rst
@@ -0,0 +1,17 @@
+ALIAS_GLOBAL
+------------
+
+Read-only property indicating of whether an :ref:`ALIAS target <Alias Targets>`
+is globally visible.
+
+The boolean value of this property is ``TRUE`` for aliases to
+:ref:`IMPORTED targets <Imported Targets>` created
+with the ``GLOBAL`` options to :command:`add_executable()` or
+:command:`add_library()`, ``FALSE`` otherwise. It is undefined for
+targets built within the project.
+
+.. note::
+
+ Promoting an :ref:`IMPORTED target <Imported Targets>` from ``LOCAL``
+ to ``GLOBAL`` scope by changing the value or :prop_tgt:`IMPORTED_GLOBAL`
+ target property do not change the scope of local aliases.
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
index af6b405..af6b405 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_ANT_ADDITIONAL_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_API.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_API.rst
index 63464d7..63464d7 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_API.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_API.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_API_MIN.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_API_MIN.rst
index 773ab3f..773ab3f 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_API_MIN.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_API_MIN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_ARCH.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_ARCH.rst
index 3e07e5a..3e07e5a 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_ARCH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_ARCH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
index 764a582..764a582 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_ASSETS_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_GUI.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_GUI.rst
index 92e2041..92e2041 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_GUI.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_GUI.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
index 42937c1..42937c1 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
index 54f0a8f..54f0a8f 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAR_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
index 90ef1ce..90ef1ce 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_JAVA_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
index 759a37b..759a37b 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
index d0cd29d..d0cd29d 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_NATIVE_LIB_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROCESS_MAX.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
index 847acae..847acae 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROCESS_MAX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD.rst
index dafc51e..dafc51e 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
index 0e929d1..0e929d1 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_PROGUARD_CONFIG_PATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
index 9533f1a..9533f1a 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_SECURE_PROPS_PATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
index 6361896..6361896 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_SKIP_ANT_STEP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ANDROID_STL_TYPE.rst b/share/cmake-3.18/Help/prop_tgt/ANDROID_STL_TYPE.rst
index 386e96e..386e96e 100644
--- a/share/cmake-3.17/Help/prop_tgt/ANDROID_STL_TYPE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ANDROID_STL_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
index 4221069..4221069 100644
--- a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
index 12f8bb7..12f8bb7 100644
--- a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
index 6150193..6150193 100644
--- a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
index 4f62eb9..4f62eb9 100644
--- a/share/cmake-3.17/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
index 909b14c..909b14c 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_BUILD_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
index 022bab5..022bab5 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_PARALLEL.rst
index 968b619..968b619 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_PARALLEL.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_PARALLEL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
index 92b52a3..92b52a3 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC.rst
index c18859b..c18859b 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOMOC.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOMOC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst
index 57a647f..57a647f 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_COMPILER_PREDEFINES.rst
+++ b/share/cmake-3.18/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.18/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
index 6eda26c..6eda26c 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_DEPEND_FILTERS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
index 6b66ce8..6b66ce8 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst
index 5329bba..5329bba 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MACRO_NAMES.rst
+++ b/share/cmake-3.18/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.18/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
index 330849b..330849b 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_MOC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
index 3e3059d..3e3059d 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTORCC.rst b/share/cmake-3.18/Help/prop_tgt/AUTORCC.rst
index 9a98f44..9a98f44 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTORCC.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTORCC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTORCC_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
index ca0fbd7..ca0fbd7 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTORCC_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/AUTORCC_OPTIONS.rst
index 5261aff..5261aff 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTORCC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTORCC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst b/share/cmake-3.18/Help/prop_tgt/AUTOUIC.rst
index cd24f5e..cd24f5e 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOUIC.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOUIC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
index 03bd554..03bd554 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_OPTIONS.rst
index 425ea1c..425ea1c 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
index 96d9f89..96d9f89 100644
--- a/share/cmake-3.17/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BINARY_DIR.rst b/share/cmake-3.18/Help/prop_tgt/BINARY_DIR.rst
index 246f7e6..246f7e6 100644
--- a/share/cmake-3.17/Help/prop_tgt/BINARY_DIR.rst
+++ b/share/cmake-3.18/Help/prop_tgt/BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/BUILD_RPATH.rst
index d978b94..d978b94 100644
--- a/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/BUILD_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst b/share/cmake-3.18/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
index 3378797..3378797 100644
--- a/share/cmake-3.17/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
+++ b/share/cmake-3.18/Help/prop_tgt/BUILD_RPATH_USE_ORIGIN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst b/share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
index bbb9a24..bbb9a24 100644
--- a/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
+++ b/share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
index 0244351..0244351 100644
--- a/share/cmake-3.17/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/BUILD_WITH_INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUNDLE.rst b/share/cmake-3.18/Help/prop_tgt/BUNDLE.rst
index c556ac3..c556ac3 100644
--- a/share/cmake-3.17/Help/prop_tgt/BUNDLE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/BUNDLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/BUNDLE_EXTENSION.rst b/share/cmake-3.18/Help/prop_tgt/BUNDLE_EXTENSION.rst
index 70de11c..70de11c 100644
--- a/share/cmake-3.17/Help/prop_tgt/BUNDLE_EXTENSION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/BUNDLE_EXTENSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst b/share/cmake-3.18/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
index 052ac6d..052ac6d 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMMON_LANGUAGE_RUNTIME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
index 6910367..6910367 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_BOOL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
index 298acf1..298acf1 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MAX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
index d5fd825..d5fd825 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_NUMBER_MIN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
index a0050b9..a0050b9 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPATIBLE_INTERFACE_STRING.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS.rst
index 059f913..059f913 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
index 84bd5e4..84bd5e4 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_DEFINITIONS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_FEATURES.rst
index 46aec4f..46aec4f 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_FEATURES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_FLAGS.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_FLAGS.rst
index 8fe651b..8fe651b 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_FLAGS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_FLAGS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_OPTIONS.rst
index 0cd6836..0cd6836 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME.rst
index 24a9f62..24a9f62 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
index e4077f5..e4077f5 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NOTE.txt b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NOTE.txt
index 43003d9..43003d9 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_NOTE.txt
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_NOTE.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
index 34f49be..34f49be 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
index f261756..f261756 100644
--- a/share/cmake-3.17/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
index a61c702..a61c702 100644
--- a/share/cmake-3.17/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CONFIG_OUTPUT_NAME.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/CONFIG_POSTFIX.rst b/share/cmake-3.18/Help/prop_tgt/CONFIG_POSTFIX.rst
new file mode 100644
index 0000000..5c2fbd7
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/CONFIG_POSTFIX.rst
@@ -0,0 +1,13 @@
+<CONFIG>_POSTFIX
+----------------
+
+Postfix to append to the target file name for configuration <CONFIG>.
+
+When building with configuration <CONFIG> the value of this property
+is appended to the target file name built on disk. For non-executable
+targets, this property is initialized by the value of the variable
+CMAKE_<CONFIG>_POSTFIX if it is set when a target is created. This
+property is ignored on the Mac for Frameworks and App Bundles.
+
+For macOS see also the :prop_tgt:`FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>`
+target property.
diff --git a/share/cmake-3.17/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst b/share/cmake-3.18/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
index 87c5978..87c5978 100644
--- a/share/cmake-3.17/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CROSSCOMPILING_EMULATOR.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/CUDA_ARCHITECTURES.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_ARCHITECTURES.rst
new file mode 100644
index 0000000..bae3c6f
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_ARCHITECTURES.rst
@@ -0,0 +1,40 @@
+CUDA_ARCHITECTURES
+------------------
+
+List of architectures to generate device code for.
+
+An architecture can be suffixed by either ``-real`` or ``-virtual`` to specify
+the kind of architecture to generate code for.
+If no suffix is given then code is generated for both real and virtual
+architectures.
+
+A non-empty false value (e.g. ``OFF``) disables adding architectures.
+This is intended to support packagers and rare cases where full control
+over the passed flags is required.
+
+This property is initialized by the value of the :variable:`CMAKE_CUDA_ARCHITECTURES`
+variable if it is set when a target is created.
+
+The ``CUDA_ARCHITECTURES`` target property must be set to a non-empty value on targets
+that compile CUDA sources, or it is an error. See policy :policy:`CMP0104`.
+
+Examples
+^^^^^^^^
+
+.. code-block:: cmake
+
+ set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 35 50 72)
+
+Generates code for real and virtual architectures ``30``, ``50`` and ``72``.
+
+.. code-block:: cmake
+
+ set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)
+
+Generates code for real architecture ``70`` and virtual architecture ``72``.
+
+.. code-block:: cmake
+
+ set_property(TARGET tgt PROPERTY CUDA_ARCHITECTURES OFF)
+
+CMake will not pass any architecture flags to the compiler.
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_EXTENSIONS.rst
index 098ca3c..098ca3c 100644
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_PTX_COMPILATION.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
index 0ee372b..0ee372b 100644
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_PTX_COMPILATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst
index dae960f..dae960f 100644
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_RESOLVE_DEVICE_SYMBOLS.rst
+++ b/share/cmake-3.18/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.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
index a6d7050..a6d7050 100644
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY-VALUES.txt
diff --git a/share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_RUNTIME_LIBRARY.rst
new file mode 100644
index 0000000..11b344c
--- /dev/null
+++ b/share/cmake-3.18/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 that property is not set then CMake uses an appropriate default
+value based on the compiler 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.17/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
index d306d7f..d306d7f 100644
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_SEPARABLE_COMPILATION.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD.rst
new file mode 100644
index 0000000..6d6774e
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD.rst
@@ -0,0 +1,32 @@
+CUDA_STANDARD
+-------------
+
+The CUDA/C++ standard whose features are requested to build this target.
+
+This property specifies the CUDA/C++ standard whose features are requested
+to build this target. For some compilers, this results in adding a
+flag such as ``-std=gnu++11`` to the compile line.
+
+Supported values are ``98``, ``03``, ``11``, ``14``, ``17``, ``20``.
+
+If the value requested does not result in a compile flag being added for
+the compiler in use, a previous standard flag will be added instead. This
+means that using:
+
+.. code-block:: cmake
+
+ set_property(TARGET tgt PROPERTY CUDA_STANDARD 11)
+
+with a compiler which does not support ``-std=gnu++11`` or an equivalent
+flag will not result in an error or warning, but will instead add the
+``-std=gnu++98`` flag if supported. This "decay" behavior may be controlled
+with the :prop_tgt:`CUDA_STANDARD_REQUIRED` target property.
+Additionally, the :prop_tgt:`CUDA_EXTENSIONS` target property may be used to
+control whether compiler-specific extensions are enabled on a per-target basis.
+
+See the :manual:`cmake-compile-features(7)` manual for information on
+compile features and a list of supported compilers.
+
+This property is initialized by the value of
+the :variable:`CMAKE_CUDA_STANDARD` variable if it is set when a target
+is created.
diff --git a/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
index b2d5b28..b2d5b28 100644
--- a/share/cmake-3.17/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CUDA_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CXX_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/CXX_EXTENSIONS.rst
index 280bb3a..280bb3a 100644
--- a/share/cmake-3.17/Help/prop_tgt/CXX_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CXX_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/CXX_STANDARD.rst
index ccc0147..ccc0147 100644
--- a/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CXX_STANDARD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
index 697d7f6..697d7f6 100644
--- a/share/cmake-3.17/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/CXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/C_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/C_EXTENSIONS.rst
index 05b14ce..05b14ce 100644
--- a/share/cmake-3.17/Help/prop_tgt/C_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/C_EXTENSIONS.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/C_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/C_STANDARD.rst
new file mode 100644
index 0000000..6a05139
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/C_STANDARD.rst
@@ -0,0 +1,34 @@
+C_STANDARD
+----------
+
+The C standard whose features are requested to build this target.
+
+This property specifies the C standard whose features are requested
+to build this target. For some compilers, this results in adding a
+flag such as ``-std=gnu11`` to the compile line. For compilers that
+have no notion of a C standard level, such as all versions of
+MSVC known as of this version of CMake, this has no effect.
+
+Supported values are ``90``, ``99`` and ``11``.
+
+If the value requested does not result in a compile flag being added for
+the compiler in use, a previous standard flag will be added instead. This
+means that using:
+
+.. code-block:: cmake
+
+ set_property(TARGET tgt PROPERTY C_STANDARD 11)
+
+with a compiler which does not support ``-std=gnu11`` or an equivalent
+flag will not result in an error or warning, but will instead add the
+``-std=gnu99`` or ``-std=gnu90`` flag if supported. This "decay" behavior may
+be controlled with the :prop_tgt:`C_STANDARD_REQUIRED` target property.
+Additionally, the :prop_tgt:`C_EXTENSIONS` target property may be used to
+control whether compiler-specific extensions are enabled on a per-target basis.
+
+See the :manual:`cmake-compile-features(7)` manual for information on
+compile features and a list of supported compilers.
+
+This property is initialized by the value of
+the :variable:`CMAKE_C_STANDARD` variable if it is set when a target
+is created.
diff --git a/share/cmake-3.17/Help/prop_tgt/C_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/C_STANDARD_REQUIRED.rst
index acfad98..acfad98 100644
--- a/share/cmake-3.17/Help/prop_tgt/C_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/C_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEBUG_POSTFIX.rst b/share/cmake-3.18/Help/prop_tgt/DEBUG_POSTFIX.rst
index 04e312e..04e312e 100644
--- a/share/cmake-3.17/Help/prop_tgt/DEBUG_POSTFIX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/DEBUG_POSTFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEFINE_SYMBOL.rst b/share/cmake-3.18/Help/prop_tgt/DEFINE_SYMBOL.rst
index eb7f937..eb7f937 100644
--- a/share/cmake-3.17/Help/prop_tgt/DEFINE_SYMBOL.rst
+++ b/share/cmake-3.18/Help/prop_tgt/DEFINE_SYMBOL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst b/share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
index 5e9c191..5e9c191 100644
--- a/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_ADDITIONAL_FILES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
index 368768a..368768a 100644
--- a/share/cmake-3.17/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/DEPLOYMENT_REMOTE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst b/share/cmake-3.18/Help/prop_tgt/DEPRECATION.rst
index fef2e2e..fef2e2e 100644
--- a/share/cmake-3.17/Help/prop_tgt/DEPRECATION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/DEPRECATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
index 4cef023..4cef023 100644
--- a/share/cmake-3.17/Help/prop_tgt/DISABLE_PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.18/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.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst
index 8698eb6..8698eb6 100644
--- a/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst
+++ b/share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
index b33f4fb..b33f4fb 100644
--- a/share/cmake-3.17/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/DOTNET_TARGET_FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/ENABLE_EXPORTS.rst b/share/cmake-3.18/Help/prop_tgt/ENABLE_EXPORTS.rst
index 0b1064a..0b1064a 100644
--- a/share/cmake-3.17/Help/prop_tgt/ENABLE_EXPORTS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/ENABLE_EXPORTS.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_ALL.rst b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
new file mode 100644
index 0000000..c9ece22
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_ALL.rst
@@ -0,0 +1,21 @@
+EXCLUDE_FROM_ALL
+----------------
+
+Set this target property to a true (or false) value to exclude (or include)
+the target from the "all" target of the containing directory and its
+ancestors. If excluded, running e.g. ``make`` in the containing directory
+or its ancestors will not build the target by default.
+
+If this target property is not set then the target will be included in
+the "all" target of the containing directory. Furthermore, it will be
+included in the "all" target of its ancestor directories unless the
+:prop_dir:`EXCLUDE_FROM_ALL` directory property is set.
+
+With ``EXCLUDE_FROM_ALL`` set to false or not set at all, the target
+will be brought up to date as part of doing a ``make install`` or its
+equivalent for the CMake generator being used.
+
+If a target has ``EXCLUDE_FROM_ALL`` set to true, it may still be listed
+in an :command:`install(TARGETS)` command, but the user is responsible for
+ensuring that the target's build artifacts are not missing or outdated when
+an install is performed.
diff --git a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
index 664704b..664704b 100644
--- a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
index ad1021a..ad1021a 100644
--- a/share/cmake-3.17/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/EXCLUDE_FROM_DEFAULT_BUILD_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EXPORT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/EXPORT_NAME.rst
index 0e021d0..0e021d0 100644
--- a/share/cmake-3.17/Help/prop_tgt/EXPORT_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/EXPORT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EXPORT_PROPERTIES.rst b/share/cmake-3.18/Help/prop_tgt/EXPORT_PROPERTIES.rst
index bcf47a6..bcf47a6 100644
--- a/share/cmake-3.17/Help/prop_tgt/EXPORT_PROPERTIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/EXPORT_PROPERTIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/EchoString.rst b/share/cmake-3.18/Help/prop_tgt/EchoString.rst
index 352d062..352d062 100644
--- a/share/cmake-3.17/Help/prop_tgt/EchoString.rst
+++ b/share/cmake-3.18/Help/prop_tgt/EchoString.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/FOLDER.rst b/share/cmake-3.18/Help/prop_tgt/FOLDER.rst
index f6be9e6..f6be9e6 100644
--- a/share/cmake-3.17/Help/prop_tgt/FOLDER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/FOLDER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/FRAMEWORK.rst b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK.rst
index 3dff1be..3dff1be 100644
--- a/share/cmake-3.17/Help/prop_tgt/FRAMEWORK.rst
+++ b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst
new file mode 100644
index 0000000..243c0cd
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst
@@ -0,0 +1,26 @@
+FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>
+---------------------------------------
+
+Postfix to append to the framework file name for configuration ``<CONFIG>``,
+when using a multi-config generator (like Xcode and Ninja Multi-Config).
+
+When building with configuration ``<CONFIG>`` the value of this property
+is appended to the framework file name built on disk.
+
+For example, given a framework called ``my_fw``, a value of ``_debug``
+for the ``FRAMEWORK_MULTI_CONFIG_POSTFIX_DEBUG`` property, and
+``Debug;Release`` in :variable:`CMAKE_CONFIGURATION_TYPES`, the following
+relevant files would be created for the ``Debug`` and ``Release``
+configurations:
+
+- ``Release/my_fw.framework/my_fw``
+- ``Release/my_fw.framework/Versions/A/my_fw``
+- ``Debug/my_fw.framework/my_fw_debug``
+- ``Debug/my_fw.framework/Versions/A/my_fw_debug``
+
+For framework targets, this property is initialized by the value of the
+:variable:`CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>` variable if it
+is set when a target is created.
+
+This property is ignored for non-framework targets, and when using single
+config generators.
diff --git a/share/cmake-3.17/Help/prop_tgt/FRAMEWORK_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_VERSION.rst
index c2ae7b9..c2ae7b9 100644
--- a/share/cmake-3.17/Help/prop_tgt/FRAMEWORK_VERSION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Fortran_FORMAT.rst b/share/cmake-3.18/Help/prop_tgt/Fortran_FORMAT.rst
index 8704e5f..8704e5f 100644
--- a/share/cmake-3.17/Help/prop_tgt/Fortran_FORMAT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/Fortran_FORMAT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
index e061863..e061863 100644
--- a/share/cmake-3.17/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/Fortran_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/Fortran_PREPROCESS.rst b/share/cmake-3.18/Help/prop_tgt/Fortran_PREPROCESS.rst
new file mode 100644
index 0000000..47a15c0
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/Fortran_PREPROCESS.rst
@@ -0,0 +1,23 @@
+Fortran_PREPROCESS
+------------------
+
+Control whether the Fortran source file should be unconditionally
+preprocessed.
+
+If unset or empty, rely on the compiler to determine whether the file
+should be preprocessed. If explicitly set to ``OFF`` then the file does not
+need to be preprocessed. If explicitly set to ``ON``, then the file does
+need to be preprocessed as part of the compilation step.
+
+When using the :generator:`Ninja` generator, all source files are
+first preprocessed in order to generate module dependency
+information. Setting this property to ``OFF`` will make ``Ninja``
+skip this step.
+
+Use the source-specific :prop_sf:`Fortran_PREPROCESS` property if a single
+file needs to be preprocessed. If the variable
+:variable:`CMAKE_Fortran_PREPROCESS` is set when a target is created its
+value is used to initialize this property.
+
+.. note:: For some compilers, ``NAG``, ``PGI`` and ``Solaris Studio``,
+ setting this to ``OFF`` will have no effect.
diff --git a/share/cmake-3.17/Help/prop_tgt/GENERATOR_FILE_NAME.rst b/share/cmake-3.18/Help/prop_tgt/GENERATOR_FILE_NAME.rst
index a486105..a486105 100644
--- a/share/cmake-3.17/Help/prop_tgt/GENERATOR_FILE_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/GENERATOR_FILE_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/GHS_INTEGRITY_APP.rst b/share/cmake-3.18/Help/prop_tgt/GHS_INTEGRITY_APP.rst
index b669781..b669781 100644
--- a/share/cmake-3.17/Help/prop_tgt/GHS_INTEGRITY_APP.rst
+++ b/share/cmake-3.18/Help/prop_tgt/GHS_INTEGRITY_APP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst b/share/cmake-3.18/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
index 11ce0b2..11ce0b2 100644
--- a/share/cmake-3.17/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/GHS_NO_SOURCE_GROUP_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/GNUtoMS.rst b/share/cmake-3.18/Help/prop_tgt/GNUtoMS.rst
index a09ebbf..a09ebbf 100644
--- a/share/cmake-3.17/Help/prop_tgt/GNUtoMS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/GNUtoMS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/HAS_CXX.rst b/share/cmake-3.18/Help/prop_tgt/HAS_CXX.rst
index 15199b1..15199b1 100644
--- a/share/cmake-3.17/Help/prop_tgt/HAS_CXX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/HAS_CXX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst b/share/cmake-3.18/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
index dc73807..dc73807 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPLICIT_DEPENDS_INCLUDE_TRANSFORM.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED.rst
index 22d28aa..22d28aa 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
index 99e3bc4..99e3bc4 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_COMMON_LANGUAGE_RUNTIME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
index 6de1baa..6de1baa 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_CONFIGURATIONS.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/IMPORTED_GLOBAL.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_GLOBAL.rst
new file mode 100644
index 0000000..1a9129f
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_GLOBAL.rst
@@ -0,0 +1,30 @@
+IMPORTED_GLOBAL
+---------------
+
+Indication of whether an :ref:`IMPORTED target <Imported Targets>` is
+globally visible.
+
+The boolean value of this property is True for targets created with the
+``IMPORTED`` ``GLOBAL`` options to :command:`add_executable()` or
+:command:`add_library()`. It is always False for targets built within the
+project.
+
+For targets created with the ``IMPORTED`` option to
+:command:`add_executable()` or :command:`add_library()` but without the
+additional option ``GLOBAL`` this is False, too. However, setting this
+property for such a locally ``IMPORTED`` target to True promotes that
+target to global scope. This promotion can only be done in the same
+directory where that ``IMPORTED`` target was created in the first place.
+
+.. note::
+
+ Once an imported target has been made global, it cannot be changed back to
+ non-global. Therefore, if a project sets this property, it may only
+ provide a value of True. CMake will issue an error if the project tries to
+ set the property to a non-True value, even if the value was already False.
+
+.. note::
+
+ Local :ref:`ALIAS targets <Alias Targets>` created before promoting an
+ :ref:`IMPORTED target <Imported Targets>` from ``LOCAL`` to ``GLOBAL``, keep
+ their initial scope (see :prop_tgt:`ALIAS_GLOBAL` target property).
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB.rst
index c8b6fde..c8b6fde 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
index 5debabc..5debabc 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_IMPLIB_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME.rst
index 1943dba..1943dba 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
index a28b838..a28b838 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LIBNAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
index f7e2165..f7e2165 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
index 5b9c513..5b9c513 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_DEPENDENT_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
index 4ed4281..4ed4281 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
index 40fcf7f..40fcf7f 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LANGUAGES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
index 527cf2e..527cf2e 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
index 050fb1d..050fb1d 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
index 7a92d96..7a92d96 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
index 758237b..758237b 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION.rst
index f0a1646..f0a1646 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
index c5f5f04..c5f5f04 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_LOCATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME.rst
index cbb7642..cbb7642 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
index 76fe471..76fe471 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_NO_SONAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS.rst
index 50a329f..50a329f 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
index 4419ed1..4419ed1 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_OBJECTS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME.rst
index bf0c3cb..bf0c3cb 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
index 59a9d1a..59a9d1a 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORTED_SONAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORT_PREFIX.rst b/share/cmake-3.18/Help/prop_tgt/IMPORT_PREFIX.rst
index 17e381b..17e381b 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORT_PREFIX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORT_PREFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IMPORT_SUFFIX.rst b/share/cmake-3.18/Help/prop_tgt/IMPORT_SUFFIX.rst
index 9307115..9307115 100644
--- a/share/cmake-3.17/Help/prop_tgt/IMPORT_SUFFIX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IMPORT_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
index b381d1d..b381d1d 100644
--- a/share/cmake-3.17/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst b/share/cmake-3.18/Help/prop_tgt/INSTALL_NAME_DIR.rst
index 747615a..747615a 100644
--- a/share/cmake-3.17/Help/prop_tgt/INSTALL_NAME_DIR.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
index 72dcaa0..72dcaa0 100644
--- a/share/cmake-3.17/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH.rst
new file mode 100644
index 0000000..4549b92
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH.rst
@@ -0,0 +1,16 @@
+INSTALL_RPATH
+-------------
+
+The rpath to use for installed targets.
+
+A semicolon-separated list specifying the rpath to use in installed
+targets (for platforms that support it). This property is initialized
+by the value of the variable :variable:`CMAKE_INSTALL_RPATH` if it is set when
+a target is created.
+
+Because the rpath may contain ``${ORIGIN}``, which coincides with CMake syntax,
+the contents of ``INSTALL_RPATH`` are properly escaped in the
+``cmake_install.cmake`` script (see policy :policy:`CMP0095`.)
+
+This property supports
+:manual:`generator expressions <cmake-generator-expressions(7)>`.
diff --git a/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
index d16a7a1..d16a7a1 100644
--- a/share/cmake-3.17/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INSTALL_RPATH_USE_LINK_PATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
index e97d293..e97d293 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt b/share/cmake-3.18/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
index 4188b8d..4188b8d 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_BUILD_PROPERTY.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
index c74a319..c74a319 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_DEFINITIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
index 31b594f..31b594f 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
index 7f0b385..7f0b385 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_COMPILE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
index b1c40b2..b1c40b2 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
index 790554d..790554d 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
index 56a4ec0..56a4ec0 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
index bf7f72f..bf7f72f 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
index c293b98..c293b98 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_LINK_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
index 4336d71..4336d71 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
index e285407..e285407 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_SOURCES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_SOURCES.rst
index a224b68..a224b68 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_SOURCES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_SOURCES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
index a0a97ad..a0a97ad 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERFACE_SYSTEM_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
index d3a5e94..d3a5e94 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
index 79d4604..79d4604 100644
--- a/share/cmake-3.17/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/IOS_INSTALL_COMBINED.rst b/share/cmake-3.18/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
index 59f67a7..59f67a7 100644
--- a/share/cmake-3.17/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/IOS_INSTALL_COMBINED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_COMPILE.rst b/share/cmake-3.18/Help/prop_tgt/JOB_POOL_COMPILE.rst
index 5d8e940..5d8e940 100644
--- a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_COMPILE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/JOB_POOL_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_LINK.rst b/share/cmake-3.18/Help/prop_tgt/JOB_POOL_LINK.rst
index 6535333..6535333 100644
--- a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_LINK.rst
+++ b/share/cmake-3.18/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.18/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst
index ece28a4..ece28a4 100644
--- a/share/cmake-3.17/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/JOB_POOL_PRECOMPILE_HEADER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LABELS.rst b/share/cmake-3.18/Help/prop_tgt/LABELS.rst
index 5e46469..5e46469 100644
--- a/share/cmake-3.17/Help/prop_tgt/LABELS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LABELS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_CLANG_TIDY.rst b/share/cmake-3.18/Help/prop_tgt/LANG_CLANG_TIDY.rst
index 2bfef66..2bfef66 100644
--- a/share/cmake-3.17/Help/prop_tgt/LANG_CLANG_TIDY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LANG_CLANG_TIDY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst b/share/cmake-3.18/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
index a6f2b24..a6f2b24 100644
--- a/share/cmake-3.17/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LANG_COMPILER_LAUNCHER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_CPPCHECK.rst b/share/cmake-3.18/Help/prop_tgt/LANG_CPPCHECK.rst
index 60785d0..60785d0 100644
--- a/share/cmake-3.17/Help/prop_tgt/LANG_CPPCHECK.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LANG_CPPCHECK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_CPPLINT.rst b/share/cmake-3.18/Help/prop_tgt/LANG_CPPLINT.rst
index 9944c88..9944c88 100644
--- a/share/cmake-3.17/Help/prop_tgt/LANG_CPPLINT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LANG_CPPLINT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst b/share/cmake-3.18/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
index 35220e4..35220e4 100644
--- a/share/cmake-3.17/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LANG_INCLUDE_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst b/share/cmake-3.18/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
index 5d34e20..5d34e20 100644
--- a/share/cmake-3.17/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LANG_VISIBILITY_PRESET.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
index 785a57b..785a57b 100644
--- a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
index 5cefc38..5cefc38 100644
--- a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
index 6027f7f..6027f7f 100644
--- a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
index 1994c7b..1994c7b 100644
--- a/share/cmake-3.17/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LIBRARY_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINKER_LANGUAGE.rst b/share/cmake-3.18/Help/prop_tgt/LINKER_LANGUAGE.rst
index b0a572b..b0a572b 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINKER_LANGUAGE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINKER_LANGUAGE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS.rst b/share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS.rst
index e59d4c0..e59d4c0 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst b/share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
index 5c6778d..5c6778d 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_DEPENDS_NO_SHARED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_DIRECTORIES.rst b/share/cmake-3.18/Help/prop_tgt/LINK_DIRECTORIES.rst
index c2905b3..c2905b3 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS.rst b/share/cmake-3.18/Help/prop_tgt/LINK_FLAGS.rst
index 92cd3c0..92cd3c0 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_FLAGS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
index 68c3129..68c3129 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
index 2dcf45c..2dcf45c 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
index 22ee5a6..22ee5a6 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_LIBRARIES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
index b798af9..b798af9 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
index 7c9461f..7c9461f 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_INTERFACE_MULTIPLICITY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES.rst b/share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES.rst
index d88e798..d88e798 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt b/share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
index 476e4a6..476e4a6 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_LIBRARIES_INDIRECTION.txt
diff --git a/share/cmake-3.18/Help/prop_tgt/LINK_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/LINK_OPTIONS.rst
new file mode 100644
index 0000000..ff3ee87
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_OPTIONS.rst
@@ -0,0 +1,28 @@
+LINK_OPTIONS
+------------
+
+List of options to use for the link step of shared library, module
+and executable targets as well as the device link step. Targets that are static
+libraries need to use the :prop_tgt:`STATIC_LIBRARY_OPTIONS` target property.
+
+These options are used for both normal linking and device linking
+(see policy :policy:`CMP0105`). To control link options for normal and device
+link steps, ``$<HOST_LINK>`` and ``$<DEVICE_LINK>``
+:manual:`generator expressions <cmake-generator-expressions(7)>` can be used.
+
+This property holds a :ref:`semicolon-separated list <CMake Language Lists>` of
+options specified so far for its target. Use the :command:`target_link_options`
+command to append more options.
+
+This property is initialized by the :prop_dir:`LINK_OPTIONS` directory
+property when a target is created, and is used by the generators to set
+the options for the compiler.
+
+Contents of ``LINK_OPTIONS`` may use "generator expressions" with the
+syntax ``$<...>``. See the :manual:`cmake-generator-expressions(7)` manual
+for available expressions. See the :manual:`cmake-buildsystem(7)` manual
+for more on defining buildsystem properties.
+
+.. note::
+
+ This property must be used in preference to :prop_tgt:`LINK_FLAGS` property.
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst b/share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
index fecbb14..fecbb14 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_END_STATIC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst b/share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
index 83cf231..83cf231 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_SEARCH_START_STATIC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LINK_WHAT_YOU_USE.rst b/share/cmake-3.18/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
index 32d6edb..32d6edb 100644
--- a/share/cmake-3.17/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LINK_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LOCATION.rst b/share/cmake-3.18/Help/prop_tgt/LOCATION.rst
index d058064..d058064 100644
--- a/share/cmake-3.17/Help/prop_tgt/LOCATION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LOCATION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/LOCATION_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/LOCATION_CONFIG.rst
index 67de8ed..67de8ed 100644
--- a/share/cmake-3.17/Help/prop_tgt/LOCATION_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/LOCATION_CONFIG.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
new file mode 100644
index 0000000..26d5cc8
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/MACHO_COMPATIBILITY_VERSION.rst
@@ -0,0 +1,25 @@
+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 corresponds to the
+*compatibility version* and :prop_tgt:`MACHO_CURRENT_VERSION` corresponds to
+the *current version*. These are both embedded in the shared library binary
+and can be checked with the ``otool -L <binary>`` command.
+
+It should be noted that the :prop_tgt:`MACHO_CURRENT_VERSION` and
+``MACHO_COMPATIBILITY_VERSION`` properties do not affect the file
+names or version-related symlinks that CMake generates for the library.
+The :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` target properties still
+control the file and symlink names. The ``install_name`` is also still
+controlled by :prop_tgt:`SOVERSION`.
+
+When :prop_tgt:`MACHO_CURRENT_VERSION` and ``MACHO_COMPATIBILITY_VERSION``
+are not given, :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` are used for
+the version details to be embedded in the binaries respectively.
+The :prop_tgt:`MACHO_CURRENT_VERSION` and ``MACHO_COMPATIBILITY_VERSION``
+properties only need to be given if the project needs to decouple the file
+and symlink naming from the version details embedded in the binaries
+(e.g. to match libtool conventions).
diff --git a/share/cmake-3.18/Help/prop_tgt/MACHO_CURRENT_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
new file mode 100644
index 0000000..9afb356
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/MACHO_CURRENT_VERSION.rst
@@ -0,0 +1,25 @@
+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 corresponds to the
+*compatibility version* and ``MACHO_CURRENT_VERSION`` corresponds to the
+*current version*. These are both embedded in the shared library binary
+and can be checked with the ``otool -L <binary>`` command.
+
+It should be noted that the ``MACHO_CURRENT_VERSION`` and
+:prop_tgt:`MACHO_COMPATIBILITY_VERSION` properties do not affect the file
+names or version-related symlinks that CMake generates for the library.
+The :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` target properties still
+control the file and symlink names. The ``install_name`` is also still
+controlled by :prop_tgt:`SOVERSION`.
+
+When ``MACHO_CURRENT_VERSION`` and :prop_tgt:`MACHO_COMPATIBILITY_VERSION`
+are not given, :prop_tgt:`VERSION` and :prop_tgt:`SOVERSION` are used for
+the version details to be embedded in the binaries respectively.
+The ``MACHO_CURRENT_VERSION`` and :prop_tgt:`MACHO_COMPATIBILITY_VERSION`
+properties only need to be given if the project needs to decouple the file
+and symlink naming from the version details embedded in the binaries
+(e.g. to match libtool conventions).
diff --git a/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE.rst b/share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE.rst
index 92bce53..92bce53 100644
--- a/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst b/share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
index 443a645..443a645 100644
--- a/share/cmake-3.17/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
+++ b/share/cmake-3.18/Help/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst b/share/cmake-3.18/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
index 82fdcc0..82fdcc0 100644
--- a/share/cmake-3.17/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
+++ b/share/cmake-3.18/Help/prop_tgt/MACOSX_FRAMEWORK_INFO_PLIST.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MACOSX_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/MACOSX_RPATH.rst
index acd5a7a..acd5a7a 100644
--- a/share/cmake-3.17/Help/prop_tgt/MACOSX_RPATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/MACOSX_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst b/share/cmake-3.18/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
index c12ea14..c12ea14 100644
--- a/share/cmake-3.17/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/MANUALLY_ADDED_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
index 266ccf0..266ccf0 100644
--- a/share/cmake-3.17/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt b/share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
index 6c61341..6c61341 100644
--- a/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
+++ b/share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY-VALUES.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst b/share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
index 73792de..73792de 100644
--- a/share/cmake-3.17/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/MSVC_RUNTIME_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/NAME.rst b/share/cmake-3.18/Help/prop_tgt/NAME.rst
index ddd84f2..ddd84f2 100644
--- a/share/cmake-3.17/Help/prop_tgt/NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/NO_SONAME.rst b/share/cmake-3.18/Help/prop_tgt/NO_SONAME.rst
index d381a9c..d381a9c 100644
--- a/share/cmake-3.17/Help/prop_tgt/NO_SONAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/NO_SONAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst b/share/cmake-3.18/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
index 880343d..880343d 100644
--- a/share/cmake-3.17/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/NO_SYSTEM_FROM_IMPORTED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJCXX_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
index 9f9d804..9f9d804 100644
--- a/share/cmake-3.17/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OBJCXX_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD.rst
index 3c925dc..3c925dc 100644
--- a/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
index c330abf..c330abf 100644
--- a/share/cmake-3.17/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OBJCXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJC_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/OBJC_EXTENSIONS.rst
index 2de9e48..2de9e48 100644
--- a/share/cmake-3.17/Help/prop_tgt/OBJC_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OBJC_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD.rst b/share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD.rst
index d1e1b24..d1e1b24 100644
--- a/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
index 8cf377c..8cf377c 100644
--- a/share/cmake-3.17/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OBJC_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES.rst b/share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES.rst
index 996a4be..996a4be 100644
--- a/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
index 06da4fb..06da4fb 100644
--- a/share/cmake-3.17/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OSX_ARCHITECTURES_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME.rst
index 4b33b38..4b33b38 100644
--- a/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
index 41b782f..41b782f 100644
--- a/share/cmake-3.17/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/PCH_WARN_INVALID.rst b/share/cmake-3.18/Help/prop_tgt/PCH_WARN_INVALID.rst
new file mode 100644
index 0000000..96e1abd
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/PCH_WARN_INVALID.rst
@@ -0,0 +1,10 @@
+PCH_WARN_INVALID
+----------------
+
+When this property is set to true, the precompile header compiler options
+will contain a compiler flag which should warn about invalid precompiled
+headers e.g. ``-Winvalid-pch`` for GNU compiler.
+
+This property is initialized by the value of the
+:variable:`CMAKE_PCH_WARN_INVALID` variable if it is set when a target is
+created. If that variable is not set, the property defaults to ``ON``.
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_NAME.rst b/share/cmake-3.18/Help/prop_tgt/PDB_NAME.rst
index 3a65796..3a65796 100644
--- a/share/cmake-3.17/Help/prop_tgt/PDB_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PDB_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/PDB_NAME_CONFIG.rst
index cb3121c..cb3121c 100644
--- a/share/cmake-3.17/Help/prop_tgt/PDB_NAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PDB_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_NOTE.txt b/share/cmake-3.18/Help/prop_tgt/PDB_NOTE.txt
index b5ada07..b5ada07 100644
--- a/share/cmake-3.17/Help/prop_tgt/PDB_NOTE.txt
+++ b/share/cmake-3.18/Help/prop_tgt/PDB_NOTE.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
index 2f667f3..2f667f3 100644
--- a/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
index 6c55083..6c55083 100644
--- a/share/cmake-3.17/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.18/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
index 0aaf66b..0aaf66b 100644
--- a/share/cmake-3.17/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/POST_INSTALL_SCRIPT.rst b/share/cmake-3.18/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
index 23935bc..23935bc 100644
--- a/share/cmake-3.17/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/POST_INSTALL_SCRIPT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS.rst
index 9e70b65..9e70b65 100644
--- a/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst b/share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
index 9c3e7ea..9c3e7ea 100644
--- a/share/cmake-3.17/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PRECOMPILE_HEADERS_REUSE_FROM.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PREFIX.rst b/share/cmake-3.18/Help/prop_tgt/PREFIX.rst
index a401292..a401292 100644
--- a/share/cmake-3.17/Help/prop_tgt/PREFIX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PREFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst b/share/cmake-3.18/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
index 43432f4..43432f4 100644
--- a/share/cmake-3.17/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PRE_INSTALL_SCRIPT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PRIVATE_HEADER.rst b/share/cmake-3.18/Help/prop_tgt/PRIVATE_HEADER.rst
index 23e1f8e..23e1f8e 100644
--- a/share/cmake-3.17/Help/prop_tgt/PRIVATE_HEADER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PRIVATE_HEADER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PROJECT_LABEL.rst b/share/cmake-3.18/Help/prop_tgt/PROJECT_LABEL.rst
index a1491ee..a1491ee 100644
--- a/share/cmake-3.17/Help/prop_tgt/PROJECT_LABEL.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PROJECT_LABEL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/PUBLIC_HEADER.rst b/share/cmake-3.18/Help/prop_tgt/PUBLIC_HEADER.rst
index 915e39c..915e39c 100644
--- a/share/cmake-3.17/Help/prop_tgt/PUBLIC_HEADER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/PUBLIC_HEADER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RESOURCE.rst b/share/cmake-3.18/Help/prop_tgt/RESOURCE.rst
index e5a1cb6..e5a1cb6 100644
--- a/share/cmake-3.17/Help/prop_tgt/RESOURCE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/RESOURCE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
index e92ab86..e92ab86 100644
--- a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_COMPILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
index 2db0317..2db0317 100644
--- a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
+++ b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_LINK.rst b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_LINK.rst
index f330033..f330033 100644
--- a/share/cmake-3.17/Help/prop_tgt/RULE_LAUNCH_LINK.rst
+++ b/share/cmake-3.18/Help/prop_tgt/RULE_LAUNCH_LINK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
index 12390f5..12390f5 100644
--- a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
index 6727754..6727754 100644
--- a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
index 11729c3..11729c3 100644
--- a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
index b6a31bf..b6a31bf 100644
--- a/share/cmake-3.17/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/RUNTIME_OUTPUT_NAME_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SKIP_BUILD_RPATH.rst b/share/cmake-3.18/Help/prop_tgt/SKIP_BUILD_RPATH.rst
index 7086b1b..7086b1b 100644
--- a/share/cmake-3.17/Help/prop_tgt/SKIP_BUILD_RPATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/SKIP_BUILD_RPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SOURCES.rst b/share/cmake-3.18/Help/prop_tgt/SOURCES.rst
index 493643e..493643e 100644
--- a/share/cmake-3.17/Help/prop_tgt/SOURCES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/SOURCES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SOURCE_DIR.rst b/share/cmake-3.18/Help/prop_tgt/SOURCE_DIR.rst
index b25813b..b25813b 100644
--- a/share/cmake-3.17/Help/prop_tgt/SOURCE_DIR.rst
+++ b/share/cmake-3.18/Help/prop_tgt/SOURCE_DIR.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/SOVERSION.rst b/share/cmake-3.18/Help/prop_tgt/SOVERSION.rst
new file mode 100644
index 0000000..b377f22
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/SOVERSION.rst
@@ -0,0 +1,37 @@
+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 the *compatibility version* and
+:prop_tgt:`VERSION` corresponds to the *current version* (unless Mach-O
+specific overrides are provided, as discussed below).
+See the :prop_tgt:`FRAMEWORK` target property for an example.
+
+For shared libraries, the :prop_tgt:`MACHO_COMPATIBILITY_VERSION` and
+:prop_tgt:`MACHO_CURRENT_VERSION` properties can be used to
+override the *compatibility version* and *current version* respectively.
+Note that ``SOVERSION`` will still be used to form the ``install_name``
+and both ``SOVERSION`` and :prop_tgt:`VERSION` may also affect the file
+and symlink names.
+
+Versions of Mach-O binaries may be checked with the ``otool -L <binary>``
+command.
diff --git a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
index 66e0e8b..66e0e8b 100644
--- a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
index 5b97941..5b97941 100644
--- a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
+++ b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
index d05fda4..d05fda4 100644
--- a/share/cmake-3.17/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/STATIC_LIBRARY_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/SUFFIX.rst b/share/cmake-3.18/Help/prop_tgt/SUFFIX.rst
index 32ec429..32ec429 100644
--- a/share/cmake-3.17/Help/prop_tgt/SUFFIX.rst
+++ b/share/cmake-3.18/Help/prop_tgt/SUFFIX.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst b/share/cmake-3.18/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
index 46c9a1d..46c9a1d 100644
--- a/share/cmake-3.17/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/Swift_DEPENDENCIES_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
index 7579447..7579447 100644
--- a/share/cmake-3.17/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/Swift_LANGUAGE_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
index d404251..d404251 100644
--- a/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/Swift_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_NAME.rst b/share/cmake-3.18/Help/prop_tgt/Swift_MODULE_NAME.rst
index 2866020..2866020 100644
--- a/share/cmake-3.17/Help/prop_tgt/Swift_MODULE_NAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/Swift_MODULE_NAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/TYPE.rst b/share/cmake-3.18/Help/prop_tgt/TYPE.rst
index 3136d11..3136d11 100644
--- a/share/cmake-3.17/Help/prop_tgt/TYPE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/TYPE.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD.rst
new file mode 100644
index 0000000..e140952
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD.rst
@@ -0,0 +1,80 @@
+UNITY_BUILD
+-----------
+
+When this property is set to true, the target source files will be combined
+into batches for faster compilation. This is done by creating a (set of)
+unity sources which ``#include`` the original sources, then compiling these
+unity sources instead of the originals. This is known as a *Unity* or *Jumbo*
+build.
+
+CMake provides different algorithms for selecting which sources are grouped
+together into a *bucket*. Algorithm selection is decided by the
+:prop_tgt:`UNITY_BUILD_MODE` target property, which has the following acceptable
+values:
+
+* ``BATCH``
+ When in this mode CMake determines which files are grouped together.
+ The :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property controls the upper limit on
+ how many sources can be combined per unity source file.
+
+* ``GROUP``
+ When in this mode each target explicitly specifies how to group
+ source files. Each source file that has the same
+ :prop_sf:`UNITY_GROUP` value will be grouped together. Any sources
+ that don't have this property will be compiled individually. The
+ :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property is ignored when using
+ this mode.
+
+If no explicit :prop_tgt:`UNITY_BUILD_MODE` has been specified, CMake will
+default to ``BATCH``.
+
+Unity builds are not currently supported for all languages. CMake version
+|release| supports combining ``C`` and ``CXX`` source files. For targets that
+mix source files from more than one language, CMake will separate the languages
+such that each generated unity source file only contains sources for a single
+language.
+
+This property is initialized by the value of the :variable:`CMAKE_UNITY_BUILD`
+variable when a target is created.
+
+.. note::
+
+ Projects should not directly set the ``UNITY_BUILD`` property or its
+ associated :variable:`CMAKE_UNITY_BUILD` variable to true. Depending
+ on the capabilities of the build machine and compiler used, it might or
+ might not be appropriate to enable unity builds. Therefore, this feature
+ should be under developer control, which would normally be through the
+ developer choosing whether or not to set the :variable:`CMAKE_UNITY_BUILD`
+ variable on the :manual:`cmake(1)` command line or some other equivalent
+ method. However, it IS recommended to set the ``UNITY_BUILD`` target
+ property to false if it is known that enabling unity builds for the
+ target can lead to problems.
+
+ODR (One definition rule) errors
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When multiple source files are included into one source file, as is done
+for unity builds, it can potentially lead to ODR errors. CMake provides
+a number of measures to help address such problems:
+
+* Any source file that has a non-empty :prop_sf:`COMPILE_OPTIONS`,
+ :prop_sf:`COMPILE_DEFINITIONS`, :prop_sf:`COMPILE_FLAGS`, or
+ :prop_sf:`INCLUDE_DIRECTORIES` source property will not be combined
+ into a unity source.
+
+* Projects can prevent an individual source file from being combined into
+ a unity source by setting its :prop_sf:`SKIP_UNITY_BUILD_INCLUSION`
+ source property to true. This can be a more effective way to prevent
+ problems with specific files than disabling unity builds for an entire
+ target.
+
+* The :prop_tgt:`UNITY_BUILD_CODE_BEFORE_INCLUDE` and
+ :prop_tgt:`UNITY_BUILD_CODE_AFTER_INCLUDE` target properties can be used
+ to inject code into the unity source files before and after every
+ ``#include`` statement.
+
+* The order of source files added to the target via commands like
+ :command:`add_library`, :command:`add_executable` or
+ :command:`target_sources` will be preserved in the generated unity source
+ files. This can be used to manually enforce a specific grouping based on
+ the :prop_tgt:`UNITY_BUILD_BATCH_SIZE` target property.
diff --git a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
index 44ffe27..44ffe27 100644
--- a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_BATCH_SIZE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
index 7231b61..7231b61 100644
--- a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_AFTER_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
index 7ed6fa1..7ed6fa1 100644
--- a/share/cmake-3.17/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_CODE_BEFORE_INCLUDE.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_MODE.rst b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_MODE.rst
new file mode 100644
index 0000000..1ebab23
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/UNITY_BUILD_MODE.rst
@@ -0,0 +1,58 @@
+UNITY_BUILD_MODE
+----------------
+
+CMake provides different algorithms for selecting which sources are grouped
+together into a *bucket*. Selection is decided by this property,
+which has the following acceptable values:
+
+``BATCH``
+ When in this mode CMake determines which files are grouped together.
+ The :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property controls the upper limit on
+ how many sources can be combined per unity source file.
+
+ Example usage:
+
+ .. code-block:: cmake
+
+ add_library(example_library
+ source1.cxx
+ source2.cxx
+ source3.cxx
+ source4.cxx)
+
+ set_target_properties(example_library PROPERTIES
+ UNITY_BUILD_MODE BATCH
+ UNITY_BUILD_BATCH_SIZE 2
+ )
+
+``GROUP``
+ When in this mode each target explicitly specifies how to group
+ source files. Each source file that has the same
+ :prop_sf:`UNITY_GROUP` value will be grouped together. Any sources
+ that don't have this property will be compiled individually. The
+ :prop_tgt:`UNITY_BUILD_BATCH_SIZE` property is ignored when using
+ this mode.
+
+ Example usage:
+
+ .. code-block:: cmake
+
+ add_library(example_library
+ source1.cxx
+ source2.cxx
+ source3.cxx
+ source4.cxx)
+
+ set_target_properties(example_library PROPERTIES
+ UNITY_BUILD_MODE GROUP
+ )
+
+ set_source_files_properties(source1.cxx source2.cxx source3.cxx
+ PROPERTIES UNITY_GROUP "bucket1"
+ )
+ set_source_files_properties(source4.cxx
+ PROPERTIES UNITY_GROUP "bucket2"
+ )
+
+If no explicit :prop_tgt:`UNITY_BUILD_MODE` has been specified, CMake will
+default to ``BATCH``.
diff --git a/share/cmake-3.18/Help/prop_tgt/VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VERSION.rst
new file mode 100644
index 0000000..95db483
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/VERSION.rst
@@ -0,0 +1,39 @@
+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 corresponds to the *compatibility version*
+and ``VERSION`` corresponds to the *current version* (unless Mach-O specific
+overrides are provided, as discussed below).
+See the :prop_tgt:`FRAMEWORK` target property for an example.
+
+For shared libraries, the :prop_tgt:`MACHO_COMPATIBILITY_VERSION` and
+:prop_tgt:`MACHO_CURRENT_VERSION` properties can be used to
+override the *compatibility version* and *current version* respectively.
+Note that :prop_tgt:`SOVERSION` will still be used to form the
+``install_name`` and both :prop_tgt:`SOVERSION` and ``VERSION`` may also
+affect the file and symlink names.
+
+Versions of Mach-O binaries may be checked with the ``otool -L <binary>``
+command.
diff --git a/share/cmake-3.17/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst b/share/cmake-3.18/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
index adbbc71..adbbc71 100644
--- a/share/cmake-3.17/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VISIBILITY_INLINES_HIDDEN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst b/share/cmake-3.18/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
index 640bed5..640bed5 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_CONFIGURATION_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
index ba5fd0a..ba5fd0a 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
index 06ef5d5..06ef5d5 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_COMMAND_ARGUMENTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
index f55ac7b..f55ac7b 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_ENVIRONMENT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
index 008bbf6..008bbf6 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DEBUGGER_WORKING_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
index 19d1620..19d1620 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DESKTOP_EXTENSIONS_VERSION.rst
+++ b/share/cmake-3.18/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.18/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst
index 1bc361c..1bc361c 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_DOCUMENTATION_FILE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
index ab311ea..ab311ea 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCEPROP_refname_TAG_tagname.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
index a661ad9..a661ad9 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
index 7641ba5..7641ba5 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCES_COPY_LOCAL.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
index 5814005..5814005 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_REFERENCE_refname.rst
+++ b/share/cmake-3.18/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.18/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
index 6cb8f86..6cb8f86 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DOTNET_TARGET_FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_DPI_AWARE.rst b/share/cmake-3.18/Help/prop_tgt/VS_DPI_AWARE.rst
index 82640cc..82640cc 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_DPI_AWARE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_DPI_AWARE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
index ce49316..ce49316 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_KEYWORD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
index f4d9efc..f4d9efc 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_PROJECT_TYPES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
index a23c540..a23c540 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_ROOTNAMESPACE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_variable.rst b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_variable.rst
index 56b8021..56b8021 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_GLOBAL_variable.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_GLOBAL_variable.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
index 27c8a3d..27c8a3d 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_IOT_EXTENSIONS_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst b/share/cmake-3.18/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
index add50cb..add50cb 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_IOT_STARTUP_TASK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst b/share/cmake-3.18/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
index 42fb8ad..42fb8ad 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_JUST_MY_CODE_DEBUGGING.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_KEYWORD.rst b/share/cmake-3.18/Help/prop_tgt/VS_KEYWORD.rst
index 6c2e042..6c2e042 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_KEYWORD.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_KEYWORD.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
index be3c9a0..be3c9a0 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_MOBILE_EXTENSIONS_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst b/share/cmake-3.18/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
index ffcbde5..ffcbde5 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_NO_SOLUTION_DEPLOY.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst b/share/cmake-3.18/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
index 5a0465b..5a0465b 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_PACKAGE_REFERENCES.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/VS_PLATFORM_TOOLSET.rst b/share/cmake-3.18/Help/prop_tgt/VS_PLATFORM_TOOLSET.rst
new file mode 100644
index 0000000..f8f2e8e
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/VS_PLATFORM_TOOLSET.rst
@@ -0,0 +1,10 @@
+VS_PLATFORM_TOOLSET
+-------------------
+
+Overrides the platform toolset used to build a target.
+
+Only supported when the compiler used by the given toolset is the
+same as the compiler used to build the whole source tree.
+
+This is especially useful to create driver projects with the toolsets
+"WindowsUserModeDriver10.0" or "WindowsKernelModeDriver10.0".
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_PROJECT_IMPORT.rst b/share/cmake-3.18/Help/prop_tgt/VS_PROJECT_IMPORT.rst
index 569c8ea..569c8ea 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_PROJECT_IMPORT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_PROJECT_IMPORT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SCC_AUXPATH.rst b/share/cmake-3.18/Help/prop_tgt/VS_SCC_AUXPATH.rst
index 054f59e..054f59e 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_SCC_AUXPATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SCC_AUXPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SCC_LOCALPATH.rst b/share/cmake-3.18/Help/prop_tgt/VS_SCC_LOCALPATH.rst
index b5b7721..b5b7721 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_SCC_LOCALPATH.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SCC_LOCALPATH.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROJECTNAME.rst b/share/cmake-3.18/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
index 6d7f628..6d7f628 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SCC_PROJECTNAME.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROVIDER.rst b/share/cmake-3.18/Help/prop_tgt/VS_SCC_PROVIDER.rst
index 80475af..80475af 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_SCC_PROVIDER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SCC_PROVIDER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_SDK_REFERENCES.rst b/share/cmake-3.18/Help/prop_tgt/VS_SDK_REFERENCES.rst
index 99987f5..99987f5 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_SDK_REFERENCES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SDK_REFERENCES.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/VS_SOLUTION_DEPLOY.rst b/share/cmake-3.18/Help/prop_tgt/VS_SOLUTION_DEPLOY.rst
new file mode 100644
index 0000000..eef848f
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SOLUTION_DEPLOY.rst
@@ -0,0 +1,27 @@
+VS_SOLUTION_DEPLOY
+------------------
+
+Specify that the target should be marked for deployment when not targeting
+Windows CE, Windows Phone or a Windows Store application.
+
+If the target platform doesn't support deployment, this property won't have
+any effect.
+
+:manual:`Generator expressions <cmake-generator-expressions(7)>` are supported.
+
+Examples
+^^^^^^^^
+
+Always deploy target ``foo``:
+
+.. code-block:: cmake
+
+ add_executable(foo SHARED foo.cpp)
+ set_property(TARGET foo PROPERTY VS_SOLUTION_DEPLOY ON)
+
+Deploy target ``foo`` for all configurations except ``Release``:
+
+.. code-block:: cmake
+
+ add_executable(foo SHARED foo.cpp)
+ set_property(TARGET foo PROPERTY VS_SOLUTION_DEPLOY "$<NOT:$<CONFIG:Release>>")
diff --git a/share/cmake-3.18/Help/prop_tgt/VS_SOURCE_SETTINGS_tool.rst b/share/cmake-3.18/Help/prop_tgt/VS_SOURCE_SETTINGS_tool.rst
new file mode 100644
index 0000000..738a912
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/VS_SOURCE_SETTINGS_tool.rst
@@ -0,0 +1,19 @@
+VS_SOURCE_SETTINGS_<tool>
+-------------------------
+
+Set any item metadata on all non-built files that use <tool>.
+
+Takes a list of ``Key=Value`` pairs. Tells the Visual Studio generator
+to set ``Key`` to ``Value`` as item metadata on all non-built files
+that use ``<tool>``.
+
+For example:
+
+.. code-block:: cmake
+
+ set_property(TARGET main PROPERTY VS_SOURCE_SETTINGS_FXCompile "Key=Value" "Key2=Value2")
+
+will set ``Key`` to ``Value`` and ``Key2`` to ``Value2`` for all
+non-built files that use ``FXCompile``.
+
+:manual:`Generator expressions <cmake-generator-expressions(7)>` are supported.
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_USER_PROPS.rst b/share/cmake-3.18/Help/prop_tgt/VS_USER_PROPS.rst
index 1be222b..1be222b 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_USER_PROPS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_USER_PROPS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst b/share/cmake-3.18/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
index 1ad7a71..1ad7a71 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_COMPONENT.rst b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_COMPONENT.rst
index e160bd6..e160bd6 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_COMPONENT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_COMPONENT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
index d1cba34..d1cba34 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_REFERENCES.rst b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_REFERENCES.rst
index af98b2f..af98b2f 100644
--- a/share/cmake-3.17/Help/prop_tgt/VS_WINRT_REFERENCES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/VS_WINRT_REFERENCES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/WIN32_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/WIN32_EXECUTABLE.rst
index 060d166..060d166 100644
--- a/share/cmake-3.17/Help/prop_tgt/WIN32_EXECUTABLE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/WIN32_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.18/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
index 86711bf..86711bf 100644
--- a/share/cmake-3.17/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
index 71858c5..71858c5 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_ATTRIBUTE_an-attribute.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
index dc92902..dc92902 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_EXPLICIT_FILE_TYPE.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
new file mode 100644
index 0000000..c32b4de
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_GENERATE_SCHEME.rst
@@ -0,0 +1,41 @@
+XCODE_GENERATE_SCHEME
+---------------------
+
+If enabled, the :generator:`Xcode` generator will generate schema files. These
+are useful to invoke analyze, archive, build-for-testing and test
+actions from the command line.
+
+This property is initialized by the value of the variable
+:variable:`CMAKE_XCODE_GENERATE_SCHEME` if it is set when a target
+is created.
+
+The following target properties overwrite the default of the
+corresponding settings on the "Diagnostic" tab for each schema file.
+Each of those is initialized by the respective ``CMAKE_`` variable
+at target creation time.
+
+- :prop_tgt:`XCODE_SCHEME_ADDRESS_SANITIZER`
+- :prop_tgt:`XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN`
+- :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_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`
+
+The following target properties will be applied on the
+"Info", "Arguments", and "Options" tab:
+
+- :prop_tgt:`XCODE_SCHEME_ARGUMENTS`
+- :prop_tgt:`XCODE_SCHEME_DEBUG_AS_ROOT`
+- :prop_tgt:`XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING`
+- :prop_tgt:`XCODE_SCHEME_ENVIRONMENT`
+- :prop_tgt:`XCODE_SCHEME_EXECUTABLE`
+- :prop_tgt:`XCODE_SCHEME_WORKING_DIRECTORY`
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
index f4ef5c0..f4ef5c0 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_PRODUCT_TYPE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
index cc9bac2..cc9bac2 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
index 37a043a..37a043a 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
index 1f228e3..1f228e3 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
index 5407e80..5407e80 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
index 9afeedd..9afeedd 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
index 1a6fcfd..1a6fcfd 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
index 9224022..9224022 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
index 203c803..203c803 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
index c6d875e..c6d875e 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
index 104841b..104841b 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
index c4e83da..c4e83da 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
index 73992c3..73992c3 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
index ca761c0..ca761c0 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
index c5ddb95..c5ddb95 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
index 170f33d..170f33d 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
index bb70141..bb70141 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
index 5deadb1..5deadb1 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
index 0cd823d..0cd823d 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
index d1a9bca..d1a9bca 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
diff --git a/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
new file mode 100644
index 0000000..f538f1d
--- /dev/null
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY.rst
@@ -0,0 +1,13 @@
+XCODE_SCHEME_WORKING_DIRECTORY
+------------------------------
+
+Specify the ``Working Directory`` of the *Run* and *Profile*
+actions 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.17/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
index 6e70e8b..6e70e8b 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XCTEST.rst b/share/cmake-3.18/Help/prop_tgt/XCTEST.rst
index eb47e60..eb47e60 100644
--- a/share/cmake-3.17/Help/prop_tgt/XCTEST.rst
+++ b/share/cmake-3.18/Help/prop_tgt/XCTEST.rst
diff --git a/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt b/share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
index 3ae5448..3ae5448 100644
--- a/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
+++ b/share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_DIRECTORY.txt
diff --git a/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_NAME.txt b/share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_NAME.txt
index 126f391..126f391 100644
--- a/share/cmake-3.17/Help/prop_tgt/XXX_OUTPUT_NAME.txt
+++ b/share/cmake-3.18/Help/prop_tgt/XXX_OUTPUT_NAME.txt
diff --git a/share/cmake-3.17/Help/release/3.0.rst b/share/cmake-3.18/Help/release/3.0.rst
index 64491e3..64491e3 100644
--- a/share/cmake-3.17/Help/release/3.0.rst
+++ b/share/cmake-3.18/Help/release/3.0.rst
diff --git a/share/cmake-3.17/Help/release/3.1.rst b/share/cmake-3.18/Help/release/3.1.rst
index 8bea28f..8bea28f 100644
--- a/share/cmake-3.17/Help/release/3.1.rst
+++ b/share/cmake-3.18/Help/release/3.1.rst
diff --git a/share/cmake-3.18/Help/release/3.10.rst b/share/cmake-3.18/Help/release/3.10.rst
new file mode 100644
index 0000000..117415b
--- /dev/null
+++ b/share/cmake-3.18/Help/release/3.10.rst
@@ -0,0 +1,282 @@
+CMake 3.10 Release Notes
+************************
+
+.. only:: html
+
+ .. contents::
+
+Changes made since CMake 3.9 include the following.
+
+New Features
+============
+
+Platforms
+---------
+
+* The `flang`_ Fortran compiler is now supported, with compiler id ``Flang``.
+
+* A new minimal platform file for ``Midipix`` was added.
+
+* Support for the MSVC ARM64 architecture was added.
+ Visual Studio 2017 Update 4 and above offer an ARM64 toolchain.
+
+* Support for the IAR ARM Compiler was improved.
+
+.. _`flang`: https://github.com/flang-compiler/flang
+
+Generators
+----------
+
+* The :ref:`Makefile Generators` and the :generator:`Ninja` generator learned
+ to add compiler launcher tools like ccache along with the compiler for the
+ ``CUDA`` language (``C`` and ``CXX`` were supported previously). See the
+ :variable:`CMAKE_<LANG>_COMPILER_LAUNCHER` variable and
+ :prop_tgt:`<LANG>_COMPILER_LAUNCHER` target property for details.
+
+* The :generator:`CodeBlocks` extra generator learned to optionally exclude
+ files from outside the project root directory from the generated project.
+ See the :variable:`CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES` variable.
+
+Commands
+--------
+
+* The :command:`cmake_host_system_information` command learned more keys
+ to get information about the processor capabilities and the host OS
+ version.
+
+* The :command:`configure_file` command learned to support indented
+ ``# cmakedefine`` and ``# cmakedefine01``. Spaces and/or tabs between
+ the ``#`` character and the ``cmakedefine``/``cmakedefine01`` words
+ are now understood and preserved in the output.
+
+* The :command:`execute_process` command gained a ``RESULTS_VARIABLE``
+ option to collect a list of results from all children in a pipeline
+ of processes when multiple ``COMMAND`` arguments are given.
+
+* The :command:`include_guard` command was introduced to allow guarding
+ CMake scripts from being included more than once. The command supports
+ ``DIRECTORY`` and ``GLOBAL`` options to adjust the corresponding include guard
+ scope. If no options given, include guard is similar to basic variable-based
+ check.
+
+* The :command:`string` command learned a new ``PREPEND`` subcommand.
+
+* The :command:`string(TIMESTAMP)` command now supports ``%A``
+ for full weekday name and ``%B`` for full month name.
+
+Variables
+---------
+
+* A :variable:`CMAKE_DIRECTORY_LABELS` variable was added to specify
+ labels for all tests in a directory.
+
+Properties
+----------
+
+* A :prop_tgt:`<LANG>_CPPCHECK` target property and supporting
+ :variable:`CMAKE_<LANG>_CPPCHECK` variable were introduced to tell
+ the :ref:`Makefile Generators` and the :generator:`Ninja` generator to
+ run ``cppcheck`` with the compiler for ``C`` and ``CXX`` languages.
+
+* A :prop_dir:`LABELS` directory property was added to specify labels
+ for all targets and tests in a directory.
+
+* A :prop_dir:`TEST_INCLUDE_FILES` directory property was added to
+ list any number of files to be included when running tests with
+ :manual:`ctest(1)`. This generalizes the :prop_dir:`TEST_INCLUDE_FILE`
+ property.
+
+* The :prop_tgt:`VS_DOTNET_REFERENCEPROP_<refname>_TAG_<tagname>`
+ target property was added to support custom XML tags for reference
+ assemblies in C# targets.
+
+* Source file properties :prop_sf:`VS_SHADER_OUTPUT_HEADER_FILE` and
+ :prop_sf:`VS_SHADER_VARIABLE_NAME` have been added to specify more
+ details of ``.hlsl`` sources with :ref:`Visual Studio Generators`.
+
+Modules
+-------
+
+* The :module:`FindCurses` module gained a ``CURSES_NEED_WIDE`` option
+ to request the wide-character variant.
+
+* The :module:`FindEXPAT` module now provides imported targets.
+
+* The :module:`FindFreetype` module now provides imported targets.
+
+* :module:`FindMPI` gained a number of new features, including:
+
+ * Language-specific components have been added to the module.
+ * Many more MPI environments are now supported.
+ * The environmental support for Fortran has been improved.
+ * A user now has fine-grained control over the MPI selection process,
+ including passing custom parameters to the MPI compiler.
+ * The version of the implemented MPI standard is now being exposed.
+ * MPI-2 C++ bindings can now be detected and also suppressed if so desired.
+ * The available Fortran bindings are now being detected and verified.
+ * Various MPI-3 information can be requested, including the library version
+ and Fortran capabilities of the individual bindings.
+ * Statically linked MPI implementations are supported.
+
+* A :module:`FindOpenACC` module was added to detect compiler support
+ for OpenACC. Currently only supports PGI, GNU and Cray compilers.
+
+* The :module:`FindOpenGL` module gained support for GLVND on Linux.
+
+* The :module:`FindOpenMP` module gained support for
+ language-specific components.
+
+* A :module:`FindPatch` module was added to find the ``patch``
+ command-line executable.
+
+* The :module:`FindProtobuf` module :command:`protobuf_generate_cpp` command
+ gained a ``DESCRIPTORS`` option to generate descriptor files.
+
+* The :module:`GoogleTest` module gained a new command
+ :command:`gtest_discover_tests` implementing dynamic (build-time) test
+ discovery. Unlike the source parsing approach, dynamic discovery executes
+ the test (in 'list available tests' mode) at build time to discover tests.
+ This is robust against unusual ways of labeling tests, provides much better
+ support for advanced features such as parameterized tests, and does not
+ require re-running CMake to discover added or removed tests within a test
+ executable. Note that a breaking change was made in CMake 3.10.3 to address
+ an ambiguity of the ``TIMEOUT`` keyword (see :ref:`Release Notes 3.10.3`).
+
+* The :module:`InstallRequiredSystemLibraries` module gained support
+ for installing Intel compiler runtimes.
+
+Autogen
+-------
+
+* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` with a
+ multi configuration generator (e.g. :generator:`Xcode`),
+ included ``*.moc``, ``moc_*.cpp`` and ``ui_*.h`` files are generated in
+ ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>`` instead of
+ ``<AUTOGEN_BUILD_DIR>/include``.
+
+* When using :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC`,
+ source files that are :prop_sf:`GENERATED` will be processed as well.
+ They were ignored by :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`
+ in earlier releases.
+ See policy :policy:`CMP0071`.
+
+* When using :prop_tgt:`AUTOMOC`, CMake searches for the strings ``Q_OBJECT``,
+ ``Q_GADGET`` or ``Q_NAMESPACE`` in a source file to determine if it needs
+ to be ``moc`` processed. The new :variable:`CMAKE_AUTOMOC_MACRO_NAMES`
+ variable and :prop_tgt:`AUTOMOC_MACRO_NAMES` target property may be set
+ to register additional strings (macro names) to search for.
+
+* When using :prop_tgt:`AUTOMOC`, the new
+ :variable:`CMAKE_AUTOMOC_COMPILER_PREDEFINES` variable and
+ :prop_tgt:`AUTOMOC_COMPILER_PREDEFINES` target property specify whether
+ to enable or disable the generation of the compiler pre definitions file
+ ``moc_predefs.h``.
+
+CTest
+-----
+
+* A :variable:`CTEST_LABELS_FOR_SUBPROJECTS` CTest module variable and CTest
+ script variable were added to specify a list of labels that should be
+ treated as subprojects by CDash. To use this value in both the CTest module
+ and the ctest command line :ref:`Dashboard Client` mode (e.g. ``ctest -S``)
+ set it in the ``CTestConfig.cmake`` config file.
+
+CPack
+-----
+
+* A :cpack_gen:`CPack FreeBSD Generator` was added for FreeBSD ``pkg(8)``.
+
+* The :cpack_gen:`CPack DEB Generator` was enabled on Windows. While not
+ fully featured (due to the lack of external UNIX tools) this will allow
+ building basic cross-platform Debian packages.
+
+* The :cpack_gen:`CPack DEB Generator` learned to set package release
+ version in ``Version`` info property.
+ See the :variable:`CPACK_DEBIAN_PACKAGE_RELEASE` variable.
+
+* The :cpack_gen:`CPack DEB Generator` learned more strict package
+ version checking that complies with Debian rules.
+
+* The :module:`CPackIFW` module :command:`cpack_ifw_configure_component` and
+ :command:`cpack_ifw_configure_component_group` commands gained a new
+ ``REPLACES`` and ``CHECKABLE`` options.
+
+* The :cpack_gen:`CPack IFW Generator` gained new
+ :variable:`CPACK_IFW_PACKAGE_FILE_EXTENSION` variable to customize
+ target binary format.
+
+* The :cpack_gen:`CPack IFW Generator` gained new
+ :variable:`CPACK_IFW_REPOSITORIES_DIRECTORIES` variable to specify
+ additional repositories dirs that will be used to resolve and
+ repack dependent components. This feature is only available when
+ using QtIFW 3.1 or later.
+
+* The :cpack_gen:`CPack RPM Generator` and :cpack_gen:`CPack DEB Generator`
+ learned to set the package epoch version.
+ See :variable:`CPACK_RPM_PACKAGE_EPOCH` and
+ :variable:`CPACK_DEBIAN_PACKAGE_EPOCH` variables.
+
+Other
+-----
+
+* The :manual:`cmake(1)` ``-E`` mode gained support for ``sha1sum``,
+ ``sha224sum``, ``sha256sum``, ``sha384sum``, and ``sha512sum``.
+
+* The graphviz output now distinguishes among the different dependency types
+ ``PUBLIC``, ``PRIVATE`` and ``INTERFACE`` and represents them in the output
+ graph as solid, dashed and dotted edges.
+
+Deprecated and Removed Features
+===============================
+
+* Support for building CMake itself with C++98 compilers was dropped.
+ CMake is now implemented using C++11.
+
+* Support for building CMake on HP-UX has been dropped pending better
+ support for C++11 and a port of libuv. See `CMake Issue 17137`_.
+ Use CMake 3.9 or lower instead for HP-UX support.
+
+.. _`CMake Issue 17137`: https://gitlab.kitware.com/cmake/cmake/-/issues/17137
+
+Other Changes
+=============
+
+* On FreeBSD the C++ compiler named ``c++`` is now the preferred default.
+
+* The :command:`file(GENERATE)` command now interprets relative paths
+ given to its ``OUTPUT`` and ``INPUT`` arguments with respect to the
+ caller's current binary and source directories, respectively.
+ See policy :policy:`CMP0070`.
+
+* The :command:`get_filename_component` ``PROGRAM`` mode semantics
+ have been revised to not tolerate unquoted spaces in the path
+ to the program while also accepting arguments. While technically
+ incompatible with the old behavior, it is expected that behavior
+ under typical use cases with properly-quoted command-lines has
+ not changed.
+
+Updates
+=======
+
+Changes made since CMake 3.10.0 include the following.
+
+3.10.1
+------
+
+* The :manual:`cmake-server(7)` ``codemodel`` response ``crossReferences``
+ field added by 3.10.0 has been dropped due to excessive memory usage.
+ Another approach will be needed to provide backtrace information.
+
+.. _`Release Notes 3.10.3`:
+
+3.10.3
+------
+
+* CMake 3.10.1 added a ``TIMEOUT`` option to :command:`gtest_discover_tests`
+ from the :module:`GoogleTest` module. That keyword clashed with the
+ ``TIMEOUT`` test property, which is one of the common properties that
+ would be set with the command's ``PROPERTIES`` keyword, usually leading
+ to legal but unintended behavior. The keyword was changed to
+ ``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this problem. The
+ ambiguous behavior of the :command:`gtest_discover_tests` command's
+ ``TIMEOUT`` keyword in 3.10.1 and 3.10.2 has not been preserved.
diff --git a/share/cmake-3.17/Help/release/3.11.rst b/share/cmake-3.18/Help/release/3.11.rst
index a80657d..a80657d 100644
--- a/share/cmake-3.17/Help/release/3.11.rst
+++ b/share/cmake-3.18/Help/release/3.11.rst
diff --git a/share/cmake-3.17/Help/release/3.12.rst b/share/cmake-3.18/Help/release/3.12.rst
index 481027e..481027e 100644
--- a/share/cmake-3.17/Help/release/3.12.rst
+++ b/share/cmake-3.18/Help/release/3.12.rst
diff --git a/share/cmake-3.17/Help/release/3.13.rst b/share/cmake-3.18/Help/release/3.13.rst
index a8dd0ba..a8dd0ba 100644
--- a/share/cmake-3.17/Help/release/3.13.rst
+++ b/share/cmake-3.18/Help/release/3.13.rst
diff --git a/share/cmake-3.17/Help/release/3.14.rst b/share/cmake-3.18/Help/release/3.14.rst
index 8a9738c..8a9738c 100644
--- a/share/cmake-3.17/Help/release/3.14.rst
+++ b/share/cmake-3.18/Help/release/3.14.rst
diff --git a/share/cmake-3.18/Help/release/3.15.rst b/share/cmake-3.18/Help/release/3.15.rst
new file mode 100644
index 0000000..e68e7d3
--- /dev/null
+++ b/share/cmake-3.18/Help/release/3.15.rst
@@ -0,0 +1,396 @@
+CMake 3.15 Release Notes
+************************
+
+.. only:: html
+
+ .. contents::
+
+Changes made since CMake 3.14 include the following.
+
+New Features
+============
+
+Generators
+----------
+
+* The :generator:`Xcode` generator now supports per-target schemes.
+ See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable and
+ :prop_tgt:`XCODE_GENERATE_SCHEME` target property.
+
+* The :generator:`Green Hills MULTI` generator has been updated:
+
+ * It now supports the :command:`add_custom_command` and
+ :command:`add_custom_target` commands.
+
+ * It is now available on Linux.
+
+Languages
+---------
+
+* Preliminary support for the ``Swift`` language was added to the
+ :generator:`Ninja` generator:
+
+ * Use the :envvar:`SWIFTC` environment variable to specify a compiler.
+
+ * The :prop_tgt:`Swift_DEPENDENCIES_FILE` target property and
+ :prop_sf:`Swift_DEPENDENCIES_FILE` source file property were added
+ to customize dependency files.
+
+ * The :prop_tgt:`Swift_MODULE_NAME` target property was added to
+ customize the Swift module name.
+
+ * The :prop_sf:`Swift_DIAGNOSTICS_FILE` source property was added to
+ indicate where to write the serialised Swift diagnostics.
+
+ The Swift support is experimental, not considered stable, and may change
+ in future releases of CMake.
+
+Compilers
+---------
+
+* The ``Clang`` compiler variant on Windows that targets the MSVC ABI
+ but has a GNU-like command line is now supported.
+
+* Support for the Clang-based ARM compiler was added with compiler id
+ ``ARMClang``.
+
+* Support was added for the IAR compiler architectures Renesas RX,
+ RL78, RH850 and Texas Instruments MSP430.
+
+* Support was added for the IAR compilers built for Linux (IAR BuildLx).
+
+Command-Line
+------------
+
+* The :envvar:`CMAKE_GENERATOR` environment variable was added
+ to specify a default generator to use when :manual:`cmake(1)` is
+ run without a ``-G`` option. Additionally, environment variables
+ :envvar:`CMAKE_GENERATOR_PLATFORM`, :envvar:`CMAKE_GENERATOR_TOOLSET`,
+ and :envvar:`CMAKE_GENERATOR_INSTANCE` were created to configure
+ the generator.
+
+* The :manual:`cmake(1)` ``--build`` tool ``--target`` parameter gained support
+ for multiple targets, e.g. ``cmake --build . --target Library1 Library2``.
+ It now also has a short form ``-t`` alias, e.g.
+ ``cmake --build . -t Library1 Library2``.
+
+* The :manual:`cmake(1)` command gained a new ``--install`` option.
+ This may be used after building a project to run installation without
+ using the generated build system or the native build tool.
+
+* The :manual:`cmake(1)` command learned a new CLI option ``--loglevel``.
+
+* The :manual:`cmake(1)` ``-E remove_directory`` command-line tool learned
+ to support removing multiple directories.
+
+* The :manual:`cmake(1)` ``-E tar`` tool has been improved:
+
+ * It now continues adding files to an archive even if some of the files
+ are not readable. This behavior is more consistent with the
+ classic ``tar`` tool.
+
+ * It now parses all flags, and if an invalid flag was provided, a
+ warning is issued.
+
+ * It now displays an error if no action flag was specified, along with a
+ list of possible actions: ``t`` (list), ``c`` (create) or ``x`` (extract).
+
+ * It now supports extracting (``-x``) or listing (``-t``) only specific
+ files or directories.
+
+ * It now supports Zstandard compression with a ``--zstd`` option.
+ Zstandard was designed to give a compression ratio comparable to that
+ of the DEFLATE (zip) algorithm, but faster, especially for decompression.
+
+Commands
+--------
+
+* The :command:`add_custom_command` and :command:`add_custom_target` commands
+ gained a new ``JOB_POOL`` option that works with the :generator:`Ninja`
+ generator to set the pool variable on the build statement.
+
+* The :command:`add_library` command ``ALIAS`` option learned to support
+ import libraries of the ``UNKNOWN`` type.
+
+* The :command:`cmake_parse_arguments` command gained an additional
+ ``<prefix>_KEYWORDS_MISSING_VALUES`` output variable to report
+ keyword arguments that were given by the caller with no values.
+
+* The :command:`execute_process` command gained a ``COMMAND_ECHO`` option
+ and supporting :variable:`CMAKE_EXECUTE_PROCESS_COMMAND_ECHO` variable
+ to enable echoing of the command-line string before execution.
+
+* The :command:`file(INSTALL)` command learned a new argument,
+ ``FOLLOW_SYMLINK_CHAIN``, which can be used to recursively resolve and
+ install symlinks.
+
+* :command:`list` learned new sub-commands:
+ ``PREPEND``, ``POP_FRONT`` and ``POP_BACK``.
+
+* The :command:`message` command learned new types:
+ ``NOTICE``, ``VERBOSE``, ``DEBUG`` and ``TRACE``.
+
+* The :command:`string` learned a new sub-command ``REPEAT``.
+
+Variables
+---------
+
+* The :variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable and corresponding
+ :prop_tgt:`CROSSCOMPILING_EMULATOR` target property learned to support
+ arguments to the emulator.
+
+* The :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG` variable was added to tell
+ :command:`find_package` calls to look for a package configuration
+ file first even if a find module is available.
+
+* The :variable:`CMAKE_FRAMEWORK` variable was added to initialize the
+ :prop_tgt:`FRAMEWORK` property on all targets.
+
+* The :variable:`CMAKE_VS_JUST_MY_CODE_DEBUGGING` variable and
+ :prop_tgt:`VS_JUST_MY_CODE_DEBUGGING` target property were added to
+ enable the Just My Code feature of the Visual Studio Debugger when
+ compiling with MSVC cl 19.05 and higher.
+
+* The :variable:`CMAKE_MSVC_RUNTIME_LIBRARY` variable and
+ :prop_tgt:`MSVC_RUNTIME_LIBRARY` target property were introduced to
+ select the runtime library used by compilers targeting the MSVC ABI.
+ See policy :policy:`CMP0091`.
+
+* The :variable:`CMAKE_PROJECT_INCLUDE` and
+ :variable:`CMAKE_PROJECT_INCLUDE_BEFORE` variables were added to allow
+ injection of custom code at the sites of :command:`project` calls
+ without knowing the project name a priori.
+
+Properties
+----------
+
+* The :prop_tgt:`ADDITIONAL_CLEAN_FILES` target property and
+ :prop_dir:`ADDITIONAL_CLEAN_FILES` directory property were added.
+ They allow to register additional files that should be removed during
+ the clean stage.
+
+* The :prop_tgt:`PUBLIC_HEADER` and :prop_tgt:`PRIVATE_HEADER` properties
+ may now be set on :ref:`Interface Libraries`. The headers specified by those
+ properties can be installed using the :command:`install(TARGETS)` command by
+ passing the ``PUBLIC_HEADER`` and ``PRIVATE_HEADER`` arguments respectively.
+
+* The :prop_tgt:`VS_PACKAGE_REFERENCES` target property was added to
+ tell :ref:`Visual Studio Generators` to add references to ``nuget``
+ packages.
+
+* The :prop_tgt:`VS_PROJECT_IMPORT` target property was added to allow
+ managed Visual Studio project files to import external ``.props`` files.
+
+* The :prop_tgt:`VS_NO_SOLUTION_DEPLOY` target property was added to
+ tell :ref:`Visual Studio Generators` whether to deploy an artifact
+ to the WinCE or Windows Phone target device.
+
+Modules
+-------
+
+* The :module:`FindBoost` module was reworked to expose a more consistent
+ user experience between its "Config" and "Module" modes and with other
+ find modules in general.
+
+ * A new imported target ``Boost::headers`` is now defined (same
+ as ``Boost::boost``).
+
+ * New output variables ``Boost_VERSION_MACRO``,
+ ``Boost_VERSION_MAJOR``, ``Boost_VERSION_MINOR``,
+ ``Boost_VERSION_PATCH``, and ``Boost_VERSION_COUNT``
+ were added.
+
+ * The ``QUIET`` argument passed to :command:`find_package` is no
+ longer ignored in config mode. Note that the CMake package shipped with
+ Boost ``1.70.0`` ignores the ``QUIET`` argument passed to
+ :command:`find_package`. This is fixed in the next Boost release.
+
+ * The input switch ``Boost_DETAILED_FAILURE_MSG`` was removed.
+
+ * ``Boost_VERSION`` now reports the version in ``x.y.z``
+ format in module mode. See policy :policy:`CMP0093`.
+
+* The :module:`FindCups` module now provides imported targets.
+
+* The :module:`FindEnvModules` module was added to use Lua- and TCL-based
+ environment modules in :ref:`CTest Scripts <CTest Script>`.
+
+* The :module:`FindGLEW` module now provides an interface more consistent
+ with what upstream GLEW provides in its own CMake package files.
+
+* The :module:`FindPkgConfig` now populates :prop_tgt:`INTERFACE_LINK_OPTIONS`
+ property of imported targets with other (non-library) linker flags.
+
+* The :module:`FindPostgreSQL` module learned to find debug and release
+ variants separately.
+
+* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
+ gained additional lookup strategies and controls, and a new default.
+ See policy :policy:`CMP0094`.
+
+* Modules :module:`FindPython`, :module:`FindPython2` and :module:`FindPython3`
+ gain a new target (respectively ``Python::Module``, ``Python2::Module``
+ and ``Python3::Module``) which can be used to develop Python modules.
+
+* Modules :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
+ gain capability to control how virtual environments are handled.
+
+* The :module:`UseSWIG` module learned to manage alternate library names
+ by passing ``-interface <library_name>`` for ``python`` language or
+ ``-dllimport <library_name>`` for ``CSharp`` language to the ``SWIG``
+ compiler.
+
+Generator Expressions
+---------------------
+
+* The :manual:`generator expressions <cmake-generator-expressions(7)>`
+ ``C_COMPILER_ID``, ``CXX_COMPILER_ID``, ``CUDA_COMPILER_ID``,
+ ``Fortran_COMPILER_ID``, ``COMPILE_LANGUAGE``, ``COMPILE_LANG_AND_ID``, and
+ ``PLATFORM_ID`` learned to support matching one value from a comma-separated
+ list.
+
+* The ``$<CUDA_COMPILER_ID:...>`` and ``$<CUDA_COMPILER_VERSION:...>``
+ :manual:`generator expressions <cmake-generator-expressions(7)>` were added.
+
+* The ``$<COMPILE_LANG_AND_ID:...>`` generator expression was introduced to
+ allow specification of compile options for target files based on the
+ :variable:`CMAKE_<LANG>_COMPILER_ID` and :prop_sf:`LANGUAGE` of
+ each source file.
+
+* A ``$<FILTER:list,INCLUDE|EXCLUDE,regex>``
+ :manual:`generator expression <cmake-generator-expressions(7)>`
+ has been added.
+
+* A ``$<REMOVE_DUPLICATES:list>``
+ :manual:`generator expression <cmake-generator-expressions(7)>`
+ has been added.
+
+* The ``$<SHELL_PATH:...>`` :manual:`generator expression
+ <cmake-generator-expressions(7)>` gained support for a list of paths.
+
+* New ``$<TARGET_FILE*>`` :manual:`generator expressions
+ <cmake-generator-expressions(7)>` were added to retrieve the prefix, base
+ name, and suffix of the file names of various artifacts:
+
+ * ``$<TARGET_FILE_PREFIX:...>``
+ * ``$<TARGET_FILE_BASE_NAME:...>``
+ * ``$<TARGET_FILE_SUFFIX:...>``
+ * ``$<TARGET_LINKER_FILE_PREFIX:...>``
+ * ``$<TARGET_LINKER_FILE_BASE_NAME:...>``
+ * ``$<TARGET_LINKER_FILE_SUFFIX:...>``
+ * ``$<TARGET_PDB_FILE_BASE_NAME:...>``
+
+* The ``$<TARGET_OBJECTS:...>`` :manual:`generator expression
+ <cmake-generator-expressions(7)>` is now supported on ``SHARED``,
+ ``STATIC``, ``MODULE`` libraries and executables.
+
+CTest
+-----
+
+* The :command:`ctest_submit` command learned a new option: ``BUILD_ID``.
+ This can be used to store the ID assigned to this build by CDash to a
+ variable.
+
+* The :command:`ctest_update` command learned to honor a new variable:
+ :variable:`CTEST_UPDATE_VERSION_OVERRIDE`. This can be used to specify
+ the current version of your source tree rather than using the update
+ command to discover the current version that is checked out.
+
+CPack
+-----
+
+* The :cpack_gen:`CPack IFW Generator` gained a new
+ :variable:`CPACK_IFW_PACKAGE_STYLE_SHEET` variable to customize the
+ installer stylesheet.
+
+Deprecated and Removed Features
+===============================
+
+* The :manual:`cmake-server(7)` mode has been deprecated and will be
+ removed from a future version of CMake. Please port clients to use
+ the :manual:`cmake-file-api(7)` instead.
+
+* The :prop_dir:`ADDITIONAL_MAKE_CLEAN_FILES` directory property is now
+ deprecated. Use the :prop_dir:`ADDITIONAL_CLEAN_FILES` directory property
+ instead.
+
+* The variable :variable:`CMAKE_AUTOMOC_RELAXED_MODE` is considered
+ deprecated. Support still exists but will be removed in future versions.
+
+* The :command:`export(PACKAGE)` command now does nothing unless
+ enabled via :variable:`CMAKE_EXPORT_PACKAGE_REGISTRY`.
+ See policy :policy:`CMP0090`.
+
+* The :generator:`Xcode` generator now requires at least Xcode 5.
+
+* An explicit deprecation diagnostic was added for policy ``CMP0066``
+ (``CMP0065`` 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.
+
+Other Changes
+=============
+
+* If a feature specified by :command:`target_compile_features` is available
+ in the compiler's default standard level, CMake 3.14 and below incorrectly
+ added unnecessary ``-std=`` flags that could lower the standard level.
+ This bug has been fixed in CMake 3.15. This behavior change may expose
+ bugs in existing projects that were relying on undocumented implementation
+ details. Specifying compile features only ensures that the compiler runs
+ in a mode that has those features, not that any specific standard level is
+ used or explicit ``-std=`` flag passed.
+
+* CMake learned how to compile C++14 with the IBM AIX XL compiler
+ and the SunPro compiler and to compile C++20 with the AppleClang compiler.
+
+* With MSVC-like compilers the value of :variable:`CMAKE_<LANG>_FLAGS`
+ no longer contains warning flags like ``/W3`` by default.
+ See policy :policy:`CMP0092`.
+
+* IBM Clang-based XL compilers that define ``__ibmxl__`` now use the
+ compiler id ``XLClang`` instead of ``XL``. See policy :policy:`CMP0089`.
+
+* The :command:`file(REMOVE)` and :command:`file(REMOVE_RECURSE)` commands
+ were changed to ignore empty arguments with a warning instead of treating
+ them as a relative path and removing the contents of the current directory.
+
+Updates
+=======
+
+Changes made since CMake 3.15.0 include the following.
+
+3.15.1
+------
+
+* In CMake 3.15.0 support for the GNU-like ``Clang`` compiler targeting the
+ MSVC ABI implemented :variable:`CMAKE_CXX_STANDARD` values 98 and 11 using
+ the corresponding ``-std=`` flags. However, these modes do not work with
+ the MSVC standard library. Therefore CMake 3.15.1 passes C++14 standard
+ flags even for C++98 and C++11. This is consistent with MSVC itself which
+ always runs in a mode aware of C++14.
+
+* Preliminary Swift support added in 3.15.0 has been updated.
+
+3.15.2
+------
+
+* In CMake 3.15.0 and 3.15.1 the :variable:`CMAKE_FIND_PACKAGE_PREFER_CONFIG`
+ variable caused the :command:`find_package` command to fail on a missing
+ package even without the ``REQUIRED`` option. This has been fixed.
+
+3.15.3
+------
+
+* ``CrayPrgEnv`` compiler wrapper support has been updated for the 19.06
+ release of the Cray Programming Environment for which the default linking
+ mode on XC Cray systems is now dynamic instead of static.
+
+3.15.4
+------
+
+* In CMake 3.15.0 through 3.15.3, the :prop_dir:`EXCLUDE_FROM_ALL`
+ directory property was regressed from pre-3.14 behavior and caused
+ targets within the directory to be excluded even from its own "all".
+ This has been fixed.
+ The bug also existed in 3.14.0 through 3.14.6 and is fixed in 3.14.7.
diff --git a/share/cmake-3.18/Help/release/3.16.rst b/share/cmake-3.18/Help/release/3.16.rst
new file mode 100644
index 0000000..f3fdb08
--- /dev/null
+++ b/share/cmake-3.18/Help/release/3.16.rst
@@ -0,0 +1,318 @@
+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.
+
+3.16.7
+------
+
+* Selection of the Objective C or C++ compiler now considers the
+ :envvar:`CC` or :envvar:`CXX` environment variable if the
+ :envvar:`OBJC` or :envvar:`OBJCXX` environment variable is not set.
+
+* The :module:`FindPkgConfig` module now extracts include directories
+ prefixed with ``-isystem`` into the ``*_INCLUDE_DIRS`` variables and
+ :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target properties.
+ Previously they would be places in ``*_CFLAGS_OTHER`` variables and
+ :prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties.
diff --git a/share/cmake-3.18/Help/release/3.17.rst b/share/cmake-3.18/Help/release/3.17.rst
new file mode 100644
index 0000000..b7c66d8
--- /dev/null
+++ b/share/cmake-3.18/Help/release/3.17.rst
@@ -0,0 +1,348 @@
+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.
+
+* The :cpack_gen:`CPack NSIS Generator` now requires NSIS 3.0 or later.
+
+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.
+
+Updates
+=======
+
+Changes made since CMake 3.17.0 include the following.
+
+3.17.1
+------
+
+* CMake 3.17.0 updated the :cpack_gen:`CPack NSIS Generator` with changes
+ that require NSIS 3.0 or later. CMake 3.17.1 now enforces the use
+ of a sufficiently new version.
+
+3.17.3
+------
+
+* Selection of the Objective C or C++ compiler now considers the
+ :envvar:`CC` or :envvar:`CXX` environment variable if the
+ :envvar:`OBJC` or :envvar:`OBJCXX` environment variable is not set.
+
+* The :module:`FindPkgConfig` module now extracts include directories
+ prefixed with ``-isystem`` into the ``*_INCLUDE_DIRS`` variables and
+ :prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES` target properties.
+ Previously they would be places in ``*_CFLAGS_OTHER`` variables and
+ :prop_tgt:`INTERFACE_COMPILE_OPTIONS` target properties.
diff --git a/share/cmake-3.18/Help/release/3.18.rst b/share/cmake-3.18/Help/release/3.18.rst
new file mode 100644
index 0000000..ba80d2b
--- /dev/null
+++ b/share/cmake-3.18/Help/release/3.18.rst
@@ -0,0 +1,341 @@
+CMake 3.18 Release Notes
+************************
+
+.. only:: html
+
+ .. contents::
+
+Changes made since CMake 3.17 include the following.
+
+New Features
+============
+
+Languages
+---------
+
+* The ``CUDA`` language can now be compiled using Clang on non-Windows
+ platforms. Separable compilation is not yet supported on any platform.
+
+Command-Line
+------------
+
+* :manual:`cmake(1)` gained support for profiling of CMake scripts through
+ the parameters ``--profiling-output`` and ``--profiling-format``.
+
+* :manual:`cmake(1)` gained a ``cat`` command line
+ option that can be used to concatenate files and print them
+ on standard output.
+
+Commands
+--------
+
+* The :command:`add_library` and :command:`add_executable` commands
+ learned to create :ref:`Alias Targets` referencing non-``GLOBAL``
+ :ref:`Imported Targets`.
+
+* The :command:`cmake_language()` command was added for meta-operations on
+ scripted or built-in commands, starting with a mode to ``CALL`` other
+ commands, and ``EVAL CODE`` to inplace evaluate a CMake script.
+
+* The :command:`execute_process` command gained the ``ECHO_OUTPUT_VARIABLE``
+ and ``ECHO_ERROR_VARIABLE`` options.
+
+* The :command:`export` command now raise an error if used multiple times with
+ same ``FILE`` without ``APPEND``. See policy :policy:`CMP0103`.
+
+* The :command:`file` command gained the ``ARCHIVE_CREATE`` and
+ ``ARCHIVE_EXTRACT`` subcommands to expose the :manual:`cmake(1)` ``-E tar``
+ functionality to CMake scripting code.
+
+* The :command:`file(CONFIGURE)` subcommand was created in order to replicate
+ the :command:`configure_file` functionality without resorting to a
+ pre-existing file on disk as input. The content is instead passed as a
+ string.
+
+* The :command:`file(UPLOAD)` command gained ``TLS_VERIFY`` and ``TLS_CAINFO``
+ options to control server certificate verification.
+
+* The :command:`find_program`, :command:`find_library`, :command:`find_path`
+ and :command:`find_file` commands gained a new ``REQUIRED`` option that will
+ stop processing with an error message if nothing is found.
+
+* The :command:`get_property` command with ``SOURCE`` scope gained the
+ ``DIRECTORY`` and ``TARGET_DIRECTORY`` options to get a property
+ from the provided directory scope.
+
+* The :command:`get_source_file_property` command gained the ``DIRECTORY``
+ and ``TARGET_DIRECTORY`` options to get a property from the
+ provided directory scope.
+
+* The :command:`list` operation ``SORT`` gained the ``NATURAL`` sort
+ option to sort using natural order (see ``strverscmp(3)`` manual).
+
+* The :command:`set_property` command with the ``SOURCE`` scope gained the
+ ``DIRECTORY`` and ``TARGET_DIRECTORY`` options to set properties
+ in the provided directory scopes.
+
+* The :command:`set_source_files_properties` command gained the ``DIRECTORY``
+ and ``TARGET_DIRECTORY`` options to set properties in the provided
+ directory scopes.
+
+* The :command:`string` command learned a new ``HEX`` sub-command, which
+ converts strings into their hexadecimal representation.
+
+Variables
+---------
+
+* A :variable:`CMAKE_CUDA_ARCHITECTURES` variable was added to specify
+ CUDA output architectures. Users are encouraged to use this instead of
+ specifying options manually, as this approach is compiler-agnostic.
+ The variable is initialized automatically when
+ :variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>` is ``NVIDIA``.
+ The variable is used to initialize the new :prop_tgt:`CUDA_ARCHITECTURES`
+ target property. See policy :policy:`CMP0104`.
+
+* The :variable:`CMAKE_PCH_WARN_INVALID` variable was added to initialize the
+ :prop_tgt:`PCH_WARN_INVALID` target property to allow the removal of the
+ precompiled header invalid warning.
+
+Properties
+----------
+
+* The :prop_tgt:`CUDA_ARCHITECTURES` target property was added to specify
+ CUDA output architectures. Users are encouraged to use this instead of
+ specifying options manually, as this approach is compiler-agnostic.
+ The property is initialized by the new :variable:`CMAKE_CUDA_ARCHITECTURES`
+ variable. See policy :policy:`CMP0104`.
+
+* The :prop_tgt:`Fortran_PREPROCESS` target property and
+ :prop_sf:`Fortran_PREPROCESS` source-file property were added to
+ control preprocessing of Fortran source files.
+
+* The :prop_tgt:`FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>` target property
+ and associated :variable:`CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>`
+ variable were created to allow adding a postfix to the name of a
+ framework file name when using a multi-config generator.
+
+* The :prop_sf:`OBJECT_OUTPUTS` source file property now supports
+ :manual:`generator expressions <cmake-generator-expressions(7)>`.
+
+* The :prop_tgt:`PCH_WARN_INVALID` target property was added to allow the
+ removal of the precompiled header invalid warning.
+
+* The :prop_tgt:`UNITY_BUILD_MODE` target property was added to tell
+ generators which algorithm to use for grouping included source
+ files.
+
+* The :prop_tgt:`VS_SOURCE_SETTINGS_<tool>` target property was added
+ to tell :ref:`Visual Studio Generators` for VS 2010 and above to add
+ metadata to non-built source files using ``<tool>``.
+
+* The :prop_sf:`VS_SETTINGS` source file property was added to tell
+ :ref:`Visual Studio Generators` for VS 2010 and above to add
+ metadata to a non-built source file.
+
+* The :prop_tgt:`VS_PLATFORM_TOOLSET` target property was added to tell
+ :ref:`Visual Studio Generators` for VS 2010 and above to override
+ the platform toolset.
+
+* The :prop_tgt:`VS_SOLUTION_DEPLOY` target property was added to tell
+ :ref:`Visual Studio Generators` for VS 2010 and above to mark a
+ target for deployment even when not building for Windows Phone/Store/CE.
+
+Modules
+-------
+
+* The :module:`CheckLinkerFlag` module has been added to provide a
+ facility to check validity of link flags.
+
+* The :module:`ExternalProject` module :command:`ExternalProject_Add` command
+ gained a new ``GIT_REMOTE_UPDATE_STRATEGY`` keyword. This can be used to
+ specify how failed rebase operations during a git update should be handled.
+ The ``CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY`` variable was also added as a
+ global default and is honored by both the :module:`ExternalProject` and
+ :module:`FetchContent` modules.
+
+* The :module:`FetchContent` module :command:`FetchContent_Declare` command
+ now supports a ``SOURCE_SUBDIR`` option. It can be used to direct
+ :command:`FetchContent_MakeAvailable` to look in a different location
+ for the ``CMakeLists.txt`` file.
+
+* The :module:`FindBLAS` module now provides an imported target.
+
+* The :module:`FindCUDAToolkit` module:
+
+ * gained the variable
+ ``CUDAToolkit_LIBRARY_ROOT``, which is the directory containing the
+ ``nvvm`` directory and ``version.txt``.
+
+ * uses toolkit and library root found during ``CUDA`` compiler detection.
+
+* The :module:`FindLAPACK` module now provides an imported target.
+
+* The :module:`FindPython3`, :module:`FindPython2` and :module:`FindPython`
+ modules:
+
+ * gained the possibility to create per-artifact cache variables for
+ interactive editing in :manual:`cmake-gui(1)` and :manual:`ccmake(1)`.
+
+ * gained sub-components ``Development.Module`` and
+ ``Development.Embed`` under the ``Development`` component.
+
+ * gained the capability to specify which Python implementations to find,
+ including ``IronPython`` and ``PyPy``.
+
+* The :module:`FindRuby` module input and output variables were all renamed
+ from ``RUBY_`` to ``Ruby_`` for consistency with other find modules.
+ Input variables of the old case will be honored if provided, and output
+ variables of the old case are always provided.
+
+* The :module:`FindSWIG` module now accepts target languages as ``COMPONENTS``
+ and ``OPTIONAL_COMPONENTS`` arguments to ``find_package``.
+
+* The :module:`GoogleTest` module :command:`gtest_discover_tests` command:
+
+ * gained a new ``DISCOVERY_MODE`` option to control when the test
+ discovery step is run. It offers a new ``PRE_TEST`` setting to
+ run the discovery at test time instead of build time. A new
+ ``CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE`` variable can be used
+ to change the default globally.
+
+ * gained a new optional parameter ``XML_OUTPUT_DIR``. When set the
+ JUnit XML test results are stored in that directory.
+
+* The :module:`FindLibXslt` module now provides imported targets.
+
+* The :module:`UseSWIG` module now supports Fortran as a target language if
+ the ``SWIG_EXECUTABLE`` is SWIG-Fortran_.
+
+.. _`SWIG-Fortran`: https://github.com/swig-fortran/swig
+
+Generator Expressions
+---------------------
+
+* The ``$<DEVICE_LINK:...>`` and ``$<HOST_LINK:...>``
+ :manual:`generator expressions <cmake-generator-expressions(7)>` were added
+ to manage device and host link steps.
+
+* The ``$<LINK_LANGUAGE:...>`` and ``$<LINK_LANG_AND_ID:...>``
+ :manual:`generator expressions <cmake-generator-expressions(7)>` were added.
+
+CTest
+-----
+
+* :manual:`ctest(1)` gained a new :variable:`CTEST_RESOURCE_SPEC_FILE`
+ variable, which can be used to specify a
+ :ref:`resource specification file <ctest-resource-specification-file>`.
+
+* :manual:`ctest(1)` gained a ``--stop-on-failure`` option,
+ which can be used to stop running the tests once one has failed.
+
+* The :command:`ctest_test` command gained a ``STOP_ON_FAILURE`` option
+ which can be used to stop running the tests once one has failed.
+
+* The :module:`CTestCoverageCollectGCOV` module
+ :command:`ctest_coverage_collect_gcov` command gained a
+ ``TARBALL_COMPRESSION`` option to control compression of the
+ tarball of collected results.
+
+CPack
+-----
+
+* The :cpack_gen:`CPack Archive Generator`'s ``TXZ`` format learned the
+ :variable:`CPACK_ARCHIVE_THREADS` variable to enable parallel compression.
+ Requires support in the ``liblzma`` used by CMake.
+
+* The :cpack_gen:`CPack NSIS Generator` gained a new variable
+ :variable:`CPACK_NSIS_MANIFEST_DPI_AWARE` to declare that the
+ installer is DPI-aware.
+
+* The :cpack_gen:`CPack RPM Generator` gained
+ :variable:`CPACK_RPM_PRE_TRANS_SCRIPT_FILE` and
+ :variable:`CPACK_RPM_POST_TRANS_SCRIPT_FILE`
+ variables to specify pre- and post-transaction scripts.
+
+Other
+-----
+
+* :manual:`cmake-gui(1)` now populates its generator selection
+ widget default value from the :envvar:`CMAKE_GENERATOR` environment
+ variable. Additionally, environment variables
+ :envvar:`CMAKE_GENERATOR_PLATFORM` and :envvar:`CMAKE_GENERATOR_TOOLSET`
+ are used to populate their respective widget defaults.
+
+* :manual:`ccmake(1)` learned to read a :envvar:`CCMAKE_COLORS`
+ environment variable to customize colors.
+
+Deprecated and Removed Features
+===============================
+
+* The :module:`Documentation` module has been deprecated via
+ :policy:`CMP0106`. This module was essentially VTK code that CMake should
+ not be shipping anymore.
+
+* An explicit deprecation diagnostic was added for policy ``CMP0070``
+ and policy ``CMP0071`` (``CMP0069`` 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.
+
+Other Changes
+=============
+
+* On Windows, the :generator:`Ninja` and :generator:`Ninja Multi-Config`
+ generators, when a compiler is not explicitly specified, now select
+ the first compiler (of any name) found in directories listed by the
+ ``PATH`` environment variable.
+
+* The :prop_tgt:`LINK_OPTIONS` and :prop_tgt:`INTERFACE_LINK_OPTIONS` target
+ properties are now used for the device link step.
+ See policy :policy:`CMP0105`.
+
+* Creation of an ``ALIAS`` target overwriting an existing target now raises an
+ error. See policy :policy:`CMP0107`.
+
+* Linking a target to itself through an alias now raises an error.
+ See policy :policy:`CMP0108`.
+
+* The :module:`FindPackageHandleStandardArgs` module option ``REQUIRED_VARS``
+ is now optional if ``HANDLE_COMPONENTS`` is specified.
+
+* The :command:`source_group` command now also recognizes forward slashes
+ as subgroup delimiters, not just backslashes.
+
+* :manual:`ctest(1)` now logs environment variables that it sets for each test,
+ either due to the :prop_test:`ENVIRONMENT` property or the
+ :ref:`resource allocation <ctest-resource-allocation>` feature, and submits
+ this log to CDash. It does not log environment variables that were set
+ outside of CTest.
+
+* When building CMake itself from source and not using a system-provided
+ libcurl, HTTP/2 support is now enabled for commands supporting
+ network communication via ``http(s)``, such as :command:`file(DOWNLOAD)`,
+ :command:`file(UPLOAD)`, and :command:`ctest_submit`.
+ The precompiled binaries provided on ``cmake.org`` now support HTTP/2.
+
+* The :manual:`cmake-file-api(7)` "codemodel" version 2 ``version`` field has
+ been updated to 2.1.
+
+* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained
+ a new ``precompileHeaders`` field in the ``compileGroups`` objects.
+
+Updates
+=======
+
+Changes made since CMake 3.18.0 include the following.
+
+3.18.1
+------
+
+* The :generator:`Xcode` generator, when :variable:`CMAKE_OSX_ARCHITECTURES`
+ is not defined, now selects ``$(NATIVE_ARCH_ACTUAL)`` as the default
+ architecture (the Xcode ``ARCHS`` setting). This is needed for Xcode 12
+ to select the host's architecture, which older versions of Xcode did
+ by default.
+
+* In CMake 3.18.0 the :command:`add_test` command learned to support
+ special characters in test names. This was accidentally left out of
+ its release notes. Unfortunately the fix breaks existing projects
+ that were using manual quoting or escaping to work around the prior
+ limitation. This fix has been reverted in 3.18.1, but may be
+ re-introduced in future versions of CMake with a policy for compatibility.
diff --git a/share/cmake-3.17/Help/release/3.2.rst b/share/cmake-3.18/Help/release/3.2.rst
index 992d44b..992d44b 100644
--- a/share/cmake-3.17/Help/release/3.2.rst
+++ b/share/cmake-3.18/Help/release/3.2.rst
diff --git a/share/cmake-3.17/Help/release/3.3.rst b/share/cmake-3.18/Help/release/3.3.rst
index 6657e8d..6657e8d 100644
--- a/share/cmake-3.17/Help/release/3.3.rst
+++ b/share/cmake-3.18/Help/release/3.3.rst
diff --git a/share/cmake-3.17/Help/release/3.4.rst b/share/cmake-3.18/Help/release/3.4.rst
index 943d267..943d267 100644
--- a/share/cmake-3.17/Help/release/3.4.rst
+++ b/share/cmake-3.18/Help/release/3.4.rst
diff --git a/share/cmake-3.17/Help/release/3.5.rst b/share/cmake-3.18/Help/release/3.5.rst
index 58a5d4e..58a5d4e 100644
--- a/share/cmake-3.17/Help/release/3.5.rst
+++ b/share/cmake-3.18/Help/release/3.5.rst
diff --git a/share/cmake-3.17/Help/release/3.6.rst b/share/cmake-3.18/Help/release/3.6.rst
index f0add07..f0add07 100644
--- a/share/cmake-3.17/Help/release/3.6.rst
+++ b/share/cmake-3.18/Help/release/3.6.rst
diff --git a/share/cmake-3.17/Help/release/3.7.rst b/share/cmake-3.18/Help/release/3.7.rst
index 345c056..345c056 100644
--- a/share/cmake-3.17/Help/release/3.7.rst
+++ b/share/cmake-3.18/Help/release/3.7.rst
diff --git a/share/cmake-3.17/Help/release/3.8.rst b/share/cmake-3.18/Help/release/3.8.rst
index de51a7b..de51a7b 100644
--- a/share/cmake-3.17/Help/release/3.8.rst
+++ b/share/cmake-3.18/Help/release/3.8.rst
diff --git a/share/cmake-3.17/Help/release/3.9.rst b/share/cmake-3.18/Help/release/3.9.rst
index 89da627..89da627 100644
--- a/share/cmake-3.17/Help/release/3.9.rst
+++ b/share/cmake-3.18/Help/release/3.9.rst
diff --git a/share/cmake-3.17/Help/release/dev.txt b/share/cmake-3.18/Help/release/dev.txt
index 2cf9193..2cf9193 100644
--- a/share/cmake-3.17/Help/release/dev.txt
+++ b/share/cmake-3.18/Help/release/dev.txt
diff --git a/share/cmake-3.18/Help/release/index.rst b/share/cmake-3.18/Help/release/index.rst
new file mode 100644
index 0000000..4578b3a
--- /dev/null
+++ b/share/cmake-3.18/Help/release/index.rst
@@ -0,0 +1,34 @@
+: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.18 <3.18>
+ 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.17/Help/variable/ANDROID.rst b/share/cmake-3.18/Help/variable/ANDROID.rst
index fede4ca..fede4ca 100644
--- a/share/cmake-3.17/Help/variable/ANDROID.rst
+++ b/share/cmake-3.18/Help/variable/ANDROID.rst
diff --git a/share/cmake-3.17/Help/variable/APPLE.rst b/share/cmake-3.18/Help/variable/APPLE.rst
index 810d5fc..810d5fc 100644
--- a/share/cmake-3.17/Help/variable/APPLE.rst
+++ b/share/cmake-3.18/Help/variable/APPLE.rst
diff --git a/share/cmake-3.17/Help/variable/BORLAND.rst b/share/cmake-3.18/Help/variable/BORLAND.rst
index badb733..badb733 100644
--- a/share/cmake-3.17/Help/variable/BORLAND.rst
+++ b/share/cmake-3.18/Help/variable/BORLAND.rst
diff --git a/share/cmake-3.17/Help/variable/BUILD_SHARED_LIBS.rst b/share/cmake-3.18/Help/variable/BUILD_SHARED_LIBS.rst
index 53087b2..53087b2 100644
--- a/share/cmake-3.17/Help/variable/BUILD_SHARED_LIBS.rst
+++ b/share/cmake-3.18/Help/variable/BUILD_SHARED_LIBS.rst
diff --git a/share/cmake-3.17/Help/variable/CACHE.rst b/share/cmake-3.18/Help/variable/CACHE.rst
index 2cef27e..2cef27e 100644
--- a/share/cmake-3.17/Help/variable/CACHE.rst
+++ b/share/cmake-3.18/Help/variable/CACHE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst b/share/cmake-3.18/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
index b6d0054..b6d0054 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ABSOLUTE_DESTINATION_FILES.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst
index c64dd48..c64dd48 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AIX_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
index 8862ba9..8862ba9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_API.rst
index c07a05a..c07a05a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_API.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API_MIN.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_API_MIN.rst
index 0246c75..0246c75 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_API_MIN.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_API_MIN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH.rst
index b91ca57..b91ca57 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
index 0a3ed3c..0a3ed3c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARCH_ABI.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_MODE.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
index ad3c37c..ad3c37c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_MODE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_NEON.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
index 4b7ae03..4b7ae03 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ARM_NEON.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
index c372fe4..c372fe4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_ASSETS_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_GUI.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_GUI.rst
index 1755375..1755375 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_GUI.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_GUI.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
index 451a929..451a929 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
index af83e34..af83e34 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAR_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
index 3dc05e0..3dc05e0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_JAVA_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
index 4191907..4191907 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
index 7cb9527..7cb9527 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK.rst
index d241dd0..d241dd0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
index 8ea1257..8ea1257 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_DEPRECATED_HEADERS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
index 207019a..207019a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
index 22808e3..22808e3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
index 19fb527..19fb527 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROCESS_MAX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD.rst
index b8fdd46..b8fdd46 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
index 8dea009..8dea009 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_PROGUARD_CONFIG_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
index 69a4d0b..69a4d0b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_SECURE_PROPS_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
index 0a96df9..0a96df9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_SKIP_ANT_STEP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
index ea62cab..ea62cab 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_STANDALONE_TOOLCHAIN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STL_TYPE.rst b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
index d174575..d174575 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ANDROID_STL_TYPE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_APPBUNDLE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_APPBUNDLE_PATH.rst
index 1c7ca51..1c7ca51 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_APPBUNDLE_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_APPBUNDLE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AR.rst b/share/cmake-3.18/Help/variable/CMAKE_AR.rst
index 5893677..5893677 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
index c889321..c889321 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
index 94c2b6e..94c2b6e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ARGC.rst b/share/cmake-3.18/Help/variable/CMAKE_ARGC.rst
index 30db2a2..30db2a2 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ARGC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ARGC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ARGV0.rst b/share/cmake-3.18/Help/variable/CMAKE_ARGV0.rst
index c4d1c21..c4d1c21 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ARGV0.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ARGV0.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
index 1398e78..1398e78 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
index dd9499a..dd9499a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_PARALLEL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
index bad9cf2..bad9cf2 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOGEN_VERBOSE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC.rst
index 02e5eb5..02e5eb5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
index 7e1c53d..7e1c53d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_COMPILER_PREDEFINES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
index 5c3662d..5c3662d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_DEPEND_FILTERS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
index ba1b9d2..ba1b9d2 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MACRO_NAMES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
index 09bf5cd..09bf5cd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_MOC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
index dca0b06..dca0b06 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
index 6c0c61b..6c0c61b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOMOC_RELAXED_MODE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTORCC.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTORCC.rst
index 7426105..7426105 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTORCC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTORCC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTORCC_OPTIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
index 815d39d..815d39d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTORCC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC.rst
index 5abefaa..5abefaa 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
index 28fa92f..28fa92f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
index aa132bf..aa132bf 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst b/share/cmake-3.18/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
index 05c366a..05c366a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_BACKWARDS_COMPATIBILITY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BINARY_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_BINARY_DIR.rst
index 3b323b7..3b323b7 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_BINARY_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH.rst
index f5d53b8..f5d53b8 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
index e34ede6..e34ede6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_BUILD_RPATH_USE_ORIGIN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_TOOL.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_TOOL.rst
index 6133491..6133491 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_BUILD_TOOL.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_BUILD_TOOL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_TYPE.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_TYPE.rst
index 2d35635..2d35635 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_BUILD_TYPE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_BUILD_TYPE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
index 30d5d3b..30d5d3b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
index 5b59a6e..5b59a6e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_BUILD_WITH_INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CACHEFILE_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CACHEFILE_DIR.rst
index 8604d0e..8604d0e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CACHEFILE_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CACHEFILE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
index 1e53ed6..1e53ed6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CACHE_MAJOR_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
index 5d174a3..5d174a3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CACHE_MINOR_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
index 22d267c..22d267c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CACHE_PATCH_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CFG_INTDIR.rst
index 842654e..842654e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CFG_INTDIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CFG_INTDIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CL_64.rst b/share/cmake-3.18/Help/variable/CMAKE_CL_64.rst
index 4e80d1f..4e80d1f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CL_64.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CL_64.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
index ad2709d..ad2709d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_COMPILER_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst b/share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
index 80ffce3..80ffce3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst b/share/cmake-3.18/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
index 33cdf6c..33cdf6c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CODELITE_USE_TARGETS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COLOR_MAKEFILE.rst b/share/cmake-3.18/Help/variable/CMAKE_COLOR_MAKEFILE.rst
index bb86ecc..bb86ecc 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_COLOR_MAKEFILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_COLOR_MAKEFILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_COMMAND.rst
index f80b46c..f80b46c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_2005.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_2005.rst
index 134559b..134559b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_2005.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_2005.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
index a40667e..a40667e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
index f1f5cf7..f1f5cf7 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUCXX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
index 3d6dab4..3d6dab4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_COMPILER_IS_GNUG77.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
index ea33c7d..ea33c7d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
index fdeb9ab..fdeb9ab 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CONFIGURATION_TYPES.rst b/share/cmake-3.18/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
index 34e99eb..34e99eb 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CONFIGURATION_TYPES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CONFIG_POSTFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_CONFIG_POSTFIX.rst
index e686a43..e686a43 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CONFIG_POSTFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CONFIG_POSTFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CPACK_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_CPACK_COMMAND.rst
index 559108a..559108a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CPACK_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CPACK_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING.rst b/share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING.rst
index 7e6ec33..7e6ec33 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst b/share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
index 1d013b7..1d013b7 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CROSSCOMPILING_EMULATOR.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CROSS_CONFIGS.rst b/share/cmake-3.18/Help/variable/CMAKE_CROSS_CONFIGS.rst
new file mode 100644
index 0000000..94157f3
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CROSS_CONFIGS.rst
@@ -0,0 +1,15 @@
+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. 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`.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst b/share/cmake-3.18/Help/variable/CMAKE_CTEST_ARGUMENTS.rst
index 0940b46..0940b46 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CTEST_ARGUMENTS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CTEST_ARGUMENTS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CTEST_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_CTEST_COMMAND.rst
index b2942e2..b2942e2 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CTEST_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CTEST_COMMAND.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CUDA_ARCHITECTURES.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_ARCHITECTURES.rst
new file mode 100644
index 0000000..149bffa
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_ARCHITECTURES.rst
@@ -0,0 +1,17 @@
+CMAKE_CUDA_ARCHITECTURES
+------------------------
+
+Default value for :prop_tgt:`CUDA_ARCHITECTURES` property of targets.
+
+This is initialized as follows depending on :variable:`CMAKE_CUDA_COMPILER_ID <CMAKE_<LANG>_COMPILER_ID>`:
+
+- For ``Clang``: the oldest architecture that works.
+
+- For ``NVIDIA``: the default architecture chosen by the compiler.
+ See policy :policy:`CMP0104`.
+
+Users are encouraged to override this, as the default varies across compilers
+and compiler versions.
+
+This variable is used to initialize the :prop_tgt:`CUDA_ARCHITECTURES` property
+on all targets. See the target property for additional information.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst
index 2cd2650..2cd2650 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
index 4fe758e..4fe758e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
index 6d34c5c..6d34c5c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
index fc835cd..fc835cd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
new file mode 100644
index 0000000..e3205d3
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_RUNTIME_LIBRARY.rst
@@ -0,0 +1,25 @@
+CMAKE_CUDA_RUNTIME_LIBRARY
+--------------------------
+
+Select the CUDA runtime library for use when compiling and linking CUDA.
+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 an appropriate default value based on the compiler 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.17/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
index eef92fb..eef92fb 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_SEPARABLE_COMPILATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD.rst
index 6c23031..6c23031 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
index 935d605..935d605 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
index 7de50a5..7de50a5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
index 40496b5..40496b5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_BINARY_DIR.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION.rst
new file mode 100644
index 0000000..fb7f610
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION.rst
@@ -0,0 +1,10 @@
+CMAKE_CURRENT_FUNCTION
+----------------------
+
+When executing code inside a :command:`function`, this variable
+contains the name of the current function. It can be useful for
+diagnostic or debug messages.
+
+See also :variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE` and
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE`.
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
new file mode 100644
index 0000000..44ae1e5
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_DIR.rst
@@ -0,0 +1,41 @@
+CMAKE_CURRENT_FUNCTION_LIST_DIR
+-------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the full directory of the listfile that defined the current function.
+
+It is quite common practice in CMake for modules to use some additional files,
+such as templates to be copied in after substituting CMake variables.
+In such cases, a function needs to know where to locate those files in a way
+that doesn't depend on where the function is called. Without
+``CMAKE_CURRENT_FUNCTION_LIST_DIR``, the code to do that would typically use
+the following pattern:
+
+.. code-block:: cmake
+
+ set(_THIS_MODULE_BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
+
+ function(foo)
+ configure_file(
+ "${_THIS_MODULE_BASE_DIR}/some.template.in"
+ some.output
+ )
+ endfunction()
+
+Using ``CMAKE_CURRENT_FUNCTION_LIST_DIR`` inside the function instead
+eliminates the need for the extra variable which would otherwise be visible
+outside the function's scope.
+The above example can be written in the more concise and more robust form:
+
+.. code-block:: cmake
+
+ function(foo)
+ configure_file(
+ "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/some.template.in"
+ some.output
+ )
+ endfunction()
+
+See also :variable:`CMAKE_CURRENT_FUNCTION`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE` and
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE`.
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
new file mode 100644
index 0000000..c737af9
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_FILE.rst
@@ -0,0 +1,9 @@
+CMAKE_CURRENT_FUNCTION_LIST_FILE
+--------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the full path to the listfile that defined the current function.
+
+See also :variable:`CMAKE_CURRENT_FUNCTION`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR` and
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE`.
diff --git a/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
new file mode 100644
index 0000000..ad6282e
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_FUNCTION_LIST_LINE.rst
@@ -0,0 +1,10 @@
+CMAKE_CURRENT_FUNCTION_LIST_LINE
+--------------------------------
+
+When executing code inside a :command:`function`, this variable
+contains the line number in the listfile where the current function
+was defined.
+
+See also :variable:`CMAKE_CURRENT_FUNCTION`,
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR` and
+:variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE`.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
index ebc3ab9..ebc3ab9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
index 84b0eee..84b0eee 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_LINE.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
index 60e8e26..60e8e26 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_LIST_LINE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
index c1b755a..c1b755a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CURRENT_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst b/share/cmake-3.18/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
index 5c59f95..5c59f95 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CXX_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CXX_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_CXX_EXTENSIONS.rst
index 4a92425..4a92425 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CXX_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CXX_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD.rst
index 8a8bdff..8a8bdff 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
index 4c71058..4c71058 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_CXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_C_COMPILE_FEATURES.rst b/share/cmake-3.18/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
index 8d1eca0..8d1eca0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_C_COMPILE_FEATURES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_C_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_C_EXTENSIONS.rst
index fa510d4..fa510d4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_C_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_C_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_C_STANDARD.rst
index b55e00c..b55e00c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_C_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
index 7f70f6e..7f70f6e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_C_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEBUG_POSTFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_DEBUG_POSTFIX.rst
index 08577a5..08577a5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DEBUG_POSTFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DEBUG_POSTFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst b/share/cmake-3.18/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
index a1fa1ff..a1fa1ff 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DEBUG_TARGET_PROPERTIES.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst b/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
new file mode 100644
index 0000000..aa4f82d
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_BUILD_TYPE.rst
@@ -0,0 +1,12 @@
+CMAKE_DEFAULT_BUILD_TYPE
+------------------------
+
+Specifies the configuration to use by default in a ``build.ninja`` file in the
+:generator:`Ninja Multi-Config` generator. 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`.
diff --git a/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_CONFIGS.rst b/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
new file mode 100644
index 0000000..84c642a
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_DEFAULT_CONFIGS.rst
@@ -0,0 +1,19 @@
+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. 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.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst b/share/cmake-3.18/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
index 7179071..7179071 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DEPENDS_IN_PROJECT_ONLY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DIRECTORY_LABELS.rst b/share/cmake-3.18/Help/variable/CMAKE_DIRECTORY_LABELS.rst
index 2a6c410..2a6c410 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DIRECTORY_LABELS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DIRECTORY_LABELS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst b/share/cmake-3.18/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
index ed60020..ed60020 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst b/share/cmake-3.18/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
index 7c30ede..7c30ede 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DISABLE_PRECOMPILE_HEADERS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DL_LIBS.rst b/share/cmake-3.18/Help/variable/CMAKE_DL_LIBS.rst
index 50d313d..50d313d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DL_LIBS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DL_LIBS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst b/share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst
index 8edcd1e..8edcd1e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
index c2eef9e..c2eef9e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
index 331aae8..331aae8 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
index 7b4367d..7b4367d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
index 6e8a408..6e8a408 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_MAKE_ARGUMENTS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
index 314efe5..314efe5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_RESOURCE_ENCODING.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_VERSION.rst
index 8cc7882..8cc7882 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ECLIPSE_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ECLIPSE_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EDIT_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_EDIT_COMMAND.rst
index 2f4ab1f..2f4ab1f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EDIT_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EDIT_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ENABLE_EXPORTS.rst b/share/cmake-3.18/Help/variable/CMAKE_ENABLE_EXPORTS.rst
index 8848da1..8848da1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ENABLE_EXPORTS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ENABLE_EXPORTS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ERROR_DEPRECATED.rst b/share/cmake-3.18/Help/variable/CMAKE_ERROR_DEPRECATED.rst
index f3a6738..f3a6738 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ERROR_DEPRECATED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ERROR_DEPRECATED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.18/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
index 38e9b7b..38e9b7b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
index 356590f..356590f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXECUTABLE_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst b/share/cmake-3.18/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
index 76561d8..76561d8 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXECUTE_PROCESS_COMMAND_ECHO.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
index 9e108f8..9e108f8 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
index 0cd8113..0cd8113 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
index 592a369..592a369 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
index 0b8afe4..0b8afe4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXE_LINKER_FLAGS_INIT.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
index 6d2450b..6d2450b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXPORT_COMPILE_COMMANDS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
index 768ed64..768ed64 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
index 3476a19..3476a19 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXPORT_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXTRA_GENERATOR.rst b/share/cmake-3.18/Help/variable/CMAKE_EXTRA_GENERATOR.rst
index 2c92323..2c92323 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXTRA_GENERATOR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXTRA_GENERATOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst b/share/cmake-3.18/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
index a130adb..a130adb 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_APPBUNDLE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_APPBUNDLE.rst
index 7a05fac..7a05fac 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_APPBUNDLE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_APPBUNDLE.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_FIND_DEBUG_MODE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
new file mode 100644
index 0000000..f5fd8ce
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_DEBUG_MODE.rst
@@ -0,0 +1,23 @@
+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.17/Help/variable/CMAKE_FIND_FRAMEWORK.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_FRAMEWORK.rst
index 4d5078f..4d5078f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_FRAMEWORK.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_FRAMEWORK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
index ada8955..ada8955 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
index 58354b2..58354b2 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_PREFIXES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
index 4a64e33..4a64e33 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_LIBRARY_SUFFIXES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
index 789dc99..789dc99 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_NO_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
index bd1a30f..bd1a30f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
index 4ee9d8b..4ee9d8b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
index 107c183..107c183 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
index db658a1..db658a1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_PREFER_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
index dfbde20..dfbde20 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
index 99e4ec1..99e4ec1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
index ba5f3a8..ba5f3a8 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_SORT_ORDER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
index 5c4f23a..5c4f23a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_PACKAGE_WARN_NO_MODULE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH.rst
index 6172c56..6172c56 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
index df1af5a..df1af5a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
index 52ab89d..52ab89d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
index 3872947..3872947 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
index d24a78a..d24a78a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
index ab65e09..ab65e09 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_ROOT_PATH_MODE_XXX.txt
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
index 957e956..957e956 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
index d2bdb09..d2bdb09 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
index b99081d..b99081d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
index 7c7ca36..7c7ca36 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
index e7f5b0f..e7f5b0f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
index fbaba5a..fbaba5a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
index cb4eec5..cb4eec5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FOLDER.rst b/share/cmake-3.18/Help/variable/CMAKE_FOLDER.rst
index 50a2b88..50a2b88 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FOLDER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FOLDER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK.rst b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK.rst
index 591041c..591041c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst
new file mode 100644
index 0000000..5c7cd23
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_CONFIG.rst
@@ -0,0 +1,8 @@
+CMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>
+---------------------------------------------
+
+Default framework filename postfix under configuration ``<CONFIG>`` when
+using a multi-config generator.
+
+When a framework target is created its :prop_tgt:`FRAMEWORK_MULTI_CONFIG_POSTFIX_<CONFIG>`
+target property is initialized with the value of this variable if it is set.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_PATH.rst
index 13ade4e..13ade4e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_FRAMEWORK_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_FRAMEWORK_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_FORMAT.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_FORMAT.rst
index 1406e59..1406e59 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_Fortran_FORMAT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_Fortran_FORMAT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
index 5aeab07..5aeab07 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
index 1da55ca..1da55ca 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODDIR_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
index 2f83880..2f83880 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODOUT_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
index 3c7edc1..3c7edc1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_Fortran_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_Fortran_PREPROCESS.rst b/share/cmake-3.18/Help/variable/CMAKE_Fortran_PREPROCESS.rst
new file mode 100644
index 0000000..74b2d8b
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_Fortran_PREPROCESS.rst
@@ -0,0 +1,8 @@
+CMAKE_Fortran_PREPROCESS
+------------------------
+
+Default value for :prop_tgt:`Fortran_PREPROCESS` of targets.
+
+This variable is used to initialize the :prop_tgt:`Fortran_PREPROCESS`
+property on all the targets. See that target property for additional
+information.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR.rst b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR.rst
index ec52cd4..ec52cd4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_INSTANCE.rst b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
index 3657ed4..3657ed4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_INSTANCE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_PLATFORM.rst b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
index 2c115a3..2c115a3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_PLATFORM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
index 53ad2f3..53ad2f3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GENERATOR_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst
index b6768a1..b6768a1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GHS_NO_SOURCE_GROUP_FILE.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
index 8587742..8587742 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
index c86a5d0..c86a5d0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTOGEN_TARGET_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
index f92128c..f92128c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
index c6e05de..c6e05de 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GLOBAL_AUTORCC_TARGET_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_GNUtoMS.rst b/share/cmake-3.18/Help/variable/CMAKE_GNUtoMS.rst
index 9c0f59e..9c0f59e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_GNUtoMS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_GNUtoMS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOME_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_HOME_DIRECTORY.rst
index b03d956..b03d956 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOME_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_HOME_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_APPLE.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_APPLE.rst
index 9c205ec..9c205ec 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOST_APPLE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_HOST_APPLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SOLARIS.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SOLARIS.rst
index 82b5d69..82b5d69 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOST_SOLARIS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_HOST_SOLARIS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM.rst
index 12d11d1..12d11d1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
index e892677..e892677 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_NAME.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
index 5f08728..5f08728 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_PROCESSOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
index ed23070..ed23070 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_HOST_SYSTEM_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_UNIX.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_UNIX.rst
index 817a957..817a957 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOST_UNIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_HOST_UNIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_HOST_WIN32.rst b/share/cmake-3.18/Help/variable/CMAKE_HOST_WIN32.rst
index 876b34c..876b34c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_HOST_WIN32.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_HOST_WIN32.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_IGNORE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_IGNORE_PATH.rst
index 4bca34b..4bca34b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_IGNORE_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_IGNORE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
index 1561a1d..1561a1d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
index 11aeab7..11aeab7 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_IMPORT_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
index 98d99eb..98d99eb 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
index 697682b..697682b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
index e0f2a2e..e0f2a2e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
index 37d0a3d..37d0a3d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_PATH.rst
index 4918e99..4918e99 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INCLUDE_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INCLUDE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
index 57160f1..57160f1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
index f994fbe..f994fbe 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_MESSAGE.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_MESSAGE.rst
index 304df26..304df26 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_MESSAGE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_MESSAGE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_NAME_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
index 5ba4c04..5ba4c04 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_NAME_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX.rst
index 02ba645..02ba645 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
index 2a5842d..2a5842d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
index 76ca3da..76ca3da 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH.rst
index 813d1e0..813d1e0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INSTALL_RPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH.rst
new file mode 100644
index 0000000..34524d1
--- /dev/null
+++ b/share/cmake-3.18/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 variable is used to initialize the target property
+:prop_tgt:`INSTALL_RPATH_USE_LINK_PATH` for all targets.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst b/share/cmake-3.18/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
index 9693bf6..9693bf6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INTERNAL_PLATFORM_ABI.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst b/share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
index b0cbb62..b0cbb62 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
index b291102..b291102 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst b/share/cmake-3.18/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
index c5cb9b6..c5cb9b6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_IOS_INSTALL_COMBINED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOLS.rst b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOLS.rst
index 72b50b4..72b50b4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOLS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOLS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_COMPILE.rst b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
index e5c2d9a..e5c2d9a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_COMPILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_LINK.rst b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_LINK.rst
index eeee6e0..eeee6e0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_LINK.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst
index f9467b3..f9467b3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_JOB_POOL_PRECOMPILE_HEADER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
index d336364..d336364 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_MACHINE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
index db04af3..db04af3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
index 159eb22..159eb22 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_ANDROID_TOOLCHAIN_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
index ab4ad71..ab4ad71 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_APPEND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
index fc295af..fc295af 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_CREATE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
index 1bb5d65..1bb5d65 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_ARCHIVE_FINISH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CLANG_TIDY.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
index bd49de3..bd49de3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_CLANG_TIDY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER.rst
index 89df495..89df495 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ABI.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
index be946c0..be946c0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ABI.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_AR.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_AR.rst
index b83a1d4..b83a1d4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_AR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_AR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
index 054c648..054c648 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
index cbe3544..cbe3544 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_ID.rst
index 8eb4fb6..8eb4fb6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_ID.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
index c76e2d0..c76e2d0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LAUNCHER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
index 9308878..9308878 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_LOADED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
index e050f43..e050f43 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_PREDEFINES_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
index 945160b..945160b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_RANLIB.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
index 656c57d..656c57d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_TARGET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
index 27b0cad..27b0cad 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
index c3cd980..c3cd980 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILER_VERSION_INTERNAL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
index ba59cad..ba59cad 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_COMPILE_OBJECT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPCHECK.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CPPCHECK.rst
index 50b478f..50b478f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPCHECK.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_CPPCHECK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPLINT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CPPLINT.rst
index 3b6f452..3b6f452 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_CPPLINT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_CPPLINT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
index 16fcc03..16fcc03 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
index 807229d..807229d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_SHARED_MODULE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
index 0cff200..0cff200 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_CREATE_STATIC_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS.rst
index 14b2694..14b2694 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
index 1dbd036..1dbd036 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
index 1eb5b3f..1eb5b3f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
index 6be424a..6be424a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
index de7fcfc..de7fcfc 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
new file mode 100644
index 0000000..4a034e8
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_INIT.rst
@@ -0,0 +1,15 @@
+CMAKE_<LANG>_FLAGS_INIT
+-----------------------
+
+Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS` cache entry
+the first time a build tree is configured for language ``<LANG>``.
+This variable is meant to be set by a :variable:`toolchain file
+<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
+the value based on the environment and target platform. For example,
+the contents of a ``xxxFLAGS`` environment variable will be prepended,
+where ``xxx`` will be language-specific but not necessarily the same as
+``<LANG>`` (e.g. :envvar:`CXXFLAGS` for ``CXX``, :envvar:`FFLAGS` for
+``Fortran``, and so on).
+
+See also the configuration-specific
+:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>_INIT` variable.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
index 634fab9..634fab9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
index 1e7003c..1e7003c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
index 3baeab0..3baeab0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
index e7c73fe..e7c73fe 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
index 67a5073..67a5073 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
index 3ab3975..3ab3975 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
index 3d07e91..3d07e91 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_IGNORE_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
index e361fd9..e361fd9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
index e9e04be..e9e04be 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
index 61ccc5a..61ccc5a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
index ec16477..ec16477 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
index 2c8028a..2c8028a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_INCLUDE_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
index 7f888ee..7f888ee 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LIBRARY_ARCHITECTURE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
index ff82f8b..ff82f8b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
index dbbeb0a..dbbeb0a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
index df51407..df51407 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
index faf1481..faf1481 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINKER_WRAPPER_FLAG_SEP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
index abd5891..abd5891 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
index d54f080..d54f080 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FILE_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
index d7bb0d8..d7bb0d8 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
index a378657..a378657 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
index 0fbc566..0fbc566 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_OUTPUT_EXTENSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_PLATFORM_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
index 1b243e3..1b243e3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_PLATFORM_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_ID.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
index 15c87a1..15c87a1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
index d6325e0..d6325e0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIMULATE_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
index 7465923..7465923 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_SIZEOF_DATA_PTR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
index e085fee..e085fee 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_SOURCE_FILE_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
index c8e3d57..c8e3d57 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
index ba6df93..ba6df93 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_STANDARD_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst b/share/cmake-3.18/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
index 1961ea0..1961ea0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LANG_VISIBILITY_PRESET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
index 8a7dcbd..8a7dcbd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
index 1eb2ac2..1eb2ac2 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
index e97296d..e97296d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
index e069cdd..e069cdd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH.rst
index 8135b65..8135b65 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
index ebe5fda..ebe5fda 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LIBRARY_PATH_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
index fa09f9f..fa09f9f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_DEF_FILE_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
index cec7906..cec7906 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_DEPENDS_NO_SHARED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
index 026ca35..026ca35 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_DIRECTORIES_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
index 33865da..33865da 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_INTERFACE_LIBRARIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
index 6858e2c..6858e2c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FILE_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
index b5197e4..b5197e4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
index 0ddafe8..0ddafe8 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
index 54cdaaa..54cdaaa 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_END_STATIC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
index 0d52a31..0d52a31 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_SEARCH_START_STATIC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst b/share/cmake-3.18/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
index 90c4d3f..90c4d3f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_LINK_WHAT_YOU_USE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MACOSX_BUNDLE.rst b/share/cmake-3.18/Help/variable/CMAKE_MACOSX_BUNDLE.rst
index 43ddff5..43ddff5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MACOSX_BUNDLE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MACOSX_BUNDLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MACOSX_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_MACOSX_RPATH.rst
index 2fc648d..2fc648d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MACOSX_RPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MACOSX_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MAJOR_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_MAJOR_VERSION.rst
index 079ad70..079ad70 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MAJOR_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MAJOR_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MAKE_PROGRAM.rst b/share/cmake-3.18/Help/variable/CMAKE_MAKE_PROGRAM.rst
index a3c8b7c..a3c8b7c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MAKE_PROGRAM.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MAKE_PROGRAM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
index ed29afe..ed29afe 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MATCH_COUNT.rst b/share/cmake-3.18/Help/variable/CMAKE_MATCH_COUNT.rst
index 355e834..355e834 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MATCH_COUNT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MATCH_COUNT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MATCH_n.rst b/share/cmake-3.18/Help/variable/CMAKE_MATCH_n.rst
index c7dd623..c7dd623 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MATCH_n.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MATCH_n.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst b/share/cmake-3.18/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
index 7110b16..7110b16 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MAXIMUM_RECURSION_DEPTH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT.rst
index 6b4ca40..6b4ca40 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst
index 7ec218e..7ec218e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_CONTEXT_SHOW.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_INDENT.rst b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_INDENT.rst
index 7e44a4c..7e44a4c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_INDENT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_INDENT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst
index 1d4cfe6..1d4cfe6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MESSAGE_LOG_LEVEL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MFC_FLAG.rst b/share/cmake-3.18/Help/variable/CMAKE_MFC_FLAG.rst
index 2c4d1c5..2c4d1c5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MFC_FLAG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MFC_FLAG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
index f466468..f466468 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MINIMUM_REQUIRED_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MINOR_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_MINOR_VERSION.rst
index f67cfb9..f67cfb9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MINOR_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MINOR_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
index 6372bbd..6372bbd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
index 393263e..393263e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
index 3279014..3279014 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
index 91b39f6..91b39f6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MODULE_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MODULE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_MODULE_PATH.rst
index 4dcf6b5..4dcf6b5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MODULE_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MODULE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
index 22e727f..22e727f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MSVCIDE_RUN_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst b/share/cmake-3.18/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
index 8b54e7e..8b54e7e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_MSVC_RUNTIME_LIBRARY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NETRC.rst b/share/cmake-3.18/Help/variable/CMAKE_NETRC.rst
index 903ec31..903ec31 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_NETRC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_NETRC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NETRC_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_NETRC_FILE.rst
index 0f09afe..0f09afe 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_NETRC_FILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_NETRC_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
index 64091aa..64091aa 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
index 98960c5..98960c5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_NOT_USING_CONFIG_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
index 189f59f..189f59f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_NO_BUILTIN_CHRPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst b/share/cmake-3.18/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
index 61e04b4..61e04b4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_NO_SYSTEM_FROM_IMPORTED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
index 8afa6f2..8afa6f2 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD.rst
index 4e5016a..4e5016a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
index 3a0602a..3a0602a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OBJCXX_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJC_EXTENSIONS.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
index d9619d8..d9619d8 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OBJC_EXTENSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD.rst
index 976c441..976c441 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
index 5c02096..5c02096 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OBJC_STANDARD_REQUIRED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OBJECT_PATH_MAX.rst b/share/cmake-3.18/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
index 9e30cbb..9e30cbb 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OBJECT_PATH_MAX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OSX_ARCHITECTURES.rst b/share/cmake-3.18/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
index fdaca28..fdaca28 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OSX_ARCHITECTURES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst b/share/cmake-3.18/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
index 9df5edd..9df5edd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OSX_DEPLOYMENT_TARGET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OSX_SYSROOT.rst b/share/cmake-3.18/Help/variable/CMAKE_OSX_SYSROOT.rst
index db9fccd..db9fccd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OSX_SYSROOT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_OSX_SYSROOT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_OSX_VARIABLE.txt b/share/cmake-3.18/Help/variable/CMAKE_OSX_VARIABLE.txt
index 16f3c1a..16f3c1a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_OSX_VARIABLE.txt
+++ b/share/cmake-3.18/Help/variable/CMAKE_OSX_VARIABLE.txt
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PARENT_LIST_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_PARENT_LIST_FILE.rst
index cfd8608..cfd8608 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PARENT_LIST_FILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PARENT_LIST_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PATCH_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_PATCH_VERSION.rst
index 991ae76..991ae76 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PATCH_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PATCH_VERSION.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_PCH_WARN_INVALID.rst b/share/cmake-3.18/Help/variable/CMAKE_PCH_WARN_INVALID.rst
new file mode 100644
index 0000000..e152abd
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_PCH_WARN_INVALID.rst
@@ -0,0 +1,5 @@
+CMAKE_PCH_WARN_INVALID
+----------------------
+
+This variable is used to initialize the :prop_tgt:`PCH_WARN_INVALID`
+property of targets when they are created.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
index 763bcb3..763bcb3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
index 4d18eec..4d18eec 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PDB_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst b/share/cmake-3.18/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
index 43582be..43582be 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_POLICY_DEFAULT_CMPNNNN.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
index de71d0e..de71d0e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_POLICY_WARNING_CMPNNNN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst b/share/cmake-3.18/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
index 43b1397..43b1397 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_POSITION_INDEPENDENT_CODE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PREFIX_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_PREFIX_PATH.rst
index 1d4fd0b..1d4fd0b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PREFIX_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PREFIX_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROGRAM_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_PROGRAM_PATH.rst
index 2d0c090..2d0c090 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROGRAM_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROGRAM_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
index 51b0592..51b0592 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_DESCRIPTION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
index ee0bf7c..ee0bf7c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE.rst
index 5835264..5835264 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
index 280c14a..280c14a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_INCLUDE_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_NAME.rst
index 94b8dba..94b8dba 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_NAME.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
index 74247f1..74247f1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst
index db1432d..db1432d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE_BEFORE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION.rst
index 4f8f556..4f8f556 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
index f1001ac..f1001ac 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
index 13202be..13202be 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
index b8570d9..b8570d9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
index e1ad4be..e1ad4be 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_RANLIB.rst b/share/cmake-3.18/Help/variable/CMAKE_RANLIB.rst
index 82672e9..82672e9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_RANLIB.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_RANLIB.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_ROOT.rst b/share/cmake-3.18/Help/variable/CMAKE_ROOT.rst
index 1d0a8af..1d0a8af 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_ROOT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_ROOT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_RULE_MESSAGES.rst b/share/cmake-3.18/Help/variable/CMAKE_RULE_MESSAGES.rst
index 7460a81..7460a81 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_RULE_MESSAGES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_RULE_MESSAGES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
index 6253d4a..6253d4a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
index 080dea6..080dea6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
index 981af60..981af60 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SCRIPT_MODE_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
index 8afabaf..8afabaf 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
index 1f96a32..1f96a32 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
index fce950c..fce950c 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
index 4bf87a0..4bf87a0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
index 185df38..185df38 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
index cb819a7..cb819a7 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SHARED_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
index d6eef98..d6eef98 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
index 81515c3..81515c3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SHARED_MODULE_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SIZEOF_VOID_P.rst b/share/cmake-3.18/Help/variable/CMAKE_SIZEOF_VOID_P.rst
index f5464d1..f5464d1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SIZEOF_VOID_P.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SIZEOF_VOID_P.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
index 8da6100..8da6100 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SKIP_BUILD_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
index 80a68c9..80a68c9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_ALL_DEPENDENCY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
index cc0ac21..cc0ac21 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
index b77bb68..b77bb68 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SKIP_INSTALL_RULES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SKIP_RPATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SKIP_RPATH.rst
index d7ce8e4..d7ce8e4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SKIP_RPATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SKIP_RPATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_SOURCE_DIR.rst
index d1f1798..d1f1798 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SOURCE_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STAGING_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_STAGING_PREFIX.rst
index bdb97fa..bdb97fa 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_STAGING_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_STAGING_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
index 714b5cc..714b5cc 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
index 28dc09d..28dc09d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LIBRARY_SUFFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
index 1a810ce..1a810ce 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
index e561dc6..e561dc6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
index a49d1cb..a49d1cb 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
index 113ca71..113ca71 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_STATIC_LINKER_FLAGS_INIT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst b/share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
index 02c8663..02c8663 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst b/share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
index d654425..d654425 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst b/share/cmake-3.18/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
index 96184dd..96184dd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SUPPRESS_REGENERATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT.rst
index 35b944f..35b944f 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_COMPILE.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT_COMPILE.rst
index e96c62b..e96c62b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_COMPILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT_COMPILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_LINK.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT_LINK.rst
index 88b48ef..88b48ef 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSROOT_LINK.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSROOT_LINK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM.rst
index c7d0d8a..c7d0d8a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
index 666af46..666af46 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_APPBUNDLE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
index 14ba18e..14ba18e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_FRAMEWORK_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
index 6afbd33..6afbd33 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_IGNORE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
index 680404e..680404e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_INCLUDE_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
index 116832b..116832b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_LIBRARY_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_NAME.rst
index fef53ee..fef53ee 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_NAME.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_NAME.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
new file mode 100644
index 0000000..81a7a0b
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
@@ -0,0 +1,53 @@
+CMAKE_SYSTEM_PREFIX_PATH
+------------------------
+
+:ref:`Semicolon-separated list <CMake Language Lists>` of directories specifying installation
+*prefixes* to be searched by the :command:`find_package`,
+:command:`find_program`, :command:`find_library`, :command:`find_file`, and
+:command:`find_path` commands. Each command will add appropriate
+subdirectories (like ``bin``, ``lib``, or ``include``) as specified in its own
+documentation.
+
+By default this contains the system directories for the current system, the
+:variable:`CMAKE_INSTALL_PREFIX`, and the :variable:`CMAKE_STAGING_PREFIX`.
+The installation and staging prefixes may be excluded by setting
+the :variable:`CMAKE_FIND_NO_INSTALL_PREFIX` variable.
+
+The system directories that are contained in ``CMAKE_SYSTEM_PREFIX_PATH`` are
+locations that typically include installed software. An example being
+``/usr/local`` for UNIX based platforms. In addition to standard platform
+locations, CMake will also add values to ``CMAKE_SYSTEM_PREFIX_PATH`` based on
+environment variables. The environment variables and search locations that
+CMake uses may evolve over time, as platforms and their conventions also
+evolve. The following provides an indicative list of environment variables
+and locations that CMake searches, but they are subject to change:
+
+
+CrayLinuxEnvironment:
+ * ``ENV{SYSROOT_DIR}/``
+ * ``ENV{SYSROOT_DIR}/usr``
+ * ``ENV{SYSROOT_DIR}/usr/local``
+
+Darwin:
+ * ``ENV{SDKROOT}/usr`` When ``CMAKE_OSX_SYSROOT`` is not explicitly specified.
+
+OpenBSD:
+ * ``ENV{LOCALBASE}``
+
+Unix:
+ * ``ENV{CONDA_PREFIX}`` when using a conda compiler
+
+Windows:
+ * ``ENV{ProgramW6432}``
+ * ``ENV{ProgramFiles}``
+ * ``ENV{ProgramFiles(x86)}``
+ * ``ENV{SystemDrive}/Program Files``
+ * ``ENV{SystemDrive}/Program Files (x86)``
+
+
+``CMAKE_SYSTEM_PREFIX_PATH`` is *not* intended to be modified by the project;
+use :variable:`CMAKE_PREFIX_PATH` for this.
+
+See also :variable:`CMAKE_SYSTEM_INCLUDE_PATH`,
+:variable:`CMAKE_SYSTEM_LIBRARY_PATH`, :variable:`CMAKE_SYSTEM_PROGRAM_PATH`,
+and :variable:`CMAKE_SYSTEM_IGNORE_PATH`.
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
index 8ad89f1..8ad89f1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROCESSOR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
index 9b70361..9b70361 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_PROGRAM_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_VERSION.rst
index aba8ca3..aba8ca3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_SYSTEM_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_SYSTEM_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
index b4a74eb..b4a74eb 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_Swift_LANGUAGE_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
index b11253b..b11253b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_Swift_MODULE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_Swift_NUM_THREADS.rst b/share/cmake-3.18/Help/variable/CMAKE_Swift_NUM_THREADS.rst
index cb33678..cb33678 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_Swift_NUM_THREADS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_Swift_NUM_THREADS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TOOLCHAIN_FILE.rst b/share/cmake-3.18/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
index 168ee74..168ee74 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_TOOLCHAIN_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
index d731f02..d731f02 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_CONFIGURATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
index 0f96787..0f96787 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
index 5fa8dfc..5fa8dfc 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_TRY_COMPILE_TARGET_TYPE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_TWEAK_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_TWEAK_VERSION.rst
index be2e050..be2e050 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_TWEAK_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_TWEAK_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD.rst b/share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD.rst
index a86cd67..a86cd67 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst b/share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
index 7988d4b..7988d4b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_UNITY_BUILD_BATCH_SIZE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst b/share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
index 622278e..622278e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst b/share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
index e7139ac..e7139ac 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_USER_MAKE_RULES_OVERRIDE_LANG.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst b/share/cmake-3.18/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
index 06fe0fb..06fe0fb 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_USE_RELATIVE_PATHS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst b/share/cmake-3.18/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
index 232a2fd..232a2fd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VERBOSE_MAKEFILE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VERSION.rst
index 872e2fa..872e2fa 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst b/share/cmake-3.18/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
index 150bacc..150bacc 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VISIBILITY_INLINES_HIDDEN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
index f109a9e..f109a9e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_DEVENV_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_GLOBALS.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_GLOBALS.rst
index 83777b6..83777b6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_GLOBALS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_GLOBALS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
index f54472a..f54472a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
index 693ba45..693ba45 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
index ceedf28..ceedf28 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_INTEL_Fortran_PROJECT_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
index 546cdf4..546cdf4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_JUST_MY_CODE_DEBUGGING.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
index 58f2bef..58f2bef 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_MSBUILD_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
index 386c3a9..386c3a9 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_NsightTegra_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
index 7a4642a..7a4642a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
index c18e6fd..c18e6fd 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_NAME_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
index ed2d3f3..ed2d3f3 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
index 67b7f74..67b7f74 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
index 060648a..060648a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
index 99ac90d..99ac90d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
index 4d9b978..4d9b978 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
index 36c4dcc..36c4dcc 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
index 3ec755b..3ec755b 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
index da10bde..da10bde 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_INCLUDE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
index b33754a..b33754a 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
index b022215..b022215 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
index c03f0ae..c03f0ae 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_REFERENCE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
index 0c73f06..0c73f06 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_SDK_SOURCE_DIRECTORIES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst b/share/cmake-3.18/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
index 83b9bc1..83b9bc1 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
index 2eea424..2eea424 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_VS_WINRT_BY_DEFAULT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_WARN_DEPRECATED.rst b/share/cmake-3.18/Help/variable/CMAKE_WARN_DEPRECATED.rst
index 4a224fa..4a224fa 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_WARN_DEPRECATED.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_WARN_DEPRECATED.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.18/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
index 81c1158..81c1158 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_WIN32_EXECUTABLE.rst b/share/cmake-3.18/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
index b96abba..b96abba 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_WIN32_EXECUTABLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst b/share/cmake-3.18/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
index 1636842..1636842 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
index be683d6..be683d6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
index 5b1a003..5b1a003 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
index ea3e240..ea3e240 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
index 210da52..210da52 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_PLATFORM_TOOLSET.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
index b972ba5..b972ba5 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
index 59eb32d..59eb32d 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
index a264d36..a264d36 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
index 71bcf42..71bcf42 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
index 53f55e6..53f55e6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
index 784ceb6..784ceb6 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
+++ b/share/cmake-3.18/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.18/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst
index 4832659..4832659 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ENVIRONMENT.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
index 9350244..9350244 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
index 45a2dad..45a2dad 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
index 94d1c61..94d1c61 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
index 9bf0eb4..9bf0eb4 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
index 4cc21ee..4cc21ee 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
index 6d1b56e..6d1b56e 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
index de40478..de40478 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
index ec5df66..ec5df66 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
diff --git a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
index dcec9b0..dcec9b0 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP.rst
diff --git a/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
new file mode 100644
index 0000000..5bb7907
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY.rst
@@ -0,0 +1,12 @@
+CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
+------------------------------------
+
+Specify the ``Working Directory`` of the *Run* and *Profile*
+actions 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.17/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
index 82e9d76..82e9d76 100644
--- a/share/cmake-3.17/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
+++ b/share/cmake-3.18/Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst b/share/cmake-3.18/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
index 928fe45..928fe45 100644
--- a/share/cmake-3.17/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
+++ b/share/cmake-3.18/Help/variable/CPACK_ABSOLUTE_DESTINATION_FILES.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
index 6cf75e4..6cf75e4 100644
--- a/share/cmake-3.17/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.18/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
index 30ae236..30ae236 100644
--- a/share/cmake-3.17/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+++ b/share/cmake-3.18/Help/variable/CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
index b8e9105..b8e9105 100644
--- a/share/cmake-3.17/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CPACK_INCLUDE_TOPLEVEL_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst b/share/cmake-3.18/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
index 83d5ce7..83d5ce7 100644
--- a/share/cmake-3.17/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
+++ b/share/cmake-3.18/Help/variable/CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst b/share/cmake-3.18/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
index f423e2e..f423e2e 100644
--- a/share/cmake-3.17/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
+++ b/share/cmake-3.18/Help/variable/CPACK_PACKAGING_INSTALL_PREFIX.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_SET_DESTDIR.rst b/share/cmake-3.18/Help/variable/CPACK_SET_DESTDIR.rst
index 27fd355..27fd355 100644
--- a/share/cmake-3.17/Help/variable/CPACK_SET_DESTDIR.rst
+++ b/share/cmake-3.18/Help/variable/CPACK_SET_DESTDIR.rst
diff --git a/share/cmake-3.17/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst b/share/cmake-3.18/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
index 3fc5cca..3fc5cca 100644
--- a/share/cmake-3.17/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
+++ b/share/cmake-3.18/Help/variable/CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BINARY_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CTEST_BINARY_DIRECTORY.rst
index fd8461f..fd8461f 100644
--- a/share/cmake-3.17/Help/variable/CTEST_BINARY_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_BINARY_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BUILD_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_BUILD_COMMAND.rst
index 7b13ba0..7b13ba0 100644
--- a/share/cmake-3.17/Help/variable/CTEST_BUILD_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_BUILD_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BUILD_NAME.rst b/share/cmake-3.18/Help/variable/CTEST_BUILD_NAME.rst
index d25d84c..d25d84c 100644
--- a/share/cmake-3.17/Help/variable/CTEST_BUILD_NAME.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_BUILD_NAME.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BZR_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_BZR_COMMAND.rst
index 474d621..474d621 100644
--- a/share/cmake-3.17/Help/variable/CTEST_BZR_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_BZR_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
index d0f9579..d0f9579 100644
--- a/share/cmake-3.17/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_BZR_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CHANGE_ID.rst b/share/cmake-3.18/Help/variable/CTEST_CHANGE_ID.rst
index a423f49..a423f49 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CHANGE_ID.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CHANGE_ID.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CHECKOUT_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_CHECKOUT_COMMAND.rst
index da256f2..da256f2 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CHECKOUT_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CHECKOUT_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst b/share/cmake-3.18/Help/variable/CTEST_CONFIGURATION_TYPE.rst
index 9e277fa..9e277fa 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CONFIGURATION_TYPE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CONFIGURATION_TYPE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CONFIGURE_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_CONFIGURE_COMMAND.rst
index 5561b6d..5561b6d 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CONFIGURE_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CONFIGURE_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_COVERAGE_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_COVERAGE_COMMAND.rst
index a78792e..a78792e 100644
--- a/share/cmake-3.17/Help/variable/CTEST_COVERAGE_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_COVERAGE_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst b/share/cmake-3.18/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
index 2981955..2981955 100644
--- a/share/cmake-3.17/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_COVERAGE_EXTRA_FLAGS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CURL_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_CURL_OPTIONS.rst
index fc5dfc4..fc5dfc4 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CURL_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CURL_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
index d5893c9..d5893c9 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_COVERAGE_EXCLUDE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
index cd65ae3..cd65ae3 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_EXCEPTION.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
index 558f5e5..558f5e5 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_MATCH.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
index 614859b..614859b 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_POST_CONTEXT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
index 74dc47a..74dc47a 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_ERROR_PRE_CONTEXT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
index 5aeae88..5aeae88 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
index 920cb04..920cb04 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
index a1f1cc1..a1f1cc1 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
index 1fbb8c5..1fbb8c5 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
index 578576c..578576c 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_MEMCHECK_IGNORE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
index 40291fe..40291fe 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_MEMCHECK.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_TEST.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_TEST.rst
index 791292c..791292c 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_POST_TEST.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_POST_TEST.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
index 00de8aa..00de8aa 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_MEMCHECK.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_TEST.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
index 6af7152..6af7152 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_PRE_TEST.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
index 57222ca..57222ca 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_TESTS_IGNORE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
index a03d473..a03d473 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_EXCEPTION.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
index 18aa6b3..18aa6b3 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_WARNING_MATCH.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_XXX.txt b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_XXX.txt
index 02d1547..02d1547 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CUSTOM_XXX.txt
+++ b/share/cmake-3.18/Help/variable/CTEST_CUSTOM_XXX.txt
diff --git a/share/cmake-3.17/Help/variable/CTEST_CVS_CHECKOUT.rst b/share/cmake-3.18/Help/variable/CTEST_CVS_CHECKOUT.rst
index 6431c02..6431c02 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CVS_CHECKOUT.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CVS_CHECKOUT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CVS_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_CVS_COMMAND.rst
index 049700b..049700b 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CVS_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CVS_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
index d7f2f7c..d7f2f7c 100644
--- a/share/cmake-3.17/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_CVS_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_LOCATION.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_LOCATION.rst
index c0f2215..c0f2215 100644
--- a/share/cmake-3.17/Help/variable/CTEST_DROP_LOCATION.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_DROP_LOCATION.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_METHOD.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_METHOD.rst
index 50fbd4d..50fbd4d 100644
--- a/share/cmake-3.17/Help/variable/CTEST_DROP_METHOD.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_DROP_METHOD.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE.rst
index d15d99b..d15d99b 100644
--- a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_CDASH.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_CDASH.rst
index 22b9776..22b9776 100644
--- a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_CDASH.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_CDASH.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_PASSWORD.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
index 904d2c8..904d2c8 100644
--- a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_PASSWORD.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_USER.rst b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_USER.rst
index a860a03..a860a03 100644
--- a/share/cmake-3.17/Help/variable/CTEST_DROP_SITE_USER.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_DROP_SITE_USER.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst b/share/cmake-3.18/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
index 286f7df..286f7df 100644
--- a/share/cmake-3.17/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_EXTRA_COVERAGE_GLOB.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_GIT_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_GIT_COMMAND.rst
index eb83792..eb83792 100644
--- a/share/cmake-3.17/Help/variable/CTEST_GIT_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_GIT_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst b/share/cmake-3.18/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
index fd27003..fd27003 100644
--- a/share/cmake-3.17/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_GIT_INIT_SUBMODULES.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst b/share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
index 0c479e6..0c479e6 100644
--- a/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_CUSTOM.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
index 4590a78..4590a78 100644
--- a/share/cmake-3.17/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_GIT_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_HG_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_HG_COMMAND.rst
index 3854950..3854950 100644
--- a/share/cmake-3.17/Help/variable/CTEST_HG_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_HG_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
index 9049c1f..9049c1f 100644
--- a/share/cmake-3.17/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_HG_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst b/share/cmake-3.18/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
index 959596b..959596b 100644
--- a/share/cmake-3.17/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_LABELS_FOR_SUBPROJECTS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
index 8c199ba..8c199ba 100644
--- a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
index 3e26ab5..3e26ab5 100644
--- a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_COMMAND_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
index 2de5fb6..2de5fb6 100644
--- a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SANITIZER_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
index 1147ee8..1147ee8 100644
--- a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_SUPPRESSIONS_FILE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
index 4e7d5c0..4e7d5c0 100644
--- a/share/cmake-3.17/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_MEMORYCHECK_TYPE.rst
diff --git a/share/cmake-3.18/Help/variable/CTEST_NIGHTLY_START_TIME.rst b/share/cmake-3.18/Help/variable/CTEST_NIGHTLY_START_TIME.rst
new file mode 100644
index 0000000..90841f9
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CTEST_NIGHTLY_START_TIME.rst
@@ -0,0 +1,9 @@
+CTEST_NIGHTLY_START_TIME
+------------------------
+
+Specify the CTest ``NightlyStartTime`` setting in a :manual:`ctest(1)`
+dashboard client script.
+
+Note that this variable must always be set for a nightly build in a
+dashboard script. It is needed so that nightly builds can be properly grouped
+together in CDash.
diff --git a/share/cmake-3.17/Help/variable/CTEST_P4_CLIENT.rst b/share/cmake-3.18/Help/variable/CTEST_P4_CLIENT.rst
index 347ea54..347ea54 100644
--- a/share/cmake-3.17/Help/variable/CTEST_P4_CLIENT.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_P4_CLIENT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_P4_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_P4_COMMAND.rst
index defab12..defab12 100644
--- a/share/cmake-3.17/Help/variable/CTEST_P4_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_P4_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_P4_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_P4_OPTIONS.rst
index fee4ce2..fee4ce2 100644
--- a/share/cmake-3.17/Help/variable/CTEST_P4_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_P4_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
index 0e2790f..0e2790f 100644
--- a/share/cmake-3.17/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_P4_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.18/Help/variable/CTEST_RESOURCE_SPEC_FILE.rst b/share/cmake-3.18/Help/variable/CTEST_RESOURCE_SPEC_FILE.rst
new file mode 100644
index 0000000..a6fdbc9
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/CTEST_RESOURCE_SPEC_FILE.rst
@@ -0,0 +1,10 @@
+CTEST_RESOURCE_SPEC_FILE
+------------------------
+
+Specify the CTest ``ResourceSpecFile`` setting in a :manual:`ctest(1)`
+dashboard client script.
+
+This can also be used to specify the resource spec file from a CMake build. If
+no ``RESOURCE_SPEC_FILE`` is passed to :command:`ctest_test`, and
+``CTEST_RESOURCE_SPEC_FILE`` is not specified in the dashboard script, the
+value of this variable from the build is used.
diff --git a/share/cmake-3.17/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst b/share/cmake-3.18/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
index abc123c..abc123c 100644
--- a/share/cmake-3.17/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_RUN_CURRENT_SCRIPT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SCP_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_SCP_COMMAND.rst
index 19ea8b3..19ea8b3 100644
--- a/share/cmake-3.17/Help/variable/CTEST_SCP_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_SCP_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SITE.rst b/share/cmake-3.18/Help/variable/CTEST_SITE.rst
index 8a5ec25..8a5ec25 100644
--- a/share/cmake-3.17/Help/variable/CTEST_SITE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_SITE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SOURCE_DIRECTORY.rst b/share/cmake-3.18/Help/variable/CTEST_SOURCE_DIRECTORY.rst
index b6837d1..b6837d1 100644
--- a/share/cmake-3.17/Help/variable/CTEST_SOURCE_DIRECTORY.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_SOURCE_DIRECTORY.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SUBMIT_URL.rst b/share/cmake-3.18/Help/variable/CTEST_SUBMIT_URL.rst
index 7d84da4..7d84da4 100644
--- a/share/cmake-3.17/Help/variable/CTEST_SUBMIT_URL.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_SUBMIT_URL.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SVN_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_SVN_COMMAND.rst
index af90143..af90143 100644
--- a/share/cmake-3.17/Help/variable/CTEST_SVN_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_SVN_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SVN_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_SVN_OPTIONS.rst
index 76551dc..76551dc 100644
--- a/share/cmake-3.17/Help/variable/CTEST_SVN_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_SVN_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
index 5f01a19..5f01a19 100644
--- a/share/cmake-3.17/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_SVN_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_TEST_LOAD.rst b/share/cmake-3.18/Help/variable/CTEST_TEST_LOAD.rst
index 80823fe..80823fe 100644
--- a/share/cmake-3.17/Help/variable/CTEST_TEST_LOAD.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_TEST_LOAD.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_TEST_TIMEOUT.rst b/share/cmake-3.18/Help/variable/CTEST_TEST_TIMEOUT.rst
index c031437..c031437 100644
--- a/share/cmake-3.17/Help/variable/CTEST_TEST_TIMEOUT.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_TEST_TIMEOUT.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_TRIGGER_SITE.rst b/share/cmake-3.18/Help/variable/CTEST_TRIGGER_SITE.rst
index a50e405..a50e405 100644
--- a/share/cmake-3.17/Help/variable/CTEST_TRIGGER_SITE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_TRIGGER_SITE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_UPDATE_COMMAND.rst b/share/cmake-3.18/Help/variable/CTEST_UPDATE_COMMAND.rst
index 90155d0..90155d0 100644
--- a/share/cmake-3.17/Help/variable/CTEST_UPDATE_COMMAND.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_UPDATE_COMMAND.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_UPDATE_OPTIONS.rst b/share/cmake-3.18/Help/variable/CTEST_UPDATE_OPTIONS.rst
index e43d61d..e43d61d 100644
--- a/share/cmake-3.17/Help/variable/CTEST_UPDATE_OPTIONS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_UPDATE_OPTIONS.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst b/share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
index a862baa..a862baa 100644
--- a/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_ONLY.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst b/share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
index 39fbaba..39fbaba 100644
--- a/share/cmake-3.17/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_UPDATE_VERSION_OVERRIDE.rst
diff --git a/share/cmake-3.17/Help/variable/CTEST_USE_LAUNCHERS.rst b/share/cmake-3.18/Help/variable/CTEST_USE_LAUNCHERS.rst
index 9f48a2e..9f48a2e 100644
--- a/share/cmake-3.17/Help/variable/CTEST_USE_LAUNCHERS.rst
+++ b/share/cmake-3.18/Help/variable/CTEST_USE_LAUNCHERS.rst
diff --git a/share/cmake-3.17/Help/variable/CYGWIN.rst b/share/cmake-3.18/Help/variable/CYGWIN.rst
index 0039e07..0039e07 100644
--- a/share/cmake-3.17/Help/variable/CYGWIN.rst
+++ b/share/cmake-3.18/Help/variable/CYGWIN.rst
diff --git a/share/cmake-3.17/Help/variable/ENV.rst b/share/cmake-3.18/Help/variable/ENV.rst
index 2b43934..2b43934 100644
--- a/share/cmake-3.17/Help/variable/ENV.rst
+++ b/share/cmake-3.18/Help/variable/ENV.rst
diff --git a/share/cmake-3.17/Help/variable/EXECUTABLE_OUTPUT_PATH.rst b/share/cmake-3.18/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
index 26d3e92..26d3e92 100644
--- a/share/cmake-3.17/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
+++ b/share/cmake-3.18/Help/variable/EXECUTABLE_OUTPUT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/GHS-MULTI.rst b/share/cmake-3.18/Help/variable/GHS-MULTI.rst
index fe3b17e..fe3b17e 100644
--- a/share/cmake-3.17/Help/variable/GHS-MULTI.rst
+++ b/share/cmake-3.18/Help/variable/GHS-MULTI.rst
diff --git a/share/cmake-3.17/Help/variable/IOS.rst b/share/cmake-3.18/Help/variable/IOS.rst
index e5cc3f6..e5cc3f6 100644
--- a/share/cmake-3.17/Help/variable/IOS.rst
+++ b/share/cmake-3.18/Help/variable/IOS.rst
diff --git a/share/cmake-3.17/Help/variable/LIBRARY_OUTPUT_PATH.rst b/share/cmake-3.18/Help/variable/LIBRARY_OUTPUT_PATH.rst
index bb4328f..bb4328f 100644
--- a/share/cmake-3.17/Help/variable/LIBRARY_OUTPUT_PATH.rst
+++ b/share/cmake-3.18/Help/variable/LIBRARY_OUTPUT_PATH.rst
diff --git a/share/cmake-3.17/Help/variable/MINGW.rst b/share/cmake-3.18/Help/variable/MINGW.rst
index 6d29be4..6d29be4 100644
--- a/share/cmake-3.17/Help/variable/MINGW.rst
+++ b/share/cmake-3.18/Help/variable/MINGW.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC.rst b/share/cmake-3.18/Help/variable/MSVC.rst
index ca8775c..ca8775c 100644
--- a/share/cmake-3.17/Help/variable/MSVC.rst
+++ b/share/cmake-3.18/Help/variable/MSVC.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC10.rst b/share/cmake-3.18/Help/variable/MSVC10.rst
index 55c6337..55c6337 100644
--- a/share/cmake-3.17/Help/variable/MSVC10.rst
+++ b/share/cmake-3.18/Help/variable/MSVC10.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC11.rst b/share/cmake-3.18/Help/variable/MSVC11.rst
index 17943dc..17943dc 100644
--- a/share/cmake-3.17/Help/variable/MSVC11.rst
+++ b/share/cmake-3.18/Help/variable/MSVC11.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC12.rst b/share/cmake-3.18/Help/variable/MSVC12.rst
index a524fab..a524fab 100644
--- a/share/cmake-3.17/Help/variable/MSVC12.rst
+++ b/share/cmake-3.18/Help/variable/MSVC12.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC14.rst b/share/cmake-3.18/Help/variable/MSVC14.rst
index 79e0c10..79e0c10 100644
--- a/share/cmake-3.17/Help/variable/MSVC14.rst
+++ b/share/cmake-3.18/Help/variable/MSVC14.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC60.rst b/share/cmake-3.18/Help/variable/MSVC60.rst
index 14164bf..14164bf 100644
--- a/share/cmake-3.17/Help/variable/MSVC60.rst
+++ b/share/cmake-3.18/Help/variable/MSVC60.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC70.rst b/share/cmake-3.18/Help/variable/MSVC70.rst
index ed3b0bb..ed3b0bb 100644
--- a/share/cmake-3.17/Help/variable/MSVC70.rst
+++ b/share/cmake-3.18/Help/variable/MSVC70.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC71.rst b/share/cmake-3.18/Help/variable/MSVC71.rst
index 0237592..0237592 100644
--- a/share/cmake-3.17/Help/variable/MSVC71.rst
+++ b/share/cmake-3.18/Help/variable/MSVC71.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC80.rst b/share/cmake-3.18/Help/variable/MSVC80.rst
index 1533218..1533218 100644
--- a/share/cmake-3.17/Help/variable/MSVC80.rst
+++ b/share/cmake-3.18/Help/variable/MSVC80.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC90.rst b/share/cmake-3.18/Help/variable/MSVC90.rst
index 4981ecf..4981ecf 100644
--- a/share/cmake-3.17/Help/variable/MSVC90.rst
+++ b/share/cmake-3.18/Help/variable/MSVC90.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC_IDE.rst b/share/cmake-3.18/Help/variable/MSVC_IDE.rst
index 027d1bc..027d1bc 100644
--- a/share/cmake-3.17/Help/variable/MSVC_IDE.rst
+++ b/share/cmake-3.18/Help/variable/MSVC_IDE.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC_TOOLSET_VERSION.rst b/share/cmake-3.18/Help/variable/MSVC_TOOLSET_VERSION.rst
index f4a33e2..f4a33e2 100644
--- a/share/cmake-3.17/Help/variable/MSVC_TOOLSET_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/MSVC_TOOLSET_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/MSVC_VERSION.rst b/share/cmake-3.18/Help/variable/MSVC_VERSION.rst
index 45df37f..45df37f 100644
--- a/share/cmake-3.17/Help/variable/MSVC_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/MSVC_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/MSYS.rst b/share/cmake-3.18/Help/variable/MSYS.rst
index 25ddc7f..25ddc7f 100644
--- a/share/cmake-3.17/Help/variable/MSYS.rst
+++ b/share/cmake-3.18/Help/variable/MSYS.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_BINARY_DIR.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_BINARY_DIR.rst
index 49bc558..49bc558 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_BINARY_DIR.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_DESCRIPTION.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_DESCRIPTION.rst
index 2b88b1a..2b88b1a 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_DESCRIPTION.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_DESCRIPTION.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
index 22cc304..22cc304 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
index 4df3e22..4df3e22 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_SOURCE_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION.rst
index 0f6ed51..0f6ed51 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
index 9e2d755..9e2d755 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MAJOR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MINOR.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
index fa2cdab..fa2cdab 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_MINOR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_PATCH.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
index 85b5e6b..85b5e6b 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_PATCH.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
index 65c4044..65c4044 100644
--- a/share/cmake-3.17/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT-NAME_VERSION_TWEAK.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_BINARY_DIR.rst b/share/cmake-3.18/Help/variable/PROJECT_BINARY_DIR.rst
index 09e9ef2..09e9ef2 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_BINARY_DIR.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_BINARY_DIR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_DESCRIPTION.rst b/share/cmake-3.18/Help/variable/PROJECT_DESCRIPTION.rst
index 2833e11..2833e11 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_DESCRIPTION.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_DESCRIPTION.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_HOMEPAGE_URL.rst b/share/cmake-3.18/Help/variable/PROJECT_HOMEPAGE_URL.rst
index 754c9e8..754c9e8 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_HOMEPAGE_URL.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_HOMEPAGE_URL.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_NAME.rst b/share/cmake-3.18/Help/variable/PROJECT_NAME.rst
index 672680a..672680a 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_NAME.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_NAME.rst
diff --git a/share/cmake-3.18/Help/variable/PROJECT_SOURCE_DIR.rst b/share/cmake-3.18/Help/variable/PROJECT_SOURCE_DIR.rst
new file mode 100644
index 0000000..b4601c2
--- /dev/null
+++ b/share/cmake-3.18/Help/variable/PROJECT_SOURCE_DIR.rst
@@ -0,0 +1,8 @@
+PROJECT_SOURCE_DIR
+------------------
+
+This is the source directory of the last call to the
+:command:`project` command made in the current directory scope or one
+of its parents. Note, it is not affected by calls to
+:command:`project` made within a child directory scope (i.e. from
+within a call to :command:`add_subdirectory` from the current scope).
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION.rst
index 234558d..234558d 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_VERSION.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION_MAJOR.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION_MAJOR.rst
index 4b6072c..4b6072c 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_VERSION_MAJOR.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_VERSION_MAJOR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION_MINOR.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION_MINOR.rst
index 5f31220..5f31220 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_VERSION_MINOR.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_VERSION_MINOR.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION_PATCH.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION_PATCH.rst
index ac72ec0..ac72ec0 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_VERSION_PATCH.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_VERSION_PATCH.rst
diff --git a/share/cmake-3.17/Help/variable/PROJECT_VERSION_TWEAK.rst b/share/cmake-3.18/Help/variable/PROJECT_VERSION_TWEAK.rst
index d7f96d6..d7f96d6 100644
--- a/share/cmake-3.17/Help/variable/PROJECT_VERSION_TWEAK.rst
+++ b/share/cmake-3.18/Help/variable/PROJECT_VERSION_TWEAK.rst
diff --git a/share/cmake-3.17/Help/variable/PackageName_ROOT.rst b/share/cmake-3.18/Help/variable/PackageName_ROOT.rst
index 1c2fd34..1c2fd34 100644
--- a/share/cmake-3.17/Help/variable/PackageName_ROOT.rst
+++ b/share/cmake-3.18/Help/variable/PackageName_ROOT.rst
diff --git a/share/cmake-3.17/Help/variable/UNIX.rst b/share/cmake-3.18/Help/variable/UNIX.rst
index 49d8668..49d8668 100644
--- a/share/cmake-3.17/Help/variable/UNIX.rst
+++ b/share/cmake-3.18/Help/variable/UNIX.rst
diff --git a/share/cmake-3.17/Help/variable/WIN32.rst b/share/cmake-3.18/Help/variable/WIN32.rst
index 78ab772..78ab772 100644
--- a/share/cmake-3.17/Help/variable/WIN32.rst
+++ b/share/cmake-3.18/Help/variable/WIN32.rst
diff --git a/share/cmake-3.17/Help/variable/WINCE.rst b/share/cmake-3.18/Help/variable/WINCE.rst
index 54ff7de..54ff7de 100644
--- a/share/cmake-3.17/Help/variable/WINCE.rst
+++ b/share/cmake-3.18/Help/variable/WINCE.rst
diff --git a/share/cmake-3.17/Help/variable/WINDOWS_PHONE.rst b/share/cmake-3.18/Help/variable/WINDOWS_PHONE.rst
index 61d91b0..61d91b0 100644
--- a/share/cmake-3.17/Help/variable/WINDOWS_PHONE.rst
+++ b/share/cmake-3.18/Help/variable/WINDOWS_PHONE.rst
diff --git a/share/cmake-3.17/Help/variable/WINDOWS_STORE.rst b/share/cmake-3.18/Help/variable/WINDOWS_STORE.rst
index dae3b53..dae3b53 100644
--- a/share/cmake-3.17/Help/variable/WINDOWS_STORE.rst
+++ b/share/cmake-3.18/Help/variable/WINDOWS_STORE.rst
diff --git a/share/cmake-3.17/Help/variable/XCODE.rst b/share/cmake-3.18/Help/variable/XCODE.rst
index 99f20fb..99f20fb 100644
--- a/share/cmake-3.17/Help/variable/XCODE.rst
+++ b/share/cmake-3.18/Help/variable/XCODE.rst
diff --git a/share/cmake-3.17/Help/variable/XCODE_VERSION.rst b/share/cmake-3.18/Help/variable/XCODE_VERSION.rst
index 9caf19a..9caf19a 100644
--- a/share/cmake-3.17/Help/variable/XCODE_VERSION.rst
+++ b/share/cmake-3.18/Help/variable/XCODE_VERSION.rst
diff --git a/share/cmake-3.17/Modules/AddFileDependencies.cmake b/share/cmake-3.18/Modules/AddFileDependencies.cmake
index 598a52f..598a52f 100644
--- a/share/cmake-3.17/Modules/AddFileDependencies.cmake
+++ b/share/cmake-3.18/Modules/AddFileDependencies.cmake
diff --git a/share/cmake-3.17/Modules/AndroidTestUtilities.cmake b/share/cmake-3.18/Modules/AndroidTestUtilities.cmake
index 95e2ef7..95e2ef7 100644
--- a/share/cmake-3.17/Modules/AndroidTestUtilities.cmake
+++ b/share/cmake-3.18/Modules/AndroidTestUtilities.cmake
diff --git a/share/cmake-3.17/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake b/share/cmake-3.18/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
index fccff67..fccff67 100644
--- a/share/cmake-3.17/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
+++ b/share/cmake-3.18/Modules/AndroidTestUtilities/PushToAndroidDevice.cmake
diff --git a/share/cmake-3.17/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in b/share/cmake-3.18/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
index a6e5fda..a6e5fda 100644
--- a/share/cmake-3.17/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
+++ b/share/cmake-3.18/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in
diff --git a/share/cmake-3.17/Modules/BasicConfigVersion-ExactVersion.cmake.in b/share/cmake-3.18/Modules/BasicConfigVersion-ExactVersion.cmake.in
index 43fc4d0..43fc4d0 100644
--- a/share/cmake-3.17/Modules/BasicConfigVersion-ExactVersion.cmake.in
+++ b/share/cmake-3.18/Modules/BasicConfigVersion-ExactVersion.cmake.in
diff --git a/share/cmake-3.17/Modules/BasicConfigVersion-SameMajorVersion.cmake.in b/share/cmake-3.18/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
index 8c3b6a2..8c3b6a2 100644
--- a/share/cmake-3.17/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
+++ b/share/cmake-3.18/Modules/BasicConfigVersion-SameMajorVersion.cmake.in
diff --git a/share/cmake-3.17/Modules/BasicConfigVersion-SameMinorVersion.cmake.in b/share/cmake-3.18/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
index e2030d2..e2030d2 100644
--- a/share/cmake-3.17/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
+++ b/share/cmake-3.18/Modules/BasicConfigVersion-SameMinorVersion.cmake.in
diff --git a/share/cmake-3.17/Modules/BundleUtilities.cmake b/share/cmake-3.18/Modules/BundleUtilities.cmake
index 2f3b9e1..2f3b9e1 100644
--- a/share/cmake-3.17/Modules/BundleUtilities.cmake
+++ b/share/cmake-3.18/Modules/BundleUtilities.cmake
diff --git a/share/cmake-3.17/Modules/CMake.cmake b/share/cmake-3.18/Modules/CMake.cmake
index caa5479..caa5479 100644
--- a/share/cmake-3.17/Modules/CMake.cmake
+++ b/share/cmake-3.18/Modules/CMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeASM-ATTInformation.cmake b/share/cmake-3.18/Modules/CMakeASM-ATTInformation.cmake
index d1970a2..d1970a2 100644
--- a/share/cmake-3.17/Modules/CMakeASM-ATTInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeASM-ATTInformation.cmake
diff --git a/share/cmake-3.18/Modules/CMakeASMCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeASMCompiler.cmake.in
new file mode 100644
index 0000000..3953b30
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeASMCompiler.cmake.in
@@ -0,0 +1,20 @@
+set(CMAKE_ASM@ASM_DIALECT@_COMPILER "@_CMAKE_ASM_COMPILER@")
+set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ARG1 "@_CMAKE_ASM_COMPILER_ARG1@")
+set(CMAKE_AR "@CMAKE_AR@")
+set(CMAKE_ASM@ASM_DIALECT@_COMPILER_AR "@_CMAKE_ASM_COMPILER_AR@")
+set(CMAKE_RANLIB "@CMAKE_RANLIB@")
+set(CMAKE_ASM@ASM_DIALECT@_COMPILER_RANLIB "@_CMAKE_ASM_COMPILER_RANLIB@")
+set(CMAKE_LINKER "@CMAKE_LINKER@")
+set(CMAKE_MT "@CMAKE_MT@")
+set(CMAKE_ASM@ASM_DIALECT@_COMPILER_LOADED 1)
+set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ID "@_CMAKE_ASM_COMPILER_ID@")
+set(CMAKE_ASM@ASM_DIALECT@_COMPILER_VERSION "@_CMAKE_ASM_COMPILER_VERSION@")
+set(CMAKE_ASM@ASM_DIALECT@_COMPILER_ENV_VAR "@_CMAKE_ASM_COMPILER_ENV_VAR@")
+@_SET_CMAKE_ASM_COMPILER_ID_VENDOR_MATCH@
+@_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID@
+@_SET_CMAKE_ASM_COMPILER_SYSROOT@
+
+set(CMAKE_ASM@ASM_DIALECT@_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_ASM@ASM_DIALECT@_LINKER_PREFERENCE 0)
+
+@CMAKE_ASM_COMPILER_CUSTOM_CODE@
diff --git a/share/cmake-3.18/Modules/CMakeASMInformation.cmake b/share/cmake-3.18/Modules/CMakeASMInformation.cmake
new file mode 100644
index 0000000..03195cc
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeASMInformation.cmake
@@ -0,0 +1,110 @@
+# 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_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .o)
+else()
+ set(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .obj)
+endif()
+
+set(CMAKE_INCLUDE_FLAG_ASM${ASM_DIALECT} "-I") # -I
+set(CMAKE_BASE_NAME)
+get_filename_component(CMAKE_BASE_NAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME_WE)
+
+if("${CMAKE_BASE_NAME}" STREQUAL "as")
+ set(CMAKE_BASE_NAME gas)
+endif()
+
+# Load compiler-specific information.
+set(_INCLUDED_FILE "")
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
+ include(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+endif()
+if(NOT _INCLUDED_FILE)
+ if("ASM${ASM_DIALECT}" STREQUAL "ASM")
+ message(STATUS "Warning: Did not find file Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}")
+ endif()
+ include(Platform/${CMAKE_BASE_NAME} OPTIONAL)
+endif()
+
+if(CMAKE_SYSTEM_PROCESSOR)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+ if(NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME}-${CMAKE_SYSTEM_PROCESSOR} OPTIONAL)
+ endif()
+endif()
+
+include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-ASM${ASM_DIALECT} OPTIONAL RESULT_VARIABLE _INCLUDED_FILE)
+if(NOT _INCLUDED_FILE)
+ include(Platform/${CMAKE_EFFECTIVE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
+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_ASM)
+ # Save the full path of the file so try_compile can use it.
+ include(${CMAKE_USER_MAKE_RULES_OVERRIDE_ASM} RESULT_VARIABLE _override)
+ set(CMAKE_USER_MAKE_RULES_OVERRIDE_ASM "${_override}")
+endif()
+
+# Set default assembler file extensions:
+if(NOT CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS)
+ set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS s;S;asm)
+endif()
+
+
+# Support for CMAKE_ASM${ASM_DIALECT}_FLAGS_INIT and friends:
+set(CMAKE_ASM${ASM_DIALECT}_FLAGS_INIT "$ENV{ASM${ASM_DIALECT}FLAGS} ${CMAKE_ASM${ASM_DIALECT}_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_ASM${ASM_DIALECT}_FLAGS "Flags used by the ASM${ASM_DIALECT} compiler")
+
+if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+endif()
+
+if(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY)
+ set(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY
+ "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
+ "<CMAKE_RANLIB> <TARGET>")
+endif()
+
+if(NOT CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE)
+ set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE
+ "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG)
+ set(CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_ASM${ASM_DIALECT}_FLAG})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG_SEP)
+ set(CMAKE_EXECUTABLE_RUNTIME_ASM${ASM_DIALECT}_FLAG_SEP ${CMAKE_SHARED_LIBRARY_RUNTIME_ASM${ASM_DIALECT}_FLAG_SEP})
+endif()
+
+if(NOT CMAKE_EXECUTABLE_RPATH_LINK_ASM${ASM_DIALECT}_FLAG)
+ set(CMAKE_EXECUTABLE_RPATH_LINK_ASM${ASM_DIALECT}_FLAG ${CMAKE_SHARED_LIBRARY_RPATH_LINK_ASM${ASM_DIALECT}_FLAG})
+endif()
+
+# to be done
+if(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY)
+ set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY)
+endif()
+
+if(NOT CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE)
+ set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE)
+endif()
+
+
+set(CMAKE_ASM${ASM_DIALECT}_INFOMATION_LOADED 1)
+
diff --git a/share/cmake-3.18/Modules/CMakeASM_MASMInformation.cmake b/share/cmake-3.18/Modules/CMakeASM_MASMInformation.cmake
new file mode 100644
index 0000000..6d1e174
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeASM_MASMInformation.cmake
@@ -0,0 +1,20 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# support for the MS assembler, masm and masm64
+
+set(ASM_DIALECT "_MASM")
+
+set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm)
+
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> /c /Fo <OBJECT> <SOURCE>")
+
+# The ASM_MASM compiler id for this compiler is "MSVC", so fill out the runtime library table.
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded "")
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL "")
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebug "")
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDebugDLL "")
+
+include(CMakeASMInformation)
+set(ASM_DIALECT)
diff --git a/share/cmake-3.18/Modules/CMakeASM_NASMInformation.cmake b/share/cmake-3.18/Modules/CMakeASM_NASMInformation.cmake
new file mode 100644
index 0000000..97cb488
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeASM_NASMInformation.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.
+
+
+# support for the nasm assembler
+
+set(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS nasm asm)
+
+if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
+ if(WIN32)
+ if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
+ elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
+ else()
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT win32)
+ endif()
+ elseif(APPLE)
+ if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
+ elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
+ else()
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT macho)
+ endif()
+ else()
+ if(DEFINED CMAKE_C_SIZEOF_DATA_PTR AND CMAKE_C_SIZEOF_DATA_PTR EQUAL 8)
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
+ elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
+ else()
+ set(CMAKE_ASM_NASM_OBJECT_FORMAT elf)
+ endif()
+ endif()
+endif()
+
+if(NOT CMAKE_ASM_NASM_COMPILE_OBJECT)
+ set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <INCLUDES> <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>")
+endif()
+
+# Load the generic ASMInformation file:
+set(ASM_DIALECT "_NASM")
+include(CMakeASMInformation)
+set(ASM_DIALECT)
diff --git a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory.cmake
index 69a8417..69a8417 100644
--- a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory.cmake
+++ b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory.cmake
diff --git a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
index 55b271a..55b271a 100644
--- a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/build_mingw.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
index 97f6769..97f6769 100644
--- a/share/cmake-3.17/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeAddFortranSubdirectory/config_mingw.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeAddNewLanguage.txt b/share/cmake-3.18/Modules/CMakeAddNewLanguage.txt
index b0be590..b0be590 100644
--- a/share/cmake-3.17/Modules/CMakeAddNewLanguage.txt
+++ b/share/cmake-3.18/Modules/CMakeAddNewLanguage.txt
diff --git a/share/cmake-3.17/Modules/CMakeBackwardCompatibilityC.cmake b/share/cmake-3.18/Modules/CMakeBackwardCompatibilityC.cmake
index 775a513..775a513 100644
--- a/share/cmake-3.17/Modules/CMakeBackwardCompatibilityC.cmake
+++ b/share/cmake-3.18/Modules/CMakeBackwardCompatibilityC.cmake
diff --git a/share/cmake-3.17/Modules/CMakeBackwardCompatibilityCXX.cmake b/share/cmake-3.18/Modules/CMakeBackwardCompatibilityCXX.cmake
index 02744a9..02744a9 100644
--- a/share/cmake-3.17/Modules/CMakeBackwardCompatibilityCXX.cmake
+++ b/share/cmake-3.18/Modules/CMakeBackwardCompatibilityCXX.cmake
diff --git a/share/cmake-3.17/Modules/CMakeBorlandFindMake.cmake b/share/cmake-3.18/Modules/CMakeBorlandFindMake.cmake
index 18b9962..18b9962 100644
--- a/share/cmake-3.17/Modules/CMakeBorlandFindMake.cmake
+++ b/share/cmake-3.18/Modules/CMakeBorlandFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeBuildSettings.cmake.in b/share/cmake-3.18/Modules/CMakeBuildSettings.cmake.in
index 7c4aa14..7c4aa14 100644
--- a/share/cmake-3.17/Modules/CMakeBuildSettings.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeBuildSettings.cmake.in
diff --git a/share/cmake-3.18/Modules/CMakeCCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeCCompiler.cmake.in
new file mode 100644
index 0000000..eea3f5d
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeCCompiler.cmake.in
@@ -0,0 +1,77 @@
+set(CMAKE_C_COMPILER "@CMAKE_C_COMPILER@")
+set(CMAKE_C_COMPILER_ARG1 "@CMAKE_C_COMPILER_ARG1@")
+set(CMAKE_C_COMPILER_ID "@CMAKE_C_COMPILER_ID@")
+set(CMAKE_C_COMPILER_VERSION "@CMAKE_C_COMPILER_VERSION@")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "@CMAKE_C_COMPILER_VERSION_INTERNAL@")
+set(CMAKE_C_COMPILER_WRAPPER "@CMAKE_C_COMPILER_WRAPPER@")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "@CMAKE_C_STANDARD_COMPUTED_DEFAULT@")
+set(CMAKE_C_COMPILE_FEATURES "@CMAKE_C_COMPILE_FEATURES@")
+set(CMAKE_C90_COMPILE_FEATURES "@CMAKE_C90_COMPILE_FEATURES@")
+set(CMAKE_C99_COMPILE_FEATURES "@CMAKE_C99_COMPILE_FEATURES@")
+set(CMAKE_C11_COMPILE_FEATURES "@CMAKE_C11_COMPILE_FEATURES@")
+
+set(CMAKE_C_PLATFORM_ID "@CMAKE_C_PLATFORM_ID@")
+set(CMAKE_C_SIMULATE_ID "@CMAKE_C_SIMULATE_ID@")
+set(CMAKE_C_COMPILER_FRONTEND_VARIANT "@CMAKE_C_COMPILER_FRONTEND_VARIANT@")
+set(CMAKE_C_SIMULATE_VERSION "@CMAKE_C_SIMULATE_VERSION@")
+@_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID@
+@_SET_CMAKE_C_COMPILER_SYSROOT@
+@SET_MSVC_C_ARCHITECTURE_ID@
+@SET_CMAKE_XCODE_ARCHS@
+set(CMAKE_AR "@CMAKE_AR@")
+set(CMAKE_C_COMPILER_AR "@CMAKE_C_COMPILER_AR@")
+set(CMAKE_RANLIB "@CMAKE_RANLIB@")
+set(CMAKE_C_COMPILER_RANLIB "@CMAKE_C_COMPILER_RANLIB@")
+set(CMAKE_LINKER "@CMAKE_LINKER@")
+set(CMAKE_MT "@CMAKE_MT@")
+set(CMAKE_COMPILER_IS_GNUCC @CMAKE_COMPILER_IS_GNUCC@)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS @CMAKE_C_COMPILER_WORKS@)
+set(CMAKE_C_ABI_COMPILED @CMAKE_C_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_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+ set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "@CMAKE_C_SIZEOF_DATA_PTR@")
+set(CMAKE_C_COMPILER_ABI "@CMAKE_C_COMPILER_ABI@")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "@CMAKE_C_LIBRARY_ARCHITECTURE@")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_C_LIBRARY_ARCHITECTURE@")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "@CMAKE_C_CL_SHOWINCLUDES_PREFIX@")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+@CMAKE_C_COMPILER_CUSTOM_CODE@
+@CMAKE_C_SYSROOT_FLAG_CODE@
+@CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG_CODE@
+
+set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES@")
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "@CMAKE_C_IMPLICIT_LINK_LIBRARIES@")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "@CMAKE_C_IMPLICIT_LINK_DIRECTORIES@")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
diff --git a/share/cmake-3.17/Modules/CMakeCCompilerABI.c b/share/cmake-3.18/Modules/CMakeCCompilerABI.c
index 08cf39b..08cf39b 100644
--- a/share/cmake-3.17/Modules/CMakeCCompilerABI.c
+++ b/share/cmake-3.18/Modules/CMakeCCompilerABI.c
diff --git a/share/cmake-3.17/Modules/CMakeCCompilerId.c.in b/share/cmake-3.18/Modules/CMakeCCompilerId.c.in
index 2f6bdb4..2f6bdb4 100644
--- a/share/cmake-3.17/Modules/CMakeCCompilerId.c.in
+++ b/share/cmake-3.18/Modules/CMakeCCompilerId.c.in
diff --git a/share/cmake-3.18/Modules/CMakeCInformation.cmake b/share/cmake-3.18/Modules/CMakeCInformation.cmake
new file mode 100644
index 0000000..f6d620f
--- /dev/null
+++ b/share/cmake-3.18/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.17/Modules/CMakeCSharpCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeCSharpCompiler.cmake.in
index 3d49b6b..3d49b6b 100644
--- a/share/cmake-3.17/Modules/CMakeCSharpCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeCSharpCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeCSharpCompilerId.cs.in b/share/cmake-3.18/Modules/CMakeCSharpCompilerId.cs.in
index 987f63a..987f63a 100644
--- a/share/cmake-3.17/Modules/CMakeCSharpCompilerId.cs.in
+++ b/share/cmake-3.18/Modules/CMakeCSharpCompilerId.cs.in
diff --git a/share/cmake-3.17/Modules/CMakeCSharpInformation.cmake b/share/cmake-3.18/Modules/CMakeCSharpInformation.cmake
index 41cd449..41cd449 100644
--- a/share/cmake-3.17/Modules/CMakeCSharpInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeCSharpInformation.cmake
diff --git a/share/cmake-3.18/Modules/CMakeCUDACompiler.cmake.in b/share/cmake-3.18/Modules/CMakeCUDACompiler.cmake.in
new file mode 100644
index 0000000..704ad09
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeCUDACompiler.cmake.in
@@ -0,0 +1,64 @@
+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_SYSROOT@
+
+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_COMPILER_TOOLKIT_ROOT "@CMAKE_CUDA_COMPILER_TOOLKIT_ROOT@")
+set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "@CMAKE_CUDA_COMPILER_LIBRARY_ROOT@")
+
+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_CUDA_RUNTIME_LIBRARY_DEFAULT@
+
+set(CMAKE_LINKER "@CMAKE_LINKER@")
+set(CMAKE_AR "@CMAKE_AR@")
+set(CMAKE_MT "@CMAKE_MT@")
diff --git a/share/cmake-3.17/Modules/CMakeCUDACompilerABI.cu b/share/cmake-3.18/Modules/CMakeCUDACompilerABI.cu
index 702a7c5..702a7c5 100644
--- a/share/cmake-3.17/Modules/CMakeCUDACompilerABI.cu
+++ b/share/cmake-3.18/Modules/CMakeCUDACompilerABI.cu
diff --git a/share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in b/share/cmake-3.18/Modules/CMakeCUDACompilerId.cu.in
index 2055de2..2055de2 100644
--- a/share/cmake-3.17/Modules/CMakeCUDACompilerId.cu.in
+++ b/share/cmake-3.18/Modules/CMakeCUDACompilerId.cu.in
diff --git a/share/cmake-3.18/Modules/CMakeCUDAInformation.cmake b/share/cmake-3.18/Modules/CMakeCUDAInformation.cmake
new file mode 100644
index 0000000..f9f7574
--- /dev/null
+++ b/share/cmake-3.18/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")
+
+# Set implicit links early so compiler-specific modules can use them.
+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()
+
+# 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 AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+ string(APPEND _CMAKE_CUDA_EXTRA_FLAGS " -ccbin=<CMAKE_CUDA_HOST_COMPILER>")
+endif()
+
+# 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> ${_CMAKE_COMPILE_AS_CUDA_FLAG} ${_CMAKE_CUDA_PTX_FLAG} <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> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -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> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -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> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -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> <LINK_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} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
+endif()
+
+unset(__IMPLICT_DLINK_FLAGS)
+
+set(CMAKE_CUDA_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.18/Modules/CMakeCXXCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeCXXCompiler.cmake.in
new file mode 100644
index 0000000..09bdc23
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeCXXCompiler.cmake.in
@@ -0,0 +1,89 @@
+set(CMAKE_CXX_COMPILER "@CMAKE_CXX_COMPILER@")
+set(CMAKE_CXX_COMPILER_ARG1 "@CMAKE_CXX_COMPILER_ARG1@")
+set(CMAKE_CXX_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@")
+set(CMAKE_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "@CMAKE_CXX_COMPILER_VERSION_INTERNAL@")
+set(CMAKE_CXX_COMPILER_WRAPPER "@CMAKE_CXX_COMPILER_WRAPPER@")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "@CMAKE_CXX_STANDARD_COMPUTED_DEFAULT@")
+set(CMAKE_CXX_COMPILE_FEATURES "@CMAKE_CXX_COMPILE_FEATURES@")
+set(CMAKE_CXX98_COMPILE_FEATURES "@CMAKE_CXX98_COMPILE_FEATURES@")
+set(CMAKE_CXX11_COMPILE_FEATURES "@CMAKE_CXX11_COMPILE_FEATURES@")
+set(CMAKE_CXX14_COMPILE_FEATURES "@CMAKE_CXX14_COMPILE_FEATURES@")
+set(CMAKE_CXX17_COMPILE_FEATURES "@CMAKE_CXX17_COMPILE_FEATURES@")
+set(CMAKE_CXX20_COMPILE_FEATURES "@CMAKE_CXX20_COMPILE_FEATURES@")
+
+set(CMAKE_CXX_PLATFORM_ID "@CMAKE_CXX_PLATFORM_ID@")
+set(CMAKE_CXX_SIMULATE_ID "@CMAKE_CXX_SIMULATE_ID@")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "@CMAKE_CXX_COMPILER_FRONTEND_VARIANT@")
+set(CMAKE_CXX_SIMULATE_VERSION "@CMAKE_CXX_SIMULATE_VERSION@")
+@_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID@
+@_SET_CMAKE_CXX_COMPILER_SYSROOT@
+@SET_MSVC_CXX_ARCHITECTURE_ID@
+@SET_CMAKE_XCODE_ARCHS@
+set(CMAKE_AR "@CMAKE_AR@")
+set(CMAKE_CXX_COMPILER_AR "@CMAKE_CXX_COMPILER_AR@")
+set(CMAKE_RANLIB "@CMAKE_RANLIB@")
+set(CMAKE_CXX_COMPILER_RANLIB "@CMAKE_CXX_COMPILER_RANLIB@")
+set(CMAKE_LINKER "@CMAKE_LINKER@")
+set(CMAKE_MT "@CMAKE_MT@")
+set(CMAKE_COMPILER_IS_GNUCXX @CMAKE_COMPILER_IS_GNUCXX@)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS @CMAKE_CXX_COMPILER_WORKS@)
+set(CMAKE_CXX_ABI_COMPILED @CMAKE_CXX_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_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+ set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+
+foreach (lang C OBJC OBJCXX)
+ if (CMAKE_${lang}_COMPILER_ID_RUN)
+ foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
+ list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
+ endforeach()
+ endif()
+endforeach()
+
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "@CMAKE_CXX_SIZEOF_DATA_PTR@")
+set(CMAKE_CXX_COMPILER_ABI "@CMAKE_CXX_COMPILER_ABI@")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "@CMAKE_CXX_LIBRARY_ARCHITECTURE@")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "@CMAKE_CXX_LIBRARY_ARCHITECTURE@")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "@CMAKE_CXX_CL_SHOWINCLUDES_PREFIX@")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+@CMAKE_CXX_COMPILER_CUSTOM_CODE@
+@CMAKE_CXX_SYSROOT_FLAG_CODE@
+@CMAKE_CXX_OSX_DEPLOYMENT_TARGET_FLAG_CODE@
+
+set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "@CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES@")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "@CMAKE_CXX_IMPLICIT_LINK_LIBRARIES@")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "@CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES@")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "@CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES@")
diff --git a/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp b/share/cmake-3.18/Modules/CMakeCXXCompilerABI.cpp
index 2360534..2360534 100644
--- a/share/cmake-3.17/Modules/CMakeCXXCompilerABI.cpp
+++ b/share/cmake-3.18/Modules/CMakeCXXCompilerABI.cpp
diff --git a/share/cmake-3.17/Modules/CMakeCXXCompilerId.cpp.in b/share/cmake-3.18/Modules/CMakeCXXCompilerId.cpp.in
index a743ce7..a743ce7 100644
--- a/share/cmake-3.17/Modules/CMakeCXXCompilerId.cpp.in
+++ b/share/cmake-3.18/Modules/CMakeCXXCompilerId.cpp.in
diff --git a/share/cmake-3.18/Modules/CMakeCXXInformation.cmake b/share/cmake-3.18/Modules/CMakeCXXInformation.cmake
new file mode 100644
index 0000000..dbb4366
--- /dev/null
+++ b/share/cmake-3.18/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.18/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
index 2dc75d6..2dc75d6 100644
--- a/share/cmake-3.17/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
+++ b/share/cmake-3.18/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
diff --git a/share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake b/share/cmake-3.18/Modules/CMakeCommonLanguageInclude.cmake
index b043e18..b043e18 100644
--- a/share/cmake-3.17/Modules/CMakeCommonLanguageInclude.cmake
+++ b/share/cmake-3.18/Modules/CMakeCommonLanguageInclude.cmake
diff --git a/share/cmake-3.17/Modules/CMakeCompilerABI.h b/share/cmake-3.18/Modules/CMakeCompilerABI.h
index 45532af..45532af 100644
--- a/share/cmake-3.17/Modules/CMakeCompilerABI.h
+++ b/share/cmake-3.18/Modules/CMakeCompilerABI.h
diff --git a/share/cmake-3.18/Modules/CMakeCompilerIdDetection.cmake b/share/cmake-3.18/Modules/CMakeCompilerIdDetection.cmake
new file mode 100644
index 0000000..acd15df
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeCompilerIdDetection.cmake
@@ -0,0 +1,151 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+function(_readFile file)
+ include(${file})
+ get_filename_component(name ${file} NAME_WE)
+ string(REGEX REPLACE "-.*" "" CompilerId ${name})
+ set(_compiler_id_version_compute_${CompilerId} ${_compiler_id_version_compute} PARENT_SCOPE)
+ set(_compiler_id_simulate_${CompilerId} ${_compiler_id_simulate} PARENT_SCOPE)
+ set(_compiler_id_pp_test_${CompilerId} ${_compiler_id_pp_test} PARENT_SCOPE)
+endfunction()
+
+function(compiler_id_detection outvar lang)
+
+ if (NOT lang STREQUAL Fortran AND NOT lang STREQUAL CSharp)
+ file(GLOB lang_files
+ "${CMAKE_ROOT}/Modules/Compiler/*-DetermineCompiler.cmake")
+ set(nonlang CXX)
+ if (lang STREQUAL CXX)
+ set(nonlang C)
+ endif()
+
+ file(GLOB nonlang_files
+ "${CMAKE_ROOT}/Modules/Compiler/*-${nonlang}-DetermineCompiler.cmake")
+ list(REMOVE_ITEM lang_files ${nonlang_files})
+ endif()
+
+ set(files ${lang_files})
+ if (files)
+ foreach(file ${files})
+ _readFile(${file})
+ endforeach()
+
+ set(options ID_STRING VERSION_STRINGS ID_DEFINE PLATFORM_DEFAULT_COMPILER)
+ set(oneValueArgs PREFIX)
+ cmake_parse_arguments(CID "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+ if (CID_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "Unrecognized arguments: \"${CID_UNPARSED_ARGUMENTS}\"")
+ endif()
+
+ # Order is relevant here. For example, compilers which pretend to be
+ # GCC must appear before the actual GCC.
+ if (lang STREQUAL CXX)
+ list(APPEND ordered_compilers
+ Comeau
+ )
+ endif()
+ list(APPEND ordered_compilers
+ Intel
+ PathScale
+ Embarcadero
+ Borland
+ Watcom
+ OpenWatcom
+ SunPro
+ HP
+ Compaq
+ zOS
+ XLClang
+ XL
+ VisualAge
+ PGI
+ Cray
+ TI
+ Fujitsu
+ GHS
+ )
+ if (lang STREQUAL C)
+ list(APPEND ordered_compilers
+ TinyCC
+ Bruce
+ )
+ endif()
+ list(APPEND ordered_compilers
+ SCO
+ ARMCC
+ AppleClang
+ ARMClang
+ Clang
+ GNU
+ MSVC
+ ADSP
+ IAR
+ )
+ if (lang STREQUAL C)
+ list(APPEND ordered_compilers
+ SDCC
+ )
+ endif()
+
+ if(lang STREQUAL CUDA)
+ set(ordered_compilers NVIDIA Clang)
+ endif()
+
+ if(CID_ID_DEFINE)
+ foreach(Id ${ordered_compilers})
+ string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "# define ${CID_PREFIX}COMPILER_IS_${Id} 0\n")
+ endforeach()
+ # Hard-code definitions for compilers that are no longer supported.
+ string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "# define ${CID_PREFIX}COMPILER_IS_MIPSpro 0\n")
+ endif()
+
+ set(pp_if "#if")
+ if (CID_VERSION_STRINGS)
+ string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "\n/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */\n")
+ endif()
+
+ foreach(Id ${ordered_compilers})
+ if (NOT _compiler_id_pp_test_${Id})
+ message(FATAL_ERROR "No preprocessor test for \"${Id}\"")
+ endif()
+ set(id_content "${pp_if} ${_compiler_id_pp_test_${Id}}\n")
+ if (CID_ID_STRING)
+ set(PREFIX ${CID_PREFIX})
+ string(CONFIGURE "${_compiler_id_simulate_${Id}}" SIMULATE_BLOCK @ONLY)
+ string(APPEND id_content "# define ${CID_PREFIX}COMPILER_ID \"${Id}\"${SIMULATE_BLOCK}")
+ endif()
+ if (CID_ID_DEFINE)
+ string(APPEND id_content "# undef ${CID_PREFIX}COMPILER_IS_${Id}\n")
+ string(APPEND id_content "# define ${CID_PREFIX}COMPILER_IS_${Id} 1\n")
+ endif()
+ if (CID_VERSION_STRINGS)
+ set(PREFIX ${CID_PREFIX})
+ set(MACRO_DEC DEC)
+ set(MACRO_HEX HEX)
+ string(CONFIGURE "${_compiler_id_version_compute_${Id}}" VERSION_BLOCK @ONLY)
+ string(APPEND id_content "${VERSION_BLOCK}\n")
+ endif()
+ string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "\n${id_content}")
+ set(pp_if "#elif")
+ endforeach()
+
+ if (CID_PLATFORM_DEFAULT_COMPILER)
+ set(platform_compiler_detection "
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define ${CID_PREFIX}COMPILER_ID \"HP\"
+
+#else /* unknown compiler */
+# define ${CID_PREFIX}COMPILER_ID \"\"")
+ endif()
+
+ string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "\n${platform_compiler_detection}\n#endif")
+ endif()
+
+ set(${outvar} ${CMAKE_${lang}_COMPILER_ID_CONTENT} PARENT_SCOPE)
+endfunction()
diff --git a/share/cmake-3.17/Modules/CMakeConfigurableFile.in b/share/cmake-3.18/Modules/CMakeConfigurableFile.in
index df2c382..df2c382 100644
--- a/share/cmake-3.17/Modules/CMakeConfigurableFile.in
+++ b/share/cmake-3.18/Modules/CMakeConfigurableFile.in
diff --git a/share/cmake-3.17/Modules/CMakeDependentOption.cmake b/share/cmake-3.18/Modules/CMakeDependentOption.cmake
index 99d5070..99d5070 100644
--- a/share/cmake-3.17/Modules/CMakeDependentOption.cmake
+++ b/share/cmake-3.18/Modules/CMakeDependentOption.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineASM-ATTCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineASM-ATTCompiler.cmake
index a2efb6a..a2efb6a 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineASM-ATTCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineASM-ATTCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeDetermineASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineASMCompiler.cmake
new file mode 100644
index 0000000..bc8b86b
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineASMCompiler.cmake
@@ -0,0 +1,253 @@
+# 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 ASM programs
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+
+if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER)
+ # prefer the environment variable ASM
+ if(NOT $ENV{ASM${ASM_DIALECT}} STREQUAL "")
+ get_filename_component(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT $ENV{ASM${ASM_DIALECT}} PROGRAM PROGRAM_ARGS CMAKE_ASM${ASM_DIALECT}_FLAGS_ENV_INIT)
+ if(CMAKE_ASM${ASM_DIALECT}_FLAGS_ENV_INIT)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARG1 "${CMAKE_ASM${ASM_DIALECT}_FLAGS_ENV_INIT}" CACHE STRING "First argument to ASM${ASM_DIALECT} compiler")
+ endif()
+ if(NOT EXISTS ${CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT})
+ message(FATAL_ERROR "Could not find compiler set in environment variable ASM${ASM_DIALECT}:\n$ENV{ASM${ASM_DIALECT}}.")
+ endif()
+ endif()
+
+ # finally list compilers to try
+ if("ASM${ASM_DIALECT}" STREQUAL "ASM") # the generic assembler support
+ if(NOT CMAKE_ASM_COMPILER_INIT)
+ if(CMAKE_C_COMPILER)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${CMAKE_C_COMPILER})
+ elseif(CMAKE_CXX_COMPILER)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${CMAKE_CXX_COMPILER})
+ else()
+ # List all default C and CXX compilers
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST
+ ${_CMAKE_TOOLCHAIN_PREFIX}cc ${_CMAKE_TOOLCHAIN_PREFIX}gcc cl bcc xlc
+ CC ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ aCC cl bcc xlC)
+ endif()
+ endif()
+ else() # some specific assembler "dialect"
+ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT AND NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST)
+ message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT or CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST must be preset !")
+ endif()
+ endif()
+
+ # Find the compiler.
+ _cmake_find_compiler(ASM${ASM_DIALECT})
+
+else()
+ _cmake_find_compiler_path(ASM${ASM_DIALECT})
+endif()
+mark_as_advanced(CMAKE_ASM${ASM_DIALECT}_COMPILER)
+
+if (NOT _CMAKE_TOOLCHAIN_LOCATION)
+ get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" PATH)
+endif ()
+
+
+if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
+
+ # Table of per-vendor compiler id flags with expected output.
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS GNU )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_GNU "--version")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_GNU "(GNU assembler)|(GCC)|(Free Software Foundation)")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS Clang )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_Clang "--version")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_Clang "(clang version)")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS AppleClang )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_AppleClang "--version")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_AppleClang "(Apple LLVM version)")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS ARMClang )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_ARMClang "--version")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_ARMClang "armclang")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS HP )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_HP "-V")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_HP "HP C")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS Intel )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_Intel "--version")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_Intel "(ICC)")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS SunPro )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_SunPro "-V")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_SunPro "Sun C")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS XL )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_XL "-qversion")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_XL "XL C")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS MSVC )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_MSVC "-?")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_MSVC "Microsoft")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS TI )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_TI "-h")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_TI "Texas Instruments")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS IAR)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_IAR )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_IAR "IAR Assembler")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS ARMCC)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_ARMCC )
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_ARMCC "(ARM Compiler)|(ARM Assembler)")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS NASM)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_NASM "-v")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_NASM "(NASM version)")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS YASM)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_YASM "--version")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_YASM "(yasm)")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS ADSP)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_ADSP "-version")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_ADSP "Analog Devices")
+
+ list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS QCC)
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_QCC "-V")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_QCC "gcc_nto")
+
+ include(CMakeDetermineCompilerId)
+ set(userflags)
+ CMAKE_DETERMINE_COMPILER_ID_VENDOR(ASM${ASM_DIALECT} "${userflags}")
+ if("x${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}" STREQUAL "xIAR")
+ # primary necessary to detect architecture, so the right archiver and linker can be picked
+ # eg. "IAR Assembler V8.10.1.12857/W32 for ARM" or "IAR Assembler V4.11.1.4666 for Renesas RX"
+ # Cut out identification first, newline handling is a pain
+ string(REGEX MATCH "IAR Assembler[^\r\n]*" _compileid "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_OUTPUT}")
+ if("${_compileid}" MATCHES "V([0-9]+\\.[0-9]+\\.[0-9]+)")
+ set(CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION ${CMAKE_MATCH_1})
+ endif()
+ string(REGEX MATCHALL "([A-Za-z0-9-]+)" _all_compileid_matches "${_compileid}")
+ if(_all_compileid_matches)
+ list(GET _all_compileid_matches "-1" CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID)
+ endif()
+ endif()
+
+ _cmake_find_compiler_sysroot(ASM${ASM_DIALECT})
+
+ unset(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_OUTPUT)
+ unset(_all_compileid_matches)
+ unset(_compileid)
+endif()
+
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
+ if(CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION)
+ set(_version " ${CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION}")
+ else()
+ set(_version "")
+ endif()
+ if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID AND "x${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}" STREQUAL "xIAR")
+ set(_archid " ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}")
+ else()
+ set(_archid "")
+ endif()
+ message(STATUS "The ASM${ASM_DIALECT} compiler identification is ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}${_archid}${_version}")
+ unset(_archid)
+ unset(_version)
+else()
+ message(STATUS "The ASM${ASM_DIALECT} compiler identification is unknown")
+endif()
+
+# If we have a gas/as cross compiler, they have usually some prefix, like
+# e.g. powerpc-linux-gas, arm-elf-gas or i586-mingw32msvc-gas , optionally
+# with a 3-component version number at the end
+# 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-gas.exe", where BASENAME would be
+# "arm-unknown-nto-qnx6" instead of the correct "arm-unknown-nto-qnx6.3.0-"
+if (NOT _CMAKE_TOOLCHAIN_PREFIX)
+ get_filename_component(COMPILER_BASENAME "${CMAKE_ASM${ASM_DIALECT}_COMPILER}" NAME)
+ if (COMPILER_BASENAME MATCHES "^(.+-)g?as(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ endif ()
+endif ()
+
+# Now try the C compiler regexp:
+if (NOT _CMAKE_TOOLCHAIN_PREFIX)
+ if (COMPILER_BASENAME MATCHES "^(.+-)g?cc(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ endif ()
+endif ()
+
+# Finally try the CXX compiler regexp:
+if (NOT _CMAKE_TOOLCHAIN_PREFIX)
+ if (COMPILER_BASENAME MATCHES "^(.+-)[gc]\\+\\+(-[0-9]+\\.[0-9]+\\.[0-9]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ endif ()
+endif ()
+
+
+set(_CMAKE_PROCESSING_LANGUAGE "ASM")
+include(CMakeFindBinUtils)
+include(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-FindBinUtils OPTIONAL)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ENV_VAR "ASM${ASM_DIALECT}")
+
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER)
+ message(STATUS "Found assembler: ${CMAKE_ASM${ASM_DIALECT}_COMPILER}")
+else()
+ message(STATUS "Didn't find assembler")
+endif()
+
+foreach(_var
+ COMPILER
+ COMPILER_ID
+ COMPILER_ARG1
+ COMPILER_ENV_VAR
+ COMPILER_AR
+ COMPILER_RANLIB
+ COMPILER_VERSION
+ )
+ set(_CMAKE_ASM_${_var} "${CMAKE_ASM${ASM_DIALECT}_${_var}}")
+endforeach()
+
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_SYSROOT)
+ string(CONCAT _SET_CMAKE_ASM_COMPILER_SYSROOT
+ "set(CMAKE_ASM${ASM_DIALECT}_COMPILER_SYSROOT \"${CMAKE_ASM${ASM_DIALECT}_COMPILER_SYSROOT}\")\n"
+ "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_ASM${ASM_DIALECT}_COMPILER_SYSROOT}\")")
+else()
+ set(_SET_CMAKE_ASM_COMPILER_SYSROOT "")
+endif()
+
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_MATCH)
+ set(_SET_CMAKE_ASM_COMPILER_ID_VENDOR_MATCH
+ "set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_MATCH [==[${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_MATCH}]==])")
+else()
+ set(_SET_CMAKE_ASM_COMPILER_ID_VENDOR_MATCH "")
+endif()
+
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID)
+ set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID
+ "set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID})")
+else()
+ set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID "")
+endif()
+
+# configure variables set in this file for fast reload later on
+configure_file(${CMAKE_ROOT}/Modules/CMakeASMCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeASM${ASM_DIALECT}Compiler.cmake @ONLY)
+
+foreach(_var
+ COMPILER
+ COMPILER_ID
+ COMPILER_ARG1
+ COMPILER_ENV_VAR
+ COMPILER_AR
+ COMPILER_RANLIB
+ COMPILER_VERSION
+ )
+ unset(_CMAKE_ASM_${_var})
+endforeach()
diff --git a/share/cmake-3.17/Modules/CMakeDetermineASM_MASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineASM_MASMCompiler.cmake
index 80188fb..80188fb 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineASM_MASMCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineASM_MASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineASM_NASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineASM_NASMCompiler.cmake
index dd75310..dd75310 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineASM_NASMCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineASM_NASMCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake
new file mode 100644
index 0000000..86683d1
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake
@@ -0,0 +1,226 @@
+# 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 C programs
+# NOTE, a generator may set CMAKE_C_COMPILER before
+# loading this file to force a compiler.
+# use environment variable CC first if defined by user, next use
+# the cmake variable CMAKE_GENERATOR_CC which can be defined by a generator
+# as a default compiler
+# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
+# as prefix for the tools (e.g. arm-elf-gcc, arm-elf-ar etc.). This works
+# currently with the GNU crosscompilers.
+#
+# Sets the following variables:
+# CMAKE_C_COMPILER
+# CMAKE_AR
+# CMAKE_RANLIB
+# CMAKE_COMPILER_IS_GNUCC
+#
+# If not already set before, it also sets
+# _CMAKE_TOOLCHAIN_PREFIX
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+
+# Load system-specific compiler preferences for this language.
+include(Platform/${CMAKE_SYSTEM_NAME}-Determine-C OPTIONAL)
+include(Platform/${CMAKE_SYSTEM_NAME}-C OPTIONAL)
+if(NOT CMAKE_C_COMPILER_NAMES)
+ set(CMAKE_C_COMPILER_NAMES cc)
+endif()
+
+if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+elseif("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
+elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
+ set(CMAKE_C_COMPILER_XCODE_TYPE sourcecode.c.c)
+ _cmake_find_compiler_path(C)
+else()
+ if(NOT CMAKE_C_COMPILER)
+ set(CMAKE_C_COMPILER_INIT NOTFOUND)
+
+ # prefer the environment variable CC
+ if(NOT $ENV{CC} STREQUAL "")
+ get_filename_component(CMAKE_C_COMPILER_INIT $ENV{CC} PROGRAM PROGRAM_ARGS CMAKE_C_FLAGS_ENV_INIT)
+ if(CMAKE_C_FLAGS_ENV_INIT)
+ set(CMAKE_C_COMPILER_ARG1 "${CMAKE_C_FLAGS_ENV_INIT}" CACHE STRING "First argument to C compiler")
+ endif()
+ if(NOT EXISTS ${CMAKE_C_COMPILER_INIT})
+ message(FATAL_ERROR "Could not find compiler set in environment variable CC:\n$ENV{CC}.")
+ endif()
+ endif()
+
+ # next try prefer the compiler specified by the generator
+ if(CMAKE_GENERATOR_CC)
+ if(NOT CMAKE_C_COMPILER_INIT)
+ set(CMAKE_C_COMPILER_INIT ${CMAKE_GENERATOR_CC})
+ endif()
+ endif()
+
+ # finally list compilers to try
+ if(NOT CMAKE_C_COMPILER_INIT)
+ set(CMAKE_C_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}cc ${_CMAKE_TOOLCHAIN_PREFIX}gcc cl bcc xlc clang)
+ endif()
+
+ _cmake_find_compiler(C)
+
+ else()
+ _cmake_find_compiler_path(C)
+ endif()
+ mark_as_advanced(CMAKE_C_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 file.
+ set(CMAKE_C_COMPILER_ID_TEST_FLAGS_FIRST)
+ set(CMAKE_C_COMPILER_ID_TEST_FLAGS
+ # Try compiling to an object file only.
+ "-c"
+
+ # Try enabling ANSI mode on HP.
+ "-Aa"
+
+ # Try compiling K&R-compatible code (needed by Bruce C Compiler).
+ "-D__CLASSIC_C__"
+
+ # ARMClang need target options
+ "--target=arm-arm-none-eabi -mcpu=cortex-m3"
+ )
+endif()
+
+# Build a small source file to identify the compiler.
+if(NOT CMAKE_C_COMPILER_ID_RUN)
+ set(CMAKE_C_COMPILER_ID_RUN 1)
+
+ # Try to identify the compiler.
+ set(CMAKE_C_COMPILER_ID)
+ set(CMAKE_C_PLATFORM_ID)
+ file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
+ CMAKE_C_COMPILER_ID_PLATFORM_CONTENT)
+
+ # The IAR compiler produces weird output.
+ # See https://gitlab.kitware.com/cmake/cmake/-/issues/10176#note_153591
+ list(APPEND CMAKE_C_COMPILER_ID_VENDORS IAR)
+ set(CMAKE_C_COMPILER_ID_VENDOR_FLAGS_IAR )
+ set(CMAKE_C_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
+
+ # Match the link line from xcodebuild output of the form
+ # Ld ...
+ # ...
+ # /path/to/cc ...CompilerIdC/...
+ # to extract the compiler front-end for the language.
+ set(CMAKE_C_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdC/(\\./)?(CompilerIdC.(framework|xctest)/)?CompilerIdC[ \t\n\\\"]")
+ set(CMAKE_C_COMPILER_ID_TOOL_MATCH_INDEX 2)
+
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+ CMAKE_DETERMINE_COMPILER_ID(C CFLAGS CMakeCCompilerId.c)
+
+ _cmake_find_compiler_sysroot(C)
+
+ # Set old compiler and platform id variables.
+ if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ set(CMAKE_COMPILER_IS_GNUCC 1)
+ endif()
+ if(CMAKE_C_PLATFORM_ID MATCHES "MinGW")
+ set(CMAKE_COMPILER_IS_MINGW 1)
+ elseif(CMAKE_C_PLATFORM_ID MATCHES "Cygwin")
+ set(CMAKE_COMPILER_IS_CYGWIN 1)
+ endif()
+else()
+ if(NOT DEFINED CMAKE_C_COMPILER_FRONTEND_VARIANT)
+ # Some toolchain files set our internal CMAKE_C_COMPILER_ID_RUN
+ # variable but are not aware of CMAKE_C_COMPILER_FRONTEND_VARIANT.
+ # They pre-date our support for the GNU-like variant targeting the
+ # MSVC ABI so we do not consider that here.
+ if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
+ if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_C_COMPILER_FRONTEND_VARIANT "MSVC")
+ else()
+ set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
+ endif()
+ else()
+ set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
+ endif()
+ endif()
+endif()
+
+if (NOT _CMAKE_TOOLCHAIN_LOCATION)
+ get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
+endif ()
+
+# If we have a gcc cross compiler, they have usually some prefix, like
+# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc, 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 (NOT _CMAKE_TOOLCHAIN_PREFIX)
+
+ if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|QCC")
+ get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
+ if (COMPILER_BASENAME MATCHES "^(.+-)(clang|g?cc)(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
+ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
+ if(CMAKE_C_COMPILER_TARGET)
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_C_COMPILER_TARGET}-)
+ endif()
+ elseif(COMPILER_BASENAME MATCHES "qcc(\\.exe)?$")
+ if(CMAKE_C_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)?")
+ set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
+ endif()
+ 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 ()
+ elseif(CMAKE_C_COMPILER_ID MATCHES "TI")
+ # TI compilers are named e.g. cl6x, cl470 or armcl.exe
+ get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
+ if (COMPILER_BASENAME MATCHES "^(.+)?cl([^.]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX "${CMAKE_MATCH_1}")
+ set(_CMAKE_TOOLCHAIN_SUFFIX "${CMAKE_MATCH_2}")
+ endif ()
+ endif()
+
+endif ()
+
+set(_CMAKE_PROCESSING_LANGUAGE "C")
+include(CMakeFindBinUtils)
+include(Compiler/${CMAKE_C_COMPILER_ID}-FindBinUtils OPTIONAL)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+if(CMAKE_C_COMPILER_SYSROOT)
+ string(CONCAT _SET_CMAKE_C_COMPILER_SYSROOT
+ "set(CMAKE_C_COMPILER_SYSROOT \"${CMAKE_C_COMPILER_SYSROOT}\")\n"
+ "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_C_COMPILER_SYSROOT}\")")
+else()
+ set(_SET_CMAKE_C_COMPILER_SYSROOT "")
+endif()
+
+if(CMAKE_C_COMPILER_ARCHITECTURE_ID)
+ set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID
+ "set(CMAKE_C_COMPILER_ARCHITECTURE_ID ${CMAKE_C_COMPILER_ARCHITECTURE_ID})")
+else()
+ set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID "")
+endif()
+
+if(MSVC_C_ARCHITECTURE_ID)
+ set(SET_MSVC_C_ARCHITECTURE_ID
+ "set(MSVC_C_ARCHITECTURE_ID ${MSVC_C_ARCHITECTURE_ID})")
+endif()
+
+if(CMAKE_C_XCODE_ARCHS)
+ set(SET_CMAKE_XCODE_ARCHS
+ "set(CMAKE_XCODE_ARCHS \"${CMAKE_C_XCODE_ARCHS}\")")
+endif()
+
+# configure variables set in this file for fast reload later on
+configure_file(${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake
+ @ONLY
+ )
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCSharpCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCSharpCompiler.cmake
index da860a8..da860a8 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineCSharpCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineCSharpCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeDetermineCUDACompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCUDACompiler.cmake
new file mode 100644
index 0000000..fa497cd
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineCUDACompiler.cmake
@@ -0,0 +1,575 @@
+# 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)
+
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+
+ if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+ # We will not know CMAKE_CUDA_COMPILER until the main compiler id step
+ # below extracts it, but we do know that the compiler id will be NVIDIA.
+ set(CMAKE_CUDA_COMPILER_ID "NVIDIA")
+ else()
+ # We determine the vendor to help with find the toolkit and use the right flags for detection right away.
+ # The main compiler identification is still needed below to extract other information.
+ list(APPEND CMAKE_CUDA_COMPILER_ID_VENDORS NVIDIA Clang)
+ set(CMAKE_CUDA_COMPILER_ID_VENDOR_REGEX_NVIDIA "nvcc: NVIDIA \\(R\\) Cuda compiler driver")
+ set(CMAKE_CUDA_COMPILER_ID_VENDOR_REGEX_Clang "(clang version)")
+ CMAKE_DETERMINE_COMPILER_ID_VENDOR(CUDA "--version")
+
+ # Find the CUDA toolkit. We store the CMAKE_CUDA_COMPILER_TOOLKIT_ROOT and CMAKE_CUDA_COMPILER_LIBRARY_ROOT
+ # in CMakeCUDACompiler.cmake, so FindCUDAToolkit can avoid searching on future runs and the toolkit stays the same.
+ # This is very similar to FindCUDAToolkit, but somewhat simplified since we can issue fatal errors
+ # if we fail to find things we need and we don't need to account for searching the libraries.
+
+ # For NVCC we can easily deduce the SDK binary directory from the compiler path.
+ if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+ set(_CUDA_NVCC_EXECUTABLE "${CMAKE_CUDA_COMPILER}")
+ else()
+ # Search using CUDAToolkit_ROOT and then CUDA_PATH for equivalence with FindCUDAToolkit.
+ # In FindCUDAToolkit CUDAToolkit_ROOT is searched automatically due to being in a find_package().
+ # First we search candidate non-default paths to give them priority.
+ find_program(_CUDA_NVCC_EXECUTABLE
+ NAMES nvcc nvcc.exe
+ PATHS ${CUDAToolkit_ROOT}
+ ENV CUDAToolkit_ROOT
+ ENV CUDA_PATH
+ PATH_SUFFIXES bin
+ NO_DEFAULT_PATH
+ )
+
+ # If we didn't find NVCC, then try the default paths.
+ find_program(_CUDA_NVCC_EXECUTABLE
+ NAMES nvcc nvcc.exe
+ PATH_SUFFIXES bin
+ )
+
+ # If the user specified CUDAToolkit_ROOT but nvcc could not be found, this is an error.
+ if(NOT _CUDA_NVCC_EXECUTABLE AND (DEFINED CUDAToolkit_ROOT OR DEFINED ENV{CUDAToolkit_ROOT}))
+ set(fail_base "Could not find nvcc executable in path specified by")
+
+ if(DEFINED CUDAToolkit_ROOT)
+ message(FATAL_ERROR "${fail_base} CUDAToolkit_ROOT=${CUDAToolkit_ROOT}")
+ elseif(DEFINED ENV{CUDAToolkit_ROOT})
+ message(FATAL_ERROR "${fail_base} environment variable CUDAToolkit_ROOT=$ENV{CUDAToolkit_ROOT}")
+ 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 _CUDA_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(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 versions ${p_version})
+ endif()
+ endforeach()
+
+ # Sort numerically in descending order, so we try the newest versions first.
+ list(SORT versions COMPARE NATURAL ORDER DESCENDING)
+
+ # 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(_CUDA_NVCC_EXECUTABLE
+ NAMES nvcc nvcc.exe
+ PATHS ${search_paths}
+ PATH_SUFFIXES bin
+ )
+
+ # We are done with these variables now, cleanup.
+ unset(platform_base)
+ unset(possible_paths)
+ unset(versions)
+ unset(search_paths)
+
+ if(NOT _CUDA_NVCC_EXECUTABLE)
+ message(FATAL_ERROR "Could not find nvcc, please set CUDAToolkit_ROOT.")
+ endif()
+ endif()
+ endif()
+
+ get_filename_component(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "${_CUDA_NVCC_EXECUTABLE}" DIRECTORY)
+ get_filename_component(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}" DIRECTORY)
+
+ # CMAKE_CUDA_COMPILER_LIBRARY_ROOT contains the device library and version file.
+ # In a non-scattered installation this is equivalent to CMAKE_CUDA_COMPILER_TOOLKIT_ROOT.
+ # We first check for a non-scattered installation to prefer it over a scattered installation.
+ if(EXISTS "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/version.txt")
+ set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
+ elseif(CMAKE_SYSROOT_LINK AND EXISTS "${CMAKE_SYSROOT_LINK}/usr/lib/cuda/version.txt")
+ set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "${CMAKE_SYSROOT_LINK}/usr/lib/cuda")
+ elseif(EXISTS "${CMAKE_SYSROOT}/usr/lib/cuda/version.txt")
+ set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "${CMAKE_SYSROOT}/usr/lib/cuda")
+ endif()
+ endif()
+
+ set(CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS "-v")
+
+ if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+ set(nvcc_test_flags "--keep --keep-dir tmp")
+ if(CMAKE_CUDA_HOST_COMPILER)
+ string(APPEND nvcc_test_flags " -ccbin=\"${CMAKE_CUDA_HOST_COMPILER}\"")
+ endif()
+ elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
+ if(WIN32)
+ message(FATAL_ERROR "Clang with CUDA is not yet supported on Windows. See CMake issue #20776.")
+ endif()
+
+ set(clang_test_flags "--cuda-path=\"${CMAKE_CUDA_COMPILER_LIBRARY_ROOT}\"")
+ if(CMAKE_CROSSCOMPILING)
+ # Need to pass the host target and include directories if we're crosscompiling.
+ string(APPEND clang_test_flags " --sysroot=\"${CMAKE_SYSROOT}\" --target=${CMAKE_CUDA_COMPILER_TARGET}")
+ endif()
+ endif()
+
+ # First try with the user-specified architectures.
+ if(CMAKE_CUDA_ARCHITECTURES)
+ set(clang_archs "${clang_test_flags}")
+ set(nvcc_archs "${nvcc_test_flags}")
+
+ foreach(arch ${CMAKE_CUDA_ARCHITECTURES})
+ # Strip specifiers as PTX vs binary doesn't matter.
+ string(REGEX MATCH "[0-9]+" arch_name "${arch}")
+ string(APPEND clang_archs " --cuda-gpu-arch=sm_${arch_name}")
+ string(APPEND nvcc_archs " -gencode=arch=compute_${arch_name},code=sm_${arch_name}")
+ list(APPEND tested_architectures "${arch_name}")
+ endforeach()
+
+ list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST "${clang_archs}")
+ list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST "${nvcc_archs}")
+ endif()
+
+ # Fallback default NVCC flags.
+ list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST ${nvcc_test_flags})
+
+ # Clang doesn't automatically select an architecture supported by the SDK.
+ # Try in reverse order of deprecation with the most recent at front (i.e. the most likely to work for new setups).
+ foreach(arch "20" "30" "52")
+ list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST "${clang_test_flags} --cuda-gpu-arch=sm_${arch}")
+ endforeach()
+
+ # Finally also try the default.
+ list(APPEND CMAKE_CUDA_COMPILER_ID_TEST_FLAGS_FIRST "${clang_test_flags}")
+
+ # We perform compiler identification for a second time to extract implicit linking info and host compiler for NVCC.
+ # We also use it to verify that CMAKE_CUDA_ARCHITECTURES and additionaly on Clang that CUDA toolkit path works.
+ # The latter could be done during compiler testing in the future to avoid doing this for Clang.
+ # We need to unset the compiler ID otherwise CMAKE_DETERMINE_COMPILER_ID() doesn't work.
+ set(CMAKE_CUDA_COMPILER_ID)
+ set(CMAKE_CUDA_PLATFORM_ID)
+ file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
+ CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT)
+
+ CMAKE_DETERMINE_COMPILER_ID(CUDA CUDAFLAGS CMakeCUDACompilerId.cu)
+
+ if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+ # Now that we have the path to nvcc, we can compute the toolkit root.
+ get_filename_component(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "${CMAKE_CUDA_COMPILER}" DIRECTORY)
+ get_filename_component(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}" DIRECTORY)
+ set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
+ endif()
+
+ _cmake_find_compiler_sysroot(CUDA)
+endif()
+
+set(_CMAKE_PROCESSING_LANGUAGE "CUDA")
+include(CMakeFindBinUtils)
+include(Compiler/${CMAKE_CUDA_COMPILER_ID}-FindBinUtils OPTIONAL)
+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 "")
+
+ # We do not currently detect CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES but we
+ # do need to detect CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT from the compiler by
+ # looking at which cudart library exists in the implicit link libraries passed
+ # to the host linker.
+ if(CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT MATCHES "link\\.exe [^\n]*cudart_static\\.lib")
+ set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
+ elseif(CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT MATCHES "link\\.exe [^\n]*cudart\\.lib")
+ set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "SHARED")
+ else()
+ set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "NONE")
+ endif()
+ set(_SET_CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT
+ "set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT \"${CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT}\")")
+elseif(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang")
+ if(NOT CMAKE_CUDA_ARCHITECTURES)
+ # Find the architecture that we successfully compiled using and set it as the default.
+ string(REGEX MATCH "-target-cpu sm_([0-9]+)" dont_care "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+ set(detected_architecture "${CMAKE_MATCH_1}")
+ else()
+ string(REGEX MATCHALL "-target-cpu sm_([0-9]+)" target_cpus "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+
+ foreach(cpu ${target_cpus})
+ string(REGEX MATCH "-target-cpu sm_([0-9]+)" dont_care "${cpu}")
+ list(APPEND architectures "${CMAKE_MATCH_1}")
+ endforeach()
+ endif()
+
+ # Find target directory. Account for crosscompiling.
+ if(CMAKE_CROSSCOMPILING)
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7-a")
+ # Support for NVPACK
+ set(_CUDA_TARGET_NAME "armv7-linux-androideabi")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
+ set(_CUDA_TARGET_NAME "armv7-linux-gnueabihf")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
+ if(ANDROID_ARCH_NAME STREQUAL "arm64")
+ set(_CUDA_TARGET_NAME "aarch64-linux-androideabi")
+ else()
+ set(_CUDA_TARGET_NAME "aarch64-linux")
+ endif()
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ set(_CUDA_TARGET_NAME "x86_64-linux")
+ endif()
+
+ if(EXISTS "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/${_CUDA_TARGET_NAME}")
+ set(_CUDA_TARGET_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}/targets/${_CUDA_TARGET_NAME}")
+ endif()
+ else()
+ set(_CUDA_TARGET_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
+ endif()
+
+ # We can't use find_library() yet at this point, so try a few guesses.
+ if(EXISTS "${_CUDA_TARGET_DIR}/lib64")
+ set(_CUDA_LIBRARY_DIR "${_CUDA_TARGET_DIR}/lib64")
+ elseif(EXISTS "${_CUDA_TARGET_DIR}/lib/x64")
+ set(_CUDA_LIBRARY_DIR "${_CUDA_TARGET_DIR}/lib/x64")
+ elseif(EXISTS "${_CUDA_TARGET_DIR}/lib")
+ set(_CUDA_LIBRARY_DIR "${_CUDA_TARGET_DIR}/lib")
+ else()
+ message(FATAL_ERROR "Unable to find _CUDA_LIBRARY_DIR based on _CUDA_TARGET_DIR=${_CUDA_TARGET_DIR}")
+ endif()
+
+ # _CUDA_TARGET_DIR always points to the directory containing the include directory.
+ # On a scattered installation /usr, on a non-scattered something like /usr/local/cuda or /usr/local/cuda-10.2/targets/aarch64-linux.
+ if(EXISTS "${_CUDA_TARGET_DIR}/include/cuda_runtime.h")
+ set(_CUDA_INCLUDE_DIR "${_CUDA_TARGET_DIR}/include")
+ else()
+ message(FATAL_ERROR "Unable to find cuda_runtime.h in \"${_CUDA_TARGET_DIR}/include\" for _CUDA_INCLUDE_DIR.")
+ endif()
+
+ # Clang does not add any CUDA SDK libraries or directories when invoking the host linker.
+ # Add the CUDA toolkit library directory ourselves so that linking works.
+ # The CUDA runtime libraries are handled elsewhere by CMAKE_CUDA_RUNTIME_LIBRARY.
+ set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${_CUDA_INCLUDE_DIR}")
+ set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "${_CUDA_LIBRARY_DIR}")
+ set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "")
+ 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}")
+
+ # Detect CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT from the compiler by looking at which
+ # cudart library exists in the implicit link libraries passed to the host linker.
+ # This is required when a project sets the cuda runtime library as part of the
+ # initial flags.
+ if(";${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES};" MATCHES [[;cudart_static(\.lib)?;]])
+ set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "STATIC")
+ elseif(";${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES};" MATCHES [[;cudart(\.lib)?;]])
+ set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "SHARED")
+ else()
+ set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT "NONE")
+ endif()
+ set(_SET_CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT
+ "set(CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT \"${CMAKE_CUDA_RUNTIME_LIBRARY_DEFAULT}\")")
+
+ 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 parse CUDA nvcc implicit link information:\n${_nvcc_log}\n\n")
+ message(FATAL_ERROR "Failed to extract nvcc implicit link line.")
+ endif()
+endif()
+
+# CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES is detected above as the list of
+# libraries that the CUDA compiler implicitly passes to the host linker.
+# CMake invokes the host linker directly and so needs to pass these libraries.
+# We filter out those that should not be passed unconditionally both here
+# and from CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES in CMakeTestCUDACompiler.
+set(CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES_EXCLUDE
+ # The CUDA runtime libraries are controlled by CMAKE_CUDA_RUNTIME_LIBRARY.
+ cudart cudart.lib
+ cudart_static cudart_static.lib
+ cudadevrt cudadevrt.lib
+
+ # Dependencies of the CUDA static runtime library on Linux hosts.
+ rt
+ pthread
+ dl
+ )
+list(REMOVE_ITEM CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES ${CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES_EXCLUDE})
+
+if(CMAKE_CUDA_COMPILER_SYSROOT)
+ string(CONCAT _SET_CMAKE_CUDA_COMPILER_SYSROOT
+ "set(CMAKE_CUDA_COMPILER_SYSROOT \"${CMAKE_CUDA_COMPILER_SYSROOT}\")\n"
+ "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_CUDA_COMPILER_SYSROOT}\")")
+else()
+ set(_SET_CMAKE_CUDA_COMPILER_SYSROOT "")
+endif()
+
+# Determine CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
+if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+ 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()
+
+ # Parse default CUDA architecture.
+ cmake_policy(GET CMP0104 _CUDA_CMP0104)
+ if(NOT CMAKE_CUDA_ARCHITECTURES AND _CUDA_CMP0104 STREQUAL "NEW")
+ string(REGEX MATCH "arch[ =]compute_([0-9]+)" dont_care "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+ set(detected_architecture "${CMAKE_MATCH_1}")
+ elseif(CMAKE_CUDA_ARCHITECTURES)
+ string(REGEX MATCHALL "-arch compute_([0-9]+)" target_cpus "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
+
+ foreach(cpu ${target_cpus})
+ string(REGEX MATCH "-arch compute_([0-9]+)" dont_care "${cpu}")
+ list(APPEND architectures "${CMAKE_MATCH_1}")
+ endforeach()
+ endif()
+endif()
+
+# If the user didn't set the architectures, then set them to a default.
+# If the user did, then make sure those architectures worked.
+if(DEFINED detected_architecture AND "${CMAKE_CUDA_ARCHITECTURES}" STREQUAL "")
+ set(CMAKE_CUDA_ARCHITECTURES "${detected_architecture}" CACHE STRING "CUDA architectures")
+
+ if(NOT CMAKE_CUDA_ARCHITECTURES)
+ message(FATAL_ERROR "Failed to find a working CUDA architecture.")
+ endif()
+elseif(architectures)
+ # Sort since order mustn't matter.
+ list(SORT architectures)
+ list(SORT tested_architectures)
+
+ # We don't distinguish real/virtual architectures during testing.
+ # For "70-real;70-virtual" we detect "70" as working and tested_architectures is "70;70".
+ # Thus we need to remove duplicates before checking if they're equal.
+ list(REMOVE_DUPLICATES tested_architectures)
+
+ if(NOT "${architectures}" STREQUAL "${tested_architectures}")
+ message(FATAL_ERROR
+ "The CMAKE_CUDA_ARCHITECTURES:\n"
+ " ${CMAKE_CUDA_ARCHITECTURES}\n"
+ "do not all work with this compiler. Try:\n"
+ " ${architectures}\n"
+ "instead.")
+ endif()
+endif()
+
+# configure all variables set in this file
+configure_file(${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeCUDACompiler.cmake
+ @ONLY
+)
+
+# Don't leak variables unnecessarily to user code.
+unset(_CUDA_INCLUDE_DIR CACHE)
+unset(_CUDA_NVCC_EXECUTABLE CACHE)
+unset(_CUDA_LIBRARY_DIR)
+unset(_CUDA_TARGET_DIR)
+unset(_CUDA_TARGET_NAME)
+
+set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
+set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
diff --git a/share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake
new file mode 100644
index 0000000..662b831
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake
@@ -0,0 +1,225 @@
+# 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 C++ programs
+# NOTE, a generator may set CMAKE_CXX_COMPILER before
+# loading this file to force a compiler.
+# use environment variable CXX first if defined by user, next use
+# the cmake variable CMAKE_GENERATOR_CXX which can be defined by a generator
+# as a default compiler
+# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
+# as prefix for the tools (e.g. arm-elf-g++, arm-elf-ar etc.)
+#
+# Sets the following variables:
+# CMAKE_CXX_COMPILER
+# CMAKE_COMPILER_IS_GNUCXX
+# CMAKE_AR
+# CMAKE_RANLIB
+#
+# If not already set before, it also sets
+# _CMAKE_TOOLCHAIN_PREFIX
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+
+# Load system-specific compiler preferences for this language.
+include(Platform/${CMAKE_SYSTEM_NAME}-Determine-CXX OPTIONAL)
+include(Platform/${CMAKE_SYSTEM_NAME}-CXX OPTIONAL)
+if(NOT CMAKE_CXX_COMPILER_NAMES)
+ set(CMAKE_CXX_COMPILER_NAMES CC)
+endif()
+
+if(${CMAKE_GENERATOR} MATCHES "Visual Studio")
+elseif("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
+elseif("${CMAKE_GENERATOR}" MATCHES "Xcode")
+ set(CMAKE_CXX_COMPILER_XCODE_TYPE sourcecode.cpp.cpp)
+ _cmake_find_compiler_path(CXX)
+else()
+ if(NOT CMAKE_CXX_COMPILER)
+ set(CMAKE_CXX_COMPILER_INIT NOTFOUND)
+
+ # prefer the environment variable CXX
+ if(NOT $ENV{CXX} STREQUAL "")
+ get_filename_component(CMAKE_CXX_COMPILER_INIT $ENV{CXX} PROGRAM PROGRAM_ARGS CMAKE_CXX_FLAGS_ENV_INIT)
+ if(CMAKE_CXX_FLAGS_ENV_INIT)
+ set(CMAKE_CXX_COMPILER_ARG1 "${CMAKE_CXX_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler")
+ endif()
+ if(NOT EXISTS ${CMAKE_CXX_COMPILER_INIT})
+ message(FATAL_ERROR "Could not find compiler set in environment variable CXX:\n$ENV{CXX}.\n${CMAKE_CXX_COMPILER_INIT}")
+ endif()
+ endif()
+
+ # next prefer the generator specified compiler
+ if(CMAKE_GENERATOR_CXX)
+ if(NOT CMAKE_CXX_COMPILER_INIT)
+ set(CMAKE_CXX_COMPILER_INIT ${CMAKE_GENERATOR_CXX})
+ endif()
+ endif()
+
+ # finally list compilers to try
+ if(NOT CMAKE_CXX_COMPILER_INIT)
+ set(CMAKE_CXX_COMPILER_LIST CC ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ aCC cl bcc xlC clang++)
+ endif()
+
+ _cmake_find_compiler(CXX)
+ else()
+ _cmake_find_compiler_path(CXX)
+ endif()
+ mark_as_advanced(CMAKE_CXX_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 file.
+ set(CMAKE_CXX_COMPILER_ID_TEST_FLAGS_FIRST)
+ set(CMAKE_CXX_COMPILER_ID_TEST_FLAGS
+ # Try compiling to an object file only.
+ "-c"
+ # IAR does not detect language automatically
+ "--c++"
+ "--ec++"
+
+ # ARMClang need target options
+ "--target=arm-arm-none-eabi -mcpu=cortex-m3"
+ )
+endif()
+
+# Build a small source file to identify the compiler.
+if(NOT CMAKE_CXX_COMPILER_ID_RUN)
+ set(CMAKE_CXX_COMPILER_ID_RUN 1)
+
+ # Try to identify the compiler.
+ set(CMAKE_CXX_COMPILER_ID)
+ set(CMAKE_CXX_PLATFORM_ID)
+ file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
+ CMAKE_CXX_COMPILER_ID_PLATFORM_CONTENT)
+
+ # The IAR compiler produces weird output.
+ # See https://gitlab.kitware.com/cmake/cmake/-/issues/10176#note_153591
+ list(APPEND CMAKE_CXX_COMPILER_ID_VENDORS IAR)
+ set(CMAKE_CXX_COMPILER_ID_VENDOR_FLAGS_IAR )
+ set(CMAKE_CXX_COMPILER_ID_VENDOR_REGEX_IAR "IAR .+ Compiler")
+
+ # Match the link line from xcodebuild output of the form
+ # Ld ...
+ # ...
+ # /path/to/cc ...CompilerIdCXX/...
+ # to extract the compiler front-end for the language.
+ set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdCXX/(\\./)?(CompilerIdCXX.(framework|xctest)/)?CompilerIdCXX[ \t\n\\\"]")
+ set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
+
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+ CMAKE_DETERMINE_COMPILER_ID(CXX CXXFLAGS CMakeCXXCompilerId.cpp)
+
+ _cmake_find_compiler_sysroot(CXX)
+
+ # Set old compiler and platform id variables.
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ set(CMAKE_COMPILER_IS_GNUCXX 1)
+ endif()
+ if(CMAKE_CXX_PLATFORM_ID MATCHES "MinGW")
+ set(CMAKE_COMPILER_IS_MINGW 1)
+ elseif(CMAKE_CXX_PLATFORM_ID MATCHES "Cygwin")
+ set(CMAKE_COMPILER_IS_CYGWIN 1)
+ endif()
+else()
+ if(NOT DEFINED CMAKE_CXX_COMPILER_FRONTEND_VARIANT)
+ # Some toolchain files set our internal CMAKE_CXX_COMPILER_ID_RUN
+ # variable but are not aware of CMAKE_CXX_COMPILER_FRONTEND_VARIANT.
+ # They pre-date our support for the GNU-like variant targeting the
+ # MSVC ABI so we do not consider that here.
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "MSVC")
+ else()
+ set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
+ endif()
+ else()
+ set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
+ endif()
+ endif()
+endif()
+
+if (NOT _CMAKE_TOOLCHAIN_LOCATION)
+ get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
+endif ()
+
+# if we have a g++ cross compiler, they have usually some prefix, like
+# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++ , 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 (NOT _CMAKE_TOOLCHAIN_PREFIX)
+
+ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC")
+ get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
+ if (COMPILER_BASENAME MATCHES "^(.+-)(clan)?[gc]\\+\\+(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
+ elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+ if(CMAKE_CXX_COMPILER_TARGET)
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_CXX_COMPILER_TARGET}-)
+ endif()
+ elseif(COMPILER_BASENAME MATCHES "QCC(\\.exe)?$")
+ if(CMAKE_CXX_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)")
+ set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
+ endif()
+ 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 ()
+ elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "TI")
+ # TI compilers are named e.g. cl6x, cl470 or armcl.exe
+ get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
+ if (COMPILER_BASENAME MATCHES "^(.+)?cl([^.]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX "${CMAKE_MATCH_1}")
+ set(_CMAKE_TOOLCHAIN_SUFFIX "${CMAKE_MATCH_2}")
+ endif ()
+
+ endif()
+
+endif ()
+
+set(_CMAKE_PROCESSING_LANGUAGE "CXX")
+include(CMakeFindBinUtils)
+include(Compiler/${CMAKE_CXX_COMPILER_ID}-FindBinUtils OPTIONAL)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+if(CMAKE_CXX_COMPILER_SYSROOT)
+ string(CONCAT _SET_CMAKE_CXX_COMPILER_SYSROOT
+ "set(CMAKE_CXX_COMPILER_SYSROOT \"${CMAKE_CXX_COMPILER_SYSROOT}\")\n"
+ "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_CXX_COMPILER_SYSROOT}\")")
+else()
+ set(_SET_CMAKE_CXX_COMPILER_SYSROOT "")
+endif()
+
+if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID)
+ set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID
+ "set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID ${CMAKE_CXX_COMPILER_ARCHITECTURE_ID})")
+else()
+ set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID "")
+endif()
+
+if(MSVC_CXX_ARCHITECTURE_ID)
+ set(SET_MSVC_CXX_ARCHITECTURE_ID
+ "set(MSVC_CXX_ARCHITECTURE_ID ${MSVC_CXX_ARCHITECTURE_ID})")
+endif()
+
+if(CMAKE_CXX_XCODE_ARCHS)
+ set(SET_CMAKE_XCODE_ARCHS
+ "set(CMAKE_XCODE_ARCHS \"${CMAKE_CXX_XCODE_ARCHS}\")")
+endif()
+
+# configure all variables set in this file
+configure_file(${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake
+ @ONLY
+ )
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake b/share/cmake-3.18/Modules/CMakeDetermineCompileFeatures.cmake
index b50e5f1..b50e5f1 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineCompileFeatures.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineCompileFeatures.cmake
diff --git a/share/cmake-3.18/Modules/CMakeDetermineCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineCompiler.cmake
new file mode 100644
index 0000000..cb1ab1d
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineCompiler.cmake
@@ -0,0 +1,152 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+macro(_cmake_find_compiler lang)
+ # Use already-enabled languages for reference.
+ get_property(_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
+ list(REMOVE_ITEM _languages "${lang}")
+
+ if(CMAKE_${lang}_COMPILER_INIT)
+ # Search only for the specified compiler.
+ set(CMAKE_${lang}_COMPILER_LIST "${CMAKE_${lang}_COMPILER_INIT}")
+ else()
+ # Re-order the compiler list with preferred vendors first.
+ set(_${lang}_COMPILER_LIST "${CMAKE_${lang}_COMPILER_LIST}")
+ set(CMAKE_${lang}_COMPILER_LIST "")
+ # Prefer vendors of compilers from reference languages.
+ foreach(l ${_languages})
+ list(APPEND CMAKE_${lang}_COMPILER_LIST
+ ${_${lang}_COMPILER_NAMES_${CMAKE_${l}_COMPILER_ID}})
+ endforeach()
+ # Prefer vendors based on the platform.
+ list(APPEND CMAKE_${lang}_COMPILER_LIST ${CMAKE_${lang}_COMPILER_NAMES})
+ # Append the rest of the list and remove duplicates.
+ list(APPEND CMAKE_${lang}_COMPILER_LIST ${_${lang}_COMPILER_LIST})
+ unset(_${lang}_COMPILER_LIST)
+ list(REMOVE_DUPLICATES CMAKE_${lang}_COMPILER_LIST)
+ if(CMAKE_${lang}_COMPILER_EXCLUDE)
+ list(REMOVE_ITEM CMAKE_${lang}_COMPILER_LIST
+ ${CMAKE_${lang}_COMPILER_EXCLUDE})
+ endif()
+ endif()
+
+ # Look for directories containing compilers of reference languages.
+ set(_${lang}_COMPILER_HINTS)
+ foreach(l ${_languages})
+ if(CMAKE_${l}_COMPILER AND IS_ABSOLUTE "${CMAKE_${l}_COMPILER}")
+ get_filename_component(_hint "${CMAKE_${l}_COMPILER}" PATH)
+ if(IS_DIRECTORY "${_hint}")
+ list(APPEND _${lang}_COMPILER_HINTS "${_hint}")
+ endif()
+ unset(_hint)
+ endif()
+ endforeach()
+
+ # Find the compiler.
+ if(_${lang}_COMPILER_HINTS)
+ # Prefer directories containing compilers of reference languages.
+ list(REMOVE_DUPLICATES _${lang}_COMPILER_HINTS)
+ find_program(CMAKE_${lang}_COMPILER
+ NAMES ${CMAKE_${lang}_COMPILER_LIST}
+ PATHS ${_${lang}_COMPILER_HINTS}
+ NO_DEFAULT_PATH
+ DOC "${lang} compiler")
+ endif()
+ if(CMAKE_HOST_WIN32 AND CMAKE_GENERATOR MATCHES "Ninja")
+ # On Windows command-line builds, the Makefile generators each imply
+ # a preferred compiler tool. The Ninja generator does not imply a
+ # compiler tool, so use the compiler that occurs first in PATH.
+ find_program(CMAKE_${lang}_COMPILER
+ NAMES ${CMAKE_${lang}_COMPILER_LIST}
+ NAMES_PER_DIR
+ DOC "${lang} compiler"
+ NO_PACKAGE_ROOT_PATH
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH
+ )
+ endif()
+ find_program(CMAKE_${lang}_COMPILER NAMES ${CMAKE_${lang}_COMPILER_LIST} DOC "${lang} compiler")
+ if(CMAKE_${lang}_COMPILER_INIT AND NOT CMAKE_${lang}_COMPILER)
+ set_property(CACHE CMAKE_${lang}_COMPILER PROPERTY VALUE "${CMAKE_${lang}_COMPILER_INIT}")
+ endif()
+ unset(_${lang}_COMPILER_HINTS)
+ unset(_languages)
+
+ # Look for a make tool provided by Xcode
+ if(CMAKE_HOST_APPLE)
+ macro(_query_xcrun compiler_name result_var_keyword result_var)
+ if(NOT "x${result_var_keyword}" STREQUAL "xRESULT_VAR")
+ message(FATAL_ERROR "Bad arguments to macro")
+ endif()
+ execute_process(COMMAND xcrun --find ${compiler_name}
+ OUTPUT_VARIABLE _xcrun_out OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE _xcrun_err)
+ set("${result_var}" "${_xcrun_out}")
+ endmacro()
+
+ set(xcrun_result)
+ if (CMAKE_${lang}_COMPILER MATCHES "^/usr/bin/(.+)$")
+ _query_xcrun("${CMAKE_MATCH_1}" RESULT_VAR xcrun_result)
+ elseif (CMAKE_${lang}_COMPILER STREQUAL "CMAKE_${lang}_COMPILER-NOTFOUND")
+ foreach(comp ${CMAKE_${lang}_COMPILER_LIST})
+ _query_xcrun("${comp}" RESULT_VAR xcrun_result)
+ if(xcrun_result)
+ break()
+ endif()
+ endforeach()
+ endif()
+ if (xcrun_result)
+ set_property(CACHE CMAKE_${lang}_COMPILER PROPERTY VALUE "${xcrun_result}")
+ endif()
+ endif()
+endmacro()
+
+macro(_cmake_find_compiler_path lang)
+ if(CMAKE_${lang}_COMPILER)
+ # we only get here if CMAKE_${lang}_COMPILER was specified using -D or a pre-made CMakeCache.txt
+ # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
+ # if CMAKE_${lang}_COMPILER is a list of length 2, use the first item as
+ # CMAKE_${lang}_COMPILER and the 2nd one as CMAKE_${lang}_COMPILER_ARG1
+ list(LENGTH CMAKE_${lang}_COMPILER _CMAKE_${lang}_COMPILER_LIST_LENGTH)
+ if("${_CMAKE_${lang}_COMPILER_LIST_LENGTH}" EQUAL 2)
+ list(GET CMAKE_${lang}_COMPILER 1 CMAKE_${lang}_COMPILER_ARG1)
+ list(GET CMAKE_${lang}_COMPILER 0 CMAKE_${lang}_COMPILER)
+ endif()
+ unset(_CMAKE_${lang}_COMPILER_LIST_LENGTH)
+
+ # find the compiler in the PATH if necessary
+ get_filename_component(_CMAKE_USER_${lang}_COMPILER_PATH "${CMAKE_${lang}_COMPILER}" PATH)
+ if(NOT _CMAKE_USER_${lang}_COMPILER_PATH)
+ find_program(CMAKE_${lang}_COMPILER_WITH_PATH NAMES ${CMAKE_${lang}_COMPILER})
+ if(CMAKE_${lang}_COMPILER_WITH_PATH)
+ set(CMAKE_${lang}_COMPILER ${CMAKE_${lang}_COMPILER_WITH_PATH})
+ get_property(_CMAKE_${lang}_COMPILER_CACHED CACHE CMAKE_${lang}_COMPILER PROPERTY TYPE)
+ if(_CMAKE_${lang}_COMPILER_CACHED)
+ set(CMAKE_${lang}_COMPILER "${CMAKE_${lang}_COMPILER}" CACHE STRING "${lang} compiler" FORCE)
+ endif()
+ unset(_CMAKE_${lang}_COMPILER_CACHED)
+ endif()
+ unset(CMAKE_${lang}_COMPILER_WITH_PATH CACHE)
+ endif()
+ endif()
+endmacro()
+
+function(_cmake_find_compiler_sysroot lang)
+ if(CMAKE_${lang}_COMPILER_ID STREQUAL "GNU")
+ execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" -print-sysroot
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ OUTPUT_VARIABLE _cmake_sysroot_run_out
+ ERROR_VARIABLE _cmake_sysroot_run_err)
+
+ if(_cmake_sysroot_run_out AND NOT _cmake_sysroot_run_err
+ AND NOT _cmake_sysroot_run_out STREQUAL "/"
+ AND IS_DIRECTORY "${_cmake_sysroot_run_out}/usr")
+ file(TO_CMAKE_PATH "${_cmake_sysroot_run_out}/usr" _cmake_sysroot_run_out_usr)
+ set(CMAKE_${lang}_COMPILER_SYSROOT "${_cmake_sysroot_run_out_usr}" PARENT_SCOPE)
+ else()
+ set(CMAKE_${lang}_COMPILER_SYSROOT "" PARENT_SCOPE)
+ endif()
+ endif()
+endfunction()
diff --git a/share/cmake-3.18/Modules/CMakeDetermineCompilerABI.cmake b/share/cmake-3.18/Modules/CMakeDetermineCompilerABI.cmake
new file mode 100644
index 0000000..50d5cd1
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineCompilerABI.cmake
@@ -0,0 +1,190 @@
+# 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)
+ if(CMAKE_${lang}_ABI_COMPILED AND _copy_error)
+ set(CMAKE_${lang}_ABI_COMPILED 0)
+ endif()
+ set(CMAKE_${lang}_ABI_COMPILED ${CMAKE_${lang}_ABI_COMPILED} PARENT_SCOPE)
+
+ # Load the resulting information strings.
+ if(CMAKE_${lang}_ABI_COMPILED)
+ 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.18/Modules/CMakeDetermineCompilerId.cmake b/share/cmake-3.18/Modules/CMakeDetermineCompilerId.cmake
new file mode 100644
index 0000000..44332a6
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineCompilerId.cmake
@@ -0,0 +1,956 @@
+# 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 MATCHES "^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)?)?$")
+ set(id_cl_var "ClangClExecutable")
+ elseif(CMAKE_VS_PLATFORM_TOOLSET MATCHES "^[Cc][Ll][Aa][Nn][Gg][Cc][Ll]$")
+ set(id_cl "$(CLToolExe)")
+ 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()
+ if(CMAKE_CUDA_FLAGS MATCHES "(^| )-cudart +shared( |$)")
+ set(id_Link_AdditionalDependencies "<AdditionalDependencies>cudart.lib</AdditionalDependencies>")
+ else()
+ set(id_Link_AdditionalDependencies "<AdditionalDependencies>cudart_static.lib</AdditionalDependencies>")
+ endif()
+ 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()
+ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_OSX_SYSROOT MATCHES "^$|[Mm][Aa][Cc][Oo][Ss]")
+ # When targeting macOS, use only the host architecture.
+ set(id_archs [[ARCHS = "$(NATIVE_ARCH_ACTUAL)";]])
+ else()
+ set(id_archs "")
+ 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()
+
+ # Save the current LC_ALL, LC_MESSAGES, and LANG environment variables
+ # and set them to "C" so we get the expected output to match.
+ 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)
+
+ 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)
+ set(CMAKE_${lang}_COMPILER_ID_VENDOR_MATCH "${CMAKE_MATCH_1}" 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()
+
+ # 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})
+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.18/Modules/CMakeDetermineFortranCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineFortranCompiler.cmake
new file mode 100644
index 0000000..5f5a70a
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineFortranCompiler.cmake
@@ -0,0 +1,305 @@
+# 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)
+
+ _cmake_find_compiler_sysroot(Fortran)
+
+ # 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 (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_SYSROOT)
+ string(CONCAT _SET_CMAKE_Fortran_COMPILER_SYSROOT
+ "set(CMAKE_Fortran_COMPILER_SYSROOT \"${CMAKE_Fortran_COMPILER_SYSROOT}\")\n"
+ "set(CMAKE_COMPILER_SYSROOT \"${CMAKE_Fortran_COMPILER_SYSROOT}\")")
+else()
+ set(_SET_CMAKE_Fortran_COMPILER_SYSROOT "")
+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.17/Modules/CMakeDetermineJavaCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineJavaCompiler.cmake
index 3092bb5..3092bb5 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineJavaCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineJavaCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeDetermineOBJCCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineOBJCCompiler.cmake
new file mode 100644
index 0000000..11b47fd
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineOBJCCompiler.cmake
@@ -0,0 +1,192 @@
+# 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 Objective-C programs
+# NOTE, a generator may set CMAKE_OBJC_COMPILER before
+# loading this file to force a compiler.
+# use environment variable OBJC first if defined by user, next use
+# the cmake variable CMAKE_GENERATOR_OBJC which can be defined by a generator
+# as a default compiler
+#
+# Sets the following variables:
+# CMAKE_OBJC_COMPILER
+# CMAKE_AR
+# CMAKE_RANLIB
+# CMAKE_COMPILER_IS_GNUOBJC
+# CMAKE_COMPILER_IS_CLANGOBJC
+#
+# If not already set before, it also sets
+# _CMAKE_TOOLCHAIN_PREFIX
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+
+# Load system-specific compiler preferences for this language.
+include(Platform/${CMAKE_SYSTEM_NAME}-Determine-OBJC OPTIONAL)
+include(Platform/${CMAKE_SYSTEM_NAME}-OBJC OPTIONAL)
+if(NOT CMAKE_OBJC_COMPILER_NAMES)
+ set(CMAKE_OBJC_COMPILER_NAMES clang)
+endif()
+
+if("${CMAKE_GENERATOR}" MATCHES "Xcode")
+ set(CMAKE_OBJC_COMPILER_XCODE_TYPE sourcecode.c.objc)
+else()
+ if(NOT CMAKE_OBJC_COMPILER)
+ set(CMAKE_OBJC_COMPILER_INIT NOTFOUND)
+
+ # prefer the environment variable OBJC or CC
+ foreach(var OBJC CC)
+ if($ENV{${var}} MATCHES ".+")
+ get_filename_component(CMAKE_OBJC_COMPILER_INIT $ENV{${var}} PROGRAM PROGRAM_ARGS CMAKE_OBJC_FLAGS_ENV_INIT)
+ if(CMAKE_OBJC_FLAGS_ENV_INIT)
+ set(CMAKE_OBJC_COMPILER_ARG1 "${CMAKE_OBJC_FLAGS_ENV_INIT}" CACHE STRING "First argument to Objective-C compiler")
+ endif()
+ if(NOT EXISTS ${CMAKE_OBJC_COMPILER_INIT})
+ message(FATAL_ERROR "Could not find compiler set in environment variable ${var}:\n $ENV{${var}}")
+ endif()
+ break()
+ endif()
+ endforeach()
+
+ # next try prefer the compiler specified by the generator
+ if(CMAKE_GENERATOR_OBJC)
+ if(NOT CMAKE_OBJC_COMPILER_INIT)
+ set(CMAKE_OBJC_COMPILER_INIT ${CMAKE_GENERATOR_OBJC})
+ endif()
+ endif()
+
+ # finally list compilers to try
+ if(NOT CMAKE_OBJC_COMPILER_INIT)
+ set(CMAKE_OBJC_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}cc ${_CMAKE_TOOLCHAIN_PREFIX}gcc clang)
+ endif()
+
+ _cmake_find_compiler(OBJC)
+
+ else()
+ # we only get here if CMAKE_OBJC_COMPILER was specified using -D or a pre-made CMakeCache.txt
+ # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
+ # if CMAKE_OBJC_COMPILER is a list of length 2, use the first item as
+ # CMAKE_OBJC_COMPILER and the 2nd one as CMAKE_OBJC_COMPILER_ARG1
+
+ list(LENGTH CMAKE_OBJC_COMPILER _CMAKE_OBJC_COMPILER_LIST_LENGTH)
+ if("${_CMAKE_OBJC_COMPILER_LIST_LENGTH}" EQUAL 2)
+ list(GET CMAKE_OBJC_COMPILER 1 CMAKE_OBJC_COMPILER_ARG1)
+ list(GET CMAKE_OBJC_COMPILER 0 CMAKE_OBJC_COMPILER)
+ endif()
+
+ # if a compiler was specified by the user but without path,
+ # now try to find it with the full path
+ # if it is found, force it into the cache,
+ # if not, don't overwrite the setting (which was given by the user) with "NOTFOUND"
+ # if the C compiler already had a path, reuse it for searching the CXX compiler
+ get_filename_component(_CMAKE_USER_OBJC_COMPILER_PATH "${CMAKE_OBJC_COMPILER}" PATH)
+ if(NOT _CMAKE_USER_OBJC_COMPILER_PATH)
+ find_program(CMAKE_OBJC_COMPILER_WITH_PATH NAMES ${CMAKE_OBJC_COMPILER})
+ if(CMAKE_OBJC_COMPILER_WITH_PATH)
+ set(CMAKE_OBJC_COMPILER ${CMAKE_OBJC_COMPILER_WITH_PATH} CACHE STRING "Objective-C compiler" FORCE)
+ endif()
+ unset(CMAKE_OBJC_COMPILER_WITH_PATH CACHE)
+ endif()
+ endif()
+ mark_as_advanced(CMAKE_OBJC_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 file.
+ set(CMAKE_OBJC_COMPILER_ID_TEST_FLAGS_FIRST)
+ set(CMAKE_OBJC_COMPILER_ID_TEST_FLAGS
+ # Try compiling to an object file only.
+ "-c"
+
+ )
+endif()
+
+# Build a small source file to identify the compiler.
+if(NOT CMAKE_OBJC_COMPILER_ID_RUN)
+ set(CMAKE_OBJC_COMPILER_ID_RUN 1)
+
+ # Try to identify the compiler.
+ set(CMAKE_OBJC_COMPILER_ID)
+ file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
+ CMAKE_OBJC_COMPILER_ID_PLATFORM_CONTENT)
+
+ # Match the link line from xcodebuild output of the form
+ # Ld ...
+ # ...
+ # /path/to/cc ...CompilerIdOBJC/...
+ # to extract the compiler front-end for the language.
+ set(CMAKE_OBJC_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdOBJC/(\\./)?(CompilerIdOBJC.(framework|xctest)/)?CompilerIdOBJC[ \t\n\\\"]")
+ set(CMAKE_OBJC_COMPILER_ID_TOOL_MATCH_INDEX 2)
+
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+ CMAKE_DETERMINE_COMPILER_ID(OBJC OBJCCFLAGS CMakeOBJCCompilerId.m)
+
+ # Set old compiler and platform id variables.
+ if(CMAKE_OBJC_COMPILER_ID STREQUAL "GNU")
+ set(CMAKE_COMPILER_IS_GNUOBJC 1)
+ endif()
+ if(CMAKE_OBJC_COMPILER_ID STREQUAL "Clang")
+ set(CMAKE_COMPILER_IS_CLANGOBJC 1)
+ endif()
+endif()
+
+if (NOT _CMAKE_TOOLCHAIN_LOCATION)
+ get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_OBJC_COMPILER}" PATH)
+endif ()
+
+# If we have a gcc cross compiler, they have usually some prefix, like
+# e.g. powerpc-linux-gcc, arm-elf-gcc or i586-mingw32msvc-gcc, 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_OBJC_COMPILER_ID MATCHES "GNU|Clang|QCC")
+ get_filename_component(COMPILER_BASENAME "${CMAKE_OBJC_COMPILER}" NAME)
+ if (COMPILER_BASENAME MATCHES "^(.+-)(clang|g?cc)(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
+ elseif(CMAKE_OBJC_COMPILER_ID MATCHES "Clang")
+ if(CMAKE_OBJC_COMPILER_TARGET)
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_OBJC_COMPILER_TARGET}-)
+ endif()
+ elseif(COMPILER_BASENAME MATCHES "qcc(\\.exe)?$")
+ if(CMAKE_OBJC_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)?")
+ set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
+ endif()
+ 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 "OBJC")
+include(CMakeFindBinUtils)
+include(Compiler/${CMAKE_OBJC_COMPILER_ID}-FindBinUtils OPTIONAL)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+if(CMAKE_OBJC_COMPILER_ARCHITECTURE_ID)
+ set(_SET_CMAKE_OBJC_COMPILER_ARCHITECTURE_ID
+ "set(CMAKE_OBJC_COMPILER_ARCHITECTURE_ID ${CMAKE_OBJC_COMPILER_ARCHITECTURE_ID})")
+else()
+ set(_SET_CMAKE_OBJC_COMPILER_ARCHITECTURE_ID "")
+endif()
+
+if(CMAKE_OBJC_XCODE_ARCHS)
+ set(SET_CMAKE_XCODE_ARCHS
+ "set(CMAKE_XCODE_ARCHS \"${CMAKE_OBJC_XCODE_ARCHS}\")")
+endif()
+
+# configure variables set in this file for fast reload later on
+configure_file(${CMAKE_ROOT}/Modules/CMakeOBJCCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCCompiler.cmake
+ @ONLY
+ )
+set(CMAKE_OBJC_COMPILER_ENV_VAR "OBJC")
diff --git a/share/cmake-3.18/Modules/CMakeDetermineOBJCXXCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineOBJCXXCompiler.cmake
new file mode 100644
index 0000000..99ad6c3
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeDetermineOBJCXXCompiler.cmake
@@ -0,0 +1,200 @@
+# 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 Objective-C++ programs
+# NOTE, a generator may set CMAKE_OBJCXX_COMPILER before
+# loading this file to force a compiler.
+# use environment variable OBJCXX first if defined by user, next use
+# the cmake variable CMAKE_GENERATOR_OBJCXX which can be defined by a generator
+# as a default compiler
+# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
+# as prefix for the tools (e.g. arm-elf-g++, arm-elf-ar etc.)
+#
+# Sets the following variables:
+# CMAKE_OBJCXX_COMPILER
+# CMAKE_COMPILER_IS_GNUOBJCXX
+# CMAKE_COMPILER_IS_CLANGOBJCXX
+# CMAKE_AR
+# CMAKE_RANLIB
+#
+# If not already set before, it also sets
+# _CMAKE_TOOLCHAIN_PREFIX
+
+include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake)
+
+# Load system-specific compiler preferences for this language.
+include(Platform/${CMAKE_SYSTEM_NAME}-Determine-OBJCXX OPTIONAL)
+include(Platform/${CMAKE_SYSTEM_NAME}-OBJCXX OPTIONAL)
+if(NOT CMAKE_OBJCXX_COMPILER_NAMES)
+ set(CMAKE_OBJCXX_COMPILER_NAMES clang++)
+endif()
+
+if("${CMAKE_GENERATOR}" MATCHES "Xcode")
+ set(CMAKE_OBJCXX_COMPILER_XCODE_TYPE sourcecode.cpp.objcpp)
+else()
+ if(NOT CMAKE_OBJCXX_COMPILER)
+ set(CMAKE_OBJCXX_COMPILER_INIT NOTFOUND)
+
+ # prefer the environment variable OBJCXX or CXX
+ foreach(var OBJCXX CXX)
+ if($ENV{${var}} MATCHES ".+")
+ get_filename_component(CMAKE_OBJCXX_COMPILER_INIT $ENV{${var}} PROGRAM PROGRAM_ARGS CMAKE_OBJCXX_FLAGS_ENV_INIT)
+ if(CMAKE_OBJCXX_FLAGS_ENV_INIT)
+ set(CMAKE_OBJCXX_COMPILER_ARG1 "${CMAKE_OBJCXX_FLAGS_ENV_INIT}" CACHE STRING "First argument to Objective-C++ compiler")
+ endif()
+ if(NOT EXISTS ${CMAKE_OBJCXX_COMPILER_INIT})
+ message(FATAL_ERROR "Could not find compiler set in environment variable ${var}:\n $ENV{${var}}")
+ endif()
+ break()
+ endif()
+ endforeach()
+
+ # next prefer the generator specified compiler
+ if(CMAKE_GENERATOR_OBJCXX)
+ if(NOT CMAKE_OBJCXX_COMPILER_INIT)
+ set(CMAKE_OBJCXX_COMPILER_INIT ${CMAKE_GENERATOR_OBJCXX})
+ endif()
+ endif()
+
+ # finally list compilers to try
+ if(NOT CMAKE_OBJCXX_COMPILER_INIT)
+ set(CMAKE_OBJCXX_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}c++ ${_CMAKE_TOOLCHAIN_PREFIX}g++ clang++)
+ endif()
+
+ _cmake_find_compiler(OBJCXX)
+
+ else()
+ # we only get here if CMAKE_OBJCXX_COMPILER was specified using -D or a pre-made CMakeCache.txt
+ # (e.g. via ctest) or set in CMAKE_TOOLCHAIN_FILE
+ # if CMAKE_OBJCXX_COMPILER is a list of length 2, use the first item as
+ # CMAKE_OBJCXX_COMPILER and the 2nd one as CMAKE_OBJCXX_COMPILER_ARG1
+
+ list(LENGTH CMAKE_OBJCXX_COMPILER _CMAKE_OBJCXX_COMPILER_LIST_LENGTH)
+ if("${_CMAKE_OBJCXX_COMPILER_LIST_LENGTH}" EQUAL 2)
+ list(GET CMAKE_OBJCXX_COMPILER 1 CMAKE_OBJCXX_COMPILER_ARG1)
+ list(GET CMAKE_OBJCXX_COMPILER 0 CMAKE_OBJCXX_COMPILER)
+ endif()
+
+ # if a compiler was specified by the user but without path,
+ # now try to find it with the full path
+ # if it is found, force it into the cache,
+ # if not, don't overwrite the setting (which was given by the user) with "NOTFOUND"
+ # if the C compiler already had a path, reuse it for searching the CXX compiler
+ get_filename_component(_CMAKE_USER_OBJCXX_COMPILER_PATH "${CMAKE_OBJCXX_COMPILER}" PATH)
+ if(NOT _CMAKE_USER_OBJCXX_COMPILER_PATH)
+ find_program(CMAKE_OBJCXX_COMPILER_WITH_PATH NAMES ${CMAKE_OBJCXX_COMPILER})
+ if(CMAKE_OBJCXX_COMPILER_WITH_PATH)
+ set(CMAKE_OBJCXX_COMPILER ${CMAKE_OBJCXX_COMPILER_WITH_PATH} CACHE STRING "Objective-C++ compiler" FORCE)
+ endif()
+ unset(CMAKE_OBJCXX_COMPILER_WITH_PATH CACHE)
+ endif()
+
+ endif()
+ mark_as_advanced(CMAKE_OBJCXX_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 file.
+ set(CMAKE_OBJCXX_COMPILER_ID_TEST_FLAGS_FIRST)
+ set(CMAKE_OBJCXX_COMPILER_ID_TEST_FLAGS
+ # Try compiling to an object file only.
+ "-c"
+
+ # ARMClang need target options
+ "--target=arm-arm-none-eabi -mcpu=cortex-m3"
+ )
+endif()
+
+# Build a small source file to identify the compiler.
+if(NOT CMAKE_OBJCXX_COMPILER_ID_RUN)
+ set(CMAKE_OBJCXX_COMPILER_ID_RUN 1)
+
+ # Try to identify the compiler.
+ set(CMAKE_OBJCXX_COMPILER_ID)
+ file(READ ${CMAKE_ROOT}/Modules/CMakePlatformId.h.in
+ CMAKE_OBJCXX_COMPILER_ID_PLATFORM_CONTENT)
+
+ # Match the link line from xcodebuild output of the form
+ # Ld ...
+ # ...
+ # /path/to/cc ...CompilerIdOBJCXX/...
+ # to extract the compiler front-end for the language.
+ set(CMAKE_OBJCXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdOBJCXX/(\\./)?(CompilerIdOBJCXX.(framework|xctest)/)?CompilerIdOBJCXX[ \t\n\\\"]")
+ set(CMAKE_OBJCXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
+
+ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
+ CMAKE_DETERMINE_COMPILER_ID(OBJCXX OBJCXXFLAGS CMakeOBJCXXCompilerId.mm)
+
+ # Set old compiler and platform id variables.
+ if(CMAKE_OBJCXX_COMPILER_ID MATCHES "GNU")
+ set(CMAKE_COMPILER_IS_GNUOBJCXX 1)
+ endif()
+ if(CMAKE_OBJCXX_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_COMPILER_IS_CLANGOBJCXX 1)
+ endif()
+endif()
+
+if (NOT _CMAKE_TOOLCHAIN_LOCATION)
+ get_filename_component(_CMAKE_TOOLCHAIN_LOCATION "${CMAKE_OBJCXX_COMPILER}" PATH)
+endif ()
+
+# if we have a g++ cross compiler, they have usually some prefix, like
+# e.g. powerpc-linux-g++, arm-elf-g++ or i586-mingw32msvc-g++ , 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 (NOT _CMAKE_TOOLCHAIN_PREFIX)
+
+ if("${CMAKE_OBJCXX_COMPILER_ID}" MATCHES "GNU|Clang|QCC")
+ get_filename_component(COMPILER_BASENAME "${CMAKE_OBJCXX_COMPILER}" NAME)
+ if (COMPILER_BASENAME MATCHES "^(.+-)(clan)?[gc]\\+\\+(-[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
+ set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
+ elseif("${CMAKE_OBJCXX_COMPILER_ID}" MATCHES "Clang")
+ if(CMAKE_OBJCXX_COMPILER_TARGET)
+ set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_OBJCXX_COMPILER_TARGET}-)
+ endif()
+ elseif(COMPILER_BASENAME MATCHES "QCC(\\.exe)?$")
+ if(CMAKE_OBJCXX_COMPILER_TARGET MATCHES "gcc_nto([a-z0-9]+_[0-9]+|[^_le]+)(le)")
+ set(_CMAKE_TOOLCHAIN_PREFIX nto${CMAKE_MATCH_1}-)
+ endif()
+ 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 "OBJCXX")
+include(CMakeFindBinUtils)
+include(Compiler/${CMAKE_OBJCXX_COMPILER_ID}-FindBinUtils OPTIONAL)
+unset(_CMAKE_PROCESSING_LANGUAGE)
+
+if(CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID)
+ set(_SET_CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID
+ "set(CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID ${CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID})")
+else()
+ set(_SET_CMAKE_OBJCXX_COMPILER_ARCHITECTURE_ID "")
+endif()
+
+if(CMAKE_OBJCXX_XCODE_ARCHS)
+ set(SET_CMAKE_XCODE_ARCHS
+ "set(CMAKE_XCODE_ARCHS \"${CMAKE_OBJCXX_XCODE_ARCHS}\")")
+endif()
+
+# configure all variables set in this file
+configure_file(${CMAKE_ROOT}/Modules/CMakeOBJCXXCompiler.cmake.in
+ ${CMAKE_PLATFORM_INFO_DIR}/CMakeOBJCXXCompiler.cmake
+ @ONLY
+ )
+
+set(CMAKE_OBJCXX_COMPILER_ENV_VAR "OBJCXX")
diff --git a/share/cmake-3.17/Modules/CMakeDetermineRCCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineRCCompiler.cmake
index 8801e16..8801e16 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineRCCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineRCCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake b/share/cmake-3.18/Modules/CMakeDetermineSwiftCompiler.cmake
index 688133f..688133f 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineSwiftCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineSwiftCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineSystem.cmake b/share/cmake-3.18/Modules/CMakeDetermineSystem.cmake
index f3ec4da..f3ec4da 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineSystem.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineSystem.cmake
diff --git a/share/cmake-3.17/Modules/CMakeDetermineVSServicePack.cmake b/share/cmake-3.18/Modules/CMakeDetermineVSServicePack.cmake
index 53868d2..53868d2 100644
--- a/share/cmake-3.17/Modules/CMakeDetermineVSServicePack.cmake
+++ b/share/cmake-3.18/Modules/CMakeDetermineVSServicePack.cmake
diff --git a/share/cmake-3.17/Modules/CMakeExpandImportedTargets.cmake b/share/cmake-3.18/Modules/CMakeExpandImportedTargets.cmake
index b8f471c..b8f471c 100644
--- a/share/cmake-3.17/Modules/CMakeExpandImportedTargets.cmake
+++ b/share/cmake-3.18/Modules/CMakeExpandImportedTargets.cmake
diff --git a/share/cmake-3.17/Modules/CMakeExportBuildSettings.cmake b/share/cmake-3.18/Modules/CMakeExportBuildSettings.cmake
index cafc830..cafc830 100644
--- a/share/cmake-3.17/Modules/CMakeExportBuildSettings.cmake
+++ b/share/cmake-3.18/Modules/CMakeExportBuildSettings.cmake
diff --git a/share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake b/share/cmake-3.18/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
index 11f4a29..11f4a29 100644
--- a/share/cmake-3.17/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
+++ b/share/cmake-3.18/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake
diff --git a/share/cmake-3.18/Modules/CMakeFindBinUtils.cmake b/share/cmake-3.18/Modules/CMakeFindBinUtils.cmake
new file mode 100644
index 0000000..de9ef9a
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeFindBinUtils.cmake
@@ -0,0 +1,144 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# search for additional tools required for C/C++ (and other languages ?)
+#
+# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
+# as prefix for the tools (e.g. arm-elf-gcc etc.)
+# If the cmake variable _CMAKE_TOOLCHAIN_LOCATION is set, the compiler is
+# searched only there. The other tools are at first searched there, then
+# also in the default locations.
+#
+# Sets the following variables:
+# CMAKE_AR
+# CMAKE_RANLIB
+# CMAKE_LINKER
+# CMAKE_MT
+# CMAKE_STRIP
+# CMAKE_INSTALL_NAME_TOOL
+
+# on UNIX, cygwin and mingw
+
+# Resolve full path of CMAKE_TOOL from user-defined name and SEARCH_PATH.
+function(__resolve_tool_path CMAKE_TOOL SEARCH_PATH DOCSTRING)
+
+ if(${CMAKE_TOOL})
+ # We only get here if CMAKE_TOOL was
+ # specified using -D or a pre-made CMakeCache.txt (e.g. via ctest)
+ # or set in CMAKE_TOOLCHAIN_FILE.
+
+ get_filename_component(_CMAKE_USER_TOOL_PATH "${${CMAKE_TOOL}}" DIRECTORY)
+ # Is CMAKE_TOOL a user-defined name instead of a full path?
+ if(NOT _CMAKE_USER_TOOL_PATH)
+
+ # Find CMAKE_TOOL in the SEARCH_PATH directory by user-defined name.
+ find_program(_CMAKE_TOOL_WITH_PATH NAMES ${${CMAKE_TOOL}} HINTS ${SEARCH_PATH})
+ if(_CMAKE_TOOL_WITH_PATH)
+
+ # Overwrite CMAKE_TOOL with full path found in SEARCH_PATH.
+ set(${CMAKE_TOOL} ${_CMAKE_TOOL_WITH_PATH} PARENT_SCOPE)
+
+ get_property(_CMAKE_TOOL_CACHED CACHE ${CMAKE_TOOL} PROPERTY TYPE)
+ # If CMAKE_TOOL is present in the CMake Cache, then overwrit it as well.
+ if(_CMAKE_TOOL_CACHED)
+ set(${CMAKE_TOOL} "${_CMAKE_TOOL_WITH_PATH}" CACHE STRING ${DOCSTRING} FORCE)
+ endif()
+
+ endif()
+ unset(_CMAKE_TOOL_WITH_PATH CACHE)
+
+ endif()
+
+ endif()
+
+endfunction()
+
+__resolve_tool_path(CMAKE_LINKER "${_CMAKE_TOOLCHAIN_LOCATION}" "Default Linker")
+__resolve_tool_path(CMAKE_MT "${_CMAKE_TOOLCHAIN_LOCATION}" "Default Manifest Tool")
+
+set(_CMAKE_TOOL_VARS "")
+
+# if it's the MS C/CXX compiler, search for link
+if(("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC" AND
+ ("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC"
+ OR NOT "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xClang"))
+ OR "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xMSVC"
+ OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xPGI")
+ OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xNVIDIA")
+ OR (CMAKE_GENERATOR MATCHES "Visual Studio"
+ AND NOT CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android"))
+
+ if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xClang")
+ find_program(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm llvm-nm HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ set(_CMAKE_ADDITIONAL_LINKER_NAMES "lld-link")
+ endif()
+
+ find_program(CMAKE_LINKER NAMES ${_CMAKE_ADDITIONAL_LINKER_NAMES} link HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_AR NAMES lib HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_MT NAMES mt HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+
+ list(APPEND _CMAKE_TOOL_VARS LINKER MT)
+
+# in all other cases search for ar, ranlib, etc.
+else()
+ if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN)
+ set(_CMAKE_TOOLCHAIN_LOCATION ${_CMAKE_TOOLCHAIN_LOCATION} ${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}/bin)
+ endif()
+ if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN)
+ set(_CMAKE_TOOLCHAIN_LOCATION ${_CMAKE_TOOLCHAIN_LOCATION} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}/bin)
+ endif()
+
+ if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL Clang)
+ set(_CMAKE_ADDITIONAL_AR_NAMES "llvm-ar")
+ set(_CMAKE_ADDITIONAL_RANLIB_NAMES "llvm-ranlib")
+ set(_CMAKE_ADDITIONAL_STRIP_NAMES "llvm-strip")
+ set(_CMAKE_ADDITIONAL_LINKER_NAMES "ld.lld")
+ set(_CMAKE_ADDITIONAL_NM_NAMES "llvm-nm")
+ set(_CMAKE_ADDITIONAL_OBJDUMP_NAMES "llvm-objdump")
+ set(_CMAKE_ADDITIONAL_OBJCOPY_NAMES "llvm-objcopy")
+ set(_CMAKE_ADDITIONAL_READELF_NAMES "llvm-readelf")
+ set(_CMAKE_ADDITIONAL_DLLTOOL_NAMES "llvm-dlltool")
+ set(_CMAKE_ADDITIONAL_ADDR2LINE_NAMES "llvm-addr2line")
+ endif()
+
+ find_program(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar${_CMAKE_TOOLCHAIN_SUFFIX} ${_CMAKE_ADDITIONAL_AR_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+
+ find_program(CMAKE_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ranlib ${_CMAKE_ADDITIONAL_RANLIB_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ if(NOT CMAKE_RANLIB)
+ set(CMAKE_RANLIB : CACHE INTERNAL "noop for ranlib")
+ endif()
+
+
+ find_program(CMAKE_STRIP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}strip${_CMAKE_TOOLCHAIN_SUFFIX} ${_CMAKE_ADDITIONAL_STRIP_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_LINKER NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ld ${_CMAKE_ADDITIONAL_LINKER_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm ${_CMAKE_ADDITIONAL_NM_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_OBJDUMP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objdump ${_CMAKE_ADDITIONAL_OBJDUMP_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_OBJCOPY NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objcopy ${_CMAKE_ADDITIONAL_OBJCOPY_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_READELF NAMES ${_CMAKE_TOOLCHAIN_PREFIX}readelf ${_CMAKE_ADDITIONAL_READELF_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_DLLTOOL NAMES ${_CMAKE_TOOLCHAIN_PREFIX}dlltool ${_CMAKE_ADDITIONAL_DLLTOOL_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+ find_program(CMAKE_ADDR2LINE NAMES ${_CMAKE_TOOLCHAIN_PREFIX}addr2line ${_CMAKE_ADDITIONAL_ADDR2LINE_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+
+ list(APPEND _CMAKE_TOOL_VARS AR RANLIB STRIP LINKER NM OBJDUMP OBJCOPY READELF DLLTOOL ADDR2LINE)
+endif()
+
+if(CMAKE_PLATFORM_HAS_INSTALLNAME)
+ find_program(CMAKE_INSTALL_NAME_TOOL NAMES ${_CMAKE_TOOLCHAIN_PREFIX}install_name_tool HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+
+ if(NOT CMAKE_INSTALL_NAME_TOOL)
+ message(FATAL_ERROR "Could not find install_name_tool, please check your installation.")
+ endif()
+
+ list(APPEND _CMAKE_TOOL_VARS INSTALL_NAME_TOOL)
+endif()
+
+# Mark any tool cache entries as advanced.
+foreach(var IN LISTS _CMAKE_TOOL_VARS)
+ get_property(_CMAKE_TOOL_CACHED CACHE CMAKE_${var} PROPERTY TYPE)
+ if(_CMAKE_TOOL_CACHED)
+ mark_as_advanced(CMAKE_${var})
+ endif()
+ unset(_CMAKE_ADDITIONAL_${var}_NAMES)
+endforeach()
+unset(_CMAKE_TOOL_VARS)
+unset(_CMAKE_TOOL_CACHED)
diff --git a/share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake b/share/cmake-3.18/Modules/CMakeFindCodeBlocks.cmake
index bf27ec1..bf27ec1 100644
--- a/share/cmake-3.17/Modules/CMakeFindCodeBlocks.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindCodeBlocks.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindDependencyMacro.cmake b/share/cmake-3.18/Modules/CMakeFindDependencyMacro.cmake
index bcdfbeb..bcdfbeb 100644
--- a/share/cmake-3.17/Modules/CMakeFindDependencyMacro.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindDependencyMacro.cmake
diff --git a/share/cmake-3.18/Modules/CMakeFindEclipseCDT4.cmake b/share/cmake-3.18/Modules/CMakeFindEclipseCDT4.cmake
new file mode 100644
index 0000000..e563a12
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeFindEclipseCDT4.cmake
@@ -0,0 +1,89 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# This file is included in CMakeSystemSpecificInformation.cmake if
+# the Eclipse CDT4 extra generator has been selected.
+
+find_program(CMAKE_ECLIPSE_EXECUTABLE NAMES eclipse DOC "The Eclipse executable")
+
+function(_FIND_ECLIPSE_VERSION)
+ # This code is in a function so the variables used here have only local scope
+
+ # Set up a map with the names of the Eclipse releases:
+ set(_ECLIPSE_VERSION_NAME_ "Unknown" )
+ set(_ECLIPSE_VERSION_NAME_3.2 "Callisto" )
+ set(_ECLIPSE_VERSION_NAME_3.3 "Europa" )
+ set(_ECLIPSE_VERSION_NAME_3.4 "Ganymede" )
+ set(_ECLIPSE_VERSION_NAME_3.5 "Galileo" )
+ set(_ECLIPSE_VERSION_NAME_3.6 "Helios" )
+ set(_ECLIPSE_VERSION_NAME_3.7 "Indigo" )
+ set(_ECLIPSE_VERSION_NAME_4.2 "Juno" )
+ set(_ECLIPSE_VERSION_NAME_4.3 "Kepler" )
+ set(_ECLIPSE_VERSION_NAME_4.4 "Luna" )
+ set(_ECLIPSE_VERSION_NAME_4.5 "Mars" )
+
+ if(NOT DEFINED CMAKE_ECLIPSE_VERSION)
+ if(CMAKE_ECLIPSE_EXECUTABLE)
+ # use REALPATH to resolve symlinks (https://gitlab.kitware.com/cmake/cmake/-/issues/13036)
+ get_filename_component(_REALPATH_CMAKE_ECLIPSE_EXECUTABLE "${CMAKE_ECLIPSE_EXECUTABLE}" REALPATH)
+ get_filename_component(_ECLIPSE_DIR "${_REALPATH_CMAKE_ECLIPSE_EXECUTABLE}" PATH)
+ file(GLOB _ECLIPSE_FEATURE_DIR "${_ECLIPSE_DIR}/features/org.eclipse.platform*")
+ if(APPLE AND NOT _ECLIPSE_FEATURE_DIR)
+ file(GLOB _ECLIPSE_FEATURE_DIR "${_ECLIPSE_DIR}/../../../features/org.eclipse.platform*")
+ endif()
+ if("${_ECLIPSE_FEATURE_DIR}" MATCHES ".+org.eclipse.platform_([0-9]+\\.[0-9]+).+")
+ set(_ECLIPSE_VERSION ${CMAKE_MATCH_1})
+ endif()
+ endif()
+
+ if(_ECLIPSE_VERSION)
+ message(STATUS "Found Eclipse version ${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}})")
+ else()
+ set(_ECLIPSE_VERSION "3.6" )
+ message(STATUS "Could not determine Eclipse version, assuming at least ${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}}). Adjust CMAKE_ECLIPSE_VERSION if this is wrong.")
+ endif()
+
+ set(CMAKE_ECLIPSE_VERSION "${_ECLIPSE_VERSION} (${_ECLIPSE_VERSION_NAME_${_ECLIPSE_VERSION}})" CACHE STRING "The version of Eclipse. If Eclipse has not been found, 3.6 (Helios) is assumed.")
+ else()
+ message(STATUS "Eclipse version is set to ${CMAKE_ECLIPSE_VERSION}. Adjust CMAKE_ECLIPSE_VERSION if this is wrong.")
+ endif()
+
+ set_property(CACHE CMAKE_ECLIPSE_VERSION PROPERTY STRINGS "3.2 (${_ECLIPSE_VERSION_NAME_3.2})"
+ "3.3 (${_ECLIPSE_VERSION_NAME_3.3})"
+ "3.4 (${_ECLIPSE_VERSION_NAME_3.4})"
+ "3.5 (${_ECLIPSE_VERSION_NAME_3.5})"
+ "3.6 (${_ECLIPSE_VERSION_NAME_3.6})"
+ "3.7 (${_ECLIPSE_VERSION_NAME_3.7})"
+ "4.2 (${_ECLIPSE_VERSION_NAME_4.2})"
+ "4.3 (${_ECLIPSE_VERSION_NAME_4.3})"
+ "4.4 (${_ECLIPSE_VERSION_NAME_4.4})"
+ "4.5 (${_ECLIPSE_VERSION_NAME_4.5})"
+ )
+endfunction()
+
+_find_eclipse_version()
+
+# Try to find out how many CPUs we have and set the -j argument for make accordingly
+set(_CMAKE_ECLIPSE_INITIAL_MAKE_ARGS "")
+
+include(ProcessorCount)
+processorcount(_CMAKE_ECLIPSE_PROCESSOR_COUNT)
+
+# Only set -j if we are under UNIX and if the make-tool used actually has "make" in the name
+# (we may also get here in the future e.g. for ninja)
+if("${_CMAKE_ECLIPSE_PROCESSOR_COUNT}" GREATER 1 AND CMAKE_HOST_UNIX AND "${CMAKE_MAKE_PROGRAM}" MATCHES make)
+ set(_CMAKE_ECLIPSE_INITIAL_MAKE_ARGS "-j${_CMAKE_ECLIPSE_PROCESSOR_COUNT}")
+endif()
+
+# This variable is used by the Eclipse generator and appended to the make invocation commands.
+set(CMAKE_ECLIPSE_MAKE_ARGUMENTS "${_CMAKE_ECLIPSE_INITIAL_MAKE_ARGS}" CACHE STRING "Additional command line arguments when Eclipse invokes make. Enter e.g. -j<some_number> to get parallel builds")
+
+set(CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES TRUE CACHE BOOL "If disabled, CMake will not generate linked resource to the subprojects and to the source files within targets")
+
+# This variable is used by the Eclipse generator in out-of-source builds only.
+set(CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT FALSE CACHE BOOL "If enabled, CMake will generate a source project for Eclipse in CMAKE_SOURCE_DIR")
+mark_as_advanced(CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT)
+
+# Determine builtin macros and include dirs:
+include(${CMAKE_CURRENT_LIST_DIR}/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake)
diff --git a/share/cmake-3.18/Modules/CMakeFindFrameworks.cmake b/share/cmake-3.18/Modules/CMakeFindFrameworks.cmake
new file mode 100644
index 0000000..8906f48
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeFindFrameworks.cmake
@@ -0,0 +1,45 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CMakeFindFrameworks
+-------------------
+
+helper module to find OSX frameworks
+
+This module reads hints about search locations from variables::
+
+ CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS - Extra directories
+#]=======================================================================]
+
+if(NOT CMAKE_FIND_FRAMEWORKS_INCLUDED)
+ set(CMAKE_FIND_FRAMEWORKS_INCLUDED 1)
+ macro(CMAKE_FIND_FRAMEWORKS fwk)
+ set(${fwk}_FRAMEWORKS)
+ if(APPLE)
+ file(TO_CMAKE_PATH "$ENV{CMAKE_FRAMEWORK_PATH}" _cmff_CMAKE_FRAMEWORK_PATH)
+ set(_cmff_search_paths
+ ${CMAKE_FRAMEWORK_PATH}
+ ${_cmff_CMAKE_FRAMEWORK_PATH}
+ ~/Library/Frameworks
+ /usr/local/Frameworks
+ /Library/Frameworks
+ /System/Library/Frameworks
+ /Network/Library/Frameworks
+ ${CMAKE_SYSTEM_FRAMEWORK_PATH})
+
+ # For backwards compatibility reasons,
+ # CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS includes ${fwk}.framework
+ list(TRANSFORM _cmff_search_paths APPEND /${fwk}.framework)
+ list(APPEND _cmff_search_paths ${CMAKE_FIND_FRAMEWORK_EXTRA_LOCATIONS})
+
+ list(REMOVE_DUPLICATES _cmff_search_paths)
+
+ foreach(dir IN LISTS _cmff_search_paths)
+ if(EXISTS ${dir})
+ set(${fwk}_FRAMEWORKS ${${fwk}_FRAMEWORKS} ${dir})
+ endif()
+ endforeach()
+ endif()
+ endmacro()
+endif()
diff --git a/share/cmake-3.17/Modules/CMakeFindJavaCommon.cmake b/share/cmake-3.18/Modules/CMakeFindJavaCommon.cmake
index 46b6280..46b6280 100644
--- a/share/cmake-3.17/Modules/CMakeFindJavaCommon.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindJavaCommon.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindKate.cmake b/share/cmake-3.18/Modules/CMakeFindKate.cmake
index 9aaf6e5..9aaf6e5 100644
--- a/share/cmake-3.17/Modules/CMakeFindKate.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindKate.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindPackageMode.cmake b/share/cmake-3.18/Modules/CMakeFindPackageMode.cmake
index 815dfc9..815dfc9 100644
--- a/share/cmake-3.17/Modules/CMakeFindPackageMode.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindPackageMode.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindSublimeText2.cmake b/share/cmake-3.18/Modules/CMakeFindSublimeText2.cmake
index 7f67bf0..7f67bf0 100644
--- a/share/cmake-3.17/Modules/CMakeFindSublimeText2.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindSublimeText2.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindWMake.cmake b/share/cmake-3.18/Modules/CMakeFindWMake.cmake
index a20d069..a20d069 100644
--- a/share/cmake-3.17/Modules/CMakeFindWMake.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindWMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeFindXCode.cmake b/share/cmake-3.18/Modules/CMakeFindXCode.cmake
index 281af96..281af96 100644
--- a/share/cmake-3.17/Modules/CMakeFindXCode.cmake
+++ b/share/cmake-3.18/Modules/CMakeFindXCode.cmake
diff --git a/share/cmake-3.17/Modules/CMakeForceCompiler.cmake b/share/cmake-3.18/Modules/CMakeForceCompiler.cmake
index 7048806..7048806 100644
--- a/share/cmake-3.17/Modules/CMakeForceCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeForceCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeFortranCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeFortranCompiler.cmake.in
new file mode 100644
index 0000000..06ee528
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeFortranCompiler.cmake.in
@@ -0,0 +1,69 @@
+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_CMAKE_Fortran_COMPILER_SYSROOT@
+@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.17/Modules/CMakeFortranCompilerABI.F b/share/cmake-3.18/Modules/CMakeFortranCompilerABI.F
index f4a5489..f4a5489 100644
--- a/share/cmake-3.17/Modules/CMakeFortranCompilerABI.F
+++ b/share/cmake-3.18/Modules/CMakeFortranCompilerABI.F
diff --git a/share/cmake-3.17/Modules/CMakeFortranCompilerId.F.in b/share/cmake-3.18/Modules/CMakeFortranCompilerId.F.in
index 30f8d4c..30f8d4c 100644
--- a/share/cmake-3.17/Modules/CMakeFortranCompilerId.F.in
+++ b/share/cmake-3.18/Modules/CMakeFortranCompilerId.F.in
diff --git a/share/cmake-3.18/Modules/CMakeFortranInformation.cmake b/share/cmake-3.18/Modules/CMakeFortranInformation.cmake
new file mode 100644
index 0000000..9a4ce63
--- /dev/null
+++ b/share/cmake-3.18/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.18/Modules/CMakeGenericSystem.cmake b/share/cmake-3.18/Modules/CMakeGenericSystem.cmake
new file mode 100644
index 0000000..000fba1
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeGenericSystem.cmake
@@ -0,0 +1,181 @@
+# 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()
+endif()
+
+if(NOT DEFINED CMAKE_EXPORT_COMPILE_COMMANDS AND CMAKE_GENERATOR MATCHES "Ninja|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()
+
+# 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.18/Modules/CMakeGraphVizOptions.cmake
index be4a3be..be4a3be 100644
--- a/share/cmake-3.17/Modules/CMakeGraphVizOptions.cmake
+++ b/share/cmake-3.18/Modules/CMakeGraphVizOptions.cmake
diff --git a/share/cmake-3.17/Modules/CMakeIOSInstallCombined.cmake b/share/cmake-3.18/Modules/CMakeIOSInstallCombined.cmake
index 418bafd..418bafd 100644
--- a/share/cmake-3.17/Modules/CMakeIOSInstallCombined.cmake
+++ b/share/cmake-3.18/Modules/CMakeIOSInstallCombined.cmake
diff --git a/share/cmake-3.17/Modules/CMakeImportBuildSettings.cmake b/share/cmake-3.18/Modules/CMakeImportBuildSettings.cmake
index ec1effb..ec1effb 100644
--- a/share/cmake-3.17/Modules/CMakeImportBuildSettings.cmake
+++ b/share/cmake-3.18/Modules/CMakeImportBuildSettings.cmake
diff --git a/share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake b/share/cmake-3.18/Modules/CMakeInitializeConfigs.cmake
index 9dfe040..9dfe040 100644
--- a/share/cmake-3.17/Modules/CMakeInitializeConfigs.cmake
+++ b/share/cmake-3.18/Modules/CMakeInitializeConfigs.cmake
diff --git a/share/cmake-3.17/Modules/CMakeJOMFindMake.cmake b/share/cmake-3.18/Modules/CMakeJOMFindMake.cmake
index f56a588..f56a588 100644
--- a/share/cmake-3.17/Modules/CMakeJOMFindMake.cmake
+++ b/share/cmake-3.18/Modules/CMakeJOMFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeJavaCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeJavaCompiler.cmake.in
index cd4158c..cd4158c 100644
--- a/share/cmake-3.17/Modules/CMakeJavaCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeJavaCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeJavaInformation.cmake b/share/cmake-3.18/Modules/CMakeJavaInformation.cmake
index 989afc1..989afc1 100644
--- a/share/cmake-3.17/Modules/CMakeJavaInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeJavaInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeLanguageInformation.cmake b/share/cmake-3.18/Modules/CMakeLanguageInformation.cmake
index 674ab86..674ab86 100644
--- a/share/cmake-3.17/Modules/CMakeLanguageInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeLanguageInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeMSYSFindMake.cmake b/share/cmake-3.18/Modules/CMakeMSYSFindMake.cmake
index 33b02c9..33b02c9 100644
--- a/share/cmake-3.17/Modules/CMakeMSYSFindMake.cmake
+++ b/share/cmake-3.18/Modules/CMakeMSYSFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake b/share/cmake-3.18/Modules/CMakeMinGWFindMake.cmake
index f026e9a..f026e9a 100644
--- a/share/cmake-3.17/Modules/CMakeMinGWFindMake.cmake
+++ b/share/cmake-3.18/Modules/CMakeMinGWFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeNMakeFindMake.cmake b/share/cmake-3.18/Modules/CMakeNMakeFindMake.cmake
index 0335744..0335744 100644
--- a/share/cmake-3.17/Modules/CMakeNMakeFindMake.cmake
+++ b/share/cmake-3.18/Modules/CMakeNMakeFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake b/share/cmake-3.18/Modules/CMakeNinjaFindMake.cmake
index 32f78da..32f78da 100644
--- a/share/cmake-3.17/Modules/CMakeNinjaFindMake.cmake
+++ b/share/cmake-3.18/Modules/CMakeNinjaFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeOBJCCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeOBJCCompiler.cmake.in
index 1555517..1555517 100644
--- a/share/cmake-3.17/Modules/CMakeOBJCCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeOBJCCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeOBJCCompilerABI.m b/share/cmake-3.18/Modules/CMakeOBJCCompilerABI.m
index 8fa8511..8fa8511 100644
--- a/share/cmake-3.17/Modules/CMakeOBJCCompilerABI.m
+++ b/share/cmake-3.18/Modules/CMakeOBJCCompilerABI.m
diff --git a/share/cmake-3.17/Modules/CMakeOBJCCompilerId.m.in b/share/cmake-3.18/Modules/CMakeOBJCCompilerId.m.in
index 2b8aa30..2b8aa30 100644
--- a/share/cmake-3.17/Modules/CMakeOBJCCompilerId.m.in
+++ b/share/cmake-3.18/Modules/CMakeOBJCCompilerId.m.in
diff --git a/share/cmake-3.18/Modules/CMakeOBJCInformation.cmake b/share/cmake-3.18/Modules/CMakeOBJCInformation.cmake
new file mode 100644
index 0000000..b3da82d
--- /dev/null
+++ b/share/cmake-3.18/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.17/Modules/CMakeOBJCXXCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeOBJCXXCompiler.cmake.in
index b6452c4..b6452c4 100644
--- a/share/cmake-3.17/Modules/CMakeOBJCXXCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeOBJCXXCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeOBJCXXCompilerABI.mm b/share/cmake-3.18/Modules/CMakeOBJCXXCompilerABI.mm
index 288a58c..288a58c 100644
--- a/share/cmake-3.17/Modules/CMakeOBJCXXCompilerABI.mm
+++ b/share/cmake-3.18/Modules/CMakeOBJCXXCompilerABI.mm
diff --git a/share/cmake-3.17/Modules/CMakeOBJCXXCompilerId.mm.in b/share/cmake-3.18/Modules/CMakeOBJCXXCompilerId.mm.in
index fe04de1..fe04de1 100644
--- a/share/cmake-3.17/Modules/CMakeOBJCXXCompilerId.mm.in
+++ b/share/cmake-3.18/Modules/CMakeOBJCXXCompilerId.mm.in
diff --git a/share/cmake-3.18/Modules/CMakeOBJCXXInformation.cmake b/share/cmake-3.18/Modules/CMakeOBJCXXInformation.cmake
new file mode 100644
index 0000000..71beb7f
--- /dev/null
+++ b/share/cmake-3.18/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.17/Modules/CMakePackageConfigHelpers.cmake b/share/cmake-3.18/Modules/CMakePackageConfigHelpers.cmake
index 22fc953..22fc953 100644
--- a/share/cmake-3.17/Modules/CMakePackageConfigHelpers.cmake
+++ b/share/cmake-3.18/Modules/CMakePackageConfigHelpers.cmake
diff --git a/share/cmake-3.17/Modules/CMakeParseArguments.cmake b/share/cmake-3.18/Modules/CMakeParseArguments.cmake
index c753b7f..c753b7f 100644
--- a/share/cmake-3.17/Modules/CMakeParseArguments.cmake
+++ b/share/cmake-3.18/Modules/CMakeParseArguments.cmake
diff --git a/share/cmake-3.17/Modules/CMakeParseImplicitIncludeInfo.cmake b/share/cmake-3.18/Modules/CMakeParseImplicitIncludeInfo.cmake
index ff4c325..ff4c325 100644
--- a/share/cmake-3.17/Modules/CMakeParseImplicitIncludeInfo.cmake
+++ b/share/cmake-3.18/Modules/CMakeParseImplicitIncludeInfo.cmake
diff --git a/share/cmake-3.17/Modules/CMakeParseImplicitLinkInfo.cmake b/share/cmake-3.18/Modules/CMakeParseImplicitLinkInfo.cmake
index 0465515..0465515 100644
--- a/share/cmake-3.17/Modules/CMakeParseImplicitLinkInfo.cmake
+++ b/share/cmake-3.18/Modules/CMakeParseImplicitLinkInfo.cmake
diff --git a/share/cmake-3.18/Modules/CMakePlatformId.h.in b/share/cmake-3.18/Modules/CMakePlatformId.h.in
new file mode 100644
index 0000000..40668a3
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakePlatformId.h.in
@@ -0,0 +1,286 @@
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* 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_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
diff --git a/share/cmake-3.17/Modules/CMakePrintHelpers.cmake b/share/cmake-3.18/Modules/CMakePrintHelpers.cmake
index d652ffa..d652ffa 100644
--- a/share/cmake-3.17/Modules/CMakePrintHelpers.cmake
+++ b/share/cmake-3.18/Modules/CMakePrintHelpers.cmake
diff --git a/share/cmake-3.18/Modules/CMakePrintSystemInformation.cmake b/share/cmake-3.18/Modules/CMakePrintSystemInformation.cmake
new file mode 100644
index 0000000..d44e933
--- /dev/null
+++ b/share/cmake-3.18/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} ${CMAKE_SYSTEM_PROCESSOR}")
+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.17/Modules/CMakePushCheckState.cmake b/share/cmake-3.18/Modules/CMakePushCheckState.cmake
index 3e519ee..3e519ee 100644
--- a/share/cmake-3.17/Modules/CMakePushCheckState.cmake
+++ b/share/cmake-3.18/Modules/CMakePushCheckState.cmake
diff --git a/share/cmake-3.17/Modules/CMakeRCCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeRCCompiler.cmake.in
index 8257cd6..8257cd6 100644
--- a/share/cmake-3.17/Modules/CMakeRCCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeRCCompiler.cmake.in
diff --git a/share/cmake-3.18/Modules/CMakeRCInformation.cmake b/share/cmake-3.18/Modules/CMakeRCInformation.cmake
new file mode 100644
index 0000000..b634796
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeRCInformation.cmake
@@ -0,0 +1,50 @@
+# 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 Windows Resource Compiler.
+# It also loads the available platform file for the system-compiler
+# if it exists.
+
+# make sure we don't use CMAKE_BASE_NAME from somewhere else
+set(CMAKE_BASE_NAME)
+if(CMAKE_RC_COMPILER MATCHES "windres[^/]*$")
+ set(CMAKE_BASE_NAME "windres")
+else()
+ get_filename_component(CMAKE_BASE_NAME ${CMAKE_RC_COMPILER} NAME_WE)
+endif()
+set(CMAKE_SYSTEM_AND_RC_COMPILER_INFO_FILE
+ ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)
+include(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
+
+# 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()
+
+set(CMAKE_RC_FLAGS_INIT "$ENV{RCFLAGS} ${CMAKE_RC_FLAGS_INIT}")
+
+cmake_initialize_per_config_variable(CMAKE_RC_FLAGS "Flags for Windows Resource Compiler")
+
+# These are the only types of flags that should be passed to the rc
+# command, if COMPILE_FLAGS is used on a target this will be used
+# to filter out any other flags
+set(CMAKE_RC_FLAG_REGEX "^[-/](D|I)")
+
+# now define the following rule variables
+# CMAKE_RC_COMPILE_OBJECT
+set(CMAKE_INCLUDE_FLAG_RC "-I ")
+# compile a Resource file into an object file
+if(NOT CMAKE_RC_COMPILE_OBJECT)
+ set(CMAKE_RC_COMPILE_OBJECT
+ "<CMAKE_RC_COMPILER> <DEFINES> <INCLUDES> <FLAGS> /fo <OBJECT> <SOURCE>")
+endif()
+
+# set this variable so we can avoid loading this more than once.
+set(CMAKE_RC_INFORMATION_LOADED 1)
diff --git a/share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in b/share/cmake-3.18/Modules/CMakeSwiftCompiler.cmake.in
index 47ada38..47ada38 100644
--- a/share/cmake-3.17/Modules/CMakeSwiftCompiler.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeSwiftCompiler.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeSwiftInformation.cmake b/share/cmake-3.18/Modules/CMakeSwiftInformation.cmake
index 8f0909c..8f0909c 100644
--- a/share/cmake-3.17/Modules/CMakeSwiftInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeSwiftInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeSystem.cmake.in b/share/cmake-3.18/Modules/CMakeSystem.cmake.in
index ef8aaa0..ef8aaa0 100644
--- a/share/cmake-3.17/Modules/CMakeSystem.cmake.in
+++ b/share/cmake-3.18/Modules/CMakeSystem.cmake.in
diff --git a/share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake b/share/cmake-3.18/Modules/CMakeSystemSpecificInformation.cmake
index ea3a445..ea3a445 100644
--- a/share/cmake-3.17/Modules/CMakeSystemSpecificInformation.cmake
+++ b/share/cmake-3.18/Modules/CMakeSystemSpecificInformation.cmake
diff --git a/share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake b/share/cmake-3.18/Modules/CMakeSystemSpecificInitialize.cmake
index 21bcd40..21bcd40 100644
--- a/share/cmake-3.17/Modules/CMakeSystemSpecificInitialize.cmake
+++ b/share/cmake-3.18/Modules/CMakeSystemSpecificInitialize.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestASM-ATTCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestASM-ATTCompiler.cmake
index df735c4..df735c4 100644
--- a/share/cmake-3.17/Modules/CMakeTestASM-ATTCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestASM-ATTCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestASMCompiler.cmake
index 7f0b9a7..7f0b9a7 100644
--- a/share/cmake-3.17/Modules/CMakeTestASMCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestASM_MASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestASM_MASMCompiler.cmake
index c1308ff..c1308ff 100644
--- a/share/cmake-3.17/Modules/CMakeTestASM_MASMCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestASM_MASMCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestASM_NASMCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestASM_NASMCompiler.cmake
index a9ee39d..a9ee39d 100644
--- a/share/cmake-3.17/Modules/CMakeTestASM_NASMCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestASM_NASMCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake
new file mode 100644
index 0000000..3734ec4
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake
@@ -0,0 +1,98 @@
+# 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)
+
+# 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)
+if(CMAKE_C_ABI_COMPILED)
+ # The compiler worked so skip dedicated test below.
+ set(CMAKE_C_COMPILER_WORKS TRUE)
+ message(STATUS "Check for working C compiler: ${CMAKE_C_COMPILER} - skipped")
+endif()
+
+# 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)
+ __TestCompiler_restoreTryCompileTargetType()
+ 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.")
+ endif()
+ 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 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()
+
+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.18/Modules/CMakeTestCSharpCompiler.cmake
index 1119a45..1119a45 100644
--- a/share/cmake-3.17/Modules/CMakeTestCSharpCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestCSharpCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeTestCUDACompiler.cmake b/share/cmake-3.18/Modules/CMakeTestCUDACompiler.cmake
new file mode 100644
index 0000000..a18947b
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestCUDACompiler.cmake
@@ -0,0 +1,98 @@
+# 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)
+
+# 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(CMAKE_CUDA_ABI_COMPILED)
+ # The compiler worked so skip dedicated test below.
+ set(CMAKE_CUDA_COMPILER_WORKS TRUE)
+ message(STATUS "Check for working CUDA compiler: ${CMAKE_CUDA_COMPILER} - skipped")
+endif()
+
+# 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)
+ 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.")
+ endif()
+ 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 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()
+
+# Filter out implicit link libraries that should not be passed unconditionally.
+# See CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES_EXCLUDE in CMakeDetermineCUDACompiler.
+list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES ${CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES_EXCLUDE})
+
+if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+ # 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()
+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)
+
+unset(__CMAKE_CUDA_COMPILER_OUTPUT)
diff --git a/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake
new file mode 100644
index 0000000..b9cb1dd
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake
@@ -0,0 +1,91 @@
+# 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)
+
+# 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)
+if(CMAKE_CXX_ABI_COMPILED)
+ # The compiler worked so skip dedicated test below.
+ set(CMAKE_CXX_COMPILER_WORKS TRUE)
+ message(STATUS "Check for working CXX compiler: ${CMAKE_CXX_COMPILER} - skipped")
+endif()
+
+# 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)
+ __TestCompiler_restoreTryCompileTargetType()
+ 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.")
+ endif()
+ 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 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()
+
+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.18/Modules/CMakeTestCompilerCommon.cmake
index da7c007..da7c007 100644
--- a/share/cmake-3.17/Modules/CMakeTestCompilerCommon.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestCompilerCommon.cmake
diff --git a/share/cmake-3.18/Modules/CMakeTestFortranCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestFortranCompiler.cmake
new file mode 100644
index 0000000..10fb0a7
--- /dev/null
+++ b/share/cmake-3.18/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)
+
+# 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)
+if(CMAKE_Fortran_ABI_COMPILED)
+ # The compiler worked so skip dedicated test below.
+ set(CMAKE_Fortran_COMPILER_WORKS TRUE)
+ message(STATUS "Check for working Fortran compiler: ${CMAKE_Fortran_COMPILER} - skipped")
+endif()
+
+# 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)
+ 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.")
+ endif()
+ 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()
+
+# 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()
diff --git a/share/cmake-3.17/Modules/CMakeTestGNU.c b/share/cmake-3.18/Modules/CMakeTestGNU.c
index 933e5a2..933e5a2 100644
--- a/share/cmake-3.17/Modules/CMakeTestGNU.c
+++ b/share/cmake-3.18/Modules/CMakeTestGNU.c
diff --git a/share/cmake-3.17/Modules/CMakeTestJavaCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestJavaCompiler.cmake
index 3c33573..3c33573 100644
--- a/share/cmake-3.17/Modules/CMakeTestJavaCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestJavaCompiler.cmake
diff --git a/share/cmake-3.18/Modules/CMakeTestOBJCCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestOBJCCompiler.cmake
new file mode 100644
index 0000000..0e333c0
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestOBJCCompiler.cmake
@@ -0,0 +1,95 @@
+# 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)
+
+# 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)
+if(CMAKE_OBJC_ABI_COMPILED)
+ # The compiler worked so skip dedicated test below.
+ set(CMAKE_OBJC_COMPILER_WORKS TRUE)
+ message(STATUS "Check for working OBJC compiler: ${CMAKE_OBJC_COMPILER} - skipped")
+endif()
+
+# 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)
+ __TestCompiler_restoreTryCompileTargetType()
+ 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.")
+ endif()
+ 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 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()
+
+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.18/Modules/CMakeTestOBJCXXCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestOBJCXXCompiler.cmake
new file mode 100644
index 0000000..dc153a7
--- /dev/null
+++ b/share/cmake-3.18/Modules/CMakeTestOBJCXXCompiler.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_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)
+
+# 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)
+if(CMAKE_OBJCXX_ABI_COMPILED)
+ # The compiler worked so skip dedicated test below.
+ set(CMAKE_OBJCXX_COMPILER_WORKS TRUE)
+ message(STATUS "Check for working OBJCXX compiler: ${CMAKE_OBJCXX_COMPILER} - skipped")
+endif()
+
+# 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)
+ __TestCompiler_restoreTryCompileTargetType()
+ 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.")
+ endif()
+ 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 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()
+
+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.17/Modules/CMakeTestRCCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestRCCompiler.cmake
index 3123a6c..3123a6c 100644
--- a/share/cmake-3.17/Modules/CMakeTestRCCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestRCCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake b/share/cmake-3.18/Modules/CMakeTestSwiftCompiler.cmake
index d98dc9d..d98dc9d 100644
--- a/share/cmake-3.17/Modules/CMakeTestSwiftCompiler.cmake
+++ b/share/cmake-3.18/Modules/CMakeTestSwiftCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CMakeUnixFindMake.cmake b/share/cmake-3.18/Modules/CMakeUnixFindMake.cmake
index 1165656..1165656 100644
--- a/share/cmake-3.17/Modules/CMakeUnixFindMake.cmake
+++ b/share/cmake-3.18/Modules/CMakeUnixFindMake.cmake
diff --git a/share/cmake-3.17/Modules/CMakeVerifyManifest.cmake b/share/cmake-3.18/Modules/CMakeVerifyManifest.cmake
index 705ef8a..705ef8a 100644
--- a/share/cmake-3.17/Modules/CMakeVerifyManifest.cmake
+++ b/share/cmake-3.18/Modules/CMakeVerifyManifest.cmake
diff --git a/share/cmake-3.18/Modules/CPack.cmake b/share/cmake-3.18/Modules/CPack.cmake
new file mode 100644
index 0000000..d0cfc2b
--- /dev/null
+++ b/share/cmake-3.18/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 generators for binary installers and source packages.
+
+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 will contain all files that have been installed
+via CMake's :command:`install` command (and the deprecated commands
+:command:`install_files`, :command:`install_programs`, and
+:command:`install_targets`). Certain kinds of binary installers can be
+configured such that users can select individual application components to
+install. See the :module:`CPackComponent` module for further details.
+
+Source packages (configured through ``CPackSourceConfig.cmake`` and generated
+by the :cpack_gen:`CPack Archive Generator`) will contain all source files in
+the project directory except those specified in
+:variable:`CPACK_SOURCE_IGNORE_FILES`.
+
+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`.
+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 CPackSourceConfig.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.18/Modules/CPackComponent.cmake b/share/cmake-3.18/Modules/CPackComponent.cmake
new file mode 100644
index 0000000..1f8c38c
--- /dev/null
+++ b/share/cmake-3.18/Modules/CPackComponent.cmake
@@ -0,0 +1,554 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CPackComponent
+--------------
+
+Configure components for binary installers and source packages.
+
+.. only:: html
+
+ .. contents::
+
+Introduction
+^^^^^^^^^^^^
+
+This module is automatically included by :module:`CPack`.
+
+Certain binary installers (especially the graphical installers) generated
+by CPack allow users to select individual application *components* to install.
+This module allows developers to configure the packaging of such components.
+
+Contents is assigned to components by the ``COMPONENT``
+argument of CMake's :command:`install` command. Components can be
+annotated with user-friendly names and descriptions, inter-component
+dependencies, etc., and grouped in various ways to customize the
+resulting installer, using the commands described below.
+
+To specify different groupings for different CPack generators use
+a CPACK_PROJECT_CONFIG_FILE.
+
+Variables
+^^^^^^^^^
+
+The following variables influence the component-specific packaging:
+
+.. variable:: CPACK_COMPONENTS_ALL
+
+ The list of component to install.
+
+ The default value of this variable is computed by CPack and contains all
+ components defined by the project. The user may set it to only include the
+ specified components.
+
+ Instead of specifying all the desired components, it is possible to obtain a
+ list of all defined components and then remove the unwanted ones from the
+ list. The :command:`get_cmake_property` command can be used to obtain the
+ ``COMPONENTS`` property, then the :command:`list(REMOVE_ITEM)` command can be
+ used to remove the unwanted ones. For example, to use all defined components
+ except ``foo`` and ``bar``::
+
+ get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS)
+ list(REMOVE_ITEM CPACK_COMPONENTS_ALL "foo" "bar")
+
+.. variable:: CPACK_<GENNAME>_COMPONENT_INSTALL
+
+ Enable/Disable component install for CPack generator <GENNAME>.
+
+ Each CPack Generator (RPM, DEB, ARCHIVE, NSIS, DMG, etc...) has a legacy
+ default behavior. e.g. RPM builds monolithic whereas NSIS builds
+ component. One can change the default behavior by setting this variable to
+ 0/1 or OFF/ON.
+
+.. variable:: CPACK_COMPONENTS_GROUPING
+
+ Specify how components are grouped for multi-package component-aware CPack
+ generators.
+
+ Some generators like RPM or ARCHIVE (TGZ, ZIP, ...) may generate
+ several packages files when there are components, depending
+ on the value of this variable:
+
+ * ONE_PER_GROUP (default): create one package per component group
+ * IGNORE : create one package per component (ignore the groups)
+ * ALL_COMPONENTS_IN_ONE : create a single package with all requested
+ components
+
+.. variable:: CPACK_COMPONENT_<compName>_DISPLAY_NAME
+
+ The name to be displayed for a component.
+
+.. variable:: CPACK_COMPONENT_<compName>_DESCRIPTION
+
+ The description of a component.
+
+.. variable:: CPACK_COMPONENT_<compName>_GROUP
+
+ The group of a component.
+
+.. variable:: CPACK_COMPONENT_<compName>_DEPENDS
+
+ The dependencies (list of components) on which this component depends.
+
+.. variable:: CPACK_COMPONENT_<compName>_HIDDEN
+
+ True if this component is hidden from the user.
+
+.. variable:: CPACK_COMPONENT_<compName>_REQUIRED
+
+ True if this component is required.
+
+.. variable:: CPACK_COMPONENT_<compName>_DISABLED
+
+ True if this component is not selected to be installed by default.
+
+Commands
+^^^^^^^^
+
+Add component
+"""""""""""""
+
+.. command:: cpack_add_component
+
+Describe an installation component.
+
+::
+
+ cpack_add_component(compname
+ [DISPLAY_NAME name]
+ [DESCRIPTION description]
+ [HIDDEN | REQUIRED | DISABLED ]
+ [GROUP group]
+ [DEPENDS comp1 comp2 ... ]
+ [INSTALL_TYPES type1 type2 ... ]
+ [DOWNLOADED]
+ [ARCHIVE_FILE filename]
+ [PLIST filename])
+
+``compname`` is the name of an installation component, as defined by the
+``COMPONENT`` argument of one or more CMake :command:`install` commands.
+With the ``cpack_add_component`` command one can set a name, a description,
+and other attributes of an installation component.
+One can also assign a component to a component group.
+
+DISPLAY_NAME is the displayed name of the component, used in graphical
+installers to display the component name. This value can be any
+string.
+
+DESCRIPTION is an extended description of the component, used in
+graphical installers to give the user additional information about the
+component. Descriptions can span multiple lines using ``\n`` as the
+line separator. Typically, these descriptions should be no more than
+a few lines long.
+
+HIDDEN indicates that this component will be hidden in the graphical
+installer, so that the user cannot directly change whether it is
+installed or not.
+
+REQUIRED indicates that this component is required, and therefore will
+always be installed. It will be visible in the graphical installer,
+but it cannot be unselected. (Typically, required components are
+shown greyed out).
+
+DISABLED indicates that this component should be disabled (unselected)
+by default. The user is free to select this component for
+installation, unless it is also HIDDEN.
+
+DEPENDS lists the components on which this component depends. If this
+component is selected, then each of the components listed must also be
+selected. The dependency information is encoded within the installer
+itself, so that users cannot install inconsistent sets of components.
+
+GROUP names the component group of which this component is a part. If
+not provided, the component will be a standalone component, not part
+of any component group. Component groups are described with the
+cpack_add_component_group command, detailed below.
+
+INSTALL_TYPES lists the installation types of which this component is
+a part. When one of these installations types is selected, this
+component will automatically be selected. Installation types are
+described with the cpack_add_install_type command, detailed below.
+
+DOWNLOADED indicates that this component should be downloaded
+on-the-fly by the installer, rather than packaged in with the
+installer itself. For more information, see the
+cpack_configure_downloads command.
+
+ARCHIVE_FILE provides a name for the archive file created by CPack to
+be used for downloaded components. If not supplied, CPack will create
+a file with some name based on CPACK_PACKAGE_FILE_NAME and the name of
+the component. See cpack_configure_downloads for more information.
+
+PLIST gives a filename that is passed to pkgbuild with the
+``--component-plist`` argument when using the productbuild generator.
+
+Add component group
+"""""""""""""""""""
+
+.. command:: cpack_add_component_group
+
+Describes a group of related CPack installation components.
+
+::
+
+ cpack_add_component_group(groupname
+ [DISPLAY_NAME name]
+ [DESCRIPTION description]
+ [PARENT_GROUP parent]
+ [EXPANDED]
+ [BOLD_TITLE])
+
+
+
+The cpack_add_component_group describes a group of installation
+components, which will be placed together within the listing of
+options. Typically, component groups allow the user to
+select/deselect all of the components within a single group via a
+single group-level option. Use component groups to reduce the
+complexity of installers with many options. groupname is an arbitrary
+name used to identify the group in the GROUP argument of the
+cpack_add_component command, which is used to place a component in a
+group. The name of the group must not conflict with the name of any
+component.
+
+DISPLAY_NAME is the displayed name of the component group, used in
+graphical installers to display the component group name. This value
+can be any string.
+
+DESCRIPTION is an extended description of the component group, used in
+graphical installers to give the user additional information about the
+components within that group. Descriptions can span multiple lines
+using ``\n`` as the line separator. Typically, these descriptions
+should be no more than a few lines long.
+
+PARENT_GROUP, if supplied, names the parent group of this group.
+Parent groups are used to establish a hierarchy of groups, providing
+an arbitrary hierarchy of groups.
+
+EXPANDED indicates that, by default, the group should show up as
+"expanded", so that the user immediately sees all of the components
+within the group. Otherwise, the group will initially show up as a
+single entry.
+
+BOLD_TITLE indicates that the group title should appear in bold, to
+call the user's attention to the group.
+
+Add installation type
+"""""""""""""""""""""
+
+.. command:: cpack_add_install_type
+
+Add a new installation type containing
+a set of predefined component selections to the graphical installer.
+
+::
+
+ cpack_add_install_type(typename
+ [DISPLAY_NAME name])
+
+
+
+The cpack_add_install_type command identifies a set of preselected
+components that represents a common use case for an application. For
+example, a "Developer" install type might include an application along
+with its header and library files, while an "End user" install type
+might just include the application's executable. Each component
+identifies itself with one or more install types via the INSTALL_TYPES
+argument to cpack_add_component.
+
+DISPLAY_NAME is the displayed name of the install type, which will
+typically show up in a drop-down box within a graphical installer.
+This value can be any string.
+
+Configure downloads
+"""""""""""""""""""
+
+.. command:: cpack_configure_downloads
+
+Configure CPack to download
+selected components on-the-fly as part of the installation process.
+
+::
+
+ cpack_configure_downloads(site
+ [UPLOAD_DIRECTORY dirname]
+ [ALL]
+ [ADD_REMOVE|NO_ADD_REMOVE])
+
+
+
+The cpack_configure_downloads command configures installation-time
+downloads of selected components. For each downloadable component,
+CPack will create an archive containing the contents of that
+component, which should be uploaded to the given site. When the user
+selects that component for installation, the installer will download
+and extract the component in place. This feature is useful for
+creating small installers that only download the requested components,
+saving bandwidth. Additionally, the installers are small enough that
+they will be installed as part of the normal installation process, and
+the "Change" button in Windows Add/Remove Programs control panel will
+allow one to add or remove parts of the application after the original
+installation. On Windows, the downloaded-components functionality
+requires the ZipDLL plug-in for NSIS, available at:
+
+::
+
+ http://nsis.sourceforge.net/ZipDLL_plug-in
+
+On macOS, installers that download components on-the-fly can only
+be built and installed on system using macOS 10.5 or later.
+
+The site argument is a URL where the archives for downloadable
+components will reside, e.g.,
+https://cmake.org/files/2.6.1/installer/ All of the archives
+produced by CPack should be uploaded to that location.
+
+UPLOAD_DIRECTORY is the local directory where CPack will create the
+various archives for each of the components. The contents of this
+directory should be uploaded to a location accessible by the URL given
+in the site argument. If omitted, CPack will use the directory
+CPackUploads inside the CMake binary directory to store the generated
+archives.
+
+The ALL flag indicates that all components be downloaded. Otherwise,
+only those components explicitly marked as DOWNLOADED or that have a
+specified ARCHIVE_FILE will be downloaded. Additionally, the ALL
+option implies ADD_REMOVE (unless NO_ADD_REMOVE is specified).
+
+ADD_REMOVE indicates that CPack should install a copy of the installer
+that can be called from Windows' Add/Remove Programs dialog (via the
+"Modify" button) to change the set of installed components.
+NO_ADD_REMOVE turns off this behavior. This option is ignored on Mac
+OS X.
+#]=======================================================================]
+
+# Define var in order to avoid multiple inclusion
+if(NOT CPackComponent_CMake_INCLUDED)
+set(CPackComponent_CMake_INCLUDED 1)
+
+# Macro that appends a SET command for the given variable name (var)
+# to the macro named strvar, but only if the variable named "var"
+# has been defined. The string will eventually be appended to a CPack
+# configuration file.
+macro(cpack_append_variable_set_command var strvar)
+ if (DEFINED ${var})
+ string(APPEND ${strvar} "set(${var}")
+ foreach(APPENDVAL ${${var}})
+ string(APPEND ${strvar} " ${APPENDVAL}")
+ endforeach()
+ string(APPEND ${strvar} ")\n")
+ endif ()
+endmacro()
+
+# Macro that appends a SET command for the given variable name (var)
+# to the macro named strvar, but only if the variable named "var"
+# has been defined and is a string. The string will eventually be
+# appended to a CPack configuration file.
+macro(cpack_append_string_variable_set_command var strvar)
+ if (DEFINED ${var})
+ list(LENGTH ${var} CPACK_APP_VALUE_LEN)
+ if(${CPACK_APP_VALUE_LEN} EQUAL 1)
+ string(APPEND ${strvar} "set(${var} \"${${var}}\")\n")
+ endif()
+ endif ()
+endmacro()
+
+# Macro that appends a SET command for the given list variable name (var)
+# to the macro named strvar, but only if the variable named "var"
+# has been defined. It's like add variable, but wrap each item to quotes.
+# The string will eventually be appended to a CPack configuration file.
+macro(cpack_append_list_variable_set_command var strvar)
+ if (DEFINED ${var})
+ string(APPEND ${strvar} "set(${var}")
+ foreach(_val IN LISTS ${var})
+ string(APPEND ${strvar} "\n \"${_val}\"")
+ endforeach()
+ string(APPEND ${strvar} ")\n")
+ endif ()
+endmacro()
+
+# Macro that appends a SET command for the given variable name (var)
+# to the macro named strvar, but only if the variable named "var"
+# has been set to true. The string will eventually be
+# appended to a CPack configuration file.
+macro(cpack_append_option_set_command var strvar)
+ if (${var})
+ list(LENGTH ${var} CPACK_APP_VALUE_LEN)
+ if(${CPACK_APP_VALUE_LEN} EQUAL 1)
+ string(APPEND ${strvar} "set(${var} TRUE)\n")
+ endif()
+ endif ()
+endmacro()
+
+# Macro that adds a component to the CPack installer
+macro(cpack_add_component compname)
+ string(TOUPPER ${compname} _CPACK_ADDCOMP_UNAME)
+ cmake_parse_arguments(CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}
+ "HIDDEN;REQUIRED;DISABLED;DOWNLOADED"
+ "DISPLAY_NAME;DESCRIPTION;GROUP;ARCHIVE_FILE;PLIST"
+ "DEPENDS;INSTALL_TYPES"
+ ${ARGN}
+ )
+
+ if (CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DOWNLOADED)
+ set(_CPACK_ADDCOMP_STR "\n# Configuration for downloaded component \"${compname}\"\n")
+ else ()
+ set(_CPACK_ADDCOMP_STR "\n# Configuration for component \"${compname}\"\n")
+ endif ()
+
+ if(NOT CPACK_MONOLITHIC_INSTALL)
+ # If the user didn't set CPACK_COMPONENTS_ALL explicitly, update the
+ # value of CPACK_COMPONENTS_ALL in the configuration file. This will
+ # take care of any components that have been added after the CPack
+ # moduled was included.
+ if(NOT CPACK_COMPONENTS_ALL_SET_BY_USER)
+ get_cmake_property(_CPACK_ADDCOMP_COMPONENTS COMPONENTS)
+ string(APPEND _CPACK_ADDCOMP_STR "\nSET(CPACK_COMPONENTS_ALL")
+ foreach(COMP ${_CPACK_ADDCOMP_COMPONENTS})
+ string(APPEND _CPACK_ADDCOMP_STR " ${COMP}")
+ endforeach()
+ string(APPEND _CPACK_ADDCOMP_STR ")\n")
+ endif()
+ endif()
+
+ cpack_append_string_variable_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DISPLAY_NAME
+ _CPACK_ADDCOMP_STR)
+ cpack_append_string_variable_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DESCRIPTION
+ _CPACK_ADDCOMP_STR)
+ cpack_append_variable_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_GROUP
+ _CPACK_ADDCOMP_STR)
+ cpack_append_variable_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DEPENDS
+ _CPACK_ADDCOMP_STR)
+ cpack_append_variable_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_INSTALL_TYPES
+ _CPACK_ADDCOMP_STR)
+ cpack_append_string_variable_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_ARCHIVE_FILE
+ _CPACK_ADDCOMP_STR)
+ cpack_append_option_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_HIDDEN
+ _CPACK_ADDCOMP_STR)
+ cpack_append_option_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_REQUIRED
+ _CPACK_ADDCOMP_STR)
+ cpack_append_option_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DISABLED
+ _CPACK_ADDCOMP_STR)
+ cpack_append_option_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_DOWNLOADED
+ _CPACK_ADDCOMP_STR)
+ cpack_append_string_variable_set_command(
+ CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME}_PLIST
+ _CPACK_ADDCOMP_STR)
+ # Backward compatibility issue.
+ # Write to config iff the macros is used after CPack.cmake has been
+ # included, other it's not necessary because the variables
+ # will be encoded by cpack_encode_variables.
+ if(CPack_CMake_INCLUDED)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_ADDCOMP_STR}")
+ endif()
+endmacro()
+
+# Macro that adds a component group to the CPack installer
+macro(cpack_add_component_group grpname)
+ string(TOUPPER ${grpname} _CPACK_ADDGRP_UNAME)
+ cmake_parse_arguments(CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}
+ "EXPANDED;BOLD_TITLE"
+ "DISPLAY_NAME;DESCRIPTION;PARENT_GROUP"
+ ""
+ ${ARGN}
+ )
+
+ set(_CPACK_ADDGRP_STR "\n# Configuration for component group \"${grpname}\"\n")
+ cpack_append_string_variable_set_command(
+ CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_DISPLAY_NAME
+ _CPACK_ADDGRP_STR)
+ cpack_append_string_variable_set_command(
+ CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_DESCRIPTION
+ _CPACK_ADDGRP_STR)
+ cpack_append_string_variable_set_command(
+ CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_PARENT_GROUP
+ _CPACK_ADDGRP_STR)
+ cpack_append_option_set_command(
+ CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_EXPANDED
+ _CPACK_ADDGRP_STR)
+ cpack_append_option_set_command(
+ CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME}_BOLD_TITLE
+ _CPACK_ADDGRP_STR)
+ # Backward compatibility issue.
+ # Write to config iff the macros is used after CPack.cmake has been
+ # included, other it's not necessary because the variables
+ # will be encoded by cpack_encode_variables.
+ if(CPack_CMake_INCLUDED)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_ADDGRP_STR}")
+ endif()
+endmacro()
+
+# Macro that adds an installation type to the CPack installer
+macro(cpack_add_install_type insttype)
+ string(TOUPPER ${insttype} _CPACK_INSTTYPE_UNAME)
+ cmake_parse_arguments(CPACK_INSTALL_TYPE_${_CPACK_INSTTYPE_UNAME}
+ ""
+ "DISPLAY_NAME"
+ ""
+ ${ARGN}
+ )
+
+ set(_CPACK_INSTTYPE_STR
+ "\n# Configuration for installation type \"${insttype}\"\n")
+ string(APPEND _CPACK_INSTTYPE_STR
+ "list(APPEND CPACK_ALL_INSTALL_TYPES ${insttype})\n")
+ cpack_append_string_variable_set_command(
+ CPACK_INSTALL_TYPE_${_CPACK_INSTTYPE_UNAME}_DISPLAY_NAME
+ _CPACK_INSTTYPE_STR)
+ # Backward compatibility issue.
+ # Write to config iff the macros is used after CPack.cmake has been
+ # included, other it's not necessary because the variables
+ # will be encoded by cpack_encode_variables.
+ if(CPack_CMake_INCLUDED)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${_CPACK_INSTTYPE_STR}")
+ endif()
+endmacro()
+
+macro(cpack_configure_downloads site)
+ cmake_parse_arguments(CPACK_DOWNLOAD
+ "ALL;ADD_REMOVE;NO_ADD_REMOVE"
+ "UPLOAD_DIRECTORY"
+ ""
+ ${ARGN}
+ )
+
+ set(CPACK_CONFIG_DL_STR
+ "\n# Downloaded components configuration\n")
+ set(CPACK_UPLOAD_DIRECTORY ${CPACK_DOWNLOAD_UPLOAD_DIRECTORY})
+ set(CPACK_DOWNLOAD_SITE ${site})
+ cpack_append_string_variable_set_command(
+ CPACK_DOWNLOAD_SITE
+ CPACK_CONFIG_DL_STR)
+ cpack_append_string_variable_set_command(
+ CPACK_UPLOAD_DIRECTORY
+ CPACK_CONFIG_DL_STR)
+ cpack_append_option_set_command(
+ CPACK_DOWNLOAD_ALL
+ CPACK_CONFIG_DL_STR)
+ if (${CPACK_DOWNLOAD_ALL} AND NOT ${CPACK_DOWNLOAD_NO_ADD_REMOVE})
+ set(CPACK_DOWNLOAD_ADD_REMOVE ON)
+ endif ()
+ set(CPACK_ADD_REMOVE ${CPACK_DOWNLOAD_ADD_REMOVE})
+ cpack_append_option_set_command(
+ CPACK_ADD_REMOVE
+ CPACK_CONFIG_DL_STR)
+ # Backward compatibility issue.
+ # Write to config iff the macros is used after CPack.cmake has been
+ # included, other it's not necessary because the variables
+ # will be encoded by cpack_encode_variables.
+ if(CPack_CMake_INCLUDED)
+ file(APPEND "${CPACK_OUTPUT_CONFIG_FILE}" "${CPACK_CONFIG_DL_STR}")
+ endif()
+endmacro()
+endif()
diff --git a/share/cmake-3.18/Modules/CPackIFW.cmake b/share/cmake-3.18/Modules/CPackIFW.cmake
new file mode 100644
index 0000000..80a907f
--- /dev/null
+++ b/share/cmake-3.18/Modules/CPackIFW.cmake
@@ -0,0 +1,739 @@
+# 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 ``REQUIRED`` 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.2"
+ "3.2.0"
+ "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.17/Modules/CPackIFWConfigureFile.cmake b/share/cmake-3.18/Modules/CPackIFWConfigureFile.cmake
index 0abe0da..0abe0da 100644
--- a/share/cmake-3.17/Modules/CPackIFWConfigureFile.cmake
+++ b/share/cmake-3.18/Modules/CPackIFWConfigureFile.cmake
diff --git a/share/cmake-3.17/Modules/CSharpUtilities.cmake b/share/cmake-3.18/Modules/CSharpUtilities.cmake
index 6a4b5c7..6a4b5c7 100644
--- a/share/cmake-3.17/Modules/CSharpUtilities.cmake
+++ b/share/cmake-3.18/Modules/CSharpUtilities.cmake
diff --git a/share/cmake-3.17/Modules/CTest.cmake b/share/cmake-3.18/Modules/CTest.cmake
index 8109108..8109108 100644
--- a/share/cmake-3.17/Modules/CTest.cmake
+++ b/share/cmake-3.18/Modules/CTest.cmake
diff --git a/share/cmake-3.18/Modules/CTestCoverageCollectGCOV.cmake b/share/cmake-3.18/Modules/CTestCoverageCollectGCOV.cmake
new file mode 100644
index 0000000..b1268be
--- /dev/null
+++ b/share/cmake-3.18/Modules/CTestCoverageCollectGCOV.cmake
@@ -0,0 +1,339 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CTestCoverageCollectGCOV
+------------------------
+
+This module provides the ``ctest_coverage_collect_gcov`` function.
+
+This function runs gcov on all .gcda files found in the binary tree
+and packages the resulting .gcov files into a tar file.
+This tarball also contains the following:
+
+* *data.json* defines the source and build directories for use by CDash.
+* *Labels.json* indicates any :prop_sf:`LABELS` that have been set on the
+ source files.
+* The *uncovered* directory holds any uncovered files found by
+ :variable:`CTEST_EXTRA_COVERAGE_GLOB`.
+
+After generating this tar file, it can be sent to CDash for display with the
+:command:`ctest_submit(CDASH_UPLOAD)` command.
+
+.. command:: ctest_coverage_collect_gcov
+
+ ::
+
+ ctest_coverage_collect_gcov(TARBALL <tarfile>
+ [SOURCE <source_dir>][BUILD <build_dir>]
+ [GCOV_COMMAND <gcov_command>]
+ [GCOV_OPTIONS <options>...]
+ )
+
+ Run gcov and package a tar file for CDash. The options are:
+
+ ``TARBALL <tarfile>``
+ Specify the location of the ``.tar`` file to be created for later
+ upload to CDash. Relative paths will be interpreted with respect
+ to the top-level build directory.
+
+ ``TARBALL_COMPRESSION <option>`` Specify a compression algorithm for the
+ ``TARBALL`` data file. Using this option reduces the size of the data file
+ before it is submitted to CDash. ``<option>`` must be one of ``GZIP``,
+ ``BZIP2``, ``XZ``, ``ZSTD``, ``FROM_EXT``, or an expression that CMake
+ evaluates as ``FALSE``. The default value is ``BZIP2``.
+
+ If ``FROM_EXT`` is specified, the resulting file will be compressed based on
+ the file extension of the ``<tarfile>`` (i.e. ``.tar.gz`` will use ``GZIP``
+ compression). File extensions that will produce compressed output include
+ ``.tar.gz``, ``.tgz``, ``.tar.bzip2``, ``.tbz``, ``.tar.xz``, and ``.txz``.
+
+ ``SOURCE <source_dir>``
+ Specify the top-level source directory for the build.
+ Default is the value of :variable:`CTEST_SOURCE_DIRECTORY`.
+
+ ``BUILD <build_dir>``
+ Specify the top-level build directory for the build.
+ Default is the value of :variable:`CTEST_BINARY_DIRECTORY`.
+
+ ``GCOV_COMMAND <gcov_command>``
+ Specify the full path to the ``gcov`` command on the machine.
+ Default is the value of :variable:`CTEST_COVERAGE_COMMAND`.
+
+ ``GCOV_OPTIONS <options>...``
+ Specify options to be passed to gcov. The ``gcov`` command
+ is run as ``gcov <options>... -o <gcov-dir> <file>.gcda``.
+ If not specified, the default option is just ``-b -x``.
+
+ ``GLOB``
+ Recursively search for .gcda files in build_dir rather than
+ determining search locations by reading TargetDirectories.txt.
+
+ ``DELETE``
+ Delete coverage files after they've been packaged into the .tar.
+
+ ``QUIET``
+ Suppress non-error messages that otherwise would have been
+ printed out by this function.
+#]=======================================================================]
+
+function(ctest_coverage_collect_gcov)
+ set(options QUIET GLOB DELETE)
+ set(oneValueArgs TARBALL SOURCE BUILD GCOV_COMMAND TARBALL_COMPRESSION)
+ set(multiValueArgs GCOV_OPTIONS)
+ cmake_parse_arguments(GCOV "${options}" "${oneValueArgs}"
+ "${multiValueArgs}" "" ${ARGN} )
+ if(NOT DEFINED GCOV_TARBALL)
+ message(FATAL_ERROR
+ "TARBALL must be specified. for ctest_coverage_collect_gcov")
+ endif()
+ if(NOT DEFINED GCOV_SOURCE)
+ set(source_dir "${CTEST_SOURCE_DIRECTORY}")
+ else()
+ set(source_dir "${GCOV_SOURCE}")
+ endif()
+ if(NOT DEFINED GCOV_BUILD)
+ set(binary_dir "${CTEST_BINARY_DIRECTORY}")
+ else()
+ set(binary_dir "${GCOV_BUILD}")
+ endif()
+ if(NOT DEFINED GCOV_GCOV_COMMAND)
+ set(gcov_command "${CTEST_COVERAGE_COMMAND}")
+ else()
+ set(gcov_command "${GCOV_GCOV_COMMAND}")
+ endif()
+ if(NOT DEFINED GCOV_TARBALL_COMPRESSION)
+ set(GCOV_TARBALL_COMPRESSION "BZIP2")
+ elseif( GCOV_TARBALL_COMPRESSION AND
+ NOT GCOV_TARBALL_COMPRESSION MATCHES "^(GZIP|BZIP2|XZ|ZSTD|FROM_EXT)$")
+ message(FATAL_ERROR "TARBALL_COMPRESSION must be one of OFF, GZIP, "
+ "BZIP2, XZ, ZSTD, or FROM_EXT for ctest_coverage_collect_gcov")
+ endif()
+ # run gcov on each gcda file in the binary tree
+ set(gcda_files)
+ set(label_files)
+ if (GCOV_GLOB)
+ file(GLOB_RECURSE gfiles "${binary_dir}/*.gcda")
+ list(LENGTH gfiles len)
+ # if we have gcda files then also grab the labels file for that target
+ if(${len} GREATER 0)
+ file(GLOB_RECURSE lfiles RELATIVE ${binary_dir} "${binary_dir}/Labels.json")
+ list(APPEND gcda_files ${gfiles})
+ list(APPEND label_files ${lfiles})
+ endif()
+ else()
+ # look for gcda files in the target directories
+ # this will be faster and only look where the files will be
+ file(STRINGS "${binary_dir}/CMakeFiles/TargetDirectories.txt" target_dirs
+ ENCODING UTF-8)
+ foreach(target_dir ${target_dirs})
+ file(GLOB_RECURSE gfiles "${target_dir}/*.gcda")
+ list(LENGTH gfiles len)
+ # if we have gcda files then also grab the labels file for that target
+ if(${len} GREATER 0)
+ file(GLOB_RECURSE lfiles RELATIVE ${binary_dir}
+ "${target_dir}/Labels.json")
+ list(APPEND gcda_files ${gfiles})
+ list(APPEND label_files ${lfiles})
+ endif()
+ endforeach()
+ endif()
+ # return early if no coverage files were found
+ list(LENGTH gcda_files len)
+ if(len EQUAL 0)
+ if (NOT GCOV_QUIET)
+ message("ctest_coverage_collect_gcov: No .gcda files found, "
+ "ignoring coverage request.")
+ endif()
+ return()
+ endif()
+ # setup the dir for the coverage files
+ set(coverage_dir "${binary_dir}/Testing/CoverageInfo")
+ file(MAKE_DIRECTORY "${coverage_dir}")
+ # run gcov, this will produce the .gcov files in the current
+ # working directory
+ if(NOT DEFINED GCOV_GCOV_OPTIONS)
+ set(GCOV_GCOV_OPTIONS -b -x)
+ endif()
+ if (GCOV_QUIET)
+ set(coverage_out_opts
+ OUTPUT_QUIET
+ ERROR_QUIET
+ )
+ else()
+ set(coverage_out_opts
+ OUTPUT_FILE "${coverage_dir}/gcov.log"
+ ERROR_FILE "${coverage_dir}/gcov.log"
+ )
+ endif()
+ execute_process(COMMAND
+ ${gcov_command} ${GCOV_GCOV_OPTIONS} ${gcda_files}
+ RESULT_VARIABLE res
+ WORKING_DIRECTORY ${coverage_dir}
+ ${coverage_out_opts}
+ )
+
+ if (GCOV_DELETE)
+ file(REMOVE ${gcda_files})
+ endif()
+
+ if(NOT "${res}" EQUAL 0)
+ if (NOT GCOV_QUIET)
+ message(STATUS "Error running gcov: ${res}, see\n ${coverage_dir}/gcov.log")
+ endif()
+ endif()
+ # create json file with project information
+ file(WRITE ${coverage_dir}/data.json
+ "{
+ \"Source\": \"${source_dir}\",
+ \"Binary\": \"${binary_dir}\"
+}")
+ # collect the gcov files
+ set(unfiltered_gcov_files)
+ file(GLOB_RECURSE unfiltered_gcov_files RELATIVE ${binary_dir} "${coverage_dir}/*.gcov")
+
+ # if CTEST_EXTRA_COVERAGE_GLOB was specified we search for files
+ # that might be uncovered
+ if (DEFINED CTEST_EXTRA_COVERAGE_GLOB)
+ set(uncovered_files)
+ foreach(search_entry IN LISTS CTEST_EXTRA_COVERAGE_GLOB)
+ if(NOT GCOV_QUIET)
+ message("Add coverage glob: ${search_entry}")
+ endif()
+ file(GLOB_RECURSE matching_files "${source_dir}/${search_entry}")
+ if (matching_files)
+ list(APPEND uncovered_files "${matching_files}")
+ endif()
+ endforeach()
+ endif()
+
+ set(gcov_files)
+ foreach(gcov_file ${unfiltered_gcov_files})
+ file(STRINGS ${binary_dir}/${gcov_file} first_line LIMIT_COUNT 1 ENCODING UTF-8)
+
+ set(is_excluded false)
+ if(first_line MATCHES "^ -: 0:Source:(.*)$")
+ set(source_file ${CMAKE_MATCH_1})
+ elseif(NOT GCOV_QUIET)
+ message(STATUS "Could not determine source file corresponding to: ${gcov_file}")
+ endif()
+
+ foreach(exclude_entry IN LISTS CTEST_CUSTOM_COVERAGE_EXCLUDE)
+ if(source_file MATCHES "${exclude_entry}")
+ set(is_excluded true)
+
+ if(NOT GCOV_QUIET)
+ message("Excluding coverage for: ${source_file} which matches ${exclude_entry}")
+ endif()
+
+ break()
+ endif()
+ endforeach()
+
+ get_filename_component(resolved_source_file "${source_file}" ABSOLUTE)
+ foreach(uncovered_file IN LISTS uncovered_files)
+ get_filename_component(resolved_uncovered_file "${uncovered_file}" ABSOLUTE)
+ if (resolved_uncovered_file STREQUAL resolved_source_file)
+ list(REMOVE_ITEM uncovered_files "${uncovered_file}")
+ endif()
+ endforeach()
+
+ if(NOT is_excluded)
+ list(APPEND gcov_files ${gcov_file})
+ endif()
+ endforeach()
+
+ foreach (uncovered_file ${uncovered_files})
+ # Check if this uncovered file should be excluded.
+ set(is_excluded false)
+ foreach(exclude_entry IN LISTS CTEST_CUSTOM_COVERAGE_EXCLUDE)
+ if(uncovered_file MATCHES "${exclude_entry}")
+ set(is_excluded true)
+ if(NOT GCOV_QUIET)
+ message("Excluding coverage for: ${uncovered_file} which matches ${exclude_entry}")
+ endif()
+ break()
+ endif()
+ endforeach()
+ if(is_excluded)
+ continue()
+ endif()
+
+ # Copy from source to binary dir, preserving any intermediate subdirectories.
+ get_filename_component(filename "${uncovered_file}" NAME)
+ get_filename_component(relative_path "${uncovered_file}" DIRECTORY)
+ string(REPLACE "${source_dir}" "" relative_path "${relative_path}")
+ if (relative_path)
+ # Strip leading slash.
+ string(SUBSTRING "${relative_path}" 1 -1 relative_path)
+ endif()
+ file(COPY ${uncovered_file} DESTINATION ${binary_dir}/uncovered/${relative_path})
+ if(relative_path)
+ list(APPEND uncovered_files_for_tar uncovered/${relative_path}/${filename})
+ else()
+ list(APPEND uncovered_files_for_tar uncovered/${filename})
+ endif()
+ endforeach()
+
+ # tar up the coverage info with the same date so that the md5
+ # sum will be the same for the tar file independent of file time
+ # stamps
+ string(REPLACE ";" "\n" gcov_files "${gcov_files}")
+ string(REPLACE ";" "\n" label_files "${label_files}")
+ string(REPLACE ";" "\n" uncovered_files_for_tar "${uncovered_files_for_tar}")
+ file(WRITE "${coverage_dir}/coverage_file_list.txt"
+ "${gcov_files}
+${coverage_dir}/data.json
+${label_files}
+${uncovered_files_for_tar}
+")
+
+ # Prepare tar command line arguments
+
+ set(tar_opts "")
+ # Select data compression mode
+ if( GCOV_TARBALL_COMPRESSION STREQUAL "FROM_EXT")
+ if( GCOV_TARBALL MATCHES [[\.(tgz|tar.gz)$]] )
+ string(APPEND tar_opts "z")
+ elseif( GCOV_TARBALL MATCHES [[\.(txz|tar.xz)$]] )
+ string(APPEND tar_opts "J")
+ elseif( GCOV_TARBALL MATCHES [[\.(tbz|tar.bz)$]] )
+ string(APPEND tar_opts "j")
+ endif()
+ elseif(GCOV_TARBALL_COMPRESSION STREQUAL "GZIP")
+ string(APPEND tar_opts "z")
+ elseif(GCOV_TARBALL_COMPRESSION STREQUAL "XZ")
+ string(APPEND tar_opts "J")
+ elseif(GCOV_TARBALL_COMPRESSION STREQUAL "BZIP2")
+ string(APPEND tar_opts "j")
+ elseif(GCOV_TARBALL_COMPRESSION STREQUAL "ZSTD")
+ set(zstd_tar_opt "--zstd")
+ endif()
+ # Verbosity options
+ if(NOT GCOV_QUIET AND NOT tar_opts MATCHES v)
+ string(APPEND tar_opts "v")
+ endif()
+ # Prepend option 'c' specifying 'create'
+ string(PREPEND tar_opts "c")
+ # Append option 'f' so that the next argument is the filename
+ string(APPEND tar_opts "f")
+
+ execute_process(COMMAND
+ ${CMAKE_COMMAND} -E tar ${tar_opts} ${GCOV_TARBALL} ${zstd_tar_opt}
+ "--mtime=1970-01-01 0:0:0 UTC"
+ "--format=gnutar"
+ --files-from=${coverage_dir}/coverage_file_list.txt
+ WORKING_DIRECTORY ${binary_dir})
+
+ if (GCOV_DELETE)
+ foreach(gcov_file ${unfiltered_gcov_files})
+ file(REMOVE ${binary_dir}/${gcov_file})
+ endforeach()
+ file(REMOVE ${coverage_dir}/coverage_file_list.txt)
+ file(REMOVE ${coverage_dir}/data.json)
+ if (EXISTS ${binary_dir}/uncovered)
+ file(REMOVE ${binary_dir}/uncovered)
+ endif()
+ endif()
+
+endfunction()
diff --git a/share/cmake-3.17/Modules/CTestScriptMode.cmake b/share/cmake-3.18/Modules/CTestScriptMode.cmake
index 7af3577..7af3577 100644
--- a/share/cmake-3.17/Modules/CTestScriptMode.cmake
+++ b/share/cmake-3.18/Modules/CTestScriptMode.cmake
diff --git a/share/cmake-3.17/Modules/CTestTargets.cmake b/share/cmake-3.18/Modules/CTestTargets.cmake
index 838fbbf..838fbbf 100644
--- a/share/cmake-3.17/Modules/CTestTargets.cmake
+++ b/share/cmake-3.18/Modules/CTestTargets.cmake
diff --git a/share/cmake-3.17/Modules/CTestUseLaunchers.cmake b/share/cmake-3.18/Modules/CTestUseLaunchers.cmake
index 3dff926..3dff926 100644
--- a/share/cmake-3.17/Modules/CTestUseLaunchers.cmake
+++ b/share/cmake-3.18/Modules/CTestUseLaunchers.cmake
diff --git a/share/cmake-3.17/Modules/CheckCCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckCCompilerFlag.cmake
index 6d65313..6d65313 100644
--- a/share/cmake-3.17/Modules/CheckCCompilerFlag.cmake
+++ b/share/cmake-3.18/Modules/CheckCCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckCSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckCSourceCompiles.cmake
index 67fc993..67fc993 100644
--- a/share/cmake-3.17/Modules/CheckCSourceCompiles.cmake
+++ b/share/cmake-3.18/Modules/CheckCSourceCompiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckCSourceRuns.cmake b/share/cmake-3.18/Modules/CheckCSourceRuns.cmake
index 7d116db..7d116db 100644
--- a/share/cmake-3.17/Modules/CheckCSourceRuns.cmake
+++ b/share/cmake-3.18/Modules/CheckCSourceRuns.cmake
diff --git a/share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckCXXCompilerFlag.cmake
index 5e07c25..5e07c25 100644
--- a/share/cmake-3.17/Modules/CheckCXXCompilerFlag.cmake
+++ b/share/cmake-3.18/Modules/CheckCXXCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckCXXSourceCompiles.cmake
index c693d32..c693d32 100644
--- a/share/cmake-3.17/Modules/CheckCXXSourceCompiles.cmake
+++ b/share/cmake-3.18/Modules/CheckCXXSourceCompiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake b/share/cmake-3.18/Modules/CheckCXXSourceRuns.cmake
index 408e183..408e183 100644
--- a/share/cmake-3.17/Modules/CheckCXXSourceRuns.cmake
+++ b/share/cmake-3.18/Modules/CheckCXXSourceRuns.cmake
diff --git a/share/cmake-3.17/Modules/CheckCXXSymbolExists.cmake b/share/cmake-3.18/Modules/CheckCXXSymbolExists.cmake
index 5c9079d..5c9079d 100644
--- a/share/cmake-3.17/Modules/CheckCXXSymbolExists.cmake
+++ b/share/cmake-3.18/Modules/CheckCXXSymbolExists.cmake
diff --git a/share/cmake-3.17/Modules/CheckForPthreads.c b/share/cmake-3.18/Modules/CheckForPthreads.c
index e70ceb1..e70ceb1 100644
--- a/share/cmake-3.17/Modules/CheckForPthreads.c
+++ b/share/cmake-3.18/Modules/CheckForPthreads.c
diff --git a/share/cmake-3.17/Modules/CheckFortranCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckFortranCompilerFlag.cmake
index 299cd8c..299cd8c 100644
--- a/share/cmake-3.17/Modules/CheckFortranCompilerFlag.cmake
+++ b/share/cmake-3.18/Modules/CheckFortranCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake b/share/cmake-3.18/Modules/CheckFortranFunctionExists.cmake
index d06203f..d06203f 100644
--- a/share/cmake-3.17/Modules/CheckFortranFunctionExists.cmake
+++ b/share/cmake-3.18/Modules/CheckFortranFunctionExists.cmake
diff --git a/share/cmake-3.18/Modules/CheckFortranSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckFortranSourceCompiles.cmake
new file mode 100644
index 0000000..3354bfb
--- /dev/null
+++ b/share/cmake-3.18/Modules/CheckFortranSourceCompiles.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:
+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()
+ 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 -D${VAR} ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
+ "${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.18/Modules/CheckFortranSourceRuns.cmake b/share/cmake-3.18/Modules/CheckFortranSourceRuns.cmake
new file mode 100644
index 0000000..f858b84
--- /dev/null
+++ b/share/cmake-3.18/Modules/CheckFortranSourceRuns.cmake
@@ -0,0 +1,173 @@
+# 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()
+ 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 -D${VAR} ${CMAKE_REQUIRED_DEFINITIONS}
+ ${CHECK_Fortran_SOURCE_COMPILES_ADD_LINK_OPTIONS}
+ ${CHECK_Fortran_SOURCE_COMPILES_ADD_LIBRARIES}
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
+ -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.17/Modules/CheckFunctionExists.c b/share/cmake-3.18/Modules/CheckFunctionExists.c
index 13435e0..13435e0 100644
--- a/share/cmake-3.17/Modules/CheckFunctionExists.c
+++ b/share/cmake-3.18/Modules/CheckFunctionExists.c
diff --git a/share/cmake-3.17/Modules/CheckFunctionExists.cmake b/share/cmake-3.18/Modules/CheckFunctionExists.cmake
index 136da89..136da89 100644
--- a/share/cmake-3.17/Modules/CheckFunctionExists.cmake
+++ b/share/cmake-3.18/Modules/CheckFunctionExists.cmake
diff --git a/share/cmake-3.18/Modules/CheckIPOSupported.cmake b/share/cmake-3.18/Modules/CheckIPOSupported.cmake
new file mode 100644
index 0000000..90a9f61
--- /dev/null
+++ b/share/cmake-3.18/Modules/CheckIPOSupported.cmake
@@ -0,0 +1,239 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckIPOSupported
+-----------------
+
+Check whether the compiler supports an interprocedural optimization (IPO/LTO).
+Use this before enabling the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target
+property.
+
+.. command:: check_ipo_supported
+
+ ::
+
+ check_ipo_supported([RESULT <result>] [OUTPUT <output>]
+ [LANGUAGES <lang>...])
+
+ Options are:
+
+ ``RESULT <result>``
+ Set ``<result>`` variable to ``YES`` if IPO is supported by the
+ compiler and ``NO`` otherwise. If this option is not given then
+ the command will issue a fatal error if IPO is not supported.
+ ``OUTPUT <output>``
+ Set ``<output>`` variable with details about any error.
+ ``LANGUAGES <lang>...``
+ Specify languages whose compilers to check.
+ Languages ``C``, ``CXX``, and ``Fortran`` are supported.
+
+It makes no sense to use this module when :policy:`CMP0069` is set to ``OLD`` so
+module will return error in this case. See policy :policy:`CMP0069` for details.
+
+Examples
+^^^^^^^^
+
+.. code-block:: cmake
+
+ check_ipo_supported() # fatal error if IPO is not supported
+ set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
+
+.. code-block:: cmake
+
+ # Optional IPO. Do not use IPO if it's not supported by compiler.
+ check_ipo_supported(RESULT result OUTPUT output)
+ if(result)
+ set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
+ else()
+ message(WARNING "IPO is not supported: ${output}")
+ endif()
+
+#]=======================================================================]
+
+# X_RESULT - name of the final result variable
+# X_OUTPUT - name of the variable with information about error
+macro(_ipo_not_supported output)
+ if(NOT X_RESULT)
+ message(FATAL_ERROR "IPO is not supported (${output}).")
+ endif()
+
+ set("${X_RESULT}" NO PARENT_SCOPE)
+ if(X_OUTPUT)
+ set("${X_OUTPUT}" "${output}" PARENT_SCOPE)
+ endif()
+endmacro()
+
+# Run IPO/LTO test
+macro(_ipo_run_language_check language)
+ set(testdir "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/_CMakeLTOTest-${language}")
+
+ file(REMOVE_RECURSE "${testdir}")
+ file(MAKE_DIRECTORY "${testdir}")
+
+ set(bindir "${testdir}/bin")
+ set(srcdir "${testdir}/src")
+
+ file(MAKE_DIRECTORY "${bindir}")
+ file(MAKE_DIRECTORY "${srcdir}")
+
+ set(TRY_COMPILE_PROJECT_NAME "lto-test")
+
+ set(try_compile_src "${CMAKE_ROOT}/Modules/CheckIPOSupported")
+
+ # Use:
+ # * TRY_COMPILE_PROJECT_NAME
+ # * CMAKE_VERSION
+ configure_file(
+ "${try_compile_src}/CMakeLists-${language}.txt.in"
+ "${srcdir}/CMakeLists.txt"
+ @ONLY
+ )
+
+ string(COMPARE EQUAL "${language}" "C" is_c)
+ string(COMPARE EQUAL "${language}" "CXX" is_cxx)
+ string(COMPARE EQUAL "${language}" "Fortran" is_fortran)
+
+ if(is_c)
+ set(copy_sources foo.c main.c)
+ elseif(is_cxx)
+ set(copy_sources foo.cpp main.cpp)
+ elseif(is_fortran)
+ set(copy_sources foo.f main.f)
+ else()
+ message(FATAL_ERROR "Language not supported")
+ endif()
+
+ foreach(x ${copy_sources})
+ configure_file(
+ "${try_compile_src}/${x}"
+ "${srcdir}/${x}"
+ COPYONLY
+ )
+ endforeach()
+
+ try_compile(
+ _IPO_LANGUAGE_CHECK_RESULT
+ "${bindir}"
+ "${srcdir}"
+ "${TRY_COMPILE_PROJECT_NAME}"
+ CMAKE_FLAGS
+ "-DCMAKE_VERBOSE_MAKEFILE=ON"
+ "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
+ OUTPUT_VARIABLE output
+ )
+ set(_IPO_LANGUAGE_CHECK_RESULT "${_IPO_LANGUAGE_CHECK_RESULT}")
+ unset(_IPO_LANGUAGE_CHECK_RESULT CACHE)
+
+ if(NOT _IPO_LANGUAGE_CHECK_RESULT)
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "${language} compiler IPO check failed with the following output:\n"
+ "${output}\n")
+ _ipo_not_supported("check failed to compile")
+ if(X_OUTPUT)
+ set("${X_OUTPUT}" "${output}" PARENT_SCOPE)
+ endif()
+ return()
+ endif()
+endmacro()
+
+function(check_ipo_supported)
+ cmake_policy(GET CMP0069 x)
+
+ string(COMPARE EQUAL "${x}" "" not_set)
+ if(not_set)
+ message(FATAL_ERROR "Policy CMP0069 is not set")
+ endif()
+
+ string(COMPARE EQUAL "${x}" "OLD" is_old)
+ if(is_old)
+ message(FATAL_ERROR "Policy CMP0069 set to OLD")
+ endif()
+
+ set(optional)
+ set(one RESULT OUTPUT)
+ set(multiple LANGUAGES)
+
+ # Introduce:
+ # * X_RESULT
+ # * X_OUTPUT
+ # * X_LANGUAGES
+ cmake_parse_arguments(X "${optional}" "${one}" "${multiple}" "${ARGV}")
+
+ string(COMPARE NOTEQUAL "${X_UNPARSED_ARGUMENTS}" "" has_unparsed)
+ if(has_unparsed)
+ message(FATAL_ERROR "Unparsed arguments: ${X_UNPARSED_ARGUMENTS}")
+ endif()
+
+ string(COMPARE EQUAL "${X_LANGUAGES}" "" no_languages)
+ if(no_languages)
+ # User did not set any languages, use defaults
+ get_property(enabled_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
+ string(COMPARE EQUAL "${enabled_languages}" "" no_languages)
+ if(no_languages)
+ _ipo_not_supported(
+ "no languages found in ENABLED_LANGUAGES global property"
+ )
+ return()
+ endif()
+
+ set(languages "")
+ list(FIND enabled_languages "CXX" result)
+ if(NOT result EQUAL -1)
+ list(APPEND languages "CXX")
+ endif()
+
+ list(FIND enabled_languages "C" result)
+ if(NOT result EQUAL -1)
+ list(APPEND languages "C")
+ endif()
+
+ list(FIND enabled_languages "Fortran" result)
+ if(NOT result EQUAL -1)
+ list(APPEND languages "Fortran")
+ endif()
+
+ string(COMPARE EQUAL "${languages}" "" no_languages)
+ if(no_languages)
+ _ipo_not_supported(
+ "no C/CXX/Fortran languages found in ENABLED_LANGUAGES global property"
+ )
+ return()
+ endif()
+ else()
+ set(languages "${X_LANGUAGES}")
+
+ set(unsupported_languages "${languages}")
+ list(REMOVE_ITEM unsupported_languages "C" "CXX" "Fortran")
+ string(COMPARE NOTEQUAL "${unsupported_languages}" "" has_unsupported)
+ if(has_unsupported)
+ _ipo_not_supported(
+ "language(s) '${unsupported_languages}' not supported"
+ )
+ return()
+ endif()
+ endif()
+
+ foreach(lang ${languages})
+ if(NOT _CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE)
+ _ipo_not_supported("CMake doesn't support IPO for current ${lang} compiler")
+ return()
+ endif()
+
+ if(NOT _CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER)
+ _ipo_not_supported("${lang} compiler doesn't support IPO")
+ return()
+ endif()
+ endforeach()
+
+ if(CMAKE_GENERATOR MATCHES "^Visual Studio 9 ")
+ _ipo_not_supported("CMake doesn't support IPO for current generator")
+ return()
+ endif()
+
+ foreach(x ${languages})
+ _ipo_run_language_check(${x})
+ endforeach()
+
+ set("${X_RESULT}" YES PARENT_SCOPE)
+endfunction()
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-C.txt.in b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-C.txt.in
index 5a3b8ee..5a3b8ee 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-C.txt.in
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-C.txt.in
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
index 30993fa..30993fa 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
index 9fab077..9fab077 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/CMakeLists-Fortran.txt.in
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/foo.c b/share/cmake-3.18/Modules/CheckIPOSupported/foo.c
index 1e56597..1e56597 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/foo.c
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/foo.c
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/foo.cpp b/share/cmake-3.18/Modules/CheckIPOSupported/foo.cpp
index 1e56597..1e56597 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/foo.cpp
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/foo.cpp
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/foo.f b/share/cmake-3.18/Modules/CheckIPOSupported/foo.f
index 945d2d5..945d2d5 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/foo.f
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/foo.f
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/main.c b/share/cmake-3.18/Modules/CheckIPOSupported/main.c
index 5be0864..5be0864 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/main.c
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/main.c
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/main.cpp b/share/cmake-3.18/Modules/CheckIPOSupported/main.cpp
index 5be0864..5be0864 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/main.cpp
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/main.cpp
diff --git a/share/cmake-3.17/Modules/CheckIPOSupported/main.f b/share/cmake-3.18/Modules/CheckIPOSupported/main.f
index 9d1de9f..9d1de9f 100644
--- a/share/cmake-3.17/Modules/CheckIPOSupported/main.f
+++ b/share/cmake-3.18/Modules/CheckIPOSupported/main.f
diff --git a/share/cmake-3.17/Modules/CheckIncludeFile.c.in b/share/cmake-3.18/Modules/CheckIncludeFile.c.in
index ddfbee8..ddfbee8 100644
--- a/share/cmake-3.17/Modules/CheckIncludeFile.c.in
+++ b/share/cmake-3.18/Modules/CheckIncludeFile.c.in
diff --git a/share/cmake-3.17/Modules/CheckIncludeFile.cmake b/share/cmake-3.18/Modules/CheckIncludeFile.cmake
index 3a10473..3a10473 100644
--- a/share/cmake-3.17/Modules/CheckIncludeFile.cmake
+++ b/share/cmake-3.18/Modules/CheckIncludeFile.cmake
diff --git a/share/cmake-3.17/Modules/CheckIncludeFile.cxx.in b/share/cmake-3.18/Modules/CheckIncludeFile.cxx.in
index 40441f1..40441f1 100644
--- a/share/cmake-3.17/Modules/CheckIncludeFile.cxx.in
+++ b/share/cmake-3.18/Modules/CheckIncludeFile.cxx.in
diff --git a/share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake b/share/cmake-3.18/Modules/CheckIncludeFileCXX.cmake
index 496550f..496550f 100644
--- a/share/cmake-3.17/Modules/CheckIncludeFileCXX.cmake
+++ b/share/cmake-3.18/Modules/CheckIncludeFileCXX.cmake
diff --git a/share/cmake-3.17/Modules/CheckIncludeFiles.cmake b/share/cmake-3.18/Modules/CheckIncludeFiles.cmake
index 8e10cd6..8e10cd6 100644
--- a/share/cmake-3.17/Modules/CheckIncludeFiles.cmake
+++ b/share/cmake-3.18/Modules/CheckIncludeFiles.cmake
diff --git a/share/cmake-3.18/Modules/CheckLanguage.cmake b/share/cmake-3.18/Modules/CheckLanguage.cmake
new file mode 100644
index 0000000..d67d8d3
--- /dev/null
+++ b/share/cmake-3.18/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(_cl_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"
+ "${_cl_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 _cl_output
+ ERROR_VARIABLE _cl_output
+ RESULT_VARIABLE _cl_result
+ )
+ include(${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}/result.cmake OPTIONAL)
+ if(CMAKE_${lang}_COMPILER AND "${_cl_result}" STREQUAL "0")
+ file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "${_desc} passed with the following output:\n"
+ "${_cl_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"
+ "${_cl_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.18/Modules/CheckLibraryExists.cmake
index 6470dfd..6470dfd 100644
--- a/share/cmake-3.17/Modules/CheckLibraryExists.cmake
+++ b/share/cmake-3.18/Modules/CheckLibraryExists.cmake
diff --git a/share/cmake-3.17/Modules/CheckLibraryExists.lists.in b/share/cmake-3.18/Modules/CheckLibraryExists.lists.in
index 741b87d..741b87d 100644
--- a/share/cmake-3.17/Modules/CheckLibraryExists.lists.in
+++ b/share/cmake-3.18/Modules/CheckLibraryExists.lists.in
diff --git a/share/cmake-3.18/Modules/CheckLinkerFlag.cmake b/share/cmake-3.18/Modules/CheckLinkerFlag.cmake
new file mode 100644
index 0000000..beda5fe
--- /dev/null
+++ b/share/cmake-3.18/Modules/CheckLinkerFlag.cmake
@@ -0,0 +1,81 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+CheckLinkerFlag
+---------------
+
+Check whether the compiler supports a given link flag.
+
+.. command:: check_linker_flag
+
+ .. code-block:: cmake
+
+ check_linker_flag(<lang> <flag> <var>)
+
+Check that the link ``<flag>`` is accepted by the ``<lang>`` compiler without
+a diagnostic. Stores the result in an internal cache entry named ``<var>``.
+
+This command temporarily sets the ``CMAKE_REQUIRED_LINK_OPTIONS`` variable
+and calls the ``check_<lang>_source_compiles`` macro from the
+``Check<lang>SourceCompiles`` module (:module:`CheckCSourceCompiles`,
+:module:`CheckCSourceCompiles`, :module:`CheckCXXSourceCompiles`,
+:module:`CheckOBJCSourceCompiles`, :module:`CheckOBJCXXSourceCompiles` or
+:module:`CheckFortranSourceCompiles`). See documentation of these
+modules for a listing of variables that can otherwise modify the build.
+
+The underlying implementation rely on :prop_tgt:`LINK_OPTIONS` property to
+check the specified flag. The ``LINKER:`` prefix, as described in
+:command:`target_link_options` command, can be used as well.
+
+A positive result from this check indicates only that the compiler did not
+issue a diagnostic message when given the link 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_<LANG>_FLAGS`, unknown flags in such variables may
+ cause a false negative for this check.
+#]=======================================================================]
+
+include_guard(GLOBAL)
+
+include(CMakeCheckCompilerFlagCommonPatterns)
+
+function(CHECK_LINKER_FLAG _lang _flag _var)
+ get_property (_supported_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
+ if (NOT _lang IN_LIST _supported_languages)
+ message (SEND_ERROR "check_linker_flag: ${_lang}: unknown language.")
+ return()
+ endif()
+
+ include (Check${_lang}SourceCompiles)
+
+ set(CMAKE_REQUIRED_LINK_OPTIONS "${_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()
+
+ if (_lang MATCHES "^(C|CXX)$")
+ set (_source "int main() { return 0; }")
+ elseif (_lang STREQUAL "Fortran")
+ set (_source " program test\n stop\n end program")
+ elseif (_lang MATCHES "^(OBJC|OBJCXX)$")
+ set (_source "#ifndef __OBJC__\n# error \"Not an Objective-C++ compiler\"\n#endif\nint main(void) { return 0; }")
+ else()
+ message (SEND_ERROR "check_linker_flag: ${_lang}: unsupported language.")
+ return()
+ endif()
+ check_compiler_flag_common_patterns(_common_patterns)
+
+ cmake_language (CALL check_${_lang}_source_compiles "${_source}" ${_var} ${_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/CheckOBJCCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckOBJCCompilerFlag.cmake
index 1d975da..1d975da 100644
--- a/share/cmake-3.17/Modules/CheckOBJCCompilerFlag.cmake
+++ b/share/cmake-3.18/Modules/CheckOBJCCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckOBJCSourceCompiles.cmake
index 601f1fa..601f1fa 100644
--- a/share/cmake-3.17/Modules/CheckOBJCSourceCompiles.cmake
+++ b/share/cmake-3.18/Modules/CheckOBJCSourceCompiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake b/share/cmake-3.18/Modules/CheckOBJCSourceRuns.cmake
index 6684693..6684693 100644
--- a/share/cmake-3.17/Modules/CheckOBJCSourceRuns.cmake
+++ b/share/cmake-3.18/Modules/CheckOBJCSourceRuns.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCXXCompilerFlag.cmake b/share/cmake-3.18/Modules/CheckOBJCXXCompilerFlag.cmake
index c32741b..c32741b 100644
--- a/share/cmake-3.17/Modules/CheckOBJCXXCompilerFlag.cmake
+++ b/share/cmake-3.18/Modules/CheckOBJCXXCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake b/share/cmake-3.18/Modules/CheckOBJCXXSourceCompiles.cmake
index 2ee79f4..2ee79f4 100644
--- a/share/cmake-3.17/Modules/CheckOBJCXXSourceCompiles.cmake
+++ b/share/cmake-3.18/Modules/CheckOBJCXXSourceCompiles.cmake
diff --git a/share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake b/share/cmake-3.18/Modules/CheckOBJCXXSourceRuns.cmake
index 7f7e04f..7f7e04f 100644
--- a/share/cmake-3.17/Modules/CheckOBJCXXSourceRuns.cmake
+++ b/share/cmake-3.18/Modules/CheckOBJCXXSourceRuns.cmake
diff --git a/share/cmake-3.17/Modules/CheckPIESupported.cmake b/share/cmake-3.18/Modules/CheckPIESupported.cmake
index 6d63f0b..6d63f0b 100644
--- a/share/cmake-3.17/Modules/CheckPIESupported.cmake
+++ b/share/cmake-3.18/Modules/CheckPIESupported.cmake
diff --git a/share/cmake-3.17/Modules/CheckPrototypeDefinition.c.in b/share/cmake-3.18/Modules/CheckPrototypeDefinition.c.in
index a97344a..a97344a 100644
--- a/share/cmake-3.17/Modules/CheckPrototypeDefinition.c.in
+++ b/share/cmake-3.18/Modules/CheckPrototypeDefinition.c.in
diff --git a/share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake b/share/cmake-3.18/Modules/CheckPrototypeDefinition.cmake
index 8b06403..8b06403 100644
--- a/share/cmake-3.17/Modules/CheckPrototypeDefinition.cmake
+++ b/share/cmake-3.18/Modules/CheckPrototypeDefinition.cmake
diff --git a/share/cmake-3.17/Modules/CheckSizeOf.cmake b/share/cmake-3.18/Modules/CheckSizeOf.cmake
index bd439e1..bd439e1 100644
--- a/share/cmake-3.17/Modules/CheckSizeOf.cmake
+++ b/share/cmake-3.18/Modules/CheckSizeOf.cmake
diff --git a/share/cmake-3.17/Modules/CheckStructHasMember.cmake b/share/cmake-3.18/Modules/CheckStructHasMember.cmake
index 842a8fd..842a8fd 100644
--- a/share/cmake-3.17/Modules/CheckStructHasMember.cmake
+++ b/share/cmake-3.18/Modules/CheckStructHasMember.cmake
diff --git a/share/cmake-3.17/Modules/CheckSymbolExists.cmake b/share/cmake-3.18/Modules/CheckSymbolExists.cmake
index 4f202c4..4f202c4 100644
--- a/share/cmake-3.17/Modules/CheckSymbolExists.cmake
+++ b/share/cmake-3.18/Modules/CheckSymbolExists.cmake
diff --git a/share/cmake-3.18/Modules/CheckTypeSize.c.in b/share/cmake-3.18/Modules/CheckTypeSize.c.in
new file mode 100644
index 0000000..fb93073
--- /dev/null
+++ b/share/cmake-3.18/Modules/CheckTypeSize.c.in
@@ -0,0 +1,47 @@
+@headers@
+
+#undef KEY
+#if defined(__i386)
+# define KEY '_','_','i','3','8','6'
+#elif defined(__x86_64)
+# define KEY '_','_','x','8','6','_','6','4'
+#elif defined(__PPC64__)
+# define KEY '_','_','P','P','C','6','4','_','_'
+#elif defined(__ppc64__)
+# define KEY '_','_','p','p','c','6','4','_','_'
+#elif defined(__PPC__)
+# define KEY '_','_','P','P','C','_','_'
+#elif defined(__ppc__)
+# define KEY '_','_','p','p','c','_','_'
+#elif defined(__aarch64__)
+# define KEY '_','_','a','a','r','c','h','6','4','_','_'
+#elif defined(__ARM_ARCH_7A__)
+# define KEY '_','_','A','R','M','_','A','R','C','H','_','7','A','_','_'
+#elif defined(__ARM_ARCH_7S__)
+# define KEY '_','_','A','R','M','_','A','R','C','H','_','7','S','_','_'
+#endif
+
+#define SIZE (sizeof(@type@))
+static char info_size[] = {'I', 'N', 'F', 'O', ':', 's','i','z','e','[',
+ ('0' + ((SIZE / 10000)%10)),
+ ('0' + ((SIZE / 1000)%10)),
+ ('0' + ((SIZE / 100)%10)),
+ ('0' + ((SIZE / 10)%10)),
+ ('0' + (SIZE % 10)),
+ ']',
+#ifdef KEY
+ ' ','k','e','y','[', KEY, ']',
+#endif
+ '\0'};
+
+#ifdef __CLASSIC_C__
+int main(argc, argv) int argc; char *argv[];
+#else
+int main(int argc, char *argv[])
+#endif
+{
+ int require = 0;
+ require += info_size[argc];
+ (void)argv;
+ return require;
+}
diff --git a/share/cmake-3.17/Modules/CheckTypeSize.cmake b/share/cmake-3.18/Modules/CheckTypeSize.cmake
index 2b07b7c..2b07b7c 100644
--- a/share/cmake-3.17/Modules/CheckTypeSize.cmake
+++ b/share/cmake-3.18/Modules/CheckTypeSize.cmake
diff --git a/share/cmake-3.17/Modules/CheckTypeSizeMap.cmake.in b/share/cmake-3.18/Modules/CheckTypeSizeMap.cmake.in
index 1e73cff..1e73cff 100644
--- a/share/cmake-3.17/Modules/CheckTypeSizeMap.cmake.in
+++ b/share/cmake-3.18/Modules/CheckTypeSizeMap.cmake.in
diff --git a/share/cmake-3.17/Modules/CheckVariableExists.c b/share/cmake-3.18/Modules/CheckVariableExists.c
index d68afb4..d68afb4 100644
--- a/share/cmake-3.17/Modules/CheckVariableExists.c
+++ b/share/cmake-3.18/Modules/CheckVariableExists.c
diff --git a/share/cmake-3.17/Modules/CheckVariableExists.cmake b/share/cmake-3.18/Modules/CheckVariableExists.cmake
index 8a93535..8a93535 100644
--- a/share/cmake-3.17/Modules/CheckVariableExists.cmake
+++ b/share/cmake-3.18/Modules/CheckVariableExists.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ADSP-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/ADSP-DetermineCompiler.cmake
index 0340f69..0340f69 100644
--- a/share/cmake-3.17/Modules/Compiler/ADSP-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ADSP-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC-ASM.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC-ASM.cmake
index 5819fc7..5819fc7 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMCC-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMCC-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC-C.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC-C.cmake
index dcdcaab..dcdcaab 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMCC-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC-CXX.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC-CXX.cmake
index 811fc93..811fc93 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMCC-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMCC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC-DetermineCompiler.cmake
index 5f2d0f8..5f2d0f8 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMCC-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMCC-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMCC.cmake b/share/cmake-3.18/Modules/Compiler/ARMCC.cmake
index f949568..f949568 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMCC.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMCC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-ASM.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-ASM.cmake
index ceff3e8..ceff3e8 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMClang-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMClang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-C-FeatureTests.cmake
index ef79229..ef79229 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMClang-C-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMClang-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-C.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-C.cmake
index 0a64a8a..0a64a8a 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMClang-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
index e038e80..e038e80 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMClang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-CXX.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-CXX.cmake
index 5dfb401..5dfb401 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMClang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/ARMClang-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang-DetermineCompiler.cmake
index eb0de53..eb0de53 100644
--- a/share/cmake-3.17/Modules/Compiler/ARMClang-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/ARMClang-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/ARMClang.cmake b/share/cmake-3.18/Modules/Compiler/ARMClang.cmake
new file mode 100644
index 0000000..01ce91d
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/ARMClang.cmake
@@ -0,0 +1,130 @@
+if(_ARMClang_CMAKE_LOADED)
+ return()
+endif()
+set(_ARMClang_CMAKE_LOADED TRUE)
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+get_filename_component(_CMAKE_C_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
+get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
+
+set(CMAKE_EXECUTABLE_SUFFIX ".elf")
+
+find_program(CMAKE_ARMClang_LINKER armlink HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" )
+find_program(CMAKE_ARMClang_AR armar HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" )
+
+set(CMAKE_LINKER "${CMAKE_ARMClang_LINKER}" CACHE FILEPATH "The ARMClang linker" FORCE)
+mark_as_advanced(CMAKE_ARMClang_LINKER)
+set(CMAKE_AR "${CMAKE_ARMClang_AR}" CACHE FILEPATH "The ARMClang archiver" FORCE)
+mark_as_advanced(CMAKE_ARMClang_AR)
+
+if (CMAKE_LINKER MATCHES "armlink")
+ set(__CMAKE_ARMClang_USING_armlink TRUE)
+ set(CMAKE_LIBRARY_PATH_FLAG "--userlibpath=")
+else()
+ set(__CMAKE_ARMClang_USING_armlink FALSE)
+endif()
+
+# get compiler supported cpu list
+function(__armclang_set_processor_list lang out_var)
+ execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" --target=${CMAKE_${lang}_COMPILER_TARGET} -mcpu=list
+ OUTPUT_VARIABLE processor_list
+ ERROR_VARIABLE processor_list)
+ string(REGEX MATCHALL "-mcpu=([^ \n]*)" processor_list "${processor_list}")
+ string(REGEX REPLACE "-mcpu=" "" processor_list "${processor_list}")
+ set(${out_var} "${processor_list}" PARENT_SCOPE)
+endfunction()
+
+# check processor is in list
+function(__armclang_check_processor processor list out_var)
+ string(TOLOWER "${processor}" processor)
+ if(processor IN_LIST list)
+ set(${out_var} TRUE PARENT_SCOPE)
+ else()
+ set(${out_var} FALSE PARENT_SCOPE)
+ endif()
+endfunction()
+
+# get compiler supported arch list
+function(__armclang_set_arch_list lang out_var)
+ execute_process(COMMAND "${CMAKE_${lang}_COMPILER}" --target=${CMAKE_${lang}_COMPILER_TARGET} -march=list
+ OUTPUT_VARIABLE arch_list
+ ERROR_VARIABLE arch_list)
+ string(REGEX MATCHALL "-march=([^ \n]*)" arch_list "${arch_list}")
+ string(REGEX REPLACE "-march=" "" arch_list "${arch_list}")
+ set(${out_var} "${arch_list}" PARENT_SCOPE)
+endfunction()
+
+# get linker supported cpu list
+function(__armlink_set_cpu_list lang out_var)
+ if(__CMAKE_ARMClang_USING_armlink)
+ set(__linker_wrapper_flags "")
+ else()
+ set(__linker_wrapper_flags --target=${CMAKE_${lang}_COMPILER_TARGET} -Xlinker)
+ endif()
+
+ execute_process(COMMAND "${CMAKE_LINKER}" ${__linker_wrapper_flags} --cpu=list
+ OUTPUT_VARIABLE cpu_list
+ ERROR_VARIABLE cpu_list)
+ string(REGEX MATCHALL "--cpu=([^ \n]*)" cpu_list "${cpu_list}")
+ string(REGEX REPLACE "--cpu=" "" cpu_list "${cpu_list}")
+ set(${out_var} "${cpu_list}" PARENT_SCOPE)
+endfunction()
+
+macro(__compiler_armclang lang)
+ if(NOT CMAKE_${lang}_COMPILER_TARGET)
+ set(CMAKE_${lang}_COMPILER_TARGET arm-arm-none-eabi)
+ endif()
+ if(NOT CMAKE_${lang}_COMPILER_PROCESSOR_LIST)
+ __armclang_set_processor_list(${lang} CMAKE_${lang}_COMPILER_PROCESSOR_LIST)
+ endif()
+ if(NOT CMAKE_${lang}_COMPILER_ARCH_LIST)
+ __armclang_set_arch_list(${lang} CMAKE_${lang}_COMPILER_ARCH_LIST)
+ endif()
+ if(NOT CMAKE_SYSTEM_PROCESSOR AND NOT CMAKE_SYSTEM_ARCH)
+ message(FATAL_ERROR " CMAKE_SYSTEM_PROCESSOR or CMAKE_SYSTEM_ARCH must be set for ARMClang\n"
+ " Supported processor: ${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}\n"
+ " Supported Architecture: ${CMAKE_${lang}_COMPILER_ARCH_LIST}")
+ else()
+ __armclang_check_processor("${CMAKE_SYSTEM_ARCH}" "${CMAKE_${lang}_COMPILER_ARCH_LIST}" _CMAKE_${lang}_CHECK_ARCH_RESULT)
+ if( _CMAKE_${lang}_CHECK_ARCH_RESULT)
+ string(APPEND CMAKE_${lang}_FLAGS_INIT "-march=${CMAKE_SYSTEM_ARCH}")
+ set(__march_flag_set TRUE)
+ endif()
+ __armclang_check_processor("${CMAKE_SYSTEM_PROCESSOR}" "${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}" _CMAKE_${lang}_CHECK_PROCESSOR_RESULT)
+ if(_CMAKE_${lang}_CHECK_PROCESSOR_RESULT)
+ string(APPEND CMAKE_${lang}_FLAGS_INIT "-mcpu=${CMAKE_SYSTEM_PROCESSOR}")
+ set(__mcpu_flag_set TRUE)
+ endif()
+ if(NOT __march_flag_set AND NOT __mcpu_flag_set)
+ message(FATAL_ERROR "Atleast one of the variables CMAKE_SYSTEM_PROCESSOR or CMAKE_SYSTEM_ARCH must be set for ARMClang\n"
+ "Supported processor: ${CMAKE_${lang}_COMPILER_PROCESSOR_LIST}\n"
+ " Supported Architecture: ${CMAKE_${lang}_COMPILER_ARCH_LIST}")
+ endif()
+ unset(_CMAKE_${lang}_CHECK_PROCESSOR_RESULT)
+ unset(_CMAKE_${lang}_CHECK_ARCH_RESULT)
+ endif()
+
+ #check if CMAKE_SYSTEM_PROCESSOR belongs to supported cpu list for armlink
+ __armlink_set_cpu_list( ${lang} CMAKE_LINKER_CPU_LIST)
+ list(TRANSFORM CMAKE_LINKER_CPU_LIST TOLOWER)
+ __armclang_check_processor("${CMAKE_SYSTEM_PROCESSOR}" "${CMAKE_LINKER_CPU_LIST}" _CMAKE_CHECK_LINK_CPU_RESULT)
+ if(_CMAKE_CHECK_LINK_CPU_RESULT)
+ string(APPEND CMAKE_${lang}_LINK_FLAGS "--cpu=${CMAKE_SYSTEM_PROCESSOR}")
+ endif()
+
+ if(__CMAKE_ARMClang_USING_armlink)
+ set(__CMAKE_ARMClang_USING_armlink_WRAPPER "")
+ else()
+ set(__CMAKE_ARMClang_USING_armlink_WRAPPER ${CMAKE_${lang}_LINKER_WRAPPER_FLAG})
+ endif()
+ set(CMAKE_${lang}_LINK_EXECUTABLE "<CMAKE_LINKER> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS> -o <TARGET> ${__CMAKE_ARMClang_USING_armlink_WRAPPER} --list <TARGET_BASE>.map")
+ set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "<CMAKE_AR> --create -cr <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_CREATE "<CMAKE_AR> --create -cr <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "${__CMAKE_ARMClang_USING_armlink_WRAPPER} --via=")
+ set(CMAKE_${lang}_OUTPUT_EXTENSION ".o")
+ set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1)
+endmacro()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.18/Modules/Compiler/Absoft-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/Absoft-Fortran.cmake
new file mode 100644
index 0000000..8724f85
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Absoft-Fortran.cmake
@@ -0,0 +1,13 @@
+string(APPEND CMAKE_Fortran_FLAGS_INIT " ")
+string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -g")
+string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " ")
+string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3")
+string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
+set(CMAKE_Fortran_MODDIR_FLAG "-YMOD_OUT_DIR=")
+set(CMAKE_Fortran_MODPATH_FLAG "-p")
+set(CMAKE_Fortran_VERBOSE_FLAG "-v")
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree")
+set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-X")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-no-cpp")
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-ASM.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-ASM.cmake
index f52bde0..f52bde0 100644
--- a/share/cmake-3.17/Modules/Compiler/AppleClang-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/AppleClang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-C-FeatureTests.cmake
index e80b526..e80b526 100644
--- a/share/cmake-3.17/Modules/Compiler/AppleClang-C-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/AppleClang-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-C.cmake
index 2794f52..2794f52 100644
--- a/share/cmake-3.17/Modules/Compiler/AppleClang-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/AppleClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
index f67082c..f67082c 100644
--- a/share/cmake-3.17/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-CXX.cmake
index 15edc21..15edc21 100644
--- a/share/cmake-3.17/Modules/Compiler/AppleClang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/AppleClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-DetermineCompiler.cmake
index 83817f7..83817f7 100644
--- a/share/cmake-3.17/Modules/Compiler/AppleClang-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/AppleClang-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-OBJC.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-OBJC.cmake
index d1f3706..d1f3706 100644
--- a/share/cmake-3.17/Modules/Compiler/AppleClang-OBJC.cmake
+++ b/share/cmake-3.18/Modules/Compiler/AppleClang-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake b/share/cmake-3.18/Modules/Compiler/AppleClang-OBJCXX.cmake
index 409bd4a..409bd4a 100644
--- a/share/cmake-3.17/Modules/Compiler/AppleClang-OBJCXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/AppleClang-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Borland-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Borland-DetermineCompiler.cmake
index ef3083b..ef3083b 100644
--- a/share/cmake-3.17/Modules/Compiler/Borland-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Borland-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Bruce-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
index bb9f4b9..bb9f4b9 100644
--- a/share/cmake-3.17/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Bruce-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Bruce-C.cmake b/share/cmake-3.18/Modules/Compiler/Bruce-C.cmake
index 6b64e58..6b64e58 100644
--- a/share/cmake-3.17/Modules/Compiler/Bruce-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Bruce-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CCur-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/CCur-Fortran.cmake
index 6ec06ae..6ec06ae 100644
--- a/share/cmake-3.17/Modules/Compiler/CCur-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/CCur-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake b/share/cmake-3.18/Modules/Compiler/CMakeCommonCompilerMacros.cmake
index 409b65a..409b65a 100644
--- a/share/cmake-3.17/Modules/Compiler/CMakeCommonCompilerMacros.cmake
+++ b/share/cmake-3.18/Modules/Compiler/CMakeCommonCompilerMacros.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-ASM.cmake b/share/cmake-3.18/Modules/Compiler/Clang-ASM.cmake
index 16c9c15..16c9c15 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/Clang-C-FeatureTests.cmake
index 99c2252..99c2252 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-C-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-C.cmake b/share/cmake-3.18/Modules/Compiler/Clang-C.cmake
index 7c4a263..7c4a263 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-C.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Clang-CUDA.cmake b/share/cmake-3.18/Modules/Compiler/Clang-CUDA.cmake
new file mode 100644
index 0000000..336827b
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Clang-CUDA.cmake
@@ -0,0 +1,28 @@
+include(Compiler/Clang)
+__compiler_clang(CUDA)
+
+# Set explicitly, because __compiler_clang() doesn't set this if we're simulating MSVC.
+set(CMAKE_DEPFILE_FLAGS_CUDA "-MD -MT <OBJECT> -MF <DEPFILE>")
+
+# C++03 isn't supported for CXX, but is for CUDA, so we need to set these manually.
+# Do this before __compiler_clang_cxx_standards() since that adds the feature.
+set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "-std=c++03")
+set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "-std=gnu++03")
+__compiler_clang_cxx_standards(CUDA)
+
+set(CMAKE_CUDA_COMPILER_HAS_DEVICE_LINK_PHASE TRUE)
+set(_CMAKE_COMPILE_AS_CUDA_FLAG "-x cuda")
+set(_CMAKE_CUDA_PTX_FLAG "--cuda-device-only -S")
+
+# RulePlaceholderExpander expands crosscompile variables like sysroot and target only for CMAKE_<LANG>_COMPILER. Override the default.
+set(CMAKE_CUDA_LINK_EXECUTABLE "<CMAKE_CUDA_COMPILER> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
+set(CMAKE_CUDA_CREATE_SHARED_LIBRARY "<CMAKE_CUDA_COMPILER> <CMAKE_SHARED_LIBRARY_CUDA_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
+
+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(UNIX)
+ list(APPEND CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "rt" "pthread" "dl")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/Clang-CXX-FeatureTests.cmake
index cd04190..cd04190 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-CXX-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-CXX-TestableFeatures.cmake b/share/cmake-3.18/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
index 69965a6..69965a6 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Clang-CXX.cmake b/share/cmake-3.18/Modules/Compiler/Clang-CXX.cmake
new file mode 100644
index 0000000..789e991
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Clang-CXX.cmake
@@ -0,0 +1,16 @@
+include(Compiler/Clang)
+__compiler_clang(CXX)
+__compiler_clang_cxx_standards(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()
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Clang-DetermineCompiler.cmake
index 89df1b6..89df1b6 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompilerInternal.cmake b/share/cmake-3.18/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
index 08c1230..08c1230 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-DetermineCompilerInternal.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-FindBinUtils.cmake b/share/cmake-3.18/Modules/Compiler/Clang-FindBinUtils.cmake
index b852660..b852660 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-FindBinUtils.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-FindBinUtils.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Clang-OBJC.cmake b/share/cmake-3.18/Modules/Compiler/Clang-OBJC.cmake
index c61c497..c61c497 100644
--- a/share/cmake-3.17/Modules/Compiler/Clang-OBJC.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Clang-OBJC.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Clang-OBJCXX.cmake b/share/cmake-3.18/Modules/Compiler/Clang-OBJCXX.cmake
new file mode 100644
index 0000000..453b5fd
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Clang-OBJCXX.cmake
@@ -0,0 +1,3 @@
+include(Compiler/Clang)
+__compiler_clang(OBJCXX)
+__compiler_clang_cxx_standards(OBJCXX)
diff --git a/share/cmake-3.18/Modules/Compiler/Clang.cmake b/share/cmake-3.18/Modules/Compiler/Clang.cmake
new file mode 100644
index 0000000..52d5350
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Clang.cmake
@@ -0,0 +1,234 @@
+# 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()
+
+macro(__compiler_clang_cxx_standards lang)
+ if("x${CMAKE_${lang}_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 2.1)
+ set(CMAKE_${lang}98_STANDARD_COMPILE_OPTION "-std=c++98")
+ set(CMAKE_${lang}98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
+ endif()
+
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.1)
+ set(CMAKE_${lang}98_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "-std=c++11")
+ set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
+ set(CMAKE_${lang}11_STANDARD__HAS_FULL_SUPPORT ON)
+ elseif(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 2.1)
+ set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "-std=c++0x")
+ set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
+ endif()
+
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.5)
+ set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+ set(CMAKE_${lang}14_STANDARD__HAS_FULL_SUPPORT ON)
+ elseif(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4)
+ set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "-std=c++1y")
+ set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
+ set(CMAKE_${lang}14_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_${lang}_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
+ set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std=c++17")
+ set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
+ elseif (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.5)
+ set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std=c++1z")
+ set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
+ endif()
+
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 6.0)
+ set(CMAKE_${lang}17_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 11.0)
+ set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++20")
+ set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=gnu++20")
+ elseif(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS "${_clang_version_std17}")
+ set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++2a")
+ set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=gnu++2a")
+ endif()
+
+ unset(_clang_version_std17)
+
+ if("x${CMAKE_${lang}_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_${lang}98_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_${lang}98_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+ set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "-std=c++14")
+ set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+
+ # This clang++ is missing some features because of MSVC compatibility.
+ unset(CMAKE_${lang}11_STANDARD__HAS_FULL_SUPPORT)
+ unset(CMAKE_${lang}14_STANDARD__HAS_FULL_SUPPORT)
+ unset(CMAKE_${lang}17_STANDARD__HAS_FULL_SUPPORT)
+ unset(CMAKE_${lang}20_STANDARD__HAS_FULL_SUPPORT)
+ endif()
+
+ __compiler_check_default_language_standard(${lang} 2.1 98)
+ elseif(CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 3.9
+ AND CMAKE_${lang}_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_${lang}98_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_${lang}98_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_${lang}98_STANDARD__HAS_FULL_SUPPORT ON)
+ set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "-std:c++14")
+ set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "-std:c++14")
+ if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
+ set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std:c++17")
+ set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std:c++17")
+ set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std:c++latest")
+ set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std:c++latest")
+ else()
+ set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std:c++latest")
+ set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std:c++latest")
+ endif()
+
+ __compiler_check_default_language_standard(${lang} 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_${lang}98_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_${lang}98_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "")
+ set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "")
+
+ # There is no meaningful default for this
+ set(CMAKE_${lang}_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_${lang}_compile_features)
+ list(APPEND CMAKE_${lang}_COMPILE_FEATURES
+ cxx_std_98
+ cxx_std_11
+ cxx_std_14
+ cxx_std_17
+ cxx_std_20
+ )
+ _record_compiler_features(${lang} "" CMAKE_${lang}_COMPILE_FEATURES)
+ endmacro()
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
index 2265e5e..2265e5e 100644
--- a/share/cmake-3.17/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Compaq-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
index 02e99dc..02e99dc 100644
--- a/share/cmake-3.17/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Compaq-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
index c7d0565..c7d0565 100644
--- a/share/cmake-3.17/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Cray-C.cmake b/share/cmake-3.18/Modules/Compiler/Cray-C.cmake
index 9340948..9340948 100644
--- a/share/cmake-3.17/Modules/Compiler/Cray-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Cray-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Cray-CXX.cmake b/share/cmake-3.18/Modules/Compiler/Cray-CXX.cmake
index 38c8b1e..38c8b1e 100644
--- a/share/cmake-3.17/Modules/Compiler/Cray-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Cray-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Cray-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Cray-DetermineCompiler.cmake
index 6602294..6602294 100644
--- a/share/cmake-3.17/Modules/Compiler/Cray-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Cray-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Cray-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/Cray-Fortran.cmake
new file mode 100644
index 0000000..696ae76
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Cray-Fortran.cmake
@@ -0,0 +1,21 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+include(Compiler/Cray)
+__compiler_cray(Fortran)
+
+set(CMAKE_Fortran_SUBMODULE_SEP "")
+set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
+set(CMAKE_Fortran_MODOUT_FLAG -em)
+set(CMAKE_Fortran_MODDIR_FLAG -J)
+set(CMAKE_Fortran_MODDIR_DEFAULT .)
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-f fixed")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-f free")
+
+if (NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 8.5)
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-eT")
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-dT")
+else()
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-eZ")
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-dZ")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/Cray.cmake b/share/cmake-3.18/Modules/Compiler/Cray.cmake
index c214afc..c214afc 100644
--- a/share/cmake-3.17/Modules/Compiler/Cray.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Cray.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-C.cmake b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-C.cmake
index 76aa93b..76aa93b 100644
--- a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-CXX.cmake b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-CXX.cmake
index 442370e..442370e 100644
--- a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-Fortran.cmake
index 85f82d3..85f82d3 100644
--- a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv.cmake b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv.cmake
index f6e46ac..f6e46ac 100644
--- a/share/cmake-3.17/Modules/Compiler/CrayPrgEnv.cmake
+++ b/share/cmake-3.18/Modules/Compiler/CrayPrgEnv.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Embarcadero-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
index 8375624..8375624 100644
--- a/share/cmake-3.17/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Embarcadero-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Flang-FindBinUtils.cmake b/share/cmake-3.18/Modules/Compiler/Flang-FindBinUtils.cmake
index e721c87..e721c87 100644
--- a/share/cmake-3.17/Modules/Compiler/Flang-FindBinUtils.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Flang-FindBinUtils.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Flang-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/Flang-Fortran.cmake
new file mode 100644
index 0000000..de0484e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Flang-Fortran.cmake
@@ -0,0 +1,16 @@
+include(Compiler/Clang)
+__compiler_clang(Fortran)
+
+set(CMAKE_Fortran_SUBMODULE_SEP "-")
+set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
+
+set(CMAKE_Fortran_PREPROCESS_SOURCE
+ "<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
+
+set(CMAKE_Fortran_MODDIR_FLAG "-J")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nocpp")
diff --git a/share/cmake-3.17/Modules/Compiler/Fujitsu-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
index 73ee38c..73ee38c 100644
--- a/share/cmake-3.17/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Fujitsu-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/G95-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/G95-Fortran.cmake
new file mode 100644
index 0000000..5dba04e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/G95-Fortran.cmake
@@ -0,0 +1,13 @@
+string(APPEND CMAKE_Fortran_FLAGS_INIT " ")
+string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -g")
+string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " -Os")
+string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3")
+string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
+set(CMAKE_Fortran_MODDIR_FLAG "-fmod=")
+set(CMAKE_Fortran_VERBOSE_FLAG "-v")
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
+set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Wl,")
+set(CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP ",")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-no-cpp")
diff --git a/share/cmake-3.17/Modules/Compiler/GHS-C.cmake b/share/cmake-3.18/Modules/Compiler/GHS-C.cmake
index a825b0b..a825b0b 100644
--- a/share/cmake-3.17/Modules/Compiler/GHS-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GHS-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GHS-CXX.cmake b/share/cmake-3.18/Modules/Compiler/GHS-CXX.cmake
index 07b5044..07b5044 100644
--- a/share/cmake-3.17/Modules/Compiler/GHS-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GHS-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GHS-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/GHS-DetermineCompiler.cmake
index 368b375..368b375 100644
--- a/share/cmake-3.17/Modules/Compiler/GHS-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GHS-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GHS.cmake b/share/cmake-3.18/Modules/Compiler/GHS.cmake
index b41c3eb..b41c3eb 100644
--- a/share/cmake-3.17/Modules/Compiler/GHS.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GHS.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/GNU-ASM.cmake b/share/cmake-3.18/Modules/Compiler/GNU-ASM.cmake
new file mode 100644
index 0000000..94af401
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/GNU-ASM.cmake
@@ -0,0 +1,13 @@
+# This file is loaded when gcc/g++ is used for assembler files (the "ASM" cmake language)
+include(Compiler/GNU)
+
+set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;S;asm)
+
+__compiler_gnu(ASM)
+
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_MATCH STREQUAL "GNU assembler")
+ set(CMAKE_DEPFILE_FLAGS_ASM${ASM_DIALECT} "--MD <DEPFILE>")
+ set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE
+ "<CMAKE_LINKER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+ set(CMAKE_ASM_DEFINE_FLAG "--defsym ")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/GNU-C-DetermineCompiler.cmake
index 6ddc566..6ddc566 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/GNU-C-FeatureTests.cmake
index 0ab5265..0ab5265 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-C-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-C.cmake b/share/cmake-3.18/Modules/Compiler/GNU-C.cmake
index ca286b3..ca286b3 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
index c25b147..c25b147 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/GNU-CXX-FeatureTests.cmake
index 45c5470..45c5470 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-CXX-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-CXX.cmake b/share/cmake-3.18/Modules/Compiler/GNU-CXX.cmake
index fcaaeab..fcaaeab 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-FindBinUtils.cmake b/share/cmake-3.18/Modules/Compiler/GNU-FindBinUtils.cmake
index 097fbf3..097fbf3 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-FindBinUtils.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-FindBinUtils.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/GNU-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/GNU-Fortran.cmake
new file mode 100644
index 0000000..5dfb03e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/GNU-Fortran.cmake
@@ -0,0 +1,28 @@
+include(Compiler/GNU)
+__compiler_gnu(Fortran)
+
+set(CMAKE_Fortran_SUBMODULE_SEP "@")
+set(CMAKE_Fortran_SUBMODULE_EXT ".smod")
+
+set(CMAKE_Fortran_PREPROCESS_SOURCE
+ "<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> -o <PREPROCESSED_SOURCE>")
+
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-ffixed-form")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree-form")
+
+if (NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 4.4)
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nocpp")
+endif()
+
+set(CMAKE_Fortran_POSTPROCESS_FLAG "-fpreprocessed")
+
+# No -DNDEBUG for Fortran.
+string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " -Os")
+string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3")
+
+# No -isystem for Fortran because it will not find .mod files.
+unset(CMAKE_INCLUDE_SYSTEM_FLAG_Fortran)
+
+# Fortran-specific feature flags.
+set(CMAKE_Fortran_MODDIR_FLAG -J)
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-OBJC.cmake b/share/cmake-3.18/Modules/Compiler/GNU-OBJC.cmake
index fb9b0b2..fb9b0b2 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-OBJC.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/GNU-OBJCXX.cmake b/share/cmake-3.18/Modules/Compiler/GNU-OBJCXX.cmake
index 06f0244..06f0244 100644
--- a/share/cmake-3.17/Modules/Compiler/GNU-OBJCXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/GNU-OBJCXX.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/GNU.cmake b/share/cmake-3.18/Modules/Compiler/GNU.cmake
new file mode 100644
index 0000000..668a6a9
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/GNU.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.
+
+
+# This module is shared by multiple languages; use include blocker.
+if(__COMPILER_GNU)
+ return()
+endif()
+set(__COMPILER_GNU 1)
+
+include(Compiler/CMakeCommonCompilerMacros)
+include(Internal/CMakeCheckCompilerFlag)
+
+set(__pch_header_C "c-header")
+set(__pch_header_CXX "c++-header")
+set(__pch_header_OBJC "objective-c-header")
+set(__pch_header_OBJCXX "objective-c++-header")
+
+macro(__compiler_gnu lang)
+ # Feature flags.
+ set(CMAKE_${lang}_VERBOSE_FLAG "-v")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC")
+ set (_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 3.4)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
+ # Support of PIE at link stage depends on various elements : platform, compiler, linker
+ # so to activate it, module CheckPIESupported must be used.
+ set (_CMAKE_${lang}_PIE_MAY_BE_SUPPORTED_BY_LINKER YES)
+ set(CMAKE_${lang}_LINK_OPTIONS_PIE ${CMAKE_${lang}_COMPILE_OPTIONS_PIE} "-pie")
+ set(CMAKE_${lang}_LINK_OPTIONS_NO_PIE "-no-pie")
+ endif()
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.0)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_VISIBILITY "-fvisibility=")
+ endif()
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_SYSROOT "--sysroot=")
+
+ set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,")
+ set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",")
+
+ # Older versions of gcc (< 4.5) contain a bug causing them to report a missing
+ # header file as a warning if depfiles are enabled, causing check_header_file
+ # tests to always succeed. Work around this by disabling dependency tracking
+ # in try_compile mode.
+ get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
+ if(CMAKE_${lang}_COMPILER_ID STREQUAL "GNU" AND _IN_TC AND NOT CMAKE_FORCE_DEPFILES)
+ else()
+ # distcc does not transform -o to -MT when invoking the preprocessor
+ # internally, as it ought to. Work around this bug by setting -MT here
+ # even though it isn't strictly necessary.
+ set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <OBJECT> -MF <DEPFILE>")
+ endif()
+
+ # Initial configuration flags.
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG")
+ set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+ set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+ if(NOT APPLE OR NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4) # work around #4462
+ set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
+ endif()
+
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
+
+ # '-flto' introduced since GCC 4.5:
+ # * https://gcc.gnu.org/onlinedocs/gcc-4.4.7/gcc/Option-Summary.html (no)
+ # * https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gcc/Option-Summary.html (yes)
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.5)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
+ set(__lto_flags -flto)
+
+ if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7)
+ # '-ffat-lto-objects' introduced since GCC 4.7:
+ # * https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Option-Summary.html (no)
+ # * https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Option-Summary.html (yes)
+ list(APPEND __lto_flags -fno-fat-lto-objects)
+ endif()
+
+ set(CMAKE_${lang}_COMPILE_OPTIONS_IPO ${__lto_flags})
+
+ # Need to use version of 'ar'/'ranlib' with plugin support.
+ # Quote from [documentation][1]:
+ #
+ # To create static libraries suitable for LTO,
+ # use gcc-ar and gcc-ranlib instead of ar and ranlib
+ #
+ # [1]: https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Optimize-Options.html
+ set(CMAKE_${lang}_ARCHIVE_CREATE_IPO
+ "\"${CMAKE_${lang}_COMPILER_AR}\" cr <TARGET> <LINK_FLAGS> <OBJECTS>"
+ )
+
+ set(CMAKE_${lang}_ARCHIVE_APPEND_IPO
+ "\"${CMAKE_${lang}_COMPILER_AR}\" r <TARGET> <LINK_FLAGS> <OBJECTS>"
+ )
+
+ set(CMAKE_${lang}_ARCHIVE_FINISH_IPO
+ "\"${CMAKE_${lang}_COMPILER_RANLIB}\" <TARGET>"
+ )
+ endif()
+
+ 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 "-dM" "-E" "-c" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
+
+ if(NOT "x${lang}" STREQUAL "xFortran")
+ set(CMAKE_PCH_EXTENSION .gch)
+ if (NOT CMAKE_GENERATOR MATCHES "Xcode")
+ set(CMAKE_PCH_PROLOGUE "#pragma GCC system_header")
+ endif()
+ set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -include <PCH_HEADER>)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -x ${__pch_header_${lang}} -include <PCH_HEADER>)
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/Compiler/HP-ASM.cmake b/share/cmake-3.18/Modules/Compiler/HP-ASM.cmake
index b60f207..b60f207 100644
--- a/share/cmake-3.17/Modules/Compiler/HP-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/HP-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/HP-C-DetermineCompiler.cmake
index 4269799..4269799 100644
--- a/share/cmake-3.17/Modules/Compiler/HP-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/HP-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-C.cmake b/share/cmake-3.18/Modules/Compiler/HP-C.cmake
index 8fa4c08..8fa4c08 100644
--- a/share/cmake-3.17/Modules/Compiler/HP-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/HP-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
index 3d4d7e4..3d4d7e4 100644
--- a/share/cmake-3.17/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/HP-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/HP-CXX.cmake b/share/cmake-3.18/Modules/Compiler/HP-CXX.cmake
index 5726b64..5726b64 100644
--- a/share/cmake-3.17/Modules/Compiler/HP-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/HP-CXX.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/HP-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/HP-Fortran.cmake
new file mode 100644
index 0000000..d3e2a30
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/HP-Fortran.cmake
@@ -0,0 +1,12 @@
+set(CMAKE_Fortran_VERBOSE_FLAG "-v")
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "+source=fixed")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "+source=free")
+
+set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+
+set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Wl,")
+set(CMAKE_Fortran_LINKER_WRAPPER_FLAG ",")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "+cpp=yes")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "+cpp=no")
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-ASM.cmake b/share/cmake-3.18/Modules/Compiler/IAR-ASM.cmake
index 936d4ae..936d4ae 100644
--- a/share/cmake-3.17/Modules/Compiler/IAR-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/IAR-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-C.cmake b/share/cmake-3.18/Modules/Compiler/IAR-C.cmake
index e27fdfc..e27fdfc 100644
--- a/share/cmake-3.17/Modules/Compiler/IAR-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/IAR-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-CXX.cmake b/share/cmake-3.18/Modules/Compiler/IAR-CXX.cmake
index eca89c5..eca89c5 100644
--- a/share/cmake-3.17/Modules/Compiler/IAR-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/IAR-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/IAR-DetermineCompiler.cmake
index 0a026b2..0a026b2 100644
--- a/share/cmake-3.17/Modules/Compiler/IAR-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/IAR-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IAR-FindBinUtils.cmake b/share/cmake-3.18/Modules/Compiler/IAR-FindBinUtils.cmake
index 6ef3759..6ef3759 100644
--- a/share/cmake-3.17/Modules/Compiler/IAR-FindBinUtils.cmake
+++ b/share/cmake-3.18/Modules/Compiler/IAR-FindBinUtils.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/IAR.cmake b/share/cmake-3.18/Modules/Compiler/IAR.cmake
new file mode 100644
index 0000000..296e2fd
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/IAR.cmake
@@ -0,0 +1,114 @@
+# This file is processed when the IAR compiler is used for a C or C++ file
+# Documentation can be downloaded here: http://www.iar.com/website1/1.0.1.0/675/1/
+# The initial feature request is here: https://gitlab.kitware.com/cmake/cmake/-/issues/10176
+# It also contains additional links and information.
+# See USER GUIDES -> C/C++ Development Guide and ReleaseNotes for EWARM:
+# version 6.30.8: http://supp.iar.com/FilesPublic/UPDINFO/006607/arm/doc/infocenter/index.ENU.html
+# version 7.60.1: http://supp.iar.com/FilesPublic/UPDINFO/011006/arm/doc/infocenter/index.ENU.html
+# version 8.10.1: http://netstorage.iar.com/SuppDB/Public/UPDINFO/011854/arm/doc/infocenter/index.ENU.html
+
+# The IAR internal compiler platform generations (Predefined symbol __IAR_SYSTEMS_ICC__):
+# 9 and higher means C11 and C++14 as language default (EWARM v8.x, EWRX v4.x and higher)
+# 8 means C99 and C++03 as language default (EWARM v6.x, v7.x. EWRX v2.x, 3.x)
+# 7 and lower means C89 and EC++ as language default. (EWARM v5.x and lower)
+
+# C/C++ Standard versions
+#
+# IAR typically only supports one C and C++ Standard version,
+# the exception is C89 which is always supported and can be selected
+# if its not the default
+#
+# C++ is trickier, there were historically 3 switches,
+# and some IAR versions support multiple of those.
+# they are --eec++, --ec++ and --c++ and where used to
+# enable various language features like exceptions
+#
+# recent versions only have --c++ for full support
+# but can choose to disable features with further arguments
+#
+# C/C++ Standard compliance
+#
+# IAR has 3 modes: default, strict and extended
+# the extended mode is needed for popular libraries like CMSIS
+#
+# "Silent" Operation
+#
+# this really is different to most programs I know.
+# nothing meaningful from the operation is lost, just some redundant
+# code and data size printouts (that can be inspected with common tools).
+
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+macro(__compiler_iar_ilink lang)
+ set(CMAKE_EXECUTABLE_SUFFIX ".elf")
+ if (${lang} STREQUAL "C" OR ${lang} STREQUAL "CXX")
+ set(CMAKE_${lang}_COMPILE_OBJECT "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
+ set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
+ set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
+
+ set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-f ")
+ set(CMAKE_DEPFILE_FLAGS_${lang} "--dependencies=ns <DEPFILE>")
+
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -r")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Ohz -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -Oh -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
+ endif()
+
+ if (${lang} STREQUAL "ASM")
+ string(APPEND CMAKE_ASM_FLAGS_INIT " ")
+ string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
+ string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
+ string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
+ string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
+ endif()
+
+ set(CMAKE_${lang}_LINK_EXECUTABLE "\"${CMAKE_IAR_LINKER}\" --silent <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
+ set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --create <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_CREATE "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --create <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_APPEND "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --replace <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_FINISH "")
+
+ set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
+ set(CMAKE_AR "${CMAKE_IAR_ARCHIVE}" CACHE FILEPATH "The IAR archiver" FORCE)
+endmacro()
+
+macro(__compiler_iar_xlink lang)
+ set(CMAKE_EXECUTABLE_SUFFIX ".bin")
+ if (${lang} STREQUAL "C" OR ${lang} STREQUAL "CXX")
+
+ set(CMAKE_${lang}_COMPILE_OBJECT "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
+ set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
+ set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
+
+ set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-f ")
+ set(CMAKE_DEPFILE_FLAGS_${lang} "--dependencies=ns <DEPFILE>")
+
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -r")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Ohz -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -Oh -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
+ endif()
+
+ if (${lang} STREQUAL "ASM")
+ string(APPEND CMAKE_ASM_FLAGS_INIT " ")
+ string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
+ string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
+ string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
+ string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
+ endif()
+
+ set(CMAKE_${lang}_LINK_EXECUTABLE "\"${CMAKE_IAR_LINKER}\" -S <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
+ set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "\"${CMAKE_IAR_AR}\" <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_CREATE "\"${CMAKE_IAR_AR}\" <TARGET> <LINK_FLAGS> <OBJECTS>")
+ set(CMAKE_${lang}_ARCHIVE_APPEND "")
+ set(CMAKE_${lang}_ARCHIVE_FINISH "")
+
+ set(CMAKE_LIBRARY_PATH_FLAG "-I")
+
+ set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
+ set(CMAKE_AR "${CMAKE_IAR_AR}" CACHE FILEPATH "The IAR archiver" FORCE)
+endmacro()
diff --git a/share/cmake-3.17/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake b/share/cmake-3.18/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
index 899e284..899e284 100644
--- a/share/cmake-3.17/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
+++ b/share/cmake-3.18/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake b/share/cmake-3.18/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
index 73aa2b4..73aa2b4 100644
--- a/share/cmake-3.17/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
+++ b/share/cmake-3.18/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-ASM.cmake b/share/cmake-3.18/Modules/Compiler/Intel-ASM.cmake
index c2bf465..c2bf465 100644
--- a/share/cmake-3.17/Modules/Compiler/Intel-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Intel-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/Intel-C-FeatureTests.cmake
index 5d09767..5d09767 100644
--- a/share/cmake-3.17/Modules/Compiler/Intel-C-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Intel-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-C.cmake b/share/cmake-3.18/Modules/Compiler/Intel-C.cmake
index ec3bfd8..ec3bfd8 100644
--- a/share/cmake-3.17/Modules/Compiler/Intel-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Intel-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Intel-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/Intel-CXX-FeatureTests.cmake
index bbefe15..bbefe15 100644
--- a/share/cmake-3.17/Modules/Compiler/Intel-CXX-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Intel-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Intel-CXX.cmake b/share/cmake-3.18/Modules/Compiler/Intel-CXX.cmake
new file mode 100644
index 0000000..b71b946
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Intel-CXX.cmake
@@ -0,0 +1,96 @@
+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 19.0.0)
+ set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-Qstd=c++20")
+ set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-Qstd=c++20")
+ endif()
+
+ 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 19.0.0)
+ set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++20")
+ set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++20")
+ endif()
+
+ 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.17/Modules/Compiler/Intel-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Intel-DetermineCompiler.cmake
index c31aa77..c31aa77 100644
--- a/share/cmake-3.17/Modules/Compiler/Intel-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Intel-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/Intel-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/Intel-Fortran.cmake
new file mode 100644
index 0000000..71f25f4
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Intel-Fortran.cmake
@@ -0,0 +1,19 @@
+include(Compiler/Intel)
+__compiler_intel(Fortran)
+
+set(CMAKE_Fortran_SUBMODULE_SEP "@")
+set(CMAKE_Fortran_SUBMODULE_EXT ".smod")
+
+set(CMAKE_Fortran_MODDIR_FLAG "-module ")
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free")
+
+set(CMAKE_Fortran_COMPILE_WITH_DEFINES 1)
+
+set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+
+set(CMAKE_Fortran_PREPROCESS_SOURCE
+ "<CMAKE_Fortran_COMPILER> -fpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nofpp")
diff --git a/share/cmake-3.18/Modules/Compiler/Intel.cmake b/share/cmake-3.18/Modules/Compiler/Intel.cmake
new file mode 100644
index 0000000..9a760c8
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/Intel.cmake
@@ -0,0 +1,46 @@
+# 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_INTEL)
+ return()
+endif()
+set(__COMPILER_INTEL 1)
+
+include(Compiler/CMakeCommonCompilerMacros)
+
+if(CMAKE_HOST_WIN32)
+ # MSVC-like
+ macro(__compiler_intel lang)
+ endmacro()
+else()
+ # GNU-like
+ macro(__compiler_intel lang)
+ set(CMAKE_${lang}_VERBOSE_FLAG "-v")
+
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g")
+
+ 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 "-QdM" "-P" "-Za" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
+
+ if(NOT "x${lang}" STREQUAL "xFortran")
+ # Precompile Headers
+ set(CMAKE_PCH_EXTENSION .pchi)
+ set(CMAKE_LINK_PCH ON)
+ set(CMAKE_PCH_EPILOGUE "#pragma hdrstop")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_INVALID_PCH -Winvalid-pch)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Wno-pch-messages -pch-use <PCH_FILE> -include <PCH_HEADER>)
+ set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Wno-pch-messages -pch-create <PCH_FILE> -include <PCH_HEADER>)
+ endif()
+ endmacro()
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-ASM.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-ASM.cmake
index 45978c5..45978c5 100644
--- a/share/cmake-3.17/Modules/Compiler/MSVC-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/MSVC-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-C-FeatureTests.cmake
index 3f09be2..3f09be2 100644
--- a/share/cmake-3.17/Modules/Compiler/MSVC-C-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/MSVC-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-C.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-C.cmake
index bca9764..bca9764 100644
--- a/share/cmake-3.17/Modules/Compiler/MSVC-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
index 125974a..125974a 100644
--- a/share/cmake-3.17/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/MSVC-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-CXX.cmake
index 1dfc760..1dfc760 100644
--- a/share/cmake-3.17/Modules/Compiler/MSVC-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/MSVC-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/MSVC-DetermineCompiler.cmake
index 313de89..313de89 100644
--- a/share/cmake-3.17/Modules/Compiler/MSVC-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/MSVC-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/NAG-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/NAG-Fortran.cmake
new file mode 100644
index 0000000..ffce97e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/NAG-Fortran.cmake
@@ -0,0 +1,40 @@
+# 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,@")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp")
diff --git a/share/cmake-3.18/Modules/Compiler/NVIDIA-CUDA.cmake b/share/cmake-3.18/Modules/Compiler/NVIDIA-CUDA.cmake
new file mode 100644
index 0000000..feb5ecc
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/NVIDIA-CUDA.cmake
@@ -0,0 +1,119 @@
+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")
+
+set(_CMAKE_COMPILE_AS_CUDA_FLAG "-x cu")
+set(_CMAKE_CUDA_PTX_FLAG "-ptx")
+
+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=)
+
+if (CMAKE_CUDA_SIMULATE_ID STREQUAL "GNU")
+ set(CMAKE_CUDA_LINKER_WRAPPER_FLAG "-Wl,")
+ set(CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP ",")
+elseif(CMAKE_CUDA_SIMULATE_ID STREQUAL "Clang")
+ set(CMAKE_CUDA_LINKER_WRAPPER_FLAG "-Xlinker" " ")
+ set(CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP)
+endif()
+
+set(CMAKE_CUDA_DEVICE_COMPILER_WRAPPER_FLAG "-Xcompiler=")
+set(CMAKE_CUDA_DEVICE_COMPILER_WRAPPER_FLAG_SEP ",")
+set(CMAKE_CUDA_DEVICE_LINKER_WRAPPER_FLAG "-Xlinker=")
+set(CMAKE_CUDA_DEVICE_LINKER_WRAPPER_FLAG_SEP ",")
+
+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(UNIX)
+ list(APPEND CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "rt" "pthread" "dl")
+endif()
+
+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()
+
+ if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.0)
+ set(CMAKE_CUDA17_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CUDA17_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()
+
+ if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.0)
+ set(CMAKE_CUDA17_STANDARD_COMPILE_OPTION "-std=c++17")
+ set(CMAKE_CUDA17_EXTENSION_COMPILE_OPTION "-std=c++17")
+ 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.18/Modules/Compiler/NVIDIA-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
new file mode 100644
index 0000000..4f6ddc2
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/NVIDIA-DetermineCompiler.cmake
@@ -0,0 +1,29 @@
+
+set(_compiler_id_pp_test "defined(__NVCC__)")
+
+set(_compiler_id_version_compute "
+# if defined(__CUDACC_VER_MAJOR__)
+# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__CUDACC_VER_MAJOR__)
+# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__CUDACC_VER_MINOR__)
+# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__CUDACC_VER_BUILD__)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(_MSC_VER / 100)
+# define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(_MSC_VER % 100)
+# elif defined(__clang__)
+# define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(__clang_major__)
+# define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(__clang_minor__)
+# elif defined(__GNUC__)
+# define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(__GNUC__)
+# define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(__GNUC_MINOR__)
+# endif")
+
+set(_compiler_id_simulate "
+# if defined(_MSC_VER)
+# define @PREFIX@SIMULATE_ID \"MSVC\"
+# elif defined(__clang__)
+# define @PREFIX@SIMULATE_ID \"Clang\"
+# elif defined(__GNUC__)
+# define @PREFIX@SIMULATE_ID \"GNU\"
+# endif")
diff --git a/share/cmake-3.18/Modules/Compiler/OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Compiler/OpenWatcom-C.cmake
new file mode 100644
index 0000000..19e3359
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Compiler/OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Compiler/OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Compiler/OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..19e3359
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Compiler/OpenWatcom)
diff --git a/share/cmake-3.17/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
index 2ed116c..2ed116c 100644
--- a/share/cmake-3.17/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/OpenWatcom.cmake b/share/cmake-3.18/Modules/Compiler/OpenWatcom.cmake
new file mode 100644
index 0000000..9efbfc2
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/OpenWatcom.cmake
@@ -0,0 +1,118 @@
+# 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()
+
+set(CMAKE_LIBRARY_PATH_FLAG "libpath ")
+set(CMAKE_LINK_LIBRARY_FLAG "library ")
+set(CMAKE_LINK_LIBRARY_FILE_FLAG "library ")
+
+if(CMAKE_VERBOSE_MAKEFILE)
+ set(CMAKE_WCL_QUIET)
+ set(CMAKE_WLINK_QUIET)
+ set(CMAKE_LIB_QUIET)
+else()
+ set(CMAKE_WCL_QUIET "-zq")
+ set(CMAKE_WLINK_QUIET "option quiet")
+ set(CMAKE_LIB_QUIET "-q")
+endif()
+
+foreach(type CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE)
+ set(CMAKE_C_${type}_USE_WATCOM_QUOTE 1)
+ set(CMAKE_CXX_${type}_USE_WATCOM_QUOTE 1)
+endforeach()
+
+foreach(type SHARED MODULE EXE)
+ # linker map file creation directives
+ string(APPEND CMAKE_${type}_LINKER_FLAGS_INIT " opt map")
+ # linker debug directives
+ string(APPEND CMAKE_${type}_LINKER_FLAGS_DEBUG_INIT " debug all")
+ string(APPEND CMAKE_${type}_LINKER_FLAGS_RELWITHDEBINFO_INIT " debug all")
+endforeach()
+
+foreach(lang C CXX)
+ # warning level
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " -w3")
+ # debug options
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -d2")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -s -os -d0 -dNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -s -ot -d0 -dNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -s -ot -d1 -dNDEBUG")
+endforeach()
+
+# C create import library
+set(CMAKE_C_CREATE_IMPORT_LIBRARY
+ "wlib -c -q -n -b <TARGET_IMPLIB> +<TARGET_QUOTED>")
+# C++ create import library
+set(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY})
+
+# C link a object files into an executable file
+set(CMAKE_C_LINK_EXECUTABLE
+ "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES>")
+# C++ link a object files into an executable file
+set(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE})
+
+# C compile a file into an object file
+set(CMAKE_C_COMPILE_OBJECT
+ "<CMAKE_C_COMPILER> ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<OBJECT> -c -cc <SOURCE>")
+# C++ compile a file into an object file
+set(CMAKE_CXX_COMPILE_OBJECT
+ "<CMAKE_CXX_COMPILER> ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<OBJECT> -c -cc++ <SOURCE>")
+
+# C preprocess a source file
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE
+ "<CMAKE_C_COMPILER> ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<PREPROCESSED_SOURCE> -pl -cc <SOURCE>")
+# C++ preprocess a source file
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE
+ "<CMAKE_CXX_COMPILER> ${CMAKE_WCL_QUIET} -d+ <DEFINES> <INCLUDES> <FLAGS> -fo<PREPROCESSED_SOURCE> -pl -cc++ <SOURCE>")
+
+# C create a shared library
+set(CMAKE_C_CREATE_SHARED_LIBRARY
+ "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> option implib=<TARGET_IMPLIB> file {<OBJECTS>} <LINK_LIBRARIES>")
+# C++ create a shared library
+set(CMAKE_CXX_CREATE_SHARED_LIBRARY ${CMAKE_C_CREATE_SHARED_LIBRARY})
+
+# C create a shared module
+set(CMAKE_C_CREATE_SHARED_MODULE
+ "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES>")
+# C++ create a shared module
+set(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_MODULE})
+
+# C create a static library
+set(CMAKE_C_CREATE_STATIC_LIBRARY
+ "wlib ${CMAKE_LIB_QUIET} -c -n -b <TARGET_QUOTED> <LINK_FLAGS> <OBJECTS> ")
+# C++ create a static library
+set(CMAKE_CXX_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY})
+
+
+# old CMake internaly used OpenWatcom version macros
+# for backward compatibility
+if(NOT _CMAKE_WATCOM_VERSION)
+ set(_CMAKE_WATCOM_VERSION 1)
+ if(CMAKE_C_COMPILER_VERSION)
+ set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
+ set(_compiler_id ${CMAKE_C_COMPILER_ID})
+ else()
+ set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
+ set(_compiler_id ${CMAKE_CXX_COMPILER_ID})
+ endif()
+ set(WATCOM16)
+ set(WATCOM17)
+ set(WATCOM18)
+ set(WATCOM19)
+ if("${_compiler_id}" STREQUAL "OpenWatcom")
+ if("${_compiler_version}" VERSION_LESS 1.7)
+ set(WATCOM16 1)
+ endif()
+ if("${_compiler_version}" VERSION_EQUAL 1.7)
+ set(WATCOM17 1)
+ endif()
+ if("${_compiler_version}" VERSION_EQUAL 1.8)
+ set(WATCOM18 1)
+ endif()
+ if("${_compiler_version}" VERSION_EQUAL 1.9)
+ set(WATCOM19 1)
+ endif()
+ endif()
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/PGI-C.cmake b/share/cmake-3.18/Modules/Compiler/PGI-C.cmake
index c39dbe5..c39dbe5 100644
--- a/share/cmake-3.17/Modules/Compiler/PGI-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PGI-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PGI-CXX.cmake b/share/cmake-3.18/Modules/Compiler/PGI-CXX.cmake
index c77de36..c77de36 100644
--- a/share/cmake-3.17/Modules/Compiler/PGI-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PGI-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PGI-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/PGI-DetermineCompiler.cmake
index 8d3dc9c..8d3dc9c 100644
--- a/share/cmake-3.17/Modules/Compiler/PGI-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PGI-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/PGI-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/PGI-Fortran.cmake
new file mode 100644
index 0000000..ff87577
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/PGI-Fortran.cmake
@@ -0,0 +1,16 @@
+include(Compiler/PGI)
+__compiler_pgi(Fortran)
+
+set(CMAKE_Fortran_SUBMODULE_SEP "-")
+set(CMAKE_Fortran_SUBMODULE_EXT ".mod")
+
+set(CMAKE_Fortran_PREPROCESS_SOURCE
+ "<CMAKE_Fortran_COMPILER> -Mpreprocess <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-Mpreprocess")
+
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-Mnofreeform")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-Mfreeform")
+
+string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -Mbounds")
+
+set(CMAKE_Fortran_MODDIR_FLAG "-module ")
diff --git a/share/cmake-3.17/Modules/Compiler/PGI.cmake b/share/cmake-3.18/Modules/Compiler/PGI.cmake
index 4f8b90b..4f8b90b 100644
--- a/share/cmake-3.17/Modules/Compiler/PGI.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PGI.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale-C.cmake b/share/cmake-3.18/Modules/Compiler/PathScale-C.cmake
index 94c7d08..94c7d08 100644
--- a/share/cmake-3.17/Modules/Compiler/PathScale-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PathScale-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale-CXX.cmake b/share/cmake-3.18/Modules/Compiler/PathScale-CXX.cmake
index 276b81b..276b81b 100644
--- a/share/cmake-3.17/Modules/Compiler/PathScale-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PathScale-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/PathScale-DetermineCompiler.cmake
index 4eb81de..4eb81de 100644
--- a/share/cmake-3.17/Modules/Compiler/PathScale-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PathScale-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/PathScale-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/PathScale-Fortran.cmake
new file mode 100644
index 0000000..891d93e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/PathScale-Fortran.cmake
@@ -0,0 +1,9 @@
+include(Compiler/PathScale)
+__compiler_pathscale(Fortran)
+
+set(CMAKE_Fortran_MODDIR_FLAG "-module ")
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixedform")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-freeform")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nocpp")
diff --git a/share/cmake-3.17/Modules/Compiler/PathScale.cmake b/share/cmake-3.18/Modules/Compiler/PathScale.cmake
index d5f8cb1..d5f8cb1 100644
--- a/share/cmake-3.17/Modules/Compiler/PathScale.cmake
+++ b/share/cmake-3.18/Modules/Compiler/PathScale.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-ASM.cmake b/share/cmake-3.18/Modules/Compiler/QCC-ASM.cmake
index 9a9935b..9a9935b 100644
--- a/share/cmake-3.17/Modules/Compiler/QCC-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/QCC-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/QCC-C-FeatureTests.cmake
index 68f4197..68f4197 100644
--- a/share/cmake-3.17/Modules/Compiler/QCC-C-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/QCC-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-C.cmake b/share/cmake-3.18/Modules/Compiler/QCC-C.cmake
index 6db619e..6db619e 100644
--- a/share/cmake-3.17/Modules/Compiler/QCC-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/QCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/QCC-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/QCC-CXX-FeatureTests.cmake
index c836b94..c836b94 100644
--- a/share/cmake-3.17/Modules/Compiler/QCC-CXX-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/QCC-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/QCC-CXX.cmake b/share/cmake-3.18/Modules/Compiler/QCC-CXX.cmake
new file mode 100644
index 0000000..42303f4
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/QCC-CXX.cmake
@@ -0,0 +1,15 @@
+# To include compiler feature detection
+include(Compiler/GNU-CXX)
+
+include(Compiler/QCC)
+__compiler_qcc(CXX)
+
+# If the toolchain uses qcc for CMAKE_CXX_COMPILER instead of QCC, the
+# default for the driver is not c++.
+set(CMAKE_CXX_COMPILE_OBJECT
+ "<CMAKE_CXX_COMPILER> -lang-c++ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+
+set(CMAKE_CXX_LINK_EXECUTABLE
+ "<CMAKE_CXX_COMPILER> -lang-c++ <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+
+set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
diff --git a/share/cmake-3.17/Modules/Compiler/QCC.cmake b/share/cmake-3.18/Modules/Compiler/QCC.cmake
index 10e1389..10e1389 100644
--- a/share/cmake-3.17/Modules/Compiler/QCC.cmake
+++ b/share/cmake-3.18/Modules/Compiler/QCC.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SCO-C.cmake b/share/cmake-3.18/Modules/Compiler/SCO-C.cmake
index 6e762cc..6e762cc 100644
--- a/share/cmake-3.17/Modules/Compiler/SCO-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SCO-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SCO-CXX.cmake b/share/cmake-3.18/Modules/Compiler/SCO-CXX.cmake
index 5b713a0..5b713a0 100644
--- a/share/cmake-3.17/Modules/Compiler/SCO-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SCO-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SCO-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/SCO-DetermineCompiler.cmake
index a44b22b..a44b22b 100644
--- a/share/cmake-3.17/Modules/Compiler/SCO-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SCO-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SCO.cmake b/share/cmake-3.18/Modules/Compiler/SCO.cmake
index 7f643d9..7f643d9 100644
--- a/share/cmake-3.17/Modules/Compiler/SCO.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SCO.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SDCC-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
index 4c70c5e..4c70c5e 100644
--- a/share/cmake-3.17/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SDCC-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-ASM.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-ASM.cmake
index 0d67400..0d67400 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
index e9d7457..e9d7457 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-C-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-C-FeatureTests.cmake
index cccf3ae..cccf3ae 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro-C-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-C-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-C.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-C.cmake
index 7e962b8..7e962b8 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
index 5c23a95..5c23a95 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-CXX-FeatureTests.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
index e7133c1..e7133c1 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-CXX-FeatureTests.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro-CXX.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-CXX.cmake
index c946c64..c946c64 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-CXX.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/SunPro-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/SunPro-Fortran.cmake
new file mode 100644
index 0000000..0ba5015
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/SunPro-Fortran.cmake
@@ -0,0 +1,34 @@
+set(CMAKE_Fortran_VERBOSE_FLAG "-v")
+set(CMAKE_Fortran_FORMAT_FIXED_FLAG "-fixed")
+set(CMAKE_Fortran_FORMAT_FREE_FLAG "-free")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PIC "-KPIC")
+set(CMAKE_Fortran_COMPILE_OPTIONS_PIE "")
+set(_CMAKE_Fortran_PIE_MAY_BE_SUPPORTED_BY_LINKER NO)
+set(CMAKE_Fortran_LINK_OPTIONS_PIE "")
+set(CMAKE_Fortran_LINK_OPTIONS_NO_PIE "")
+set(CMAKE_SHARED_LIBRARY_Fortran_FLAGS "-KPIC")
+set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "-G")
+set(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG "-R")
+set(CMAKE_SHARED_LIBRARY_RUNTIME_Fortran_FLAG_SEP ":")
+set(CMAKE_SHARED_LIBRARY_SONAME_Fortran_FLAG "-h")
+set(CMAKE_EXECUTABLE_RUNTIME_Fortran_FLAG "-R")
+
+string(APPEND CMAKE_Fortran_FLAGS_INIT " ")
+string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -g")
+string(APPEND CMAKE_Fortran_FLAGS_MINSIZEREL_INIT " -xO2 -xspace -DNDEBUG")
+string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -xO3 -DNDEBUG")
+string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT " -g -xO2 -DNDEBUG")
+set(CMAKE_Fortran_MODDIR_FLAG "-moddir=")
+set(CMAKE_Fortran_MODPATH_FLAG "-M")
+
+set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Qoption" "ld" " ")
+set(CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP ",")
+
+set(CMAKE_Fortran_PREPROCESS_SOURCE
+ "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -F -fpp <SOURCE> -o <PREPROCESSED_SOURCE>")
+
+set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -F -fpp <SOURCE> -o <PREPROCESSED_SOURCE>")
+set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+
+set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp")
diff --git a/share/cmake-3.17/Modules/Compiler/SunPro.cmake b/share/cmake-3.18/Modules/Compiler/SunPro.cmake
index 52da39a..52da39a 100644
--- a/share/cmake-3.17/Modules/Compiler/SunPro.cmake
+++ b/share/cmake-3.18/Modules/Compiler/SunPro.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/TI-ASM.cmake b/share/cmake-3.18/Modules/Compiler/TI-ASM.cmake
index a566d70..a566d70 100644
--- a/share/cmake-3.17/Modules/Compiler/TI-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/TI-ASM.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/TI-C.cmake b/share/cmake-3.18/Modules/Compiler/TI-C.cmake
new file mode 100644
index 0000000..b060ee9
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/TI-C.cmake
@@ -0,0 +1,22 @@
+set(CMAKE_LIBRARY_PATH_FLAG "--search_path=")
+set(CMAKE_LINK_LIBRARY_FLAG "--library=")
+set(CMAKE_INCLUDE_FLAG_C "--include_path=")
+
+set(CMAKE_C90_STANDARD_COMPILE_OPTION "--c89")
+set(CMAKE_C90_EXTENSION_COMPILE_OPTION "--c89 --relaxed_ansi")
+
+set(CMAKE_C99_STANDARD_COMPILE_OPTION "--c99")
+set(CMAKE_C99_EXTENSION_COMPILE_OPTION "--c99 --relaxed_ansi")
+
+set(CMAKE_DEPFILE_FLAGS_C "--preproc_with_compile --preproc_dependency=<DEPFILE>")
+
+set(CMAKE_C_CREATE_ASSEMBLY_SOURCE "<CMAKE_C_COMPILER> --compile_only --skip_assembler --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<ASSEMBLY_SOURCE>")
+set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> --preproc_only --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
+
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> --compile_only --c_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
+set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qr <TARGET> <OBJECTS>")
+set(CMAKE_C_ARCHIVE_APPEND "<CMAKE_AR> qa <TARGET> <OBJECTS>")
+set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET_NAME>.map <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
+set(CMAKE_ASM_RESPONSE_FILE_FLAG "--cmd_file=")
+set(CMAKE_C_RESPONSE_FILE_FLAG "--cmd_file=")
+set(CMAKE_C_RESPONSE_FILE_LINK_FLAG " ")
diff --git a/share/cmake-3.18/Modules/Compiler/TI-CXX.cmake b/share/cmake-3.18/Modules/Compiler/TI-CXX.cmake
new file mode 100644
index 0000000..7836543
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/TI-CXX.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_LIBRARY_PATH_FLAG "--search_path=")
+set(CMAKE_LINK_LIBRARY_FLAG "--library=")
+set(CMAKE_INCLUDE_FLAG_CXX "--include_path=")
+
+set(CMAKE_DEPFILE_FLAGS_CXX "--preproc_with_compile --preproc_dependency=<DEPFILE>")
+
+set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> --compile_only --skip_assembler --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<ASSEMBLY_SOURCE>")
+set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> --preproc_only --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<PREPROCESSED_SOURCE>")
+
+set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> --compile_only --cpp_file=<SOURCE> <DEFINES> <INCLUDES> <FLAGS> --output_file=<OBJECT>")
+set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qr <TARGET> <OBJECTS>")
+set(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> qa <TARGET> <OBJECTS>")
+set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> --run_linker --output_file=<TARGET> --map_file=<TARGET_NAME>.map <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES>")
+set(CMAKE_CXX_RESPONSE_FILE_FLAG "--cmd_file=")
+set(CMAKE_CXX_RESPONSE_FILE_LINK_FLAG " ")
diff --git a/share/cmake-3.17/Modules/Compiler/TI-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/TI-DetermineCompiler.cmake
index 19aa9e3..19aa9e3 100644
--- a/share/cmake-3.17/Modules/Compiler/TI-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/TI-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
index 8d6de7e..8d6de7e 100644
--- a/share/cmake-3.17/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/TinyCC-C.cmake b/share/cmake-3.18/Modules/Compiler/TinyCC-C.cmake
index 6367695..6367695 100644
--- a/share/cmake-3.17/Modules/Compiler/TinyCC-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/TinyCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
index 97c2263..97c2263 100644
--- a/share/cmake-3.17/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-C.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-C.cmake
index 40b609e..40b609e 100644
--- a/share/cmake-3.17/Modules/Compiler/VisualAge-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/VisualAge-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
index cd53499..cd53499 100644
--- a/share/cmake-3.17/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-CXX.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-CXX.cmake
index 2509b43..2509b43 100644
--- a/share/cmake-3.17/Modules/Compiler/VisualAge-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/VisualAge-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/VisualAge-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/VisualAge-Fortran.cmake
index 3ef3178..3ef3178 100644
--- a/share/cmake-3.17/Modules/Compiler/VisualAge-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Compiler/VisualAge-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/Watcom-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/Watcom-DetermineCompiler.cmake
index 153e350..153e350 100644
--- a/share/cmake-3.17/Modules/Compiler/Watcom-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/Watcom-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-ASM.cmake b/share/cmake-3.18/Modules/Compiler/XL-ASM.cmake
index 9177b39..9177b39 100644
--- a/share/cmake-3.17/Modules/Compiler/XL-ASM.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XL-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/XL-C-DetermineCompiler.cmake
index 3f4e05c..3f4e05c 100644
--- a/share/cmake-3.17/Modules/Compiler/XL-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XL-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-C.cmake b/share/cmake-3.18/Modules/Compiler/XL-C.cmake
index 2077bda..2077bda 100644
--- a/share/cmake-3.17/Modules/Compiler/XL-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XL-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
index dffa4bc..dffa4bc 100644
--- a/share/cmake-3.17/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XL-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.18/Modules/Compiler/XL-CXX.cmake b/share/cmake-3.18/Modules/Compiler/XL-CXX.cmake
new file mode 100644
index 0000000..41e3e11
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/XL-CXX.cmake
@@ -0,0 +1,37 @@
+include(Compiler/XL)
+__compiler_xl(CXX)
+string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -DNDEBUG")
+string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
+
+# -qthreaded = Ensures that all optimizations will be thread-safe
+string(APPEND CMAKE_CXX_FLAGS_INIT " -qthreaded")
+
+if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10.1)
+ if(CMAKE_SYSTEM MATCHES "Linux")
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
+ else()
+ set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-qlanglvl=strict98")
+ set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-qlanglvl=extended")
+ endif()
+ set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-qlanglvl=extended0x")
+ set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-qlanglvl=extended0x")
+ set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
+
+ # XL does not really have full C++11 or C++14 support, but since we do not
+ # have a granular XL-CXX-FeatureTests table for it just pretend it does.
+ # This way projects that specify granular features will at least get a
+ # compiler mode for the corresponding standard.
+ set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
+
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16.1.0 AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-qlanglvl=extended1y")
+ set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-qlanglvl=extended1y")
+ set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
+ endif()
+endif ()
+
+__compiler_check_default_language_standard(CXX 10.1 98)
+
+set(CMAKE_CXX_COMPILE_OBJECT
+ "<CMAKE_CXX_COMPILER> -+ <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
diff --git a/share/cmake-3.18/Modules/Compiler/XL-Fortran.cmake b/share/cmake-3.18/Modules/Compiler/XL-Fortran.cmake
new file mode 100644
index 0000000..cc15e65
--- /dev/null
+++ b/share/cmake-3.18/Modules/Compiler/XL-Fortran.cmake
@@ -0,0 +1,30 @@
+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_MODDIR_INCLUDE_FLAG "-I") # -qmoddir= does not affect search path
+
+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>"
+ )
+
+if (NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 15.1.6)
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-qpreprocess")
+ set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-qnopreprocess")
+endif()
diff --git a/share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp b/share/cmake-3.18/Modules/Compiler/XL-Fortran/cpp
index 1fd62c2..1fd62c2 100644
--- a/share/cmake-3.17/Modules/Compiler/XL-Fortran/cpp
+++ b/share/cmake-3.18/Modules/Compiler/XL-Fortran/cpp
diff --git a/share/cmake-3.17/Modules/Compiler/XL.cmake b/share/cmake-3.18/Modules/Compiler/XL.cmake
index fc71ab4..fc71ab4 100644
--- a/share/cmake-3.17/Modules/Compiler/XL.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XL.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
index 4d89921..4d89921 100644
--- a/share/cmake-3.17/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XLClang-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang-C.cmake b/share/cmake-3.18/Modules/Compiler/XLClang-C.cmake
index 54c18a6..54c18a6 100644
--- a/share/cmake-3.17/Modules/Compiler/XLClang-C.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XLClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
index 4d89921..4d89921 100644
--- a/share/cmake-3.17/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang-CXX.cmake b/share/cmake-3.18/Modules/Compiler/XLClang-CXX.cmake
index 9ea3d7c..9ea3d7c 100644
--- a/share/cmake-3.17/Modules/Compiler/XLClang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XLClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/XLClang.cmake b/share/cmake-3.18/Modules/Compiler/XLClang.cmake
index cdf0fdc..cdf0fdc 100644
--- a/share/cmake-3.17/Modules/Compiler/XLClang.cmake
+++ b/share/cmake-3.18/Modules/Compiler/XLClang.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/zOS-C-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/zOS-C-DetermineCompiler.cmake
index daa3781..daa3781 100644
--- a/share/cmake-3.17/Modules/Compiler/zOS-C-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/zOS-C-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake b/share/cmake-3.18/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
index a08ff57..a08ff57 100644
--- a/share/cmake-3.17/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
+++ b/share/cmake-3.18/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake
diff --git a/share/cmake-3.17/Modules/CompilerId/GHS_default.gpj.in b/share/cmake-3.18/Modules/CompilerId/GHS_default.gpj.in
index b5cea5c..b5cea5c 100644
--- a/share/cmake-3.17/Modules/CompilerId/GHS_default.gpj.in
+++ b/share/cmake-3.18/Modules/CompilerId/GHS_default.gpj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/GHS_lib.gpj.in b/share/cmake-3.18/Modules/CompilerId/GHS_lib.gpj.in
index 149b981..149b981 100644
--- a/share/cmake-3.17/Modules/CompilerId/GHS_lib.gpj.in
+++ b/share/cmake-3.18/Modules/CompilerId/GHS_lib.gpj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-10.csproj.in b/share/cmake-3.18/Modules/CompilerId/VS-10.csproj.in
index ed5e847..ed5e847 100644
--- a/share/cmake-3.17/Modules/CompilerId/VS-10.csproj.in
+++ b/share/cmake-3.18/Modules/CompilerId/VS-10.csproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in b/share/cmake-3.18/Modules/CompilerId/VS-10.vcxproj.in
index b48a332..b48a332 100644
--- a/share/cmake-3.17/Modules/CompilerId/VS-10.vcxproj.in
+++ b/share/cmake-3.18/Modules/CompilerId/VS-10.vcxproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-7.vcproj.in b/share/cmake-3.18/Modules/CompilerId/VS-7.vcproj.in
index 9e3c3c3..9e3c3c3 100644
--- a/share/cmake-3.17/Modules/CompilerId/VS-7.vcproj.in
+++ b/share/cmake-3.18/Modules/CompilerId/VS-7.vcproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-Intel.vfproj.in b/share/cmake-3.18/Modules/CompilerId/VS-Intel.vfproj.in
index 044dd20..044dd20 100644
--- a/share/cmake-3.17/Modules/CompilerId/VS-Intel.vfproj.in
+++ b/share/cmake-3.18/Modules/CompilerId/VS-Intel.vfproj.in
diff --git a/share/cmake-3.17/Modules/CompilerId/VS-NsightTegra.vcxproj.in b/share/cmake-3.18/Modules/CompilerId/VS-NsightTegra.vcxproj.in
index b7389eb..b7389eb 100644
--- a/share/cmake-3.17/Modules/CompilerId/VS-NsightTegra.vcxproj.in
+++ b/share/cmake-3.18/Modules/CompilerId/VS-NsightTegra.vcxproj.in
diff --git a/share/cmake-3.18/Modules/CompilerId/Xcode-3.pbxproj.in b/share/cmake-3.18/Modules/CompilerId/Xcode-3.pbxproj.in
new file mode 100644
index 0000000..6fe17e5
--- /dev/null
+++ b/share/cmake-3.18/Modules/CompilerId/Xcode-3.pbxproj.in
@@ -0,0 +1,114 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+ 2C18F0B615DC1E0300593670 = {isa = PBXBuildFile; fileRef = 2C18F0B415DC1DC700593670; };
+ 2C18F0B415DC1DC700593670 = {isa = PBXFileReference; fileEncoding = 4; explicitFileType = @id_type@; path = @id_src@; sourceTree = "<group>"; };
+ 08FB7794FE84155DC02AAC07 = {
+ isa = PBXGroup;
+ children = (
+ 2C18F0B415DC1DC700593670,
+ );
+ name = CompilerId@id_lang@;
+ sourceTree = "<group>";
+ };
+ 8DD76FA90486AB0100D96B5E = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB928508733DD80010E9CD;
+ buildPhases = (
+ 2C18F0B515DC1DCE00593670,
+ 2C8FEB8E15DC1A1A00E56A5D,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = CompilerId@id_lang@;
+ productName = CompilerId@id_lang@;
+ productType = "@id_product_type@";
+ };
+ 08FB7793FE84155DC02AAC07 = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB928908733DD80010E9CD;
+ compatibilityVersion = "Xcode 3.1";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 08FB7794FE84155DC02AAC07;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8DD76FA90486AB0100D96B5E,
+ );
+ };
+ 2C8FEB8E15DC1A1A00E56A5D = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "echo \"GCC_VERSION=$GCC_VERSION\" ; echo \"ARCHS=$ARCHS\"";
+ showEnvVarsInLog = 0;
+ };
+ 2C18F0B515DC1DCE00593670 = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2C18F0B615DC1E0300593670,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1DEB928608733DD80010E9CD = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ PRODUCT_NAME = CompilerId@id_lang@;
+ };
+ name = Debug;
+ };
+ 1DEB928A08733DD80010E9CD = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ONLY_ACTIVE_ARCH = YES;
+ CODE_SIGNING_REQUIRED = NO;
+ CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
+ SYMROOT = .;
+ @id_archs@
+ @id_toolset@
+ @id_lang_version@
+ @id_clang_cxx_library@
+ @id_deployment_target@
+ @id_sdkroot@
+ };
+ name = Debug;
+ };
+ 1DEB928508733DD80010E9CD = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB928608733DD80010E9CD,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ 1DEB928908733DD80010E9CD = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB928A08733DD80010E9CD,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ };
+ rootObject = 08FB7793FE84155DC02AAC07;
+}
diff --git a/share/cmake-3.17/Modules/CompilerId/main.swift.in b/share/cmake-3.18/Modules/CompilerId/main.swift.in
index 13f0ba0..13f0ba0 100644
--- a/share/cmake-3.17/Modules/CompilerId/main.swift.in
+++ b/share/cmake-3.18/Modules/CompilerId/main.swift.in
diff --git a/share/cmake-3.17/Modules/Dart.cmake b/share/cmake-3.18/Modules/Dart.cmake
index 154fe9d..154fe9d 100644
--- a/share/cmake-3.17/Modules/Dart.cmake
+++ b/share/cmake-3.18/Modules/Dart.cmake
diff --git a/share/cmake-3.17/Modules/DartConfiguration.tcl.in b/share/cmake-3.18/Modules/DartConfiguration.tcl.in
index 086ba07..086ba07 100644
--- a/share/cmake-3.17/Modules/DartConfiguration.tcl.in
+++ b/share/cmake-3.18/Modules/DartConfiguration.tcl.in
diff --git a/share/cmake-3.17/Modules/DeployQt4.cmake b/share/cmake-3.18/Modules/DeployQt4.cmake
index 9aa4383..9aa4383 100644
--- a/share/cmake-3.17/Modules/DeployQt4.cmake
+++ b/share/cmake-3.18/Modules/DeployQt4.cmake
diff --git a/share/cmake-3.18/Modules/Documentation.cmake b/share/cmake-3.18/Modules/Documentation.cmake
new file mode 100644
index 0000000..c297231
--- /dev/null
+++ b/share/cmake-3.18/Modules/Documentation.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.
+
+#[=======================================================================[.rst:
+Documentation
+-------------
+
+This module provides support for the VTK documentation framework. It
+relies on several tools (Doxygen, Perl, etc).
+#]=======================================================================]
+
+cmake_policy(GET CMP0106 _Documentation_policy)
+
+if (_Documentation_policy STREQUAL "NEW")
+ message(FATAL_ERROR
+ "Documentation.cmake is VTK-specific code and should not be used in "
+ "non-VTK projects. This logic in this module is best shipped with the "
+ "project using it rather than with CMake. This is now an error according "
+ "to policy CMP0106.")
+else ()
+
+if (_Documentation_policy STREQUAL "")
+ # Ignore the warning if the project is detected as VTK itself.
+ if (NOT CMAKE_PROJECT_NAME STREQUAL "VTK" AND
+ NOT PROJECT_NAME STREQUAL "VTK")
+ cmake_policy(GET_WARNING CMP0106 _Documentation_policy_warning)
+ message(AUTHOR_WARNING
+ "${_Documentation_policy_warning}\n"
+ "Documentation.cmake is VTK-specific code and should not be used in "
+ "non-VTK projects. This logic in this module is best shipped with the "
+ "project using it rather than with CMake.")
+ endif ()
+ unset(_Documentation_policy_warning)
+endif ()
+
+#
+# Build the documentation ?
+#
+option(BUILD_DOCUMENTATION "Build the documentation (Doxygen)." OFF)
+mark_as_advanced(BUILD_DOCUMENTATION)
+
+if (BUILD_DOCUMENTATION)
+
+ #
+ # Check for the tools
+ #
+ find_package(UnixCommands)
+ find_package(Doxygen)
+ find_package(Gnuplot)
+ find_package(HTMLHelp)
+ find_package(Perl)
+ find_package(Wget)
+
+ option(DOCUMENTATION_HTML_HELP
+ "Build the HTML Help file (CHM)." OFF)
+
+ option(DOCUMENTATION_HTML_TARZ
+ "Build a compressed tar archive of the HTML doc." OFF)
+
+ mark_as_advanced(
+ DOCUMENTATION_HTML_HELP
+ DOCUMENTATION_HTML_TARZ
+ )
+
+ #
+ # The documentation process is controlled by a batch file.
+ # We will probably need bash to create the custom target
+ #
+
+endif ()
+
+endif ()
+
+unset(_Documentation_policy)
diff --git a/share/cmake-3.17/Modules/DummyCXXFile.cxx b/share/cmake-3.18/Modules/DummyCXXFile.cxx
index f8b643a..f8b643a 100644
--- a/share/cmake-3.17/Modules/DummyCXXFile.cxx
+++ b/share/cmake-3.18/Modules/DummyCXXFile.cxx
diff --git a/share/cmake-3.17/Modules/ExternalData.cmake b/share/cmake-3.18/Modules/ExternalData.cmake
index e5dbcd9..e5dbcd9 100644
--- a/share/cmake-3.17/Modules/ExternalData.cmake
+++ b/share/cmake-3.18/Modules/ExternalData.cmake
diff --git a/share/cmake-3.17/Modules/ExternalData_config.cmake.in b/share/cmake-3.18/Modules/ExternalData_config.cmake.in
index 18be6b3..18be6b3 100644
--- a/share/cmake-3.17/Modules/ExternalData_config.cmake.in
+++ b/share/cmake-3.18/Modules/ExternalData_config.cmake.in
diff --git a/share/cmake-3.17/Modules/ExternalProject-download.cmake.in b/share/cmake-3.18/Modules/ExternalProject-download.cmake.in
index 99fb917..99fb917 100644
--- a/share/cmake-3.17/Modules/ExternalProject-download.cmake.in
+++ b/share/cmake-3.18/Modules/ExternalProject-download.cmake.in
diff --git a/share/cmake-3.18/Modules/ExternalProject-gitupdate.cmake.in b/share/cmake-3.18/Modules/ExternalProject-gitupdate.cmake.in
new file mode 100644
index 0000000..eff39c1
--- /dev/null
+++ b/share/cmake-3.18/Modules/ExternalProject-gitupdate.cmake.in
@@ -0,0 +1,216 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+cmake_minimum_required(VERSION 3.5)
+
+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 perform a
+ # rebase or checkout without losing those changes permanently
+ 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()
+
+ if("@git_update_strategy@" STREQUAL "CHECKOUT")
+ execute_process(
+ COMMAND "@git_EXECUTABLE@" checkout "${git_remote}/${git_tag}"
+ WORKING_DIRECTORY "@work_dir@"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ message(FATAL_ERROR "Failed to checkout tag: '${git_remote}/${git_tag}'")
+ endif()
+ else()
+ # Pull changes from the remote branch
+ execute_process(
+ COMMAND "@git_EXECUTABLE@" rebase "${git_remote}/${git_tag}"
+ WORKING_DIRECTORY "@work_dir@"
+ RESULT_VARIABLE error_code
+ OUTPUT_VARIABLE rebase_output
+ ERROR_VARIABLE rebase_output
+ )
+ if(error_code)
+ # Rebase failed, undo the rebase attempt before continuing
+ execute_process(
+ COMMAND "@git_EXECUTABLE@" rebase --abort
+ WORKING_DIRECTORY "@work_dir@"
+ )
+
+ if(NOT "@git_update_strategy@" STREQUAL "REBASE_CHECKOUT")
+ # Not allowed to do a checkout as a fallback, so cannot proceed
+ 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@'."
+ "\nOutput from the attempted rebase follows:"
+ "\n${rebase_output}"
+ "\n\nYou will have to resolve the conflicts manually")
+ endif()
+
+ # Fall back to checkout. We create an annotated tag so that the user
+ # can manually inspect the situation and revert if required.
+ # We can't log the failed rebase output because MSVC sees it and
+ # intervenes, causing the build to fail even though it completes.
+ # Write it to a file instead.
+ string(TIMESTAMP tag_timestamp "%Y%m%dT%H%M%S" UTC)
+ set(tag_name _cmake_ExternalProject_moved_from_here_${tag_timestamp}Z)
+ set(error_log_file ${CMAKE_CURRENT_LIST_DIR}/rebase_error_${tag_timestamp}Z.log)
+ file(WRITE ${error_log_file} "${rebase_output}")
+ message(WARNING "Rebase failed, output has been saved to ${error_log_file}"
+ "\nFalling back to checkout, previous commit tagged as ${tag_name}")
+ execute_process(
+ COMMAND "@git_EXECUTABLE@" tag -a
+ -m "ExternalProject attempting to move from here to ${git_remote}/${git_tag}"
+ ${tag_name}
+ WORKING_DIRECTORY "@work_dir@"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ message(FATAL_ERROR "Failed to add marker tag")
+ endif()
+
+ execute_process(
+ COMMAND "@git_EXECUTABLE@" checkout "${git_remote}/${git_tag}"
+ WORKING_DIRECTORY "@work_dir@"
+ RESULT_VARIABLE error_code
+ )
+ if(error_code)
+ message(FATAL_ERROR "Failed to checkout : '${git_remote}/${git_tag}'")
+ endif()
+
+ endif()
+ 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@'."
+ "\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@"
+ RESULT_VARIABLE error_code
+ )
+ endif()
+ if(error_code)
+ message(FATAL_ERROR "Failed to update submodules in: '@work_dir@'")
+ endif()
+endif()
diff --git a/share/cmake-3.17/Modules/ExternalProject-verify.cmake.in b/share/cmake-3.18/Modules/ExternalProject-verify.cmake.in
index c06da4e..c06da4e 100644
--- a/share/cmake-3.17/Modules/ExternalProject-verify.cmake.in
+++ b/share/cmake-3.18/Modules/ExternalProject-verify.cmake.in
diff --git a/share/cmake-3.18/Modules/ExternalProject.cmake b/share/cmake-3.18/Modules/ExternalProject.cmake
new file mode 100644
index 0000000..aecc00b
--- /dev/null
+++ b/share/cmake-3.18/Modules/ExternalProject.cmake
@@ -0,0 +1,3241 @@
+# 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::
+
+Commands
+^^^^^^^^
+
+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``.
+
+ ``GIT_REMOTE_UPDATE_STRATEGY <strategy>``
+ When ``GIT_TAG`` refers to a remote branch, this option can be used to
+ specify how the update step behaves. The ``<strategy>`` must be one of
+ the following:
+
+ ``CHECKOUT``
+ Ignore the local branch and always checkout the branch specified by
+ ``GIT_TAG``.
+
+ ``REBASE``
+ Try to rebase the current branch to the one specified by ``GIT_TAG``.
+ If there are local uncommitted changes, they will be stashed first
+ and popped again after rebasing. If rebasing or popping stashed
+ changes fail, abort the rebase and halt with an error.
+ When ``GIT_REMOTE_UPDATE_STRATEGY`` is not present, this is the
+ default strategy unless the default has been overridden with
+ ``CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY`` (see below).
+
+ ``REBASE_CHECKOUT``
+ Same as ``REBASE`` except if the rebase fails, an annotated tag will
+ be created at the original ``HEAD`` position from before the rebase
+ and then checkout ``GIT_TAG`` just like the ``CHECKOUT`` strategy.
+ The message stored on the annotated tag will give information about
+ what was attempted and the tag name will include a timestamp so that
+ each failed run will add a new tag. This strategy ensures no changes
+ will be lost, but updates should always succeed if ``GIT_TAG`` refers
+ to a valid ref unless there are uncommitted changes that cannot be
+ popped successfully.
+
+ The variable ``CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY`` can be set to
+ override the default strategy. This variable should not be set by a
+ project, it is intended for the user to set. It is primarily intended
+ for use in continuous integration scripts to ensure that when history
+ is rewritten on a remote branch, the build doesn't end up with unintended
+ changes or failed builds resulting from conflicts during rebase operations.
+
+ *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
+cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
+
+# 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()
+
+ if(GIT_VERSION_STRING VERSION_LESS 2.20 OR 2.21 VERSION_LESS_EQUAL GIT_VERSION_STRING)
+ set(git_clone_options "--no-checkout")
+ else()
+ set(git_clone_options)
+ endif()
+ 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 git_update_strategy)
+ 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()
+
+ configure_file(
+ "${_ExternalProject_SELF_DIR}/ExternalProject-gitupdate.cmake.in"
+ "${script_filename}"
+ @ONLY
+ )
+endfunction()
+
+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()
+
+ if(NOT "${args}" STREQUAL "")
+ # args could have empty items, so we must quote it to prevent them
+ # from being silently removed
+ list(APPEND cmd "${args}")
+ endif()
+ 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()
+
+ set(__cmdQuoted)
+ foreach(__item IN LISTS command)
+ string(APPEND __cmdQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ add_custom_command(
+ OUTPUT \${stamp_file}
+ BYPRODUCTS \${byproducts}
+ COMMENT \${comment}
+ COMMAND ${__cmdQuoted}
+ 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(is_step LESS 0)
+ 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)
+ 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()
+
+ set(__cmdQuoted)
+ foreach(__item IN LISTS cmd)
+ string(APPEND __cmdQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ ExternalProject_Add_Step(\${name} download
+ COMMENT \${comment}
+ COMMAND ${__cmdQuoted}
+ WORKING_DIRECTORY \${work_dir}
+ DEPENDS \${depends}
+ DEPENDEES mkdir
+ ${log}
+ ${uses_terminal}
+ )"
+ )
+endfunction()
+
+function(_ep_get_update_disconnected var name)
+ 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(${var} "${update_disconnected}" PARENT_SCOPE)
+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 )
+
+ _ep_get_update_disconnected(update_disconnected ${name})
+
+ 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()
+
+ get_property(git_update_strategy TARGET ${name} PROPERTY _EP_GIT_REMOTE_UPDATE_STRATEGY)
+ if(NOT git_update_strategy)
+ set(git_update_strategy "${CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY}")
+ endif()
+ if(NOT git_update_strategy)
+ set(git_update_strategy REBASE)
+ endif()
+ set(strategies CHECKOUT REBASE REBASE_CHECKOUT)
+ if(NOT git_update_strategy IN_LIST strategies)
+ message(FATAL_ERROR "'${git_update_strategy}' is not one of the supported strategies: ${strategies}")
+ 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} ${git_update_strategy}
+ )
+ 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()
+
+ set(__cmdQuoted)
+ foreach(__item IN LISTS cmd)
+ string(APPEND __cmdQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ ExternalProject_Add_Step(${name} update
+ COMMENT \${comment}
+ COMMAND ${__cmdQuoted}
+ 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()
+
+ _ep_get_update_disconnected(update_disconnected ${name})
+ if(update_disconnected)
+ set(update_dep skip-update)
+ else()
+ set(update_dep update)
+ endif()
+
+ set(__cmdQuoted)
+ foreach(__item IN LISTS cmd)
+ string(APPEND __cmdQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ ExternalProject_Add_Step(${name} patch
+ COMMAND ${__cmdQuoted}
+ WORKING_DIRECTORY \${work_dir}
+ DEPENDEES download \${update_dep}
+ ${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}")
+ _ep_replace_location_tags(${name} _ep_cache_args_script)
+ set(_ep_cache_args_script
+ "${_ep_cache_args_script}"
+ PARENT_SCOPE)
+ 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()
+
+ _ep_get_update_disconnected(update_disconnected ${name})
+ if(update_disconnected)
+ set(update_dep skip-update)
+ else()
+ set(update_dep update)
+ endif()
+
+ set(__cmdQuoted)
+ foreach(__item IN LISTS cmd)
+ string(APPEND __cmdQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ ExternalProject_Add_Step(${name} configure
+ COMMAND ${__cmdQuoted}
+ 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)
+
+ set(__cmdQuoted)
+ foreach(__item IN LISTS cmd)
+ string(APPEND __cmdQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ ExternalProject_Add_Step(${name} build
+ COMMAND ${__cmdQuoted}
+ 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()
+
+ set(__cmdQuoted)
+ foreach(__item IN LISTS cmd)
+ string(APPEND __cmdQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ ExternalProject_Add_Step(${name} install
+ COMMAND ${__cmdQuoted}
+ 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()
+
+ set(__cmdQuoted)
+ foreach(__item IN LISTS cmd)
+ string(APPEND __cmdQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ ExternalProject_Add_Step(${name} test
+ COMMAND ${__cmdQuoted}
+ 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.17/Modules/FLTKCompatibility.cmake b/share/cmake-3.18/Modules/FLTKCompatibility.cmake
index e91531f..e91531f 100644
--- a/share/cmake-3.17/Modules/FLTKCompatibility.cmake
+++ b/share/cmake-3.18/Modules/FLTKCompatibility.cmake
diff --git a/share/cmake-3.17/Modules/FeatureSummary.cmake b/share/cmake-3.18/Modules/FeatureSummary.cmake
index 4a3e83a..4a3e83a 100644
--- a/share/cmake-3.17/Modules/FeatureSummary.cmake
+++ b/share/cmake-3.18/Modules/FeatureSummary.cmake
diff --git a/share/cmake-3.18/Modules/FetchContent.cmake b/share/cmake-3.18/Modules/FetchContent.cmake
new file mode 100644
index 0000000..e05ca96
--- /dev/null
+++ b/share/cmake-3.18/Modules/FetchContent.cmake
@@ -0,0 +1,1154 @@
+# 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.
+
+
+Commands
+^^^^^^^^
+
+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. The ``SOURCE_SUBDIR`` option is an
+ exception, see :command:`FetchContent_MakeAvailable` for details on how that
+ affects behavior.
+
+ 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. Where it meets the needs of
+the project, :command:`FetchContent_MakeAvailable` should be preferred, as it
+is simpler and provides additional features over the pattern above.
+
+.. 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`.
+ This option should not be confused with the ``SOURCE_SUBDIR`` option which
+ only affects the :command:`FetchContent_MakeAvailable` command.
+
+ ``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
+ :ref:`canonical pattern <fetch-content-canonical-pattern>` as
+ presented at the beginning of this section. An important difference is
+ that :command:`add_subdirectory` will only be called 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.
+
+ The ``SOURCE_SUBDIR`` option can be given in the declared details to
+ instruct ``FetchContent_MakeAvailable()`` to look for a ``CMakeLists.txt``
+ file in a subdirectory below the top level (i.e. the same way that
+ ``SOURCE_SUBDIR`` is used by the :command:`ExternalProject_Add` command).
+ ``SOURCE_SUBDIR`` must always be a relative path. See the next section
+ for an example of this option.
+
+
+.. _`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)
+
+If the sub-project's ``CMakeLists.txt`` file is not at the top level of its
+source tree, the ``SOURCE_SUBDIR`` option can be used to tell ``FetchContent``
+where to find it. The following example shows how to use that option and
+it also sets a variable which is meaningful to the subproject before pulling
+it into the main build:
+
+.. code-block:: cmake
+
+ include(FetchContent)
+ FetchContent_Declare(
+ protobuf
+ GIT_REPOSITORY https://github.com/protocolbuffers/protobuf.git
+ GIT_TAG v3.12.0
+ SOURCE_SUBDIR cmake
+ )
+ set(protobuf_BUILD_TESTS OFF)
+ FetchContent_MakeAvailable(protobuf)
+
+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(__cmdArgs)
+ foreach(__item IN LISTS ARGN)
+ string(APPEND __cmdArgs " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE
+ "set_property(GLOBAL PROPERTY ${propertyName} ${__cmdArgs})")
+ 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(PARSE_ARGV 1 ARG
+ "${options}" "${oneValueArgs}" "${multiValueArgs}")
+
+ 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)
+
+ set(__argsQuoted)
+ foreach(__item IN LISTS ARG_UNPARSED_ARGUMENTS)
+ string(APPEND __argsQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ __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
+ ${__argsQuoted}
+ )"
+ )
+
+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
+ # We need special processing if DOWNLOAD_NO_EXTRACT is true
+ DOWNLOAD_NO_EXTRACT
+ # 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(PARSE_ARGV 1 ARG
+ "${options}" "${oneValueArgs}" "${multiValueArgs}")
+
+ 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()
+
+ if(ARG_DOWNLOAD_NO_EXTRACT)
+ set(ARG_EXTRA "${ARG_EXTRA} DOWNLOAD_NO_EXTRACT YES")
+ set(__FETCHCONTENT_COPY_FILE
+"
+ExternalProject_Get_Property(${contentName}-populate DOWNLOADED_FILE)
+get_filename_component(dlFileName \"\${DOWNLOADED_FILE}\" NAME)
+
+ExternalProject_Add_Step(${contentName}-populate copyfile
+ COMMAND \"${CMAKE_COMMAND}\" -E copy_if_different
+ \"<DOWNLOADED_FILE>\" \"${ARG_SOURCE_DIR}\"
+ DEPENDEES patch
+ DEPENDERS configure
+ BYPRODUCTS \"${ARG_SOURCE_DIR}/\${dlFileName}\"
+ COMMENT \"Copying file to SOURCE_DIR\"
+)
+")
+ else()
+ unset(__FETCHCONTENT_COPY_FILE)
+ endif()
+
+ # 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(subCMakeOpts "-G${CMAKE_GENERATOR}")
+ if(CMAKE_GENERATOR_PLATFORM)
+ list(APPEND subCMakeOpts "-A${CMAKE_GENERATOR_PLATFORM}")
+ endif()
+ if(CMAKE_GENERATOR_TOOLSET)
+ list(APPEND subCMakeOpts "-T${CMAKE_GENERATOR_TOOLSET}")
+ endif()
+
+ if(CMAKE_MAKE_PROGRAM)
+ list(APPEND subCMakeOpts "-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(subCMakeOpts)
+ endif()
+
+ if(DEFINED CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY)
+ list(APPEND subCMakeOpts
+ "-DCMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY=${CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY}")
+ 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} ${subCMakeOpts} .
+ 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()
+
+ set(__detailsQuoted)
+ foreach(__item IN LISTS contentDetails)
+ string(APPEND __detailsQuoted " [==[${__item}]==]")
+ endforeach()
+ cmake_language(EVAL CODE "
+ __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)
+ ${__detailsQuoted}
+ )"
+ )
+ 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. We check the saved details for an optional
+ # SOURCE_SUBDIR which can be used in the same way as its meaning
+ # for ExternalProject. It won't matter if it was passed through
+ # to the ExternalProject sub-build, since it would have been
+ # ignored there.
+ set(__fc_srcdir "${${contentNameLower}_SOURCE_DIR}")
+ __FetchContent_getSavedDetails(${contentName} contentDetails)
+ if("${contentDetails}" STREQUAL "")
+ message(FATAL_ERROR "No details have been set for content: ${contentName}")
+ endif()
+ cmake_parse_arguments(__fc_arg "" "SOURCE_SUBDIR" "" ${contentDetails})
+ if(NOT "${__fc_arg_SOURCE_SUBDIR}" STREQUAL "")
+ string(APPEND __fc_srcdir "/${__fc_arg_SOURCE_SUBDIR}")
+ endif()
+
+ if(EXISTS ${__fc_srcdir}/CMakeLists.txt)
+ add_subdirectory(${__fc_srcdir} ${${contentNameLower}_BINARY_DIR})
+ endif()
+
+ unset(__fc_srcdir)
+ endif()
+ endforeach()
+
+endmacro()
diff --git a/share/cmake-3.18/Modules/FetchContent/CMakeLists.cmake.in b/share/cmake-3.18/Modules/FetchContent/CMakeLists.cmake.in
new file mode 100644
index 0000000..45e4df0
--- /dev/null
+++ b/share/cmake-3.18/Modules/FetchContent/CMakeLists.cmake.in
@@ -0,0 +1,25 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+cmake_minimum_required(VERSION ${CMAKE_VERSION})
+
+# We name the project and the target for the ExternalProject_Add() call
+# to something that will highlight to the user what we are working on if
+# something goes wrong and an error message is produced.
+
+project(${contentName}-populate NONE)
+
+include(ExternalProject)
+ExternalProject_Add(${contentName}-populate
+ ${ARG_EXTRA}
+ SOURCE_DIR "${ARG_SOURCE_DIR}"
+ BINARY_DIR "${ARG_BINARY_DIR}"
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
+ TEST_COMMAND ""
+ USES_TERMINAL_DOWNLOAD YES
+ USES_TERMINAL_UPDATE YES
+)
+
+@__FETCHCONTENT_COPY_FILE@
diff --git a/share/cmake-3.17/Modules/FindALSA.cmake b/share/cmake-3.18/Modules/FindALSA.cmake
index 88e2681..88e2681 100644
--- a/share/cmake-3.17/Modules/FindALSA.cmake
+++ b/share/cmake-3.18/Modules/FindALSA.cmake
diff --git a/share/cmake-3.17/Modules/FindASPELL.cmake b/share/cmake-3.18/Modules/FindASPELL.cmake
index c2d29e2..c2d29e2 100644
--- a/share/cmake-3.17/Modules/FindASPELL.cmake
+++ b/share/cmake-3.18/Modules/FindASPELL.cmake
diff --git a/share/cmake-3.17/Modules/FindAVIFile.cmake b/share/cmake-3.18/Modules/FindAVIFile.cmake
index 9655440..9655440 100644
--- a/share/cmake-3.17/Modules/FindAVIFile.cmake
+++ b/share/cmake-3.18/Modules/FindAVIFile.cmake
diff --git a/share/cmake-3.18/Modules/FindArmadillo.cmake b/share/cmake-3.18/Modules/FindArmadillo.cmake
new file mode 100644
index 0000000..243b9e0
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindArmadillo.cmake
@@ -0,0 +1,131 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindArmadillo
+-------------
+
+Find the Armadillo C++ library.
+Armadillo is a library for linear algebra & scientific computing.
+
+Using Armadillo:
+
+::
+
+ find_package(Armadillo REQUIRED)
+ include_directories(${ARMADILLO_INCLUDE_DIRS})
+ add_executable(foo foo.cc)
+ target_link_libraries(foo ${ARMADILLO_LIBRARIES})
+
+This module sets the following variables:
+
+::
+
+ ARMADILLO_FOUND - set to true if the library is found
+ ARMADILLO_INCLUDE_DIRS - list of required include directories
+ ARMADILLO_LIBRARIES - list of libraries to be linked
+ ARMADILLO_VERSION_MAJOR - major version number
+ ARMADILLO_VERSION_MINOR - minor version number
+ ARMADILLO_VERSION_PATCH - patch version number
+ ARMADILLO_VERSION_STRING - version number as a string (ex: "1.0.4")
+ ARMADILLO_VERSION_NAME - name of the version (ex: "Antipodean Antileech")
+#]=======================================================================]
+
+find_path(ARMADILLO_INCLUDE_DIR
+ NAMES armadillo
+ PATHS "$ENV{ProgramFiles}/Armadillo/include"
+ )
+mark_as_advanced(ARMADILLO_INCLUDE_DIR)
+
+if(ARMADILLO_INCLUDE_DIR)
+ # ------------------------------------------------------------------------
+ # Extract version information from <armadillo>
+ # ------------------------------------------------------------------------
+
+ # WARNING: Early releases of Armadillo didn't have the arma_version.hpp file.
+ # (e.g. v.0.9.8-1 in ubuntu maverick packages (2001-03-15))
+ # If the file is missing, set all values to 0
+ set(ARMADILLO_VERSION_MAJOR 0)
+ set(ARMADILLO_VERSION_MINOR 0)
+ set(ARMADILLO_VERSION_PATCH 0)
+ set(ARMADILLO_VERSION_NAME "EARLY RELEASE")
+
+ if(EXISTS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/arma_version.hpp")
+
+ # Read and parse armdillo version header file for version number
+ file(STRINGS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/arma_version.hpp" _ARMA_HEADER_CONTENTS REGEX "#define ARMA_VERSION_[A-Z]+ ")
+ string(REGEX REPLACE ".*#define ARMA_VERSION_MAJOR ([0-9]+).*" "\\1" ARMADILLO_VERSION_MAJOR "${_ARMA_HEADER_CONTENTS}")
+ string(REGEX REPLACE ".*#define ARMA_VERSION_MINOR ([0-9]+).*" "\\1" ARMADILLO_VERSION_MINOR "${_ARMA_HEADER_CONTENTS}")
+ string(REGEX REPLACE ".*#define ARMA_VERSION_PATCH ([0-9]+).*" "\\1" ARMADILLO_VERSION_PATCH "${_ARMA_HEADER_CONTENTS}")
+
+ # WARNING: The number of spaces before the version name is not one.
+ string(REGEX REPLACE ".*#define ARMA_VERSION_NAME\ +\"([0-9a-zA-Z\ _-]+)\".*" "\\1" ARMADILLO_VERSION_NAME "${_ARMA_HEADER_CONTENTS}")
+
+ endif()
+
+ set(ARMADILLO_VERSION_STRING "${ARMADILLO_VERSION_MAJOR}.${ARMADILLO_VERSION_MINOR}.${ARMADILLO_VERSION_PATCH}")
+endif ()
+
+if(EXISTS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/config.hpp")
+ file(STRINGS "${ARMADILLO_INCLUDE_DIR}/armadillo_bits/config.hpp" _ARMA_CONFIG_CONTENTS REGEX "^#define ARMA_USE_[A-Z]+")
+ string(REGEX MATCH "ARMA_USE_WRAPPER" _ARMA_USE_WRAPPER "${_ARMA_CONFIG_CONTENTS}")
+ string(REGEX MATCH "ARMA_USE_LAPACK" _ARMA_USE_LAPACK "${_ARMA_CONFIG_CONTENTS}")
+ string(REGEX MATCH "ARMA_USE_BLAS" _ARMA_USE_BLAS "${_ARMA_CONFIG_CONTENTS}")
+ string(REGEX MATCH "ARMA_USE_ARPACK" _ARMA_USE_ARPACK "${_ARMA_CONFIG_CONTENTS}")
+ string(REGEX MATCH "ARMA_USE_HDF5" _ARMA_USE_HDF5 "${_ARMA_CONFIG_CONTENTS}")
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+# If _ARMA_USE_WRAPPER is set, then we just link to armadillo, but if it's not then we need support libraries instead
+set(_ARMA_SUPPORT_LIBRARIES)
+
+if(_ARMA_USE_WRAPPER)
+ # Link to the armadillo wrapper library.
+ find_library(ARMADILLO_LIBRARY
+ NAMES armadillo
+ PATHS
+ "$ENV{ProgramFiles}/Armadillo/lib"
+ "$ENV{ProgramFiles}/Armadillo/lib64"
+ "$ENV{ProgramFiles}/Armadillo"
+ )
+ mark_as_advanced(ARMADILLO_LIBRARY)
+ set(_ARMA_REQUIRED_VARS ARMADILLO_LIBRARY)
+else()
+ # Link directly to individual components.
+ set(ARMADILLO_LIBRARY "")
+ foreach(pkg
+ LAPACK
+ BLAS
+ ARPACK
+ HDF5
+ )
+ if(_ARMA_USE_${pkg})
+ find_package(${pkg} QUIET)
+ list(APPEND _ARMA_REQUIRED_VARS "${pkg}_FOUND")
+ if(${pkg}_FOUND)
+ list(APPEND _ARMA_SUPPORT_LIBRARIES ${${pkg}_LIBRARIES})
+ endif()
+ endif()
+ endforeach()
+endif()
+
+find_package_handle_standard_args(Armadillo
+ REQUIRED_VARS ARMADILLO_INCLUDE_DIR ${_ARMA_REQUIRED_VARS}
+ VERSION_VAR ARMADILLO_VERSION_STRING)
+
+if (ARMADILLO_FOUND)
+ set(ARMADILLO_INCLUDE_DIRS ${ARMADILLO_INCLUDE_DIR})
+ set(ARMADILLO_LIBRARIES ${ARMADILLO_LIBRARY} ${_ARMA_SUPPORT_LIBRARIES})
+endif ()
+
+# Clean up internal variables
+unset(_ARMA_REQUIRED_VARS)
+unset(_ARMA_SUPPORT_LIBRARIES)
+unset(_ARMA_USE_WRAPPER)
+unset(_ARMA_USE_LAPACK)
+unset(_ARMA_USE_BLAS)
+unset(_ARMA_USE_ARPACK)
+unset(_ARMA_USE_HDF5)
+unset(_ARMA_CONFIG_CONTENTS)
+unset(_ARMA_HEADER_CONTENTS)
diff --git a/share/cmake-3.18/Modules/FindBISON.cmake b/share/cmake-3.18/Modules/FindBISON.cmake
new file mode 100644
index 0000000..1e1a5a3
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindBISON.cmake
@@ -0,0 +1,297 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindBISON
+---------
+
+Find ``bison`` executable and provide a macro to generate custom build rules.
+
+The module defines the following variables:
+
+``BISON_EXECUTABLE``
+ path to the ``bison`` program
+
+``BISON_VERSION``
+ version of ``bison``
+
+``BISON_FOUND``
+ "True" if the program was found
+
+The minimum required version of ``bison`` can be specified using the
+standard CMake syntax, e.g. :command:`find_package(BISON 2.1.3)`.
+
+If ``bison`` is found, the module defines the macro::
+
+ BISON_TARGET(<Name> <YaccInput> <CodeOutput>
+ [COMPILE_FLAGS <flags>]
+ [DEFINES_FILE <file>]
+ [VERBOSE [<file>]]
+ [REPORT_FILE <file>]
+ )
+
+which will create a custom rule to generate a parser. ``<YaccInput>`` is
+the path to a yacc file. ``<CodeOutput>`` is the name of the source file
+generated by bison. A header file is also be generated, and contains
+the token list.
+
+The options are:
+
+``COMPILE_FLAGS <flags>``
+ Specify flags to be added to the ``bison`` command line.
+
+``DEFINES_FILE <file>``
+ Specify a non-default header ``<file>`` to be generated by ``bison``.
+
+``VERBOSE [<file>]``
+ Tell ``bison`` to write a report file of the grammar and parser.
+ If ``<file>`` is given, it specifies path the report file is copied to.
+ ``[<file>]`` is left for backward compatibility of this module.
+ Use ``VERBOSE REPORT_FILE <file>``.
+
+``REPORT_FILE <file>``
+ Specify a non-default report ``<file>``, if generated.
+
+The macro defines the following variables:
+
+``BISON_<Name>_DEFINED``
+ ``True`` is the macro ran successfully
+
+``BISON_<Name>_INPUT``
+ The input source file, an alias for <YaccInput>
+
+``BISON_<Name>_OUTPUT_SOURCE``
+ The source file generated by bison
+
+``BISON_<Name>_OUTPUT_HEADER``
+ The header file generated by bison
+
+``BISON_<Name>_OUTPUTS``
+ All files generated by bison including the source, the header and the report
+
+``BISON_<Name>_COMPILE_FLAGS``
+ Options used in the ``bison`` command line
+
+Example usage:
+
+.. code-block:: cmake
+
+ find_package(BISON)
+ BISON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
+ DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/parser.h)
+ add_executable(Foo main.cpp ${BISON_MyParser_OUTPUTS})
+#]=======================================================================]
+
+find_program(BISON_EXECUTABLE NAMES bison win-bison win_bison DOC "path to the bison executable")
+mark_as_advanced(BISON_EXECUTABLE)
+
+if(BISON_EXECUTABLE)
+ # the bison commands should be executed with the C locale, otherwise
+ # the message (which are parsed) may be translated
+ set(_Bison_SAVED_LC_ALL "$ENV{LC_ALL}")
+ set(ENV{LC_ALL} C)
+
+ execute_process(COMMAND ${BISON_EXECUTABLE} --version
+ OUTPUT_VARIABLE BISON_version_output
+ ERROR_VARIABLE BISON_version_error
+ RESULT_VARIABLE BISON_version_result
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ set(ENV{LC_ALL} ${_Bison_SAVED_LC_ALL})
+
+ if(NOT ${BISON_version_result} EQUAL 0)
+ message(SEND_ERROR "Command \"${BISON_EXECUTABLE} --version\" failed with output:\n${BISON_version_error}")
+ else()
+ # Bison++
+ if("${BISON_version_output}" MATCHES "^bison\\+\\+ Version ([^,]+)")
+ set(BISON_VERSION "${CMAKE_MATCH_1}")
+ # GNU Bison
+ elseif("${BISON_version_output}" MATCHES "^bison \\(GNU Bison\\) ([^\n]+)\n")
+ set(BISON_VERSION "${CMAKE_MATCH_1}")
+ elseif("${BISON_version_output}" MATCHES "^GNU Bison (version )?([^\n]+)")
+ set(BISON_VERSION "${CMAKE_MATCH_2}")
+ endif()
+ endif()
+
+ # internal macro
+ # sets BISON_TARGET_cmdopt
+ macro(BISON_TARGET_option_extraopts Options)
+ set(BISON_TARGET_cmdopt "")
+ set(BISON_TARGET_extraopts "${Options}")
+ separate_arguments(BISON_TARGET_extraopts)
+ list(APPEND BISON_TARGET_cmdopt ${BISON_TARGET_extraopts})
+ endmacro()
+
+ # internal macro
+ # sets BISON_TARGET_output_header and BISON_TARGET_cmdopt
+ macro(BISON_TARGET_option_defines BisonOutput Header)
+ if("${Header}" STREQUAL "")
+ # default header path generated by bison (see option -d)
+ string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${BisonOutput}")
+ string(REPLACE "c" "h" _fileext ${_fileext})
+ string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}"
+ BISON_TARGET_output_header "${BisonOutput}")
+ list(APPEND BISON_TARGET_cmdopt "-d")
+ else()
+ set(BISON_TARGET_output_header "${Header}")
+ list(APPEND BISON_TARGET_cmdopt "--defines=${BISON_TARGET_output_header}")
+ endif()
+ endmacro()
+
+ # internal macro
+ # sets BISON_TARGET_verbose_file and BISON_TARGET_cmdopt
+ macro(BISON_TARGET_option_report_file BisonOutput ReportFile)
+ if("${ReportFile}" STREQUAL "")
+ get_filename_component(BISON_TARGET_output_path "${BisonOutput}" PATH)
+ get_filename_component(BISON_TARGET_output_name "${BisonOutput}" NAME_WE)
+ set(BISON_TARGET_verbose_file
+ "${BISON_TARGET_output_path}/${BISON_TARGET_output_name}.output")
+ else()
+ set(BISON_TARGET_verbose_file "${ReportFile}")
+ list(APPEND BISON_TARGET_cmdopt "--report-file=${BISON_TARGET_verbose_file}")
+ endif()
+ if(NOT IS_ABSOLUTE "${BISON_TARGET_verbose_file}")
+ cmake_policy(GET CMP0088 _BISON_CMP0088
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+ if("x${_BISON_CMP0088}x" STREQUAL "xNEWx")
+ set(BISON_TARGET_verbose_file "${CMAKE_CURRENT_BINARY_DIR}/${BISON_TARGET_verbose_file}")
+ else()
+ set(BISON_TARGET_verbose_file "${CMAKE_CURRENT_SOURCE_DIR}/${BISON_TARGET_verbose_file}")
+ endif()
+ unset(_BISON_CMP0088)
+ endif()
+ endmacro()
+
+ # internal macro
+ # adds a custom command and sets
+ # BISON_TARGET_cmdopt, BISON_TARGET_extraoutputs
+ macro(BISON_TARGET_option_verbose Name BisonOutput filename)
+ cmake_policy(GET CMP0088 _BISON_CMP0088
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+ set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ if("x${_BISON_CMP0088}x" STREQUAL "xNEWx")
+ set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+ endif()
+ unset(_BISON_CMP0088)
+
+ list(APPEND BISON_TARGET_cmdopt "--verbose")
+ list(APPEND BISON_TARGET_outputs
+ "${BISON_TARGET_verbose_file}")
+ if (NOT "${filename}" STREQUAL "")
+ if(IS_ABSOLUTE "${filename}")
+ set(BISON_TARGET_verbose_extra_file "${filename}")
+ else()
+ set(BISON_TARGET_verbose_extra_file "${_BISON_WORKING_DIRECTORY}/${filename}")
+ endif()
+
+ add_custom_command(OUTPUT ${BISON_TARGET_verbose_extra_file}
+ COMMAND ${CMAKE_COMMAND} -E copy
+ "${BISON_TARGET_verbose_file}"
+ "${filename}"
+ VERBATIM
+ DEPENDS
+ "${BISON_TARGET_verbose_file}"
+ COMMENT "[BISON][${Name}] Copying bison verbose table to ${filename}"
+ WORKING_DIRECTORY ${_BISON_WORKING_DIRECTORY})
+ list(APPEND BISON_TARGET_extraoutputs
+ "${BISON_TARGET_verbose_extra_file}")
+ unset(BISON_TARGET_verbose_extra_file)
+ unset(_BISON_WORKING_DIRECTORY)
+ endif()
+ endmacro()
+
+ #============================================================
+ # BISON_TARGET (public macro)
+ #============================================================
+ #
+ macro(BISON_TARGET Name BisonInput BisonOutput)
+ set(BISON_TARGET_outputs "${BisonOutput}")
+ set(BISON_TARGET_extraoutputs "")
+
+ # Parsing parameters
+ set(BISON_TARGET_PARAM_OPTIONS
+ )
+ set(BISON_TARGET_PARAM_ONE_VALUE_KEYWORDS
+ COMPILE_FLAGS
+ DEFINES_FILE
+ REPORT_FILE
+ )
+ set(BISON_TARGET_PARAM_MULTI_VALUE_KEYWORDS
+ VERBOSE
+ )
+ cmake_parse_arguments(
+ BISON_TARGET_ARG
+ "${BISON_TARGET_PARAM_OPTIONS}"
+ "${BISON_TARGET_PARAM_ONE_VALUE_KEYWORDS}"
+ "${BISON_TARGET_PARAM_MULTI_VALUE_KEYWORDS}"
+ ${ARGN}
+ )
+
+ if(NOT "${BISON_TARGET_ARG_UNPARSED_ARGUMENTS}" STREQUAL "")
+ message(SEND_ERROR "Usage")
+ elseif("${BISON_TARGET_ARG_VERBOSE}" MATCHES ";")
+ # [VERBOSE [<file>] hack: <file> is non-multi value by usage
+ message(SEND_ERROR "Usage")
+ else()
+
+ BISON_TARGET_option_extraopts("${BISON_TARGET_ARG_COMPILE_FLAGS}")
+ BISON_TARGET_option_defines("${BisonOutput}" "${BISON_TARGET_ARG_DEFINES_FILE}")
+ BISON_TARGET_option_report_file("${BisonOutput}" "${BISON_TARGET_ARG_REPORT_FILE}")
+ if(NOT "${BISON_TARGET_ARG_VERBOSE}" STREQUAL "")
+ BISON_TARGET_option_verbose(${Name} ${BisonOutput} "${BISON_TARGET_ARG_VERBOSE}")
+ else()
+ # [VERBOSE [<file>]] is used with no argument or is not used
+ set(BISON_TARGET_args "${ARGN}")
+ list(FIND BISON_TARGET_args "VERBOSE" BISON_TARGET_args_indexof_verbose)
+ if(${BISON_TARGET_args_indexof_verbose} GREATER -1)
+ # VERBOSE is used without <file>
+ BISON_TARGET_option_verbose(${Name} ${BisonOutput} "")
+ endif()
+ endif()
+
+ list(APPEND BISON_TARGET_outputs "${BISON_TARGET_output_header}")
+
+ cmake_policy(GET CMP0088 _BISON_CMP0088
+ PARENT_SCOPE # undocumented, do not use outside of CMake
+ )
+ set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+ set(_BisonInput "${BisonInput}")
+ if("x${_BISON_CMP0088}x" STREQUAL "xNEWx")
+ set(_BISON_WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+ if(NOT IS_ABSOLUTE "${_BisonInput}")
+ set(_BisonInput "${CMAKE_CURRENT_SOURCE_DIR}/${_BisonInput}")
+ endif()
+ endif()
+ unset(_BISON_CMP0088)
+
+ add_custom_command(OUTPUT ${BISON_TARGET_outputs}
+ COMMAND ${BISON_EXECUTABLE} ${BISON_TARGET_cmdopt} -o ${BisonOutput} ${_BisonInput}
+ VERBATIM
+ DEPENDS ${_BisonInput}
+ COMMENT "[BISON][${Name}] Building parser with bison ${BISON_VERSION}"
+ WORKING_DIRECTORY ${_BISON_WORKING_DIRECTORY})
+
+ unset(_BISON_WORKING_DIRECTORY)
+
+ # define target variables
+ set(BISON_${Name}_DEFINED TRUE)
+ set(BISON_${Name}_INPUT ${_BisonInput})
+ set(BISON_${Name}_OUTPUTS ${BISON_TARGET_outputs} ${BISON_TARGET_extraoutputs})
+ set(BISON_${Name}_COMPILE_FLAGS ${BISON_TARGET_cmdopt})
+ set(BISON_${Name}_OUTPUT_SOURCE "${BisonOutput}")
+ set(BISON_${Name}_OUTPUT_HEADER "${BISON_TARGET_output_header}")
+
+ unset(_BisonInput)
+
+ endif()
+ endmacro()
+ #
+ #============================================================
+
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(BISON REQUIRED_VARS BISON_EXECUTABLE
+ VERSION_VAR BISON_VERSION)
diff --git a/share/cmake-3.18/Modules/FindBLAS.cmake b/share/cmake-3.18/Modules/FindBLAS.cmake
new file mode 100644
index 0000000..60f178b
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindBLAS.cmake
@@ -0,0 +1,959 @@
+# 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``
+ * ``Arm``
+ * ``Arm_mp``
+ * ``Arm_ilp64``
+ * ``Arm_ilp64_mp``
+ * ``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
+
+Imported targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` target:
+
+``BLAS::BLAS``
+ The libraries to use for BLAS, if found.
+
+
+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()
+
+function(_add_blas_target)
+ if(NOT TARGET BLAS::BLAS)
+ add_library(BLAS::BLAS INTERFACE IMPORTED)
+ if(BLAS_LIBRARIES)
+ set_target_properties(BLAS::BLAS PROPERTIES
+ INTERFACE_LINK_LIBRARIES "${BLAS_LIBRARIES}"
+ )
+ endif()
+ endif()
+endfunction()
+
+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}")
+ _add_blas_target()
+ 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})
+ file(TO_CMAKE_PATH "$ENV{MKLROOT}" BLAS_mkl_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()
+
+# ArmPL blas library? (https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries)
+if(BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All")
+
+ # Check for 64bit Integer support
+ if(BLA_VENDOR MATCHES "_ilp64")
+ set(BLAS_armpl_LIB "armpl_ilp64")
+ else()
+ set(BLAS_armpl_LIB "armpl_lp64")
+ endif()
+
+ # Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
+ if(BLA_VENDOR MATCHES "_mp")
+ set(BLAS_armpl_LIB "${BLAS_armpl_LIB}_mp")
+ endif()
+
+ if(NOT BLAS_LIBRARIES)
+ check_blas_libraries(
+ BLAS_LIBRARIES
+ BLAS
+ sgemm
+ ""
+ "${BLAS_armpl_LIB}"
+ ""
+ ""
+ ""
+ )
+ 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()
+
+_add_blas_target()
+cmake_pop_check_state()
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/share/cmake-3.17/Modules/FindBZip2.cmake b/share/cmake-3.18/Modules/FindBZip2.cmake
index 98ab72c..98ab72c 100644
--- a/share/cmake-3.17/Modules/FindBZip2.cmake
+++ b/share/cmake-3.18/Modules/FindBZip2.cmake
diff --git a/share/cmake-3.17/Modules/FindBacktrace.cmake b/share/cmake-3.18/Modules/FindBacktrace.cmake
index 3d8ce88..3d8ce88 100644
--- a/share/cmake-3.17/Modules/FindBacktrace.cmake
+++ b/share/cmake-3.18/Modules/FindBacktrace.cmake
diff --git a/share/cmake-3.18/Modules/FindBoost.cmake b/share/cmake-3.18/Modules/FindBoost.cmake
new file mode 100644
index 0000000..13981d3
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindBoost.cmake
@@ -0,0 +1,2390 @@
+# 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_LIB_PREFIX - Set to the platform-specific library name
+ prefix (e.g. "lib") used by Boost static libs.
+ This is needed only on platforms where CMake
+ does not know the prefix by default.
+ 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)
+ if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.73 AND _boost_COMPILER_VERSION_MAJOR VERSION_GREATER_EQUAL 5)
+ set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION_MAJOR}")
+ else()
+ set(_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
+ endif()
+ 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)
+ if(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(Boost_VERSION_STRING VERSION_LESS 1.73.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)
+ else()
+ 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)
+ if(Boost_VERSION_STRING VERSION_GREATER_EQUAL 1.74.0)
+ message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
+ endif()
+ 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_NOWIDE_HEADERS "boost/nowide/cstdlib.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.73.0" "1.73" "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
+# ------------------------------------------------------------------------
+
+if ( NOT DEFINED Boost_LIB_PREFIX )
+ # Boost's static libraries use a "lib" prefix on DLL platforms
+ # to distinguish them from the DLL import libraries.
+ if (Boost_USE_STATIC_LIBS AND (
+ (WIN32 AND NOT CYGWIN)
+ OR GHSMULTI
+ ))
+ set(Boost_LIB_PREFIX "lib")
+ else()
+ set(Boost_LIB_PREFIX "")
+ endif()
+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.17/Modules/FindBullet.cmake b/share/cmake-3.18/Modules/FindBullet.cmake
index 6d64185..6d64185 100644
--- a/share/cmake-3.17/Modules/FindBullet.cmake
+++ b/share/cmake-3.18/Modules/FindBullet.cmake
diff --git a/share/cmake-3.17/Modules/FindCABLE.cmake b/share/cmake-3.18/Modules/FindCABLE.cmake
index 1f4ae76..1f4ae76 100644
--- a/share/cmake-3.17/Modules/FindCABLE.cmake
+++ b/share/cmake-3.18/Modules/FindCABLE.cmake
diff --git a/share/cmake-3.18/Modules/FindCUDA.cmake b/share/cmake-3.18/Modules/FindCUDA.cmake
new file mode 100644
index 0000000..a93d4fd
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindCUDA.cmake
@@ -0,0 +1,2027 @@
+#[=======================================================================[.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 - 10.2.
+ Replaced by nvjpeg.
+ 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)
+ if(CUDA_VERSION VERSION_LESS "11.0")
+ find_cuda_helper_libs(nppicom)
+ endif()
+ 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.17/Modules/FindCUDA/make2cmake.cmake b/share/cmake-3.18/Modules/FindCUDA/make2cmake.cmake
index 580f24a..580f24a 100644
--- a/share/cmake-3.17/Modules/FindCUDA/make2cmake.cmake
+++ b/share/cmake-3.18/Modules/FindCUDA/make2cmake.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDA/parse_cubin.cmake b/share/cmake-3.18/Modules/FindCUDA/parse_cubin.cmake
index 626c8a2..626c8a2 100644
--- a/share/cmake-3.17/Modules/FindCUDA/parse_cubin.cmake
+++ b/share/cmake-3.18/Modules/FindCUDA/parse_cubin.cmake
diff --git a/share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake b/share/cmake-3.18/Modules/FindCUDA/run_nvcc.cmake
index ba35433..ba35433 100644
--- a/share/cmake-3.17/Modules/FindCUDA/run_nvcc.cmake
+++ b/share/cmake-3.18/Modules/FindCUDA/run_nvcc.cmake
diff --git a/share/cmake-3.18/Modules/FindCUDA/select_compute_arch.cmake b/share/cmake-3.18/Modules/FindCUDA/select_compute_arch.cmake
new file mode 100644
index 0000000..c11725d
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindCUDA/select_compute_arch.cmake
@@ -0,0 +1,291 @@
+# Synopsis:
+# 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 Volta Turing Ampere
+# 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 7.0 7.2 7.5 8.0
+# 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
+#
+
+if(CMAKE_CUDA_COMPILER_LOADED) # CUDA as a language
+ if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA"
+ AND CMAKE_CUDA_COMPILER_VERSION MATCHES "^([0-9]+\\.[0-9]+)")
+ set(CUDA_VERSION "${CMAKE_MATCH_1}")
+ endif()
+endif()
+
+# See: https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#gpu-feature-list
+
+# This list will be used for CUDA_ARCH_NAME = All option
+set(CUDA_KNOWN_GPU_ARCHITECTURES "Fermi" "Kepler" "Maxwell")
+
+# This list will be used for CUDA_ARCH_NAME = Common option (enabled by default)
+set(CUDA_COMMON_GPU_ARCHITECTURES "3.5" "5.0")
+# 3.0 is removed in CUDA 11, see:
+# https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#deprecated-features
+if(CUDA_VERSION VERSION_LESS "11.0")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "3.0")
+endif()
+
+if(CUDA_VERSION VERSION_LESS "7.0")
+ set(CUDA_LIMIT_GPU_ARCHITECTURE "5.2")
+endif()
+
+# This list is used to filter CUDA archs when autodetecting
+set(CUDA_ALL_GPU_ARCHITECTURES "3.0" "3.2" "3.5" "5.0")
+
+if(CUDA_VERSION VERSION_GREATER_EQUAL "7.0")
+ list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Kepler+Tegra" "Kepler+Tesla" "Maxwell+Tegra")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "5.2")
+
+ if(CUDA_VERSION VERSION_LESS "8.0")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "5.2+PTX")
+ set(CUDA_LIMIT_GPU_ARCHITECTURE "6.0")
+ endif()
+endif()
+
+if(CUDA_VERSION VERSION_GREATER_EQUAL "8.0")
+ list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Pascal")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "6.0" "6.1")
+ list(APPEND CUDA_ALL_GPU_ARCHITECTURES "6.0" "6.1" "6.2")
+
+ if(CUDA_VERSION VERSION_LESS "9.0")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "6.2+PTX")
+ set(CUDA_LIMIT_GPU_ARCHITECTURE "7.0")
+ endif()
+endif ()
+
+if(CUDA_VERSION VERSION_GREATER_EQUAL "9.0")
+ list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Volta")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.0")
+ list(APPEND CUDA_ALL_GPU_ARCHITECTURES "7.0" "7.2")
+
+ if(CUDA_VERSION VERSION_LESS "10.0")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.2+PTX")
+ set(CUDA_LIMIT_GPU_ARCHITECTURE "8.0")
+ endif()
+endif()
+
+if(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
+ list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Turing")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.5")
+ list(APPEND CUDA_ALL_GPU_ARCHITECTURES "7.5")
+
+ if(CUDA_VERSION VERSION_LESS "11.0")
+ set(CUDA_LIMIT_GPU_ARCHITECTURE "8.0")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "7.5+PTX")
+ endif()
+endif()
+
+if(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
+ list(APPEND CUDA_KNOWN_GPU_ARCHITECTURES "Ampere")
+ list(APPEND CUDA_COMMON_GPU_ARCHITECTURES "8.0" "8.0+PTX")
+ list(APPEND CUDA_ALL_GPU_ARCHITECTURES "8.0")
+
+ if(CUDA_VERSION VERSION_LESS "12.0")
+ set(CUDA_LIMIT_GPU_ARCHITECTURE "9.0")
+ endif()
+endif()
+
+################################################################################################
+# A function for automatic detection of GPUs installed (if autodetection is enabled)
+# Usage:
+# CUDA_DETECT_INSTALLED_GPUS(OUT_VARIABLE)
+#
+function(CUDA_DETECT_INSTALLED_GPUS OUT_VARIABLE)
+ if(NOT CUDA_GPU_DETECT_OUTPUT)
+ if(CMAKE_CUDA_COMPILER_LOADED) # CUDA as a language
+ set(file "${PROJECT_BINARY_DIR}/detect_cuda_compute_capabilities.cu")
+ else()
+ set(file "${PROJECT_BINARY_DIR}/detect_cuda_compute_capabilities.cpp")
+ endif()
+
+ file(WRITE ${file} ""
+ "#include <cuda_runtime.h>\n"
+ "#include <cstdio>\n"
+ "int main()\n"
+ "{\n"
+ " int count = 0;\n"
+ " if (cudaSuccess != cudaGetDeviceCount(&count)) return -1;\n"
+ " if (count == 0) return -1;\n"
+ " for (int device = 0; device < count; ++device)\n"
+ " {\n"
+ " cudaDeviceProp prop;\n"
+ " if (cudaSuccess == cudaGetDeviceProperties(&prop, device))\n"
+ " std::printf(\"%d.%d \", prop.major, prop.minor);\n"
+ " }\n"
+ " return 0;\n"
+ "}\n")
+
+ if(CMAKE_CUDA_COMPILER_LOADED) # CUDA as a language
+ try_run(run_result compile_result ${PROJECT_BINARY_DIR} ${file}
+ RUN_OUTPUT_VARIABLE compute_capabilities)
+ else()
+ try_run(run_result compile_result ${PROJECT_BINARY_DIR} ${file}
+ CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${CUDA_INCLUDE_DIRS}"
+ LINK_LIBRARIES ${CUDA_LIBRARIES}
+ RUN_OUTPUT_VARIABLE compute_capabilities)
+ endif()
+
+ # Filter unrelated content out of the output.
+ string(REGEX MATCHALL "[0-9]+\\.[0-9]+" compute_capabilities "${compute_capabilities}")
+
+ if(run_result EQUAL 0)
+ string(REPLACE "2.1" "2.1(2.0)" compute_capabilities "${compute_capabilities}")
+ set(CUDA_GPU_DETECT_OUTPUT ${compute_capabilities}
+ CACHE INTERNAL "Returned GPU architectures from detect_gpus tool" FORCE)
+ endif()
+ endif()
+
+ if(NOT CUDA_GPU_DETECT_OUTPUT)
+ message(STATUS "Automatic GPU detection failed. Building for common architectures.")
+ set(${OUT_VARIABLE} ${CUDA_COMMON_GPU_ARCHITECTURES} PARENT_SCOPE)
+ else()
+ # Filter based on CUDA version supported archs
+ set(CUDA_GPU_DETECT_OUTPUT_FILTERED "")
+ separate_arguments(CUDA_GPU_DETECT_OUTPUT)
+ foreach(ITEM IN ITEMS ${CUDA_GPU_DETECT_OUTPUT})
+ if(CUDA_LIMIT_GPU_ARCHITECTURE AND ITEM VERSION_GREATER_EQUAL CUDA_LIMIT_GPU_ARCHITECTURE)
+ list(GET CUDA_COMMON_GPU_ARCHITECTURES -1 NEWITEM)
+ string(APPEND CUDA_GPU_DETECT_OUTPUT_FILTERED " ${NEWITEM}")
+ else()
+ string(APPEND CUDA_GPU_DETECT_OUTPUT_FILTERED " ${ITEM}")
+ endif()
+ endforeach()
+
+ set(${OUT_VARIABLE} ${CUDA_GPU_DETECT_OUTPUT_FILTERED} PARENT_SCOPE)
+ endif()
+endfunction()
+
+
+################################################################################################
+# Function for selecting GPU arch flags for nvcc based on CUDA architectures from parameter list
+# Usage:
+# SELECT_NVCC_ARCH_FLAGS(out_variable [list of CUDA compute archs])
+function(CUDA_SELECT_NVCC_ARCH_FLAGS out_variable)
+ set(CUDA_ARCH_LIST "${ARGN}")
+
+ if("X${CUDA_ARCH_LIST}" STREQUAL "X" )
+ set(CUDA_ARCH_LIST "Auto")
+ endif()
+
+ set(cuda_arch_bin)
+ set(cuda_arch_ptx)
+
+ if("${CUDA_ARCH_LIST}" STREQUAL "All")
+ set(CUDA_ARCH_LIST ${CUDA_KNOWN_GPU_ARCHITECTURES})
+ elseif("${CUDA_ARCH_LIST}" STREQUAL "Common")
+ set(CUDA_ARCH_LIST ${CUDA_COMMON_GPU_ARCHITECTURES})
+ elseif("${CUDA_ARCH_LIST}" STREQUAL "Auto")
+ CUDA_DETECT_INSTALLED_GPUS(CUDA_ARCH_LIST)
+ message(STATUS "Autodetected CUDA architecture(s): ${CUDA_ARCH_LIST}")
+ endif()
+
+ # Now process the list and look for names
+ string(REGEX REPLACE "[ \t]+" ";" CUDA_ARCH_LIST "${CUDA_ARCH_LIST}")
+ list(REMOVE_DUPLICATES CUDA_ARCH_LIST)
+ foreach(arch_name ${CUDA_ARCH_LIST})
+ set(arch_bin)
+ set(arch_ptx)
+ set(add_ptx FALSE)
+ # Check to see if we are compiling PTX
+ if(arch_name MATCHES "(.*)\\+PTX$")
+ set(add_ptx TRUE)
+ set(arch_name ${CMAKE_MATCH_1})
+ endif()
+ if(arch_name MATCHES "^([0-9]\\.[0-9](\\([0-9]\\.[0-9]\\))?)$")
+ set(arch_bin ${CMAKE_MATCH_1})
+ set(arch_ptx ${arch_bin})
+ else()
+ # Look for it in our list of known architectures
+ if(${arch_name} STREQUAL "Fermi")
+ set(arch_bin 2.0 "2.1(2.0)")
+ elseif(${arch_name} STREQUAL "Kepler+Tegra")
+ set(arch_bin 3.2)
+ elseif(${arch_name} STREQUAL "Kepler+Tesla")
+ set(arch_bin 3.7)
+ elseif(${arch_name} STREQUAL "Kepler")
+ set(arch_bin 3.0 3.5)
+ set(arch_ptx 3.5)
+ elseif(${arch_name} STREQUAL "Maxwell+Tegra")
+ set(arch_bin 5.3)
+ elseif(${arch_name} STREQUAL "Maxwell")
+ set(arch_bin 5.0 5.2)
+ set(arch_ptx 5.2)
+ elseif(${arch_name} STREQUAL "Pascal")
+ set(arch_bin 6.0 6.1)
+ set(arch_ptx 6.1)
+ elseif(${arch_name} STREQUAL "Volta")
+ set(arch_bin 7.0 7.0)
+ set(arch_ptx 7.0)
+ elseif(${arch_name} STREQUAL "Turing")
+ set(arch_bin 7.5)
+ set(arch_ptx 7.5)
+ elseif(${arch_name} STREQUAL "Ampere")
+ set(arch_bin 8.0)
+ set(arch_ptx 8.0)
+ else()
+ message(SEND_ERROR "Unknown CUDA Architecture Name ${arch_name} in CUDA_SELECT_NVCC_ARCH_FLAGS")
+ endif()
+ endif()
+ if(NOT arch_bin)
+ message(SEND_ERROR "arch_bin wasn't set for some reason")
+ endif()
+ list(APPEND cuda_arch_bin ${arch_bin})
+ if(add_ptx)
+ if (NOT arch_ptx)
+ set(arch_ptx ${arch_bin})
+ endif()
+ list(APPEND cuda_arch_ptx ${arch_ptx})
+ endif()
+ endforeach()
+
+ # remove dots and convert to lists
+ string(REGEX REPLACE "\\." "" cuda_arch_bin "${cuda_arch_bin}")
+ string(REGEX REPLACE "\\." "" cuda_arch_ptx "${cuda_arch_ptx}")
+ string(REGEX MATCHALL "[0-9()]+" cuda_arch_bin "${cuda_arch_bin}")
+ string(REGEX MATCHALL "[0-9]+" cuda_arch_ptx "${cuda_arch_ptx}")
+
+ if(cuda_arch_bin)
+ list(REMOVE_DUPLICATES cuda_arch_bin)
+ endif()
+ if(cuda_arch_ptx)
+ list(REMOVE_DUPLICATES cuda_arch_ptx)
+ endif()
+
+ set(nvcc_flags "")
+ set(nvcc_archs_readable "")
+
+ # Tell NVCC to add binaries for the specified GPUs
+ foreach(arch ${cuda_arch_bin})
+ if(arch MATCHES "([0-9]+)\\(([0-9]+)\\)")
+ # User explicitly specified ARCH for the concrete CODE
+ list(APPEND nvcc_flags -gencode arch=compute_${CMAKE_MATCH_2},code=sm_${CMAKE_MATCH_1})
+ list(APPEND nvcc_archs_readable sm_${CMAKE_MATCH_1})
+ else()
+ # User didn't explicitly specify ARCH for the concrete CODE, we assume ARCH=CODE
+ list(APPEND nvcc_flags -gencode arch=compute_${arch},code=sm_${arch})
+ list(APPEND nvcc_archs_readable sm_${arch})
+ endif()
+ endforeach()
+
+ # Tell NVCC to add PTX intermediate code for the specified architectures
+ foreach(arch ${cuda_arch_ptx})
+ list(APPEND nvcc_flags -gencode arch=compute_${arch},code=compute_${arch})
+ list(APPEND nvcc_archs_readable compute_${arch})
+ endforeach()
+
+ string(REPLACE ";" " " nvcc_archs_readable "${nvcc_archs_readable}")
+ set(${out_variable} ${nvcc_flags} PARENT_SCOPE)
+ set(${out_variable}_readable ${nvcc_archs_readable} PARENT_SCOPE)
+endfunction()
diff --git a/share/cmake-3.18/Modules/FindCUDAToolkit.cmake b/share/cmake-3.18/Modules/FindCUDAToolkit.cmake
new file mode 100644
index 0000000..47bc546
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindCUDAToolkit.cmake
@@ -0,0 +1,881 @@
+# 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::cublasLt`` starting in CUDA 10.1
+- ``CUDA::cublasLt_static`` starting in CUDA 10.1
+
+.. _`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`
+ Removed starting in CUDA 11.0, use :ref:`nvJPEG<cuda_toolkit_nvJPEG>` instead.
+
+ - ``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.
+Removed starting in CUDA 11.0
+
+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_LIBRARY_ROOT``
+ The path to the CUDA Toolkit directory containing the nvvm directory and
+ version.txt.
+
+``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.
+#
+###############################################################################
+
+# The toolkit is located during compiler detection for CUDA and stored in CMakeCUDACompiler.cmake as
+# CMAKE_CUDA_COMPILER_TOOLKIT_ROOT and CMAKE_CUDA_COMPILER_LIBRARY_ROOT.
+# We compute the rest based on those here to avoid re-searching and to avoid finding a possibly
+# different installation.
+if(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT)
+ set(CUDAToolkit_ROOT_DIR "${CMAKE_CUDA_COMPILER_TOOLKIT_ROOT}")
+ set(CUDAToolkit_LIBRARY_ROOT "${CMAKE_CUDA_COMPILER_LIBRARY_ROOT}")
+ set(CUDAToolkit_BIN_DIR "${CUDAToolkit_ROOT_DIR}/bin")
+ set(CUDAToolkit_NVCC_EXECUTABLE "${CUDAToolkit_BIN_DIR}/nvcc${CMAKE_EXECUTABLE_SUFFIX}")
+else()
+ # For NVCC we can easily deduce the SDK binary directory from the compiler path.
+ if(CMAKE_CUDA_COMPILER_LOADED AND NOT CUDAToolkit_BIN_DIR AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+ get_filename_component(CUDAToolkit_BIN_DIR "${CMAKE_CUDA_COMPILER}" DIRECTORY)
+ set(CUDAToolkit_BIN_DIR "${CUDAToolkit_BIN_DIR}" CACHE PATH "")
+ mark_as_advanced(CUDAToolkit_BIN_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(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 versions ${p_version})
+ endif()
+ endforeach()
+
+ # Sort numerically in descending order, so we try the newest versions first.
+ list(SORT versions COMPARE NATURAL ORDER DESCENDING)
+
+ # 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(versions)
+ 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(CUDAToolkit_BIN_DIR "${CUDAToolkit_NVCC_EXECUTABLE}" DIRECTORY)
+ set(CUDAToolkit_BIN_DIR "${CUDAToolkit_BIN_DIR}" CACHE PATH "" FORCE)
+ mark_as_advanced(CUDAToolkit_BIN_DIR)
+ endif()
+
+ get_filename_component(CUDAToolkit_ROOT_DIR ${CUDAToolkit_BIN_DIR} DIRECTORY ABSOLUTE)
+
+ # CUDAToolkit_LIBRARY_ROOT contains the device library and version file.
+ # In a non-scattered installation this is equivalent to CUDAToolkit_ROOT_DIR.
+ # We first check for a non-scattered installation to prefer it over a scattered installation.
+ if(EXISTS "${CUDAToolkit_ROOT_DIR}/version.txt")
+ set(CUDAToolkit_LIBRARY_ROOT "${CUDAToolkit_ROOT_DIR}")
+ elseif(CMAKE_SYSROOT_LINK AND EXISTS "${CMAKE_SYSROOT_LINK}/usr/lib/cuda/version.txt")
+ set(CUDAToolkit_LIBRARY_ROOT "${CMAKE_SYSROOT_LINK}/usr/lib/cuda")
+ elseif(EXISTS "${CMAKE_SYSROOT}/usr/lib/cuda/version.txt")
+ set(CUDAToolkit_LIBRARY_ROOT "${CMAKE_SYSROOT}/usr/lib/cuda")
+ endif()
+endif()
+
+# 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()
+
+# CUDAToolkit_TARGET_DIR always points to the directory containing the include directory.
+# On a scattered installation /usr, on a non-scattered something like /usr/local/cuda or /usr/local/cuda-10.2/targets/aarch64-linux.
+if(EXISTS "${CUDAToolkit_TARGET_DIR}/include/cuda_runtime.h")
+ set(CUDAToolkit_INCLUDE_DIR "${CUDAToolkit_TARGET_DIR}/include")
+elseif(NOT CUDAToolkit_FIND_QUIETLY)
+ message(STATUS "Unable to find cuda_runtime.h in \"${CUDAToolkit_TARGET_DIR}/include\" for CUDAToolkit_INCLUDE_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()
+
+# Find the CUDA Runtime Library libcudart
+find_library(CUDA_CUDART
+ NAMES cudart
+ PATH_SUFFIXES lib64 lib/x64
+)
+find_library(CUDA_CUDART
+ NAMES cudart
+ PATH_SUFFIXES lib64/stubs lib/x64/stubs
+)
+
+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 lib/x64 lib
+ ${arg_EXTRA_PATH_SUFFIXES}
+ )
+ # Don't try any stub directories until we have exhausted all other
+ # search locations.
+ find_library(CUDA_${lib_name}_LIBRARY
+ NAMES ${search_names}
+ HINTS ${CUDAToolkit_LIBRARY_DIR}
+ ENV CUDA_PATH
+ PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs
+ )
+
+ 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 cublasLt 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.18/Modules/FindCURL.cmake b/share/cmake-3.18/Modules/FindCURL.cmake
new file mode 100644
index 0000000..be7e16e
--- /dev/null
+++ b/share/cmake-3.18/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(NOT _found EQUAL -1)
+ list(FIND CURL_SUPPORTED_PROTOCOLS ${component} _found)
+ if(NOT _found EQUAL -1)
+ 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(NOT _found EQUAL -1)
+ 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.17/Modules/FindCVS.cmake b/share/cmake-3.18/Modules/FindCVS.cmake
index f819800..f819800 100644
--- a/share/cmake-3.17/Modules/FindCVS.cmake
+++ b/share/cmake-3.18/Modules/FindCVS.cmake
diff --git a/share/cmake-3.17/Modules/FindCoin3D.cmake b/share/cmake-3.18/Modules/FindCoin3D.cmake
index 301e70b..301e70b 100644
--- a/share/cmake-3.17/Modules/FindCoin3D.cmake
+++ b/share/cmake-3.18/Modules/FindCoin3D.cmake
diff --git a/share/cmake-3.17/Modules/FindCups.cmake b/share/cmake-3.18/Modules/FindCups.cmake
index 4e8232d..4e8232d 100644
--- a/share/cmake-3.17/Modules/FindCups.cmake
+++ b/share/cmake-3.18/Modules/FindCups.cmake
diff --git a/share/cmake-3.17/Modules/FindCurses.cmake b/share/cmake-3.18/Modules/FindCurses.cmake
index ba56078..ba56078 100644
--- a/share/cmake-3.17/Modules/FindCurses.cmake
+++ b/share/cmake-3.18/Modules/FindCurses.cmake
diff --git a/share/cmake-3.17/Modules/FindCxxTest.cmake b/share/cmake-3.18/Modules/FindCxxTest.cmake
index 3fc0e93..3fc0e93 100644
--- a/share/cmake-3.17/Modules/FindCxxTest.cmake
+++ b/share/cmake-3.18/Modules/FindCxxTest.cmake
diff --git a/share/cmake-3.17/Modules/FindCygwin.cmake b/share/cmake-3.18/Modules/FindCygwin.cmake
index 5bbc802..5bbc802 100644
--- a/share/cmake-3.17/Modules/FindCygwin.cmake
+++ b/share/cmake-3.18/Modules/FindCygwin.cmake
diff --git a/share/cmake-3.17/Modules/FindDCMTK.cmake b/share/cmake-3.18/Modules/FindDCMTK.cmake
index b2e00df..b2e00df 100644
--- a/share/cmake-3.17/Modules/FindDCMTK.cmake
+++ b/share/cmake-3.18/Modules/FindDCMTK.cmake
diff --git a/share/cmake-3.17/Modules/FindDart.cmake b/share/cmake-3.18/Modules/FindDart.cmake
index 0492578..0492578 100644
--- a/share/cmake-3.17/Modules/FindDart.cmake
+++ b/share/cmake-3.18/Modules/FindDart.cmake
diff --git a/share/cmake-3.17/Modules/FindDevIL.cmake b/share/cmake-3.18/Modules/FindDevIL.cmake
index 9984943..9984943 100644
--- a/share/cmake-3.17/Modules/FindDevIL.cmake
+++ b/share/cmake-3.18/Modules/FindDevIL.cmake
diff --git a/share/cmake-3.18/Modules/FindDoxygen.cmake b/share/cmake-3.18/Modules/FindDoxygen.cmake
new file mode 100644
index 0000000..184a9a2
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindDoxygen.cmake
@@ -0,0 +1,1160 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindDoxygen
+-----------
+
+Doxygen is a documentation generation tool (see http://www.doxygen.org).
+This module looks for Doxygen and some optional tools it supports. These
+tools are enabled as components in the :command:`find_package` command:
+
+``dot``
+ `Graphviz <http://graphviz.org>`_ ``dot`` utility used to render various
+ graphs.
+``mscgen``
+ `Message Chart Generator <http://www.mcternan.me.uk/mscgen/>`_ utility used
+ by Doxygen's ``\msc`` and ``\mscfile`` commands.
+``dia``
+ `Dia <https://wiki.gnome.org/Apps/Dia>`_ the diagram editor used by Doxygen's
+ ``\diafile`` command.
+
+Examples:
+
+.. code-block:: cmake
+
+ # Require dot, treat the other components as optional
+ find_package(Doxygen
+ REQUIRED dot
+ OPTIONAL_COMPONENTS mscgen dia)
+
+The following variables are defined by this module:
+
+.. variable:: DOXYGEN_FOUND
+
+ True if the ``doxygen`` executable was found.
+
+.. variable:: DOXYGEN_VERSION
+
+ The version reported by ``doxygen --version``.
+
+The module defines ``IMPORTED`` targets for Doxygen and each component found.
+These can be used as part of custom commands, etc. and should be preferred over
+old-style (and now deprecated) variables like ``DOXYGEN_EXECUTABLE``. The
+following import targets are defined if their corresponding executable could be
+found (the component import targets will only be defined if that component was
+requested):
+
+::
+
+ Doxygen::doxygen
+ Doxygen::dot
+ Doxygen::mscgen
+ Doxygen::dia
+
+
+Functions
+^^^^^^^^^
+
+.. command:: doxygen_add_docs
+
+ This function is intended as a convenience for adding a target for generating
+ documentation with Doxygen. It aims to provide sensible defaults so that
+ projects can generally just provide the input files and directories and that
+ will be sufficient to give sensible results. The function supports the
+ ability to customize the Doxygen configuration used to build the
+ documentation.
+
+ ::
+
+ doxygen_add_docs(targetName
+ [filesOrDirs...]
+ [ALL]
+ [USE_STAMP_FILE]
+ [WORKING_DIRECTORY dir]
+ [COMMENT comment])
+
+ The function constructs a ``Doxyfile`` and defines a custom target that runs
+ Doxygen on that generated file. The listed files and directories are used as
+ the ``INPUT`` of the generated ``Doxyfile`` and they can contain wildcards.
+ Any files that are listed explicitly will also be added as ``SOURCES`` of the
+ custom target so they will show up in an IDE project's source list.
+
+ So that relative input paths work as expected, by default the working
+ directory of the Doxygen command will be the current source directory (i.e.
+ :variable:`CMAKE_CURRENT_SOURCE_DIR`). This can be overridden with the
+ ``WORKING_DIRECTORY`` option to change the directory used as the relative
+ base point. Note also that Doxygen's default behavior is to strip the working
+ directory from relative paths in the generated documentation (see the
+ ``STRIP_FROM_PATH`` `Doxygen config option
+ <http://www.doxygen.org/manual/config.html>`_ for details).
+
+ If provided, the optional ``comment`` will be passed as the ``COMMENT`` for
+ the :command:`add_custom_target` command used to create the custom target
+ internally.
+
+ If ``ALL`` is set, the target will be added to the default build target.
+
+ If ``USE_STAMP_FILE`` is set, the custom command defined by this function will
+ create a stamp file with the name ``<targetName>.stamp`` in the current
+ binary directory whenever doxygen is re-run. With this option present, all
+ items in ``<filesOrDirs>`` must be files (i.e. no directories, symlinks or
+ wildcards) and each of the files must exist at the time
+ ``doxygen_add_docs()`` is called. An error will be raised if any of the
+ items listed is missing or is not a file when ``USE_STAMP_FILE`` is given.
+ A dependency will be created on each of the files so that doxygen will only
+ be re-run if one of the files is updated. Without the ``USE_STAMP_FILE``
+ option, doxygen will always be re-run if the ``<targetName>`` target is built
+ regardless of whether anything listed in ``<filesOrDirs>`` has changed.
+
+ The contents of the generated ``Doxyfile`` can be customized by setting CMake
+ variables before calling ``doxygen_add_docs()``. Any variable with a name of
+ the form ``DOXYGEN_<tag>`` will have its value substituted for the
+ corresponding ``<tag>`` configuration option in the ``Doxyfile``. See the
+ `Doxygen documentation <http://www.doxygen.org/manual/config.html>`_ for the
+ full list of supported configuration options.
+
+ Some of Doxygen's defaults are overridden to provide more appropriate
+ behavior for a CMake project. Each of the following will be explicitly set
+ unless the variable already has a value before ``doxygen_add_docs()`` is
+ called (with some exceptions noted):
+
+ .. variable:: DOXYGEN_HAVE_DOT
+
+ Set to ``YES`` if the ``dot`` component was requested and it was found,
+ ``NO`` otherwise. Any existing value of ``DOXYGEN_HAVE_DOT`` is ignored.
+
+ .. variable:: DOXYGEN_DOT_MULTI_TARGETS
+
+ Set to ``YES`` by this module (note that this requires a ``dot`` version
+ newer than 1.8.10). This option is only meaningful if ``DOXYGEN_HAVE_DOT``
+ is also set to ``YES``.
+
+ .. variable:: DOXYGEN_GENERATE_LATEX
+
+ Set to ``NO`` by this module.
+
+ .. variable:: DOXYGEN_WARN_FORMAT
+
+ For Visual Studio based generators, this is set to the form recognized by
+ the Visual Studio IDE: ``$file($line) : $text``. For all other generators,
+ Doxygen's default value is not overridden.
+
+ .. variable:: DOXYGEN_PROJECT_NAME
+
+ Populated with the name of the current project (i.e.
+ :variable:`PROJECT_NAME`).
+
+ .. variable:: DOXYGEN_PROJECT_NUMBER
+
+ Populated with the version of the current project (i.e.
+ :variable:`PROJECT_VERSION`).
+
+ .. variable:: DOXYGEN_PROJECT_BRIEF
+
+ Populated with the description of the current project (i.e.
+ :variable:`PROJECT_DESCRIPTION`).
+
+ .. variable:: DOXYGEN_INPUT
+
+ Projects should not set this variable. It will be populated with the set of
+ files and directories passed to ``doxygen_add_docs()``, thereby providing
+ consistent behavior with the other built-in commands like
+ :command:`add_executable`, :command:`add_library` and
+ :command:`add_custom_target`. If a variable named ``DOXYGEN_INPUT`` is set
+ by the project, it will be ignored and a warning will be issued.
+
+ .. variable:: DOXYGEN_RECURSIVE
+
+ Set to ``YES`` by this module.
+
+ .. variable:: DOXYGEN_EXCLUDE_PATTERNS
+
+ If the set of inputs includes directories, this variable will specify
+ patterns used to exclude files from them. The following patterns are added
+ by ``doxygen_add_docs()`` to ensure CMake-specific files and directories
+ are not included in the input. If the project sets
+ ``DOXYGEN_EXCLUDE_PATTERNS``, those contents are merged with these
+ additional patterns rather than replacing them:
+
+ ::
+
+ */.git/*
+ */.svn/*
+ */.hg/*
+ */CMakeFiles/*
+ */_CPack_Packages/*
+ DartConfiguration.tcl
+ CMakeLists.txt
+ CMakeCache.txt
+
+ .. variable:: DOXYGEN_OUTPUT_DIRECTORY
+
+ Set to :variable:`CMAKE_CURRENT_BINARY_DIR` by this module. Note that if
+ the project provides its own value for this and it is a relative path, it
+ will be converted to an absolute path relative to the current binary
+ directory. This is necessary because doxygen will normally be run from a
+ directory within the source tree so that relative source paths work as
+ expected. If this directory does not exist, it will be recursively created
+ prior to executing the doxygen commands.
+
+To change any of these defaults or override any other Doxygen config option,
+set relevant variables before calling ``doxygen_add_docs()``. For example:
+
+ .. code-block:: cmake
+
+ set(DOXYGEN_GENERATE_HTML NO)
+ set(DOXYGEN_GENERATE_MAN YES)
+
+ doxygen_add_docs(
+ doxygen
+ ${PROJECT_SOURCE_DIR}
+ COMMENT "Generate man pages"
+ )
+
+A number of Doxygen config options accept lists of values, but Doxygen requires
+them to be separated by whitespace. CMake variables hold lists as a string with
+items separated by semi-colons, so a conversion needs to be performed. The
+``doxygen_add_docs()`` command specifically checks the following Doxygen config
+options and will convert their associated CMake variable's contents into the
+required form if set.
+
+::
+
+ ABBREVIATE_BRIEF
+ ALIASES
+ CITE_BIB_FILES
+ DIAFILE_DIRS
+ DOTFILE_DIRS
+ DOT_FONTPATH
+ ENABLED_SECTIONS
+ EXAMPLE_PATH
+ EXAMPLE_PATTERNS
+ EXCLUDE
+ EXCLUDE_PATTERNS
+ EXCLUDE_SYMBOLS
+ EXPAND_AS_DEFINED
+ EXTENSION_MAPPING
+ EXTRA_PACKAGES
+ EXTRA_SEARCH_MAPPINGS
+ FILE_PATTERNS
+ FILTER_PATTERNS
+ FILTER_SOURCE_PATTERNS
+ HTML_EXTRA_FILES
+ HTML_EXTRA_STYLESHEET
+ IGNORE_PREFIX
+ IMAGE_PATH
+ INCLUDE_FILE_PATTERNS
+ INCLUDE_PATH
+ INPUT
+ LATEX_EXTRA_FILES
+ LATEX_EXTRA_STYLESHEET
+ MATHJAX_EXTENSIONS
+ MSCFILE_DIRS
+ PLANTUML_INCLUDE_PATH
+ PREDEFINED
+ QHP_CUST_FILTER_ATTRS
+ QHP_SECT_FILTER_ATTRS
+ STRIP_FROM_INC_PATH
+ STRIP_FROM_PATH
+ TAGFILES
+ TCL_SUBST
+
+The following single value Doxygen options will be quoted automatically
+if they contain at least one space:
+
+::
+
+ CHM_FILE
+ DIA_PATH
+ DOCBOOK_OUTPUT
+ DOCSET_FEEDNAME
+ DOCSET_PUBLISHER_NAME
+ DOT_FONTNAME
+ DOT_PATH
+ EXTERNAL_SEARCH_ID
+ FILE_VERSION_FILTER
+ GENERATE_TAGFILE
+ HHC_LOCATION
+ HTML_FOOTER
+ HTML_HEADER
+ HTML_OUTPUT
+ HTML_STYLESHEET
+ INPUT_FILTER
+ LATEX_FOOTER
+ LATEX_HEADER
+ LATEX_OUTPUT
+ LAYOUT_FILE
+ MAN_OUTPUT
+ MAN_SUBDIR
+ MATHJAX_CODEFILE
+ MSCGEN_PATH
+ OUTPUT_DIRECTORY
+ PERL_PATH
+ PLANTUML_JAR_PATH
+ PROJECT_BRIEF
+ PROJECT_LOGO
+ PROJECT_NAME
+ QCH_FILE
+ QHG_LOCATION
+ QHP_CUST_FILTER_NAME
+ QHP_VIRTUAL_FOLDER
+ RTF_EXTENSIONS_FILE
+ RTF_OUTPUT
+ RTF_STYLESHEET_FILE
+ SEARCHDATA_FILE
+ USE_MDFILE_AS_MAINPAGE
+ WARN_FORMAT
+ WARN_LOGFILE
+ XML_OUTPUT
+
+There are situations where it may be undesirable for a particular config option
+to be automatically quoted by ``doxygen_add_docs()``, such as ``ALIASES`` which
+may need to include its own embedded quoting. The ``DOXYGEN_VERBATIM_VARS``
+variable can be used to specify a list of Doxygen variables (including the
+leading ``DOXYGEN_`` prefix) which should not be quoted. The project is then
+responsible for ensuring that those variables' values make sense when placed
+directly in the Doxygen input file. In the case of list variables, list items
+are still separated by spaces, it is only the automatic quoting that is
+skipped. For example, the following allows ``doxygen_add_docs()`` to apply
+quoting to ``DOXYGEN_PROJECT_BRIEF``, but not each item in the
+``DOXYGEN_ALIASES`` list (:ref:`bracket syntax <Bracket Argument>` can also
+be used to make working with embedded quotes easier):
+
+.. code-block:: cmake
+
+ set(DOXYGEN_PROJECT_BRIEF "String with spaces")
+ set(DOXYGEN_ALIASES
+ [[somealias="@some_command param"]]
+ "anotherAlias=@foobar"
+ )
+ set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES)
+
+The resultant ``Doxyfile`` will contain the following lines:
+
+.. code-block:: text
+
+ PROJECT_BRIEF = "String with spaces"
+ ALIASES = somealias="@some_command param" anotherAlias=@foobar
+
+
+Deprecated Result Variables
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+For compatibility with previous versions of CMake, the following variables
+are also defined but they are deprecated and should no longer be used:
+
+.. variable:: DOXYGEN_EXECUTABLE
+
+ The path to the ``doxygen`` command. If projects need to refer to the
+ ``doxygen`` executable directly, they should use the ``Doxygen::doxygen``
+ import target instead.
+
+.. variable:: DOXYGEN_DOT_FOUND
+
+ True if the ``dot`` executable was found.
+
+.. variable:: DOXYGEN_DOT_EXECUTABLE
+
+ The path to the ``dot`` command. If projects need to refer to the ``dot``
+ executable directly, they should use the ``Doxygen::dot`` import target
+ instead.
+
+.. variable:: DOXYGEN_DOT_PATH
+
+ The path to the directory containing the ``dot`` executable as reported in
+ ``DOXYGEN_DOT_EXECUTABLE``. The path may have forward slashes even on Windows
+ and is not suitable for direct substitution into a ``Doxyfile.in`` template.
+ If you need this value, get the :prop_tgt:`IMPORTED_LOCATION` property of the
+ ``Doxygen::dot`` target and use :command:`get_filename_component` to extract
+ the directory part of that path. You may also want to consider using
+ :command:`file(TO_NATIVE_PATH)` to prepare the path for a Doxygen
+ configuration file.
+
+
+Deprecated Hint Variables
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. variable:: DOXYGEN_SKIP_DOT
+
+ This variable has no effect for the component form of ``find_package``.
+ In backward compatibility mode (i.e. without components list) it prevents
+ the finder module from searching for Graphviz's ``dot`` utility.
+
+#]=======================================================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+# For backwards compatibility support
+if(Doxygen_FIND_QUIETLY)
+ set(DOXYGEN_FIND_QUIETLY TRUE)
+endif()
+
+# ===== Rationale for OS X AppBundle mods below =====
+# With the OS X GUI version, Doxygen likes to be installed to /Applications
+# and it contains the doxygen executable in the bundle. In the versions I've
+# seen, it is located in Resources, but in general, more often binaries are
+# located in MacOS.
+#
+# NOTE: The official Doxygen.app distributed for OS X uses non-standard
+# conventions. Instead of the command-line "doxygen" tool being placed in
+# Doxygen.app/Contents/MacOS, "Doxywizard" is placed there instead and
+# "doxygen" is placed in Contents/Resources. This is most likely done
+# so that something happens when people double-click on the Doxygen.app
+# package. Unfortunately, CMake gets confused by this as when it sees the
+# bundle it uses "Doxywizard" as the executable to use instead of
+# "doxygen". Therefore to work-around this issue we temporarily disable
+# the app-bundle feature, just for this CMake module:
+#
+if(APPLE)
+ # Save the old setting
+ set(TEMP_DOXYGEN_SAVE_CMAKE_FIND_APPBUNDLE ${CMAKE_FIND_APPBUNDLE})
+ # Disable the App-bundle detection feature
+ set(CMAKE_FIND_APPBUNDLE "NEVER")
+endif()
+# FYI:
+# In older versions of OS X Doxygen, dot was included with the Doxygen bundle,
+# but newer versions require you to download Graphviz.app which contains "dot"
+# or use something like homebrew.
+# ============== End OSX stuff ================
+
+#
+# Find Doxygen...
+#
+macro(_Doxygen_find_doxygen)
+ find_program(
+ DOXYGEN_EXECUTABLE
+ NAMES doxygen
+ PATHS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\doxygen_is1;Inno Setup: App Path]/bin"
+ /Applications/Doxygen.app/Contents/Resources
+ /Applications/Doxygen.app/Contents/MacOS
+ /Applications/Utilities/Doxygen.app/Contents/Resources
+ /Applications/Utilities/Doxygen.app/Contents/MacOS
+ DOC "Doxygen documentation generation tool (http://www.doxygen.org)"
+ )
+ mark_as_advanced(DOXYGEN_EXECUTABLE)
+
+ if(DOXYGEN_EXECUTABLE)
+ execute_process(
+ COMMAND "${DOXYGEN_EXECUTABLE}" --version
+ OUTPUT_VARIABLE DOXYGEN_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE _Doxygen_version_result
+ )
+ if(_Doxygen_version_result)
+ message(WARNING "Unable to determine doxygen version: ${_Doxygen_version_result}")
+ endif()
+
+ # Create an imported target for Doxygen
+ if(NOT TARGET Doxygen::doxygen)
+ add_executable(Doxygen::doxygen IMPORTED GLOBAL)
+ set_target_properties(Doxygen::doxygen PROPERTIES
+ IMPORTED_LOCATION "${DOXYGEN_EXECUTABLE}"
+ )
+ endif()
+ endif()
+endmacro()
+
+#
+# Find Diagram Editor...
+#
+macro(_Doxygen_find_dia)
+ set(_x86 "(x86)")
+ find_program(
+ DOXYGEN_DIA_EXECUTABLE
+ NAMES dia
+ PATHS
+ "$ENV{ProgramFiles}/Dia"
+ "$ENV{ProgramFiles${_x86}}/Dia"
+ DOC "Diagram Editor tool for use with Doxygen"
+ )
+ mark_as_advanced(DOXYGEN_DIA_EXECUTABLE)
+
+ if(DOXYGEN_DIA_EXECUTABLE)
+ # The Doxyfile wants the path to the utility, not the entire path
+ # including file name
+ get_filename_component(DOXYGEN_DIA_PATH
+ "${DOXYGEN_DIA_EXECUTABLE}"
+ DIRECTORY)
+ if(WIN32)
+ file(TO_NATIVE_PATH "${DOXYGEN_DIA_PATH}" DOXYGEN_DIA_PATH)
+ endif()
+
+ # Create an imported target for component
+ if(NOT TARGET Doxygen::dia)
+ add_executable(Doxygen::dia IMPORTED GLOBAL)
+ set_target_properties(Doxygen::dia PROPERTIES
+ IMPORTED_LOCATION "${DOXYGEN_DIA_EXECUTABLE}"
+ )
+ endif()
+ endif()
+
+ unset(_x86)
+endmacro()
+
+#
+# Find Graphviz Dot...
+#
+macro(_Doxygen_find_dot)
+ if(WIN32)
+ set(_x86 "(x86)")
+ file(
+ GLOB _Doxygen_GRAPHVIZ_BIN_DIRS
+ "$ENV{ProgramFiles}/Graphviz*/bin"
+ "$ENV{ProgramFiles${_x86}}/Graphviz*/bin"
+ )
+ unset(_x86)
+ else()
+ set(_Doxygen_GRAPHVIZ_BIN_DIRS "")
+ endif()
+
+ find_program(
+ DOXYGEN_DOT_EXECUTABLE
+ NAMES dot
+ PATHS
+ ${_Doxygen_GRAPHVIZ_BIN_DIRS}
+ "$ENV{ProgramFiles}/ATT/Graphviz/bin"
+ "C:/Program Files/ATT/Graphviz/bin"
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\ATT\\Graphviz;InstallPath]/bin
+ /Applications/Graphviz.app/Contents/MacOS
+ /Applications/Utilities/Graphviz.app/Contents/MacOS
+ /Applications/Doxygen.app/Contents/Resources
+ /Applications/Doxygen.app/Contents/MacOS
+ /Applications/Utilities/Doxygen.app/Contents/Resources
+ /Applications/Utilities/Doxygen.app/Contents/MacOS
+ DOC "Dot tool for use with Doxygen"
+ )
+ mark_as_advanced(DOXYGEN_DOT_EXECUTABLE)
+
+ if(DOXYGEN_DOT_EXECUTABLE)
+ # The Doxyfile wants the path to the utility, not the entire path
+ # including file name
+ get_filename_component(DOXYGEN_DOT_PATH
+ "${DOXYGEN_DOT_EXECUTABLE}"
+ DIRECTORY)
+ if(WIN32)
+ file(TO_NATIVE_PATH "${DOXYGEN_DOT_PATH}" DOXYGEN_DOT_PATH)
+ endif()
+
+ # Create an imported target for component
+ if(NOT TARGET Doxygen::dot)
+ add_executable(Doxygen::dot IMPORTED GLOBAL)
+ set_target_properties(Doxygen::dot PROPERTIES
+ IMPORTED_LOCATION "${DOXYGEN_DOT_EXECUTABLE}"
+ )
+ endif()
+ endif()
+
+ unset(_Doxygen_GRAPHVIZ_BIN_DIRS)
+endmacro()
+
+#
+# Find Message Sequence Chart...
+#
+macro(_Doxygen_find_mscgen)
+ set(_x86 "(x86)")
+ find_program(
+ DOXYGEN_MSCGEN_EXECUTABLE
+ NAMES mscgen
+ PATHS
+ "$ENV{ProgramFiles}/Mscgen"
+ "$ENV{ProgramFiles${_x86}}/Mscgen"
+ DOC "Message sequence chart tool for use with Doxygen"
+ )
+ mark_as_advanced(DOXYGEN_MSCGEN_EXECUTABLE)
+
+ if(DOXYGEN_MSCGEN_EXECUTABLE)
+ # The Doxyfile wants the path to the utility, not the entire path
+ # including file name
+ get_filename_component(DOXYGEN_MSCGEN_PATH
+ "${DOXYGEN_MSCGEN_EXECUTABLE}"
+ DIRECTORY)
+ if(WIN32)
+ file(TO_NATIVE_PATH "${DOXYGEN_MSCGEN_PATH}" DOXYGEN_MSCGEN_PATH)
+ endif()
+
+ # Create an imported target for component
+ if(NOT TARGET Doxygen::mscgen)
+ add_executable(Doxygen::mscgen IMPORTED GLOBAL)
+ set_target_properties(Doxygen::mscgen PROPERTIES
+ IMPORTED_LOCATION "${DOXYGEN_MSCGEN_EXECUTABLE}"
+ )
+ endif()
+ endif()
+
+ unset(_x86)
+endmacro()
+
+# Make sure `doxygen` is one of the components to find
+set(_Doxygen_keep_backward_compat FALSE)
+if(NOT Doxygen_FIND_COMPONENTS)
+ # Search at least for `doxygen` executable
+ set(Doxygen_FIND_COMPONENTS doxygen)
+ # Preserve backward compatibility:
+ # search for `dot` also if `DOXYGEN_SKIP_DOT` is not explicitly disable this.
+ if(NOT DOXYGEN_SKIP_DOT)
+ list(APPEND Doxygen_FIND_COMPONENTS dot)
+ endif()
+ set(_Doxygen_keep_backward_compat TRUE)
+elseif(NOT doxygen IN_LIST Doxygen_FIND_COMPONENTS)
+ list(INSERT Doxygen_FIND_COMPONENTS 0 doxygen)
+endif()
+
+#
+# Find all requested components of Doxygen...
+#
+foreach(_comp IN LISTS Doxygen_FIND_COMPONENTS)
+ if(_comp STREQUAL "doxygen")
+ _Doxygen_find_doxygen()
+ elseif(_comp STREQUAL "dia")
+ _Doxygen_find_dia()
+ elseif(_comp STREQUAL "dot")
+ _Doxygen_find_dot()
+ elseif(_comp STREQUAL "mscgen")
+ _Doxygen_find_mscgen()
+ else()
+ message(WARNING "${_comp} is not a valid Doxygen component")
+ set(Doxygen_${_comp}_FOUND FALSE)
+ continue()
+ endif()
+
+ if(TARGET Doxygen::${_comp})
+ set(Doxygen_${_comp}_FOUND TRUE)
+ else()
+ set(Doxygen_${_comp}_FOUND FALSE)
+ endif()
+endforeach()
+unset(_comp)
+
+# Verify find results
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(
+ Doxygen
+ REQUIRED_VARS DOXYGEN_EXECUTABLE
+ VERSION_VAR DOXYGEN_VERSION
+ HANDLE_COMPONENTS
+)
+
+#
+# Backwards compatibility...
+#
+if(APPLE)
+ # Restore the old app-bundle setting
+ set(CMAKE_FIND_APPBUNDLE ${TEMP_DOXYGEN_SAVE_CMAKE_FIND_APPBUNDLE})
+endif()
+
+# Maintain the _FOUND variables as "YES" or "NO" for backwards
+# compatibility. This allows people to substitute them directly into
+# Doxyfile with configure_file().
+if(DOXYGEN_FOUND)
+ set(DOXYGEN_FOUND "YES")
+else()
+ set(DOXYGEN_FOUND "NO")
+endif()
+if(_Doxygen_keep_backward_compat)
+ if(Doxygen_dot_FOUND)
+ set(DOXYGEN_DOT_FOUND "YES")
+ else()
+ set(DOXYGEN_DOT_FOUND "NO")
+ endif()
+
+ # For backwards compatibility support for even older CMake versions
+ set(DOXYGEN ${DOXYGEN_EXECUTABLE})
+ set(DOT ${DOXYGEN_DOT_EXECUTABLE})
+
+ # No need to keep any backward compatibility for `DOXYGEN_MSCGEN_XXX`
+ # and `DOXYGEN_DIA_XXX` since they were not supported before component
+ # support was added
+endif()
+unset(_Doxygen_keep_backward_compat)
+
+#
+# Allow full control of Doxygen from CMakeLists.txt
+#
+
+# Prepare a template Doxyfile and Doxygen's default values CMake file
+if(TARGET Doxygen::doxygen)
+ # If doxygen was found, use it to generate a minimal default Doxyfile.
+ # We will delete this file after we have finished using it below to
+ # generate the other files that doxygen_add_docs() will use.
+ set(_Doxygen_tpl "${CMAKE_BINARY_DIR}/CMakeDoxyfile.tpl")
+ execute_process(
+ COMMAND "${DOXYGEN_EXECUTABLE}" -s -g "${_Doxygen_tpl}"
+ OUTPUT_QUIET
+ RESULT_VARIABLE _Doxygen_tpl_result
+ )
+ if(_Doxygen_tpl_result)
+ message(FATAL_ERROR
+ "Unable to generate Doxyfile template: ${_Doxygen_tpl_result}")
+ elseif(NOT EXISTS "${_Doxygen_tpl}")
+ message(FATAL_ERROR
+ "Doxygen has failed to generate a Doxyfile template")
+ endif()
+
+ # Write a do-not-edit header to files we are going to generate...
+ set(_Doxygen_dne_header
+[[
+#
+# DO NOT EDIT! THIS FILE WAS GENERATED BY CMAKE!
+#
+
+]]
+ )
+ # We only need one copy of these across the whole build, since their
+ # content is only dependent on the version of Doxygen being used. Therefore
+ # we always put them at the top of the build tree so that they are in a
+ # predictable location.
+ set(_doxyfile_in "${CMAKE_BINARY_DIR}/CMakeDoxyfile.in")
+ set(_doxyfile_defaults "${CMAKE_BINARY_DIR}/CMakeDoxygenDefaults.cmake")
+
+ file(WRITE "${_doxyfile_in}" ${_Doxygen_dne_header})
+ file(WRITE "${_doxyfile_defaults}" ${_Doxygen_dne_header})
+
+ # Get strings containing a configuration key from the template Doxyfile
+ # we obtained from this version of Doxygen. Because some options are split
+ # across multiple lines by ending lines with backslashes, we cannot just
+ # use file(STRINGS...) with a REGEX. Instead, read lines without a REGEX
+ # so that file(STRINGS...) handles the trailing backslash as a line
+ # continuation. It stores multi-lines as lists, so we then have to replace
+ # the ";" list separator with backslashed newlines again so that we get the
+ # original content stored back as the value part.
+ file(STRINGS "${_Doxygen_tpl}" _file_lines)
+ unset(_Doxygen_tpl_params)
+ foreach(_line IN LISTS _file_lines)
+ if(_line MATCHES "([A-Z][A-Z0-9_]+)( *=)(.*)")
+ set(_key "${CMAKE_MATCH_1}")
+ set(_eql "${CMAKE_MATCH_2}")
+ set(_value "${CMAKE_MATCH_3}")
+ string(REPLACE "\\" "\\\\" _value "${_value}")
+ string(REPLACE ";" "\\\n" _value "${_value}")
+ list(APPEND _Doxygen_tpl_params "${_key}${_eql}${_value}")
+ endif()
+ endforeach()
+
+ # Build up a Doxyfile that provides @configVar@ substitutions for each
+ # Doxygen config option as well as a separate CMake script which provides
+ # the default value for each of those options if the project doesn't supply
+ # them. Each config option will support substitution of a CMake variable
+ # of the same name except with DOXYGEN_ prepended.
+ foreach(_Doxygen_param IN LISTS _Doxygen_tpl_params)
+ if(_Doxygen_param MATCHES "([A-Z][A-Z0-9_]+)( *)=( (.*))?")
+ # Ok, this is a config key with a value
+ if(CMAKE_MATCH_COUNT EQUAL 4)
+ file(APPEND "${_doxyfile_in}"
+ "${CMAKE_MATCH_1}${CMAKE_MATCH_2}= @DOXYGEN_${CMAKE_MATCH_1}@\n")
+ # Remove the backslashes we had to preserve to handle newlines
+ string(REPLACE "\\\n" "\n" _value "${CMAKE_MATCH_4}")
+ file(APPEND "${_doxyfile_defaults}"
+"if(NOT DEFINED DOXYGEN_${CMAKE_MATCH_1})
+ set(DOXYGEN_${CMAKE_MATCH_1} ${_value})
+endif()
+")
+ # Ok, this is a config key with empty default value
+ elseif(CMAKE_MATCH_COUNT EQUAL 2)
+ file(APPEND "${_doxyfile_in}"
+ "${CMAKE_MATCH_1}${CMAKE_MATCH_2}= @DOXYGEN_${CMAKE_MATCH_1}@\n")
+ else()
+ message(AUTHOR_WARNING
+"Unexpected line format! Code review required!\nFault line: ${_Doxygen_param}")
+ endif()
+ else()
+ message(AUTHOR_WARNING
+"Unexpected line format! Code review required!\nFault line: ${_Doxygen_param}")
+ endif()
+ endforeach()
+
+ # Ok, dumped defaults are not needed anymore...
+ file(REMOVE "${_Doxygen_tpl}")
+
+ unset(_Doxygen_param)
+ unset(_Doxygen_tpl_params)
+ unset(_Doxygen_dne_header)
+ unset(_Doxygen_tpl)
+
+endif()
+
+function(doxygen_quote_value VARIABLE)
+ # Quote a value of the given variable if:
+ # - VARIABLE parameter was really given
+ # - the variable it names is defined and is not present in the list
+ # specified by DOXYGEN_VERBATIM_VARS (if set)
+ # - the value of the named variable isn't already quoted
+ # - the value has spaces
+ if(VARIABLE AND DEFINED ${VARIABLE} AND
+ NOT ${VARIABLE} MATCHES "^\".* .*\"$" AND ${VARIABLE} MATCHES " " AND
+ NOT (DEFINED DOXYGEN_VERBATIM_VARS AND
+ "${VARIABLE}" IN_LIST DOXYGEN_VERBATIM_VARS))
+ set(${VARIABLE} "\"${${VARIABLE}}\"" PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(doxygen_list_to_quoted_strings LIST_VARIABLE)
+ if(LIST_VARIABLE AND DEFINED ${LIST_VARIABLE})
+ unset(_inputs)
+ unset(_sep)
+ unset(_verbatim)
+ # Have to test if list items should be treated as verbatim here
+ # because we lose the variable name when we pass just one list item
+ # to doxygen_quote_value() below
+ if(DEFINED DOXYGEN_VERBATIM_VARS AND
+ "${LIST_VARIABLE}" IN_LIST DOXYGEN_VERBATIM_VARS)
+ set(_verbatim True)
+ endif()
+ foreach(_in IN LISTS ${LIST_VARIABLE})
+ if(NOT _verbatim)
+ doxygen_quote_value(_in)
+ endif()
+ string(APPEND _inputs "${_sep}${_in}")
+ set(_sep " ")
+ endforeach()
+ set(${LIST_VARIABLE} "${_inputs}" PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(doxygen_add_docs targetName)
+ set(_options ALL USE_STAMP_FILE)
+ set(_one_value_args WORKING_DIRECTORY COMMENT)
+ set(_multi_value_args)
+ cmake_parse_arguments(_args
+ "${_options}"
+ "${_one_value_args}"
+ "${_multi_value_args}"
+ ${ARGN})
+
+ if(NOT _args_COMMENT)
+ set(_args_COMMENT "Generate API documentation for ${targetName}")
+ endif()
+
+ if(NOT _args_WORKING_DIRECTORY)
+ set(_args_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
+ endif()
+
+ if(DEFINED DOXYGEN_INPUT)
+ message(WARNING
+"DOXYGEN_INPUT is set but it will be ignored. Pass the files and directories \
+directly to the doxygen_add_docs() command instead.")
+ endif()
+ set(DOXYGEN_INPUT ${_args_UNPARSED_ARGUMENTS})
+
+ if(NOT TARGET Doxygen::doxygen)
+ message(FATAL_ERROR "Doxygen was not found, needed by \
+doxygen_add_docs() for target ${targetName}")
+ endif()
+
+ # If not already defined, set some relevant defaults based on the
+ # assumption that the documentation is for the whole project. Details
+ # specified in the project() command will be used to populate a number of
+ # these defaults.
+
+ if(NOT DEFINED DOXYGEN_PROJECT_NAME)
+ # The PROJECT_NAME tag is a single word (or a sequence of words
+ # surrounded by double-quotes, unless you are using Doxywizard) that
+ # should identify the project for which the documentation is generated.
+ # This name is used in the title of most generated pages and in a few
+ # other places. The default value is: My Project.
+ set(DOXYGEN_PROJECT_NAME ${PROJECT_NAME})
+ endif()
+
+ if(NOT DEFINED DOXYGEN_PROJECT_NUMBER)
+ # The PROJECT_NUMBER tag can be used to enter a project or revision
+ # number. This could be handy for archiving the generated documentation
+ # or if some version control system is used.
+ set(DOXYGEN_PROJECT_NUMBER ${PROJECT_VERSION})
+ endif()
+
+ if(NOT DEFINED DOXYGEN_PROJECT_BRIEF)
+ # Using the PROJECT_BRIEF tag one can provide an optional one line
+ # description for a project that appears at the top of each page and
+ # should give viewer a quick idea about the purpose of the project.
+ # Keep the description short.
+ set(DOXYGEN_PROJECT_BRIEF "${PROJECT_DESCRIPTION}")
+ endif()
+
+ if(NOT DEFINED DOXYGEN_RECURSIVE)
+ # The RECURSIVE tag can be used to specify whether or not
+ # subdirectories should be searched for input files as well. CMake
+ # projects generally evolve to span multiple directories, so it makes
+ # more sense for this to be on by default. Doxygen's default value
+ # has this setting turned off, so we override it.
+ set(DOXYGEN_RECURSIVE YES)
+ endif()
+
+ if(NOT DEFINED DOXYGEN_OUTPUT_DIRECTORY)
+ # The OUTPUT_DIRECTORY tag is used to specify the (relative or
+ # absolute) path into which the generated documentation will be
+ # written. If a relative path is used, Doxygen will interpret it as
+ # being relative to the location where doxygen was started, but we need
+ # to run Doxygen in the source tree so that relative input paths work
+ # intuitively. Therefore, we ensure that the output directory is always
+ # an absolute path and if the project provided a relative path, we
+ # treat it as relative to the current BINARY directory so that output
+ # is not generated inside the source tree.
+ set(DOXYGEN_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
+ elseif(NOT IS_ABSOLUTE "${DOXYGEN_OUTPUT_DIRECTORY}")
+ get_filename_component(DOXYGEN_OUTPUT_DIRECTORY
+ "${DOXYGEN_OUTPUT_DIRECTORY}"
+ ABSOLUTE
+ BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+ endif()
+
+ if(NOT DEFINED DOXYGEN_HAVE_DOT)
+ # If you set the HAVE_DOT tag to YES then doxygen will assume the dot
+ # tool is available from the path. This tool is part of Graphviz (see:
+ # http://www.graphviz.org/), a graph visualization toolkit from AT&T
+ # and Lucent Bell Labs. The other options in this section have no
+ # effect if this option is set to NO.
+ # Doxygen's default value is: NO.
+ if(Doxygen_dot_FOUND)
+ set(DOXYGEN_HAVE_DOT "YES")
+ else()
+ set(DOXYGEN_HAVE_DOT "NO")
+ endif()
+ endif()
+
+ if(NOT DEFINED DOXYGEN_DOT_MULTI_TARGETS)
+ # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate
+ # multiple output files in one run (i.e. multiple -o and -T options on
+ # the command line). This makes dot run faster, but since only newer
+ # versions of dot (>1.8.10) support this, Doxygen disables this feature
+ # by default.
+ # This tag requires that the tag HAVE_DOT is set to YES.
+ set(DOXYGEN_DOT_MULTI_TARGETS YES)
+ endif()
+
+ if(NOT DEFINED DOXYGEN_GENERATE_LATEX)
+ # If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX
+ # output. We only want the HTML output enabled by default, so we turn
+ # this off if the project hasn't specified it.
+ set(DOXYGEN_GENERATE_LATEX NO)
+ endif()
+
+ if(NOT DEFINED DOXYGEN_WARN_FORMAT)
+ if(CMAKE_VS_MSBUILD_COMMAND OR CMAKE_VS_DEVENV_COMMAND)
+ # The WARN_FORMAT tag determines the format of the warning messages
+ # that doxygen can produce. The string should contain the $file,
+ # $line and $text tags, which will be replaced by the file and line
+ # number from which the warning originated and the warning text.
+ # Optionally, the format may contain $version, which will be
+ # replaced by the version of the file (if it could be obtained via
+ # FILE_VERSION_FILTER).
+ # Doxygen's default value is: $file:$line: $text
+ set(DOXYGEN_WARN_FORMAT "$file($line) : $text ")
+ endif()
+ endif()
+
+ if(DEFINED DOXYGEN_WARN_LOGFILE AND NOT IS_ABSOLUTE "${DOXYGEN_WARN_LOGFILE}")
+ # The WARN_LOGFILE tag can be used to specify a file to which warning and error
+ # messages should be written. If left blank the output is written to standard
+ # error (stderr).
+ get_filename_component(DOXYGEN_WARN_LOGFILE
+ "${DOXYGEN_WARN_LOGFILE}"
+ ABSOLUTE
+ BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+ endif()
+
+ # Any files from the INPUT that match any of the EXCLUDE_PATTERNS will be
+ # excluded from the set of input files. We provide some additional patterns
+ # to prevent commonly unwanted things from CMake builds being pulled in.
+ #
+ # Note that the wildcards are matched against the file with absolute path,
+ # so to exclude all test directories for example use the pattern */test/*
+ list(
+ APPEND
+ DOXYGEN_EXCLUDE_PATTERNS
+ "*/.git/*"
+ "*/.svn/*"
+ "*/.hg/*"
+ "*/CMakeFiles/*"
+ "*/_CPack_Packages/*"
+ "DartConfiguration.tcl"
+ "CMakeLists.txt"
+ "CMakeCache.txt"
+ )
+
+ # Now bring in Doxgen's defaults for those things the project has not
+ # already set and we have not provided above
+ include("${CMAKE_BINARY_DIR}/CMakeDoxygenDefaults.cmake" OPTIONAL)
+
+ # Cleanup built HTMLs on "make clean"
+ # TODO Any other dirs?
+ if(DOXYGEN_GENERATE_HTML)
+ if(IS_ABSOLUTE "${DOXYGEN_HTML_OUTPUT}")
+ set(_args_clean_html_dir "${DOXYGEN_HTML_OUTPUT}")
+ else()
+ set(_args_clean_html_dir
+ "${DOXYGEN_OUTPUT_DIRECTORY}/${DOXYGEN_HTML_OUTPUT}")
+ endif()
+ set_property(DIRECTORY APPEND PROPERTY
+ ADDITIONAL_CLEAN_FILES "${_args_clean_html_dir}")
+ endif()
+
+ # Build up a list of files we can identify from the inputs so we can list
+ # them as DEPENDS and SOURCES in the custom command/target (the latter
+ # makes them display in IDEs). This must be done before we transform the
+ # various DOXYGEN_... variables below because we need to process
+ # DOXYGEN_INPUT as a list first.
+ unset(_sources)
+ foreach(_item IN LISTS DOXYGEN_INPUT)
+ get_filename_component(_abs_item "${_item}" ABSOLUTE
+ BASE_DIR "${_args_WORKING_DIRECTORY}")
+ get_source_file_property(_isGenerated "${_abs_item}" GENERATED)
+ if(_isGenerated OR
+ (EXISTS "${_abs_item}" AND
+ NOT IS_DIRECTORY "${_abs_item}" AND
+ NOT IS_SYMLINK "${_abs_item}"))
+ list(APPEND _sources "${_abs_item}")
+ elseif(_args_USE_STAMP_FILE)
+ message(FATAL_ERROR "Source does not exist or is not a file:\n"
+ " ${_abs_item}\n"
+ "Only existing files may be specified when the "
+ "USE_STAMP_FILE option is given.")
+ endif()
+ endforeach()
+
+ # Transform known list type options into space separated strings.
+ set(_doxygen_list_options
+ ABBREVIATE_BRIEF
+ ALIASES
+ CITE_BIB_FILES
+ DIAFILE_DIRS
+ DOTFILE_DIRS
+ DOT_FONTPATH
+ ENABLED_SECTIONS
+ EXAMPLE_PATH
+ EXAMPLE_PATTERNS
+ EXCLUDE
+ EXCLUDE_PATTERNS
+ EXCLUDE_SYMBOLS
+ EXPAND_AS_DEFINED
+ EXTENSION_MAPPING
+ EXTRA_PACKAGES
+ EXTRA_SEARCH_MAPPINGS
+ FILE_PATTERNS
+ FILTER_PATTERNS
+ FILTER_SOURCE_PATTERNS
+ HTML_EXTRA_FILES
+ HTML_EXTRA_STYLESHEET
+ IGNORE_PREFIX
+ IMAGE_PATH
+ INCLUDE_FILE_PATTERNS
+ INCLUDE_PATH
+ INPUT
+ LATEX_EXTRA_FILES
+ LATEX_EXTRA_STYLESHEET
+ MATHJAX_EXTENSIONS
+ MSCFILE_DIRS
+ PLANTUML_INCLUDE_PATH
+ PREDEFINED
+ QHP_CUST_FILTER_ATTRS
+ QHP_SECT_FILTER_ATTRS
+ STRIP_FROM_INC_PATH
+ STRIP_FROM_PATH
+ TAGFILES
+ TCL_SUBST
+ )
+ foreach(_item IN LISTS _doxygen_list_options)
+ doxygen_list_to_quoted_strings(DOXYGEN_${_item})
+ endforeach()
+
+ # Transform known single value variables which may contain spaces, such as
+ # paths or description strings.
+ set(_doxygen_quoted_options
+ CHM_FILE
+ DIA_PATH
+ DOCBOOK_OUTPUT
+ DOCSET_FEEDNAME
+ DOCSET_PUBLISHER_NAME
+ DOT_FONTNAME
+ DOT_PATH
+ EXTERNAL_SEARCH_ID
+ FILE_VERSION_FILTER
+ GENERATE_TAGFILE
+ HHC_LOCATION
+ HTML_FOOTER
+ HTML_HEADER
+ HTML_OUTPUT
+ HTML_STYLESHEET
+ INPUT_FILTER
+ LATEX_FOOTER
+ LATEX_HEADER
+ LATEX_OUTPUT
+ LAYOUT_FILE
+ MAN_OUTPUT
+ MAN_SUBDIR
+ MATHJAX_CODEFILE
+ MSCGEN_PATH
+ OUTPUT_DIRECTORY
+ PERL_PATH
+ PLANTUML_JAR_PATH
+ PROJECT_BRIEF
+ PROJECT_LOGO
+ PROJECT_NAME
+ QCH_FILE
+ QHG_LOCATION
+ QHP_CUST_FILTER_NAME
+ QHP_VIRTUAL_FOLDER
+ RTF_EXTENSIONS_FILE
+ RTF_OUTPUT
+ RTF_STYLESHEET_FILE
+ SEARCHDATA_FILE
+ USE_MDFILE_AS_MAINPAGE
+ WARN_FORMAT
+ WARN_LOGFILE
+ XML_OUTPUT
+ )
+
+ # Store the unmodified value of DOXYGEN_OUTPUT_DIRECTORY prior to invoking
+ # doxygen_quote_value() below. This will mutate the string specifically for
+ # consumption by Doxygen's config file, which we do not want when we use it
+ # later in the custom target's commands.
+ set( _original_doxygen_output_dir ${DOXYGEN_OUTPUT_DIRECTORY} )
+
+ foreach(_item IN LISTS _doxygen_quoted_options)
+ doxygen_quote_value(DOXYGEN_${_item})
+ endforeach()
+
+ # Prepare doxygen configuration file
+ set(_doxyfile_template "${CMAKE_BINARY_DIR}/CMakeDoxyfile.in")
+ set(_target_doxyfile "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.${targetName}")
+ configure_file("${_doxyfile_template}" "${_target_doxyfile}")
+
+ unset(_all)
+ if(${_args_ALL})
+ set(_all ALL)
+ endif()
+
+ # Only create the stamp file if asked to. If we don't create it,
+ # the target will always be considered out-of-date.
+ if(_args_USE_STAMP_FILE)
+ set(__stamp_file "${CMAKE_CURRENT_BINARY_DIR}/${targetName}.stamp")
+ add_custom_command(
+ VERBATIM
+ OUTPUT ${__stamp_file}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${_original_doxygen_output_dir}
+ COMMAND "${DOXYGEN_EXECUTABLE}" "${_target_doxyfile}"
+ COMMAND ${CMAKE_COMMAND} -E touch ${__stamp_file}
+ WORKING_DIRECTORY "${_args_WORKING_DIRECTORY}"
+ DEPENDS "${_target_doxyfile}" ${_sources}
+ COMMENT "${_args_COMMENT}"
+ )
+ add_custom_target(${targetName} ${_all}
+ DEPENDS ${__stamp_file}
+ SOURCES ${_sources}
+ )
+ unset(__stamp_file)
+ else()
+ add_custom_target( ${targetName} ${_all} VERBATIM
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${_original_doxygen_output_dir}
+ COMMAND "${DOXYGEN_EXECUTABLE}" "${_target_doxyfile}"
+ WORKING_DIRECTORY "${_args_WORKING_DIRECTORY}"
+ DEPENDS "${_target_doxyfile}" ${_sources}
+ COMMENT "${_args_COMMENT}"
+ SOURCES ${_sources}
+ )
+ endif()
+
+endfunction()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/FindEXPAT.cmake b/share/cmake-3.18/Modules/FindEXPAT.cmake
index 15b419a..15b419a 100644
--- a/share/cmake-3.17/Modules/FindEXPAT.cmake
+++ b/share/cmake-3.18/Modules/FindEXPAT.cmake
diff --git a/share/cmake-3.17/Modules/FindEnvModules.cmake b/share/cmake-3.18/Modules/FindEnvModules.cmake
index 4dd5116..4dd5116 100644
--- a/share/cmake-3.17/Modules/FindEnvModules.cmake
+++ b/share/cmake-3.18/Modules/FindEnvModules.cmake
diff --git a/share/cmake-3.18/Modules/FindFLEX.cmake b/share/cmake-3.18/Modules/FindFLEX.cmake
new file mode 100644
index 0000000..1384736
--- /dev/null
+++ b/share/cmake-3.18/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 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.17/Modules/FindFLTK.cmake b/share/cmake-3.18/Modules/FindFLTK.cmake
index e273642..e273642 100644
--- a/share/cmake-3.17/Modules/FindFLTK.cmake
+++ b/share/cmake-3.18/Modules/FindFLTK.cmake
diff --git a/share/cmake-3.17/Modules/FindFLTK2.cmake b/share/cmake-3.18/Modules/FindFLTK2.cmake
index a43f7a4..a43f7a4 100644
--- a/share/cmake-3.17/Modules/FindFLTK2.cmake
+++ b/share/cmake-3.18/Modules/FindFLTK2.cmake
diff --git a/share/cmake-3.17/Modules/FindFontconfig.cmake b/share/cmake-3.18/Modules/FindFontconfig.cmake
index a6f0180..a6f0180 100644
--- a/share/cmake-3.17/Modules/FindFontconfig.cmake
+++ b/share/cmake-3.18/Modules/FindFontconfig.cmake
diff --git a/share/cmake-3.17/Modules/FindFreetype.cmake b/share/cmake-3.18/Modules/FindFreetype.cmake
index 3e6a177..3e6a177 100644
--- a/share/cmake-3.17/Modules/FindFreetype.cmake
+++ b/share/cmake-3.18/Modules/FindFreetype.cmake
diff --git a/share/cmake-3.17/Modules/FindGCCXML.cmake b/share/cmake-3.18/Modules/FindGCCXML.cmake
index e6c7f24..e6c7f24 100644
--- a/share/cmake-3.17/Modules/FindGCCXML.cmake
+++ b/share/cmake-3.18/Modules/FindGCCXML.cmake
diff --git a/share/cmake-3.17/Modules/FindGDAL.cmake b/share/cmake-3.18/Modules/FindGDAL.cmake
index fde84d4..fde84d4 100644
--- a/share/cmake-3.17/Modules/FindGDAL.cmake
+++ b/share/cmake-3.18/Modules/FindGDAL.cmake
diff --git a/share/cmake-3.17/Modules/FindGIF.cmake b/share/cmake-3.18/Modules/FindGIF.cmake
index d5a143e..d5a143e 100644
--- a/share/cmake-3.17/Modules/FindGIF.cmake
+++ b/share/cmake-3.18/Modules/FindGIF.cmake
diff --git a/share/cmake-3.17/Modules/FindGLEW.cmake b/share/cmake-3.18/Modules/FindGLEW.cmake
index 27ffa13..27ffa13 100644
--- a/share/cmake-3.17/Modules/FindGLEW.cmake
+++ b/share/cmake-3.18/Modules/FindGLEW.cmake
diff --git a/share/cmake-3.17/Modules/FindGLU.cmake b/share/cmake-3.18/Modules/FindGLU.cmake
index 9892805..9892805 100644
--- a/share/cmake-3.17/Modules/FindGLU.cmake
+++ b/share/cmake-3.18/Modules/FindGLU.cmake
diff --git a/share/cmake-3.17/Modules/FindGLUT.cmake b/share/cmake-3.18/Modules/FindGLUT.cmake
index a22bf5b..a22bf5b 100644
--- a/share/cmake-3.17/Modules/FindGLUT.cmake
+++ b/share/cmake-3.18/Modules/FindGLUT.cmake
diff --git a/share/cmake-3.17/Modules/FindGSL.cmake b/share/cmake-3.18/Modules/FindGSL.cmake
index da1b3c4..da1b3c4 100644
--- a/share/cmake-3.17/Modules/FindGSL.cmake
+++ b/share/cmake-3.18/Modules/FindGSL.cmake
diff --git a/share/cmake-3.17/Modules/FindGTK.cmake b/share/cmake-3.18/Modules/FindGTK.cmake
index 552b19a..552b19a 100644
--- a/share/cmake-3.17/Modules/FindGTK.cmake
+++ b/share/cmake-3.18/Modules/FindGTK.cmake
diff --git a/share/cmake-3.18/Modules/FindGTK2.cmake b/share/cmake-3.18/Modules/FindGTK2.cmake
new file mode 100644
index 0000000..62f1614
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindGTK2.cmake
@@ -0,0 +1,946 @@
+# 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(HARFBUZZ hb.h)
+ _GTK2_FIND_LIBRARY (HARFBUZZ harfbuzz false false)
+ _GTK2_ADD_TARGET (HARFBUZZ)
+
+ _GTK2_FIND_INCLUDE_DIR(PANGO pango/pango.h)
+ _GTK2_FIND_LIBRARY (PANGO pango false true)
+ _GTK2_ADD_TARGET (PANGO GTK2_DEPENDS gobject glib
+ GTK2_OPTIONAL_DEPENDS harfbuzz)
+
+ _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.18/Modules/FindGTest.cmake
index 53cab1a..53cab1a 100644
--- a/share/cmake-3.17/Modules/FindGTest.cmake
+++ b/share/cmake-3.18/Modules/FindGTest.cmake
diff --git a/share/cmake-3.17/Modules/FindGettext.cmake b/share/cmake-3.18/Modules/FindGettext.cmake
index 213ad13..213ad13 100644
--- a/share/cmake-3.17/Modules/FindGettext.cmake
+++ b/share/cmake-3.18/Modules/FindGettext.cmake
diff --git a/share/cmake-3.17/Modules/FindGit.cmake b/share/cmake-3.18/Modules/FindGit.cmake
index 3491cdc..3491cdc 100644
--- a/share/cmake-3.17/Modules/FindGit.cmake
+++ b/share/cmake-3.18/Modules/FindGit.cmake
diff --git a/share/cmake-3.17/Modules/FindGnuTLS.cmake b/share/cmake-3.18/Modules/FindGnuTLS.cmake
index 819f000..819f000 100644
--- a/share/cmake-3.17/Modules/FindGnuTLS.cmake
+++ b/share/cmake-3.18/Modules/FindGnuTLS.cmake
diff --git a/share/cmake-3.17/Modules/FindGnuplot.cmake b/share/cmake-3.18/Modules/FindGnuplot.cmake
index ca2467d..ca2467d 100644
--- a/share/cmake-3.17/Modules/FindGnuplot.cmake
+++ b/share/cmake-3.18/Modules/FindGnuplot.cmake
diff --git a/share/cmake-3.18/Modules/FindHDF5.cmake b/share/cmake-3.18/Modules/FindHDF5.cmake
new file mode 100644
index 0000000..60a313d
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindHDF5.cmake
@@ -0,0 +1,992 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindHDF5
+--------
+
+Find Hierarchical Data Format (HDF5), a library for reading and writing
+self describing array data.
+
+
+This module invokes the ``HDF5`` wrapper compiler that should be installed
+alongside ``HDF5``. Depending upon the ``HDF5`` Configuration, the wrapper
+compiler is called either ``h5cc`` or ``h5pcc``. If this succeeds, the module
+will then call the compiler with the show argument to see what flags
+are used when compiling an ``HDF5`` client application.
+
+The module will optionally accept the ``COMPONENTS`` argument. If no
+``COMPONENTS`` are specified, then the find module will default to finding
+only the ``HDF5`` C library. If one or more ``COMPONENTS`` are specified, the
+module will attempt to find the language bindings for the specified
+components. The valid components are ``C``, ``CXX``, ``Fortran``, ``HL``.
+``HL`` refers to the "high-level" HDF5 functions for C and Fortran.
+If the ``COMPONENTS`` argument is not given, the module will
+attempt to find only the C bindings.
+For example, to use Fortran HDF5 and HDF5-HL functions, do:
+``find_package(HDF5 COMPONENTS Fortran HL)``.
+
+This module will read the variable
+``HDF5_USE_STATIC_LIBRARIES`` to determine whether or not to prefer a
+static link to a dynamic link for ``HDF5`` and all of it's dependencies.
+To use this feature, make sure that the ``HDF5_USE_STATIC_LIBRARIES``
+variable is set before the call to find_package.
+
+Both the serial and parallel ``HDF5`` wrappers are considered and the first
+directory to contain either one will be used. In the event that both appear
+in the same directory the serial version is preferentially selected. This
+behavior can be reversed by setting the variable ``HDF5_PREFER_PARALLEL`` to
+``TRUE``.
+
+In addition to finding the includes and libraries required to compile
+an ``HDF5`` client application, this module also makes an effort to find
+tools that come with the ``HDF5`` distribution that may be useful for
+regression testing.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``HDF5_FOUND``
+ HDF5 was found on the system
+``HDF5_VERSION``
+ HDF5 library version
+``HDF5_INCLUDE_DIRS``
+ Location of the HDF5 header files
+``HDF5_DEFINITIONS``
+ Required compiler definitions for HDF5
+``HDF5_LIBRARIES``
+ Required libraries for all requested bindings
+``HDF5_HL_LIBRARIES``
+ Required libraries for the HDF5 high level API for all bindings,
+ if the ``HL`` component is enabled
+
+Available components are: ``C`` ``CXX`` ``Fortran`` and ``HL``.
+For each enabled language binding, a corresponding ``HDF5_${LANG}_LIBRARIES``
+variable, and potentially ``HDF5_${LANG}_DEFINITIONS``, will be defined.
+If the ``HL`` component is enabled, then an ``HDF5_${LANG}_HL_LIBRARIES`` will
+also be defined. With all components enabled, the following variables will be defined:
+
+``HDF5_C_DEFINITIONS``
+ Required compiler definitions for HDF5 C bindings
+``HDF5_CXX_DEFINITIONS``
+ Required compiler definitions for HDF5 C++ bindings
+``HDF5_Fortran_DEFINITIONS``
+ Required compiler definitions for HDF5 Fortran bindings
+``HDF5_C_INCLUDE_DIRS``
+ Required include directories for HDF5 C bindings
+``HDF5_CXX_INCLUDE_DIRS``
+ Required include directories for HDF5 C++ bindings
+``HDF5_Fortran_INCLUDE_DIRS``
+ Required include directories for HDF5 Fortran bindings
+``HDF5_C_LIBRARIES``
+ Required libraries for the HDF5 C bindings
+``HDF5_CXX_LIBRARIES``
+ Required libraries for the HDF5 C++ bindings
+``HDF5_Fortran_LIBRARIES``
+ Required libraries for the HDF5 Fortran bindings
+``HDF5_C_HL_LIBRARIES``
+ Required libraries for the high level C bindings
+``HDF5_CXX_HL_LIBRARIES``
+ Required libraries for the high level C++ bindings
+``HDF5_Fortran_HL_LIBRARIES``
+ Required libraries for the high level Fortran bindings.
+
+``HDF5_IS_PARALLEL``
+ HDF5 library has parallel IO support
+``HDF5_C_COMPILER_EXECUTABLE``
+ path to the HDF5 C wrapper compiler
+``HDF5_CXX_COMPILER_EXECUTABLE``
+ path to the HDF5 C++ wrapper compiler
+``HDF5_Fortran_COMPILER_EXECUTABLE``
+ path to the HDF5 Fortran wrapper compiler
+``HDF5_C_COMPILER_EXECUTABLE_NO_INTERROGATE``
+ path to the primary C compiler which is also the HDF5 wrapper
+``HDF5_CXX_COMPILER_EXECUTABLE_NO_INTERROGATE``
+ path to the primary C++ compiler which is also the HDF5 wrapper
+``HDF5_Fortran_COMPILER_EXECUTABLE_NO_INTERROGATE``
+ path to the primary Fortran compiler which is also the HDF5 wrapper
+``HDF5_DIFF_EXECUTABLE``
+ path to the HDF5 dataset comparison tool
+
+Hints
+^^^^^
+
+The following variables can be set to guide the search for HDF5 libraries and includes:
+
+``HDF5_PREFER_PARALLEL``
+ set ``true`` to prefer parallel HDF5 (by default, serial is preferred)
+
+``HDF5_FIND_DEBUG``
+ Set ``true`` to get extra debugging output.
+
+``HDF5_NO_FIND_PACKAGE_CONFIG_FILE``
+ Set ``true`` to skip trying to find ``hdf5-config.cmake``.
+#]=======================================================================]
+
+# This module is maintained by Will Dicharry <wdicharry@stellarscience.com>.
+
+include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+
+# List of the valid HDF5 components
+set(HDF5_VALID_LANGUAGE_BINDINGS C CXX Fortran)
+
+# Validate the list of find components.
+if(NOT HDF5_FIND_COMPONENTS)
+ set(HDF5_LANGUAGE_BINDINGS "C")
+else()
+ set(HDF5_LANGUAGE_BINDINGS)
+ # add the extra specified components, ensuring that they are valid.
+ set(HDF5_FIND_HL OFF)
+ foreach(_component IN LISTS HDF5_FIND_COMPONENTS)
+ list(FIND HDF5_VALID_LANGUAGE_BINDINGS ${_component} _component_location)
+ if(NOT _component_location EQUAL -1)
+ list(APPEND HDF5_LANGUAGE_BINDINGS ${_component})
+ elseif(_component STREQUAL "HL")
+ set(HDF5_FIND_HL ON)
+ elseif(_component STREQUAL "Fortran_HL") # only for compatibility
+ list(APPEND HDF5_LANGUAGE_BINDINGS Fortran)
+ set(HDF5_FIND_HL ON)
+ set(HDF5_FIND_REQUIRED_Fortran_HL FALSE)
+ set(HDF5_FIND_REQUIRED_Fortran TRUE)
+ set(HDF5_FIND_REQUIRED_HL TRUE)
+ else()
+ message(FATAL_ERROR "${_component} is not a valid HDF5 component.")
+ endif()
+ endforeach()
+ unset(_component)
+ unset(_component_location)
+ if(NOT HDF5_LANGUAGE_BINDINGS)
+ get_property(_langs GLOBAL PROPERTY ENABLED_LANGUAGES)
+ foreach(_lang IN LISTS _langs)
+ if(_lang MATCHES "^(C|CXX|Fortran)$")
+ list(APPEND HDF5_LANGUAGE_BINDINGS ${_lang})
+ endif()
+ endforeach()
+ endif()
+ list(REMOVE_ITEM HDF5_FIND_COMPONENTS Fortran_HL) # replaced by Fortran and HL
+ list(REMOVE_DUPLICATES HDF5_LANGUAGE_BINDINGS)
+endif()
+
+# Determine whether to search for serial or parallel executable first
+if(HDF5_PREFER_PARALLEL)
+ set(HDF5_C_COMPILER_NAMES h5pcc h5cc)
+ set(HDF5_CXX_COMPILER_NAMES h5pc++ h5c++)
+ set(HDF5_Fortran_COMPILER_NAMES h5pfc h5fc)
+else()
+ set(HDF5_C_COMPILER_NAMES h5cc h5pcc)
+ set(HDF5_CXX_COMPILER_NAMES h5c++ h5pc++)
+ set(HDF5_Fortran_COMPILER_NAMES h5fc h5pfc)
+endif()
+
+# We may have picked up some duplicates in various lists during the above
+# process for the language bindings (both the C and C++ bindings depend on
+# libz for example). Remove the duplicates. It appears that the default
+# CMake behavior is to remove duplicates from the end of a list. However,
+# for link lines, this is incorrect since unresolved symbols are searched
+# for down the link line. Therefore, we reverse the list, remove the
+# duplicates, and then reverse it again to get the duplicates removed from
+# the beginning.
+macro(_HDF5_remove_duplicates_from_beginning _list_name)
+ if(${_list_name})
+ list(REVERSE ${_list_name})
+ list(REMOVE_DUPLICATES ${_list_name})
+ list(REVERSE ${_list_name})
+ endif()
+endmacro()
+
+
+# Test first if the current compilers automatically wrap HDF5
+
+function(_HDF5_test_regular_compiler_C success version is_parallel)
+ set(scratch_directory
+ ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
+ if(NOT ${success} OR
+ NOT EXISTS ${scratch_directory}/compiler_has_h5_c)
+ set(test_file ${scratch_directory}/cmake_hdf5_test.c)
+ file(WRITE ${test_file}
+ "#include <hdf5.h>\n"
+ "#include <hdf5_hl.h>\n"
+ "const char* info_ver = \"INFO\" \":\" H5_VERSION;\n"
+ "#ifdef H5_HAVE_PARALLEL\n"
+ "const char* info_parallel = \"INFO\" \":\" \"PARALLEL\";\n"
+ "#endif\n"
+ "int main(int argc, char **argv) {\n"
+ " int require = 0;\n"
+ " require += info_ver[argc];\n"
+ "#ifdef H5_HAVE_PARALLEL\n"
+ " require += info_parallel[argc];\n"
+ "#endif\n"
+ " hid_t fid;\n"
+ " fid = H5Fcreate(\"foo.h5\",H5F_ACC_TRUNC,H5P_DEFAULT,H5P_DEFAULT);\n"
+ " return 0;\n"
+ "}")
+ try_compile(${success} ${scratch_directory} ${test_file}
+ COPY_FILE ${scratch_directory}/compiler_has_h5_c
+ )
+ endif()
+ if(${success})
+ file(STRINGS ${scratch_directory}/compiler_has_h5_c INFO_STRINGS
+ REGEX "^INFO:"
+ )
+ string(REGEX MATCH "^INFO:([0-9]+\\.[0-9]+\\.[0-9]+)(-patch([0-9]+))?"
+ INFO_VER "${INFO_STRINGS}"
+ )
+ set(${version} ${CMAKE_MATCH_1})
+ if(CMAKE_MATCH_3)
+ set(${version} ${HDF5_C_VERSION}.${CMAKE_MATCH_3})
+ endif()
+ set(${version} ${${version}} PARENT_SCOPE)
+
+ if(INFO_STRINGS MATCHES "INFO:PARALLEL")
+ set(${is_parallel} TRUE PARENT_SCOPE)
+ else()
+ set(${is_parallel} FALSE PARENT_SCOPE)
+ endif()
+ endif()
+endfunction()
+
+function(_HDF5_test_regular_compiler_CXX success version is_parallel)
+ set(scratch_directory ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
+ if(NOT ${success} OR
+ NOT EXISTS ${scratch_directory}/compiler_has_h5_cxx)
+ set(test_file ${scratch_directory}/cmake_hdf5_test.cxx)
+ file(WRITE ${test_file}
+ "#include <H5Cpp.h>\n"
+ "#ifndef H5_NO_NAMESPACE\n"
+ "using namespace H5;\n"
+ "#endif\n"
+ "const char* info_ver = \"INFO\" \":\" H5_VERSION;\n"
+ "#ifdef H5_HAVE_PARALLEL\n"
+ "const char* info_parallel = \"INFO\" \":\" \"PARALLEL\";\n"
+ "#endif\n"
+ "int main(int argc, char **argv) {\n"
+ " int require = 0;\n"
+ " require += info_ver[argc];\n"
+ "#ifdef H5_HAVE_PARALLEL\n"
+ " require += info_parallel[argc];\n"
+ "#endif\n"
+ " H5File file(\"foo.h5\", H5F_ACC_TRUNC);\n"
+ " return 0;\n"
+ "}")
+ try_compile(${success} ${scratch_directory} ${test_file}
+ COPY_FILE ${scratch_directory}/compiler_has_h5_cxx
+ )
+ endif()
+ if(${success})
+ file(STRINGS ${scratch_directory}/compiler_has_h5_cxx INFO_STRINGS
+ REGEX "^INFO:"
+ )
+ string(REGEX MATCH "^INFO:([0-9]+\\.[0-9]+\\.[0-9]+)(-patch([0-9]+))?"
+ INFO_VER "${INFO_STRINGS}"
+ )
+ set(${version} ${CMAKE_MATCH_1})
+ if(CMAKE_MATCH_3)
+ set(${version} ${HDF5_CXX_VERSION}.${CMAKE_MATCH_3})
+ endif()
+ set(${version} ${${version}} PARENT_SCOPE)
+
+ if(INFO_STRINGS MATCHES "INFO:PARALLEL")
+ set(${is_parallel} TRUE PARENT_SCOPE)
+ else()
+ set(${is_parallel} FALSE PARENT_SCOPE)
+ endif()
+ endif()
+endfunction()
+
+function(_HDF5_test_regular_compiler_Fortran success is_parallel)
+ if(NOT ${success})
+ set(scratch_directory
+ ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
+ set(test_file ${scratch_directory}/cmake_hdf5_test.f90)
+ file(WRITE ${test_file}
+ "program hdf5_hello\n"
+ " use hdf5\n"
+ " use h5lt\n"
+ " use h5ds\n"
+ " integer error\n"
+ " call h5open_f(error)\n"
+ " call h5close_f(error)\n"
+ "end\n")
+ try_compile(${success} ${scratch_directory} ${test_file})
+ if(${success})
+ execute_process(COMMAND ${CMAKE_Fortran_COMPILER} -showconfig
+ OUTPUT_VARIABLE config_output
+ ERROR_VARIABLE config_error
+ RESULT_VARIABLE config_result
+ )
+ if(config_output MATCHES "Parallel HDF5: yes")
+ set(${is_parallel} TRUE PARENT_SCOPE)
+ else()
+ set(${is_parallel} FALSE PARENT_SCOPE)
+ endif()
+ endif()
+ endif()
+endfunction()
+
+# Invoke the HDF5 wrapper compiler. The compiler return value is stored to the
+# return_value argument, the text output is stored to the output variable.
+function( _HDF5_invoke_compiler language output_var return_value_var version_var is_parallel_var)
+ set(is_parallel FALSE)
+ if(HDF5_USE_STATIC_LIBRARIES)
+ set(lib_type_args -noshlib)
+ else()
+ set(lib_type_args -shlib)
+ endif()
+ set(scratch_dir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/hdf5)
+ if("${language}" STREQUAL "C")
+ set(test_file ${scratch_dir}/cmake_hdf5_test.c)
+ elseif("${language}" STREQUAL "CXX")
+ set(test_file ${scratch_dir}/cmake_hdf5_test.cxx)
+ elseif("${language}" STREQUAL "Fortran")
+ set(test_file ${scratch_dir}/cmake_hdf5_test.f90)
+ endif()
+ # Verify that the compiler wrapper can actually compile: sometimes the compiler
+ # wrapper exists, but not the compiler. E.g. Miniconda / Anaconda Python
+ execute_process(
+ COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} ${test_file}
+ RESULT_VARIABLE return_value
+ )
+ if(return_value)
+ message(STATUS
+ "HDF5 ${language} compiler wrapper is unable to compile a minimal HDF5 program.")
+ else()
+ execute_process(
+ COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -show ${lib_type_args} ${test_file}
+ OUTPUT_VARIABLE output
+ ERROR_VARIABLE output
+ RESULT_VARIABLE return_value
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if(return_value)
+ message(STATUS
+ "Unable to determine HDF5 ${language} flags from HDF5 wrapper.")
+ endif()
+ execute_process(
+ COMMAND ${HDF5_${language}_COMPILER_EXECUTABLE} -showconfig
+ OUTPUT_VARIABLE config_output
+ ERROR_VARIABLE config_output
+ RESULT_VARIABLE return_value
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if(return_value)
+ message(STATUS
+ "Unable to determine HDF5 ${language} version_var from HDF5 wrapper.")
+ endif()
+ string(REGEX MATCH "HDF5 Version: ([a-zA-Z0-9\\.\\-]*)" version "${config_output}")
+ if(version)
+ string(REPLACE "HDF5 Version: " "" version "${version}")
+ string(REPLACE "-patch" "." version "${version}")
+ endif()
+ if(config_output MATCHES "Parallel HDF5: yes")
+ set(is_parallel TRUE)
+ endif()
+ endif()
+ foreach(var output return_value version is_parallel)
+ set(${${var}_var} ${${var}} PARENT_SCOPE)
+ endforeach()
+endfunction()
+
+# Parse a compile line for definitions, includes, library paths, and libraries.
+function(_HDF5_parse_compile_line compile_line_var include_paths definitions
+ library_paths libraries libraries_hl)
+
+ separate_arguments(_compile_args NATIVE_COMMAND "${${compile_line_var}}")
+
+ foreach(_arg IN LISTS _compile_args)
+ if("${_arg}" MATCHES "^-I(.*)$")
+ # include directory
+ list(APPEND include_paths "${CMAKE_MATCH_1}")
+ elseif("${_arg}" MATCHES "^-D(.*)$")
+ # compile definition
+ list(APPEND definitions "-D${CMAKE_MATCH_1}")
+ elseif("${_arg}" MATCHES "^-L(.*)$")
+ # library search path
+ list(APPEND library_paths "${CMAKE_MATCH_1}")
+ elseif("${_arg}" MATCHES "^-l(hdf5.*hl.*)$")
+ # library name (hl)
+ list(APPEND libraries_hl "${CMAKE_MATCH_1}")
+ elseif("${_arg}" MATCHES "^-l(.*)$")
+ # library name
+ list(APPEND libraries "${CMAKE_MATCH_1}")
+ elseif("${_arg}" MATCHES "^(.:)?[/\\].*\\.(a|so|dylib|sl|lib)$")
+ # library file
+ if(NOT EXISTS "${_arg}")
+ continue()
+ endif()
+ get_filename_component(_lpath "${_arg}" DIRECTORY)
+ get_filename_component(_lname "${_arg}" NAME_WE)
+ string(REGEX REPLACE "^lib" "" _lname "${_lname}")
+ list(APPEND library_paths "${_lpath}")
+ if(_lname MATCHES "hdf5.*hl")
+ list(APPEND libraries_hl "${_lname}")
+ else()
+ list(APPEND libraries "${_lname}")
+ endif()
+ endif()
+ endforeach()
+ foreach(var include_paths definitions library_paths libraries libraries_hl)
+ set(${${var}_var} ${${var}} PARENT_SCOPE)
+ endforeach()
+endfunction()
+
+# Select a preferred imported configuration from a target
+function(_HDF5_select_imported_config target imported_conf)
+ # We will first assign the value to a local variable _imported_conf, then assign
+ # it to the function argument at the end.
+ get_target_property(_imported_conf ${target} MAP_IMPORTED_CONFIG_${CMAKE_BUILD_TYPE})
+ if (NOT _imported_conf)
+ # Get available imported configurations by examining target properties
+ get_target_property(_imported_conf ${target} IMPORTED_CONFIGURATIONS)
+ if(HDF5_FIND_DEBUG)
+ message(STATUS "Found imported configurations: ${_imported_conf}")
+ endif()
+ # Find the imported configuration that we prefer.
+ # We do this by making list of configurations in order of preference,
+ # starting with ${CMAKE_BUILD_TYPE} and ending with the first imported_conf
+ set(_preferred_confs ${CMAKE_BUILD_TYPE})
+ list(GET _imported_conf 0 _fallback_conf)
+ list(APPEND _preferred_confs RELWITHDEBINFO RELEASE DEBUG ${_fallback_conf})
+ if(HDF5_FIND_DEBUG)
+ message(STATUS "Start search through imported configurations in the following order: ${_preferred_confs}")
+ endif()
+ # Now find the first of these that is present in imported_conf
+ cmake_policy(PUSH)
+ cmake_policy(SET CMP0057 NEW) # support IN_LISTS
+ foreach (_conf IN LISTS _preferred_confs)
+ if (${_conf} IN_LIST _imported_conf)
+ set(_imported_conf ${_conf})
+ break()
+ endif()
+ endforeach()
+ cmake_policy(POP)
+ endif()
+ if(HDF5_FIND_DEBUG)
+ message(STATUS "Selected imported configuration: ${_imported_conf}")
+ endif()
+ # assign value to function argument
+ set(${imported_conf} ${_imported_conf} PARENT_SCOPE)
+endfunction()
+
+
+if(NOT HDF5_ROOT)
+ set(HDF5_ROOT $ENV{HDF5_ROOT})
+endif()
+if(HDF5_ROOT)
+ set(_HDF5_SEARCH_OPTS NO_DEFAULT_PATH)
+else()
+ set(_HDF5_SEARCH_OPTS)
+endif()
+
+# Try to find HDF5 using an installed hdf5-config.cmake
+if(NOT HDF5_FOUND AND NOT HDF5_NO_FIND_PACKAGE_CONFIG_FILE)
+ find_package(HDF5 QUIET NO_MODULE
+ HINTS ${HDF5_ROOT}
+ ${_HDF5_SEARCH_OPTS}
+ )
+ if( HDF5_FOUND)
+ if(HDF5_FIND_DEBUG)
+ message(STATUS "Found HDF5 at ${HDF5_DIR} via NO_MODULE. Now trying to extract locations etc.")
+ endif()
+ set(HDF5_IS_PARALLEL ${HDF5_ENABLE_PARALLEL})
+ set(HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR})
+ set(HDF5_LIBRARIES)
+ if (NOT TARGET hdf5 AND NOT TARGET hdf5-static AND NOT TARGET hdf5-shared)
+ # Some HDF5 versions (e.g. 1.8.18) used hdf5::hdf5 etc
+ set(_target_prefix "hdf5::")
+ endif()
+ set(HDF5_C_TARGET ${_target_prefix}hdf5)
+ set(HDF5_C_HL_TARGET ${_target_prefix}hdf5_hl)
+ set(HDF5_CXX_TARGET ${_target_prefix}hdf5_cpp)
+ set(HDF5_CXX_HL_TARGET ${_target_prefix}hdf5_hl_cpp)
+ set(HDF5_Fortran_TARGET ${_target_prefix}hdf5_fortran)
+ set(HDF5_Fortran_HL_TARGET ${_target_prefix}hdf5_hl_fortran)
+ set(HDF5_DEFINITIONS "")
+ if(HDF5_USE_STATIC_LIBRARIES)
+ set(_suffix "-static")
+ else()
+ set(_suffix "-shared")
+ endif()
+ foreach(_lang ${HDF5_LANGUAGE_BINDINGS})
+
+ #Older versions of hdf5 don't have a static/shared suffix so
+ #if we detect that occurrence clear the suffix
+ if(_suffix AND NOT TARGET ${HDF5_${_lang}_TARGET}${_suffix})
+ if(NOT TARGET ${HDF5_${_lang}_TARGET})
+ #can't find this component with or without the suffix
+ #so bail out, and let the following locate HDF5
+ set(HDF5_FOUND FALSE)
+ break()
+ endif()
+ set(_suffix "")
+ endif()
+
+ if(HDF5_FIND_DEBUG)
+ message(STATUS "Trying to get properties of target ${HDF5_${_lang}_TARGET}${_suffix}")
+ endif()
+ # Find library for this target. Complicated as on Windows with a DLL, we need to search for the import-lib.
+ _HDF5_select_imported_config(${HDF5_${_lang}_TARGET}${_suffix} _hdf5_imported_conf)
+ get_target_property(_hdf5_lang_location ${HDF5_${_lang}_TARGET}${_suffix} IMPORTED_IMPLIB_${_hdf5_imported_conf} )
+ if (NOT _hdf5_lang_location)
+ # no import lib, just try LOCATION
+ get_target_property(_hdf5_lang_location ${HDF5_${_lang}_TARGET}${_suffix} LOCATION_${_hdf5_imported_conf})
+ if (NOT _hdf5_lang_location)
+ get_target_property(_hdf5_lang_location ${HDF5_${_lang}_TARGET}${_suffix} LOCATION)
+ endif()
+ endif()
+ if( _hdf5_lang_location )
+ set(HDF5_${_lang}_LIBRARY ${_hdf5_lang_location})
+ list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix})
+ set(HDF5_${_lang}_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix})
+ set(HDF5_${_lang}_FOUND TRUE)
+ endif()
+ if(HDF5_FIND_HL)
+ get_target_property(_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} IMPORTED_IMPLIB_${_hdf5_imported_conf} )
+ if (NOT _hdf5_lang_hl_location)
+ get_target_property(_hdf5_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION_${_hdf5_imported_conf})
+ if (NOT _hdf5_hl_lang_location)
+ get_target_property(_hdf5_hl_lang_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION)
+ endif()
+ endif()
+ if( _hdf5_lang_hl_location )
+ set(HDF5_${_lang}_HL_LIBRARY ${_hdf5_lang_hl_location})
+ list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_HL_TARGET}${_suffix})
+ set(HDF5_${_lang}_HL_LIBRARIES ${HDF5_${_lang}_HL_TARGET}${_suffix})
+ set(HDF5_HL_FOUND TRUE)
+ endif()
+ unset(_hdf5_lang_hl_location)
+ endif()
+ unset(_hdf5_imported_conf)
+ unset(_hdf5_lang_location)
+ endforeach()
+ endif()
+endif()
+
+if(NOT HDF5_FOUND)
+ set(_HDF5_NEED_TO_SEARCH FALSE)
+ set(HDF5_COMPILER_NO_INTERROGATE TRUE)
+ # Only search for languages we've enabled
+ foreach(_lang IN LISTS HDF5_LANGUAGE_BINDINGS)
+ # First check to see if our regular compiler is one of wrappers
+ if(_lang STREQUAL "C")
+ _HDF5_test_regular_compiler_C(
+ HDF5_${_lang}_COMPILER_NO_INTERROGATE
+ HDF5_${_lang}_VERSION
+ HDF5_${_lang}_IS_PARALLEL)
+ elseif(_lang STREQUAL "CXX")
+ _HDF5_test_regular_compiler_CXX(
+ HDF5_${_lang}_COMPILER_NO_INTERROGATE
+ HDF5_${_lang}_VERSION
+ HDF5_${_lang}_IS_PARALLEL)
+ elseif(_lang STREQUAL "Fortran")
+ _HDF5_test_regular_compiler_Fortran(
+ HDF5_${_lang}_COMPILER_NO_INTERROGATE
+ HDF5_${_lang}_IS_PARALLEL)
+ else()
+ continue()
+ endif()
+ if(HDF5_${_lang}_COMPILER_NO_INTERROGATE)
+ if(HDF5_FIND_DEBUG)
+ message(STATUS "HDF5: Using hdf5 compiler wrapper for all ${_lang} compiling")
+ endif()
+ set(HDF5_${_lang}_FOUND TRUE)
+ set(HDF5_${_lang}_COMPILER_EXECUTABLE_NO_INTERROGATE
+ "${CMAKE_${_lang}_COMPILER}"
+ CACHE FILEPATH "HDF5 ${_lang} compiler wrapper")
+ set(HDF5_${_lang}_DEFINITIONS)
+ set(HDF5_${_lang}_INCLUDE_DIRS)
+ set(HDF5_${_lang}_LIBRARIES)
+ set(HDF5_${_lang}_HL_LIBRARIES)
+
+ mark_as_advanced(HDF5_${_lang}_COMPILER_EXECUTABLE_NO_INTERROGATE)
+
+ set(HDF5_${_lang}_FOUND TRUE)
+ set(HDF5_HL_FOUND TRUE)
+ else()
+ set(HDF5_COMPILER_NO_INTERROGATE FALSE)
+ # If this language isn't using the wrapper, then try to seed the
+ # search options with the wrapper
+ find_program(HDF5_${_lang}_COMPILER_EXECUTABLE
+ NAMES ${HDF5_${_lang}_COMPILER_NAMES} NAMES_PER_DIR
+ HINTS ${HDF5_ROOT}
+ PATH_SUFFIXES bin Bin
+ DOC "HDF5 ${_lang} Wrapper compiler. Used only to detect HDF5 compile flags."
+ ${_HDF5_SEARCH_OPTS}
+ )
+ mark_as_advanced( HDF5_${_lang}_COMPILER_EXECUTABLE )
+ unset(HDF5_${_lang}_COMPILER_NAMES)
+
+ if(HDF5_${_lang}_COMPILER_EXECUTABLE)
+ _HDF5_invoke_compiler(${_lang} HDF5_${_lang}_COMPILE_LINE
+ HDF5_${_lang}_RETURN_VALUE HDF5_${_lang}_VERSION HDF5_${_lang}_IS_PARALLEL)
+ if(HDF5_${_lang}_RETURN_VALUE EQUAL 0)
+ if(HDF5_FIND_DEBUG)
+ message(STATUS "HDF5: Using hdf5 compiler wrapper to determine ${_lang} configuration")
+ endif()
+ _HDF5_parse_compile_line( HDF5_${_lang}_COMPILE_LINE
+ HDF5_${_lang}_INCLUDE_DIRS
+ HDF5_${_lang}_DEFINITIONS
+ HDF5_${_lang}_LIBRARY_DIRS
+ HDF5_${_lang}_LIBRARY_NAMES
+ HDF5_${_lang}_HL_LIBRARY_NAMES
+ )
+ set(HDF5_${_lang}_LIBRARIES)
+
+ foreach(_lib IN LISTS HDF5_${_lang}_LIBRARY_NAMES)
+ set(_HDF5_SEARCH_NAMES_LOCAL)
+ if("x${_lib}" MATCHES "hdf5")
+ # hdf5 library
+ set(_HDF5_SEARCH_OPTS_LOCAL ${_HDF5_SEARCH_OPTS})
+ if(HDF5_USE_STATIC_LIBRARIES)
+ if(WIN32)
+ set(_HDF5_SEARCH_NAMES_LOCAL lib${_lib})
+ else()
+ set(_HDF5_SEARCH_NAMES_LOCAL lib${_lib}.a)
+ endif()
+ endif()
+ else()
+ # external library
+ set(_HDF5_SEARCH_OPTS_LOCAL)
+ endif()
+ find_library(HDF5_${_lang}_LIBRARY_${_lib}
+ NAMES ${_HDF5_SEARCH_NAMES_LOCAL} ${_lib} NAMES_PER_DIR
+ HINTS ${HDF5_${_lang}_LIBRARY_DIRS}
+ ${HDF5_ROOT}
+ ${_HDF5_SEARCH_OPTS_LOCAL}
+ )
+ unset(_HDF5_SEARCH_OPTS_LOCAL)
+ unset(_HDF5_SEARCH_NAMES_LOCAL)
+ if(HDF5_${_lang}_LIBRARY_${_lib})
+ list(APPEND HDF5_${_lang}_LIBRARIES ${HDF5_${_lang}_LIBRARY_${_lib}})
+ else()
+ list(APPEND HDF5_${_lang}_LIBRARIES ${_lib})
+ endif()
+ endforeach()
+ if(HDF5_FIND_HL)
+ set(HDF5_${_lang}_HL_LIBRARIES)
+ foreach(_lib IN LISTS HDF5_${_lang}_HL_LIBRARY_NAMES)
+ set(_HDF5_SEARCH_NAMES_LOCAL)
+ if("x${_lib}" MATCHES "hdf5")
+ # hdf5 library
+ set(_HDF5_SEARCH_OPTS_LOCAL ${_HDF5_SEARCH_OPTS})
+ if(HDF5_USE_STATIC_LIBRARIES)
+ if(WIN32)
+ set(_HDF5_SEARCH_NAMES_LOCAL lib${_lib})
+ else()
+ set(_HDF5_SEARCH_NAMES_LOCAL lib${_lib}.a)
+ endif()
+ endif()
+ else()
+ # external library
+ set(_HDF5_SEARCH_OPTS_LOCAL)
+ endif()
+ find_library(HDF5_${_lang}_LIBRARY_${_lib}
+ NAMES ${_HDF5_SEARCH_NAMES_LOCAL} ${_lib} NAMES_PER_DIR
+ HINTS ${HDF5_${_lang}_LIBRARY_DIRS}
+ ${HDF5_ROOT}
+ ${_HDF5_SEARCH_OPTS_LOCAL}
+ )
+ unset(_HDF5_SEARCH_OPTS_LOCAL)
+ unset(_HDF5_SEARCH_NAMES_LOCAL)
+ if(HDF5_${_lang}_LIBRARY_${_lib})
+ list(APPEND HDF5_${_lang}_HL_LIBRARIES ${HDF5_${_lang}_LIBRARY_${_lib}})
+ else()
+ list(APPEND HDF5_${_lang}_HL_LIBRARIES ${_lib})
+ endif()
+ endforeach()
+ set(HDF5_HL_FOUND TRUE)
+ endif()
+
+ set(HDF5_${_lang}_FOUND TRUE)
+ _HDF5_remove_duplicates_from_beginning(HDF5_${_lang}_DEFINITIONS)
+ _HDF5_remove_duplicates_from_beginning(HDF5_${_lang}_INCLUDE_DIRS)
+ _HDF5_remove_duplicates_from_beginning(HDF5_${_lang}_LIBRARIES)
+ _HDF5_remove_duplicates_from_beginning(HDF5_${_lang}_HL_LIBRARIES)
+ else()
+ set(_HDF5_NEED_TO_SEARCH TRUE)
+ endif()
+ else()
+ set(_HDF5_NEED_TO_SEARCH TRUE)
+ endif()
+ endif()
+ if(HDF5_${_lang}_VERSION)
+ if(NOT HDF5_VERSION)
+ set(HDF5_VERSION ${HDF5_${_lang}_VERSION})
+ elseif(NOT HDF5_VERSION VERSION_EQUAL HDF5_${_lang}_VERSION)
+ message(WARNING "HDF5 Version found for language ${_lang}, ${HDF5_${_lang}_VERSION} is different than previously found version ${HDF5_VERSION}")
+ endif()
+ endif()
+ if(DEFINED HDF5_${_lang}_IS_PARALLEL)
+ if(NOT DEFINED HDF5_IS_PARALLEL)
+ set(HDF5_IS_PARALLEL ${HDF5_${_lang}_IS_PARALLEL})
+ elseif(NOT HDF5_IS_PARALLEL AND HDF5_${_lang}_IS_PARALLEL)
+ message(WARNING "HDF5 found for language ${_lang} is parallel but previously found language is not parallel.")
+ elseif(HDF5_IS_PARALLEL AND NOT HDF5_${_lang}_IS_PARALLEL)
+ message(WARNING "HDF5 found for language ${_lang} is not parallel but previously found language is parallel.")
+ endif()
+ endif()
+ endforeach()
+ unset(_lib)
+else()
+ set(_HDF5_NEED_TO_SEARCH TRUE)
+endif()
+
+if(NOT HDF5_FOUND AND HDF5_COMPILER_NO_INTERROGATE)
+ # No arguments necessary, all languages can use the compiler wrappers
+ set(HDF5_FOUND TRUE)
+ set(HDF5_METHOD "Included by compiler wrappers")
+ set(HDF5_REQUIRED_VARS HDF5_METHOD)
+elseif(NOT HDF5_FOUND AND NOT _HDF5_NEED_TO_SEARCH)
+ # Compiler wrappers aren't being used by the build but were found and used
+ # to determine necessary include and library flags
+ set(HDF5_INCLUDE_DIRS)
+ set(HDF5_LIBRARIES)
+ set(HDF5_HL_LIBRARIES)
+ foreach(_lang IN LISTS HDF5_LANGUAGE_BINDINGS)
+ if(HDF5_${_lang}_FOUND)
+ if(NOT HDF5_${_lang}_COMPILER_NO_INTERROGATE)
+ list(APPEND HDF5_DEFINITIONS ${HDF5_${_lang}_DEFINITIONS})
+ list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${_lang}_INCLUDE_DIRS})
+ list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_LIBRARIES})
+ if(HDF5_FIND_HL)
+ list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_HL_LIBRARIES})
+ endif()
+ endif()
+ endif()
+ endforeach()
+ _HDF5_remove_duplicates_from_beginning(HDF5_DEFINITIONS)
+ _HDF5_remove_duplicates_from_beginning(HDF5_INCLUDE_DIRS)
+ _HDF5_remove_duplicates_from_beginning(HDF5_LIBRARIES)
+ _HDF5_remove_duplicates_from_beginning(HDF5_HL_LIBRARIES)
+ set(HDF5_FOUND TRUE)
+ set(HDF5_REQUIRED_VARS HDF5_LIBRARIES)
+ if(HDF5_FIND_HL)
+ list(APPEND HDF5_REQUIRED_VARS HDF5_HL_LIBRARIES)
+ endif()
+endif()
+
+find_program( HDF5_DIFF_EXECUTABLE
+ NAMES h5diff
+ HINTS ${HDF5_ROOT}
+ PATH_SUFFIXES bin Bin
+ ${_HDF5_SEARCH_OPTS}
+ DOC "HDF5 file differencing tool." )
+mark_as_advanced( HDF5_DIFF_EXECUTABLE )
+
+if( NOT HDF5_FOUND )
+ # seed the initial lists of libraries to find with items we know we need
+ set(HDF5_C_LIBRARY_NAMES hdf5)
+ set(HDF5_C_HL_LIBRARY_NAMES hdf5_hl ${HDF5_C_LIBRARY_NAMES} )
+
+ set(HDF5_CXX_LIBRARY_NAMES hdf5_cpp ${HDF5_C_LIBRARY_NAMES})
+ set(HDF5_CXX_HL_LIBRARY_NAMES hdf5_hl_cpp ${HDF5_C_HL_LIBRARY_NAMES} ${HDF5_CXX_LIBRARY_NAMES})
+
+ set(HDF5_Fortran_LIBRARY_NAMES hdf5_fortran ${HDF5_C_LIBRARY_NAMES})
+ set(HDF5_Fortran_HL_LIBRARY_NAMES hdf5hl_fortran ${HDF5_C_HL_LIBRARY_NAMES} ${HDF5_Fortran_LIBRARY_NAMES})
+
+ # suffixes as seen on Linux, MSYS2, ...
+ set(_lib_suffixes hdf5)
+ if(NOT HDF5_PREFER_PARALLEL)
+ list(APPEND _lib_suffixes hdf5/serial)
+ endif()
+ if(HDF5_USE_STATIC_LIBRARIES)
+ set(_inc_suffixes include/static)
+ else()
+ set(_inc_suffixes include/shared)
+ endif()
+
+ foreach(_lang IN LISTS HDF5_LANGUAGE_BINDINGS)
+ # find the HDF5 include directories
+ if("${_lang}" STREQUAL "Fortran")
+ set(HDF5_INCLUDE_FILENAME hdf5.mod HDF5.mod)
+ elseif("${_lang}" STREQUAL "CXX")
+ set(HDF5_INCLUDE_FILENAME H5Cpp.h)
+ else()
+ set(HDF5_INCLUDE_FILENAME hdf5.h)
+ endif()
+
+ find_path(HDF5_${_lang}_INCLUDE_DIR ${HDF5_INCLUDE_FILENAME}
+ HINTS ${HDF5_ROOT}
+ PATHS $ENV{HOME}/.local/include
+ PATH_SUFFIXES include Include ${_inc_suffixes} ${_lib_suffixes}
+ ${_HDF5_SEARCH_OPTS}
+ )
+ mark_as_advanced(HDF5_${_lang}_INCLUDE_DIR)
+ # set the _DIRS variable as this is what the user will normally use
+ set(HDF5_${_lang}_INCLUDE_DIRS ${HDF5_${_lang}_INCLUDE_DIR})
+ list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${_lang}_INCLUDE_DIR})
+
+ # find the HDF5 libraries
+ foreach(LIB IN LISTS HDF5_${_lang}_LIBRARY_NAMES)
+ if(HDF5_USE_STATIC_LIBRARIES)
+ # According to bug 1643 on the CMake bug tracker, this is the
+ # preferred method for searching for a static library.
+ # See https://gitlab.kitware.com/cmake/cmake/-/issues/1643. We search
+ # first for the full static library name, but fall back to a
+ # generic search on the name if the static search fails.
+ set( THIS_LIBRARY_SEARCH_DEBUG
+ lib${LIB}d.a lib${LIB}_debug.a lib${LIB}d lib${LIB}_D lib${LIB}_debug
+ lib${LIB}d-static.a lib${LIB}_debug-static.a ${LIB}d-static ${LIB}_D-static ${LIB}_debug-static )
+ set( THIS_LIBRARY_SEARCH_RELEASE lib${LIB}.a lib${LIB} lib${LIB}-static.a ${LIB}-static)
+ else()
+ set( THIS_LIBRARY_SEARCH_DEBUG ${LIB}d ${LIB}_D ${LIB}_debug ${LIB}d-shared ${LIB}_D-shared ${LIB}_debug-shared)
+ set( THIS_LIBRARY_SEARCH_RELEASE ${LIB} ${LIB}-shared)
+ if(WIN32)
+ list(APPEND HDF5_DEFINITIONS "-DH5_BUILT_AS_DYNAMIC_LIB")
+ endif()
+ endif()
+ find_library(HDF5_${LIB}_LIBRARY_DEBUG
+ NAMES ${THIS_LIBRARY_SEARCH_DEBUG}
+ HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes}
+ ${_HDF5_SEARCH_OPTS}
+ )
+ find_library(HDF5_${LIB}_LIBRARY_RELEASE
+ NAMES ${THIS_LIBRARY_SEARCH_RELEASE}
+ HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes}
+ ${_HDF5_SEARCH_OPTS}
+ )
+
+ select_library_configurations( HDF5_${LIB} )
+ list(APPEND HDF5_${_lang}_LIBRARIES ${HDF5_${LIB}_LIBRARY})
+ endforeach()
+ if(HDF5_${_lang}_LIBRARIES)
+ set(HDF5_${_lang}_FOUND TRUE)
+ endif()
+
+ # Append the libraries for this language binding to the list of all
+ # required libraries.
+ list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_LIBRARIES})
+
+ if(HDF5_FIND_HL)
+ foreach(LIB IN LISTS HDF5_${_lang}_HL_LIBRARY_NAMES)
+ if(HDF5_USE_STATIC_LIBRARIES)
+ # According to bug 1643 on the CMake bug tracker, this is the
+ # preferred method for searching for a static library.
+ # See https://gitlab.kitware.com/cmake/cmake/-/issues/1643. We search
+ # first for the full static library name, but fall back to a
+ # generic search on the name if the static search fails.
+ set( THIS_LIBRARY_SEARCH_DEBUG
+ lib${LIB}d.a lib${LIB}_debug.a lib${LIB}d lib${LIB}_D lib${LIB}_debug
+ lib${LIB}d-static.a lib${LIB}_debug-static.a lib${LIB}d-static lib${LIB}_D-static lib${LIB}_debug-static )
+ set( THIS_LIBRARY_SEARCH_RELEASE lib${LIB}.a lib${LIB} lib${LIB}-static.a lib${LIB}-static)
+ else()
+ set( THIS_LIBRARY_SEARCH_DEBUG ${LIB}d ${LIB}_D ${LIB}_debug ${LIB}d-shared ${LIB}_D-shared ${LIB}_debug-shared)
+ set( THIS_LIBRARY_SEARCH_RELEASE ${LIB} ${LIB}-shared)
+ endif()
+ find_library(HDF5_${LIB}_LIBRARY_DEBUG
+ NAMES ${THIS_LIBRARY_SEARCH_DEBUG}
+ HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes}
+ ${_HDF5_SEARCH_OPTS}
+ )
+ find_library(HDF5_${LIB}_LIBRARY_RELEASE
+ NAMES ${THIS_LIBRARY_SEARCH_RELEASE}
+ HINTS ${HDF5_ROOT} PATH_SUFFIXES lib Lib ${_lib_suffixes}
+ ${_HDF5_SEARCH_OPTS}
+ )
+
+ select_library_configurations( HDF5_${LIB} )
+ list(APPEND HDF5_${_lang}_HL_LIBRARIES ${HDF5_${LIB}_LIBRARY})
+ endforeach()
+
+ # Append the libraries for this language binding to the list of all
+ # required libraries.
+ list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_HL_LIBRARIES})
+ endif()
+ endforeach()
+ if(HDF5_FIND_HL AND HDF5_HL_LIBRARIES)
+ set(HDF5_HL_FOUND TRUE)
+ endif()
+
+ _HDF5_remove_duplicates_from_beginning(HDF5_DEFINITIONS)
+ _HDF5_remove_duplicates_from_beginning(HDF5_INCLUDE_DIRS)
+ _HDF5_remove_duplicates_from_beginning(HDF5_LIBRARIES)
+ _HDF5_remove_duplicates_from_beginning(HDF5_HL_LIBRARIES)
+
+ # If the HDF5 include directory was found, open H5pubconf.h to determine if
+ # HDF5 was compiled with parallel IO support
+ set( HDF5_IS_PARALLEL FALSE )
+ set( HDF5_VERSION "" )
+ foreach( _dir IN LISTS HDF5_INCLUDE_DIRS )
+ foreach(_hdr "${_dir}/H5pubconf.h" "${_dir}/H5pubconf-64.h" "${_dir}/H5pubconf-32.h")
+ if( EXISTS "${_hdr}" )
+ file( STRINGS "${_hdr}"
+ HDF5_HAVE_PARALLEL_DEFINE
+ REGEX "HAVE_PARALLEL 1" )
+ if( HDF5_HAVE_PARALLEL_DEFINE )
+ set( HDF5_IS_PARALLEL TRUE )
+ endif()
+ unset(HDF5_HAVE_PARALLEL_DEFINE)
+
+ file( STRINGS "${_hdr}"
+ HDF5_VERSION_DEFINE
+ REGEX "^[ \t]*#[ \t]*define[ \t]+H5_VERSION[ \t]+" )
+ if( "${HDF5_VERSION_DEFINE}" MATCHES
+ "H5_VERSION[ \t]+\"([0-9]+\\.[0-9]+\\.[0-9]+)(-patch([0-9]+))?\"" )
+ set( HDF5_VERSION "${CMAKE_MATCH_1}" )
+ if( CMAKE_MATCH_3 )
+ set( HDF5_VERSION ${HDF5_VERSION}.${CMAKE_MATCH_3})
+ endif()
+ endif()
+ unset(HDF5_VERSION_DEFINE)
+ endif()
+ endforeach()
+ endforeach()
+ unset(_hdr)
+ unset(_dir)
+ set( HDF5_IS_PARALLEL ${HDF5_IS_PARALLEL} CACHE BOOL
+ "HDF5 library compiled with parallel IO support" )
+ mark_as_advanced( HDF5_IS_PARALLEL )
+
+ set(HDF5_REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS)
+ if(HDF5_FIND_HL)
+ list(APPEND HDF5_REQUIRED_VARS HDF5_HL_LIBRARIES)
+ endif()
+endif()
+
+# For backwards compatibility we set HDF5_INCLUDE_DIR to the value of
+# HDF5_INCLUDE_DIRS
+if( HDF5_INCLUDE_DIRS )
+ set( HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIRS}" )
+endif()
+
+# If HDF5_REQUIRED_VARS is empty at this point, then it's likely that
+# something external is trying to explicitly pass already found
+# locations
+if(NOT HDF5_REQUIRED_VARS)
+ set(HDF5_REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS)
+endif()
+
+find_package_handle_standard_args(HDF5
+ REQUIRED_VARS ${HDF5_REQUIRED_VARS}
+ VERSION_VAR HDF5_VERSION
+ HANDLE_COMPONENTS
+)
+
+unset(_HDF5_SEARCH_OPTS)
+
+if( HDF5_FOUND AND NOT HDF5_DIR)
+ # hide HDF5_DIR for the non-advanced user to avoid confusion with
+ # HDF5_DIR-NOT_FOUND while HDF5 was found.
+ mark_as_advanced(HDF5_DIR)
+endif()
+
+if (HDF5_FIND_DEBUG)
+ message(STATUS "HDF5_DIR: ${HDF5_DIR}")
+ message(STATUS "HDF5_DEFINITIONS: ${HDF5_DEFINITIONS}")
+ message(STATUS "HDF5_INCLUDE_DIRS: ${HDF5_INCLUDE_DIRS}")
+ message(STATUS "HDF5_LIBRARIES: ${HDF5_LIBRARIES}")
+ message(STATUS "HDF5_HL_LIBRARIES: ${HDF5_HL_LIBRARIES}")
+ foreach(_lang IN LISTS HDF5_LANGUAGE_BINDINGS)
+ message(STATUS "HDF5_${_lang}_DEFINITIONS: ${HDF5_${_lang}_DEFINITIONS}")
+ message(STATUS "HDF5_${_lang}_INCLUDE_DIR: ${HDF5_${_lang}_INCLUDE_DIR}")
+ message(STATUS "HDF5_${_lang}_INCLUDE_DIRS: ${HDF5_${_lang}_INCLUDE_DIRS}")
+ message(STATUS "HDF5_${_lang}_LIBRARY: ${HDF5_${_lang}_LIBRARY}")
+ message(STATUS "HDF5_${_lang}_LIBRARIES: ${HDF5_${_lang}_LIBRARIES}")
+ message(STATUS "HDF5_${_lang}_HL_LIBRARY: ${HDF5_${_lang}_HL_LIBRARY}")
+ message(STATUS "HDF5_${_lang}_HL_LIBRARIES: ${HDF5_${_lang}_HL_LIBRARIES}")
+ endforeach()
+endif()
+unset(_lang)
+unset(_HDF5_NEED_TO_SEARCH)
diff --git a/share/cmake-3.17/Modules/FindHSPELL.cmake b/share/cmake-3.18/Modules/FindHSPELL.cmake
index 9724d2c..9724d2c 100644
--- a/share/cmake-3.17/Modules/FindHSPELL.cmake
+++ b/share/cmake-3.18/Modules/FindHSPELL.cmake
diff --git a/share/cmake-3.17/Modules/FindHTMLHelp.cmake b/share/cmake-3.18/Modules/FindHTMLHelp.cmake
index a11ad4d..a11ad4d 100644
--- a/share/cmake-3.17/Modules/FindHTMLHelp.cmake
+++ b/share/cmake-3.18/Modules/FindHTMLHelp.cmake
diff --git a/share/cmake-3.17/Modules/FindHg.cmake b/share/cmake-3.18/Modules/FindHg.cmake
index 1358363..1358363 100644
--- a/share/cmake-3.17/Modules/FindHg.cmake
+++ b/share/cmake-3.18/Modules/FindHg.cmake
diff --git a/share/cmake-3.17/Modules/FindICU.cmake b/share/cmake-3.18/Modules/FindICU.cmake
index 38081f5..38081f5 100644
--- a/share/cmake-3.17/Modules/FindICU.cmake
+++ b/share/cmake-3.18/Modules/FindICU.cmake
diff --git a/share/cmake-3.17/Modules/FindIce.cmake b/share/cmake-3.18/Modules/FindIce.cmake
index 5ce2b42..5ce2b42 100644
--- a/share/cmake-3.17/Modules/FindIce.cmake
+++ b/share/cmake-3.18/Modules/FindIce.cmake
diff --git a/share/cmake-3.17/Modules/FindIconv.cmake b/share/cmake-3.18/Modules/FindIconv.cmake
index bf20f6f..bf20f6f 100644
--- a/share/cmake-3.17/Modules/FindIconv.cmake
+++ b/share/cmake-3.18/Modules/FindIconv.cmake
diff --git a/share/cmake-3.17/Modules/FindIcotool.cmake b/share/cmake-3.18/Modules/FindIcotool.cmake
index d19c145..d19c145 100644
--- a/share/cmake-3.17/Modules/FindIcotool.cmake
+++ b/share/cmake-3.18/Modules/FindIcotool.cmake
diff --git a/share/cmake-3.17/Modules/FindImageMagick.cmake b/share/cmake-3.18/Modules/FindImageMagick.cmake
index 8bf5123..8bf5123 100644
--- a/share/cmake-3.17/Modules/FindImageMagick.cmake
+++ b/share/cmake-3.18/Modules/FindImageMagick.cmake
diff --git a/share/cmake-3.17/Modules/FindIntl.cmake b/share/cmake-3.18/Modules/FindIntl.cmake
index 3818d45..3818d45 100644
--- a/share/cmake-3.17/Modules/FindIntl.cmake
+++ b/share/cmake-3.18/Modules/FindIntl.cmake
diff --git a/share/cmake-3.17/Modules/FindJNI.cmake b/share/cmake-3.18/Modules/FindJNI.cmake
index 3a5bd31..3a5bd31 100644
--- a/share/cmake-3.17/Modules/FindJNI.cmake
+++ b/share/cmake-3.18/Modules/FindJNI.cmake
diff --git a/share/cmake-3.17/Modules/FindJPEG.cmake b/share/cmake-3.18/Modules/FindJPEG.cmake
index 0bb6989..0bb6989 100644
--- a/share/cmake-3.17/Modules/FindJPEG.cmake
+++ b/share/cmake-3.18/Modules/FindJPEG.cmake
diff --git a/share/cmake-3.17/Modules/FindJasper.cmake b/share/cmake-3.18/Modules/FindJasper.cmake
index 729a503..729a503 100644
--- a/share/cmake-3.17/Modules/FindJasper.cmake
+++ b/share/cmake-3.18/Modules/FindJasper.cmake
diff --git a/share/cmake-3.18/Modules/FindJava.cmake b/share/cmake-3.18/Modules/FindJava.cmake
new file mode 100644
index 0000000..9db740b
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindJava.cmake
@@ -0,0 +1,359 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindJava
+--------
+
+Find Java
+
+This module finds if Java is installed and determines where the
+include files and libraries are. The caller may set variable ``JAVA_HOME``
+to specify a Java installation prefix explicitly.
+
+See also the :module:`FindJNI` module to find Java Native Interface (JNI).
+
+Specify one or more of the following components as you call this find module. See example below.
+
+::
+
+ Runtime = Java Runtime Environment used to execute Java byte-compiled applications
+ Development = Development tools (java, javac, javah, jar and javadoc), includes Runtime component
+ IdlJ = Interface Description Language (IDL) to Java compiler
+ JarSigner = Signer and verifier tool for Java Archive (JAR) files
+
+
+This module sets the following result variables:
+
+::
+
+ Java_JAVA_EXECUTABLE = the full path to the Java runtime
+ Java_JAVAC_EXECUTABLE = the full path to the Java compiler
+ Java_JAVAH_EXECUTABLE = the full path to the Java header generator
+ Java_JAVADOC_EXECUTABLE = the full path to the Java documentation generator
+ Java_IDLJ_EXECUTABLE = the full path to the Java idl compiler
+ Java_JAR_EXECUTABLE = the full path to the Java archiver
+ Java_JARSIGNER_EXECUTABLE = the full path to the Java jar signer
+ Java_VERSION_STRING = Version of java found, eg. 1.6.0_12
+ Java_VERSION_MAJOR = The major version of the package found.
+ Java_VERSION_MINOR = The minor version of the package found.
+ Java_VERSION_PATCH = The patch version of the package found.
+ Java_VERSION_TWEAK = The tweak version of the package found (after '_')
+ Java_VERSION = This is set to: $major[.$minor[.$patch[.$tweak]]]
+
+
+
+The minimum required version of Java can be specified using the
+:command:`find_package` syntax, e.g.
+
+.. code-block:: cmake
+
+ find_package(Java 1.8)
+
+NOTE: ``${Java_VERSION}`` and ``${Java_VERSION_STRING}`` are not guaranteed to
+be identical. For example some java version may return:
+``Java_VERSION_STRING = 1.8.0_17`` and ``Java_VERSION = 1.8.0.17``
+
+another example is the Java OEM, with: ``Java_VERSION_STRING = 1.8.0-oem``
+and ``Java_VERSION = 1.8.0``
+
+For these components the following variables are set:
+
+::
+
+ Java_FOUND - TRUE if all components are found.
+ Java_<component>_FOUND - TRUE if <component> is found.
+
+
+
+Example Usages:
+
+::
+
+ find_package(Java)
+ find_package(Java 1.8 REQUIRED)
+ find_package(Java COMPONENTS Runtime)
+ find_package(Java COMPONENTS Development)
+#]=======================================================================]
+
+include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindJavaCommon.cmake)
+
+# The HINTS option should only be used for values computed from the system.
+set(_JAVA_HINTS)
+if(_JAVA_HOME)
+ list(APPEND _JAVA_HINTS ${_JAVA_HOME}/bin)
+endif()
+if (WIN32)
+ macro (_JAVA_GET_INSTALLED_VERSIONS _KIND)
+ execute_process(COMMAND REG QUERY HKLM\\SOFTWARE\\JavaSoft\\${_KIND}
+ RESULT_VARIABLE _JAVA_RESULT
+ OUTPUT_VARIABLE _JAVA_VERSIONS
+ ERROR_QUIET)
+ if (NOT _JAVA_RESULT)
+ string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\${_KIND}\\\\[0-9.]+" _JAVA_VERSIONS "${_JAVA_VERSIONS}")
+ if (_JAVA_VERSIONS)
+ # sort versions. Most recent first
+ ## handle version 9 apart from other versions to get correct ordering
+ set (_JAVA_V9 ${_JAVA_VERSIONS})
+ list (FILTER _JAVA_VERSIONS EXCLUDE REGEX "${_KIND}\\\\9")
+ list (SORT _JAVA_VERSIONS)
+ list (REVERSE _JAVA_VERSIONS)
+ list (FILTER _JAVA_V9 INCLUDE REGEX "${_KIND}\\\\9")
+ list (SORT _JAVA_V9)
+ list (REVERSE _JAVA_V9)
+ list (APPEND _JAVA_VERSIONS ${_JAVA_V9})
+ foreach (_JAVA_HINT IN LISTS _JAVA_VERSIONS)
+ list(APPEND _JAVA_HINTS "[${_JAVA_HINT};JavaHome]/bin")
+ endforeach()
+ endif()
+ endif()
+ endmacro()
+
+ # search for installed versions for version 9 and upper
+ _JAVA_GET_INSTALLED_VERSIONS("JDK")
+ _JAVA_GET_INSTALLED_VERSIONS("JRE")
+
+ list(APPEND _JAVA_HINTS
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.9;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.8;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.7;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.6;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.5;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.4;JavaHome]/bin"
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Runtime Environment\\1.3;JavaHome]/bin"
+ )
+endif()
+
+# Hard-coded guesses should still go in PATHS. This ensures that the user
+# environment can always override hard guesses.
+set(_JAVA_PATHS
+ /usr/lib/java/bin
+ /usr/share/java/bin
+ /usr/local/java/bin
+ /usr/local/java/share/bin
+ /usr/java/j2sdk1.4.2_04
+ /usr/lib/j2sdk1.4-sun/bin
+ /usr/java/j2sdk1.4.2_09/bin
+ /usr/lib/j2sdk1.5-sun/bin
+ /opt/sun-jdk-1.5.0.04/bin
+ /usr/local/jdk-1.7.0/bin
+ /usr/local/jdk-1.6.0/bin
+ )
+find_program(Java_JAVA_EXECUTABLE
+ NAMES java
+ HINTS ${_JAVA_HINTS}
+ PATHS ${_JAVA_PATHS}
+)
+
+if(Java_JAVA_EXECUTABLE)
+ execute_process(COMMAND "${Java_JAVA_EXECUTABLE}" -version
+ RESULT_VARIABLE res
+ OUTPUT_VARIABLE var
+ ERROR_VARIABLE var # sun-java output to stderr
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_STRIP_TRAILING_WHITESPACE)
+ if( res )
+ if(var MATCHES "Unable to locate a Java Runtime to invoke|No Java runtime present, requesting install")
+ set(Java_JAVA_EXECUTABLE Java_JAVA_EXECUTABLE-NOTFOUND)
+ elseif(${Java_FIND_REQUIRED})
+ message( FATAL_ERROR "Error executing java -version" )
+ else()
+ message( STATUS "Warning, could not run java -version")
+ endif()
+ else()
+ # Extract version components (up to 4 levels) from "java -version" output.
+ set(_java_version_regex [[(([0-9]+)(\.([0-9]+)(\.([0-9]+)(_([0-9]+))?)?)?.*)]])
+ if(var MATCHES "java version \"${_java_version_regex}\"")
+ # Sun, GCJ, older OpenJDK
+ set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
+ set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}")
+ if (CMAKE_MATCH_4)
+ set(Java_VERSION_MINOR "${CMAKE_MATCH_4}")
+ else()
+ set(Java_VERSION_MINOR 0)
+ endif()
+ if (CMAKE_MATCH_6)
+ set(Java_VERSION_PATCH "${CMAKE_MATCH_6}")
+ else()
+ set(Java_VERSION_PATCH 0)
+ endif()
+ set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}")
+ elseif(var MATCHES "openjdk version \"${_java_version_regex}\"")
+ # OpenJDK
+ set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
+ set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}")
+ if (CMAKE_MATCH_4)
+ set(Java_VERSION_MINOR "${CMAKE_MATCH_4}")
+ else()
+ set(Java_VERSION_MINOR 0)
+ endif()
+ if (CMAKE_MATCH_6)
+ set(Java_VERSION_PATCH "${CMAKE_MATCH_6}")
+ else()
+ set(Java_VERSION_PATCH 0)
+ endif()
+ set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}")
+ elseif(var MATCHES "openjdk version \"([0-9]+)-[A-Za-z]+\"")
+ # OpenJDK 9 early access builds or locally built
+ set(Java_VERSION_STRING "1.${CMAKE_MATCH_1}.0")
+ set(Java_VERSION_MAJOR "1")
+ set(Java_VERSION_MINOR "${CMAKE_MATCH_1}")
+ set(Java_VERSION_PATCH "0")
+ set(Java_VERSION_TWEAK "")
+ elseif(var MATCHES "java full version \"kaffe-${_java_version_regex}\"")
+ # Kaffe style
+ set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
+ set(Java_VERSION_MAJOR "${CMAKE_MATCH_2}")
+ set(Java_VERSION_MINOR "${CMAKE_MATCH_4}")
+ set(Java_VERSION_PATCH "${CMAKE_MATCH_6}")
+ set(Java_VERSION_TWEAK "${CMAKE_MATCH_8}")
+ else()
+ if(NOT Java_FIND_QUIETLY)
+ string(REPLACE "\n" "\n " ver_msg "\n${var}")
+ message(WARNING "Java version not recognized:${ver_msg}\nPlease report.")
+ endif()
+ set(Java_VERSION_STRING "")
+ set(Java_VERSION_MAJOR "")
+ set(Java_VERSION_MINOR "")
+ set(Java_VERSION_PATCH "")
+ set(Java_VERSION_TWEAK "")
+ endif()
+ set(Java_VERSION "${Java_VERSION_MAJOR}")
+ if(NOT "x${Java_VERSION}" STREQUAL "x")
+ foreach(c MINOR PATCH TWEAK)
+ if(NOT "x${Java_VERSION_${c}}" STREQUAL "x")
+ string(APPEND Java_VERSION ".${Java_VERSION_${c}}")
+ else()
+ break()
+ endif()
+ endforeach()
+ endif()
+ endif()
+
+endif()
+
+
+find_program(Java_JAR_EXECUTABLE
+ NAMES jar
+ HINTS ${_JAVA_HINTS}
+ PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_JAVAC_EXECUTABLE
+ NAMES javac
+ HINTS ${_JAVA_HINTS}
+ PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_JAVAH_EXECUTABLE
+ NAMES javah
+ HINTS ${_JAVA_HINTS}
+ PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_JAVADOC_EXECUTABLE
+ NAMES javadoc
+ HINTS ${_JAVA_HINTS}
+ PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_IDLJ_EXECUTABLE
+ NAMES idlj
+ HINTS ${_JAVA_HINTS}
+ PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_JARSIGNER_EXECUTABLE
+ NAMES jarsigner
+ HINTS ${_JAVA_HINTS}
+ PATHS ${_JAVA_PATHS}
+)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+if(Java_FIND_COMPONENTS)
+ set(_JAVA_REQUIRED_VARS)
+ foreach(component ${Java_FIND_COMPONENTS})
+ # User just want to execute some Java byte-compiled
+ If(component STREQUAL "Runtime")
+ list(APPEND _JAVA_REQUIRED_VARS Java_JAVA_EXECUTABLE)
+ if(Java_JAVA_EXECUTABLE)
+ set(Java_Runtime_FOUND TRUE)
+ endif()
+ elseif(component STREQUAL "Development")
+ list(APPEND _JAVA_REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAVAC_EXECUTABLE
+ Java_JAR_EXECUTABLE Java_JAVADOC_EXECUTABLE)
+ if(Java_VERSION VERSION_LESS "10")
+ list(APPEND _JAVA_REQUIRED_VARS Java_JAVAH_EXECUTABLE)
+ if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE
+ AND Java_JAVAH_EXECUTABLE AND Java_JAR_EXECUTABLE AND Java_JAVADOC_EXECUTABLE)
+ set(Java_Development_FOUND TRUE)
+ endif()
+ else()
+ if(Java_JAVA_EXECUTABLE AND Java_JAVAC_EXECUTABLE
+ AND Java_JAR_EXECUTABLE AND Java_JAVADOC_EXECUTABLE)
+ set(Java_Development_FOUND TRUE)
+ endif()
+ endif()
+ elseif(component STREQUAL "IdlJ")
+ list(APPEND _JAVA_REQUIRED_VARS Java_IDLJ_EXECUTABLE)
+ if(Java_IDLJ_EXECUTABLE)
+ set(Java_IdlJ_FOUND TRUE)
+ endif()
+ elseif(component STREQUAL "JarSigner")
+ list(APPEND _JAVA_REQUIRED_VARS Java_JARSIGNER_EXECUTABLE)
+ if(Java_JARSIGNER_EXECUTABLE)
+ set(Java_JarSigner_FOUND TRUE)
+ endif()
+ else()
+ message(FATAL_ERROR "Comp: ${component} is not handled")
+ endif()
+ endforeach()
+ list (REMOVE_DUPLICATES _JAVA_REQUIRED_VARS)
+ find_package_handle_standard_args(Java
+ REQUIRED_VARS ${_JAVA_REQUIRED_VARS} HANDLE_COMPONENTS
+ VERSION_VAR Java_VERSION
+ )
+ if(Java_FOUND)
+ foreach(component ${Java_FIND_COMPONENTS})
+ set(Java_${component}_FOUND TRUE)
+ endforeach()
+ endif()
+else()
+ # Check for Development
+ if(Java_VERSION VERSION_LESS "10")
+ find_package_handle_standard_args(Java
+ REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
+ Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE
+ VERSION_VAR Java_VERSION_STRING
+ )
+ else()
+ find_package_handle_standard_args(Java
+ REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
+ Java_JAVADOC_EXECUTABLE
+ VERSION_VAR Java_VERSION_STRING
+ )
+ endif()
+endif()
+
+
+mark_as_advanced(
+ Java_JAVA_EXECUTABLE
+ Java_JAR_EXECUTABLE
+ Java_JAVAC_EXECUTABLE
+ Java_JAVAH_EXECUTABLE
+ Java_JAVADOC_EXECUTABLE
+ Java_IDLJ_EXECUTABLE
+ Java_JARSIGNER_EXECUTABLE
+ )
+
+# LEGACY
+set(JAVA_RUNTIME ${Java_JAVA_EXECUTABLE})
+set(JAVA_ARCHIVE ${Java_JAR_EXECUTABLE})
+set(JAVA_COMPILE ${Java_JAVAC_EXECUTABLE})
diff --git a/share/cmake-3.17/Modules/FindKDE3.cmake b/share/cmake-3.18/Modules/FindKDE3.cmake
index 30ea5e6..30ea5e6 100644
--- a/share/cmake-3.17/Modules/FindKDE3.cmake
+++ b/share/cmake-3.18/Modules/FindKDE3.cmake
diff --git a/share/cmake-3.17/Modules/FindKDE4.cmake b/share/cmake-3.18/Modules/FindKDE4.cmake
index 695e9ac..695e9ac 100644
--- a/share/cmake-3.17/Modules/FindKDE4.cmake
+++ b/share/cmake-3.18/Modules/FindKDE4.cmake
diff --git a/share/cmake-3.18/Modules/FindLAPACK.cmake b/share/cmake-3.18/Modules/FindLAPACK.cmake
new file mode 100644
index 0000000..31e7de6
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindLAPACK.cmake
@@ -0,0 +1,555 @@
+# 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``
+ * ``Arm``
+ * ``Arm_mp``
+ * ``Arm_ilp64``
+ * ``Arm_ilp64_mp``
+ * ``Generic``
+
+``BLA_F95``
+ if ``ON`` tries to find the BLAS95/LAPACK95 interfaces
+
+Imported targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` target:
+
+``LAPACK::LAPACK``
+ The libraries to use for LAPACK, if found.
+
+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})
+ file(TO_CMAKE_PATH "$ENV{MKLROOT}" LAPACK_mkl_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()
+
+ # ArmPL? (https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries)
+ if(BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All")
+
+ # Check for 64bit Integer support
+ if(BLA_VENDOR MATCHES "_ilp64")
+ set(LAPACK_armpl_LIB "armpl_ilp64")
+ else()
+ set(LAPACK_armpl_LIB "armpl_lp64")
+ endif()
+
+ # Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
+ if(BLA_VENDOR MATCHES "_mp")
+ set(LAPACK_armpl_LIB "${LAPACK_armpl_LIB}_mp")
+ endif()
+
+ if(NOT LAPACK_LIBRARIES)
+ check_lapack_libraries(
+ LAPACK_LIBRARIES
+ LAPACK
+ cheev
+ ""
+ "${LAPACK_armpl_LIB}"
+ ""
+ ""
+ ""
+ "${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()
+
+if(NOT TARGET LAPACK::LAPACK)
+ add_library(LAPACK::LAPACK INTERFACE IMPORTED)
+ set(_lapack_libs "${LAPACK_LIBRARIES}")
+ if(_lapack_libs AND TARGET BLAS::BLAS)
+ # remove the ${BLAS_LIBRARIES} from the interface and replace it
+ # with the BLAS::BLAS target
+ list(REMOVE_ITEM _lapack_libs "${BLAS_LIBRARIES}")
+ endif()
+
+ if(_lapack_libs)
+ set_target_properties(LAPACK::LAPACK PROPERTIES
+ INTERFACE_LINK_LIBRARIES "${_lapack_libs}"
+ )
+ endif()
+ unset(_lapack_libs)
+endif()
+
+cmake_pop_check_state()
+set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/share/cmake-3.17/Modules/FindLATEX.cmake b/share/cmake-3.18/Modules/FindLATEX.cmake
index b0dad7d..b0dad7d 100644
--- a/share/cmake-3.17/Modules/FindLATEX.cmake
+++ b/share/cmake-3.18/Modules/FindLATEX.cmake
diff --git a/share/cmake-3.17/Modules/FindLTTngUST.cmake b/share/cmake-3.18/Modules/FindLTTngUST.cmake
index 9cd17eb..9cd17eb 100644
--- a/share/cmake-3.17/Modules/FindLTTngUST.cmake
+++ b/share/cmake-3.18/Modules/FindLTTngUST.cmake
diff --git a/share/cmake-3.17/Modules/FindLibArchive.cmake b/share/cmake-3.18/Modules/FindLibArchive.cmake
index ce3c8b8..ce3c8b8 100644
--- a/share/cmake-3.17/Modules/FindLibArchive.cmake
+++ b/share/cmake-3.18/Modules/FindLibArchive.cmake
diff --git a/share/cmake-3.17/Modules/FindLibLZMA.cmake b/share/cmake-3.18/Modules/FindLibLZMA.cmake
index 200d6bf..200d6bf 100644
--- a/share/cmake-3.17/Modules/FindLibLZMA.cmake
+++ b/share/cmake-3.18/Modules/FindLibLZMA.cmake
diff --git a/share/cmake-3.17/Modules/FindLibXml2.cmake b/share/cmake-3.18/Modules/FindLibXml2.cmake
index f551dfe..f551dfe 100644
--- a/share/cmake-3.17/Modules/FindLibXml2.cmake
+++ b/share/cmake-3.18/Modules/FindLibXml2.cmake
diff --git a/share/cmake-3.18/Modules/FindLibXslt.cmake b/share/cmake-3.18/Modules/FindLibXslt.cmake
new file mode 100644
index 0000000..fc7adeb
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindLibXslt.cmake
@@ -0,0 +1,131 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindLibXslt
+-----------
+
+Find the XSL Transformations, Extensible Stylesheet Language
+Transformations (XSLT) library (LibXslt)
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+The following :prop_tgt:`IMPORTED` targets may be defined:
+
+``LibXslt::LibXslt``
+ If the libxslt library has been found
+``LibXslt::LibExslt``
+ If the libexslt library has been found
+``LibXslt::xsltproc``
+ If the xsltproc command-line executable has been found
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+ LIBXSLT_FOUND - system has LibXslt
+ LIBXSLT_INCLUDE_DIR - the LibXslt include directory
+ LIBXSLT_LIBRARIES - Link these to LibXslt
+ LIBXSLT_DEFINITIONS - Compiler switches required for using LibXslt
+ LIBXSLT_VERSION_STRING - version of LibXslt found (since CMake 2.8.8)
+
+Additionally, the following two variables are set (but not required
+for using xslt):
+
+``LIBXSLT_EXSLT_INCLUDE_DIR``
+ The include directory for exslt.
+``LIBXSLT_EXSLT_LIBRARIES``
+ Link to these if you need to link against the exslt library.
+``LIBXSLT_XSLTPROC_EXECUTABLE``
+ Contains the full path to the xsltproc executable if found.
+#]=======================================================================]
+
+# 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_LIBXSLT QUIET libxslt)
+set(LIBXSLT_DEFINITIONS ${PC_LIBXSLT_CFLAGS_OTHER})
+
+find_path(LIBXSLT_INCLUDE_DIR NAMES libxslt/xslt.h
+ HINTS
+ ${PC_LIBXSLT_INCLUDEDIR}
+ ${PC_LIBXSLT_INCLUDE_DIRS}
+ )
+
+# CMake 3.17 and below used 'LIBXSLT_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 LIBXSLT_LIBRARIES AND NOT DEFINED LIBXSLT_LIBRARY)
+ set(LIBXSLT_LIBRARY ${LIBXSLT_LIBRARIES})
+endif()
+
+find_library(LIBXSLT_LIBRARY NAMES xslt libxslt
+ HINTS
+ ${PC_LIBXSLT_LIBDIR}
+ ${PC_LIBXSLT_LIBRARY_DIRS}
+ )
+
+set(LIBXSLT_LIBRARIES ${LIBXSLT_LIBRARY})
+
+PKG_CHECK_MODULES(PC_LIBXSLT_EXSLT QUIET libexslt)
+set(LIBXSLT_EXSLT_DEFINITIONS ${PC_LIBXSLT_EXSLT_CFLAGS_OTHER})
+
+find_path(LIBXSLT_EXSLT_INCLUDE_DIR NAMES libexslt/exslt.h
+ HINTS
+ ${PC_LIBXSLT_EXSLT_INCLUDEDIR}
+ ${PC_LIBXSLT_EXSLT_INCLUDE_DIRS}
+)
+
+find_library(LIBXSLT_EXSLT_LIBRARY NAMES exslt libexslt
+ HINTS
+ ${PC_LIBXSLT_LIBDIR}
+ ${PC_LIBXSLT_LIBRARY_DIRS}
+ ${PC_LIBXSLT_EXSLT_LIBDIR}
+ ${PC_LIBXSLT_EXSLT_LIBRARY_DIRS}
+ )
+
+set(LIBXSLT_EXSLT_LIBRARIES ${LIBXSLT_EXSLT_LIBRARY} )
+
+find_program(LIBXSLT_XSLTPROC_EXECUTABLE xsltproc)
+
+if(PC_LIBXSLT_VERSION)
+ set(LIBXSLT_VERSION_STRING ${PC_LIBXSLT_VERSION})
+elseif(LIBXSLT_INCLUDE_DIR AND EXISTS "${LIBXSLT_INCLUDE_DIR}/libxslt/xsltconfig.h")
+ file(STRINGS "${LIBXSLT_INCLUDE_DIR}/libxslt/xsltconfig.h" libxslt_version_str
+ REGEX "^#define[\t ]+LIBXSLT_DOTTED_VERSION[\t ]+\".*\"")
+
+ string(REGEX REPLACE "^#define[\t ]+LIBXSLT_DOTTED_VERSION[\t ]+\"([^\"]*)\".*" "\\1"
+ LIBXSLT_VERSION_STRING "${libxslt_version_str}")
+ unset(libxslt_version_str)
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXslt
+ REQUIRED_VARS LIBXSLT_LIBRARIES LIBXSLT_INCLUDE_DIR
+ VERSION_VAR LIBXSLT_VERSION_STRING)
+
+mark_as_advanced(LIBXSLT_INCLUDE_DIR
+ LIBXSLT_LIBRARIES
+ LIBXSLT_EXSLT_LIBRARY
+ LIBXSLT_XSLTPROC_EXECUTABLE)
+
+if(LIBXSLT_FOUND AND NOT TARGET LibXslt::LibXslt)
+ add_library(LibXslt::LibXslt UNKNOWN IMPORTED)
+ set_target_properties(LibXslt::LibXslt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXSLT_INCLUDE_DIR}")
+ set_target_properties(LibXslt::LibXslt PROPERTIES INTERFACE_COMPILE_OPTIONS "${LIBXSLT_DEFINITIONS}")
+ set_property(TARGET LibXslt::LibXslt APPEND PROPERTY IMPORTED_LOCATION "${LIBXSLT_LIBRARY}")
+endif()
+
+if(LIBXSLT_FOUND AND NOT TARGET LibXslt::LibExslt)
+ add_library(LibXslt::LibExslt UNKNOWN IMPORTED)
+ set_target_properties(LibXslt::LibExslt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXSLT_EXSLT_INCLUDE_DIR}")
+ set_target_properties(LibXslt::LibExslt PROPERTIES INTERFACE_COMPILE_OPTIONS "${LIBXSLT_EXSLT_DEFINITIONS}")
+ set_property(TARGET LibXslt::LibExslt APPEND PROPERTY IMPORTED_LOCATION "${LIBXSLT_EXSLT_LIBRARY}")
+endif()
+
+if(LIBXSLT_XSLTPROC_EXECUTABLE AND NOT TARGET LibXslt::xsltproc)
+ add_executable(LibXslt::xsltproc IMPORTED)
+ set_target_properties(LibXslt::xsltproc PROPERTIES IMPORTED_LOCATION "${LIBXSLT_XSLTPROC_EXECUTABLE}")
+endif()
diff --git a/share/cmake-3.17/Modules/FindLibinput.cmake b/share/cmake-3.18/Modules/FindLibinput.cmake
index c1fe455..c1fe455 100644
--- a/share/cmake-3.17/Modules/FindLibinput.cmake
+++ b/share/cmake-3.18/Modules/FindLibinput.cmake
diff --git a/share/cmake-3.18/Modules/FindLua.cmake b/share/cmake-3.18/Modules/FindLua.cmake
new file mode 100644
index 0000000..c4361b7
--- /dev/null
+++ b/share/cmake-3.18/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.4 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.17/Modules/FindLua50.cmake b/share/cmake-3.18/Modules/FindLua50.cmake
index 0575caa..0575caa 100644
--- a/share/cmake-3.17/Modules/FindLua50.cmake
+++ b/share/cmake-3.18/Modules/FindLua50.cmake
diff --git a/share/cmake-3.17/Modules/FindLua51.cmake b/share/cmake-3.18/Modules/FindLua51.cmake
index 283a3eb..283a3eb 100644
--- a/share/cmake-3.17/Modules/FindLua51.cmake
+++ b/share/cmake-3.18/Modules/FindLua51.cmake
diff --git a/share/cmake-3.17/Modules/FindMFC.cmake b/share/cmake-3.18/Modules/FindMFC.cmake
index b8ca71b..b8ca71b 100644
--- a/share/cmake-3.17/Modules/FindMFC.cmake
+++ b/share/cmake-3.18/Modules/FindMFC.cmake
diff --git a/share/cmake-3.17/Modules/FindMPEG.cmake b/share/cmake-3.18/Modules/FindMPEG.cmake
index e5a80e3..e5a80e3 100644
--- a/share/cmake-3.17/Modules/FindMPEG.cmake
+++ b/share/cmake-3.18/Modules/FindMPEG.cmake
diff --git a/share/cmake-3.17/Modules/FindMPEG2.cmake b/share/cmake-3.18/Modules/FindMPEG2.cmake
index 763d86a..763d86a 100644
--- a/share/cmake-3.17/Modules/FindMPEG2.cmake
+++ b/share/cmake-3.18/Modules/FindMPEG2.cmake
diff --git a/share/cmake-3.18/Modules/FindMPI.cmake b/share/cmake-3.18/Modules/FindMPI.cmake
new file mode 100644
index 0000000..25de562
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindMPI.cmake
@@ -0,0 +1,1791 @@
+# 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 mpipgicc mpipgcc mppgcc)
+set(_MPI_PGI_CXX_COMPILER_NAMES mpipgic++ mpipgCC mppgCC)
+set(_MPI_PGI_Fortran_COMPILER_NAMES mpipgifort 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)
+ file(TO_CMAKE_PATH "$ENV{MSMPI_LIB64}" MPI_MSMPI_LIB_PATH)
+ file(TO_CMAKE_PATH "$ENV{MSMPI_INC}/x64" MPI_MSMPI_INC_PATH_EXTRA)
+ else()
+ file(TO_CMAKE_PATH "$ENV{MSMPI_LIB32}" MPI_MSMPI_LIB_PATH)
+ file(TO_CMAKE_PATH "$ENV{MSMPI_INC}/x86" MPI_MSMPI_INC_PATH_EXTRA)
+ 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' and '-fexceptions'.
+ string(REPLACE "-pthread" "$<$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>:SHELL:-Xcompiler >-pthread"
+ _MPI_${LANG}_COMPILE_OPTIONS "${MPI_${LANG}_COMPILE_OPTIONS}")
+ string(REPLACE "-fexceptions" "$<$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>:SHELL:-Xcompiler >-fexceptions"
+ _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)
+ string(REPLACE "-pthread" "$<$<LINK_LANG_AND_ID:CUDA,NVIDIA>:-Xlinker >-pthread"
+ _MPI_${LANG}_LINK_FLAGS "${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.17/Modules/FindMPI/fortranparam_mpi.f90.in b/share/cmake-3.18/Modules/FindMPI/fortranparam_mpi.f90.in
index 30f912c..30f912c 100644
--- a/share/cmake-3.17/Modules/FindMPI/fortranparam_mpi.f90.in
+++ b/share/cmake-3.18/Modules/FindMPI/fortranparam_mpi.f90.in
diff --git a/share/cmake-3.17/Modules/FindMPI/libver_mpi.c b/share/cmake-3.18/Modules/FindMPI/libver_mpi.c
index d89328a..d89328a 100644
--- a/share/cmake-3.17/Modules/FindMPI/libver_mpi.c
+++ b/share/cmake-3.18/Modules/FindMPI/libver_mpi.c
diff --git a/share/cmake-3.17/Modules/FindMPI/libver_mpi.f90.in b/share/cmake-3.18/Modules/FindMPI/libver_mpi.f90.in
index 7938587..7938587 100644
--- a/share/cmake-3.17/Modules/FindMPI/libver_mpi.f90.in
+++ b/share/cmake-3.18/Modules/FindMPI/libver_mpi.f90.in
diff --git a/share/cmake-3.17/Modules/FindMPI/mpiver.f90.in b/share/cmake-3.18/Modules/FindMPI/mpiver.f90.in
index a254523..a254523 100644
--- a/share/cmake-3.17/Modules/FindMPI/mpiver.f90.in
+++ b/share/cmake-3.18/Modules/FindMPI/mpiver.f90.in
diff --git a/share/cmake-3.17/Modules/FindMPI/test_mpi.c b/share/cmake-3.18/Modules/FindMPI/test_mpi.c
index 7c96d54..7c96d54 100644
--- a/share/cmake-3.17/Modules/FindMPI/test_mpi.c
+++ b/share/cmake-3.18/Modules/FindMPI/test_mpi.c
diff --git a/share/cmake-3.17/Modules/FindMPI/test_mpi.f90.in b/share/cmake-3.18/Modules/FindMPI/test_mpi.f90.in
index 4d43a04..4d43a04 100644
--- a/share/cmake-3.17/Modules/FindMPI/test_mpi.f90.in
+++ b/share/cmake-3.18/Modules/FindMPI/test_mpi.f90.in
diff --git a/share/cmake-3.17/Modules/FindMatlab.cmake b/share/cmake-3.18/Modules/FindMatlab.cmake
index e42c206..e42c206 100644
--- a/share/cmake-3.17/Modules/FindMatlab.cmake
+++ b/share/cmake-3.18/Modules/FindMatlab.cmake
diff --git a/share/cmake-3.17/Modules/FindMotif.cmake b/share/cmake-3.18/Modules/FindMotif.cmake
index 4f7080a..4f7080a 100644
--- a/share/cmake-3.17/Modules/FindMotif.cmake
+++ b/share/cmake-3.18/Modules/FindMotif.cmake
diff --git a/share/cmake-3.17/Modules/FindODBC.cmake b/share/cmake-3.18/Modules/FindODBC.cmake
index 3f710db..3f710db 100644
--- a/share/cmake-3.17/Modules/FindODBC.cmake
+++ b/share/cmake-3.18/Modules/FindODBC.cmake
diff --git a/share/cmake-3.17/Modules/FindOpenACC.cmake b/share/cmake-3.18/Modules/FindOpenACC.cmake
index 398dcf5..398dcf5 100644
--- a/share/cmake-3.17/Modules/FindOpenACC.cmake
+++ b/share/cmake-3.18/Modules/FindOpenACC.cmake
diff --git a/share/cmake-3.18/Modules/FindOpenAL.cmake b/share/cmake-3.18/Modules/FindOpenAL.cmake
new file mode 100644
index 0000000..b5b92c5
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindOpenAL.cmake
@@ -0,0 +1,96 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindOpenAL
+----------
+
+Finds Open Audio Library (OpenAL).
+
+Projects using this module should use ``#include "al.h"`` to include the OpenAL
+header file, **not** ``#include <AL/al.h>``. The reason for this is that the
+latter is not entirely portable. Windows/Creative Labs does not by default put
+their headers in ``AL/`` and macOS uses the convention ``<OpenAL/al.h>``.
+
+Hints
+^^^^^
+
+Environment variable ``$OPENALDIR`` can be used to set the prefix of OpenAL
+installation to be found.
+
+By default on macOS, system framework is search first. In other words,
+OpenAL is searched in the following order:
+
+1. System framework: ``/System/Library/Frameworks``, whose priority can be
+ changed via setting the :variable:`CMAKE_FIND_FRAMEWORK` variable.
+2. Environment variable ``$OPENALDIR``.
+3. System paths.
+4. User-compiled framework: ``~/Library/Frameworks``.
+5. Manually compiled framework: ``/Library/Frameworks``.
+6. Add-on package: ``/opt``.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables:
+
+``OPENAL_FOUND``
+ If false, do not try to link to OpenAL
+``OPENAL_INCLUDE_DIR``
+ OpenAL include directory
+``OPENAL_LIBRARY``
+ Path to the OpenAL library
+``OPENAL_VERSION_STRING``
+ Human-readable string containing the version of OpenAL
+#]=======================================================================]
+
+# For Windows, Creative Labs seems to have added a registry key for their
+# OpenAL 1.1 installer. I have added that key to the list of search paths,
+# however, the key looks like it could be a little fragile depending on
+# if they decide to change the 1.00.0000 number for bug fix releases.
+# Also, they seem to have laid down groundwork for multiple library platforms
+# which puts the library in an extra subdirectory. Currently there is only
+# Win32 and I have hardcoded that here. This may need to be adjusted as
+# platforms are introduced.
+# The OpenAL 1.0 installer doesn't seem to have a useful key I can use.
+# I do not know if the Nvidia OpenAL SDK has a registry key.
+
+find_path(OPENAL_INCLUDE_DIR al.h
+ HINTS
+ ENV OPENALDIR
+ PATHS
+ ~/Library/Frameworks
+ /Library/Frameworks
+ /opt
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
+ PATH_SUFFIXES include/AL include/OpenAL include AL OpenAL
+ )
+
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(_OpenAL_ARCH_DIR libs/Win64)
+else()
+ set(_OpenAL_ARCH_DIR libs/Win32)
+endif()
+
+find_library(OPENAL_LIBRARY
+ NAMES OpenAL al openal OpenAL32
+ HINTS
+ ENV OPENALDIR
+ PATHS
+ ~/Library/Frameworks
+ /Library/Frameworks
+ /opt
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Creative\ Labs\\OpenAL\ 1.1\ Software\ Development\ Kit\\1.00.0000;InstallDir]
+ PATH_SUFFIXES libx32 lib64 lib libs64 libs ${_OpenAL_ARCH_DIR}
+ )
+
+unset(_OpenAL_ARCH_DIR)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(
+ OpenAL
+ REQUIRED_VARS OPENAL_LIBRARY OPENAL_INCLUDE_DIR
+ VERSION_VAR OPENAL_VERSION_STRING
+ )
+
+mark_as_advanced(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
diff --git a/share/cmake-3.18/Modules/FindOpenCL.cmake b/share/cmake-3.18/Modules/FindOpenCL.cmake
new file mode 100644
index 0000000..34a203e
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindOpenCL.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.
+
+#[=======================================================================[.rst:
+FindOpenCL
+----------
+
+Finds Open Computing Language (OpenCL)
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines :prop_tgt:`IMPORTED` target ``OpenCL::OpenCL``, if
+OpenCL has been found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables::
+
+ OpenCL_FOUND - True if OpenCL was found
+ OpenCL_INCLUDE_DIRS - include directories for OpenCL
+ OpenCL_LIBRARIES - link against this library to use OpenCL
+ OpenCL_VERSION_STRING - Highest supported OpenCL version (eg. 1.2)
+ OpenCL_VERSION_MAJOR - The major version of the OpenCL implementation
+ OpenCL_VERSION_MINOR - The minor version of the OpenCL implementation
+
+The module will also define two cache variables::
+
+ OpenCL_INCLUDE_DIR - the OpenCL include directory
+ OpenCL_LIBRARY - the path to the OpenCL library
+
+#]=======================================================================]
+
+function(_FIND_OPENCL_VERSION)
+ include(CheckSymbolExists)
+ include(CMakePushCheckState)
+ set(CMAKE_REQUIRED_QUIET ${OpenCL_FIND_QUIETLY})
+
+ CMAKE_PUSH_CHECK_STATE()
+ foreach(VERSION "2_2" "2_1" "2_0" "1_2" "1_1" "1_0")
+ set(CMAKE_REQUIRED_INCLUDES "${OpenCL_INCLUDE_DIR}")
+
+ if(APPLE)
+ CHECK_SYMBOL_EXISTS(
+ CL_VERSION_${VERSION}
+ "${OpenCL_INCLUDE_DIR}/Headers/cl.h"
+ OPENCL_VERSION_${VERSION})
+ else()
+ CHECK_SYMBOL_EXISTS(
+ CL_VERSION_${VERSION}
+ "${OpenCL_INCLUDE_DIR}/CL/cl.h"
+ OPENCL_VERSION_${VERSION})
+ endif()
+
+ if(OPENCL_VERSION_${VERSION})
+ string(REPLACE "_" "." VERSION "${VERSION}")
+ set(OpenCL_VERSION_STRING ${VERSION} PARENT_SCOPE)
+ string(REGEX MATCHALL "[0-9]+" version_components "${VERSION}")
+ list(GET version_components 0 major_version)
+ list(GET version_components 1 minor_version)
+ set(OpenCL_VERSION_MAJOR ${major_version} PARENT_SCOPE)
+ set(OpenCL_VERSION_MINOR ${minor_version} PARENT_SCOPE)
+ break()
+ endif()
+ endforeach()
+ CMAKE_POP_CHECK_STATE()
+endfunction()
+
+find_path(OpenCL_INCLUDE_DIR
+ NAMES
+ CL/cl.h OpenCL/cl.h
+ PATHS
+ ENV "PROGRAMFILES(X86)"
+ ENV AMDAPPSDKROOT
+ ENV INTELOCLSDKROOT
+ ENV NVSDKCOMPUTE_ROOT
+ ENV CUDA_PATH
+ ENV ATISTREAMSDKROOT
+ ENV OCL_ROOT
+ /usr/local/cuda
+ /opt/cuda
+ PATH_SUFFIXES
+ include
+ OpenCL/common/inc
+ "AMD APP/include")
+
+_FIND_OPENCL_VERSION()
+
+if(WIN32)
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ find_library(OpenCL_LIBRARY
+ NAMES OpenCL
+ PATHS
+ ENV "PROGRAMFILES(X86)"
+ ENV AMDAPPSDKROOT
+ ENV INTELOCLSDKROOT
+ ENV CUDA_PATH
+ ENV NVSDKCOMPUTE_ROOT
+ ENV ATISTREAMSDKROOT
+ ENV OCL_ROOT
+ PATH_SUFFIXES
+ "AMD APP/lib/x86"
+ lib/x86
+ lib/Win32
+ OpenCL/common/lib/Win32)
+ elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ find_library(OpenCL_LIBRARY
+ NAMES OpenCL
+ PATHS
+ ENV "PROGRAMFILES(X86)"
+ ENV AMDAPPSDKROOT
+ ENV INTELOCLSDKROOT
+ ENV CUDA_PATH
+ ENV NVSDKCOMPUTE_ROOT
+ ENV ATISTREAMSDKROOT
+ ENV OCL_ROOT
+ PATH_SUFFIXES
+ "AMD APP/lib/x86_64"
+ lib/x86_64
+ lib/x64
+ OpenCL/common/lib/x64)
+ endif()
+else()
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ find_library(OpenCL_LIBRARY
+ NAMES OpenCL
+ PATHS
+ ENV AMDAPPSDKROOT
+ ENV CUDA_PATH
+ /usr/local/cuda
+ /opt/cuda
+ PATH_SUFFIXES
+ lib/x86
+ lib)
+ elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ find_library(OpenCL_LIBRARY
+ NAMES OpenCL
+ PATHS
+ ENV AMDAPPSDKROOT
+ ENV CUDA_PATH
+ /usr/local/cuda
+ /opt/cuda
+ PATH_SUFFIXES
+ lib/x86_64
+ lib/x64
+ lib
+ lib64)
+ endif()
+endif()
+
+set(OpenCL_LIBRARIES ${OpenCL_LIBRARY})
+set(OpenCL_INCLUDE_DIRS ${OpenCL_INCLUDE_DIR})
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(
+ OpenCL
+ FOUND_VAR OpenCL_FOUND
+ REQUIRED_VARS OpenCL_LIBRARY OpenCL_INCLUDE_DIR
+ VERSION_VAR OpenCL_VERSION_STRING)
+
+mark_as_advanced(
+ OpenCL_INCLUDE_DIR
+ OpenCL_LIBRARY)
+
+if(OpenCL_FOUND AND NOT TARGET OpenCL::OpenCL)
+ if(OpenCL_LIBRARY MATCHES "/([^/]+)\\.framework$")
+ add_library(OpenCL::OpenCL INTERFACE IMPORTED)
+ set_target_properties(OpenCL::OpenCL PROPERTIES
+ INTERFACE_LINK_LIBRARIES "${OpenCL_LIBRARY}")
+ else()
+ add_library(OpenCL::OpenCL UNKNOWN IMPORTED)
+ set_target_properties(OpenCL::OpenCL PROPERTIES
+ IMPORTED_LOCATION "${OpenCL_LIBRARY}")
+ endif()
+ set_target_properties(OpenCL::OpenCL PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${OpenCL_INCLUDE_DIRS}")
+endif()
diff --git a/share/cmake-3.17/Modules/FindOpenGL.cmake b/share/cmake-3.18/Modules/FindOpenGL.cmake
index 74392da..74392da 100644
--- a/share/cmake-3.17/Modules/FindOpenGL.cmake
+++ b/share/cmake-3.18/Modules/FindOpenGL.cmake
diff --git a/share/cmake-3.18/Modules/FindOpenMP.cmake b/share/cmake-3.18/Modules/FindOpenMP.cmake
new file mode 100644
index 0000000..bb38e28
--- /dev/null
+++ b/share/cmake-3.18/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")
+ endif()
+ _OPENMP_SET_VERSION_BY_SPEC_DATE("${LANG}")
+
+ 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.18/Modules/FindOpenSSL.cmake b/share/cmake-3.18/Modules/FindOpenSSL.cmake
new file mode 100644
index 0000000..ee40696
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindOpenSSL.cmake
@@ -0,0 +1,590 @@
+# 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.
+``OpenSSL::applink``
+ The OpenSSL ``applink`` components that might be need to be compiled into
+ projects under MSVC. This target is available only if found OpenSSL version
+ is not less than 0.9.8. By linking this target the above OpenSSL targets can
+ be linked even if the project has different MSVC runtime configurations with
+ the above OpenSSL targets. This target has no effect on plaforms other than
+ MSVC.
+
+NOTE: Due to how ``INTERFACE_SOURCES`` are consumed by the consuming target,
+unless you certainly know what you are doing, it is always prefered to link
+``OpenSSL::applink`` target as ``PRIVATE`` and to make sure that this target is
+linked at most once for the whole dependency graph of any library or
+executable:
+
+.. code-block:: cmake
+
+ target_link_libraries(myTarget PRIVATE OpenSSL::applink)
+
+Otherwise you would probably encounter unexpected random problems when building
+and linking, as both the ISO C and the ISO C++ standard claims almost nothing
+about what a link process should be.
+
+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``).
+``OPENSSL_APPLINK_SOURCE``
+ The sources in the target ``OpenSSL::applink`` that is mentioned above. This
+ variable shall always be undefined if found openssl version is less than
+ 0.9.8 or if platform is not MSVC.
+
+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}")
+ else ()
+ # Since OpenSSL 3.0.0, the new version format is MAJOR.MINOR.PATCH and
+ # a new OPENSSL_VERSION_STR macro contains exactly that
+ file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" OPENSSL_VERSION_STR
+ REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_STR[\t ]+\"([0-9])+\\.([0-9])+\\.([0-9])+\".*")
+ string(REGEX REPLACE "^.*OPENSSL_VERSION_STR[\t ]+\"([0-9]+\\.[0-9]+\\.[0-9]+)\".*$"
+ "\\1" OPENSSL_VERSION_STR "${OPENSSL_VERSION_STR}")
+
+ set(OPENSSL_VERSION "${OPENSSL_VERSION_STR}")
+
+ unset(OPENSSL_VERSION_STR)
+ 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()
+
+ if("${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_FIX}" VERSION_GREATER_EQUAL "0.9.8")
+ if(MSVC)
+ if(EXISTS "${OPENSSL_INCLUDE_DIR}")
+ set(_OPENSSL_applink_paths PATHS ${OPENSSL_INCLUDE_DIR})
+ endif()
+ find_file(OPENSSL_APPLINK_SOURCE
+ NAMES
+ openssl/applink.c
+ ${_OPENSSL_applink_paths}
+ NO_DEFAULT_PATH)
+ if(OPENSSL_APPLINK_SOURCE)
+ set(_OPENSSL_applink_interface_srcs ${OPENSSL_APPLINK_SOURCE})
+ endif()
+ endif()
+ if(NOT TARGET OpenSSL::applink)
+ add_library(OpenSSL::applink INTERFACE IMPORTED)
+ set_property(TARGET OpenSSL::applink APPEND
+ PROPERTY INTERFACE_SOURCES
+ ${_OPENSSL_applink_interface_srcs})
+ endif()
+ 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.17/Modules/FindOpenSceneGraph.cmake b/share/cmake-3.18/Modules/FindOpenSceneGraph.cmake
index 27909bc..27909bc 100644
--- a/share/cmake-3.17/Modules/FindOpenSceneGraph.cmake
+++ b/share/cmake-3.18/Modules/FindOpenSceneGraph.cmake
diff --git a/share/cmake-3.17/Modules/FindOpenThreads.cmake b/share/cmake-3.18/Modules/FindOpenThreads.cmake
index bc45eea..bc45eea 100644
--- a/share/cmake-3.17/Modules/FindOpenThreads.cmake
+++ b/share/cmake-3.18/Modules/FindOpenThreads.cmake
diff --git a/share/cmake-3.17/Modules/FindPHP4.cmake b/share/cmake-3.18/Modules/FindPHP4.cmake
index 34b4adb..34b4adb 100644
--- a/share/cmake-3.17/Modules/FindPHP4.cmake
+++ b/share/cmake-3.18/Modules/FindPHP4.cmake
diff --git a/share/cmake-3.17/Modules/FindPNG.cmake b/share/cmake-3.18/Modules/FindPNG.cmake
index f1fe89a..f1fe89a 100644
--- a/share/cmake-3.17/Modules/FindPNG.cmake
+++ b/share/cmake-3.18/Modules/FindPNG.cmake
diff --git a/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake b/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake
new file mode 100644
index 0000000..4fb0825
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake
@@ -0,0 +1,466 @@
+# 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``. This option is mandatory if
+ ``HANDLE_COMPONENTS`` is not specified.
+
+ ``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 AND NOT FPHSA_HANDLE_COMPONENTS)
+ 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()
+
+ if (FPHSA_REQUIRED_VARS)
+ list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
+ endif()
+
+ 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)
+ set(RESULT_MSG)
+ if (_FIRST_REQUIRED_VAR)
+ string (APPEND RESULT_MSG "found ${${_FIRST_REQUIRED_VAR}}")
+ endif()
+ if (COMPONENT_MSG)
+ if (RESULT_MSG)
+ string (APPEND RESULT_MSG ", ")
+ endif()
+ string (APPEND RESULT_MSG "${FOUND_COMPONENTS_MSG}")
+ endif()
+ _FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (${RESULT_MSG})")
+ 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.17/Modules/FindPackageMessage.cmake b/share/cmake-3.18/Modules/FindPackageMessage.cmake
index 0628b98..0628b98 100644
--- a/share/cmake-3.17/Modules/FindPackageMessage.cmake
+++ b/share/cmake-3.18/Modules/FindPackageMessage.cmake
diff --git a/share/cmake-3.17/Modules/FindPatch.cmake b/share/cmake-3.18/Modules/FindPatch.cmake
index 4998839..4998839 100644
--- a/share/cmake-3.17/Modules/FindPatch.cmake
+++ b/share/cmake-3.18/Modules/FindPatch.cmake
diff --git a/share/cmake-3.17/Modules/FindPerl.cmake b/share/cmake-3.18/Modules/FindPerl.cmake
index fd120bf..fd120bf 100644
--- a/share/cmake-3.17/Modules/FindPerl.cmake
+++ b/share/cmake-3.18/Modules/FindPerl.cmake
diff --git a/share/cmake-3.17/Modules/FindPerlLibs.cmake b/share/cmake-3.18/Modules/FindPerlLibs.cmake
index 7e27f31..7e27f31 100644
--- a/share/cmake-3.17/Modules/FindPerlLibs.cmake
+++ b/share/cmake-3.18/Modules/FindPerlLibs.cmake
diff --git a/share/cmake-3.17/Modules/FindPhysFS.cmake b/share/cmake-3.18/Modules/FindPhysFS.cmake
index a32f83a..a32f83a 100644
--- a/share/cmake-3.17/Modules/FindPhysFS.cmake
+++ b/share/cmake-3.18/Modules/FindPhysFS.cmake
diff --git a/share/cmake-3.17/Modules/FindPike.cmake b/share/cmake-3.18/Modules/FindPike.cmake
index b78db2a..b78db2a 100644
--- a/share/cmake-3.17/Modules/FindPike.cmake
+++ b/share/cmake-3.18/Modules/FindPike.cmake
diff --git a/share/cmake-3.18/Modules/FindPkgConfig.cmake b/share/cmake-3.18/Modules/FindPkgConfig.cmake
new file mode 100644
index 0000000..93827d8
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindPkgConfig.cmake
@@ -0,0 +1,864 @@
+# 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)
+
+set(_PKG_CONFIG_FAILURE_MESSAGE "")
+if (PKG_CONFIG_EXECUTABLE)
+ execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --version
+ OUTPUT_VARIABLE PKG_CONFIG_VERSION_STRING OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE _PKG_CONFIG_VERSION_ERROR ERROR_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE _PKG_CONFIG_VERSION_RESULT
+ )
+
+ if (NOT _PKG_CONFIG_VERSION_RESULT EQUAL 0)
+ string(REPLACE "\n" "\n " _PKG_CONFIG_VERSION_ERROR " ${_PKG_CONFIG_VERSION_ERROR}")
+ string(APPEND _PKG_CONFIG_FAILURE_MESSAGE
+ "The command\n"
+ " \"${PKG_CONFIG_EXECUTABLE}\" --version\n"
+ " failed with output\n${_PKG_CONFIG_VERSION_ERROR}"
+ )
+ set(PKG_CONFIG_EXECUTABLE "")
+ unset(PKG_CONFIG_VERSION_STRING)
+ endif ()
+ unset(_PKG_CONFIG_VERSION_RESULT)
+endif ()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(PkgConfig
+ REQUIRED_VARS PKG_CONFIG_EXECUTABLE
+ REASON_FAILURE_MESSAGE "${_PKG_CONFIG_FAILURE_MESSAGE}"
+ 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)
+ unset(_next_is_framework)
+ foreach (flag IN LISTS ${_prefix}_LDFLAGS)
+ if (_next_is_framework)
+ list(APPEND _libs "-framework ${flag}")
+ unset(_next_is_framework)
+ continue()
+ endif ()
+ if (flag MATCHES "^-L(.*)")
+ list(APPEND _search_paths ${CMAKE_MATCH_1})
+ continue()
+ endif()
+ if (flag MATCHES "^-l(.*)")
+ set(_pkg_search "${CMAKE_MATCH_1}")
+ else()
+ if (flag STREQUAL "-framework")
+ set(_next_is_framework TRUE)
+ endif ()
+ 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()
+
+# pkg-config returns frameworks in --libs-only-other
+# they need to be in ${_prefix}_LIBRARIES so "-framework a -framework b" does
+# not incorrectly be combined to "-framework a b"
+function(_pkgconfig_extract_frameworks _prefix)
+ set(ldflags "${${_prefix}_LDFLAGS_OTHER}")
+ list(FIND ldflags "-framework" FR_POS)
+ list(LENGTH ldflags LD_LENGTH)
+
+ # reduce length by 1 as we need "-framework" and the next entry
+ math(EXPR LD_LENGTH "${LD_LENGTH} - 1")
+ while (FR_POS GREATER -1 AND LD_LENGTH GREATER FR_POS)
+ list(REMOVE_AT ldflags ${FR_POS})
+ list(GET ldflags ${FR_POS} HEAD)
+ list(REMOVE_AT ldflags ${FR_POS})
+ math(EXPR LD_LENGTH "${LD_LENGTH} - 2")
+
+ list(APPEND LIBS "-framework ${HEAD}")
+
+ list(FIND ldflags "-framework" FR_POS)
+ endwhile ()
+ set(${_prefix}_LIBRARIES ${${_prefix}_LIBRARIES} ${LIBS} PARENT_SCOPE)
+ set(${_prefix}_LDFLAGS_OTHER "${ldflags}" PARENT_SCOPE)
+endfunction()
+
+# pkg-config returns -isystem include directories in --cflags-only-other,
+# depending on the version and if there is a space between -isystem and
+# the actual path
+function(_pkgconfig_extract_isystem _prefix)
+ set(cflags "${${_prefix}_CFLAGS_OTHER}")
+ set(outflags "")
+ set(incdirs "${${_prefix}_INCLUDE_DIRS}")
+
+ set(next_is_isystem FALSE)
+ foreach (THING IN LISTS cflags)
+ # This may filter "-isystem -isystem". That would not work anyway,
+ # so let it happen.
+ if (THING STREQUAL "-isystem")
+ set(next_is_isystem TRUE)
+ continue()
+ endif ()
+ if (next_is_isystem)
+ set(next_is_isystem FALSE)
+ list(APPEND incdirs "${THING}")
+ elseif (THING MATCHES "^-isystem")
+ string(SUBSTRING "${THING}" 8 -1 THING)
+ list(APPEND incdirs "${THING}")
+ else ()
+ list(APPEND outflags "${THING}")
+ endif ()
+ endforeach ()
+ set(${_prefix}_CFLAGS_OTHER "${outflags}" PARENT_SCOPE)
+ set(${_prefix}_INCLUDE_DIRS "${incdirs}" PARENT_SCOPE)
+endfunction()
+
+###
+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 )
+
+ if (APPLE AND "-framework" IN_LIST ${_prefix}_LDFLAGS_OTHER)
+ _pkgconfig_extract_frameworks("${_prefix}")
+ endif()
+
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )(-I|-isystem ?)" --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 )
+
+ if (${_prefix}_CFLAGS_OTHER MATCHES "-isystem")
+ _pkgconfig_extract_isystem("${_prefix}")
+ endif ()
+
+ _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.17/Modules/FindPostgreSQL.cmake b/share/cmake-3.18/Modules/FindPostgreSQL.cmake
index 1927aa4..1927aa4 100644
--- a/share/cmake-3.17/Modules/FindPostgreSQL.cmake
+++ b/share/cmake-3.18/Modules/FindPostgreSQL.cmake
diff --git a/share/cmake-3.17/Modules/FindProducer.cmake b/share/cmake-3.18/Modules/FindProducer.cmake
index 65495b5..65495b5 100644
--- a/share/cmake-3.17/Modules/FindProducer.cmake
+++ b/share/cmake-3.18/Modules/FindProducer.cmake
diff --git a/share/cmake-3.18/Modules/FindProtobuf.cmake b/share/cmake-3.18/Modules/FindProtobuf.cmake
new file mode 100644
index 0000000..e09717d
--- /dev/null
+++ b/share/cmake-3.18/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`` files
+#]=======================================================================]
+
+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.18/Modules/FindPython.cmake b/share/cmake-3.18/Modules/FindPython.cmake
new file mode 100644
index 0000000..01b82c4
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindPython.cmake
@@ -0,0 +1,448 @@
+# 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). This component includes two sub-components which can be specified
+ independently:
+
+ * ``Development.Module``: search for artifacts for Python module
+ developments.
+ * ``Development.Embed``: search for artifacts for Python embedding
+ developments.
+
+* ``NumPy``: search for NumPy include directories.
+
+If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
+
+If component ``Development`` is specified, it implies sub-components
+``Development.Module`` and ``Development.Embed``.
+
+To ensure consistent versions between components ``Interpreter``, ``Compiler``,
+``Development`` (or one of its sub-components) 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`` (or one of its
+ sub-components) 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::Module``
+ Python library for Python module. Target defined if component
+ ``Development.Module`` is found.
+``Python::Python``
+ Python library for Python embedding. Target defined if component
+ ``Development.Embed`` 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
+ * PyPy
+``Python_STDLIB``
+ Standard platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``
+ or else ``sysconfig.get_path('stdlib')``.
+``Python_STDARCH``
+ Standard platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``
+ or else ``sysconfig.get_path('platstdlib')``.
+``Python_SITELIB``
+ Third-party platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``
+ or else ``sysconfig.get_path('purelib')``.
+``Python_SITEARCH``
+ Third-party platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``
+ or else ``sysconfig.get_path('platlib')``.
+``Python_SOABI``
+ Extension suffix for modules.
+
+ Information returned by
+ ``distutils.sysconfig.get_config_var('SOABI')`` or computed from
+ ``distutils.sysconfig.get_config_var('EXT_SUFFIX')`` or
+ ``python-config --extension-suffix``. If package ``distutils.sysconfig`` is
+ not available, ``sysconfig.get_config_var('SOABI')`` or
+ ``sysconfig.get_config_var('EXT_SUFFIX')`` are used.
+``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_DOTNET_LAUNCHER``
+ The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+``Python_Development_FOUND``
+ System has the Python development artifacts.
+``Python_Development.Module_FOUND``
+ System has the Python development artifacts for Python module.
+``Python_Development.Embed_FOUND``
+ System has the Python development artifacts for Python embedding.
+``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_PyPy_VERSION``
+ Python PyPy 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 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 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 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 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 but environment variable ``PATH`` is always considered.
+ 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.
+
+``Python_FIND_IMPLEMENTATIONS``
+ This variable defines, in an ordered list, the different implementations
+ which will be searched. The ``Python_FIND_IMPLEMENTATIONS`` variable can
+ hold the following values:
+
+ * ``CPython``: this is the standard implementation. Various products, like
+ ``Anaconda`` or ``ActivePython``, rely on this implementation.
+ * ``IronPython``: This implementation use the ``CSharp`` language for
+ ``.NET Framework`` on top of the `Dynamic Language Runtime` (``DLR``).
+ See `IronPython <http://ironpython.net>`_.
+ * ``PyPy``: This implementation use ``RPython`` language and
+ ``RPython translation toolchain`` to produce the python interpreter.
+ See `PyPy <https://www.pypy.org>`_.
+
+ The default value is:
+
+ * Windows platform: ``CPython``, ``IronPython``
+ * Other platforms: ``CPython``
+
+ .. note::
+
+ This hint has the lowest priority of all hints, so even if, for example,
+ you specify ``IronPython`` first and ``CPython`` in second, a python
+ product based on ``CPython`` can be selected because, for example with
+ ``Python_FIND_STRATEGY=LOCATION``, each location will be search first for
+ ``IronPython`` and second for ``CPython``.
+
+ .. note::
+
+ When ``IronPython`` is specified, on platforms other than ``Windows``, the
+ ``.Net`` interpreter (i.e. ``mono`` command) is expected to be available
+ through the ``PATH`` variable.
+
+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_DOTNET_LAUNCHER``
+ The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+
+``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.
+
+By default, this module supports multiple calls in different directories of a
+project with different version/component requirements while providing correct
+and consistent results for each call. To support this behavior, ``CMake`` cache
+is not used in the traditional way which can be problematic for interactive
+specification. So, to enable also interactive specification, module behavior
+can be controled with the following variable:
+
+``Python_ARTIFACTS_INTERACTIVE``
+ Selects the behavior of the module. This is a boolean variable:
+
+ * If set to ``TRUE``: Create CMake cache entries for the above artifact
+ specification variables so that users can edit them interactively.
+ This disables support for multiple version/component requirements.
+ * If set to ``FALSE`` or undefined: Enable multiple version/component
+ requirements.
+
+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.18/Modules/FindPython/Support.cmake b/share/cmake-3.18/Modules/FindPython/Support.cmake
new file mode 100644
index 0000000..1be0625
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindPython/Support.cmake
@@ -0,0 +1,3172 @@
+# 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}_LIBRARIES "")
+ foreach (_PYTHON_libname IN LISTS ${_PYTHON_BASENAME}_LIBRARY_RELEASE)
+ list( APPEND ${_PYTHON_BASENAME}_LIBRARIES optimized "${_PYTHON_libname}")
+ endforeach()
+ foreach (_PYTHON_libname IN LISTS ${_PYTHON_BASENAME}_LIBRARY_DEBUG)
+ list( APPEND ${_PYTHON_BASENAME}_LIBRARIES debug "${_PYTHON_libname}")
+ endforeach()
+ elseif (${_PYTHON_BASENAME}_LIBRARY_RELEASE)
+ set (${_PYTHON_BASENAME}_LIBRARIES "${${_PYTHON_BASENAME}_LIBRARY_RELEASE}")
+ elseif (${_PYTHON_BASENAME}_LIBRARY_DEBUG)
+ set (${_PYTHON_BASENAME}_LIBRARIES "${${_PYTHON_BASENAME}_LIBRARY_DEBUG}")
+ else()
+ set (${_PYTHON_BASENAME}_LIBRARIES "${_PYTHON_BASENAME}_LIBRARY-NOTFOUND")
+ endif()
+endmacro()
+
+
+macro (_PYTHON_FIND_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_implementation IN LISTS _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+ unset (_${_PYTHON_PREFIX}_${_pff_implementation}_FRAMEWORKS)
+ if (_pff_implementation STREQUAL "CPython")
+ foreach (_pff_framework IN LISTS _pff_frameworks)
+ if (EXISTS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
+ list (APPEND _${_PYTHON_PREFIX}_${_pff_implementation}_FRAMEWORKS ${_pff_framework}/Python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}.framework)
+ endif()
+ if (EXISTS ${_pff_framework}/Python.framework)
+ list (APPEND _${_PYTHON_PREFIX}_${_pff_implementation}_FRAMEWORKS ${_pff_framework}/Python.framework)
+ endif()
+ endforeach()
+ elseif (_pff_implementation STREQUAL "IronPython")
+ foreach (_pff_framework IN LISTS _pff_frameworks)
+ if (EXISTS ${_pff_framework}/IronPython.framework)
+ list (APPEND _${_PYTHON_PREFIX}_${_pff_implementation}_FRAMEWORKS ${_pff_framework}/IronPython.framework)
+ endif()
+ endforeach()
+ endif()
+ endforeach()
+ unset (_pff_implementation)
+ unset (_pff_frameworks)
+ unset (_pff_framework)
+ endif()
+endmacro()
+
+function (_PYTHON_GET_FRAMEWORKS _PYTHON_PGF_FRAMEWORK_PATHS)
+ cmake_parse_arguments (PARSE_ARGV 1 _PGF "" "" "IMPLEMENTATIONS;VERSION")
+
+ if (NOT _PGF_IMPLEMENTATIONS)
+ set (_PGF_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS})
+ endif()
+
+ set (framework_paths)
+
+ foreach (implementation IN LISTS _PGF_IMPLEMENTATIONS)
+ if (implementation STREQUAL "CPython")
+ foreach (version IN LISTS _PGF_VERSION)
+ foreach (framework IN LISTS _${_PYTHON_PREFIX}_${implementation}_FRAMEWORKS)
+ if (EXISTS "${framework}/Versions/${version}")
+ list (APPEND framework_paths "${framework}/Versions/${version}")
+ endif()
+ endforeach()
+ endforeach()
+ elseif (implementation STREQUAL "IronPython")
+ foreach (version IN LISTS _PGF_VERSION)
+ foreach (framework IN LISTS _${_PYTHON_PREFIX}_${implementation}_FRAMEWORKS)
+ # pick-up all available versions
+ file (GLOB versions LIST_DIRECTORIES true RELATIVE "${framework}/Versions/"
+ "${framework}/Versions/${version}*")
+ list (SORT versions ORDER DESCENDING)
+ list (TRANSFORM versions PREPEND "${framework}/Versions/")
+ list (APPEND framework_paths ${versions})
+ endforeach()
+ endforeach()
+ endif()
+ endforeach()
+
+ set (${_PYTHON_PGF_FRAMEWORK_PATHS} ${framework_paths} PARENT_SCOPE)
+endfunction()
+
+function (_PYTHON_GET_REGISTRIES _PYTHON_PGR_REGISTRY_PATHS)
+ cmake_parse_arguments (PARSE_ARGV 1 _PGR "" "" "IMPLEMENTATIONS;VERSION")
+
+ if (NOT _PGR_IMPLEMENTATIONS)
+ set (_PGR_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS})
+ endif()
+
+ set (registries)
+
+ foreach (implementation IN LISTS _PGR_IMPLEMENTATIONS)
+ if (implementation STREQUAL "CPython")
+ foreach (version IN LISTS _PGR_VERSION)
+ string (REPLACE "." "" version_no_dots ${version})
+ list (APPEND registries
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${version}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${version}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath])
+ if (version VERSION_GREATER_EQUAL "3.5")
+ get_filename_component (arch "[HKEY_CURRENT_USER\\Software\\Python\\PythonCore\\${version};SysArchitecture]" NAME)
+ if (arch MATCHES "(${_${_PYTHON_PREFIX}_ARCH}|${_${_PYTHON_PREFIX}_ARCH2})bit")
+ list (APPEND registries
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${version}\\InstallPath])
+ endif()
+ else()
+ list (APPEND registries
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\PythonCore\\${version}\\InstallPath])
+ endif()
+ list (APPEND registries
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${version_no_dots}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+ [HKEY_CURRENT_USER\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${version_no_dots}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${version}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${version}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${version}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${version_no_dots}-${_${_PYTHON_PREFIX}_ARCH}\\InstallPath]
+ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\ContinuumAnalytics\\Anaconda${version_no_dots}-${_${_PYTHON_PREFIX}_ARCH2}\\InstallPath])
+ endforeach()
+ elseif (implementation STREQUAL "IronPython")
+ foreach (version IN LISTS _PGR_VERSION)
+ list (APPEND registries [HKEY_LOCAL_MACHINE\\SOFTWARE\\IronPython\\${version}\\InstallPath])
+ endforeach()
+ endif()
+ endforeach()
+
+ set (${_PYTHON_PGR_REGISTRY_PATHS} "${registries}" 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 "INTERPRETER;COMPILER;LIBRARY;INCLUDE" "" "IMPLEMENTATIONS;VERSION")
+
+ if (NOT _PGPS_IMPLEMENTATIONS)
+ set (_PGPS_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS})
+ endif()
+
+ if (DEFINED _${_PYTHON_PREFIX}_ABIFLAGS)
+ set (abi "${_${_PYTHON_PREFIX}_ABIFLAGS}")
+ else()
+ set (abi "mu" "m" "u" "")
+ endif()
+
+ set (path_suffixes)
+
+ foreach (implementation IN LISTS _PGPS_IMPLEMENTATIONS)
+ if (implementation STREQUAL "CPython")
+ if (_PGPS_INTERPRETER)
+ list (APPEND path_suffixes bin Scripts)
+ else()
+ foreach (version IN LISTS _PGPS_VERSION)
+ 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()
+ endforeach()
+ endif()
+ elseif (implementation STREQUAL "IronPython")
+ if (_PGPS_INTERPRETER OR _PGPS_COMPILER)
+ foreach (version IN LISTS _PGPS_VERSION)
+ list (APPEND path_suffixes "share/ironpython${version}")
+ endforeach()
+ list (APPEND path_suffixes ${_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES})
+ endif()
+ elseif (implementation STREQUAL "PyPy")
+ if (_PGPS_INTERPRETER)
+ list (APPEND path_suffixes ${_${_PYTHON_PREFIX}_PYPY_EXECUTABLE_PATH_SUFFIXES})
+ elseif (_PGPS_LIBRARY)
+ list (APPEND path_suffixes ${_${_PYTHON_PREFIX}_PYPY_LIBRARY_PATH_SUFFIXES})
+ elseif (_PGPS_INCLUDE)
+ list (APPEND path_suffixes ${_${_PYTHON_PREFIX}_PYPY_INCLUDE_PATH_SUFFIXES})
+ endif()
+ endif()
+ endforeach()
+ list (REMOVE_DUPLICATES path_suffixes)
+
+ 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;INTERPRETER;COMPILER;CONFIG;LIBRARY;WIN32;DEBUG" "" "IMPLEMENTATIONS;VERSION")
+
+ if (NOT _PGN_IMPLEMENTATIONS)
+ set (_PGN_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS})
+ endif()
+
+ set (names)
+
+ foreach (implementation IN LISTS _PGN_IMPLEMENTATIONS)
+ if (implementation STREQUAL "CPython")
+ foreach (version IN LISTS _PGN_VERSION)
+ if (_PGN_WIN32)
+ string (REPLACE "." "" version_no_dots ${version})
+
+ set (name 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_INTERPRETER 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${version}")
+ list (TRANSFORM abinames APPEND "-config")
+ list (APPEND names ${abinames})
+ endif()
+ set (abinames "${abi}")
+ list (TRANSFORM abinames PREPEND "python${version}")
+ if (_PGN_CONFIG)
+ list (TRANSFORM abinames APPEND "-config")
+ endif()
+ list (APPEND names ${abinames})
+ else()
+ unset (abinames)
+ if (_PGN_CONFIG AND DEFINED CMAKE_LIBRARY_ARCHITECTURE)
+ set (abinames "${CMAKE_LIBRARY_ARCHITECTURE}-python${version}")
+ endif()
+ list (APPEND abinames "python${version}")
+ if (_PGN_CONFIG)
+ list (TRANSFORM abinames APPEND "-config")
+ endif()
+ list (APPEND names ${abinames})
+ endif()
+ endif()
+ endforeach()
+ if (_PGN_INTERPRETER)
+ list (APPEND names python${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR} python)
+ endif()
+ elseif (implementation STREQUAL "IronPython")
+ if (_PGN_INTERPRETER)
+ if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ # Do not use wrapper script on Linux because it is buggy: -c interpreter option cannot be used
+ foreach (version IN LISTS _PGN_VERSION)
+ list (APPEND names "ipy${version}")
+ endforeach()
+ endif()
+ list (APPEND names ${_${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES})
+ elseif (_PGN_COMPILER)
+ list (APPEND names ${_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES})
+ endif()
+ elseif (implementation STREQUAL "PyPy")
+ if (_PGN_INTERPRETER)
+ list (APPEND names ${_${_PYTHON_PREFIX}_PYPY_NAMES})
+ elseif (_PGN_LIBRARY)
+ if (_PGN_WIN32)
+ foreach (version IN LISTS _PGN_VERSION)
+ string (REPLACE "." "" version_no_dots ${version})
+
+ set (name "python${version_no_dots}")
+ if (_PGN_DEBUG)
+ string (APPEND name "_d")
+ endif()
+ list (APPEND names "${name}")
+ endforeach()
+ endif()
+ list (APPEND names ${_${_PYTHON_PREFIX}_PYPY_LIB_NAMES})
+ endif()
+ endif()
+ endforeach()
+
+ 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}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.PREFIX,sysconfig.EXEC_PREFIX,sysconfig.BASE_EXEC_PREFIX]))\nexcept Exception:\n import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_config_var('base') or '', sysconfig.get_config_var('installed_base') or '']))"
+ 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")
+ if (WIN32)
+ set (_scheme "nt")
+ else()
+ set (_scheme "posix_prefix")
+ endif()
+ execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_python_inc(plat_specific=True),sysconfig.get_python_inc(plat_specific=False)]))\nexcept Exception:\n import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_path('platinclude'),sysconfig.get_path('platinclude','${_scheme}'),sysconfig.get_path('include'),sysconfig.get_path('include','${_scheme}')]))"
+ 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 "SOABI")
+ execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_config_var('SOABI') or '',sysconfig.get_config_var('EXT_SUFFIX') or '']))\nexcept Exception:\n 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()
+ foreach (_item IN LISTS _soabi)
+ if (_item)
+ set (_values "${_item}")
+ break()
+ endif()
+ endforeach()
+ if (_values)
+ # clean-up: remove prefix character and suffix
+ string (REGEX REPLACE "^[.-](.+)(${CMAKE_SHARED_LIBRARY_SUFFIX}|\\.(so|pyd))$" "\\1" _values "${_values}")
+ endif()
+ endif()
+ else()
+ set (config_flag "${NAME}")
+ if (NAME STREQUAL "CONFIGDIR")
+ set (config_flag "LIBPL")
+ endif()
+ execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys\ntry:\n from distutils import sysconfig\n sys.stdout.write(sysconfig.get_config_var('${config_flag}'))\nexcept Exception:\n import sysconfig\n 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()
+
+ if (WIN32 AND NAME MATCHES "^(PREFIX|CONFIGDIR|INCLUDES)$")
+ file (TO_CMAKE_PATH "${_values}" _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)
+ elseif (_${_PYTHON_PREFIX}_LIBRARY_RELEASE MATCHES "pypy(3)?")
+ set (version "${CMAKE_MATCH_1}")
+ if (version EQUAL "3")
+ set (${_PGV_PREFIX}VERSION_MAJOR "3" PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION "3" PARENT_SCOPE)
+ else()
+ set (${_PGV_PREFIX}VERSION_MAJOR "2" PARENT_SCOPE)
+ set (${_PGV_PREFIX}VERSION "2" PARENT_SCOPE)
+ endif()
+ set (${_PGV_PREFIX}ABI "" 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}.${version_patch}" 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_GET_LAUNCHER _PYTHON_PGL_NAME)
+ cmake_parse_arguments (PARSE_ARGV 1 _PGL "INTERPRETER;COMPILER" "" "")
+
+ unset ({_PYTHON_PGL_NAME} PARENT_SCOPE)
+
+ if ((_PGL_INTERPRETER AND NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+ OR (_PGL_COMPILER AND NOT _${_PYTHON_PREFIX}_COMPILER))
+ return()
+ endif()
+
+ if ("IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS
+ AND NOT SYSTEM_NAME MATCHES "Windows|Linux")
+ if (_PGL_INTERPRETER)
+ get_filename_component (name "${_${_PYTHON_PREFIX}_EXECUTABLE}" NAME)
+ get_filename_component (ext "${_${_PYTHON_PREFIX}_EXECUTABLE}" LAST_EXT)
+ if (name IN_LIST _${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES
+ AND ext STREQUAL ".exe")
+ set (${_PYTHON_PGL_NAME} "${${_PYTHON_PREFIX}_DOTNET_LAUNCHER}" PARENT_SCOPE)
+ endif()
+ else()
+ get_filename_component (name "${_${_PYTHON_PREFIX}_COMPILER}" NAME)
+ get_filename_component (ext "${_${_PYTHON_PREFIX}_COMPILER}" LAST_EXT)
+ if (name IN_LIST _${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES
+ AND ext STREQUAL ".exe")
+ set (${_PYTHON_PGL_NAME} "${${_PYTHON_PREFIX}_DOTNET_LAUNCHER}" 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}\"" PARENT_SCOPE)
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+
+ _python_get_launcher (launcher INTERPRETER)
+
+ # validate ABI compatibility
+ if (DEFINED _${_PYTHON_PREFIX}_FIND_ABI)
+ execute_process (COMMAND ${launcher} "${_${_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}\"" PARENT_SCOPE)
+ 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)
+ if (NOT python_name STREQUAL "python${expected_version}${abi}${CMAKE_EXECUTABLE_SUFFIX}")
+ # compute number of components for version
+ string (REGEX REPLACE "[^.]" "" dots "${expected_version}")
+ # add one dot because there is one dot less than there are components
+ string (LENGTH "${dots}." count)
+ if (count GREATER 3)
+ set (count 3)
+ endif()
+
+ # executable found must have a specific version
+ execute_process (COMMAND ${launcher} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:${count}]]))"
+ 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}\"" PARENT_SCOPE)
+ 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}\"" PARENT_SCOPE)
+ 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}\"" PARENT_SCOPE)
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ endif()
+ endif()
+ endif()
+ if (NOT _${_PYTHON_PREFIX}_EXECUTABLE)
+ return()
+ endif()
+ 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 ${launcher} "${_${_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}\"" PARENT_SCOPE)
+ else()
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong major version for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+ endif()
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+ endif()
+ endif()
+
+ if (CMAKE_SIZEOF_VOID_P AND ("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ OR "Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ AND NOT CMAKE_CROSSCOMPILING)
+ # In this case, interpreter must have same architecture as environment
+ execute_process (COMMAND ${launcher} "${_${_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}\"" PARENT_SCOPE)
+ else()
+ set (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE "Wrong architecture for the interpreter \"${_${_PYTHON_PREFIX}_EXECUTABLE}\"" PARENT_SCOPE)
+ endif()
+ set_property (CACHE _${_PYTHON_PREFIX}_EXECUTABLE PROPERTY VALUE "${_PYTHON_PREFIX}_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+ endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_COMPILER)
+ if (NOT _${_PYTHON_PREFIX}_COMPILER)
+ return()
+ endif()
+
+ cmake_parse_arguments (PARSE_ARGV 0 _PVC "EXACT;CHECK_EXISTS" "" "")
+ 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}\"" PARENT_SCOPE)
+ set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+ return()
+ endif()
+
+ _python_get_launcher (launcher COMPILER)
+
+ # 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()
+ # compute number of components for version
+ string (REGEX REPLACE "[^.]" "" dots "${expected_version}")
+ # add one dot because there is one dot less than there are components
+ string (LENGTH "${dots}." count)
+ if (count GREATER 3)
+ set (count 3)
+ endif()
+ file (WRITE "${working_dir}/version.py" "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:${count}]]))\n")
+ endif()
+ execute_process (COMMAND ${launcher} "${_${_PYTHON_PREFIX}_COMPILER}"
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS}
+ /target:exe /embed "${working_dir}/version.py"
+ WORKING_DIRECTORY "${working_dir}"
+ OUTPUT_QUIET
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ get_filename_component (ir_dir "${_${_PYTHON_PREFIX}_COMPILER}" DIRECTORY)
+ execute_process (COMMAND "${CMAKE_COMMAND}" -E env "MONO_PATH=${ir_dir}"
+ ${${_PYTHON_PREFIX}_DOTNET_LAUNCHER} "${working_dir}/version.exe"
+ WORKING_DIRECTORY "${working_dir}"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE version
+ ERROR_QUIET)
+ file (REMOVE_RECURSE "${working_dir}")
+ if (result)
+ # compiler is not usable
+ set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Cannot use the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"" PARENT_SCOPE)
+ set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+ elseif ((_PVC_EXACT AND NOT version VERSION_EQUAL expected_version)
+ OR NOT version VERSION_GREATER_EQUAL expected_version)
+ # Compiler has wrong version
+ set (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE "Wrong version for the compiler \"${_${_PYTHON_PREFIX}_COMPILER}\"" PARENT_SCOPE)
+ set_property (CACHE _${_PYTHON_PREFIX}_COMPILER PROPERTY VALUE "${_PYTHON_PREFIX}_COMPILER-NOTFOUND")
+ endif()
+endfunction()
+
+
+function (_PYTHON_VALIDATE_LIBRARY)
+ if (NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG)
+ 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}\"" PARENT_SCOPE)
+ 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}\"" PARENT_SCOPE)
+ set_property (CACHE _${_PYTHON_PREFIX}_LIBRARY_RELEASE PROPERTY VALUE "${_PYTHON_PREFIX}_LIBRARY_RELEASE-NOTFOUND")
+ else()
+ if (expected_version)
+ # library have only major.minor information
+ string (REGEX MATCH "[0-9](\\.[0-9]+)?" version "${expected_version}")
+ if ((_PVL_EXACT AND NOT lib_VERSION VERSION_EQUAL version) OR (lib_VERSION VERSION_LESS version))
+ # library has wrong version
+ set (_${_PYTHON_PREFIX}_Development_REASON_FAILURE "Wrong version for the library \"${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}\"" PARENT_SCOPE)
+ 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}\"" PARENT_SCOPE)
+ 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}\"" PARENT_SCOPE)
+ 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}\"" PARENT_SCOPE)
+ 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}\"" PARENT_SCOPE)
+ 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}\"" PARENT_SCOPE)
+ 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()
+ list (REMOVE_DUPLICATES _PYTHON_DIRS)
+ set (${_PYTHON_SLD_RESULT} ${_PYTHON_DIRS} PARENT_SCOPE)
+endfunction()
+
+
+function (_PYTHON_SET_DEVELOPMENT_MODULE_FOUND module)
+ if ("Development.${module}" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ string(TOUPPER "${module}" id)
+ set (module_found TRUE)
+
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS
+ AND NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ set (module_found FALSE)
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS
+ AND NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ set (module_found FALSE)
+ endif()
+
+ set (${_PYTHON_PREFIX}_Development.${module}_FOUND ${module_found} PARENT_SCOPE)
+ endif()
+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.Module")
+endif()
+if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Development.Module" "Development.Embed")
+endif()
+list (REMOVE_DUPLICATES ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development Development.Module Development.Embed NumPy)
+ set (${_PYTHON_PREFIX}_${_${_PYTHON_PREFIX}_COMPONENT}_FOUND FALSE)
+endforeach()
+if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development)
+ set (${_PYTHON_PREFIX}_FIND_REQUIRED_Development.Module TRUE)
+ set (${_PYTHON_PREFIX}_FIND_REQUIRED_Development.Embed TRUE)
+endif()
+
+unset (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+unset (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS)
+unset (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS)
+if ("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ if (CMAKE_SYSTEM_NAME MATCHES "^(Windows.*|CYGWIN|MSYS)$")
+ list (APPEND _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS "LIBRARY")
+ endif()
+ list (APPEND _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS "INCLUDE_DIR")
+endif()
+if ("Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ list (APPEND _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS "LIBRARY" "INCLUDE_DIR")
+endif()
+set (_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS ${_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS} ${_${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS})
+list (REMOVE_DUPLICATES _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+
+# Set versions to search
+## default: search any version
+set (_${_PYTHON_PREFIX}_FIND_VERSIONS ${_${_PYTHON_PREFIX}_VERSIONS})
+unset (_${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+
+if (${_PYTHON_PREFIX}_FIND_VERSION_COUNT)
+ if (${_PYTHON_PREFIX}_FIND_VERSION_EXACT)
+ set (_${_PYTHON_PREFIX}_FIND_VERSION_EXACT "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_MAJOR}.${${_PYTHON_PREFIX}_FIND_VERSION_MINOR}")
+ 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
+unset (_${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES)
+unset (_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES)
+unset (_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS)
+if (CMAKE_SIZEOF_VOID_P)
+ if (_${_PYTHON_PREFIX}_ARCH EQUAL "32")
+ set (_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS "/platform:x86")
+ else()
+ set (_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS "/platform:x64")
+ endif()
+endif()
+if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ # Do not use wrapper script on Linux because it is buggy: -c interpreter option cannot be used
+ list (APPEND _${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES "ipy${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}" "ipy64" "ipy32" "ipy")
+ list (APPEND _${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES "ipyc")
+endif()
+list (APPEND _${_PYTHON_PREFIX}_IRON_PYTHON_INTERPRETER_NAMES "ipy.exe")
+list (APPEND _${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_NAMES "ipyc.exe")
+set (_${_PYTHON_PREFIX}_IRON_PYTHON_PATH_SUFFIXES net45 net40 bin)
+
+# PyPy support
+if (_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR EQUAL "3")
+ set (_${_PYTHON_PREFIX}_PYPY_NAMES pypy3)
+ set (_${_PYTHON_PREFIX}_PYPY_LIB_NAMES pypy3-c)
+ if (WIN32)
+ # special name for runtime part
+ list (APPEND _${_PYTHON_PREFIX}_PYPY_LIB_NAMES libpypy3-c)
+ endif()
+ set (_${_PYTHON_PREFIX}_PYPY_INCLUDE_PATH_SUFFIXES lib/pypy3)
+else()
+ set (_${_PYTHON_PREFIX}_PYPY_NAMES pypy)
+ set (_${_PYTHON_PREFIX}_PYPY_LIB_NAMES pypy-c)
+ if (WIN32)
+ # special name for runtime part
+ list (APPEND _${_PYTHON_PREFIX}_PYPY_LIB_NAMES libpypy-c)
+ endif()
+ set (_${_PYTHON_PREFIX}_PYPY_INCLUDE_PATH_SUFFIXES lib/pypy)
+endif()
+set (_${_PYTHON_PREFIX}_PYPY_EXECUTABLE_PATH_SUFFIXES bin)
+set (_${_PYTHON_PREFIX}_PYPY_LIBRARY_PATH_SUFFIXES lib libs bin)
+list (APPEND _${_PYTHON_PREFIX}_PYPY_INCLUDE_PATH_SUFFIXES include)
+
+# Python Implementations handling
+unset (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+if (DEFINED ${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+ foreach (_${_PYTHON_PREFIX}_IMPLEMENTATION IN LISTS ${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+ if (NOT _${_PYTHON_PREFIX}_IMPLEMENTATION MATCHES "^(CPython|IronPython|PyPy)$")
+ message (AUTHOR_WARNING "Find${_PYTHON_PREFIX}: ${_${_PYTHON_PREFIX}_IMPLEMENTATION}: invalid value for '${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS'. 'CPython', 'IronPython' or 'PyPy' expected. Value will be ignored.")
+ else()
+ list (APPEND _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS ${_${_PYTHON_PREFIX}_IMPLEMENTATION})
+ endif()
+ endforeach()
+else()
+ if (WIN32)
+ set (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS CPython IronPython)
+ else()
+ set (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS CPython)
+ endif()
+endif()
+
+# compute list of names for header file
+unset (_${_PYTHON_PREFIX}_INCLUDE_NAMES)
+foreach (_${_PYTHON_PREFIX}_IMPLEMENTATION IN LISTS _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+ if (_${_PYTHON_PREFIX}_IMPLEMENTATION STREQUAL "CPython")
+ list (APPEND _${_PYTHON_PREFIX}_INCLUDE_NAMES "Python.h")
+ elseif (_${_PYTHON_PREFIX}_IMPLEMENTATION STREQUAL "PyPy")
+ list (APPEND _${_PYTHON_PREFIX}_INCLUDE_NAMES "PyPy.h")
+ endif()
+endforeach()
+
+
+# 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_IMPLEMENTATIONS}:${_${_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()
+
+function (_PYTHON_CHECK_DEVELOPMENT_SIGNATURE module)
+ if ("Development.${module}" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ string (TOUPPER "${module}" id)
+ set (signature "${_${_PYTHON_PREFIX}_SIGNATURE}:")
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+ list (APPEND signature "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:")
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+ list (APPEND signature "${_${_PYTHON_PREFIX}_INCLUDE_DIR}:")
+ endif()
+ string (MD5 signature "${signature}")
+ if (signature STREQUAL _${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE)
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+ _python_validate_library (${${_PYTHON_PREFIX}_FIND_VERSION}
+ ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT}
+ CHECK_EXISTS)
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+ _python_validate_include_dir (${${_PYTHON_PREFIX}_FIND_VERSION}
+ ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT}
+ CHECK_EXISTS)
+ endif()
+ else()
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+ unset (_${_PYTHON_PREFIX}_LIBRARY_RELEASE CACHE)
+ unset (_${_PYTHON_PREFIX}_LIBRARY_DEBUG CACHE)
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+ unset (_${_PYTHON_PREFIX}_INCLUDE_DIR CACHE)
+ endif()
+ endif()
+ if (("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS
+ AND NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ OR ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS
+ AND NOT _${_PYTHON_PREFIX}_INCLUDE_DIR))
+ unset (_${_PYTHON_PREFIX}_CONFIG CACHE)
+ unset (_${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE CACHE)
+ endif()
+ endif()
+endfunction()
+
+function (_PYTHON_COMPUTE_DEVELOPMENT_SIGNATURE module)
+ string (TOUPPER "${module}" id)
+ if (${_PYTHON_PREFIX}_Development.${module}_FOUND)
+ set (signature "${_${_PYTHON_PREFIX}_SIGNATURE}:")
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+ list (APPEND signature "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}:")
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_${id}_ARTIFACTS)
+ list (APPEND signature "${_${_PYTHON_PREFIX}_INCLUDE_DIR}:")
+ endif()
+ string (MD5 signature "${signature}")
+ set (_${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE "${signature}" CACHE INTERNAL "")
+ else()
+ unset (_${_PYTHON_PREFIX}_DEVELOPMENT_${id}_SIGNATURE CACHE)
+ endif()
+endfunction()
+
+
+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)
+
+
+# preamble
+## For IronPython on platforms other than Windows, search for the .Net interpreter
+if ("IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS
+ AND NOT WIN32)
+ find_program (${_PYTHON_PREFIX}_DOTNET_LAUNCHER
+ NAMES "mono")
+endif()
+
+
+# first step, search for the interpreter
+if ("Interpreter" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_EXECUTABLE
+ _${_PYTHON_PREFIX}_INTERPRETER_PROPERTIES)
+ 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")
+ # build all executable names
+ _python_get_names (_${_PYTHON_PREFIX}_NAMES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} POSIX INTERPRETER)
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} INTERPRETER)
+
+ # Framework Paths
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+ # Registry Paths
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+
+ 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 ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ if (_${_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 ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ 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}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ endif()
+
+ # try using HINTS
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ break()
+ endif()
+ # try using standard paths
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ NAMES_PER_DIR
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_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 ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ 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}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ _python_validate_interpreter (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ 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 INTERPRETER)
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_VERSION} INTERPRETER)
+
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_VERSION})
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_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 ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ 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 ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ 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}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_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}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_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.
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+ _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 ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ 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}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_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.
+ _python_get_names (_${_PYTHON_PREFIX}_NAMES POSIX INTERPRETER)
+ find_program (_${_PYTHON_PREFIX}_EXECUTABLE
+ NAMES ${_${_PYTHON_PREFIX}_NAMES})
+ _python_validate_interpreter ()
+ endif()
+ endif()
+ endif()
+
+ set (${_PYTHON_PREFIX}_EXECUTABLE "${_${_PYTHON_PREFIX}_EXECUTABLE}")
+ _python_get_launcher (_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER INTERPRETER)
+
+ # retrieve exact version of executable found
+ if (_${_PYTHON_PREFIX}_EXECUTABLE)
+ execute_process (COMMAND ${_${_PYTHON_PREFIX}_INTERPRETER_LAUNCHER} "${_${_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_PATCH)
+
+ 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}_INTERPRETR_LAUNCHER} "${_${_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)
+ unset (_${_PYTHON_PREFIX}_Interpreter_REASON_FAILURE)
+
+ # 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}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys; sys.stdout.write(str(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}_INTERPRETER_LAUNCHER} "${_${_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")
+ elseif (${_PYTHON_PREFIX}_INTERPRETER_ID MATCHES "PyPy ([0-9.]+)")
+ set (${_PYTHON_PREFIX}_INTERPRETER_ID "PyPy")
+ set (${_PYTHON_PREFIX}_PyPy_VERSION "${CMAKE_MATCH_1}")
+ 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}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys; sys.stdout.write(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}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys\ntry:\n from distutils import sysconfig\n 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)]))\nexcept Exception:\n import sysconfig\n sys.stdout.write(';'.join([sysconfig.get_path('stdlib'),sysconfig.get_path('platstdlib'),sysconfig.get_path('purelib'),sysconfig.get_path('platlib')]))"
+ 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()
+
+ if (${_PYTHON_PREFIX}_ARTIFACTS_INTERACTIVE)
+ set (${_PYTHON_PREFIX}_EXECUTABLE "${_${_PYTHON_PREFIX}_EXECUTABLE}" CACHE FILEPATH "${_PYTHON_PREFIX} Interpreter")
+ 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 (NOT "IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+ unset (_${_PYTHON_PREFIX}_COMPILER CACHE)
+ unset (_${_PYTHON_PREFIX}_COMPILER_SIGNATURE CACHE)
+ elseif (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 ("IronPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS
+ AND 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")
+ _python_get_names (_${_PYTHON_PREFIX}_COMPILER_NAMES
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+ COMPILER)
+
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+ COMPILER)
+
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+
+ while (TRUE)
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ 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)
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+ # Windows registry
+ if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+
+ # try using HINTS
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+
+ # try using standard paths
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ _python_validate_compiler (${${_PYTHON_PREFIX}_FIND_VERSION} ${_${_PYTHON_PREFIX}_FIND_VERSION_EXACT})
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+ # Windows registry
+ if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+
+ break()
+ endwhile()
+ else()
+ # try using root dir and registry
+ foreach (_${_PYTHON_PREFIX}_VERSION IN LISTS _${_PYTHON_PREFIX}_FIND_VERSIONS)
+ _python_get_names (_${_PYTHON_PREFIX}_COMPILER_NAMES
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+ COMPILER)
+
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_FIND_VERSION}
+ COMPILER)
+
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_VERSION})
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_VERSION})
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ 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)
+ _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+ # Windows registry
+ if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "FIRST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+
+ # try using HINTS
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+ _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+
+ # Apple frameworks handling
+ if (CMAKE_HOST_APPLE AND _${_PYTHON_PREFIX}_FIND_FRAMEWORK STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_FRAMEWORK_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES}
+ NO_DEFAULT_PATH)
+ _python_validate_compiler (${_${_PYTHON_PREFIX}_VERSION} EXACT)
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ break()
+ endif()
+ endif()
+ # Windows registry
+ if (CMAKE_HOST_WIN32 AND _${_PYTHON_PREFIX}_FIND_REGISTRY STREQUAL "LAST")
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ NAMES_PER_DIR
+ PATHS ${_${_PYTHON_PREFIX}_REGISTRY_PATHS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_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
+ _python_get_names (_${_PYTHON_PREFIX}_COMPILER_NAMES
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+ COMPILER)
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES
+ IMPLEMENTATIONS IronPython
+ VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS}
+ COMPILER)
+ find_program (_${_PYTHON_PREFIX}_COMPILER
+ NAMES ${_${_PYTHON_PREFIX}_COMPILER_NAMES}
+ HINTS ${_${_PYTHON_PREFIX}_IRON_ROOT} ${_${_PYTHON_PREFIX}_HINTS}
+ PATH_SUFFIXES ${_${_PYTHON_PREFIX}_PATH_SUFFIXES})
+ endif()
+ endif()
+
+ set (${_PYTHON_PREFIX}_COMPILER "${_${_PYTHON_PREFIX}_COMPILER}")
+
+ if (_${_PYTHON_PREFIX}_COMPILER)
+ # retrieve python environment version from compiler
+ _python_get_launcher (_${_PYTHON_PREFIX}_COMPILER_LAUNCHER 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_LAUNCHER} "${_${_PYTHON_PREFIX}_COMPILER}"
+ ${_${_PYTHON_PREFIX}_IRON_PYTHON_COMPILER_ARCH_FLAGS}
+ /target:exe /embed "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.py"
+ WORKING_DIRECTORY "${_${_PYTHON_PREFIX}_VERSION_DIR}"
+ OUTPUT_QUIET
+ ERROR_QUIET)
+ get_filename_component (_${_PYTHON_PREFIX}_IR_DIR "${_${_PYTHON_PREFIX}_COMPILER}" DIRECTORY)
+ execute_process (COMMAND "${CMAKE_COMMAND}" -E env "MONO_PATH=${_${_PYTHON_PREFIX}_IR_DIR}"
+ ${${_PYTHON_PREFIX}_DOTNET_LAUNCHER} "${_${_PYTHON_PREFIX}_VERSION_DIR}/version.exe"
+ 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)
+ unset (_${_PYTHON_PREFIX}_Compiler_REASON_FAILURE)
+
+ # 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()
+
+ if (${_PYTHON_PREFIX}_ARTIFACTS_INTERACTIVE)
+ set (${_PYTHON_PREFIX}_COMPILER "${_${_PYTHON_PREFIX}_COMPILER}" CACHE FILEPATH "${_PYTHON_PREFIX} Compiler")
+ endif()
+
+ _python_mark_as_internal (_${_PYTHON_PREFIX}_COMPILER
+ _${_PYTHON_PREFIX}_COMPILER_SIGNATURE)
+endif()
+
+# third step, search for the development artifacts
+if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development.Module)
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_LIBRARIES)
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_INCLUDE_DIRS)
+ endif()
+endif()
+if (${_PYTHON_PREFIX}_FIND_REQUIRED_Development.Embed)
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_LIBRARIES)
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_EMBED_ARTIFACTS)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_INCLUDE_DIRS)
+ endif()
+endif()
+list (REMOVE_DUPLICATES _${_PYTHON_PREFIX}_REQUIRED_VARS)
+## Development environment is not compatible with IronPython interpreter
+if (("Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ OR "Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS)
+ AND ((${_PYTHON_PREFIX}_Interpreter_FOUND
+ AND NOT ${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "IronPython")
+ OR NOT ${_PYTHON_PREFIX}_Interpreter_FOUND))
+ if (${_PYTHON_PREFIX}_Interpreter_FOUND)
+ # reduce possible implementations to the interpreter one
+ if (${_PYTHON_PREFIX}_INTERPRETER_ID STREQUAL "PyPy")
+ set (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS "PyPy")
+ else()
+ set (_${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS "CPython")
+ endif()
+ else()
+ list (REMOVE_ITEM _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS "IronPython")
+ endif()
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+ list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_LIBRARY_RELEASE
+ _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE
+ _${_PYTHON_PREFIX}_LIBRARY_DEBUG
+ _${_PYTHON_PREFIX}_RUNTIME_LIBRARY_DEBUG)
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+ list (APPEND _${_PYTHON_PREFIX}_CACHED_VARS _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ endif()
+
+ _python_check_development_signature (Module)
+ _python_check_development_signature (Embed)
+
+ 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)
+ AND "CPython" IN_LIST _${_PYTHON_PREFIX}_FIND_IMPLEMENTATIONS)
+ 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")
+ _python_get_names (_${_PYTHON_PREFIX}_CONFIG_NAMES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} POSIX CONFIG)
+ # Framework Paths
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS})
+
+ # 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 VERSION ${_${_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 ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+ 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")
+ # library names
+ _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} WIN32 POSIX LIBRARY)
+ _python_get_names (_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} WIN32 DEBUG)
+ # Paths suffixes
+ _python_get_path_suffixes (_${_PYTHON_PREFIX}_PATH_SUFFIXES VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} LIBRARY)
+
+ # Framework Paths
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_LIB_FIND_VERSIONS})
+ # Registry Paths
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_PYTHON_PREFIX}_FIND_VERSIONS} )
+
+ 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 VERSION ${_${_PYTHON_PREFIX}_LIB_VERSION})
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_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}_)
+ if (_${_PYTHON_PREFIX}_VERSION EQUAL "${_${_PYTHON_PREFIX}_REQUIRED_VERSION_MAJOR}")
+ # not able to extract full version from library name
+ if (${_PYTHON_PREFIX}_Interpreter_FOUND)
+ # update from interpreter
+ 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()
+ endif()
+
+ 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)
+ # second try including CMAKE variables to catch-up non conventional layouts
+ find_library (_${_PYTHON_PREFIX}_LIBRARY_DEBUG
+ NAMES ${_${_PYTHON_PREFIX}_LIB_NAMES_DEBUG}
+ NAMES_PER_DIR
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_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()
+ endif()
+
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+ while (NOT _${_PYTHON_PREFIX}_INCLUDE_DIR)
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS
+ AND NOT _${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ # Don't search for include dir if no library was founded
+ break()
+ endif()
+
+ 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_PREFIX}_INCLUDE_NAMES}
+ 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)
+
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ # 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()
+ endif()
+
+ _python_get_frameworks (_${_PYTHON_PREFIX}_FRAMEWORK_PATHS VERSION ${_${_PYTHON_PREFIX}_VERSION})
+ _python_get_registries (_${_PYTHON_PREFIX}_REGISTRY_PATHS VERSION ${_${_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_PREFIX}_INCLUDE_NAMES}
+ 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_PREFIX}_INCLUDE_NAMES}
+ 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_PREFIX}_INCLUDE_NAMES}
+ 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_PREFIX}_INCLUDE_NAMES})
+
+ break()
+ endwhile()
+
+ 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_)
+
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE)
+ if ("${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR}.${_${_PYTHON_PREFIX}_INC_VERSION_MINOR}"
+ VERSION_EQUAL _${_PYTHON_PREFIX}_VERSION)
+ # update versioning
+ set (_${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_INC_VERSION})
+ set (_${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_INC_VERSION_PATCH})
+ endif()
+ else()
+ set (_${_PYTHON_PREFIX}_VERSION ${_${_PYTHON_PREFIX}_INC_VERSION})
+ set (_${_PYTHON_PREFIX}_VERSION_MAJOR ${_${_PYTHON_PREFIX}_INC_VERSION_MAJOR})
+ set (_${_PYTHON_PREFIX}_VERSION_MINOR ${_${_PYTHON_PREFIX}_INC_VERSION_MINOR})
+ set (_${_PYTHON_PREFIX}_VERSION_PATCH ${_${_PYTHON_PREFIX}_INC_VERSION_PATCH})
+ endif()
+ 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
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+ 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()
+ endif()
+
+ if (_${_PYTHON_PREFIX}_LIBRARY_RELEASE OR _${_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}")
+ _python_set_development_module_found (Module)
+ _python_set_development_module_found (Embed)
+ 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}")
+ _python_set_development_module_found (Module)
+ _python_set_development_module_found (Embed)
+ 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.Module_FOUND FALSE)
+ set (${_PYTHON_PREFIX}_Development.Embed_FOUND FALSE)
+ endif()
+ endif()
+
+ if (( ${_PYTHON_PREFIX}_Development.Module_FOUND
+ AND ${_PYTHON_PREFIX}_Development.Embed_FOUND)
+ OR (NOT "Development.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND ${_PYTHON_PREFIX}_Development.Embed_FOUND)
+ OR (NOT "Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND ${_PYTHON_PREFIX}_Development.Module_FOUND))
+ unset (_${_PYTHON_PREFIX}_Development_REASON_FAILURE)
+ endif()
+
+ if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND ${_PYTHON_PREFIX}_Development.Module_FOUND
+ AND ${_PYTHON_PREFIX}_Development.Embed_FOUND)
+ set (${_PYTHON_PREFIX}_Development_FOUND TRUE)
+ endif()
+
+ if ((${_PYTHON_PREFIX}_Development.Module_FOUND
+ OR ${_PYTHON_PREFIX}_Development.Embed_FOUND)
+ AND EXISTS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/PyPy.h")
+ # retrieve PyPy version
+ file (STRINGS "${_${_PYTHON_PREFIX}_INCLUDE_DIR}/patchlevel.h" ${_PYTHON_PREFIX}_PyPy_VERSION
+ REGEX "^#define[ \t]+PYPY_VERSION[ \t]+\"[^\"]+\"")
+ string (REGEX REPLACE "^#define[ \t]+PYPY_VERSION[ \t]+\"([^\"]+)\".*" "\\1"
+ ${_PYTHON_PREFIX}_PyPy_VERSION "${${_PYTHON_PREFIX}_PyPy_VERSION}")
+ 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()
+
+ _python_compute_development_signature (Module)
+ _python_compute_development_signature (Embed)
+
+ # 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()
+
+ if (${_PYTHON_PREFIX}_ARTIFACTS_INTERACTIVE)
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+ set (${_PYTHON_PREFIX}_LIBRARY "${_${_PYTHON_PREFIX}_LIBRARY_RELEASE}" CACHE FILEPATH "${_PYTHON_PREFIX} Library")
+ endif()
+ if ("INCLUDE_DIR" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_ARTIFACTS)
+ set (${_PYTHON_PREFIX}_INCLUDE_DIR "${_${_PYTHON_PREFIX}_INCLUDE_DIR}" CACHE FILEPATH "${_PYTHON_PREFIX} Include Directory")
+ endif()
+ 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_MODULE_SIGNATURE
+ _${_PYTHON_PREFIX}_DEVELOPMENT_EMBED_SIGNATURE)
+endif()
+
+if (${_PYTHON_PREFIX}_FIND_REQUIRED_NumPy)
+ list (APPEND _${_PYTHON_PREFIX}_REQUIRED_VARS ${_PYTHON_PREFIX}_NumPy_INCLUDE_DIRS)
+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 (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_MODULE_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}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys\ntry: import numpy; sys.stdout.write(numpy.get_include())\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}_INTERPRETER_LAUNCHER} "${_${_PYTHON_PREFIX}_EXECUTABLE}" -c
+ "import sys\ntry: import numpy; sys.stdout.write(numpy.__version__)\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.Module component is founded as well
+ set(${_PYTHON_PREFIX}_NumPy_FOUND ${${_PYTHON_PREFIX}_Development.Module_FOUND})
+ else()
+ set (${_PYTHON_PREFIX}_NumPy_FOUND FALSE)
+ endif()
+
+ if (${_PYTHON_PREFIX}_NumPy_FOUND)
+ unset (_${_PYTHON_PREFIX}_NumPy_REASON_FAILURE)
+
+ # compute and save numpy signature
+ string (MD5 __${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${_${_PYTHON_PREFIX}_INTERPRETER_SIGNATURE}:${_${_PYTHON_PREFIX}_DEVELOPMENT_MODULE_SIGNATURE}:${${_PYTHON_PREFIX}_NumPyINCLUDE_DIR}")
+ set (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE "${__${_PYTHON_PREFIX}_NUMPY_SIGNATURE}" CACHE INTERNAL "")
+ else()
+ unset (_${_PYTHON_PREFIX}_NUMPY_SIGNATURE CACHE)
+ endif()
+
+ if (${_PYTHON_PREFIX}_ARTIFACTS_INTERACTIVE)
+ set (${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR "${_${_PYTHON_PREFIX}_NumPy_INCLUDE_DIR}" CACHE FILEPATH "${_PYTHON_PREFIX} NumPy Include Directory")
+ 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}")
+ unset (_${_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.Module" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND ${_PYTHON_PREFIX}_Development.Module_FOUND)
+ OR ("Development.Embed" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS
+ AND ${_PYTHON_PREFIX}_Development.Embed_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}_LIBRARIES}"
+ IMPORTED_LOCATION "${${_PYTHON_PREFIX}_RUNTIME_LIBRARY_RELEASE}")
+ 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_RELEASE}")
+ 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()
+
+ if (${_PYTHON_PREFIX}_Development.Embed_FOUND)
+ __python_import_library (${_PYTHON_PREFIX}::Python)
+ endif()
+
+ if (${_PYTHON_PREFIX}_Development.Module_FOUND)
+ if ("LIBRARY" IN_LIST _${_PYTHON_PREFIX}_FIND_DEVELOPMENT_MODULE_ARTIFACTS)
+ # 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()
+ 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()
+
+ if (type STREQUAL "MODULE" AND NOT TARGET ${prefix}::Module)
+ message (SEND_ERROR "${prefix}_ADD_LIBRARY: dependent target '${prefix}::Module' is not defined.\n Did you miss to request COMPONENT 'Development.Module'?")
+ return()
+ endif()
+ if (NOT type STREQUAL "MODULE" AND NOT TARGET ${prefix}::Python)
+ message (SEND_ERROR "${prefix}_ADD_LIBRARY: dependent target '${prefix}::Python' is not defined.\n Did you miss to request COMPONENT 'Development.Embed'?")
+ return()
+ 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.18/Modules/FindPython2.cmake b/share/cmake-3.18/Modules/FindPython2.cmake
new file mode 100644
index 0000000..84c0c73
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindPython2.cmake
@@ -0,0 +1,344 @@
+# 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). This component includes two sub-components which can be specified
+ independently:
+
+ * ``Development.Module``: search for artifacts for Python 2 module
+ developments.
+ * ``Development.Embed``: search for artifacts for Python 2 embedding
+ developments.
+
+* ``NumPy``: search for NumPy include directories.
+
+If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
+
+If component ``Development`` is specified, it implies sub-components
+``Development.Module`` and ``Development.Embed``.
+
+To ensure consistent versions between components ``Interpreter``, ``Compiler``,
+``Development`` (or one of its sub-components) 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`` (or one of its
+ sub-components) 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::Module``
+ Python 2 library for Python module. Target defined if component
+ ``Development.Module`` is found.
+``Python2::Python``
+ Python 2 library for Python embedding. Target defined if component
+ ``Development.Embed`` 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
+ * PyPy
+``Python2_STDLIB``
+ Standard platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``
+ or else ``sysconfig.get_path('stdlib')``.
+``Python2_STDARCH``
+ Standard platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``
+ or else ``sysconfig.get_path('platstdlib')``.
+``Python2_SITELIB``
+ Third-party platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``
+ or else ``sysconfig.get_path('purelib')``.
+``Python2_SITEARCH``
+ Third-party platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``
+ or else ``sysconfig.get_path('platlib')``.
+``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_DOTNET_LAUNCHER``
+ The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+``Python2_Development_FOUND``
+ System has the Python 2 development artifacts.
+``Python2_Development.Module_FOUND``
+ System has the Python 2 development artifacts for Python module.
+``Python2_Development.Embed_FOUND``
+ System has the Python 2 development artifacts for Python embedding.
+``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_PyPy_VERSION``
+ Python 2 PyPy 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 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 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 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 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 but environment variable ``PATH`` is always considered.
+ 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.
+
+``Python2_FIND_IMPLEMENTATIONS``
+ This variable defines, in an ordered list, the different implementations
+ which will be searched. The ``Python2_FIND_IMPLEMENTATIONS`` variable can
+ hold the following values:
+
+ * ``CPython``: this is the standard implementation. Various products, like
+ ``Anaconda`` or ``ActivePython``, rely on this implementation.
+ * ``IronPython``: This implementation use the ``CSharp`` language for
+ ``.NET Framework`` on top of the `Dynamic Language Runtime` (``DLR``).
+ See `IronPython <http://ironpython.net>`_.
+ * ``PyPy``: This implementation use ``RPython`` language and
+ ``RPython translation toolchain`` to produce the python interpreter.
+ See `PyPy <https://www.pypy.org>`_.
+
+ The default value is:
+
+ * Windows platform: ``CPython``, ``IronPython``
+ * Other platforms: ``CPython``
+
+ .. note::
+
+ This hint has the lowest priority of all hints, so even if, for example,
+ you specify ``IronPython`` first and ``CPython`` in second, a python
+ product based on ``CPython`` can be selected because, for example with
+ ``Python2_FIND_STRATEGY=LOCATION``, each location will be search first for
+ ``IronPython`` and second for ``CPython``.
+
+ .. note::
+
+ When ``IronPython`` is specified, on platforms other than ``Windows``, the
+ ``.Net`` interpreter (i.e. ``mono`` command) is expected to be available
+ through the ``PATH`` variable.
+
+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_DOTNET_LAUNCHER``
+ The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+
+``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.
+
+By default, this module supports multiple calls in different directories of a
+project with different version/component requirements while providing correct
+and consistent results for each call. To support this behavior, ``CMake`` cache
+is not used in the traditional way which can be problematic for interactive
+specification. So, to enable also interactive specification, module behavior
+can be controled with the following variable:
+
+``Python2_ARTIFACTS_INTERACTIVE``
+ Selects the behavior of the module. This is a boolean variable:
+
+ * If set to ``TRUE``: Create CMake cache entries for the above artifact
+ specification variables so that users can edit them interactively.
+ This disables support for multiple version/component requirements.
+ * If set to ``FALSE`` or undefined: Enable multiple version/component
+ requirements.
+
+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.18/Modules/FindPython3.cmake b/share/cmake-3.18/Modules/FindPython3.cmake
new file mode 100644
index 0000000..f142c07
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindPython3.cmake
@@ -0,0 +1,397 @@
+# 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). This component includes two sub-components which can be specified
+ independently:
+
+ * ``Development.Module``: search for artifacts for Python 3 module
+ developments.
+ * ``Development.Embed``: search for artifacts for Python 3 embedding
+ developments.
+
+* ``NumPy``: search for NumPy include directories.
+
+If no ``COMPONENTS`` are specified, ``Interpreter`` is assumed.
+
+If component ``Development`` is specified, it implies sub-components
+``Development.Module`` and ``Development.Embed``.
+
+To ensure consistent versions between components ``Interpreter``, ``Compiler``,
+``Development`` (or one of its sub-components) 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`` (or one of its
+ sub-components) 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::Module``
+ Python 3 library for Python module. Target defined if component
+ ``Development.Module`` is found.
+``Python3::Python``
+ Python 3 library for Python embedding. Target defined if component
+ ``Development.Embed`` 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
+ * PyPy
+``Python3_STDLIB``
+ Standard platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)``
+ or else ``sysconfig.get_path('stdlib')``.
+``Python3_STDARCH``
+ Standard platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)``
+ or else ``sysconfig.get_path('platstdlib')``.
+``Python3_SITELIB``
+ Third-party platform independent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)``
+ or else ``sysconfig.get_path('purelib')``.
+``Python3_SITEARCH``
+ Third-party platform dependent installation directory.
+
+ Information returned by
+ ``distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)``
+ or else ``sysconfig.get_path('platlib')``.
+``Python3_SOABI``
+ Extension suffix for modules.
+
+ Information returned by
+ ``distutils.sysconfig.get_config_var('SOABI')`` or computed from
+ ``distutils.sysconfig.get_config_var('EXT_SUFFIX')`` or
+ ``python3-config --extension-suffix``. If package ``distutils.sysconfig`` is
+ not available, ``sysconfig.get_config_var('SOABI')`` or
+ ``sysconfig.get_config_var('EXT_SUFFIX')`` are used.
+``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_DOTNET_LAUNCHER``
+ The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+``Python3_Development_FOUND``
+ System has the Python 3 development artifacts.
+``Python3_Development.Module_FOUND``
+ System has the Python 3 development artifacts for Python module.
+``Python3_Development.Embed_FOUND``
+ System has the Python 3 development artifacts for Python embedding.
+``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_PyPy_VERSION``
+ Python 3 PyPy 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 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 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 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 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 but environment variable ``PATH`` is always considered.
+ 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.
+
+``Python3_FIND_IMPLEMENTATIONS``
+ This variable defines, in an ordered list, the different implementations
+ which will be searched. The ``Python3_FIND_IMPLEMENTATIONS`` variable can
+ hold the following values:
+
+ * ``CPython``: this is the standard implementation. Various products, like
+ ``Anaconda`` or ``ActivePython``, rely on this implementation.
+ * ``IronPython``: This implementation use the ``CSharp`` language for
+ ``.NET Framework`` on top of the `Dynamic Language Runtime` (``DLR``).
+ See `IronPython <http://ironpython.net>`_.
+ * ``PyPy``: This implementation use ``RPython`` language and
+ ``RPython translation toolchain`` to produce the python interpreter.
+ See `PyPy <https://www.pypy.org>`_.
+
+ The default value is:
+
+ * Windows platform: ``CPython``, ``IronPython``
+ * Other platforms: ``CPython``
+
+ .. note::
+
+ This hint has the lowest priority of all hints, so even if, for example,
+ you specify ``IronPython`` first and ``CPython`` in second, a python
+ product based on ``CPython`` can be selected because, for example with
+ ``Python3_FIND_STRATEGY=LOCATION``, each location will be search first for
+ ``IronPython`` and second for ``CPython``.
+
+ .. note::
+
+ When ``IronPython`` is specified, on platforms other than ``Windows``, the
+ ``.Net`` interpreter (i.e. ``mono`` command) is expected to be available
+ through the ``PATH`` variable.
+
+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_DOTNET_LAUNCHER``
+ The ``.Net`` interpreter. Only used by ``IronPython`` implementation.
+
+``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.
+
+By default, this module supports multiple calls in different directories of a
+project with different version/component requirements while providing correct
+and consistent results for each call. To support this behavior, ``CMake`` cache
+is not used in the traditional way which can be problematic for interactive
+specification. So, to enable also interactive specification, module behavior
+can be controled with the following variable:
+
+``Python3_ARTIFACTS_INTERACTIVE``
+ Selects the behavior of the module. This is a boolean variable:
+
+ * If set to ``TRUE``: Create CMake cache entries for the above artifact
+ specification variables so that users can edit them interactively.
+ This disables support for multiple version/component requirements.
+ * If set to ``FALSE`` or undefined: Enable multiple version/component
+ requirements.
+
+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.17/Modules/FindPythonInterp.cmake b/share/cmake-3.18/Modules/FindPythonInterp.cmake
index 1e01a99..1e01a99 100644
--- a/share/cmake-3.17/Modules/FindPythonInterp.cmake
+++ b/share/cmake-3.18/Modules/FindPythonInterp.cmake
diff --git a/share/cmake-3.17/Modules/FindPythonLibs.cmake b/share/cmake-3.18/Modules/FindPythonLibs.cmake
index d3ec7be..d3ec7be 100644
--- a/share/cmake-3.17/Modules/FindPythonLibs.cmake
+++ b/share/cmake-3.18/Modules/FindPythonLibs.cmake
diff --git a/share/cmake-3.17/Modules/FindQt.cmake b/share/cmake-3.18/Modules/FindQt.cmake
index d6a0662..d6a0662 100644
--- a/share/cmake-3.17/Modules/FindQt.cmake
+++ b/share/cmake-3.18/Modules/FindQt.cmake
diff --git a/share/cmake-3.17/Modules/FindQt3.cmake b/share/cmake-3.18/Modules/FindQt3.cmake
index 563ed46..563ed46 100644
--- a/share/cmake-3.17/Modules/FindQt3.cmake
+++ b/share/cmake-3.18/Modules/FindQt3.cmake
diff --git a/share/cmake-3.17/Modules/FindQt4.cmake b/share/cmake-3.18/Modules/FindQt4.cmake
index 3993968..3993968 100644
--- a/share/cmake-3.17/Modules/FindQt4.cmake
+++ b/share/cmake-3.18/Modules/FindQt4.cmake
diff --git a/share/cmake-3.17/Modules/FindQuickTime.cmake b/share/cmake-3.18/Modules/FindQuickTime.cmake
index 107486d..107486d 100644
--- a/share/cmake-3.17/Modules/FindQuickTime.cmake
+++ b/share/cmake-3.18/Modules/FindQuickTime.cmake
diff --git a/share/cmake-3.17/Modules/FindRTI.cmake b/share/cmake-3.18/Modules/FindRTI.cmake
index 54d2bec..54d2bec 100644
--- a/share/cmake-3.17/Modules/FindRTI.cmake
+++ b/share/cmake-3.18/Modules/FindRTI.cmake
diff --git a/share/cmake-3.18/Modules/FindRuby.cmake b/share/cmake-3.18/Modules/FindRuby.cmake
new file mode 100644
index 0000000..1bdee60
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindRuby.cmake
@@ -0,0 +1,512 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindRuby
+--------
+
+Find Ruby
+
+This module finds if Ruby is installed and determines where the
+include files and libraries are. Ruby 1.8 through 2.7 are
+supported.
+
+The minimum required version of Ruby can be specified using the
+standard syntax, e.g.
+
+.. code-block:: cmake
+
+ find_package(Ruby 2.5.1 EXACT REQUIRED)
+ # OR
+ find_package(Ruby 2.4)
+
+It also determines what the name of the library is.
+
+Virtual environments such as RVM are handled as well, by passing
+the argument ``Ruby_FIND_VIRTUALENV``
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``Ruby_FOUND``
+ set to true if ruby was found successfully
+``Ruby_EXECUTABLE``
+ full path to the ruby binary
+``Ruby_INCLUDE_DIRS``
+ include dirs to be used when using the ruby library
+``Ruby_LIBRARIES``
+ libraries needed to use ruby from C.
+``Ruby_VERSION``
+ the version of ruby which was found, e.g. "1.8.7"
+``Ruby_VERSION_MAJOR``
+ Ruby major version.
+``Ruby_VERSION_MINOR``
+ Ruby minor version.
+``Ruby_VERSION_PATCH``
+ Ruby patch version.
+
+
+Also:
+
+``Ruby_INCLUDE_PATH``
+ same as Ruby_INCLUDE_DIRS, only provided for compatibility reasons, don't use it
+
+Hints
+^^^^^
+
+``Ruby_ROOT_DIR``
+ Define the root directory of a Ruby installation.
+
+``Ruby_FIND_VIRTUALENV``
+ This variable defines the handling of virtual environments managed by
+ ``rvm``. It is meaningful only when a virtual environment
+ is active (i.e. the ``rvm`` script has been evaluated or at least the
+ ``MY_RUBY_HOME`` environment variable is set).
+ The ``Ruby_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 (assuming it isn't still in the PATH...)
+
+#]=======================================================================]
+
+# Backwards compatibility
+# Define camel case versions of input variables
+foreach(UPPER
+ RUBY_EXECUTABLE
+ RUBY_LIBRARY
+ RUBY_INCLUDE_DIR
+ RUBY_CONFIG_INCLUDE_DIR
+ )
+ if (DEFINED ${UPPER})
+ string(REPLACE "RUBY_" "Ruby_" Camel ${UPPER})
+ if (NOT DEFINED ${Camel})
+ set(${Camel} ${${UPPER}})
+ endif()
+ endif()
+endforeach()
+
+# Ruby_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'`
+# Ruby_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
+# Ruby_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
+# Ruby_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
+# Ruby_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+
+# uncomment the following line to get debug output for this file
+# set(_Ruby_DEBUG_OUTPUT TRUE)
+
+# Determine the list of possible names of the ruby executable depending
+# on which version of ruby is required
+set(_Ruby_POSSIBLE_EXECUTABLE_NAMES ruby)
+
+# If not specified, allow everything as far back as 1.8.0
+if(NOT DEFINED Ruby_FIND_VERSION_MAJOR)
+ set(Ruby_FIND_VERSION "1.8.0")
+ set(Ruby_FIND_VERSION_MAJOR 1)
+ set(Ruby_FIND_VERSION_MINOR 8)
+ set(Ruby_FIND_VERSION_PATCH 0)
+endif()
+
+if(_Ruby_DEBUG_OUTPUT)
+ message("Ruby_FIND_VERSION=${Ruby_FIND_VERSION}")
+ message("Ruby_FIND_VERSION_MAJOR=${Ruby_FIND_VERSION_MAJOR}")
+ message("Ruby_FIND_VERSION_MINOR=${Ruby_FIND_VERSION_MINOR}")
+ message("Ruby_FIND_VERSION_PATCH=${Ruby_FIND_VERSION_PATCH}")
+endif()
+
+set(Ruby_FIND_VERSION_SHORT_NODOT "${Ruby_FIND_VERSION_MAJOR}${Ruby_FIND_VERSION_MINOR}")
+
+# Set name of possible executables, ignoring the minor
+# Eg:
+# 2.1.1 => from ruby27 to ruby21 included
+# 2.1 => from ruby27 to ruby21 included
+# 2 => from ruby26 to ruby20 included
+# empty => from ruby27 to ruby18 included
+if(NOT Ruby_FIND_VERSION_EXACT)
+
+ foreach(_ruby_version RANGE 27 18 -1)
+ string(SUBSTRING "${_ruby_version}" 0 1 _ruby_major_version)
+ string(SUBSTRING "${_ruby_version}" 1 1 _ruby_minor_version)
+
+ if(NOT "${_ruby_major_version}${_ruby_minor_version}" VERSION_LESS ${Ruby_FIND_VERSION_SHORT_NODOT})
+ # Append both rubyX.Y and rubyXY (eg: ruby2.7 ruby27)
+ list(APPEND _Ruby_POSSIBLE_EXECUTABLE_NAMES ruby${_ruby_major_version}.${_ruby_minor_version} ruby${_ruby_major_version}${_ruby_minor_version})
+ else()
+ break()
+ endif()
+
+ endforeach()
+
+ list(REMOVE_DUPLICATES _Ruby_POSSIBLE_EXECUTABLE_NAMES)
+endif()
+
+# virtual environments handling (eg RVM)
+if (DEFINED ENV{MY_RUBY_HOME})
+ if(_Ruby_DEBUG_OUTPUT)
+ message("My ruby home is defined: $ENV{MY_RUBY_HOME}")
+ endif()
+
+ if (DEFINED Ruby_FIND_VIRTUALENV)
+ if (NOT Ruby_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY|STANDARD)$")
+ message (AUTHOR_WARNING "FindRuby: ${Ruby_FIND_VIRTUALENV}: invalid value for 'Ruby_FIND_VIRTUALENV'. 'FIRST', 'ONLY' or 'STANDARD' expected. 'FIRST' will be used instead.")
+ set (_Ruby_FIND_VIRTUALENV "FIRST")
+ else()
+ set (_Ruby_FIND_VIRTUALENV ${Ruby_FIND_VIRTUALENV})
+ endif()
+ else()
+ set (_Ruby_FIND_VIRTUALENV FIRST)
+ endif()
+else()
+ if (DEFINED Ruby_FIND_VIRTUALENV)
+ message("Environment variable MY_RUBY_HOME isn't set, defaulting back to Ruby_FIND_VIRTUALENV=STANDARD")
+ endif()
+ set (_Ruby_FIND_VIRTUALENV STANDARD)
+endif()
+
+if(_Ruby_DEBUG_OUTPUT)
+ message("_Ruby_POSSIBLE_EXECUTABLE_NAMES=${_Ruby_POSSIBLE_EXECUTABLE_NAMES}")
+ message("_Ruby_FIND_VIRTUALENV=${_Ruby_FIND_VIRTUALENV}")
+endif()
+
+function (_RUBY_VALIDATE_INTERPRETER)
+ if (NOT Ruby_EXECUTABLE)
+ return()
+ endif()
+
+ cmake_parse_arguments (PARSE_ARGV 0 _RVI "EXACT;CHECK_EXISTS" "" "")
+ if (_RVI_UNPARSED_ARGUMENTS)
+ set (expected_version ${_RVI_UNPARSED_ARGUMENTS})
+ else()
+ unset (expected_version)
+ endif()
+
+ if (_RVI_CHECK_EXISTS AND NOT EXISTS "${Ruby_EXECUTABLE}")
+ # interpreter does not exist anymore
+ set (_Ruby_Interpreter_REASON_FAILURE "Cannot find the interpreter \"${Ruby_EXECUTABLE}\"")
+ set_property (CACHE Ruby_EXECUTABLE PROPERTY VALUE "Ruby_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+
+ # Check the version it returns
+ # executable found must have a specific version
+ execute_process (COMMAND "${Ruby_EXECUTABLE}" -e "puts RUBY_VERSION"
+ RESULT_VARIABLE result
+ OUTPUT_VARIABLE version
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (result OR (_RVI_EXACT AND NOT version VERSION_EQUAL expected_version) OR (version VERSION_LESS expected_version))
+ # interpreter not usable or has wrong major version
+ if (result)
+ set (_Ruby_Interpreter_REASON_FAILURE "Cannot use the interpreter \"${Ruby_EXECUTABLE}\"")
+ else()
+ set (_Ruby_Interpreter_REASON_FAILURE "Wrong major version for the interpreter \"${Ruby_EXECUTABLE}\"")
+ endif()
+ set_property (CACHE Ruby_EXECUTABLE PROPERTY VALUE "Ruby_EXECUTABLE-NOTFOUND")
+ return()
+ endif()
+
+endfunction()
+
+while(1)
+ # Virtual environments handling
+ if(_Ruby_FIND_VIRTUALENV MATCHES "^(FIRST|ONLY)$")
+ if(_Ruby_DEBUG_OUTPUT)
+ message("Inside Matches")
+ endif()
+ find_program (Ruby_EXECUTABLE
+ NAMES ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}
+ NAMES_PER_DIR
+ PATHS ENV MY_RUBY_HOME
+ PATH_SUFFIXES bin Scripts
+ NO_CMAKE_PATH
+ NO_CMAKE_ENVIRONMENT_PATH
+ NO_SYSTEM_ENVIRONMENT_PATH
+ NO_CMAKE_SYSTEM_PATH)
+
+ if(_Ruby_DEBUG_OUTPUT)
+ message("Ruby_EXECUTABLE=${Ruby_EXECUTABLE}")
+ endif()
+
+ _RUBY_VALIDATE_INTERPRETER (${Ruby_FIND_VERSION}})
+ if(Ruby_EXECUTABLE)
+ break()
+ endif()
+ if(NOT _Ruby_FIND_VIRTUALENV STREQUAL "ONLY")
+ break()
+ endif()
+ elseif(_Ruby_DEBUG_OUTPUT)
+ message("_Ruby_FIND_VIRTUALENV doesn't match: ${_Ruby_FIND_VIRTUALENV}")
+ endif()
+
+ # try using standard paths
+ find_program (Ruby_EXECUTABLE
+ NAMES ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}
+ NAMES_PER_DIR)
+ _RUBY_VALIDATE_INTERPRETER (${Ruby_FIND_VERSION})
+ if (Ruby_EXECUTABLE)
+ break()
+ endif()
+
+ break()
+endwhile()
+
+if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_MAJOR)
+ function(_RUBY_CONFIG_VAR RBVAR OUTVAR)
+ execute_process(COMMAND ${Ruby_EXECUTABLE} -r rbconfig -e "print RbConfig::CONFIG['${RBVAR}']"
+ RESULT_VARIABLE _Ruby_SUCCESS
+ OUTPUT_VARIABLE _Ruby_OUTPUT
+ ERROR_QUIET)
+ if(_Ruby_SUCCESS OR _Ruby_OUTPUT STREQUAL "")
+ execute_process(COMMAND ${Ruby_EXECUTABLE} -r rbconfig -e "print Config::CONFIG['${RBVAR}']"
+ RESULT_VARIABLE _Ruby_SUCCESS
+ OUTPUT_VARIABLE _Ruby_OUTPUT
+ ERROR_QUIET)
+ endif()
+ set(${OUTVAR} "${_Ruby_OUTPUT}" PARENT_SCOPE)
+ endfunction()
+
+
+ # query the ruby version
+ _RUBY_CONFIG_VAR("MAJOR" Ruby_VERSION_MAJOR)
+ _RUBY_CONFIG_VAR("MINOR" Ruby_VERSION_MINOR)
+ _RUBY_CONFIG_VAR("TEENY" Ruby_VERSION_PATCH)
+
+ # query the different directories
+ _RUBY_CONFIG_VAR("archdir" Ruby_ARCH_DIR)
+ _RUBY_CONFIG_VAR("arch" Ruby_ARCH)
+ _RUBY_CONFIG_VAR("rubyhdrdir" Ruby_HDR_DIR)
+ _RUBY_CONFIG_VAR("rubyarchhdrdir" Ruby_ARCHHDR_DIR)
+ _RUBY_CONFIG_VAR("libdir" Ruby_POSSIBLE_LIB_DIR)
+ _RUBY_CONFIG_VAR("rubylibdir" Ruby_RUBY_LIB_DIR)
+
+ # site_ruby
+ _RUBY_CONFIG_VAR("sitearchdir" Ruby_SITEARCH_DIR)
+ _RUBY_CONFIG_VAR("sitelibdir" Ruby_SITELIB_DIR)
+
+ # vendor_ruby available ?
+ execute_process(COMMAND ${Ruby_EXECUTABLE} -r vendor-specific -e "print 'true'"
+ OUTPUT_VARIABLE Ruby_HAS_VENDOR_RUBY ERROR_QUIET)
+
+ if(Ruby_HAS_VENDOR_RUBY)
+ _RUBY_CONFIG_VAR("vendorlibdir" Ruby_VENDORLIB_DIR)
+ _RUBY_CONFIG_VAR("vendorarchdir" Ruby_VENDORARCH_DIR)
+ endif()
+
+ # save the results in the cache so we don't have to run ruby the next time again
+ set(Ruby_VERSION_MAJOR ${Ruby_VERSION_MAJOR} CACHE PATH "The Ruby major version" FORCE)
+ set(Ruby_VERSION_MINOR ${Ruby_VERSION_MINOR} CACHE PATH "The Ruby minor version" FORCE)
+ set(Ruby_VERSION_PATCH ${Ruby_VERSION_PATCH} CACHE PATH "The Ruby patch version" FORCE)
+ set(Ruby_ARCH_DIR ${Ruby_ARCH_DIR} CACHE PATH "The Ruby arch dir" FORCE)
+ set(Ruby_HDR_DIR ${Ruby_HDR_DIR} CACHE PATH "The Ruby header dir (1.9+)" FORCE)
+ set(Ruby_ARCHHDR_DIR ${Ruby_ARCHHDR_DIR} CACHE PATH "The Ruby arch header dir (2.0+)" FORCE)
+ set(Ruby_POSSIBLE_LIB_DIR ${Ruby_POSSIBLE_LIB_DIR} CACHE PATH "The Ruby lib dir" FORCE)
+ set(Ruby_RUBY_LIB_DIR ${Ruby_RUBY_LIB_DIR} CACHE PATH "The Ruby ruby-lib dir" FORCE)
+ set(Ruby_SITEARCH_DIR ${Ruby_SITEARCH_DIR} CACHE PATH "The Ruby site arch dir" FORCE)
+ set(Ruby_SITELIB_DIR ${Ruby_SITELIB_DIR} CACHE PATH "The Ruby site lib dir" FORCE)
+ set(Ruby_HAS_VENDOR_RUBY ${Ruby_HAS_VENDOR_RUBY} CACHE BOOL "Vendor Ruby is available" FORCE)
+ set(Ruby_VENDORARCH_DIR ${Ruby_VENDORARCH_DIR} CACHE PATH "The Ruby vendor arch dir" FORCE)
+ set(Ruby_VENDORLIB_DIR ${Ruby_VENDORLIB_DIR} CACHE PATH "The Ruby vendor lib dir" FORCE)
+
+ mark_as_advanced(
+ Ruby_ARCH_DIR
+ Ruby_ARCH
+ Ruby_HDR_DIR
+ Ruby_ARCHHDR_DIR
+ Ruby_POSSIBLE_LIB_DIR
+ Ruby_RUBY_LIB_DIR
+ Ruby_SITEARCH_DIR
+ Ruby_SITELIB_DIR
+ Ruby_HAS_VENDOR_RUBY
+ Ruby_VENDORARCH_DIR
+ Ruby_VENDORLIB_DIR
+ Ruby_VERSION_MAJOR
+ Ruby_VERSION_MINOR
+ Ruby_VERSION_PATCH
+ )
+endif()
+
+# In case Ruby_EXECUTABLE could not be executed (e.g. cross compiling)
+# try to detect which version we found. This is not too good.
+if(Ruby_EXECUTABLE AND NOT Ruby_VERSION_MAJOR)
+ # by default assume 1.8.0
+ set(Ruby_VERSION_MAJOR 1)
+ set(Ruby_VERSION_MINOR 8)
+ set(Ruby_VERSION_PATCH 0)
+ # check whether we found 1.9.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby1\\.?9")
+ set(Ruby_VERSION_MAJOR 1)
+ set(Ruby_VERSION_MINOR 9)
+ endif()
+ # check whether we found 2.0.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?0")
+ set(Ruby_VERSION_MAJOR 2)
+ set(Ruby_VERSION_MINOR 0)
+ endif()
+ # check whether we found 2.1.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?1")
+ set(Ruby_VERSION_MAJOR 2)
+ set(Ruby_VERSION_MINOR 1)
+ endif()
+ # check whether we found 2.2.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?2")
+ set(Ruby_VERSION_MAJOR 2)
+ set(Ruby_VERSION_MINOR 2)
+ endif()
+ # check whether we found 2.3.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?3")
+ set(Ruby_VERSION_MAJOR 2)
+ set(Ruby_VERSION_MINOR 3)
+ endif()
+ # check whether we found 2.4.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?4")
+ set(Ruby_VERSION_MAJOR 2)
+ set(Ruby_VERSION_MINOR 4)
+ endif()
+ # check whether we found 2.5.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?5")
+ set(Ruby_VERSION_MAJOR 2)
+ set(Ruby_VERSION_MINOR 5)
+ endif()
+ # check whether we found 2.6.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?6")
+ set(Ruby_VERSION_MAJOR 2)
+ set(Ruby_VERSION_MINOR 6)
+ endif()
+ # check whether we found 2.7.x
+ if(${Ruby_EXECUTABLE} MATCHES "ruby2\\.?7")
+ set(Ruby_VERSION_MAJOR 2)
+ set(Ruby_VERSION_MINOR 7)
+ endif()
+endif()
+
+if(Ruby_VERSION_MAJOR)
+ set(Ruby_VERSION "${Ruby_VERSION_MAJOR}.${Ruby_VERSION_MINOR}.${Ruby_VERSION_PATCH}")
+ set(_Ruby_VERSION_SHORT "${Ruby_VERSION_MAJOR}.${Ruby_VERSION_MINOR}")
+ set(_Ruby_VERSION_SHORT_NODOT "${Ruby_VERSION_MAJOR}${Ruby_VERSION_MINOR}")
+ set(_Ruby_NODOT_VERSION "${Ruby_VERSION_MAJOR}${Ruby_VERSION_MINOR}${Ruby_VERSION_PATCH}")
+endif()
+
+# FIXME: Currently we require both the interpreter and development components to be found
+# in order to use either. See issue #20474.
+find_path(Ruby_INCLUDE_DIR
+ NAMES ruby.h
+ HINTS
+ ${Ruby_HDR_DIR}
+ ${Ruby_ARCH_DIR}
+ /usr/lib/ruby/${_Ruby_VERSION_SHORT}/i586-linux-gnu/
+)
+
+set(Ruby_INCLUDE_DIRS ${Ruby_INCLUDE_DIR})
+
+# if ruby > 1.8 is required or if ruby > 1.8 was found, search for the config.h dir
+if( Ruby_FIND_VERSION VERSION_GREATER_EQUAL "1.9" OR Ruby_VERSION VERSION_GREATER_EQUAL "1.9" OR Ruby_HDR_DIR)
+ find_path(Ruby_CONFIG_INCLUDE_DIR
+ NAMES ruby/config.h config.h
+ HINTS
+ ${Ruby_HDR_DIR}/${Ruby_ARCH}
+ ${Ruby_ARCH_DIR}
+ ${Ruby_ARCHHDR_DIR}
+ )
+
+ set(Ruby_INCLUDE_DIRS ${Ruby_INCLUDE_DIRS} ${Ruby_CONFIG_INCLUDE_DIR} )
+endif()
+
+
+# Determine the list of possible names for the ruby library
+set(_Ruby_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_Ruby_VERSION_SHORT} ruby${_Ruby_VERSION_SHORT_NODOT} ruby-${_Ruby_VERSION_SHORT} ruby-${Ruby_VERSION})
+
+if(WIN32)
+ if(MSVC_TOOLSET_VERSION)
+ set(_Ruby_MSVC_RUNTIME "${MSVC_TOOLSET_VERSION}")
+ else()
+ set(_Ruby_MSVC_RUNTIME "")
+ endif()
+
+ set(_Ruby_ARCH_PREFIX "")
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(_Ruby_ARCH_PREFIX "x64-")
+ endif()
+
+ list(APPEND _Ruby_POSSIBLE_LIB_NAMES
+ "${_Ruby_ARCH_PREFIX}msvcr${_Ruby_MSVC_RUNTIME}-ruby${_Ruby_NODOT_VERSION}"
+ "${_Ruby_ARCH_PREFIX}msvcr${_Ruby_MSVC_RUNTIME}-ruby${_Ruby_NODOT_VERSION}-static"
+ "${_Ruby_ARCH_PREFIX}msvcrt-ruby${_Ruby_NODOT_VERSION}"
+ "${_Ruby_ARCH_PREFIX}msvcrt-ruby${_Ruby_NODOT_VERSION}-static" )
+endif()
+
+find_library(Ruby_LIBRARY NAMES ${_Ruby_POSSIBLE_LIB_NAMES} HINTS ${Ruby_POSSIBLE_LIB_DIR} )
+
+set(_Ruby_REQUIRED_VARS Ruby_EXECUTABLE Ruby_INCLUDE_DIR Ruby_LIBRARY)
+if(_Ruby_VERSION_SHORT_NODOT GREATER 18)
+ list(APPEND _Ruby_REQUIRED_VARS Ruby_CONFIG_INCLUDE_DIR)
+endif()
+
+if(_Ruby_DEBUG_OUTPUT)
+ message(STATUS "--------FindRuby.cmake debug------------")
+ message(STATUS "_Ruby_POSSIBLE_EXECUTABLE_NAMES: ${_Ruby_POSSIBLE_EXECUTABLE_NAMES}")
+ message(STATUS "_Ruby_POSSIBLE_LIB_NAMES: ${_Ruby_POSSIBLE_LIB_NAMES}")
+ message(STATUS "Ruby_ARCH_DIR: ${Ruby_ARCH_DIR}")
+ message(STATUS "Ruby_HDR_DIR: ${Ruby_HDR_DIR}")
+ message(STATUS "Ruby_POSSIBLE_LIB_DIR: ${Ruby_POSSIBLE_LIB_DIR}")
+ message(STATUS "Found Ruby_VERSION: \"${Ruby_VERSION}\" , short: \"${_Ruby_VERSION_SHORT}\", nodot: \"${_Ruby_VERSION_SHORT_NODOT}\"")
+ message(STATUS "_Ruby_REQUIRED_VARS: ${_Ruby_REQUIRED_VARS}")
+ message(STATUS "Ruby_EXECUTABLE: ${Ruby_EXECUTABLE}")
+ message(STATUS "Ruby_LIBRARY: ${Ruby_LIBRARY}")
+ message(STATUS "Ruby_INCLUDE_DIR: ${Ruby_INCLUDE_DIR}")
+ message(STATUS "Ruby_CONFIG_INCLUDE_DIR: ${Ruby_CONFIG_INCLUDE_DIR}")
+ message(STATUS "--------------------")
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ruby REQUIRED_VARS ${_Ruby_REQUIRED_VARS}
+ VERSION_VAR Ruby_VERSION )
+
+if(Ruby_FOUND)
+ set(Ruby_LIBRARIES ${Ruby_LIBRARY})
+endif()
+
+mark_as_advanced(
+ Ruby_EXECUTABLE
+ Ruby_LIBRARY
+ Ruby_INCLUDE_DIR
+ Ruby_CONFIG_INCLUDE_DIR
+ )
+
+# Set some variables for compatibility with previous version of this file (no need to provide a CamelCase version of that...)
+set(RUBY_POSSIBLE_LIB_PATH ${Ruby_POSSIBLE_LIB_DIR})
+set(RUBY_RUBY_LIB_PATH ${Ruby_RUBY_LIB_DIR})
+set(RUBY_INCLUDE_PATH ${Ruby_INCLUDE_DIRS})
+
+# Backwards compatibility
+# Define upper case versions of output variables
+foreach(Camel
+ Ruby_EXECUTABLE
+ Ruby_INCLUDE_DIRS
+ Ruby_LIBRARY
+ Ruby_VERSION
+ Ruby_VERSION_MAJOR
+ Ruby_VERSION_MINOR
+ Ruby_VERSION_PATCH
+ Ruby_INCLUDE_PATH
+
+ Ruby_ARCH_DIR
+ Ruby_ARCH
+ Ruby_HDR_DIR
+ Ruby_ARCHHDR_DIR
+ Ruby_POSSIBLE_LIB_DIR
+ Ruby_RUBY_LIB_DIR
+ Ruby_SITEARCH_DIR
+ Ruby_SITELIB_DIR
+ Ruby_HAS_VENDOR_RUBY
+ Ruby_VENDORARCH_DIR
+
+ )
+ string(TOUPPER ${Camel} UPPER)
+ set(${UPPER} ${${Camel}})
+endforeach()
diff --git a/share/cmake-3.17/Modules/FindSDL.cmake b/share/cmake-3.18/Modules/FindSDL.cmake
index 8d793a9..8d793a9 100644
--- a/share/cmake-3.17/Modules/FindSDL.cmake
+++ b/share/cmake-3.18/Modules/FindSDL.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_image.cmake b/share/cmake-3.18/Modules/FindSDL_image.cmake
index e687b49..e687b49 100644
--- a/share/cmake-3.17/Modules/FindSDL_image.cmake
+++ b/share/cmake-3.18/Modules/FindSDL_image.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_mixer.cmake b/share/cmake-3.18/Modules/FindSDL_mixer.cmake
index 315400a..315400a 100644
--- a/share/cmake-3.17/Modules/FindSDL_mixer.cmake
+++ b/share/cmake-3.18/Modules/FindSDL_mixer.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_net.cmake b/share/cmake-3.18/Modules/FindSDL_net.cmake
index 28cb4d6..28cb4d6 100644
--- a/share/cmake-3.17/Modules/FindSDL_net.cmake
+++ b/share/cmake-3.18/Modules/FindSDL_net.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_sound.cmake b/share/cmake-3.18/Modules/FindSDL_sound.cmake
index 8d2f9f8..8d2f9f8 100644
--- a/share/cmake-3.17/Modules/FindSDL_sound.cmake
+++ b/share/cmake-3.18/Modules/FindSDL_sound.cmake
diff --git a/share/cmake-3.17/Modules/FindSDL_ttf.cmake b/share/cmake-3.18/Modules/FindSDL_ttf.cmake
index d5721da..d5721da 100644
--- a/share/cmake-3.17/Modules/FindSDL_ttf.cmake
+++ b/share/cmake-3.18/Modules/FindSDL_ttf.cmake
diff --git a/share/cmake-3.17/Modules/FindSQLite3.cmake b/share/cmake-3.18/Modules/FindSQLite3.cmake
index 374d7af..374d7af 100644
--- a/share/cmake-3.17/Modules/FindSQLite3.cmake
+++ b/share/cmake-3.18/Modules/FindSQLite3.cmake
diff --git a/share/cmake-3.18/Modules/FindSWIG.cmake b/share/cmake-3.18/Modules/FindSWIG.cmake
new file mode 100644
index 0000000..2fded49
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindSWIG.cmake
@@ -0,0 +1,110 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindSWIG
+--------
+
+Find the Simplified Wrapper and Interface Generator (SWIG_) executable.
+
+
+This module finds an installed SWIG and determines its version. If a
+``COMPONENTS`` or ``OPTIONAL_COMPONENTS`` argument is given to ``find_package``,
+it will also determine supported target languages. The module sents the
+following variables:
+
+``SWIG_FOUND``
+ Whether SWIG and any required components were found on the system.
+``SWIG_EXECUTABLE``
+ Path to the SWIG executable.
+``SWIG_DIR``
+ Path to the installed SWIG ``Lib`` directory (result of ``swig -swiglib``).
+``SWIG_VERSION``
+ SWIG executable version (result of ``swig -version``).
+``SWIG_<lang>_FOUND``
+ If ``COMPONENTS`` or ``OPTIONAL_COMPONENTS`` are requested, each available
+ target language ``<lang>`` (lowercase) will be set to TRUE.
+
+Any ``COMPONENTS`` given to ``find_package`` should be the names of supported
+target languages as provided to the LANGUAGE argument of ``swig_add_library``,
+such as ``python`` or ``perl5``. Language names *must* be lowercase.
+
+All information is collected from the ``SWIG_EXECUTABLE``, so the version
+to be found can be changed from the command line by means of setting
+``SWIG_EXECUTABLE``.
+
+Example usage requiring SWIG 4.0 or higher and Python language support, with
+optional Fortran support:
+
+.. code-block:: cmake
+
+ find_package(SWIG 4.0 COMPONENTS python OPTIONAL_COMPONENTS fortran)
+ if(SWIG_FOUND)
+ message("SWIG found: ${SWIG_EXECUTABLE}")
+ if(NOT SWIG_fortran_FOUND)
+ message(WARNING "SWIG Fortran bindings cannot be generated")
+ endif()
+ endif()
+
+.. _`SWIG`: http://swig.org
+
+#]=======================================================================]
+
+find_program(SWIG_EXECUTABLE NAMES swig4.0 swig3.0 swig2.0 swig)
+
+if(SWIG_EXECUTABLE)
+ execute_process(COMMAND ${SWIG_EXECUTABLE} -swiglib
+ OUTPUT_VARIABLE SWIG_swiglib_output
+ ERROR_VARIABLE SWIG_swiglib_error
+ RESULT_VARIABLE SWIG_swiglib_result)
+
+ if(SWIG_swiglib_result)
+ if(SWIG_FIND_REQUIRED)
+ message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}")
+ else()
+ message(STATUS "Command \"${SWIG_EXECUTABLE} -swiglib\" failed with output:\n${SWIG_swiglib_error}")
+ endif()
+ else()
+ string(REGEX REPLACE "[\n\r]+" ";" SWIG_swiglib_output ${SWIG_swiglib_output})
+ find_path(SWIG_DIR swig.swg PATHS ${SWIG_swiglib_output} NO_CMAKE_FIND_ROOT_PATH)
+ if(SWIG_DIR)
+ set(SWIG_USE_FILE ${CMAKE_CURRENT_LIST_DIR}/UseSWIG.cmake)
+ execute_process(COMMAND ${SWIG_EXECUTABLE} -version
+ OUTPUT_VARIABLE SWIG_version_output
+ ERROR_VARIABLE SWIG_version_output
+ RESULT_VARIABLE SWIG_version_result)
+ if(SWIG_version_result)
+ message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -version\" failed with output:\n${SWIG_version_output}")
+ else()
+ string(REGEX REPLACE ".*SWIG Version[^0-9.]*\([0-9.]+\).*" "\\1"
+ SWIG_version_output "${SWIG_version_output}")
+ set(SWIG_VERSION ${SWIG_version_output} CACHE STRING "Swig version" FORCE)
+ endif()
+ endif()
+ endif()
+
+ if(SWIG_FIND_COMPONENTS)
+ execute_process(COMMAND ${SWIG_EXECUTABLE} -help
+ OUTPUT_VARIABLE SWIG_swighelp_output
+ ERROR_VARIABLE SWIG_swighelp_error
+ RESULT_VARIABLE SWIG_swighelp_result)
+ if(SWIG_swighelp_result)
+ message(SEND_ERROR "Command \"${SWIG_EXECUTABLE} -help\" failed with output:\n${SWIG_swiglib_error}")
+ else()
+ string(REPLACE "\n" ";" SWIG_swighelp_output "${SWIG_swighelp_output}")
+ foreach(SWIG_line IN LISTS SWIG_swighelp_output)
+ if(SWIG_line MATCHES "-([A-Za-z0-9_]+) +- *Generate.*wrappers")
+ set(SWIG_${CMAKE_MATCH_1}_FOUND TRUE)
+ endif()
+ endforeach()
+ endif()
+ endif()
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(
+ SWIG HANDLE_COMPONENTS
+ REQUIRED_VARS SWIG_EXECUTABLE SWIG_DIR
+ VERSION_VAR SWIG_VERSION)
+
+mark_as_advanced(SWIG_DIR SWIG_VERSION SWIG_EXECUTABLE)
diff --git a/share/cmake-3.17/Modules/FindSelfPackers.cmake b/share/cmake-3.18/Modules/FindSelfPackers.cmake
index 1abbcbd..1abbcbd 100644
--- a/share/cmake-3.17/Modules/FindSelfPackers.cmake
+++ b/share/cmake-3.18/Modules/FindSelfPackers.cmake
diff --git a/share/cmake-3.18/Modules/FindSquish.cmake b/share/cmake-3.18/Modules/FindSquish.cmake
new file mode 100644
index 0000000..91d1410
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindSquish.cmake
@@ -0,0 +1,288 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindSquish
+----------
+
+-- Typical Use
+
+
+
+This module can be used to find Squish.
+
+::
+
+ SQUISH_FOUND If false, don't try to use Squish
+ SQUISH_VERSION The full version of Squish found
+ SQUISH_VERSION_MAJOR The major version of Squish found
+ SQUISH_VERSION_MINOR The minor version of Squish found
+ SQUISH_VERSION_PATCH The patch version of Squish found
+
+
+
+::
+
+ SQUISH_INSTALL_DIR The Squish installation directory
+ (containing bin, lib, etc)
+ SQUISH_SERVER_EXECUTABLE The squishserver executable
+ SQUISH_CLIENT_EXECUTABLE The squishrunner executable
+
+
+
+::
+
+ SQUISH_INSTALL_DIR_FOUND Was the install directory found?
+ SQUISH_SERVER_EXECUTABLE_FOUND Was the server executable found?
+ SQUISH_CLIENT_EXECUTABLE_FOUND Was the client executable found?
+
+
+
+It provides the function squish_add_test() for adding a squish test
+to cmake using Squish >= 4.x:
+
+::
+
+ squish_add_test(cmakeTestName
+ AUT targetName SUITE suiteName TEST squishTestName
+ [SETTINGSGROUP group] [PRE_COMMAND command] [POST_COMMAND command] )
+
+
+
+The arguments have the following meaning:
+
+``cmakeTestName``
+ this will be used as the first argument for add_test()
+``AUT targetName``
+ the name of the cmake target which will be used as AUT, i.e. the
+ executable which will be tested.
+``SUITE suiteName``
+ this is either the full path to the squish suite, or just the
+ last directory of the suite, i.e. the suite name. In this case
+ the CMakeLists.txt which calls squish_add_test() must be located
+ in the parent directory of the suite directory.
+``TEST squishTestName``
+ the name of the squish test, i.e. the name of the subdirectory
+ of the test inside the suite directory.
+``SETTINGSGROUP group``
+ deprecated, this argument will be ignored.
+``PRE_COMMAND command``
+ if specified, the given command will be executed before starting the squish test.
+``POST_COMMAND command``
+ same as PRE_COMMAND, but after the squish test has been executed.
+
+
+
+::
+
+ enable_testing()
+ find_package(Squish 6.5)
+ if (SQUISH_FOUND)
+ squish_add_test(myTestName
+ AUT myApp
+ SUITE ${CMAKE_SOURCE_DIR}/tests/mySuite
+ TEST someSquishTest
+ )
+ endif ()
+
+
+
+
+
+For users of Squish version 3.x the macro squish_v3_add_test() is
+provided:
+
+::
+
+ squish_v3_add_test(testName applicationUnderTest testCase envVars testWrapper)
+ Use this macro to add a test using Squish 3.x.
+
+
+
+::
+
+ enable_testing()
+ find_package(Squish 3.0)
+ if (SQUISH_FOUND)
+ squish_v3_add_test(myTestName myApplication testCase envVars testWrapper)
+ endif ()
+
+
+#]=======================================================================]
+
+set(SQUISH_INSTALL_DIR_STRING "Directory containing the bin, doc, and lib directories for Squish; this should be the root of the installation directory.")
+set(SQUISH_SERVER_EXECUTABLE_STRING "The squishserver executable program.")
+set(SQUISH_CLIENT_EXECUTABLE_STRING "The squishclient executable program.")
+
+# Search only if the location is not already known.
+if(NOT SQUISH_INSTALL_DIR)
+ # Get the system search path as a list.
+ file(TO_CMAKE_PATH "$ENV{PATH}" SQUISH_INSTALL_DIR_SEARCH2)
+
+ # Construct a set of paths relative to the system search path.
+ set(SQUISH_INSTALL_DIR_SEARCH "")
+ foreach(dir ${SQUISH_INSTALL_DIR_SEARCH2})
+ set(SQUISH_INSTALL_DIR_SEARCH ${SQUISH_INSTALL_DIR_SEARCH} "${dir}/../lib/fltk")
+ endforeach()
+ string(REPLACE "//" "/" SQUISH_INSTALL_DIR_SEARCH "${SQUISH_INSTALL_DIR_SEARCH}")
+
+ # Look for an installation
+ find_path(SQUISH_INSTALL_DIR
+ NAMES bin/squishrunner bin/squishrunner.exe
+ HINTS
+ # Look for an environment variable SQUISH_INSTALL_DIR.
+ ENV SQUISH_INSTALL_DIR
+
+ # Look in places relative to the system executable search path.
+ ${SQUISH_INSTALL_DIR_SEARCH}
+
+ DOC "The ${SQUISH_INSTALL_DIR_STRING}"
+ )
+endif()
+
+# search for the executables
+if(SQUISH_INSTALL_DIR)
+ set(SQUISH_INSTALL_DIR_FOUND 1)
+
+ # find the client program
+ if(NOT SQUISH_CLIENT_EXECUTABLE)
+ find_program(SQUISH_CLIENT_EXECUTABLE ${SQUISH_INSTALL_DIR}/bin/squishrunner${CMAKE_EXECUTABLE_SUFFIX} DOC "The ${SQUISH_CLIENT_EXECUTABLE_STRING}")
+ endif()
+
+ # find the server program
+ if(NOT SQUISH_SERVER_EXECUTABLE)
+ find_program(SQUISH_SERVER_EXECUTABLE ${SQUISH_INSTALL_DIR}/bin/squishserver${CMAKE_EXECUTABLE_SUFFIX} DOC "The ${SQUISH_SERVER_EXECUTABLE_STRING}")
+ endif()
+
+else()
+ set(SQUISH_INSTALL_DIR_FOUND 0)
+endif()
+
+
+set(SQUISH_VERSION)
+set(SQUISH_VERSION_MAJOR)
+set(SQUISH_VERSION_MINOR)
+set(SQUISH_VERSION_PATCH)
+
+# record if executables are set
+if(SQUISH_CLIENT_EXECUTABLE)
+ set(SQUISH_CLIENT_EXECUTABLE_FOUND 1)
+ execute_process(COMMAND "${SQUISH_CLIENT_EXECUTABLE}" --version
+ OUTPUT_VARIABLE _squishVersionOutput
+ ERROR_QUIET )
+ if("${_squishVersionOutput}" MATCHES "([0-9]+)\\.([0-9]+)\\.([0-9]+)")
+ set(SQUISH_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ set(SQUISH_VERSION_MINOR "${CMAKE_MATCH_2}")
+ set(SQUISH_VERSION_PATCH "${CMAKE_MATCH_3}")
+ set(SQUISH_VERSION "${SQUISH_VERSION_MAJOR}.${SQUISH_VERSION_MINOR}.${SQUISH_VERSION_PATCH}" )
+ endif()
+else()
+ set(SQUISH_CLIENT_EXECUTABLE_FOUND 0)
+endif()
+
+if(SQUISH_SERVER_EXECUTABLE)
+ set(SQUISH_SERVER_EXECUTABLE_FOUND 1)
+else()
+ set(SQUISH_SERVER_EXECUTABLE_FOUND 0)
+endif()
+
+# record if Squish was found
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(Squish REQUIRED_VARS SQUISH_INSTALL_DIR SQUISH_CLIENT_EXECUTABLE SQUISH_SERVER_EXECUTABLE
+ VERSION_VAR SQUISH_VERSION )
+
+
+set(_SQUISH_MODULE_DIR "${CMAKE_CURRENT_LIST_DIR}")
+
+macro(squish_v3_add_test testName testAUT testCase envVars testWraper)
+ if("${SQUISH_VERSION_MAJOR}" STRGREATER "3")
+ message(STATUS "Using squish_v3_add_test(), but SQUISH_VERSION_MAJOR is ${SQUISH_VERSION_MAJOR}.\nThis may not work.")
+ endif()
+
+ add_test(${testName}
+ ${CMAKE_COMMAND} -V -VV
+ "-Dsquish_version:STRING=3"
+ "-Dsquish_aut:STRING=${testAUT}"
+ "-Dsquish_server_executable:STRING=${SQUISH_SERVER_EXECUTABLE}"
+ "-Dsquish_client_executable:STRING=${SQUISH_CLIENT_EXECUTABLE}"
+ "-Dsquish_libqtdir:STRING=${QT_LIBRARY_DIR}"
+ "-Dsquish_test_case:STRING=${testCase}"
+ "-Dsquish_env_vars:STRING=${envVars}"
+ "-Dsquish_wrapper:STRING=${testWraper}"
+ "-Dsquish_module_dir:STRING=${_SQUISH_MODULE_DIR}"
+ -P "${_SQUISH_MODULE_DIR}/SquishTestScript.cmake"
+ )
+ set_tests_properties(${testName}
+ PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED;ERROR;FATAL"
+ )
+endmacro()
+
+
+function(squish_v4_add_test testName)
+ if(NOT "${SQUISH_VERSION_MAJOR}" STRGREATER "3")
+ message(STATUS "Using squish_add_test(), but SQUISH_VERSION_MAJOR is ${SQUISH_VERSION_MAJOR}.\nThis may not work.")
+ endif()
+
+ set(oneValueArgs AUT SUITE TEST SETTINGSGROUP PRE_COMMAND POST_COMMAND)
+
+ cmake_parse_arguments(_SQUISH "" "${oneValueArgs}" "" ${ARGN} )
+
+ if(_SQUISH_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "Unknown keywords given to SQUISH_ADD_TEST(): \"${_SQUISH_UNPARSED_ARGUMENTS}\"")
+ endif()
+
+ if(NOT _SQUISH_AUT)
+ message(FATAL_ERROR "Required argument AUT not given for SQUISH_ADD_TEST()")
+ endif()
+
+ if(NOT _SQUISH_SUITE)
+ message(FATAL_ERROR "Required argument SUITE not given for SQUISH_ADD_TEST()")
+ endif()
+
+ if(NOT _SQUISH_TEST)
+ message(FATAL_ERROR "Required argument TEST not given for SQUISH_ADD_TEST()")
+ endif()
+
+ get_filename_component(absTestSuite "${_SQUISH_SUITE}" ABSOLUTE)
+ if(NOT EXISTS "${absTestSuite}")
+ message(FATAL_ERROR "Could not find squish test suite ${_SQUISH_SUITE} (checked ${absTestSuite})")
+ endif()
+
+ set(absTestCase "${absTestSuite}/${_SQUISH_TEST}")
+ if(NOT EXISTS "${absTestCase}")
+ message(FATAL_ERROR "Could not find squish testcase ${_SQUISH_TEST} (checked ${absTestCase})")
+ endif()
+
+ if(_SQUISH_SETTINGSGROUP)
+ message("SETTINGSGROUP is deprecated and will be ignored.")
+ endif()
+
+ add_test(NAME ${testName}
+ COMMAND ${CMAKE_COMMAND} -V -VV
+ "-Dsquish_version:STRING=4"
+ "-Dsquish_aut:STRING=$<TARGET_FILE_BASE_NAME:${_SQUISH_AUT}>"
+ "-Dsquish_aut_dir:STRING=$<TARGET_FILE_DIR:${_SQUISH_AUT}>"
+ "-Dsquish_server_executable:STRING=${SQUISH_SERVER_EXECUTABLE}"
+ "-Dsquish_client_executable:STRING=${SQUISH_CLIENT_EXECUTABLE}"
+ "-Dsquish_libqtdir:STRING=${QT_LIBRARY_DIR}"
+ "-Dsquish_test_suite:STRING=${absTestSuite}"
+ "-Dsquish_test_case:STRING=${_SQUISH_TEST}"
+ "-Dsquish_env_vars:STRING=${envVars}"
+ "-Dsquish_wrapper:STRING=${testWraper}"
+ "-Dsquish_module_dir:STRING=${_SQUISH_MODULE_DIR}"
+ "-Dsquish_pre_command:STRING=${_SQUISH_PRE_COMMAND}"
+ "-Dsquish_post_command:STRING=${_SQUISH_POST_COMMAND}"
+ -P "${_SQUISH_MODULE_DIR}/SquishTestScript.cmake"
+ )
+ set_tests_properties(${testName}
+ PROPERTIES FAIL_REGULAR_EXPRESSION "FAIL;FAILED;ERROR;FATAL"
+ )
+endfunction()
+
+macro(squish_add_test)
+ if("${SQUISH_VERSION_MAJOR}" STRGREATER "3")
+ squish_v4_add_test(${ARGV})
+ else()
+ squish_v3_add_test(${ARGV})
+ endif()
+endmacro()
diff --git a/share/cmake-3.18/Modules/FindSubversion.cmake b/share/cmake-3.18/Modules/FindSubversion.cmake
new file mode 100644
index 0000000..07cb770
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindSubversion.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:
+FindSubversion
+--------------
+
+Extract information from a subversion working copy
+
+The module defines the following variables:
+
+::
+
+ Subversion_SVN_EXECUTABLE - path to svn command line client
+ Subversion_VERSION_SVN - version of svn command line client
+ Subversion_FOUND - true if the command line client was found
+ SUBVERSION_FOUND - same as Subversion_FOUND, set for compatibility reasons
+
+
+
+The minimum required version of Subversion can be specified using the
+standard syntax, e.g. ``find_package(Subversion 1.4)``.
+
+If the command line client executable is found two macros are defined:
+
+::
+
+ Subversion_WC_INFO(<dir> <var-prefix> [IGNORE_SVN_FAILURE])
+ Subversion_WC_LOG(<dir> <var-prefix>)
+
+``Subversion_WC_INFO`` extracts information of a subversion working copy at a
+given location. This macro defines the following variables if running
+Subversion's ``info`` command on ``<dir>`` succeeds; otherwise a
+``SEND_ERROR`` message is generated. The error can be ignored by providing the
+``IGNORE_SVN_FAILURE`` option, which causes these variables to remain
+undefined.
+
+::
+
+ <var-prefix>_WC_URL - url of the repository (at <dir>)
+ <var-prefix>_WC_ROOT - root url of the repository
+ <var-prefix>_WC_REVISION - current revision
+ <var-prefix>_WC_LAST_CHANGED_AUTHOR - author of last commit
+ <var-prefix>_WC_LAST_CHANGED_DATE - date of last commit
+ <var-prefix>_WC_LAST_CHANGED_REV - revision of last commit
+ <var-prefix>_WC_INFO - output of command `svn info <dir>'
+
+``Subversion_WC_LOG`` retrieves the log message of the base revision of a
+subversion working copy at a given location. This macro defines the variable:
+
+::
+
+ <var-prefix>_LAST_CHANGED_LOG - last log of base revision
+
+Example usage:
+
+::
+
+ find_package(Subversion)
+ if(SUBVERSION_FOUND)
+ Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
+ message("Current revision is ${Project_WC_REVISION}")
+ Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project)
+ message("Last changed log is ${Project_LAST_CHANGED_LOG}")
+ endif()
+#]=======================================================================]
+
+find_program(Subversion_SVN_EXECUTABLE svn
+ PATHS
+ [HKEY_LOCAL_MACHINE\\Software\\TortoiseSVN;Directory]/bin
+ DOC "subversion command line client")
+mark_as_advanced(Subversion_SVN_EXECUTABLE)
+
+if(Subversion_SVN_EXECUTABLE)
+ # the subversion commands should be executed with the C locale, otherwise
+ # the message (which are parsed) may be translated, Alex
+ set(_Subversion_SAVED_LC_ALL "$ENV{LC_ALL}")
+ set(ENV{LC_ALL} C)
+
+ execute_process(COMMAND ${Subversion_SVN_EXECUTABLE} --version
+ OUTPUT_VARIABLE Subversion_VERSION_SVN
+ ERROR_VARIABLE _Subversion_VERSION_STDERR
+ RESULT_VARIABLE _Subversion_VERSION_RESULT
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ # restore the previous LC_ALL
+ set(ENV{LC_ALL} ${_Subversion_SAVED_LC_ALL})
+
+ if(_Subversion_VERSION_RESULT EQUAL 0)
+ string(REGEX REPLACE "^(.*\n)?svn, version ([.0-9]+).*"
+ "\\2" Subversion_VERSION_SVN "${Subversion_VERSION_SVN}")
+ else()
+ unset(Subversion_VERSION_SVN)
+ if(_Subversion_VERSION_STDERR MATCHES "svn: error: The subversion command line tools are no longer provided by Xcode")
+ set(Subversion_SVN_EXECUTABLE Subversion_SVN_EXECUTABLE-NOTFOUND)
+ endif()
+ endif()
+
+ macro(Subversion_WC_INFO dir prefix)
+
+ cmake_parse_arguments(
+ "Subversion_WC_INFO"
+ "IGNORE_SVN_FAILURE"
+ "" ""
+ ${ARGN}
+ )
+
+ # the subversion commands should be executed with the C locale, otherwise
+ # the message (which are parsed) may be translated, Alex
+ set(_Subversion_SAVED_LC_ALL "$ENV{LC_ALL}")
+ set(ENV{LC_ALL} C)
+
+ execute_process(COMMAND ${Subversion_SVN_EXECUTABLE} info ${dir}
+ OUTPUT_VARIABLE ${prefix}_WC_INFO
+ ERROR_VARIABLE Subversion_svn_info_error
+ RESULT_VARIABLE Subversion_svn_info_result
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(${Subversion_svn_info_result} EQUAL 0)
+ string(REGEX REPLACE "^(.*\n)?URL: ([^\n]+).*"
+ "\\2" ${prefix}_WC_URL "${${prefix}_WC_INFO}")
+ string(REGEX REPLACE "^(.*\n)?Repository Root: ([^\n]+).*"
+ "\\2" ${prefix}_WC_ROOT "${${prefix}_WC_INFO}")
+ string(REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*"
+ "\\2" ${prefix}_WC_REVISION "${${prefix}_WC_INFO}")
+ string(REGEX REPLACE "^(.*\n)?Last Changed Author: ([^\n]+).*"
+ "\\2" ${prefix}_WC_LAST_CHANGED_AUTHOR "${${prefix}_WC_INFO}")
+ string(REGEX REPLACE "^(.*\n)?Last Changed Rev: ([^\n]+).*"
+ "\\2" ${prefix}_WC_LAST_CHANGED_REV "${${prefix}_WC_INFO}")
+ string(REGEX REPLACE "^(.*\n)?Last Changed Date: ([^\n]+).*"
+ "\\2" ${prefix}_WC_LAST_CHANGED_DATE "${${prefix}_WC_INFO}")
+ elseif(NOT Subversion_WC_INFO_IGNORE_SVN_FAILURE)
+ message(SEND_ERROR "Command \"${Subversion_SVN_EXECUTABLE} info ${dir}\" failed with output:\n${Subversion_svn_info_error}")
+ endif()
+
+ # restore the previous LC_ALL
+ set(ENV{LC_ALL} ${_Subversion_SAVED_LC_ALL})
+
+ endmacro()
+
+ macro(Subversion_WC_LOG dir prefix)
+ # This macro can block if the certificate is not signed:
+ # svn ask you to accept the certificate and wait for your answer
+ # This macro requires a svn server network access (Internet most of the time)
+ # and can also be slow since it access the svn server
+ execute_process(COMMAND
+ ${Subversion_SVN_EXECUTABLE} --non-interactive log -r BASE ${dir}
+ OUTPUT_VARIABLE ${prefix}_LAST_CHANGED_LOG
+ ERROR_VARIABLE Subversion_svn_log_error
+ RESULT_VARIABLE Subversion_svn_log_result
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(NOT ${Subversion_svn_log_result} EQUAL 0)
+ message(SEND_ERROR "Command \"${Subversion_SVN_EXECUTABLE} log -r BASE ${dir}\" failed with output:\n${Subversion_svn_log_error}")
+ endif()
+ endmacro()
+
+endif()
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Subversion REQUIRED_VARS Subversion_SVN_EXECUTABLE
+ VERSION_VAR Subversion_VERSION_SVN )
+
+# for compatibility
+set(Subversion_FOUND ${SUBVERSION_FOUND})
+set(Subversion_SVN_FOUND ${SUBVERSION_FOUND})
diff --git a/share/cmake-3.17/Modules/FindTCL.cmake b/share/cmake-3.18/Modules/FindTCL.cmake
index 960265f..960265f 100644
--- a/share/cmake-3.17/Modules/FindTCL.cmake
+++ b/share/cmake-3.18/Modules/FindTCL.cmake
diff --git a/share/cmake-3.17/Modules/FindTIFF.cmake b/share/cmake-3.18/Modules/FindTIFF.cmake
index 00a3a41..00a3a41 100644
--- a/share/cmake-3.17/Modules/FindTIFF.cmake
+++ b/share/cmake-3.18/Modules/FindTIFF.cmake
diff --git a/share/cmake-3.17/Modules/FindTclStub.cmake b/share/cmake-3.18/Modules/FindTclStub.cmake
index 8f63480..8f63480 100644
--- a/share/cmake-3.17/Modules/FindTclStub.cmake
+++ b/share/cmake-3.18/Modules/FindTclStub.cmake
diff --git a/share/cmake-3.17/Modules/FindTclsh.cmake b/share/cmake-3.18/Modules/FindTclsh.cmake
index 82be473..82be473 100644
--- a/share/cmake-3.17/Modules/FindTclsh.cmake
+++ b/share/cmake-3.18/Modules/FindTclsh.cmake
diff --git a/share/cmake-3.18/Modules/FindThreads.cmake b/share/cmake-3.18/Modules/FindThreads.cmake
new file mode 100644
index 0000000..ee49867
--- /dev/null
+++ b/share/cmake-3.18/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_LANG_AND_ID:CUDA,NVIDIA>:SHELL:-Xcompiler -pthread>"
+ "$<$<NOT:$<COMPILE_LANG_AND_ID:CUDA,NVIDIA>>:-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.17/Modules/FindUnixCommands.cmake b/share/cmake-3.18/Modules/FindUnixCommands.cmake
index 2513f5c..2513f5c 100644
--- a/share/cmake-3.17/Modules/FindUnixCommands.cmake
+++ b/share/cmake-3.18/Modules/FindUnixCommands.cmake
diff --git a/share/cmake-3.18/Modules/FindVulkan.cmake b/share/cmake-3.18/Modules/FindVulkan.cmake
new file mode 100644
index 0000000..4b999b6
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindVulkan.cmake
@@ -0,0 +1,88 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindVulkan
+----------
+
+Find Vulkan, which is a low-overhead, cross-platform 3D graphics
+and computing API.
+
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines :prop_tgt:`IMPORTED` target ``Vulkan::Vulkan``, if
+Vulkan has been found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module defines the following variables::
+
+ Vulkan_FOUND - "True" if Vulkan was found
+ Vulkan_INCLUDE_DIRS - include directories for Vulkan
+ Vulkan_LIBRARIES - link against this library to use Vulkan
+
+The module will also define two cache variables::
+
+ Vulkan_INCLUDE_DIR - the Vulkan include directory
+ Vulkan_LIBRARY - the path to the Vulkan library
+
+Hints
+^^^^^
+
+The ``VULKAN_SDK`` environment variable optionally specifies the
+location of the Vulkan SDK root directory for the given
+architecture. It is typically set by sourcing the toplevel
+``setup-env.sh`` script of the Vulkan SDK directory into the shell
+environment.
+
+#]=======================================================================]
+
+if(WIN32)
+ find_path(Vulkan_INCLUDE_DIR
+ NAMES vulkan/vulkan.h
+ HINTS
+ "$ENV{VULKAN_SDK}/Include"
+ )
+
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ find_library(Vulkan_LIBRARY
+ NAMES vulkan-1
+ HINTS
+ "$ENV{VULKAN_SDK}/Lib"
+ "$ENV{VULKAN_SDK}/Bin"
+ )
+ elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ find_library(Vulkan_LIBRARY
+ NAMES vulkan-1
+ HINTS
+ "$ENV{VULKAN_SDK}/Lib32"
+ "$ENV{VULKAN_SDK}/Bin32"
+ )
+ endif()
+else()
+ find_path(Vulkan_INCLUDE_DIR
+ NAMES vulkan/vulkan.h
+ HINTS "$ENV{VULKAN_SDK}/include")
+ find_library(Vulkan_LIBRARY
+ NAMES vulkan
+ HINTS "$ENV{VULKAN_SDK}/lib")
+endif()
+
+set(Vulkan_LIBRARIES ${Vulkan_LIBRARY})
+set(Vulkan_INCLUDE_DIRS ${Vulkan_INCLUDE_DIR})
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(Vulkan
+ DEFAULT_MSG
+ Vulkan_LIBRARY Vulkan_INCLUDE_DIR)
+
+mark_as_advanced(Vulkan_INCLUDE_DIR Vulkan_LIBRARY)
+
+if(Vulkan_FOUND AND NOT TARGET Vulkan::Vulkan)
+ add_library(Vulkan::Vulkan UNKNOWN IMPORTED)
+ set_target_properties(Vulkan::Vulkan PROPERTIES
+ IMPORTED_LOCATION "${Vulkan_LIBRARIES}"
+ INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIRS}")
+endif()
diff --git a/share/cmake-3.17/Modules/FindWget.cmake b/share/cmake-3.18/Modules/FindWget.cmake
index bd01ec2..bd01ec2 100644
--- a/share/cmake-3.17/Modules/FindWget.cmake
+++ b/share/cmake-3.18/Modules/FindWget.cmake
diff --git a/share/cmake-3.17/Modules/FindWish.cmake b/share/cmake-3.18/Modules/FindWish.cmake
index b332bde..b332bde 100644
--- a/share/cmake-3.17/Modules/FindWish.cmake
+++ b/share/cmake-3.18/Modules/FindWish.cmake
diff --git a/share/cmake-3.18/Modules/FindX11.cmake b/share/cmake-3.18/Modules/FindX11.cmake
new file mode 100644
index 0000000..aa83575
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindX11.cmake
@@ -0,0 +1,823 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindX11
+-------
+
+Find X11 installation
+
+Try to find X11 on UNIX systems. The following values are defined
+
+::
+
+ X11_FOUND - True if X11 is available
+ X11_INCLUDE_DIR - include directories to use X11
+ X11_LIBRARIES - link against these to use X11
+
+and also the following more fine grained variables and targets:
+
+::
+
+ X11_ICE_INCLUDE_PATH, X11_ICE_LIB, X11_ICE_FOUND, X11::ICE
+ X11_SM_INCLUDE_PATH, X11_SM_LIB, X11_SM_FOUND, X11::SM
+ X11_X11_INCLUDE_PATH, X11_X11_LIB, X11::X11
+ X11_Xaccessrules_INCLUDE_PATH,
+ X11_Xaccessstr_INCLUDE_PATH, X11_Xaccess_FOUND
+ X11_Xau_INCLUDE_PATH, X11_Xau_LIB, X11_Xau_FOUND, X11::Xau
+ X11_xcb_INCLUDE_PATH, X11_xcb_LIB, X11_xcb_FOUND, X11::xcb
+ X11_X11_xcb_INCLUDE_PATH, X11_X11_xcb_LIB, X11_X11_xcb_FOUND, X11::X11_xcb
+ X11_xcb_icccm_INCLUDE_PATH, X11_xcb_icccm_LIB, X11_xcb_icccm_FOUND, X11::xcb_icccm
+ X11_xcb_xkb_INCLUDE_PATH, X11_xcb_xkb_LIB, X11_xcb_xkb_FOUND, X11::xcb_xkb
+ X11_Xcomposite_INCLUDE_PATH, X11_Xcomposite_LIB, X11_Xcomposite_FOUND, X11::Xcomposite
+ X11_Xcursor_INCLUDE_PATH, X11_Xcursor_LIB, X11_Xcursor_FOUND, X11::Xcursor
+ X11_Xdamage_INCLUDE_PATH, X11_Xdamage_LIB, X11_Xdamage_FOUND, X11::Xdamage
+ X11_Xdmcp_INCLUDE_PATH, X11_Xdmcp_LIB, X11_Xdmcp_FOUND, X11::Xdmcp
+ X11_Xext_INCLUDE_PATH, X11_Xext_LIB, X11_Xext_FOUND, X11::Xext
+ X11_Xxf86misc_INCLUDE_PATH, X11_Xxf86misc_LIB, X11_Xxf86misc_FOUND, X11::Xxf86misc
+ X11_Xxf86vm_INCLUDE_PATH, X11_Xxf86vm_LIB X11_Xxf86vm_FOUND, X11::Xxf86vm
+ X11_Xfixes_INCLUDE_PATH, X11_Xfixes_LIB, X11_Xfixes_FOUND, X11::Xfixes
+ X11_Xft_INCLUDE_PATH, X11_Xft_LIB, X11_Xft_FOUND, X11::Xft
+ X11_Xi_INCLUDE_PATH, X11_Xi_LIB, X11_Xi_FOUND, X11::Xi
+ X11_Xinerama_INCLUDE_PATH, X11_Xinerama_LIB, X11_Xinerama_FOUND, X11::Xinerama
+ X11_Xkb_INCLUDE_PATH,
+ X11_Xkblib_INCLUDE_PATH, X11_Xkb_FOUND, X11::Xkb
+ X11_xkbcommon_INCLUDE_PATH, X11_xkbcommon_LIB, X11_xkbcommon_FOUND, X11::xkbcommon
+ X11_xkbcommon_X11_INCLUDE_PATH,X11_xkbcommon_X11_LIB,X11_xkbcommon_X11_FOUND,X11::xkbcommon_X11
+ X11_xkbfile_INCLUDE_PATH, X11_xkbfile_LIB, X11_xkbfile_FOUND, X11::xkbfile
+ X11_Xmu_INCLUDE_PATH, X11_Xmu_LIB, X11_Xmu_FOUND, X11::Xmu
+ X11_Xpm_INCLUDE_PATH, X11_Xpm_LIB, X11_Xpm_FOUND, X11::Xpm
+ X11_Xtst_INCLUDE_PATH, X11_Xtst_LIB, X11_Xtst_FOUND, X11::Xtst
+ X11_Xrandr_INCLUDE_PATH, X11_Xrandr_LIB, X11_Xrandr_FOUND, X11::Xrandr
+ X11_Xrender_INCLUDE_PATH, X11_Xrender_LIB, X11_Xrender_FOUND, X11::Xrender
+ X11_XRes_INCLUDE_PATH, X11_XRes_LIB, X11_XRes_FOUND, X11::XRes
+ X11_Xss_INCLUDE_PATH, X11_Xss_LIB, X11_Xss_FOUND, X11::Xss
+ X11_Xt_INCLUDE_PATH, X11_Xt_LIB, X11_Xt_FOUND, X11::Xt
+ X11_Xutil_INCLUDE_PATH, X11_Xutil_FOUND, X11::Xutil
+ X11_Xv_INCLUDE_PATH, X11_Xv_LIB, X11_Xv_FOUND, X11::Xv
+ X11_dpms_INCLUDE_PATH, (in X11_Xext_LIB), X11_dpms_FOUND
+ X11_XShm_INCLUDE_PATH, (in X11_Xext_LIB), X11_XShm_FOUND
+ X11_Xshape_INCLUDE_PATH, (in X11_Xext_LIB), X11_Xshape_FOUND
+ X11_XSync_INCLUDE_PATH, (in X11_Xext_LIB), X11_XSync_FOUND
+#]=======================================================================]
+
+if (UNIX)
+ set(X11_FOUND 0)
+ # X11 is never a framework and some header files may be
+ # found in tcl on the mac
+ set(CMAKE_FIND_FRAMEWORK_SAVE ${CMAKE_FIND_FRAMEWORK})
+ set(CMAKE_FIND_FRAMEWORK NEVER)
+ set(CMAKE_REQUIRED_QUIET_SAVE ${CMAKE_REQUIRED_QUIET})
+ set(CMAKE_REQUIRED_QUIET ${X11_FIND_QUIETLY})
+ set(X11_INC_SEARCH_PATH
+ /usr/pkg/xorg/include
+ /usr/X11R6/include
+ /usr/X11R7/include
+ /usr/include/X11
+ /usr/openwin/include
+ /usr/openwin/share/include
+ /opt/graphics/OpenGL/include
+ /opt/X11/include
+ )
+
+ set(X11_LIB_SEARCH_PATH
+ /usr/pkg/xorg/lib
+ /usr/X11R6/lib
+ /usr/X11R7/lib
+ /usr/openwin/lib
+ /opt/X11/lib
+ )
+
+ find_path(X11_X11_INCLUDE_PATH X11/X.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xlib_INCLUDE_PATH X11/Xlib.h ${X11_INC_SEARCH_PATH})
+
+ # Look for includes; keep the list sorted by name of the cmake *_INCLUDE_PATH
+ # variable (which doesn't need to match the include file name).
+
+ # Solaris lacks XKBrules.h, so we should skip kxkbd there.
+ find_path(X11_ICE_INCLUDE_PATH X11/ICE/ICE.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_SM_INCLUDE_PATH X11/SM/SM.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xaccessrules_INCLUDE_PATH X11/extensions/XKBrules.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xaccessstr_INCLUDE_PATH X11/extensions/XKBstr.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xau_INCLUDE_PATH X11/Xauth.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_xcb_INCLUDE_PATH xcb/xcb.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_X11_xcb_INCLUDE_PATH X11/Xlib-xcb.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_xcb_icccm_INCLUDE_PATH xcb/xcb_icccm.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xcomposite_INCLUDE_PATH X11/extensions/Xcomposite.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xcursor_INCLUDE_PATH X11/Xcursor/Xcursor.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xdamage_INCLUDE_PATH X11/extensions/Xdamage.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xdmcp_INCLUDE_PATH X11/Xdmcp.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xext_INCLUDE_PATH X11/extensions/Xext.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_dpms_INCLUDE_PATH X11/extensions/dpms.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xxf86misc_INCLUDE_PATH X11/extensions/xf86misc.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xxf86vm_INCLUDE_PATH X11/extensions/xf86vmode.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xfixes_INCLUDE_PATH X11/extensions/Xfixes.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xft_INCLUDE_PATH X11/Xft/Xft.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xi_INCLUDE_PATH X11/extensions/XInput.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xinerama_INCLUDE_PATH X11/extensions/Xinerama.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xkb_INCLUDE_PATH X11/extensions/XKB.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_xkbcommon_INCLUDE_PATH xkbcommon/xkbcommon.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_xkbcommon_X11_INCLUDE_PATH xkbcommon/xkbcommon-x11.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xkblib_INCLUDE_PATH X11/XKBlib.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_xkbfile_INCLUDE_PATH X11/extensions/XKBfile.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xmu_INCLUDE_PATH X11/Xmu/Xmu.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xpm_INCLUDE_PATH X11/xpm.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xtst_INCLUDE_PATH X11/extensions/XTest.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_XShm_INCLUDE_PATH X11/extensions/XShm.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xrandr_INCLUDE_PATH X11/extensions/Xrandr.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xrender_INCLUDE_PATH X11/extensions/Xrender.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_XRes_INCLUDE_PATH X11/extensions/XRes.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xss_INCLUDE_PATH X11/extensions/scrnsaver.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xshape_INCLUDE_PATH X11/extensions/shape.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xutil_INCLUDE_PATH X11/Xutil.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xt_INCLUDE_PATH X11/Intrinsic.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_Xv_INCLUDE_PATH X11/extensions/Xvlib.h ${X11_INC_SEARCH_PATH})
+ find_path(X11_XSync_INCLUDE_PATH X11/extensions/sync.h ${X11_INC_SEARCH_PATH})
+
+ # Backwards compatibility.
+ set(X11_Xinput_INCLUDE_PATH "${X11_Xi_INCLUDE_PATH}")
+ set(X11_xf86misc_INCLUDE_PATH "${X11_Xxf86misc_INCLUDE_PATH}")
+ set(X11_xf86vmode_INCLUDE_PATH "${X11_Xxf8vm_INCLUDE_PATH}")
+ set(X11_Xkbfile_INCLUDE_PATH "${X11_xkbfile_INCLUDE_PATH}")
+ set(X11_XTest_INCLUDE_PATH "${X11_Xtst_INCLUDE_PATH}")
+ set(X11_Xscreensaver_INCLUDE_PATH "${X11_Xss_INCLUDE_PATH}")
+
+ find_library(X11_X11_LIB X11 ${X11_LIB_SEARCH_PATH})
+
+ # Find additional X libraries. Keep list sorted by library name.
+ find_library(X11_ICE_LIB ICE ${X11_LIB_SEARCH_PATH})
+ find_library(X11_SM_LIB SM ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xau_LIB Xau ${X11_LIB_SEARCH_PATH})
+ find_library(X11_xcb_LIB xcb ${X11_LIB_SEARCH_PATH})
+ find_library(X11_X11_xcb_LIB X11-xcb ${X11_LIB_SEARCH_PATH})
+ find_library(X11_xcb_icccm_LIB xcb-icccm ${X11_LIB_SEARCH_PATH})
+ find_library(X11_xcb_xkb_LIB xcb-xkb ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xcomposite_LIB Xcomposite ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xcursor_LIB Xcursor ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xdamage_LIB Xdamage ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xdmcp_LIB Xdmcp ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xext_LIB Xext ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xfixes_LIB Xfixes ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xft_LIB Xft ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xi_LIB Xi ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xinerama_LIB Xinerama ${X11_LIB_SEARCH_PATH})
+ find_library(X11_xkbcommon_LIB xkbcommon ${X11_LIB_SEARCH_PATH})
+ find_library(X11_xkbcommon_X11_LIB xkbcommon-x11 ${X11_LIB_SEARCH_PATH})
+ find_library(X11_xkbfile_LIB xkbfile ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xmu_LIB Xmu ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xpm_LIB Xpm ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xrandr_LIB Xrandr ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH})
+ find_library(X11_XRes_LIB XRes ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xss_LIB Xss ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xt_LIB Xt ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xtst_LIB Xtst ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xv_LIB Xv ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xxf86misc_LIB Xxf86misc ${X11_LIB_SEARCH_PATH})
+ find_library(X11_Xxf86vm_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
+
+ # Backwards compatibility.
+ set(X11_Xinput_LIB "${X11_Xi_LIB}")
+ set(X11_Xkbfile_LIB "${X11_xkbfile_LIB}")
+ set(X11_XTest_LIB "${X11_Xtst_LIB}")
+ set(X11_Xscreensaver_LIB "${X11_Xss_LIB}")
+
+ set(X11_LIBRARY_DIR "")
+ if(X11_X11_LIB)
+ get_filename_component(X11_LIBRARY_DIR ${X11_X11_LIB} PATH)
+ endif()
+
+ set(X11_INCLUDE_DIR) # start with empty list
+ if(X11_X11_INCLUDE_PATH)
+ list(APPEND X11_INCLUDE_DIR ${X11_X11_INCLUDE_PATH})
+ endif()
+
+ if(X11_Xlib_INCLUDE_PATH)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xlib_INCLUDE_PATH})
+ endif()
+
+ if(X11_Xutil_INCLUDE_PATH)
+ set(X11_Xutil_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xutil_INCLUDE_PATH})
+ endif()
+
+ if(X11_Xshape_INCLUDE_PATH)
+ set(X11_Xshape_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xshape_INCLUDE_PATH})
+ endif()
+
+ set(X11_LIBRARIES) # start with empty list
+ if(X11_X11_LIB)
+ list(APPEND X11_LIBRARIES ${X11_X11_LIB})
+ endif()
+
+ if(X11_Xext_LIB)
+ set(X11_Xext_FOUND TRUE)
+ list(APPEND X11_LIBRARIES ${X11_Xext_LIB})
+ endif()
+
+ if(X11_Xt_LIB AND X11_Xt_INCLUDE_PATH)
+ set(X11_Xt_FOUND TRUE)
+ endif()
+
+ if(X11_Xft_LIB AND X11_Xft_INCLUDE_PATH)
+ find_package(Freetype QUIET)
+ find_package(Fontconfig QUIET)
+ if (FREETYPE_FOUND AND Fontconfig_FOUND)
+ set(X11_Xft_FOUND TRUE)
+ endif ()
+ list(APPEND X11_INCLUDE_DIR ${X11_Xft_INCLUDE_PATH})
+ endif()
+
+ if(X11_Xv_LIB AND X11_Xv_INCLUDE_PATH)
+ set(X11_Xv_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xv_INCLUDE_PATH})
+ endif()
+
+ if (X11_Xau_LIB AND X11_Xau_INCLUDE_PATH)
+ set(X11_Xau_FOUND TRUE)
+ endif ()
+
+ if (X11_xcb_LIB AND X11_xcb_INCLUDE_PATH)
+ set(X11_xcb_FOUND TRUE)
+ endif ()
+
+ if (X11_X11_xcb_LIB AND X11_X11_xcb_INCLUDE_PATH)
+ set(X11_X11_xcb_FOUND TRUE)
+ endif ()
+
+ if (X11_xcb_icccm_LIB AND X11_xcb_icccm_INCLUDE_PATH)
+ set(X11_xcb_icccm_FOUND TRUE)
+ endif ()
+
+ if (X11_xcb_xkb_LIB)
+ set(X11_xcb_xkb_FOUND TRUE)
+ endif ()
+
+ if (X11_Xdmcp_INCLUDE_PATH AND X11_Xdmcp_LIB)
+ set(X11_Xdmcp_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xdmcp_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xaccessrules_INCLUDE_PATH AND X11_Xaccessstr_INCLUDE_PATH)
+ set(X11_Xaccess_FOUND TRUE)
+ set(X11_Xaccess_INCLUDE_PATH ${X11_Xaccessstr_INCLUDE_PATH})
+ list(APPEND X11_INCLUDE_DIR ${X11_Xaccess_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xpm_INCLUDE_PATH AND X11_Xpm_LIB)
+ set(X11_Xpm_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xpm_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xcomposite_INCLUDE_PATH AND X11_Xcomposite_LIB)
+ set(X11_Xcomposite_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xcomposite_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xdamage_INCLUDE_PATH AND X11_Xdamage_LIB)
+ set(X11_Xdamage_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xdamage_INCLUDE_PATH})
+ endif ()
+
+ if (X11_XShm_INCLUDE_PATH)
+ set(X11_XShm_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_XShm_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xtst_INCLUDE_PATH AND X11_Xtst_LIB)
+ set(X11_Xtst_FOUND TRUE)
+ # Backwards compatibility.
+ set(X11_XTest_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xtst_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xi_INCLUDE_PATH AND X11_Xi_LIB)
+ set(X11_Xi_FOUND TRUE)
+ # Backwards compatibility.
+ set(X11_Xinput_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xi_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xinerama_INCLUDE_PATH AND X11_Xinerama_LIB)
+ set(X11_Xinerama_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xinerama_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xfixes_INCLUDE_PATH AND X11_Xfixes_LIB)
+ set(X11_Xfixes_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xfixes_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xrender_INCLUDE_PATH AND X11_Xrender_LIB)
+ set(X11_Xrender_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xrender_INCLUDE_PATH})
+ endif ()
+
+ if (X11_XRes_INCLUDE_PATH AND X11_XRes_LIB)
+ set(X11_XRes_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_XRes_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xrandr_INCLUDE_PATH AND X11_Xrandr_LIB)
+ set(X11_Xrandr_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xrandr_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xxf86misc_INCLUDE_PATH AND X11_Xxf86misc_LIB)
+ set(X11_Xxf86misc_FOUND TRUE)
+ # Backwards compatibility.
+ set(X11_xf86misc_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xxf86misc_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xxf86vm_INCLUDE_PATH AND X11_Xxf86vm_LIB)
+ set(X11_Xxf86vm_FOUND TRUE)
+ # Backwards compatibility.
+ set(X11_xf86vmode_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xxf86vm_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xcursor_INCLUDE_PATH AND X11_Xcursor_LIB)
+ set(X11_Xcursor_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xcursor_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xss_INCLUDE_PATH AND X11_Xss_LIB)
+ set(X11_Xss_FOUND TRUE)
+ set(X11_Xscreensaver_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xss_INCLUDE_PATH})
+ endif ()
+
+ if (X11_dpms_INCLUDE_PATH)
+ set(X11_dpms_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_dpms_INCLUDE_PATH})
+ endif ()
+
+ if (X11_Xkb_INCLUDE_PATH AND X11_Xkblib_INCLUDE_PATH AND X11_Xlib_INCLUDE_PATH)
+ set(X11_Xkb_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xkb_INCLUDE_PATH} )
+ endif ()
+
+ if (X11_xkbcommon_INCLUDE_PATH AND X11_xkbcommon_LIB)
+ set(X11_xkbcommon_FOUND TRUE)
+ endif ()
+
+ if (X11_xkbcommon_X11_INCLUDE_PATH AND X11_xkbcommon_X11_LIB)
+ set(X11_xkbcommon_X11_FOUND TRUE)
+ endif ()
+
+ if (X11_xkbfile_INCLUDE_PATH AND X11_xkbfile_LIB AND X11_Xlib_INCLUDE_PATH)
+ set(X11_xkbfile_FOUND TRUE)
+ # Backwards compatibility.
+ set(X11_Xkbfile_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_xkbfile_INCLUDE_PATH} )
+ endif ()
+
+ if (X11_Xmu_INCLUDE_PATH AND X11_Xmu_LIB)
+ set(X11_Xmu_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_Xmu_INCLUDE_PATH})
+ endif ()
+
+ if (X11_XSync_INCLUDE_PATH)
+ set(X11_XSync_FOUND TRUE)
+ list(APPEND X11_INCLUDE_DIR ${X11_XSync_INCLUDE_PATH})
+ endif ()
+
+ if(X11_ICE_LIB AND X11_ICE_INCLUDE_PATH)
+ set(X11_ICE_FOUND TRUE)
+ endif()
+
+ if(X11_SM_LIB AND X11_SM_INCLUDE_PATH)
+ set(X11_SM_FOUND TRUE)
+ endif()
+
+ # Most of the X11 headers will be in the same directories, avoid
+ # creating a huge list of duplicates.
+ if (X11_INCLUDE_DIR)
+ list(REMOVE_DUPLICATES X11_INCLUDE_DIR)
+ endif ()
+
+ # Deprecated variable for backwards compatibility with CMake 1.4
+ if (X11_X11_INCLUDE_PATH AND X11_LIBRARIES)
+ set(X11_FOUND 1)
+ endif ()
+
+ include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+ find_package_handle_standard_args(X11
+ REQUIRED_VARS X11_X11_INCLUDE_PATH X11_X11_LIB
+ HANDLE_COMPONENTS)
+
+ if(X11_FOUND)
+ include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake)
+ include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake)
+
+ # Translated from an autoconf-generated configure script.
+ # See libs.m4 in autoconf's m4 directory.
+ if($ENV{ISC} MATCHES "^yes$")
+ set(X11_X_EXTRA_LIBS -lnsl_s -linet)
+ else()
+ set(X11_X_EXTRA_LIBS "")
+
+ # See if XOpenDisplay in X11 works by itself.
+ check_library_exists("${X11_LIBRARIES}" "XOpenDisplay" "${X11_LIBRARY_DIR}" X11_LIB_X11_SOLO)
+ if(NOT X11_LIB_X11_SOLO)
+ # Find library needed for dnet_ntoa.
+ check_library_exists("dnet" "dnet_ntoa" "" X11_LIB_DNET_HAS_DNET_NTOA)
+ if (X11_LIB_DNET_HAS_DNET_NTOA)
+ list(APPEND X11_X_EXTRA_LIBS -ldnet)
+ else ()
+ check_library_exists("dnet_stub" "dnet_ntoa" "" X11_LIB_DNET_STUB_HAS_DNET_NTOA)
+ if (X11_LIB_DNET_STUB_HAS_DNET_NTOA)
+ list(APPEND X11_X_EXTRA_LIBS -ldnet_stub)
+ endif ()
+ endif ()
+ endif()
+
+ # Find library needed for gethostbyname.
+ check_function_exists("gethostbyname" CMAKE_HAVE_GETHOSTBYNAME)
+ if(NOT CMAKE_HAVE_GETHOSTBYNAME)
+ check_library_exists("nsl" "gethostbyname" "" CMAKE_LIB_NSL_HAS_GETHOSTBYNAME)
+ if (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME)
+ list(APPEND X11_X_EXTRA_LIBS -lnsl)
+ else ()
+ check_library_exists("bsd" "gethostbyname" "" CMAKE_LIB_BSD_HAS_GETHOSTBYNAME)
+ if (CMAKE_LIB_BSD_HAS_GETHOSTBYNAME)
+ list(APPEND X11_X_EXTRA_LIBS -lbsd)
+ endif ()
+ endif ()
+ endif()
+
+ # Find library needed for connect.
+ check_function_exists("connect" CMAKE_HAVE_CONNECT)
+ if(NOT CMAKE_HAVE_CONNECT)
+ check_library_exists("socket" "connect" "" CMAKE_LIB_SOCKET_HAS_CONNECT)
+ if (CMAKE_LIB_SOCKET_HAS_CONNECT)
+ list(INSERT X11_X_EXTRA_LIBS 0 -lsocket)
+ endif ()
+ endif()
+
+ # Find library needed for remove.
+ check_function_exists("remove" CMAKE_HAVE_REMOVE)
+ if(NOT CMAKE_HAVE_REMOVE)
+ check_library_exists("posix" "remove" "" CMAKE_LIB_POSIX_HAS_REMOVE)
+ if (CMAKE_LIB_POSIX_HAS_REMOVE)
+ list(APPEND X11_X_EXTRA_LIBS -lposix)
+ endif ()
+ endif()
+
+ # Find library needed for shmat.
+ check_function_exists("shmat" CMAKE_HAVE_SHMAT)
+ if(NOT CMAKE_HAVE_SHMAT)
+ check_library_exists("ipc" "shmat" "" CMAKE_LIB_IPS_HAS_SHMAT)
+ if (CMAKE_LIB_IPS_HAS_SHMAT)
+ list(APPEND X11_X_EXTRA_LIBS -lipc)
+ endif ()
+ endif()
+ endif()
+
+ if (X11_ICE_FOUND)
+ check_library_exists("ICE" "IceConnectionNumber" "${X11_LIBRARY_DIR}"
+ CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER)
+ if(CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER)
+ set (X11_X_PRE_LIBS ${X11_ICE_LIB})
+ if(X11_SM_LIB)
+ list(INSERT X11_X_PRE_LIBS 0 ${X11_SM_LIB})
+ endif()
+ endif()
+ endif ()
+
+ # Build the final list of libraries.
+ set(X11_LIBRARIES ${X11_X_PRE_LIBS} ${X11_LIBRARIES} ${X11_X_EXTRA_LIBS})
+
+ if (NOT TARGET X11::X11)
+ add_library(X11::X11 UNKNOWN IMPORTED)
+ set_target_properties(X11::X11 PROPERTIES
+ IMPORTED_LOCATION "${X11_X11_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_X11_INCLUDE_PATH}")
+ endif ()
+ endif ()
+
+ if (X11_ICE_FOUND AND NOT TARGET X11::ICE)
+ add_library(X11::ICE UNKNOWN IMPORTED)
+ set_target_properties(X11::ICE PROPERTIES
+ IMPORTED_LOCATION "${X11_ICE_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_ICE_INCLUDE_PATH}")
+ endif ()
+
+ if (X11_SM_FOUND AND NOT TARGET X11::SM)
+ add_library(X11::SM UNKNOWN IMPORTED)
+ set_target_properties(X11::SM PROPERTIES
+ IMPORTED_LOCATION "${X11_SM_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_SM_INCLUDE_PATH}")
+ endif ()
+
+ if (X11_Xau_FOUND AND NOT TARGET X11::Xau)
+ add_library(X11::Xau UNKNOWN IMPORTED)
+ set_target_properties(X11::Xau PROPERTIES
+ IMPORTED_LOCATION "${X11_Xau_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xau_INCLUDE_PATH}")
+ endif ()
+
+ if (X11_xcb_FOUND AND NOT TARGET X11::xcb)
+ add_library(X11::xcb UNKNOWN IMPORTED)
+ set_target_properties(X11::xcb PROPERTIES
+ IMPORTED_LOCATION "${X11_xcb_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_xcb_INCLUDE_PATH}")
+ endif ()
+
+ if (X11_X11_xcb_FOUND AND NOT TARGET X11::X11_xcb)
+ add_library(X11::X11_xcb UNKNOWN IMPORTED)
+ set_target_properties(X11::X11_xcb PROPERTIES
+ IMPORTED_LOCATION "${X11_X11_xcb_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_X11_xcb_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::xcb;X11::X11")
+ endif ()
+
+ if (X11_xcb_icccm_FOUND AND NOT TARGET X11::xcb_icccm)
+ add_library(X11::xcb_icccm UNKNOWN IMPORTED)
+ set_target_properties(X11::xcb_icccm PROPERTIES
+ IMPORTED_LOCATION "${X11_xcb_icccm_LIB}"
+ INTERFACE_LINK_LIBRARIES "X11::xcb")
+ endif ()
+
+ if (X11_xcb_xkb_FOUND AND NOT TARGET X11::xcb_xkb)
+ add_library(X11::xcb_xkb UNKNOWN IMPORTED)
+ set_target_properties(X11::xcb_xkb PROPERTIES
+ IMPORTED_LOCATION "${X11_xcb_xkb_LIB}"
+ INTERFACE_LINK_LIBRARIES "X11::xcb")
+ endif ()
+
+ if (X11_Xcomposite_FOUND AND NOT TARGET X11::Xcomposite)
+ add_library(X11::Xcomposite UNKNOWN IMPORTED)
+ set_target_properties(X11::Xcomposite PROPERTIES
+ IMPORTED_LOCATION "${X11_Xcomposite_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xcomposite_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11")
+ endif ()
+
+ if (X11_Xcursor_FOUND AND NOT TARGET X11::Xcursor)
+ add_library(X11::Xcursor UNKNOWN IMPORTED)
+ set_target_properties(X11::Xcursor PROPERTIES
+ IMPORTED_LOCATION "${X11_Xcursor_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xcursor_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::Xfixes;X11::X11")
+ endif ()
+
+ if (X11_Xdamage_FOUND AND NOT TARGET X11::Xdamage)
+ add_library(X11::Xdamage UNKNOWN IMPORTED)
+ set_target_properties(X11::Xdamage PROPERTIES
+ IMPORTED_LOCATION "${X11_Xdamage_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xdamage_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xfixes;X11::X11")
+ endif ()
+
+ if (X11_Xdmcp_FOUND AND NOT TARGET X11::Xdmcp)
+ add_library(X11::Xdmcp UNKNOWN IMPORTED)
+ set_target_properties(X11::Xdmcp PROPERTIES
+ IMPORTED_LOCATION "${X11_Xdmcp_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xdmcp_INCLUDE_PATH}")
+ endif ()
+
+ if (X11_Xext_FOUND AND NOT TARGET X11::Xext)
+ add_library(X11::Xext UNKNOWN IMPORTED)
+ set_target_properties(X11::Xext PROPERTIES
+ IMPORTED_LOCATION "${X11_Xext_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xext_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11")
+ endif ()
+
+ if (X11_Xxf86misc_FOUND AND NOT TARGET X11::Xxf86misc)
+ add_library(X11::Xxf86misc UNKNOWN IMPORTED)
+ set_target_properties(X11::Xxf86misc PROPERTIES
+ IMPORTED_LOCATION "${X11_Xxf86misc_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xxf86misc_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11;X11::Xext")
+ endif ()
+
+ if (X11_Xxf86vm_FOUND AND NOT TARGET X11::Xxf86vm)
+ add_library(X11::Xxf86vm UNKNOWN IMPORTED)
+ set_target_properties(X11::Xxf86vm PROPERTIES
+ IMPORTED_LOCATION "${X11_Xxf86vm_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xxf86vm_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11;X11::Xext")
+ endif ()
+
+ if (X11_Xfixes_FOUND AND NOT TARGET X11::Xfixes)
+ add_library(X11::Xfixes UNKNOWN IMPORTED)
+ set_target_properties(X11::Xfixes PROPERTIES
+ IMPORTED_LOCATION "${X11_Xfixes_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xfixes_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11")
+ endif ()
+
+ if (X11_Xft_FOUND AND NOT TARGET X11::Xft)
+ add_library(X11::Xft UNKNOWN IMPORTED)
+ set_target_properties(X11::Xft PROPERTIES
+ IMPORTED_LOCATION "${X11_Xft_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xft_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::X11;Fontconfig::Fontconfig;Freetype::Freetype")
+ endif ()
+
+ if (X11_Xi_FOUND AND NOT TARGET X11::Xi)
+ add_library(X11::Xi UNKNOWN IMPORTED)
+ set_target_properties(X11::Xi PROPERTIES
+ IMPORTED_LOCATION "${X11_Xi_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xi_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
+ endif ()
+
+ if (X11_Xinerama_FOUND AND NOT TARGET X11::Xinerama)
+ add_library(X11::Xinerama UNKNOWN IMPORTED)
+ set_target_properties(X11::Xinerama PROPERTIES
+ IMPORTED_LOCATION "${X11_Xinerama_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xinerama_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
+ endif ()
+
+ if (X11_Xkb_FOUND AND NOT TARGET X11::Xkb)
+ add_library(X11::Xkb INTERFACE IMPORTED)
+ set_target_properties(X11::Xkb PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xkb_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11")
+ endif ()
+
+ if (X11_xkbcommon_FOUND AND NOT TARGET X11::xkbcommon)
+ add_library(X11::xkbcommon UNKNOWN IMPORTED)
+ set_target_properties(X11::xkbcommon PROPERTIES
+ IMPORTED_LOCATION "${X11_xkbcommon_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_xkbcommon_INCLUDE_PATH}")
+ endif ()
+
+ if (X11_xkbcommon_X11_FOUND AND NOT TARGET X11::xkbcommon_X11)
+ add_library(X11::xkbcommon_X11 UNKNOWN IMPORTED)
+ set_target_properties(X11::xkbcommon_X11 PROPERTIES
+ IMPORTED_LOCATION "${X11_xkbcommon_X11_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_xkbcommon_X11_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11;X11::xkbcommon")
+ endif ()
+
+ if (X11_xkbfile_FOUND AND NOT TARGET X11::xkbfile)
+ add_library(X11::xkbfile UNKNOWN IMPORTED)
+ set_target_properties(X11::xkbfile PROPERTIES
+ IMPORTED_LOCATION "${X11_xkbfile_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_xkbfile_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11")
+ endif ()
+
+ if (X11_Xmu_FOUND AND NOT TARGET X11::Xmu)
+ add_library(X11::Xmu UNKNOWN IMPORTED)
+ set_target_properties(X11::Xmu PROPERTIES
+ IMPORTED_LOCATION "${X11_Xmu_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xmu_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xt;X11::Xext;X11::X11")
+ endif ()
+
+ if (X11_Xpm_FOUND AND NOT TARGET X11::Xpm)
+ add_library(X11::Xpm UNKNOWN IMPORTED)
+ set_target_properties(X11::Xpm PROPERTIES
+ IMPORTED_LOCATION "${X11_Xpm_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xpm_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11")
+ endif ()
+
+ if (X11_Xtst_FOUND AND NOT TARGET X11::Xtst)
+ add_library(X11::Xtst UNKNOWN IMPORTED)
+ set_target_properties(X11::Xtst PROPERTIES
+ IMPORTED_LOCATION "${X11_Xtst_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xtst_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xi;X11::Xext;X11::X11")
+ endif ()
+
+ if (X11_Xrandr_FOUND AND NOT TARGET X11::Xrandr)
+ add_library(X11::Xrandr UNKNOWN IMPORTED)
+ set_target_properties(X11::Xrandr PROPERTIES
+ IMPORTED_LOCATION "${X11_Xrandr_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xrandr_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xrender;X11::Xext;X11::X11")
+ endif ()
+
+ if (X11_Xrender_FOUND AND NOT TARGET X11::Xrender)
+ add_library(X11::Xrender UNKNOWN IMPORTED)
+ set_target_properties(X11::Xrender PROPERTIES
+ IMPORTED_LOCATION "${X11_Xrender_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xrender_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::X11")
+ endif ()
+
+ if (X11_XRes_FOUND AND NOT TARGET X11::XRes)
+ add_library(X11::XRes UNKNOWN IMPORTED)
+ set_target_properties(X11::XRes PROPERTIES
+ IMPORTED_LOCATION "${X11_XRes_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_XRes_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
+ endif ()
+
+ if (X11_Xss_FOUND AND NOT TARGET X11::Xss)
+ add_library(X11::Xss UNKNOWN IMPORTED)
+ set_target_properties(X11::Xss PROPERTIES
+ IMPORTED_LOCATION "${X11_Xss_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xss_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
+ endif ()
+
+ if (X11_Xt_FOUND AND NOT TARGET X11::Xt)
+ add_library(X11::Xt UNKNOWN IMPORTED)
+ set_target_properties(X11::Xt PROPERTIES
+ IMPORTED_LOCATION "${X11_Xt_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xt_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::ICE;X11::SM;X11::X11")
+ endif ()
+
+ if (X11_Xutil_FOUND AND NOT TARGET X11::Xutil)
+ add_library(X11::Xutil INTERFACE IMPORTED)
+ set_target_properties(X11::Xutil PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xutil_INCLUDE_PATH}"
+ # libX11 contains the implementations for functions in the Xutil.h
+ # header.
+ INTERFACE_LINK_LIBRARIES "X11::X11")
+ endif ()
+
+ if (X11_Xv_FOUND AND NOT TARGET X11::Xv)
+ add_library(X11::Xv UNKNOWN IMPORTED)
+ set_target_properties(X11::Xv PROPERTIES
+ IMPORTED_LOCATION "${X11_Xv_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES "${X11_Xv_INCLUDE_PATH}"
+ INTERFACE_LINK_LIBRARIES "X11::Xext;X11::X11")
+ endif ()
+
+ mark_as_advanced(
+ X11_X11_INCLUDE_PATH
+ X11_X11_LIB
+ X11_Xext_INCLUDE_PATH
+ X11_Xext_LIB
+ X11_Xau_LIB
+ X11_Xau_INCLUDE_PATH
+ X11_xcb_LIB
+ X11_xcb_INCLUDE_PATH
+ X11_xcb_xkb_LIB
+ X11_X11_xcb_LIB
+ X11_X11_xcb_INCLUDE_PATH
+ X11_Xlib_INCLUDE_PATH
+ X11_Xutil_INCLUDE_PATH
+ X11_Xcomposite_INCLUDE_PATH
+ X11_Xcomposite_LIB
+ X11_Xfixes_LIB
+ X11_Xfixes_INCLUDE_PATH
+ X11_Xrandr_LIB
+ X11_Xrandr_INCLUDE_PATH
+ X11_Xdamage_LIB
+ X11_Xdamage_INCLUDE_PATH
+ X11_Xrender_LIB
+ X11_Xrender_INCLUDE_PATH
+ X11_XRes_LIB
+ X11_XRes_INCLUDE_PATH
+ X11_Xxf86misc_LIB
+ X11_Xxf86misc_INCLUDE_PATH
+ X11_Xxf86vm_LIB
+ X11_Xxf86vm_INCLUDE_PATH
+ X11_Xi_LIB
+ X11_Xi_INCLUDE_PATH
+ X11_Xinerama_LIB
+ X11_Xinerama_INCLUDE_PATH
+ X11_Xtst_LIB
+ X11_Xtst_INCLUDE_PATH
+ X11_Xcursor_LIB
+ X11_Xcursor_INCLUDE_PATH
+ X11_dpms_INCLUDE_PATH
+ X11_Xt_LIB
+ X11_Xt_INCLUDE_PATH
+ X11_Xdmcp_LIB
+ X11_LIBRARIES
+ X11_Xaccessrules_INCLUDE_PATH
+ X11_Xaccessstr_INCLUDE_PATH
+ X11_Xdmcp_INCLUDE_PATH
+ X11_Xkb_INCLUDE_PATH
+ X11_Xkblib_INCLUDE_PATH
+ X11_xkbcommon_INCLUDE_PATH
+ X11_xkbcommon_LIB
+ X11_xkbcommon_X11_INCLUDE_PATH
+ X11_xkbcommon_X11_LIB
+ X11_xkbfile_INCLUDE_PATH
+ X11_xkbfile_LIB
+ X11_Xmu_INCLUDE_PATH
+ X11_Xmu_LIB
+ X11_Xss_INCLUDE_PATH
+ X11_Xss_LIB
+ X11_Xpm_INCLUDE_PATH
+ X11_Xpm_LIB
+ X11_Xft_LIB
+ X11_Xft_INCLUDE_PATH
+ X11_Xshape_INCLUDE_PATH
+ X11_Xv_LIB
+ X11_Xv_INCLUDE_PATH
+ X11_XShm_INCLUDE_PATH
+ X11_ICE_LIB
+ X11_ICE_INCLUDE_PATH
+ X11_SM_LIB
+ X11_SM_INCLUDE_PATH
+ X11_XSync_INCLUDE_PATH
+ )
+ set(CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_SAVE})
+ set(CMAKE_REQUIRED_QUIET ${CMAKE_REQUIRED_QUIET_SAVE})
+endif ()
diff --git a/share/cmake-3.17/Modules/FindXCTest.cmake b/share/cmake-3.18/Modules/FindXCTest.cmake
index 15721e1..15721e1 100644
--- a/share/cmake-3.17/Modules/FindXCTest.cmake
+++ b/share/cmake-3.18/Modules/FindXCTest.cmake
diff --git a/share/cmake-3.17/Modules/FindXMLRPC.cmake b/share/cmake-3.18/Modules/FindXMLRPC.cmake
index 69e6df2..69e6df2 100644
--- a/share/cmake-3.17/Modules/FindXMLRPC.cmake
+++ b/share/cmake-3.18/Modules/FindXMLRPC.cmake
diff --git a/share/cmake-3.18/Modules/FindXalanC.cmake b/share/cmake-3.18/Modules/FindXalanC.cmake
new file mode 100644
index 0000000..54783e3
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindXalanC.cmake
@@ -0,0 +1,153 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindXalanC
+-----------
+
+Find the Apache Xalan-C++ XSL transform processor headers and libraries.
+
+Imported targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` targets:
+
+``XalanC::XalanC``
+ The Xalan-C++ ``xalan-c`` library, if found.
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``XalanC_FOUND``
+ true if the Xalan headers and libraries were found
+``XalanC_VERSION``
+ Xalan release version
+``XalanC_INCLUDE_DIRS``
+ the directory containing the Xalan headers; note
+ ``XercesC_INCLUDE_DIRS`` is also required
+``XalanC_LIBRARIES``
+ Xalan libraries to be linked; note ``XercesC_LIBRARIES`` is also
+ required
+
+Cache variables
+^^^^^^^^^^^^^^^
+
+The following cache variables may also be set:
+
+``XalanC_INCLUDE_DIR``
+ the directory containing the Xalan headers
+``XalanC_LIBRARY``
+ the Xalan library
+#]=======================================================================]
+
+# Written by Roger Leigh <rleigh@codelibre.net>
+
+function(_XalanC_GET_VERSION version_hdr)
+ file(STRINGS ${version_hdr} _contents REGEX "^[ \t]*#define XALAN_VERSION_.*")
+ if(_contents)
+ string(REGEX REPLACE "[^*]*#define XALAN_VERSION_MAJOR[ \t(]+([0-9]+).*" "\\1" XalanC_MAJOR "${_contents}")
+ string(REGEX REPLACE "[^*]*#define XALAN_VERSION_MINOR[ \t(]+([0-9]+).*" "\\1" XalanC_MINOR "${_contents}")
+ string(REGEX REPLACE "[^*]*#define XALAN_VERSION_REVISION[ \t(]+([0-9]+).*" "\\1" XalanC_PATCH "${_contents}")
+
+ if(NOT XalanC_MAJOR MATCHES "^[0-9]+$")
+ message(FATAL_ERROR "Version parsing failed for XALAN_VERSION_MAJOR!")
+ endif()
+ if(NOT XalanC_MINOR MATCHES "^[0-9]+$")
+ message(FATAL_ERROR "Version parsing failed for XALAN_VERSION_MINOR!")
+ endif()
+ if(NOT XalanC_PATCH MATCHES "^[0-9]+$")
+ message(FATAL_ERROR "Version parsing failed for XALAN_VERSION_REVISION!")
+ endif()
+
+ set(XalanC_VERSION "${XalanC_MAJOR}.${XalanC_MINOR}.${XalanC_PATCH}" PARENT_SCOPE)
+ set(XalanC_VERSION_MAJOR "${XalanC_MAJOR}" PARENT_SCOPE)
+ set(XalanC_VERSION_MINOR "${XalanC_MINOR}" PARENT_SCOPE)
+ set(XalanC_VERSION_PATCH "${XalanC_PATCH}" PARENT_SCOPE)
+ else()
+ message(FATAL_ERROR "Include file ${version_hdr} does not exist or does not contain expected version information")
+ endif()
+endfunction()
+
+# Find include directory
+find_path(XalanC_INCLUDE_DIR
+ NAMES "xalanc/XalanTransformer/XalanTransformer.hpp"
+ DOC "Xalan-C++ include directory")
+mark_as_advanced(XalanC_INCLUDE_DIR)
+
+if(XalanC_INCLUDE_DIR AND EXISTS "${XalanC_INCLUDE_DIR}/xalanc/Include/XalanVersion.hpp")
+ _XalanC_GET_VERSION("${XalanC_INCLUDE_DIR}/xalanc/Include/XalanVersion.hpp")
+endif()
+
+if(NOT XalanC_LIBRARY)
+ # Find all XalanC libraries
+ find_library(XalanC_LIBRARY_RELEASE
+ NAMES "Xalan-C" "xalan-c"
+ "Xalan-C_${XalanC_VERSION_MAJOR}"
+ "Xalan-C_${XalanC_VERSION_MAJOR}_${XalanC_VERSION_MINOR}"
+ DOC "Xalan-C++ libraries (release)")
+ find_library(XalanC_LIBRARY_DEBUG
+ NAMES "Xalan-CD" "xalan-cd"
+ "Xalan-C_${XalanC_VERSION_MAJOR}D"
+ "Xalan-C_${XalanC_VERSION_MAJOR}_${XalanC_VERSION_MINOR}D"
+ DOC "Xalan-C++ libraries (debug)")
+ include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+ select_library_configurations(XalanC)
+ mark_as_advanced(XalanC_LIBRARY_RELEASE XalanC_LIBRARY_DEBUG)
+endif()
+
+unset(XalanC_VERSION_MAJOR)
+unset(XalanC_VERSION_MINOR)
+unset(XalanC_VERSION_PATCH)
+
+unset(XalanC_XERCESC_REQUIRED)
+if(XalanC_FIND_REQUIRED)
+ set(XalanC_XERCESC_REQUIRED REQUIRED)
+endif()
+find_package(XercesC ${XalanC_XERCESC_REQUIRED})
+unset(XalanC_XERCESC_REQUIRED)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(XalanC
+ FOUND_VAR XalanC_FOUND
+ REQUIRED_VARS XalanC_LIBRARY
+ XalanC_INCLUDE_DIR
+ XalanC_VERSION
+ XercesC_FOUND
+ VERSION_VAR XalanC_VERSION
+ FAIL_MESSAGE "Failed to find XalanC")
+
+if(XalanC_FOUND)
+ set(XalanC_INCLUDE_DIRS "${XalanC_INCLUDE_DIR}" ${XercesC_INCLUDE_DIRS})
+ set(XalanC_LIBRARIES "${XalanC_LIBRARY}" ${XercesC_LIBRARIES})
+
+ # For header-only libraries
+ if(NOT TARGET XalanC::XalanC)
+ add_library(XalanC::XalanC UNKNOWN IMPORTED)
+ if(XalanC_INCLUDE_DIRS)
+ set_target_properties(XalanC::XalanC PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${XalanC_INCLUDE_DIRS}")
+ endif()
+ if(EXISTS "${XalanC_LIBRARY}")
+ set_target_properties(XalanC::XalanC PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+ IMPORTED_LOCATION "${XalanC_LIBRARY}")
+ endif()
+ if(EXISTS "${XalanC_LIBRARY_RELEASE}")
+ set_property(TARGET XalanC::XalanC APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(XalanC::XalanC PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
+ IMPORTED_LOCATION_RELEASE "${XalanC_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${XalanC_LIBRARY_DEBUG}")
+ set_property(TARGET XalanC::XalanC APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(XalanC::XalanC PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
+ IMPORTED_LOCATION_DEBUG "${XalanC_LIBRARY_DEBUG}")
+ endif()
+ set_target_properties(XalanC::XalanC PROPERTIES INTERFACE_LINK_LIBRARIES XercesC::XercesC)
+ endif()
+endif()
diff --git a/share/cmake-3.18/Modules/FindXercesC.cmake b/share/cmake-3.18/Modules/FindXercesC.cmake
new file mode 100644
index 0000000..db78b61
--- /dev/null
+++ b/share/cmake-3.18/Modules/FindXercesC.cmake
@@ -0,0 +1,142 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindXercesC
+-----------
+
+Find the Apache Xerces-C++ validating XML parser headers and libraries.
+
+Imported targets
+^^^^^^^^^^^^^^^^
+
+This module defines the following :prop_tgt:`IMPORTED` targets:
+
+``XercesC::XercesC``
+ The Xerces-C++ ``xerces-c`` library, if found.
+
+Result variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``XercesC_FOUND``
+ true if the Xerces headers and libraries were found
+``XercesC_VERSION``
+ Xerces release version
+``XercesC_INCLUDE_DIRS``
+ the directory containing the Xerces headers
+``XercesC_LIBRARIES``
+ Xerces libraries to be linked
+
+Cache variables
+^^^^^^^^^^^^^^^
+
+The following cache variables may also be set:
+
+``XercesC_INCLUDE_DIR``
+ the directory containing the Xerces headers
+``XercesC_LIBRARY``
+ the Xerces library
+#]=======================================================================]
+
+# Written by Roger Leigh <rleigh@codelibre.net>
+
+function(_XercesC_GET_VERSION version_hdr)
+ file(STRINGS ${version_hdr} _contents REGEX "^[ \t]*#define XERCES_VERSION_.*")
+ if(_contents)
+ string(REGEX REPLACE ".*#define XERCES_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" XercesC_MAJOR "${_contents}")
+ string(REGEX REPLACE ".*#define XERCES_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" XercesC_MINOR "${_contents}")
+ string(REGEX REPLACE ".*#define XERCES_VERSION_REVISION[ \t]+([0-9]+).*" "\\1" XercesC_PATCH "${_contents}")
+
+ if(NOT XercesC_MAJOR MATCHES "^[0-9]+$")
+ message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MAJOR!")
+ endif()
+ if(NOT XercesC_MINOR MATCHES "^[0-9]+$")
+ message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MINOR!")
+ endif()
+ if(NOT XercesC_PATCH MATCHES "^[0-9]+$")
+ message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_REVISION!")
+ endif()
+
+ set(XercesC_VERSION "${XercesC_MAJOR}.${XercesC_MINOR}.${XercesC_PATCH}" PARENT_SCOPE)
+ set(XercesC_VERSION_MAJOR "${XercesC_MAJOR}" PARENT_SCOPE)
+ set(XercesC_VERSION_MINOR "${XercesC_MINOR}" PARENT_SCOPE)
+ set(XercesC_VERSION_PATCH "${XercesC_PATCH}" PARENT_SCOPE)
+ else()
+ message(FATAL_ERROR "Include file ${version_hdr} does not exist or does not contain expected version information")
+ endif()
+endfunction()
+
+# Find include directory
+find_path(XercesC_INCLUDE_DIR
+ NAMES "xercesc/util/PlatformUtils.hpp"
+ DOC "Xerces-C++ include directory")
+mark_as_advanced(XercesC_INCLUDE_DIR)
+
+if(XercesC_INCLUDE_DIR AND EXISTS "${XercesC_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp")
+ _XercesC_GET_VERSION("${XercesC_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp")
+endif()
+
+if(NOT XercesC_LIBRARY)
+ # Find all XercesC libraries
+ find_library(XercesC_LIBRARY_RELEASE
+ NAMES "xerces-c"
+ "xerces-c_${XercesC_VERSION_MAJOR}"
+ "xerces-c-${XercesC_VERSION_MAJOR}.${XercesC_VERSION_MINOR}"
+ DOC "Xerces-C++ libraries (release)")
+ find_library(XercesC_LIBRARY_DEBUG
+ NAMES "xerces-cd"
+ "xerces-c_${XercesC_VERSION_MAJOR}D"
+ "xerces-c_${XercesC_VERSION_MAJOR}_${XercesC_VERSION_MINOR}D"
+ DOC "Xerces-C++ libraries (debug)")
+ include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
+ select_library_configurations(XercesC)
+ mark_as_advanced(XercesC_LIBRARY_RELEASE XercesC_LIBRARY_DEBUG)
+endif()
+
+unset(XercesC_VERSION_MAJOR)
+unset(XercesC_VERSION_MINOR)
+unset(XercesC_VERSION_PATCH)
+
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(XercesC
+ FOUND_VAR XercesC_FOUND
+ REQUIRED_VARS XercesC_LIBRARY
+ XercesC_INCLUDE_DIR
+ XercesC_VERSION
+ VERSION_VAR XercesC_VERSION
+ FAIL_MESSAGE "Failed to find XercesC")
+
+if(XercesC_FOUND)
+ set(XercesC_INCLUDE_DIRS "${XercesC_INCLUDE_DIR}")
+ set(XercesC_LIBRARIES "${XercesC_LIBRARY}")
+
+ # For header-only libraries
+ if(NOT TARGET XercesC::XercesC)
+ add_library(XercesC::XercesC UNKNOWN IMPORTED)
+ if(XercesC_INCLUDE_DIRS)
+ set_target_properties(XercesC::XercesC PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${XercesC_INCLUDE_DIRS}")
+ endif()
+ if(EXISTS "${XercesC_LIBRARY}")
+ set_target_properties(XercesC::XercesC PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+ IMPORTED_LOCATION "${XercesC_LIBRARY}")
+ endif()
+ if(EXISTS "${XercesC_LIBRARY_RELEASE}")
+ set_property(TARGET XercesC::XercesC APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(XercesC::XercesC PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
+ IMPORTED_LOCATION_RELEASE "${XercesC_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${XercesC_LIBRARY_DEBUG}")
+ set_property(TARGET XercesC::XercesC APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(XercesC::XercesC PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
+ IMPORTED_LOCATION_DEBUG "${XercesC_LIBRARY_DEBUG}")
+ endif()
+ endif()
+endif()
diff --git a/share/cmake-3.17/Modules/FindZLIB.cmake b/share/cmake-3.18/Modules/FindZLIB.cmake
index 79e2313..79e2313 100644
--- a/share/cmake-3.17/Modules/FindZLIB.cmake
+++ b/share/cmake-3.18/Modules/FindZLIB.cmake
diff --git a/share/cmake-3.17/Modules/Findosg.cmake b/share/cmake-3.18/Modules/Findosg.cmake
index 027f315..027f315 100644
--- a/share/cmake-3.17/Modules/Findosg.cmake
+++ b/share/cmake-3.18/Modules/Findosg.cmake
diff --git a/share/cmake-3.17/Modules/FindosgAnimation.cmake b/share/cmake-3.18/Modules/FindosgAnimation.cmake
index 65e3016..65e3016 100644
--- a/share/cmake-3.17/Modules/FindosgAnimation.cmake
+++ b/share/cmake-3.18/Modules/FindosgAnimation.cmake
diff --git a/share/cmake-3.17/Modules/FindosgDB.cmake b/share/cmake-3.18/Modules/FindosgDB.cmake
index a28f650..a28f650 100644
--- a/share/cmake-3.17/Modules/FindosgDB.cmake
+++ b/share/cmake-3.18/Modules/FindosgDB.cmake
diff --git a/share/cmake-3.17/Modules/FindosgFX.cmake b/share/cmake-3.18/Modules/FindosgFX.cmake
index 438fab7..438fab7 100644
--- a/share/cmake-3.17/Modules/FindosgFX.cmake
+++ b/share/cmake-3.18/Modules/FindosgFX.cmake
diff --git a/share/cmake-3.17/Modules/FindosgGA.cmake b/share/cmake-3.18/Modules/FindosgGA.cmake
index 7b6ef30..7b6ef30 100644
--- a/share/cmake-3.17/Modules/FindosgGA.cmake
+++ b/share/cmake-3.18/Modules/FindosgGA.cmake
diff --git a/share/cmake-3.17/Modules/FindosgIntrospection.cmake b/share/cmake-3.18/Modules/FindosgIntrospection.cmake
index 625e4c2..625e4c2 100644
--- a/share/cmake-3.17/Modules/FindosgIntrospection.cmake
+++ b/share/cmake-3.18/Modules/FindosgIntrospection.cmake
diff --git a/share/cmake-3.17/Modules/FindosgManipulator.cmake b/share/cmake-3.18/Modules/FindosgManipulator.cmake
index 857ff5d..857ff5d 100644
--- a/share/cmake-3.17/Modules/FindosgManipulator.cmake
+++ b/share/cmake-3.18/Modules/FindosgManipulator.cmake
diff --git a/share/cmake-3.17/Modules/FindosgParticle.cmake b/share/cmake-3.18/Modules/FindosgParticle.cmake
index 91a30dc..91a30dc 100644
--- a/share/cmake-3.17/Modules/FindosgParticle.cmake
+++ b/share/cmake-3.18/Modules/FindosgParticle.cmake
diff --git a/share/cmake-3.17/Modules/FindosgPresentation.cmake b/share/cmake-3.18/Modules/FindosgPresentation.cmake
index eae75d6..eae75d6 100644
--- a/share/cmake-3.17/Modules/FindosgPresentation.cmake
+++ b/share/cmake-3.18/Modules/FindosgPresentation.cmake
diff --git a/share/cmake-3.17/Modules/FindosgProducer.cmake b/share/cmake-3.18/Modules/FindosgProducer.cmake
index 33b9f73..33b9f73 100644
--- a/share/cmake-3.17/Modules/FindosgProducer.cmake
+++ b/share/cmake-3.18/Modules/FindosgProducer.cmake
diff --git a/share/cmake-3.17/Modules/FindosgQt.cmake b/share/cmake-3.18/Modules/FindosgQt.cmake
index cf35630..cf35630 100644
--- a/share/cmake-3.17/Modules/FindosgQt.cmake
+++ b/share/cmake-3.18/Modules/FindosgQt.cmake
diff --git a/share/cmake-3.17/Modules/FindosgShadow.cmake b/share/cmake-3.18/Modules/FindosgShadow.cmake
index 0049c4e..0049c4e 100644
--- a/share/cmake-3.17/Modules/FindosgShadow.cmake
+++ b/share/cmake-3.18/Modules/FindosgShadow.cmake
diff --git a/share/cmake-3.17/Modules/FindosgSim.cmake b/share/cmake-3.18/Modules/FindosgSim.cmake
index 43ba542..43ba542 100644
--- a/share/cmake-3.17/Modules/FindosgSim.cmake
+++ b/share/cmake-3.18/Modules/FindosgSim.cmake
diff --git a/share/cmake-3.17/Modules/FindosgTerrain.cmake b/share/cmake-3.18/Modules/FindosgTerrain.cmake
index c6f5b69..c6f5b69 100644
--- a/share/cmake-3.17/Modules/FindosgTerrain.cmake
+++ b/share/cmake-3.18/Modules/FindosgTerrain.cmake
diff --git a/share/cmake-3.17/Modules/FindosgText.cmake b/share/cmake-3.18/Modules/FindosgText.cmake
index fd3c232..fd3c232 100644
--- a/share/cmake-3.17/Modules/FindosgText.cmake
+++ b/share/cmake-3.18/Modules/FindosgText.cmake
diff --git a/share/cmake-3.17/Modules/FindosgUtil.cmake b/share/cmake-3.18/Modules/FindosgUtil.cmake
index e84727a..e84727a 100644
--- a/share/cmake-3.17/Modules/FindosgUtil.cmake
+++ b/share/cmake-3.18/Modules/FindosgUtil.cmake
diff --git a/share/cmake-3.17/Modules/FindosgViewer.cmake b/share/cmake-3.18/Modules/FindosgViewer.cmake
index 2174357..2174357 100644
--- a/share/cmake-3.17/Modules/FindosgViewer.cmake
+++ b/share/cmake-3.18/Modules/FindosgViewer.cmake
diff --git a/share/cmake-3.17/Modules/FindosgVolume.cmake b/share/cmake-3.18/Modules/FindosgVolume.cmake
index 35defef..35defef 100644
--- a/share/cmake-3.17/Modules/FindosgVolume.cmake
+++ b/share/cmake-3.18/Modules/FindosgVolume.cmake
diff --git a/share/cmake-3.17/Modules/FindosgWidget.cmake b/share/cmake-3.18/Modules/FindosgWidget.cmake
index c7aae44..c7aae44 100644
--- a/share/cmake-3.17/Modules/FindosgWidget.cmake
+++ b/share/cmake-3.18/Modules/FindosgWidget.cmake
diff --git a/share/cmake-3.17/Modules/Findosg_functions.cmake b/share/cmake-3.18/Modules/Findosg_functions.cmake
index 563b6bd..563b6bd 100644
--- a/share/cmake-3.17/Modules/Findosg_functions.cmake
+++ b/share/cmake-3.18/Modules/Findosg_functions.cmake
diff --git a/share/cmake-3.17/Modules/FindwxWidgets.cmake b/share/cmake-3.18/Modules/FindwxWidgets.cmake
index 93ac51d..93ac51d 100644
--- a/share/cmake-3.17/Modules/FindwxWidgets.cmake
+++ b/share/cmake-3.18/Modules/FindwxWidgets.cmake
diff --git a/share/cmake-3.17/Modules/FindwxWindows.cmake b/share/cmake-3.18/Modules/FindwxWindows.cmake
index 35840f5..35840f5 100644
--- a/share/cmake-3.17/Modules/FindwxWindows.cmake
+++ b/share/cmake-3.18/Modules/FindwxWindows.cmake
diff --git a/share/cmake-3.17/Modules/FortranCInterface.cmake b/share/cmake-3.18/Modules/FortranCInterface.cmake
index 547346b..547346b 100644
--- a/share/cmake-3.17/Modules/FortranCInterface.cmake
+++ b/share/cmake-3.18/Modules/FortranCInterface.cmake
diff --git a/share/cmake-3.18/Modules/FortranCInterface/CMakeLists.txt b/share/cmake-3.18/Modules/FortranCInterface/CMakeLists.txt
new file mode 100644
index 0000000..13e4498
--- /dev/null
+++ b/share/cmake-3.18/Modules/FortranCInterface/CMakeLists.txt
@@ -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.
+
+cmake_minimum_required(VERSION ${CMAKE_VERSION})
+project(FortranCInterface C Fortran)
+include(${FortranCInterface_BINARY_DIR}/Input.cmake OPTIONAL)
+
+# Check if the C compiler supports '$' in identifiers.
+include(CheckCSourceCompiles)
+check_c_source_compiles("
+extern int dollar$(void);
+int main() { return 0; }
+" C_SUPPORTS_DOLLAR)
+
+# List manglings of global symbol names to try.
+set(global_symbols
+ my_sub # VisualAge
+ my_sub_ # GNU, Intel, HP, SunPro, PGI
+ my_sub__ # GNU g77
+ MY_SUB # Intel on Windows
+ mysub # VisualAge
+ mysub_ # GNU, Intel, HP, SunPro, PGI
+ MYSUB # Intel on Windows
+ ${FortranCInterface_GLOBAL_SYMBOLS}
+ )
+list(REMOVE_DUPLICATES global_symbols)
+
+# List manglings of module symbol names to try.
+set(module_symbols
+ __my_module_MOD_my_sub # GNU 4.3
+ __my_module_NMOD_my_sub # VisualAge
+ __my_module__my_sub # GNU 4.2
+ __mymodule_MOD_mysub # GNU 4.3
+ __mymodule_NMOD_mysub # VisualAge
+ __mymodule__mysub # GNU 4.2
+ my_module$my_sub # HP
+ my_module_mp_my_sub_ # Intel
+ MY_MODULE_mp_MY_SUB # Intel on Windows
+ my_module_my_sub_ # PGI
+ my_module_MP_my_sub # NAG
+ mymodule$mysub # HP
+ mymodule_mp_mysub_ # Intel
+ MYMODULE_mp_MYSUB # Intel on Windows
+ mymodule_mysub_ # PGI
+ mymodule_MP_mysub # NAG
+ ${FortranCInterface_MODULE_SYMBOLS}
+ )
+list(REMOVE_DUPLICATES module_symbols)
+
+# Note that some compiler manglings cannot be invoked from C:
+# SunPro uses "my_module.my_sub_"
+# PathScale uses "MY_SUB.in.MY_MODULE"
+
+# Add module symbols only with Fortran90.
+if(CMAKE_Fortran_COMPILER_SUPPORTS_F90)
+ set(myfort_modules mymodule.f90 my_module.f90)
+ set(call_mod call_mod.f90)
+ set_property(SOURCE main.F PROPERTY COMPILE_DEFINITIONS CALL_MOD)
+else()
+ set(module_symbols)
+endif()
+
+# Generate C symbol sources.
+set(symbol_sources)
+if(NOT CMAKE_Fortran_COMPILER_ID MATCHES "^(PathScale|Cray)$")
+ # Provide mymodule_ and my_module_ init symbols because:
+ # - PGI Fortran uses module init symbols
+ # but not for:
+ # - PathScale Fortran uses module init symbols but module symbols
+ # use '.in.' so we cannot provide them anyway.
+ # - Cray Fortran >= 7.3.2 uses module init symbols but module symbols
+ # use 'mysub$mymodule_' so we cannot provide them anyway.
+ list(APPEND symbol_sources mymodule_.c my_module_.c MY_MODULE.c MYMODULE.c)
+endif()
+foreach(symbol IN LISTS global_symbols module_symbols)
+ # Skip symbols with '$' if C cannot handle them.
+ if(C_SUPPORTS_DOLLAR OR NOT "${symbol}" MATCHES "\\$")
+ if("${symbol}" MATCHES "SUB")
+ set(upper "-UPPER")
+ else()
+ set(upper)
+ endif()
+ string(REPLACE "$" "S" name "${symbol}")
+ set(source ${CMAKE_CURRENT_BINARY_DIR}/symbols/${name}${upper}.c)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/symbol.c.in ${source} @ONLY)
+ list(APPEND symbol_sources ${source})
+ endif()
+endforeach()
+
+# Provide symbols through Fortran.
+add_library(myfort STATIC mysub.f my_sub.f ${myfort_modules})
+
+# Provide symbols through C but fall back to Fortran.
+add_library(symbols STATIC ${symbol_sources})
+target_link_libraries(symbols PUBLIC myfort)
+
+# In case the Fortran compiler produces PIC by default make sure
+# the C compiler produces PIC even if it is not its default.
+set_property(TARGET symbols PROPERTY POSITION_INDEPENDENT_CODE 1)
+
+# Require symbols through Fortran.
+add_executable(FortranCInterface main.F call_sub.f ${call_mod})
+target_link_libraries(FortranCInterface PUBLIC symbols)
+
+file(GENERATE OUTPUT exe-$<CONFIG>.cmake CONTENT [[
+set(FortranCInterface_EXE "$<TARGET_FILE:FortranCInterface>")
+]])
diff --git a/share/cmake-3.18/Modules/FortranCInterface/Detect.cmake b/share/cmake-3.18/Modules/FortranCInterface/Detect.cmake
new file mode 100644
index 0000000..c75067b
--- /dev/null
+++ b/share/cmake-3.18/Modules/FortranCInterface/Detect.cmake
@@ -0,0 +1,174 @@
+# 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.
+set(FortranCInterface_EXE)
+if(FortranCInterface_COMPILED)
+ include(${FortranCInterface_BINARY_DIR}/exe-Release.cmake OPTIONAL)
+else()
+ set(_result "Failed to compile")
+ 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.17/Modules/FortranCInterface/Input.cmake.in b/share/cmake-3.18/Modules/FortranCInterface/Input.cmake.in
index f261e3b..f261e3b 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Input.cmake.in
+++ b/share/cmake-3.18/Modules/FortranCInterface/Input.cmake.in
diff --git a/share/cmake-3.17/Modules/FortranCInterface/MYMODULE.c b/share/cmake-3.18/Modules/FortranCInterface/MYMODULE.c
index 19b51fb..19b51fb 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/MYMODULE.c
+++ b/share/cmake-3.18/Modules/FortranCInterface/MYMODULE.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/MY_MODULE.c b/share/cmake-3.18/Modules/FortranCInterface/MY_MODULE.c
index 87b3071..87b3071 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/MY_MODULE.c
+++ b/share/cmake-3.18/Modules/FortranCInterface/MY_MODULE.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Macro.h.in b/share/cmake-3.18/Modules/FortranCInterface/Macro.h.in
index d015a62..d015a62 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Macro.h.in
+++ b/share/cmake-3.18/Modules/FortranCInterface/Macro.h.in
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Output.cmake.in b/share/cmake-3.18/Modules/FortranCInterface/Output.cmake.in
index bce410e..bce410e 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Output.cmake.in
+++ b/share/cmake-3.18/Modules/FortranCInterface/Output.cmake.in
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/CMakeLists.txt b/share/cmake-3.18/Modules/FortranCInterface/Verify/CMakeLists.txt
index 98cdeb7..98cdeb7 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Verify/CMakeLists.txt
+++ b/share/cmake-3.18/Modules/FortranCInterface/Verify/CMakeLists.txt
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyC.c b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyC.c
index 7f847ef..7f847ef 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyC.c
+++ b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyC.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyCXX.cxx b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyCXX.cxx
index 689fac5..689fac5 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyCXX.cxx
+++ b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyCXX.cxx
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyFortran.f b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyFortran.f
index a17e48d..a17e48d 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Verify/VerifyFortran.f
+++ b/share/cmake-3.18/Modules/FortranCInterface/Verify/VerifyFortran.f
diff --git a/share/cmake-3.17/Modules/FortranCInterface/Verify/main.c b/share/cmake-3.18/Modules/FortranCInterface/Verify/main.c
index 582ef1d..582ef1d 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/Verify/main.c
+++ b/share/cmake-3.18/Modules/FortranCInterface/Verify/main.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/call_mod.f90 b/share/cmake-3.18/Modules/FortranCInterface/call_mod.f90
index 9b6af64..9b6af64 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/call_mod.f90
+++ b/share/cmake-3.18/Modules/FortranCInterface/call_mod.f90
diff --git a/share/cmake-3.17/Modules/FortranCInterface/call_sub.f b/share/cmake-3.18/Modules/FortranCInterface/call_sub.f
index ce3d50b..ce3d50b 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/call_sub.f
+++ b/share/cmake-3.18/Modules/FortranCInterface/call_sub.f
diff --git a/share/cmake-3.17/Modules/FortranCInterface/main.F b/share/cmake-3.18/Modules/FortranCInterface/main.F
index 84991b0..84991b0 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/main.F
+++ b/share/cmake-3.18/Modules/FortranCInterface/main.F
diff --git a/share/cmake-3.17/Modules/FortranCInterface/my_module.f90 b/share/cmake-3.18/Modules/FortranCInterface/my_module.f90
index 82713b4..82713b4 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/my_module.f90
+++ b/share/cmake-3.18/Modules/FortranCInterface/my_module.f90
diff --git a/share/cmake-3.17/Modules/FortranCInterface/my_module_.c b/share/cmake-3.18/Modules/FortranCInterface/my_module_.c
index 6fa89d1..6fa89d1 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/my_module_.c
+++ b/share/cmake-3.18/Modules/FortranCInterface/my_module_.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/my_sub.f b/share/cmake-3.18/Modules/FortranCInterface/my_sub.f
index 247ba06..247ba06 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/my_sub.f
+++ b/share/cmake-3.18/Modules/FortranCInterface/my_sub.f
diff --git a/share/cmake-3.17/Modules/FortranCInterface/mymodule.f90 b/share/cmake-3.18/Modules/FortranCInterface/mymodule.f90
index ef6281a..ef6281a 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/mymodule.f90
+++ b/share/cmake-3.18/Modules/FortranCInterface/mymodule.f90
diff --git a/share/cmake-3.17/Modules/FortranCInterface/mymodule_.c b/share/cmake-3.18/Modules/FortranCInterface/mymodule_.c
index 444953b..444953b 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/mymodule_.c
+++ b/share/cmake-3.18/Modules/FortranCInterface/mymodule_.c
diff --git a/share/cmake-3.17/Modules/FortranCInterface/mysub.f b/share/cmake-3.18/Modules/FortranCInterface/mysub.f
index 1c27ff4..1c27ff4 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/mysub.f
+++ b/share/cmake-3.18/Modules/FortranCInterface/mysub.f
diff --git a/share/cmake-3.17/Modules/FortranCInterface/symbol.c.in b/share/cmake-3.18/Modules/FortranCInterface/symbol.c.in
index 369fa45..369fa45 100644
--- a/share/cmake-3.17/Modules/FortranCInterface/symbol.c.in
+++ b/share/cmake-3.18/Modules/FortranCInterface/symbol.c.in
diff --git a/share/cmake-3.17/Modules/GNUInstallDirs.cmake b/share/cmake-3.18/Modules/GNUInstallDirs.cmake
index 9ef22b9..9ef22b9 100644
--- a/share/cmake-3.17/Modules/GNUInstallDirs.cmake
+++ b/share/cmake-3.18/Modules/GNUInstallDirs.cmake
diff --git a/share/cmake-3.17/Modules/GenerateExportHeader.cmake b/share/cmake-3.18/Modules/GenerateExportHeader.cmake
index e4481f6..e4481f6 100644
--- a/share/cmake-3.17/Modules/GenerateExportHeader.cmake
+++ b/share/cmake-3.18/Modules/GenerateExportHeader.cmake
diff --git a/share/cmake-3.17/Modules/GetPrerequisites.cmake b/share/cmake-3.18/Modules/GetPrerequisites.cmake
index 5c8c196..5c8c196 100644
--- a/share/cmake-3.17/Modules/GetPrerequisites.cmake
+++ b/share/cmake-3.18/Modules/GetPrerequisites.cmake
diff --git a/share/cmake-3.18/Modules/GoogleTest.cmake b/share/cmake-3.18/Modules/GoogleTest.cmake
new file mode 100644
index 0000000..b210a77
--- /dev/null
+++ b/share/cmake-3.18/Modules/GoogleTest.cmake
@@ -0,0 +1,547 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+GoogleTest
+----------
+
+This module defines functions to help use the Google Test infrastructure. Two
+mechanisms for adding tests are provided. :command:`gtest_add_tests` has been
+around for some time, originally via ``find_package(GTest)``.
+:command:`gtest_discover_tests` was introduced in CMake 3.10.
+
+The (older) :command:`gtest_add_tests` scans source files to identify tests.
+This is usually effective, with some caveats, including in cross-compiling
+environments, and makes setting additional properties on tests more convenient.
+However, its handling of parameterized tests is less comprehensive, and it
+requires re-running CMake to detect changes to the list of tests.
+
+The (newer) :command:`gtest_discover_tests` discovers tests by asking the
+compiled test executable to enumerate its tests. This is more robust and
+provides better handling of parameterized tests, and does not require CMake
+to be re-run when tests change. However, it may not work in a cross-compiling
+environment, and setting test properties is less convenient.
+
+More details can be found in the documentation of the respective functions.
+
+Both commands are intended to replace use of :command:`add_test` to register
+tests, and will create a separate CTest test for each Google Test test case.
+Note that this is in some cases less efficient, as common set-up and tear-down
+logic cannot be shared by multiple test cases executing in the same instance.
+However, it provides more fine-grained pass/fail information to CTest, which is
+usually considered as more beneficial. By default, the CTest test name is the
+same as the Google Test name (i.e. ``suite.testcase``); see also
+``TEST_PREFIX`` and ``TEST_SUFFIX``.
+
+.. command:: gtest_add_tests
+
+ Automatically add tests with CTest by scanning source code for Google Test
+ macros::
+
+ gtest_add_tests(TARGET target
+ [SOURCES src1...]
+ [EXTRA_ARGS arg1...]
+ [WORKING_DIRECTORY dir]
+ [TEST_PREFIX prefix]
+ [TEST_SUFFIX suffix]
+ [SKIP_DEPENDENCY]
+ [TEST_LIST outVar]
+ )
+
+ ``gtest_add_tests`` attempts to identify tests by scanning source files.
+ Although this is generally effective, it uses only a basic regular expression
+ match, which can be defeated by atypical test declarations, and is unable to
+ fully "split" parameterized tests. Additionally, it requires that CMake be
+ re-run to discover any newly added, removed or renamed tests (by default,
+ this means that CMake is re-run when any test source file is changed, but see
+ ``SKIP_DEPENDENCY``). However, it has the advantage of declaring tests at
+ CMake time, which somewhat simplifies setting additional properties on tests,
+ and always works in a cross-compiling environment.
+
+ The options are:
+
+ ``TARGET target``
+ Specifies the Google Test executable, which must be a known CMake
+ executable target. CMake will substitute the location of the built
+ executable when running the test.
+
+ ``SOURCES src1...``
+ When provided, only the listed files will be scanned for test cases. If
+ this option is not given, the :prop_tgt:`SOURCES` property of the
+ specified ``target`` will be used to obtain the list of sources.
+
+ ``EXTRA_ARGS arg1...``
+ Any extra arguments to pass on the command line to each test case.
+
+ ``WORKING_DIRECTORY dir``
+ Specifies the directory in which to run the discovered test cases. If this
+ option is not provided, the current binary directory is used.
+
+ ``TEST_PREFIX prefix``
+ Specifies a ``prefix`` to be prepended to the name of each discovered test
+ case. This can be useful when the same source files are being used in
+ multiple calls to ``gtest_add_test()`` but with different ``EXTRA_ARGS``.
+
+ ``TEST_SUFFIX suffix``
+ Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
+ every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
+ be specified.
+
+ ``SKIP_DEPENDENCY``
+ Normally, the function creates a dependency which will cause CMake to be
+ re-run if any of the sources being scanned are changed. This is to ensure
+ that the list of discovered tests is updated. If this behavior is not
+ desired (as may be the case while actually writing the test cases), this
+ option can be used to prevent the dependency from being added.
+
+ ``TEST_LIST outVar``
+ The variable named by ``outVar`` will be populated in the calling scope
+ with the list of discovered test cases. This allows the caller to do
+ things like manipulate test properties of the discovered tests.
+
+ .. code-block:: cmake
+
+ include(GoogleTest)
+ add_executable(FooTest FooUnitTest.cxx)
+ gtest_add_tests(TARGET FooTest
+ TEST_SUFFIX .noArgs
+ TEST_LIST noArgsTests
+ )
+ gtest_add_tests(TARGET FooTest
+ EXTRA_ARGS --someArg someValue
+ TEST_SUFFIX .withArgs
+ TEST_LIST withArgsTests
+ )
+ set_tests_properties(${noArgsTests} PROPERTIES TIMEOUT 10)
+ set_tests_properties(${withArgsTests} PROPERTIES TIMEOUT 20)
+
+ For backward compatibility, the following form is also supported::
+
+ gtest_add_tests(exe args files...)
+
+ ``exe``
+ The path to the test executable or the name of a CMake target.
+ ``args``
+ A ;-list of extra arguments to be passed to executable. The entire
+ list must be passed as a single argument. Enclose it in quotes,
+ or pass ``""`` for no arguments.
+ ``files...``
+ A list of source files to search for tests and test fixtures.
+ Alternatively, use ``AUTO`` to specify that ``exe`` is the name
+ of a CMake executable target whose sources should be scanned.
+
+ .. code-block:: cmake
+
+ include(GoogleTest)
+ set(FooTestArgs --foo 1 --bar 2)
+ add_executable(FooTest FooUnitTest.cxx)
+ gtest_add_tests(FooTest "${FooTestArgs}" AUTO)
+
+.. command:: gtest_discover_tests
+
+ Automatically add tests with CTest by querying the compiled test executable
+ for available tests::
+
+ gtest_discover_tests(target
+ [EXTRA_ARGS arg1...]
+ [WORKING_DIRECTORY dir]
+ [TEST_PREFIX prefix]
+ [TEST_SUFFIX suffix]
+ [NO_PRETTY_TYPES] [NO_PRETTY_VALUES]
+ [PROPERTIES name1 value1...]
+ [TEST_LIST var]
+ [DISCOVERY_TIMEOUT seconds]
+ [XML_OUTPUT_DIR dir]
+ [DISCOVERY_MODE <POST_BUILD|PRE_TEST>]
+ )
+
+ ``gtest_discover_tests()`` sets up a post-build command on the test executable
+ that generates the list of tests by parsing the output from running the test
+ with the ``--gtest_list_tests`` argument. Compared to the source parsing
+ approach of :command:`gtest_add_tests`, this ensures that the full list of
+ tests, including instantiations of parameterized tests, is obtained. Since
+ test discovery occurs at build time, it is not necessary to re-run CMake when
+ the list of tests changes.
+ However, it requires that :prop_tgt:`CROSSCOMPILING_EMULATOR` is properly set
+ in order to function in a cross-compiling environment.
+
+ Additionally, setting properties on tests is somewhat less convenient, since
+ the tests are not available at CMake time. Additional test properties may be
+ assigned to the set of tests as a whole using the ``PROPERTIES`` option. If
+ more fine-grained test control is needed, custom content may be provided
+ through an external CTest script using the :prop_dir:`TEST_INCLUDE_FILES`
+ directory property. The set of discovered tests is made accessible to such a
+ script via the ``<target>_TESTS`` variable.
+
+ The options are:
+
+ ``target``
+ Specifies the Google Test executable, which must be a known CMake
+ executable target. CMake will substitute the location of the built
+ executable when running the test.
+
+ ``EXTRA_ARGS arg1...``
+ Any extra arguments to pass on the command line to each test case.
+
+ ``WORKING_DIRECTORY dir``
+ Specifies the directory in which to run the discovered test cases. If this
+ option is not provided, the current binary directory is used.
+
+ ``TEST_PREFIX prefix``
+ Specifies a ``prefix`` to be prepended to the name of each discovered test
+ case. This can be useful when the same test executable is being used in
+ multiple calls to ``gtest_discover_tests()`` but with different
+ ``EXTRA_ARGS``.
+
+ ``TEST_SUFFIX suffix``
+ Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
+ every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
+ be specified.
+
+ ``NO_PRETTY_TYPES``
+ By default, the type index of type-parameterized tests is replaced by the
+ actual type name in the CTest test name. If this behavior is undesirable
+ (e.g. because the type names are unwieldy), this option will suppress this
+ behavior.
+
+ ``NO_PRETTY_VALUES``
+ By default, the value index of value-parameterized tests is replaced by the
+ actual value in the CTest test name. If this behavior is undesirable
+ (e.g. because the value strings are unwieldy), this option will suppress
+ this behavior.
+
+ ``PROPERTIES name1 value1...``
+ Specifies additional properties to be set on all tests discovered by this
+ invocation of ``gtest_discover_tests()``.
+
+ ``TEST_LIST var``
+ Make the list of tests available in the variable ``var``, rather than the
+ default ``<target>_TESTS``. This can be useful when the same test
+ executable is being used in multiple calls to ``gtest_discover_tests()``.
+ Note that this variable is only available in CTest.
+
+ ``DISCOVERY_TIMEOUT num``
+ Specifies how long (in seconds) CMake will wait for the test to enumerate
+ available tests. If the test takes longer than this, discovery (and your
+ build) will fail. Most test executables will enumerate their tests very
+ quickly, but under some exceptional circumstances, a test may require a
+ longer timeout. The default is 5. See also the ``TIMEOUT`` option of
+ :command:`execute_process`.
+
+ .. note::
+
+ In CMake versions 3.10.1 and 3.10.2, this option was called ``TIMEOUT``.
+ This clashed with the ``TIMEOUT`` test property, which is one of the
+ common properties that would be set with the ``PROPERTIES`` keyword,
+ usually leading to legal but unintended behavior. The keyword was
+ changed to ``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this
+ problem. The ambiguous behavior of the ``TIMEOUT`` keyword in 3.10.1
+ and 3.10.2 has not been preserved.
+
+ ``XML_OUTPUT_DIR dir``
+ If specified, the parameter is passed along with ``--gtest_output=xml:``
+ to test executable. The actual file name is the same as the test target,
+ including prefix and suffix. This should be used instead of
+ ``EXTRA_ARGS --gtest_output=xml`` to avoid race conditions writing the
+ XML result output when using parallel test execution.
+
+ ``DISCOVERY_MODE``
+ Provides greater control over when ``gtest_discover_tests()`` performs test
+ discovery. By default, ``POST_BUILD`` sets up a post-build command
+ to perform test discovery at build time. In certain scenarios, like
+ cross-compiling, this ``POST_BUILD`` behavior is not desirable.
+ By contrast, ``PRE_TEST`` delays test discovery until just prior to test
+ execution. This way test discovery occurs in the target environment
+ where the test has a better chance at finding appropriate runtime
+ dependencies.
+
+ ``DISCOVERY_MODE`` defaults to the value of the
+ ``CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE`` variable if it is not
+ passed when calling ``gtest_discover_tests()``. This provides a mechanism
+ for globally selecting a preferred test discovery behavior without having
+ to modify each call site.
+
+#]=======================================================================]
+
+# Save project's policies
+cmake_policy(PUSH)
+cmake_policy(SET CMP0057 NEW) # if IN_LIST
+
+#------------------------------------------------------------------------------
+function(gtest_add_tests)
+
+ if (ARGC LESS 1)
+ message(FATAL_ERROR "No arguments supplied to gtest_add_tests()")
+ endif()
+
+ set(options
+ SKIP_DEPENDENCY
+ )
+ set(oneValueArgs
+ TARGET
+ WORKING_DIRECTORY
+ TEST_PREFIX
+ TEST_SUFFIX
+ TEST_LIST
+ )
+ set(multiValueArgs
+ SOURCES
+ EXTRA_ARGS
+ )
+ set(allKeywords ${options} ${oneValueArgs} ${multiValueArgs})
+
+ unset(sources)
+ if("${ARGV0}" IN_LIST allKeywords)
+ cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+ set(autoAddSources YES)
+ else()
+ # Non-keyword syntax, convert to keyword form
+ if (ARGC LESS 3)
+ message(FATAL_ERROR "gtest_add_tests() without keyword options requires at least 3 arguments")
+ endif()
+ set(ARGS_TARGET "${ARGV0}")
+ set(ARGS_EXTRA_ARGS "${ARGV1}")
+ if(NOT "${ARGV2}" STREQUAL "AUTO")
+ set(ARGS_SOURCES "${ARGV}")
+ list(REMOVE_AT ARGS_SOURCES 0 1)
+ endif()
+ endif()
+
+ # The non-keyword syntax allows the first argument to be an arbitrary
+ # executable rather than a target if source files are also provided. In all
+ # other cases, both forms require a target.
+ if(NOT TARGET "${ARGS_TARGET}" AND NOT ARGS_SOURCES)
+ message(FATAL_ERROR "${ARGS_TARGET} does not define an existing CMake target")
+ endif()
+ if(NOT ARGS_WORKING_DIRECTORY)
+ unset(workDir)
+ else()
+ set(workDir WORKING_DIRECTORY "${ARGS_WORKING_DIRECTORY}")
+ endif()
+
+ if(NOT ARGS_SOURCES)
+ get_property(ARGS_SOURCES TARGET ${ARGS_TARGET} PROPERTY SOURCES)
+ endif()
+
+ unset(testList)
+
+ set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+) *, *([A-Za-z_0-9]+) *\\).*")
+ set(gtest_test_type_regex "(TYPED_TEST|TEST_?[FP]?)")
+
+ foreach(source IN LISTS ARGS_SOURCES)
+ if(NOT ARGS_SKIP_DEPENDENCY)
+ set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${source})
+ endif()
+ file(READ "${source}" contents)
+ string(REGEX MATCHALL "${gtest_test_type_regex} *\\(([A-Za-z_0-9 ,]+)\\)" found_tests "${contents}")
+ foreach(hit ${found_tests})
+ string(REGEX MATCH "${gtest_test_type_regex}" test_type ${hit})
+
+ # Parameterized tests have a different signature for the filter
+ if("x${test_type}" STREQUAL "xTEST_P")
+ string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" gtest_test_name ${hit})
+ elseif("x${test_type}" STREQUAL "xTEST_F" OR "x${test_type}" STREQUAL "xTEST")
+ string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" gtest_test_name ${hit})
+ elseif("x${test_type}" STREQUAL "xTYPED_TEST")
+ string(REGEX REPLACE ${gtest_case_name_regex} "\\1/*.\\2" gtest_test_name ${hit})
+ else()
+ message(WARNING "Could not parse GTest ${hit} for adding to CTest.")
+ continue()
+ endif()
+
+ # Make sure tests disabled in GTest get disabled in CTest
+ if(gtest_test_name MATCHES "(^|\\.)DISABLED_")
+ # Add the disabled test if CMake is new enough
+ # Note that this check is to allow backwards compatibility so this
+ # module can be copied locally in projects to use with older CMake
+ # versions
+ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.8.20170401)
+ string(REGEX REPLACE
+ "(^|\\.)DISABLED_" "\\1"
+ orig_test_name "${gtest_test_name}"
+ )
+ set(ctest_test_name
+ ${ARGS_TEST_PREFIX}${orig_test_name}${ARGS_TEST_SUFFIX}
+ )
+ add_test(NAME ${ctest_test_name}
+ ${workDir}
+ COMMAND ${ARGS_TARGET}
+ --gtest_also_run_disabled_tests
+ --gtest_filter=${gtest_test_name}
+ ${ARGS_EXTRA_ARGS}
+ )
+ set_tests_properties(${ctest_test_name} PROPERTIES DISABLED TRUE)
+ list(APPEND testList ${ctest_test_name})
+ endif()
+ else()
+ set(ctest_test_name ${ARGS_TEST_PREFIX}${gtest_test_name}${ARGS_TEST_SUFFIX})
+ add_test(NAME ${ctest_test_name}
+ ${workDir}
+ COMMAND ${ARGS_TARGET}
+ --gtest_filter=${gtest_test_name}
+ ${ARGS_EXTRA_ARGS}
+ )
+ list(APPEND testList ${ctest_test_name})
+ endif()
+ endforeach()
+ endforeach()
+
+ if(ARGS_TEST_LIST)
+ set(${ARGS_TEST_LIST} ${testList} PARENT_SCOPE)
+ endif()
+
+endfunction()
+
+#------------------------------------------------------------------------------
+
+function(gtest_discover_tests TARGET)
+ cmake_parse_arguments(
+ ""
+ "NO_PRETTY_TYPES;NO_PRETTY_VALUES"
+ "TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST;DISCOVERY_TIMEOUT;XML_OUTPUT_DIR;DISCOVERY_MODE"
+ "EXTRA_ARGS;PROPERTIES"
+ ${ARGN}
+ )
+
+ if(NOT _WORKING_DIRECTORY)
+ set(_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
+ endif()
+ if(NOT _TEST_LIST)
+ set(_TEST_LIST ${TARGET}_TESTS)
+ endif()
+ if(NOT _DISCOVERY_TIMEOUT)
+ set(_DISCOVERY_TIMEOUT 5)
+ endif()
+ if(NOT _DISCOVERY_MODE)
+ if(NOT CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE)
+ set(CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE "POST_BUILD")
+ endif()
+ set(_DISCOVERY_MODE ${CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE})
+ endif()
+
+ get_property(
+ has_counter
+ TARGET ${TARGET}
+ PROPERTY CTEST_DISCOVERED_TEST_COUNTER
+ SET
+ )
+ if(has_counter)
+ get_property(
+ counter
+ TARGET ${TARGET}
+ PROPERTY CTEST_DISCOVERED_TEST_COUNTER
+ )
+ math(EXPR counter "${counter} + 1")
+ else()
+ set(counter 1)
+ endif()
+ set_property(
+ TARGET ${TARGET}
+ PROPERTY CTEST_DISCOVERED_TEST_COUNTER
+ ${counter}
+ )
+
+ # Define rule to generate test list for aforementioned test executable
+ set(ctest_file_base "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}[${counter}]")
+ set(ctest_include_file "${ctest_file_base}_include.cmake")
+ set(ctest_tests_file "${ctest_file_base}_tests.cmake")
+ get_property(crosscompiling_emulator
+ TARGET ${TARGET}
+ PROPERTY CROSSCOMPILING_EMULATOR
+ )
+
+ if(_DISCOVERY_MODE STREQUAL "POST_BUILD")
+ add_custom_command(
+ TARGET ${TARGET} POST_BUILD
+ BYPRODUCTS "${ctest_tests_file}"
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_TARGET=${TARGET}"
+ -D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
+ -D "TEST_EXECUTOR=${crosscompiling_emulator}"
+ -D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
+ -D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
+ -D "TEST_PROPERTIES=${_PROPERTIES}"
+ -D "TEST_PREFIX=${_TEST_PREFIX}"
+ -D "TEST_SUFFIX=${_TEST_SUFFIX}"
+ -D "NO_PRETTY_TYPES=${_NO_PRETTY_TYPES}"
+ -D "NO_PRETTY_VALUES=${_NO_PRETTY_VALUES}"
+ -D "TEST_LIST=${_TEST_LIST}"
+ -D "CTEST_FILE=${ctest_tests_file}"
+ -D "TEST_DISCOVERY_TIMEOUT=${_DISCOVERY_TIMEOUT}"
+ -D "TEST_XML_OUTPUT_DIR=${_XML_OUTPUT_DIR}"
+ -P "${_GOOGLETEST_DISCOVER_TESTS_SCRIPT}"
+ VERBATIM
+ )
+
+ file(WRITE "${ctest_include_file}"
+ "if(EXISTS \"${ctest_tests_file}\")\n"
+ " include(\"${ctest_tests_file}\")\n"
+ "else()\n"
+ " add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)\n"
+ "endif()\n"
+ )
+ elseif(_DISCOVERY_MODE STREQUAL "PRE_TEST")
+
+ get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL
+ PROPERTY GENERATOR_IS_MULTI_CONFIG
+ )
+
+ if(GENERATOR_IS_MULTI_CONFIG)
+ set(ctest_tests_file "${ctest_file_base}_tests-$<CONFIG>.cmake")
+ endif()
+
+ string(CONCAT ctest_include_content
+ "if(EXISTS \"$<TARGET_FILE:${TARGET}>\")" "\n"
+ " if(\"$<TARGET_FILE:${TARGET}>\" IS_NEWER_THAN \"${ctest_tests_file}\")" "\n"
+ " include(GoogleTestAddTests)" "\n"
+ " gtest_discover_tests_impl(" "\n"
+ " TEST_EXECUTABLE" " [==[" "$<TARGET_FILE:${TARGET}>" "]==]" "\n"
+ " TEST_EXECUTOR" " [==[" "${crosscompiling_emulator}" "]==]" "\n"
+ " TEST_WORKING_DIR" " [==[" "${_WORKING_DIRECTORY}" "]==]" "\n"
+ " TEST_EXTRA_ARGS" " [==[" "${_EXTRA_ARGS}" "]==]" "\n"
+ " TEST_PROPERTIES" " [==[" "${_PROPERTIES}" "]==]" "\n"
+ " TEST_PREFIX" " [==[" "${_TEST_PREFIX}" "]==]" "\n"
+ " TEST_SUFFIX" " [==[" "${_TEST_SUFFIX}" "]==]" "\n"
+ " NO_PRETTY_TYPES" " [==[" "${_NO_PRETTY_TYPES}" "]==]" "\n"
+ " NO_PRETTY_VALUES" " [==[" "${_NO_PRETTY_VALUES}" "]==]" "\n"
+ " TEST_LIST" " [==[" "${_TEST_LIST}" "]==]" "\n"
+ " CTEST_FILE" " [==[" "${ctest_tests_file}" "]==]" "\n"
+ " TEST_DISCOVERY_TIMEOUT" " [==[" "${_DISCOVERY_TIMEOUT}" "]==]" "\n"
+ " TEST_XML_OUTPUT_DIR" " [==[" "${_XML_OUTPUT_DIR}" "]==]" "\n"
+ " )" "\n"
+ " endif()" "\n"
+ " include(\"${ctest_tests_file}\")" "\n"
+ "else()" "\n"
+ " add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)" "\n"
+ "endif()" "\n"
+ )
+
+ if(GENERATOR_IS_MULTI_CONFIG)
+ foreach(_config ${CMAKE_CONFIGURATION_TYPES})
+ file(GENERATE OUTPUT "${ctest_file_base}_include-${_config}.cmake" CONTENT "${ctest_include_content}" CONDITION $<CONFIG:${_config}>)
+ endforeach()
+ file(WRITE "${ctest_include_file}" "include(\"${ctest_file_base}_include-\${CTEST_CONFIGURATION_TYPE}.cmake\")")
+ else()
+ file(GENERATE OUTPUT "${ctest_file_base}_include.cmake" CONTENT "${ctest_include_content}")
+ file(WRITE "${ctest_include_file}" "include(\"${ctest_file_base}_include.cmake\")")
+ endif()
+
+ else()
+ message(FATAL_ERROR "Unknown DISCOVERY_MODE: ${_DISCOVERY_MODE}")
+ endif()
+
+ # Add discovered tests to directory TEST_INCLUDE_FILES
+ set_property(DIRECTORY
+ APPEND PROPERTY TEST_INCLUDE_FILES "${ctest_include_file}"
+ )
+
+endfunction()
+
+###############################################################################
+
+set(_GOOGLETEST_DISCOVER_TESTS_SCRIPT
+ ${CMAKE_CURRENT_LIST_DIR}/GoogleTestAddTests.cmake
+)
+
+# Restore project's policies
+cmake_policy(POP)
diff --git a/share/cmake-3.18/Modules/GoogleTestAddTests.cmake b/share/cmake-3.18/Modules/GoogleTestAddTests.cmake
new file mode 100644
index 0000000..5d098d9
--- /dev/null
+++ b/share/cmake-3.18/Modules/GoogleTestAddTests.cmake
@@ -0,0 +1,188 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+cmake_minimum_required(VERSION ${CMAKE_VERSION})
+
+# Overwrite possibly existing ${_CTEST_FILE} with empty file
+set(flush_tests_MODE WRITE)
+
+# Flushes script to ${_CTEST_FILE}
+macro(flush_script)
+ file(${flush_tests_MODE} "${_CTEST_FILE}" "${script}")
+ set(flush_tests_MODE APPEND)
+
+ set(script "")
+endmacro()
+
+# Flushes tests_buffer to tests
+macro(flush_tests_buffer)
+ list(APPEND tests "${tests_buffer}")
+ set(tests_buffer "")
+endmacro()
+
+macro(add_command NAME)
+ set(_args "")
+ foreach(_arg ${ARGN})
+ if(_arg MATCHES "[^-./:a-zA-Z0-9_]")
+ string(APPEND _args " [==[${_arg}]==]")
+ else()
+ string(APPEND _args " ${_arg}")
+ endif()
+ endforeach()
+ string(APPEND script "${NAME}(${_args})\n")
+ string(LENGTH "${script}" _script_len)
+ if(${_script_len} GREATER "50000")
+ flush_script()
+ endif()
+ # Unsets macro local variables to prevent leakage outside of this macro.
+ unset(_args)
+ unset(_script_len)
+endmacro()
+
+function(gtest_discover_tests_impl)
+
+ cmake_parse_arguments(
+ ""
+ ""
+ "NO_PRETTY_TYPES;NO_PRETTY_VALUES;TEST_EXECUTABLE;TEST_EXECUTOR;TEST_WORKING_DIR;TEST_PREFIX;TEST_SUFFIX;TEST_LIST;CTEST_FILE;TEST_DISCOVERY_TIMEOUT;TEST_XML_OUTPUT_DIR"
+ "TEST_EXTRA_ARGS;TEST_PROPERTIES"
+ ${ARGN}
+ )
+
+ set(prefix "${_TEST_PREFIX}")
+ set(suffix "${_TEST_SUFFIX}")
+ set(extra_args ${_TEST_EXTRA_ARGS})
+ set(properties ${_TEST_PROPERTIES})
+ set(script)
+ set(suite)
+ set(tests)
+ set(tests_buffer)
+
+ # Run test executable to get list of available tests
+ if(NOT EXISTS "${_TEST_EXECUTABLE}")
+ message(FATAL_ERROR
+ "Specified test executable does not exist.\n"
+ " Path: '${_TEST_EXECUTABLE}'"
+ )
+ endif()
+ execute_process(
+ COMMAND ${_TEST_EXECUTOR} "${_TEST_EXECUTABLE}" --gtest_list_tests
+ WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
+ TIMEOUT ${_TEST_DISCOVERY_TIMEOUT}
+ OUTPUT_VARIABLE output
+ RESULT_VARIABLE result
+ )
+ if(NOT ${result} EQUAL 0)
+ string(REPLACE "\n" "\n " output "${output}")
+ message(FATAL_ERROR
+ "Error running test executable.\n"
+ " Path: '${_TEST_EXECUTABLE}'\n"
+ " Result: ${result}\n"
+ " Output:\n"
+ " ${output}\n"
+ )
+ endif()
+
+ # Preserve semicolon in test-parameters
+ string(REPLACE [[;]] [[\;]] output "${output}")
+ string(REPLACE "\n" ";" output "${output}")
+
+ # Parse output
+ foreach(line ${output})
+ # Skip header
+ if(NOT line MATCHES "gtest_main\\.cc")
+ # Do we have a module name or a test name?
+ if(NOT line MATCHES "^ ")
+ # Module; remove trailing '.' to get just the name...
+ string(REGEX REPLACE "\\.( *#.*)?" "" suite "${line}")
+ if(line MATCHES "#" AND NOT _NO_PRETTY_TYPES)
+ string(REGEX REPLACE "/[0-9]\\.+ +#.*= +" "/" pretty_suite "${line}")
+ else()
+ set(pretty_suite "${suite}")
+ endif()
+ string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
+ else()
+ # Test name; strip spaces and comments to get just the name...
+ string(REGEX REPLACE " +" "" test "${line}")
+ if(test MATCHES "#" AND NOT _NO_PRETTY_VALUES)
+ string(REGEX REPLACE "/[0-9]+#GetParam..=" "/" pretty_test "${test}")
+ else()
+ string(REGEX REPLACE "#.*" "" pretty_test "${test}")
+ endif()
+ string(REGEX REPLACE "^DISABLED_" "" pretty_test "${pretty_test}")
+ string(REGEX REPLACE "#.*" "" test "${test}")
+ if(NOT "${_TEST_XML_OUTPUT_DIR}" STREQUAL "")
+ set(TEST_XML_OUTPUT_PARAM "--gtest_output=xml:${_TEST_XML_OUTPUT_DIR}/${prefix}${suite}.${test}${suffix}.xml")
+ else()
+ unset(TEST_XML_OUTPUT_PARAM)
+ endif()
+
+ # sanitize test name for further processing downstream
+ set(testname "${prefix}${pretty_suite}.${pretty_test}${suffix}")
+ # escape \
+ string(REPLACE [[\]] [[\\]] testname "${testname}")
+ # escape ;
+ string(REPLACE [[;]] [[\;]] testname "${testname}")
+ # escape $
+ string(REPLACE [[$]] [[\$]] testname "${testname}")
+
+ # ...and add to script
+ add_command(add_test
+ "${testname}"
+ ${_TEST_EXECUTOR}
+ "${_TEST_EXECUTABLE}"
+ "--gtest_filter=${suite}.${test}"
+ "--gtest_also_run_disabled_tests"
+ ${TEST_XML_OUTPUT_PARAM}
+ ${extra_args}
+ )
+ if(suite MATCHES "^DISABLED" OR test MATCHES "^DISABLED")
+ add_command(set_tests_properties
+ "${testname}"
+ PROPERTIES DISABLED TRUE
+ )
+ endif()
+ add_command(set_tests_properties
+ "${testname}"
+ PROPERTIES
+ WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
+ SKIP_REGULAR_EXPRESSION "\\\\[ SKIPPED \\\\]"
+ ${properties}
+ )
+ list(APPEND tests_buffer "${testname}")
+ list(LENGTH tests_buffer tests_buffer_length)
+ if(${tests_buffer_length} GREATER "250")
+ flush_tests_buffer()
+ endif()
+ endif()
+ endif()
+ endforeach()
+
+
+ # Create a list of all discovered tests, which users may use to e.g. set
+ # properties on the tests
+ flush_tests_buffer()
+ add_command(set ${_TEST_LIST} ${tests})
+
+ # Write CTest script
+ flush_script()
+
+endfunction()
+
+if(CMAKE_SCRIPT_MODE_FILE)
+ gtest_discover_tests_impl(
+ NO_PRETTY_TYPES ${NO_PRETTY_TYPES}
+ NO_PRETTY_VALUES ${NO_PRETTY_VALUES}
+ TEST_EXECUTABLE ${TEST_EXECUTABLE}
+ TEST_EXECUTOR ${TEST_EXECUTOR}
+ TEST_WORKING_DIR ${TEST_WORKING_DIR}
+ TEST_PREFIX ${TEST_PREFIX}
+ TEST_SUFFIX ${TEST_SUFFIX}
+ TEST_LIST ${TEST_LIST}
+ CTEST_FILE ${CTEST_FILE}
+ TEST_DISCOVERY_TIMEOUT ${TEST_DISCOVERY_TIMEOUT}
+ TEST_XML_OUTPUT_DIR ${TEST_XML_OUTPUT_DIR}
+ TEST_EXTRA_ARGS ${TEST_EXTRA_ARGS}
+ TEST_PROPERTIES ${TEST_PROPERTIES}
+ )
+endif()
diff --git a/share/cmake-3.17/Modules/ITKCompatibility.cmake b/share/cmake-3.18/Modules/ITKCompatibility.cmake
index 7d211b6..7d211b6 100644
--- a/share/cmake-3.17/Modules/ITKCompatibility.cmake
+++ b/share/cmake-3.18/Modules/ITKCompatibility.cmake
diff --git a/share/cmake-3.18/Modules/InstallRequiredSystemLibraries.cmake b/share/cmake-3.18/Modules/InstallRequiredSystemLibraries.cmake
new file mode 100644
index 0000000..caca697
--- /dev/null
+++ b/share/cmake-3.18/Modules/InstallRequiredSystemLibraries.cmake
@@ -0,0 +1,772 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+InstallRequiredSystemLibraries
+------------------------------
+
+Include this module to search for compiler-provided system runtime
+libraries and add install rules for them. Some optional variables
+may be set prior to including the module to adjust behavior:
+
+``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS``
+ Specify additional runtime libraries that may not be detected.
+ After inclusion any detected libraries will be appended to this.
+
+``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP``
+ Set to TRUE to skip calling the :command:`install(PROGRAMS)` command to
+ allow the includer to specify its own install rule, using the value of
+ ``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS`` to get the list of libraries.
+
+``CMAKE_INSTALL_DEBUG_LIBRARIES``
+ Set to TRUE to install the debug runtime libraries when available
+ with MSVC tools.
+
+``CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY``
+ Set to TRUE to install only the debug runtime libraries with MSVC
+ tools even if the release runtime libraries are also available.
+
+``CMAKE_INSTALL_UCRT_LIBRARIES``
+ Set to TRUE to install the Windows Universal CRT libraries for
+ app-local deployment (e.g. to Windows XP). This is meaningful
+ only with MSVC from Visual Studio 2015 or higher.
+
+ One may set a ``CMAKE_WINDOWS_KITS_10_DIR`` *environment variable*
+ to an absolute path to tell CMake to look for Windows 10 SDKs in
+ a custom location. The specified directory is expected to contain
+ ``Redist/ucrt/DLLs/*`` directories.
+
+``CMAKE_INSTALL_MFC_LIBRARIES``
+ Set to TRUE to install the MSVC MFC runtime libraries.
+
+``CMAKE_INSTALL_OPENMP_LIBRARIES``
+ Set to TRUE to install the MSVC OpenMP runtime libraries
+
+``CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION``
+ Specify the :command:`install(PROGRAMS)` command ``DESTINATION``
+ option. If not specified, the default is ``bin`` on Windows
+ and ``lib`` elsewhere.
+
+``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS``
+ Set to TRUE to disable warnings about required library files that
+ do not exist. (For example, Visual Studio Express editions may
+ not provide the redistributable files.)
+
+``CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT``
+ Specify the :command:`install(PROGRAMS)` command ``COMPONENT``
+ option. If not specified, no such option will be used.
+#]=======================================================================]
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
+
+set(_IRSL_HAVE_Intel FALSE)
+set(_IRSL_HAVE_MSVC FALSE)
+foreach(LANG IN ITEMS C CXX Fortran)
+ if("${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "Intel")
+ if(NOT _IRSL_HAVE_Intel)
+ get_filename_component(_Intel_basedir "${CMAKE_${LANG}_COMPILER}" PATH)
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(_Intel_archdir intel64)
+ else()
+ set(_Intel_archdir ia32)
+ endif()
+ set(_Intel_compiler_ver ${CMAKE_${LANG}_COMPILER_VERSION})
+ if(WIN32)
+ get_filename_component(_Intel_redistdir "${_Intel_basedir}/../../redist/${_Intel_archdir}/compiler" ABSOLUTE)
+ elseif(APPLE)
+ get_filename_component(_Intel_redistdir "${_Intel_basedir}/../../compiler/lib" ABSOLUTE)
+ else()
+ if(EXISTS "${_Intel_basedir}/../lib/${_Intel_archdir}_lin")
+ get_filename_component(_Intel_redistdir "${_Intel_basedir}/../lib/${_Intel_archdir}" ABSOLUTE)
+ else()
+ get_filename_component(_Intel_redistdir "${_Intel_basedir}/../../compiler/lib/${_Intel_archdir}_lin" ABSOLUTE)
+ endif()
+ endif()
+ set(_IRSL_HAVE_Intel TRUE)
+ endif()
+ elseif("${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "MSVC")
+ set(_IRSL_HAVE_MSVC TRUE)
+ endif()
+endforeach()
+
+if(MSVC)
+ file(TO_CMAKE_PATH "$ENV{SYSTEMROOT}" SYSTEMROOT)
+
+ if(CMAKE_CL_64)
+ if(MSVC_VERSION GREATER 1599)
+ # VS 10 and later:
+ set(CMAKE_MSVC_ARCH x64)
+ else()
+ # VS 9 and earlier:
+ set(CMAKE_MSVC_ARCH amd64)
+ endif()
+ else()
+ set(CMAKE_MSVC_ARCH x86)
+ endif()
+
+ get_filename_component(devenv_dir "${CMAKE_MAKE_PROGRAM}" PATH)
+ get_filename_component(base_dir "${devenv_dir}/../.." ABSOLUTE)
+
+ if(MSVC_VERSION EQUAL 1300)
+ set(__install__libs
+ "${SYSTEMROOT}/system32/msvcp70.dll"
+ "${SYSTEMROOT}/system32/msvcr70.dll"
+ )
+ endif()
+
+ if(MSVC_VERSION EQUAL 1310)
+ set(__install__libs
+ "${SYSTEMROOT}/system32/msvcp71.dll"
+ "${SYSTEMROOT}/system32/msvcr71.dll"
+ )
+ endif()
+
+ if(MSVC_TOOLSET_VERSION EQUAL 80)
+ # Find the runtime library redistribution directory.
+ get_filename_component(msvc_install_dir
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]" ABSOLUTE)
+ if(DEFINED MSVC80_REDIST_DIR AND EXISTS "${MSVC80_REDIST_DIR}")
+ set(MSVC_REDIST_DIR "${MSVC80_REDIST_DIR}") # use old cache entry
+ endif()
+ find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest
+ PATHS
+ "${msvc_install_dir}/../../VC/redist"
+ "${base_dir}/VC/redist"
+ )
+ mark_as_advanced(MSVC_REDIST_DIR)
+ set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT")
+
+ # Install the manifest that allows DLLs to be loaded from the
+ # directory containing the executable.
+ if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
+ set(__install__libs
+ "${MSVC_CRT_DIR}/Microsoft.VC80.CRT.manifest"
+ "${MSVC_CRT_DIR}/msvcm80.dll"
+ "${MSVC_CRT_DIR}/msvcp80.dll"
+ "${MSVC_CRT_DIR}/msvcr80.dll"
+ )
+ else()
+ set(__install__libs)
+ endif()
+
+ if(CMAKE_INSTALL_DEBUG_LIBRARIES)
+ set(MSVC_CRT_DIR
+ "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugCRT")
+ set(__install__libs ${__install__libs}
+ "${MSVC_CRT_DIR}/Microsoft.VC80.DebugCRT.manifest"
+ "${MSVC_CRT_DIR}/msvcm80d.dll"
+ "${MSVC_CRT_DIR}/msvcp80d.dll"
+ "${MSVC_CRT_DIR}/msvcr80d.dll"
+ )
+ endif()
+ endif()
+
+ if(MSVC_TOOLSET_VERSION EQUAL 90)
+ # Find the runtime library redistribution directory.
+ get_filename_component(msvc_install_dir
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]" ABSOLUTE)
+ get_filename_component(msvc_express_install_dir
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\9.0;InstallDir]" ABSOLUTE)
+ if(DEFINED MSVC90_REDIST_DIR AND EXISTS "${MSVC90_REDIST_DIR}")
+ set(MSVC_REDIST_DIR "${MSVC90_REDIST_DIR}") # use old cache entry
+ endif()
+ find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
+ PATHS
+ "${msvc_install_dir}/../../VC/redist"
+ "${msvc_express_install_dir}/../../VC/redist"
+ "${base_dir}/VC/redist"
+ )
+ mark_as_advanced(MSVC_REDIST_DIR)
+ set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT")
+
+ # Install the manifest that allows DLLs to be loaded from the
+ # directory containing the executable.
+ if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
+ set(__install__libs
+ "${MSVC_CRT_DIR}/Microsoft.VC90.CRT.manifest"
+ "${MSVC_CRT_DIR}/msvcm90.dll"
+ "${MSVC_CRT_DIR}/msvcp90.dll"
+ "${MSVC_CRT_DIR}/msvcr90.dll"
+ )
+ else()
+ set(__install__libs)
+ endif()
+
+ if(CMAKE_INSTALL_DEBUG_LIBRARIES)
+ set(MSVC_CRT_DIR
+ "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugCRT")
+ set(__install__libs ${__install__libs}
+ "${MSVC_CRT_DIR}/Microsoft.VC90.DebugCRT.manifest"
+ "${MSVC_CRT_DIR}/msvcm90d.dll"
+ "${MSVC_CRT_DIR}/msvcp90d.dll"
+ "${MSVC_CRT_DIR}/msvcr90d.dll"
+ )
+ endif()
+ endif()
+
+ set(MSVC_REDIST_NAME "")
+ set(_MSVC_DLL_VERSION "")
+ set(_MSVC_IDE_VERSION "")
+ if(MSVC_VERSION GREATER_EQUAL 2000)
+ message(WARNING "MSVC ${MSVC_VERSION} not yet supported.")
+ elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 143)
+ message(WARNING "MSVC toolset v${MSVC_TOOLSET_VERSION} not yet supported.")
+ elseif(MSVC_TOOLSET_VERSION EQUAL 142)
+ set(MSVC_REDIST_NAME VC142)
+ set(_MSVC_DLL_VERSION 140)
+ set(_MSVC_IDE_VERSION 16)
+ if(MSVC_VERSION EQUAL 1920)
+ # VS2019 named this differently prior to update 1.
+ set(MSVC_REDIST_NAME VC141)
+ endif()
+ elseif(MSVC_TOOLSET_VERSION EQUAL 141)
+ set(MSVC_REDIST_NAME VC141)
+ set(_MSVC_DLL_VERSION 140)
+ set(_MSVC_IDE_VERSION 15)
+ if(MSVC_VERSION EQUAL 1910)
+ # VS2017 named this differently prior to update 3.
+ set(MSVC_REDIST_NAME VC150)
+ endif()
+ elseif(MSVC_TOOLSET_VERSION)
+ set(MSVC_REDIST_NAME VC${MSVC_TOOLSET_VERSION})
+ math(EXPR _MSVC_DLL_VERSION "${MSVC_TOOLSET_VERSION} / 10 * 10")
+ math(EXPR _MSVC_IDE_VERSION "${MSVC_TOOLSET_VERSION} / 10")
+ endif()
+
+ set(_MSVCRT_DLL_VERSION "")
+ set(_MSVCRT_IDE_VERSION "")
+ if(_MSVC_IDE_VERSION GREATER_EQUAL 10)
+ set(_MSVCRT_DLL_VERSION "${_MSVC_DLL_VERSION}")
+ set(_MSVCRT_IDE_VERSION "${_MSVC_IDE_VERSION}")
+ endif()
+
+ if(_MSVCRT_DLL_VERSION)
+ set(v "${_MSVCRT_DLL_VERSION}")
+ set(vs "${_MSVCRT_IDE_VERSION}")
+
+ # Find the runtime library redistribution directory.
+ if(vs VERSION_LESS 15 AND DEFINED MSVC${vs}_REDIST_DIR AND EXISTS "${MSVC${vs}_REDIST_DIR}")
+ set(MSVC_REDIST_DIR "${MSVC${vs}_REDIST_DIR}") # use old cache entry
+ endif()
+ if(NOT vs VERSION_LESS 15)
+ set(_vs_redist_paths "")
+ # The toolset and its redistributables may come with any VS version 15 or newer.
+ set(_MSVC_IDE_VERSIONS 16 15)
+ foreach(_vs_ver ${_MSVC_IDE_VERSIONS})
+ set(_vs_glob_redist_paths "")
+ cmake_host_system_information(RESULT _vs_dir QUERY VS_${_vs_ver}_DIR) # undocumented query
+ if(IS_DIRECTORY "${_vs_dir}")
+ file(GLOB _vs_glob_redist_paths "${_vs_dir}/VC/Redist/MSVC/*")
+ list(REVERSE _vs_glob_redist_paths)
+ list(APPEND _vs_redist_paths ${_vs_glob_redist_paths})
+ endif()
+ unset(_vs_glob_redist_paths)
+ endforeach()
+ unset(_MSVC_IDE_VERSIONS)
+ unset(_vs_dir)
+ else()
+ get_filename_component(_vs_dir
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${vs}.0;InstallDir]" ABSOLUTE)
+ set(programfilesx86 "ProgramFiles(x86)")
+ set(_vs_redist_paths
+ "${_vs_dir}/../../VC/redist"
+ "${base_dir}/VC/redist"
+ "$ENV{ProgramFiles}/Microsoft Visual Studio ${vs}.0/VC/redist"
+ "$ENV{${programfilesx86}}/Microsoft Visual Studio ${vs}.0/VC/redist"
+ )
+ unset(_vs_dir)
+ unset(programfilesx86)
+ endif()
+ find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.CRT PATHS ${_vs_redist_paths})
+ unset(_vs_redist_paths)
+ mark_as_advanced(MSVC_REDIST_DIR)
+ set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.CRT")
+
+ if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
+ set(__install__libs
+ "${MSVC_CRT_DIR}/msvcp${v}.dll"
+ )
+ if(NOT vs VERSION_LESS 14)
+ foreach(crt
+ "${MSVC_CRT_DIR}/msvcp${v}_1.dll"
+ "${MSVC_CRT_DIR}/msvcp${v}_2.dll"
+ "${MSVC_CRT_DIR}/msvcp${v}_codecvt_ids.dll"
+ "${MSVC_CRT_DIR}/vcruntime${v}_1.dll"
+ )
+ if(EXISTS "${crt}")
+ list(APPEND __install__libs "${crt}")
+ endif()
+ endforeach()
+ list(APPEND __install__libs
+ "${MSVC_CRT_DIR}/vcruntime${v}.dll"
+ "${MSVC_CRT_DIR}/concrt${v}.dll"
+ )
+ else()
+ list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}.dll")
+ endif()
+ else()
+ set(__install__libs)
+ endif()
+
+ if(CMAKE_INSTALL_DEBUG_LIBRARIES)
+ set(MSVC_CRT_DIR
+ "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.DebugCRT")
+ set(__install__libs ${__install__libs}
+ "${MSVC_CRT_DIR}/msvcp${v}d.dll"
+ )
+ if(NOT vs VERSION_LESS 14)
+ foreach(crt
+ "${MSVC_CRT_DIR}/msvcp${v}_1d.dll"
+ "${MSVC_CRT_DIR}/msvcp${v}_2d.dll"
+ "${MSVC_CRT_DIR}/msvcp${v}d_codecvt_ids.dll"
+ "${MSVC_CRT_DIR}/vcruntime${v}_1d.dll"
+ )
+ if(EXISTS "${crt}")
+ list(APPEND __install__libs "${crt}")
+ endif()
+ endforeach()
+ list(APPEND __install__libs
+ "${MSVC_CRT_DIR}/vcruntime${v}d.dll"
+ "${MSVC_CRT_DIR}/concrt${v}d.dll"
+ )
+ else()
+ list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}d.dll")
+ endif()
+ endif()
+
+ if(CMAKE_INSTALL_UCRT_LIBRARIES AND NOT vs VERSION_LESS 14)
+ # Find the Windows Kits directory.
+ get_filename_component(windows_kits_dir
+ "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE)
+ set(programfilesx86 "ProgramFiles(x86)")
+ if(";${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION};$ENV{UCRTVersion};$ENV{WindowsSDKVersion};" MATCHES [=[;(10\.[0-9.]+)[;\]]=])
+ set(__ucrt_version "${CMAKE_MATCH_1}/")
+ else()
+ set(__ucrt_version "")
+ endif()
+ find_path(WINDOWS_KITS_DIR
+ NAMES
+ Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
+ Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll
+ PATHS
+ $ENV{CMAKE_WINDOWS_KITS_10_DIR}
+ "${windows_kits_dir}"
+ "$ENV{ProgramFiles}/Windows Kits/10"
+ "$ENV{${programfilesx86}}/Windows Kits/10"
+ )
+ mark_as_advanced(WINDOWS_KITS_DIR)
+
+ # Glob the list of UCRT DLLs.
+ if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
+ if(EXISTS "${WINDOWS_KITS_DIR}/Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/ucrtbase.dll")
+ file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/${__ucrt_version}ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
+ else()
+ file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/Redist/ucrt/DLLs/${CMAKE_MSVC_ARCH}/*.dll")
+ endif()
+ list(APPEND __install__libs ${__ucrt_dlls})
+ endif()
+ if(CMAKE_INSTALL_DEBUG_LIBRARIES)
+ if(EXISTS "${WINDOWS_KITS_DIR}/bin/${__ucrt_version}${CMAKE_MSVC_ARCH}/ucrt/ucrtbased.dll")
+ file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${__ucrt_version}${CMAKE_MSVC_ARCH}/ucrt/*.dll")
+ else()
+ file(GLOB __ucrt_dlls "${WINDOWS_KITS_DIR}/bin/${CMAKE_MSVC_ARCH}/ucrt/*.dll")
+ endif()
+ list(APPEND __install__libs ${__ucrt_dlls})
+ endif()
+ endif()
+ endif()
+
+ if(CMAKE_INSTALL_MFC_LIBRARIES)
+ if(MSVC_VERSION EQUAL 1300)
+ set(__install__libs ${__install__libs}
+ "${SYSTEMROOT}/system32/mfc70.dll"
+ )
+ endif()
+
+ if(MSVC_VERSION EQUAL 1310)
+ set(__install__libs ${__install__libs}
+ "${SYSTEMROOT}/system32/mfc71.dll"
+ )
+ endif()
+
+ if(MSVC_VERSION EQUAL 1400)
+ if(CMAKE_INSTALL_DEBUG_LIBRARIES)
+ set(MSVC_MFC_DIR
+ "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugMFC")
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/Microsoft.VC80.DebugMFC.manifest"
+ "${MSVC_MFC_DIR}/mfc80d.dll"
+ "${MSVC_MFC_DIR}/mfc80ud.dll"
+ "${MSVC_MFC_DIR}/mfcm80d.dll"
+ "${MSVC_MFC_DIR}/mfcm80ud.dll"
+ )
+ endif()
+
+ set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFC")
+ # Install the manifest that allows DLLs to be loaded from the
+ # directory containing the executable.
+ if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/Microsoft.VC80.MFC.manifest"
+ "${MSVC_MFC_DIR}/mfc80.dll"
+ "${MSVC_MFC_DIR}/mfc80u.dll"
+ "${MSVC_MFC_DIR}/mfcm80.dll"
+ "${MSVC_MFC_DIR}/mfcm80u.dll"
+ )
+ endif()
+
+ # include the language dll's for vs8 as well as the actual dll's
+ set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFCLOC")
+ # Install the manifest that allows DLLs to be loaded from the
+ # directory containing the executable.
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFCLOC_DIR}/Microsoft.VC80.MFCLOC.manifest"
+ "${MSVC_MFCLOC_DIR}/mfc80chs.dll"
+ "${MSVC_MFCLOC_DIR}/mfc80cht.dll"
+ "${MSVC_MFCLOC_DIR}/mfc80enu.dll"
+ "${MSVC_MFCLOC_DIR}/mfc80esp.dll"
+ "${MSVC_MFCLOC_DIR}/mfc80deu.dll"
+ "${MSVC_MFCLOC_DIR}/mfc80fra.dll"
+ "${MSVC_MFCLOC_DIR}/mfc80ita.dll"
+ "${MSVC_MFCLOC_DIR}/mfc80jpn.dll"
+ "${MSVC_MFCLOC_DIR}/mfc80kor.dll"
+ )
+ endif()
+
+ if(MSVC_VERSION EQUAL 1500)
+ if(CMAKE_INSTALL_DEBUG_LIBRARIES)
+ set(MSVC_MFC_DIR
+ "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugMFC")
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/Microsoft.VC90.DebugMFC.manifest"
+ "${MSVC_MFC_DIR}/mfc90d.dll"
+ "${MSVC_MFC_DIR}/mfc90ud.dll"
+ "${MSVC_MFC_DIR}/mfcm90d.dll"
+ "${MSVC_MFC_DIR}/mfcm90ud.dll"
+ )
+ endif()
+
+ set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFC")
+ # Install the manifest that allows DLLs to be loaded from the
+ # directory containing the executable.
+ if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/Microsoft.VC90.MFC.manifest"
+ "${MSVC_MFC_DIR}/mfc90.dll"
+ "${MSVC_MFC_DIR}/mfc90u.dll"
+ "${MSVC_MFC_DIR}/mfcm90.dll"
+ "${MSVC_MFC_DIR}/mfcm90u.dll"
+ )
+ endif()
+
+ # include the language dll's for vs9 as well as the actual dll's
+ set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFCLOC")
+ # Install the manifest that allows DLLs to be loaded from the
+ # directory containing the executable.
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFCLOC_DIR}/Microsoft.VC90.MFCLOC.manifest"
+ "${MSVC_MFCLOC_DIR}/mfc90chs.dll"
+ "${MSVC_MFCLOC_DIR}/mfc90cht.dll"
+ "${MSVC_MFCLOC_DIR}/mfc90enu.dll"
+ "${MSVC_MFCLOC_DIR}/mfc90esp.dll"
+ "${MSVC_MFCLOC_DIR}/mfc90deu.dll"
+ "${MSVC_MFCLOC_DIR}/mfc90fra.dll"
+ "${MSVC_MFCLOC_DIR}/mfc90ita.dll"
+ "${MSVC_MFCLOC_DIR}/mfc90jpn.dll"
+ "${MSVC_MFCLOC_DIR}/mfc90kor.dll"
+ )
+ endif()
+
+ set(_MFC_DLL_VERSION "")
+ set(_MFC_IDE_VERSION "")
+ if(_MSVC_IDE_VERSION GREATER_EQUAL 10)
+ set(_MFC_DLL_VERSION ${_MSVC_DLL_VERSION})
+ set(_MFC_IDE_VERSION ${_MSVC_IDE_VERSION})
+ endif()
+
+ if(_MFC_DLL_VERSION)
+ set(v "${_MFC_DLL_VERSION}")
+ set(vs "${_MFC_IDE_VERSION}")
+
+ # Starting with VS 15 the MFC DLLs may be in a different directory.
+ if (NOT vs VERSION_LESS 15)
+ file(GLOB _MSVC_REDIST_DIRS "${MSVC_REDIST_DIR}/../*")
+ find_path(MSVC_REDIST_MFC_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.MFC
+ PATHS ${_MSVC_REDIST_DIRS} NO_DEFAULT_PATH)
+ mark_as_advanced(MSVC_REDIST_MFC_DIR)
+ unset(_MSVC_REDIST_DIRS)
+ else()
+ set(MSVC_REDIST_MFC_DIR "${MSVC_REDIST_DIR}")
+ endif()
+
+ # Multi-Byte Character Set versions of MFC are available as optional
+ # addon since Visual Studio 12. So for version 12 or higher, check
+ # whether they are available and exclude them if they are not.
+
+ if(CMAKE_INSTALL_DEBUG_LIBRARIES)
+ set(MSVC_MFC_DIR
+ "${MSVC_REDIST_MFC_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.DebugMFC")
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/mfc${v}ud.dll"
+ "${MSVC_MFC_DIR}/mfcm${v}ud.dll"
+ )
+ if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}d.dll")
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/mfc${v}d.dll"
+ )
+ endif()
+ if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfcm${v}d.dll")
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/mfcm${v}d.dll"
+ )
+ endif()
+ endif()
+
+ set(MSVC_MFC_DIR "${MSVC_REDIST_MFC_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.MFC")
+ if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/mfc${v}u.dll"
+ "${MSVC_MFC_DIR}/mfcm${v}u.dll"
+ )
+ if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}.dll")
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/mfc${v}.dll"
+ )
+ endif()
+ if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfcm${v}.dll")
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFC_DIR}/mfcm${v}.dll"
+ )
+ endif()
+ endif()
+
+ # include the language dll's as well as the actual dll's
+ set(MSVC_MFCLOC_DIR "${MSVC_REDIST_MFC_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.MFCLOC")
+ set(__install__libs ${__install__libs}
+ "${MSVC_MFCLOC_DIR}/mfc${v}chs.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}cht.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}deu.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}enu.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}esn.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}fra.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}ita.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}jpn.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}kor.dll"
+ "${MSVC_MFCLOC_DIR}/mfc${v}rus.dll"
+ )
+ endif()
+ endif()
+
+ # MSVC 8 was the first version with OpenMP
+ # Furthermore, there is no debug version of this
+ if(CMAKE_INSTALL_OPENMP_LIBRARIES AND _IRSL_HAVE_MSVC)
+ set(_MSOMP_DLL_VERSION ${_MSVC_DLL_VERSION})
+ set(_MSOMP_IDE_VERSION ${_MSVC_IDE_VERSION})
+
+ if(_MSOMP_DLL_VERSION)
+ set(v "${_MSOMP_DLL_VERSION}")
+ set(vs "${_MSOMP_IDE_VERSION}")
+ set(MSVC_OPENMP_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.${MSVC_REDIST_NAME}.OPENMP")
+
+ if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
+ set(__install__libs ${__install__libs}
+ "${MSVC_OPENMP_DIR}/vcomp${v}.dll")
+ endif()
+ endif()
+ endif()
+
+ foreach(lib
+ ${__install__libs}
+ )
+ if(EXISTS ${lib})
+ set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
+ ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
+ else()
+ if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
+ message(WARNING "system runtime library file does not exist: '${lib}'")
+ # This warning indicates an incomplete Visual Studio installation
+ # or a bug somewhere above here in this file.
+ # If you would like to avoid this warning, fix the real problem, or
+ # set CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS before including
+ # this file.
+ endif()
+ endif()
+ endforeach()
+endif()
+
+if(_IRSL_HAVE_Intel)
+ unset(__install_libs)
+ if(CMAKE_INSTALL_OPENMP_LIBRARIES)
+ if(WIN32)
+ list(APPEND __install_libs "${_Intel_redistdir}/libiomp5md.dll" "${_Intel_redistdir}/libiompstubs5md.dll")
+ elseif(APPLE)
+ list(APPEND __install_libs "${_Intel_redistdir}/libiomp5.dylib" "${_Intel_redistdir}/libiompstubs5.dylib")
+ else()
+ list(APPEND __install_libs "${_Intel_redistdir}/libiomp5.so" "${_Intel_redistdir}/libiompstubs5.so")
+ if(_Intel_compiler_ver VERSION_LESS 17)
+ list(APPEND __install_libs "${_Intel_redistdir}/libomp_db.so")
+ endif()
+ if(_Intel_compiler_ver VERSION_LESS 13)
+ list(APPEND __install_libs "${_Intel_redistdir}/libiompprof5.so")
+ endif()
+ endif()
+ endif()
+ if(WIN32)
+ set(__install_dirs "${_Intel_redistdir}/1033")
+ if(EXISTS "${_Intel_redistdir}/1041")
+ list(APPEND __install_dirs "${_Intel_redistdir}/1041")
+ endif()
+ if(_Intel_compiler_ver VERSION_LESS 18)
+ list(APPEND __install_dirs "${_Intel_redistdir}/irml" "${_Intel_redistdir}/irml_c")
+ endif()
+ foreach(__Intel_lib IN ITEMS cilkrts20.dll libchkp.dll libioffload_host.dll libirngmd.dll
+ libmmd.dll libmmdd.dll libmpx.dll liboffload.dll svml_dispmd.dll)
+
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ if(CMAKE_C_COMPILER_ID STREQUAL Intel OR CMAKE_CXX_COMPILER_ID STREQUAL Intel)
+ list(APPEND __install_libs "${_Intel_redistdir}/libgfxoffload.dll")
+ endif()
+ if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
+ foreach(__Intel_lib IN ITEMS ifdlg100.dll libicaf.dll libifcoremd.dll libifcoremdd.dll libifcorert.dll libifcorertd.dll libifportmd.dll)
+
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ endif()
+ elseif(APPLE)
+ foreach(__Intel_lib IN ITEMS libchkp.dylib libcilkrts.5.dylib libcilkrts.dylib libimf.dylib libintlc.dylib libirc.dylib libirng.dylib libsvml.dylib)
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ if(CMAKE_C_COMPILER_ID STREQUAL Intel OR CMAKE_CXX_COMPILER_ID STREQUAL Intel)
+ if(_Intel_compiler_ver VERSION_LESS 17)
+ list(APPEND __install_libs "${_Intel_redistdir}/libistrconv.dylib")
+ endif()
+ endif()
+ if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
+ foreach(__Intel_lib IN ITEMS libifcore.dylib libifcoremt.dylib libifport.dylib libifportmt.dylib)
+
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ endif()
+ else()
+ foreach(__Intel_lib IN ITEMS libchkp.so libcilkrts.so libcilkrts.so.5 libimf.so libintlc.so libintlc.so.5 libirc.so libpdbx.so libpdbx.so.5 libsvml.so)
+
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ if(_Intel_compiler_ver VERSION_GREATER_EQUAL 13)
+ foreach(__Intel_lib IN ITEMS libirng.so liboffload.so liboffload.so.5)
+
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ endif()
+ if(CMAKE_C_COMPILER_ID STREQUAL Intel OR CMAKE_CXX_COMPILER_ID STREQUAL Intel)
+ set(__install_dirs "${_Intel_redistdir}/irml")
+ list(APPEND __install_libs "${_Intel_redistdir}/cilk_db.so")
+ if(_Intel_compiler_ver VERSION_GREATER_EQUAL 15)
+ list(APPEND __install_libs "${_Intel_redistdir}/libistrconv.so" "${_Intel_redistdir}/libgfxoffload.so")
+ endif()
+ endif()
+ if(_Intel_compiler_ver VERSION_GREATER_EQUAL 16)
+ foreach(__Intel_lib IN ITEMS libioffload_host.so libioffload_host.so.5 libioffload_target.so libioffload_target.so.5 libmpx.so offload_main)
+
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ endif()
+ if(_Intel_compiler_ver VERSION_LESS 15)
+ foreach(__Intel_lib IN ITEMS libcxaguard.so libcxaguard.so.5)
+
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ endif()
+ if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
+ foreach(__Intel_lib IN ITEMS libicaf.so libifcore.so libifcore.so.5 libifcoremt.so libifcoremt.so.5 libifport.so libifport.so.5)
+
+ list(APPEND __install_libs "${_Intel_redistdir}/${__Intel_lib}")
+ endforeach()
+ endif()
+ endif()
+
+ foreach(lib IN LISTS __install_libs)
+ if(EXISTS ${lib})
+ list(APPEND CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS ${lib})
+ else()
+ if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
+ message(WARNING "system runtime library file does not exist: '${lib}'")
+ endif()
+ endif()
+ endforeach()
+
+ foreach(dir IN LISTS __install_dirs)
+ if(EXISTS ${dir})
+ list(APPEND CMAKE_INSTALL_SYSTEM_RUNTIME_DIRECTORIES ${dir})
+ else()
+ if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
+ message(WARNING "system runtime library file does not exist: '${dir}'")
+ endif()
+ endif()
+ endforeach()
+endif()
+
+if(WATCOM)
+ get_filename_component( CompilerPath ${CMAKE_C_COMPILER} PATH )
+ if(CMAKE_C_COMPILER_VERSION)
+ set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
+ else()
+ set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
+ endif()
+ string(REGEX MATCHALL "[0-9]+" _watcom_version_list "${_compiler_version}")
+ list(GET _watcom_version_list 0 _watcom_major)
+ list(GET _watcom_version_list 1 _watcom_minor)
+ set( __install__libs
+ ${CompilerPath}/clbr${_watcom_major}${_watcom_minor}.dll
+ ${CompilerPath}/mt7r${_watcom_major}${_watcom_minor}.dll
+ ${CompilerPath}/plbr${_watcom_major}${_watcom_minor}.dll )
+ foreach(lib
+ ${__install__libs}
+ )
+ if(EXISTS ${lib})
+ set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
+ ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
+ else()
+ if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
+ message(WARNING "system runtime library file does not exist: '${lib}'")
+ # This warning indicates an incomplete Watcom installation
+ # or a bug somewhere above here in this file.
+ # If you would like to avoid this warning, fix the real problem, or
+ # set CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS before including
+ # this file.
+ endif()
+ endif()
+ endforeach()
+endif()
+
+
+# Include system runtime libraries in the installation if any are
+# specified by CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS.
+if(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
+ if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP)
+ if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION)
+ if(WIN32)
+ set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION bin)
+ else()
+ set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION lib)
+ endif()
+ endif()
+ if(CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT)
+ set(_CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT
+ COMPONENT ${CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT})
+ endif()
+ install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}
+ DESTINATION ${CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION}
+ ${_CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT}
+ )
+
+ install(DIRECTORY ${CMAKE_INSTALL_SYSTEM_RUNTIME_DIRECTORIES}
+ DESTINATION ${CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION}
+ ${_CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT}
+ )
+ endif()
+endif()
+
+cmake_policy(POP)
diff --git a/share/cmake-3.17/Modules/IntelVSImplicitPath/CMakeLists.txt b/share/cmake-3.18/Modules/IntelVSImplicitPath/CMakeLists.txt
index d115704..d115704 100644
--- a/share/cmake-3.17/Modules/IntelVSImplicitPath/CMakeLists.txt
+++ b/share/cmake-3.18/Modules/IntelVSImplicitPath/CMakeLists.txt
diff --git a/share/cmake-3.17/Modules/IntelVSImplicitPath/detect.cmake b/share/cmake-3.18/Modules/IntelVSImplicitPath/detect.cmake
index 20753be..20753be 100644
--- a/share/cmake-3.17/Modules/IntelVSImplicitPath/detect.cmake
+++ b/share/cmake-3.18/Modules/IntelVSImplicitPath/detect.cmake
diff --git a/share/cmake-3.17/Modules/IntelVSImplicitPath/hello.f b/share/cmake-3.18/Modules/IntelVSImplicitPath/hello.f
index e69de29..e69de29 100644
--- a/share/cmake-3.17/Modules/IntelVSImplicitPath/hello.f
+++ b/share/cmake-3.18/Modules/IntelVSImplicitPath/hello.f
diff --git a/share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake b/share/cmake-3.18/Modules/Internal/CMakeCheckCompilerFlag.cmake
index 9c8dfb6..9c8dfb6 100644
--- a/share/cmake-3.17/Modules/Internal/CMakeCheckCompilerFlag.cmake
+++ b/share/cmake-3.18/Modules/Internal/CMakeCheckCompilerFlag.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.DS_Store.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.DS_Store.in
index 5be0eeb..5be0eeb 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.DS_Store.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.DS_Store.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.Description.plist.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.Description.plist.in
index 3d11476..3d11476 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.Description.plist.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.Description.plist.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.Info.plist.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.Info.plist.in
index 6e32500..6e32500 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.Info.plist.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.Info.plist.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.NuGet.nuspec.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.NuGet.nuspec.in
index b7beb5d..b7beb5d 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.NuGet.nuspec.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.NuGet.nuspec.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
index c715860..c715860 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
index 5f5f17a..5f5f17a 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXScriptLauncher.rsrc.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
index 23a1483..23a1483 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.Info.plist.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
index de30ea1..de30ea1 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.OSXX11.main.scpt.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.RuntimeScript.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.RuntimeScript.in
index f27444f..f27444f 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.RuntimeScript.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.RuntimeScript.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.STGZ_Header.sh.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
index a857aa5..a857aa5 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.STGZ_Header.sh.in
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.VolumeIcon.icns.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
index c59217e..c59217e 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.VolumeIcon.icns.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.background.png.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.background.png.in
index a32ab37..a32ab37 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.background.png.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.background.png.in
Binary files differ
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPack.distribution.dist.in b/share/cmake-3.18/Modules/Internal/CPack/CPack.distribution.dist.in
index f20e66c..f20e66c 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPack.distribution.dist.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPack.distribution.dist.in
diff --git a/share/cmake-3.18/Modules/Internal/CPack/CPackDeb.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackDeb.cmake
new file mode 100644
index 0000000..db35e3a
--- /dev/null
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackDeb.cmake
@@ -0,0 +1,776 @@
+# 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)
+
+ # If the description ends with a newline (e.g. typically if it was read
+ # from a file) the last line will be empty. We drop it here, otherwise
+ # it would be replaced by a `.` which would lead to the package violating
+ # the extended-description-contains-empty-paragraph debian policy
+ list(POP_BACK _lines _last_line)
+ string(STRIP "${_last_line}" _last_line_strip)
+ if(_last_line_strip)
+ list(APPEND _lines "${_last_line_strip}")
+ endif()
+
+ # 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.17/Modules/Internal/CPack/CPackExternal.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackExternal.cmake
index e4d055a..e4d055a 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPackExternal.cmake
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackExternal.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackFreeBSD.cmake
index ae40532..ae40532 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPackFreeBSD.cmake
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackFreeBSD.cmake
diff --git a/share/cmake-3.18/Modules/Internal/CPack/CPackNuGet.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackNuGet.cmake
new file mode 100644
index 0000000..20eed2e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackNuGet.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.
+
+# 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}"
+ RESULT_VARIABLE _nuget_result
+ )
+ if(NOT _nuget_result EQUAL 0)
+ message(FATAL_ERROR "Nuget pack failed")
+ endif()
+
+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}"
+ RESULT_VARIABLE _nuget_result
+ )
+ if(NOT _nuget_result EQUAL 0)
+ message(FATAL_ERROR "Nuget pack failed")
+ endif()
+
+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}"
+ RESULT_VARIABLE _nuget_result
+ )
+ if(NOT _nuget_result EQUAL 0)
+ message(FATAL_ERROR "Nuget pack failed")
+ endif()
+ 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}"
+ RESULT_VARIABLE _nuget_result
+ )
+ if(NOT _nuget_result EQUAL 0)
+ message(FATAL_ERROR "Nuget pack failed")
+ endif()
+ 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.18/Modules/Internal/CPack/CPackRPM.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackRPM.cmake
new file mode 100644
index 0000000..08bbc68
--- /dev/null
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackRPM.cmake
@@ -0,0 +1,1889 @@
+# 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)
+ # CPACK_RPM_POST_TRANS_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_POST_TRANS_SCRIPT_FILE)
+ # May be used to embed a post installation/uninstallation/transaction script in the spec file.
+ # The referred script file(s) will be read and directly
+ # put after the %post or %postun or %posttrans 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)
+ # CPACK_RPM_PRE_TRANS_SCRIPT_FILE (or CPACK_RPM_<COMPONENT>_PRE_TRANS_SCRIPT_FILE)
+ # May be used to embed a pre installation/uninstallation/transaction script in the spec file.
+ # The referred script file(s) will be read and directly
+ # put after the %pre or %preun or %pretrans section
+ foreach(RPM_SCRIPT_FILE_TYPE_ "INSTALL" "UNINSTALL" "TRANS")
+ 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\@
+
+%posttrans
+\@CPACK_RPM_SPEC_POSTTRANS\@
+
+%postun
+\@CPACK_RPM_SPEC_POSTUNINSTALL\@
+
+%pre
+\@CPACK_RPM_SPEC_PREINSTALL\@
+
+%pretrans
+\@CPACK_RPM_SPEC_PRETRANS\@
+
+%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.17/Modules/Internal/CPack/CPackWIX.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackWIX.cmake
index d1875f2..d1875f2 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPackWIX.cmake
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackWIX.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/CPackZIP.cmake b/share/cmake-3.18/Modules/Internal/CPack/CPackZIP.cmake
index f619de4..f619de4 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/CPackZIP.cmake
+++ b/share/cmake-3.18/Modules/Internal/CPack/CPackZIP.cmake
diff --git a/share/cmake-3.17/Modules/Internal/CPack/NSIS.InstallOptions.ini.in b/share/cmake-3.18/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
index d92d779..d92d779 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/NSIS.InstallOptions.ini.in
diff --git a/share/cmake-3.18/Modules/Internal/CPack/NSIS.template.in b/share/cmake-3.18/Modules/Internal/CPack/NSIS.template.in
new file mode 100644
index 0000000..6009ce0
--- /dev/null
+++ b/share/cmake-3.18/Modules/Internal/CPack/NSIS.template.in
@@ -0,0 +1,979 @@
+; 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@
+@CPACK_NSIS_MANIFEST_DPI_AWARE_CODE@
+
+ !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.17/Modules/Internal/CPack/WIX.template.in b/share/cmake-3.18/Modules/Internal/CPack/WIX.template.in
index c4fc83a..c4fc83a 100644
--- a/share/cmake-3.17/Modules/Internal/CPack/WIX.template.in
+++ b/share/cmake-3.18/Modules/Internal/CPack/WIX.template.in
diff --git a/share/cmake-3.17/Modules/Internal/FeatureTesting.cmake b/share/cmake-3.18/Modules/Internal/FeatureTesting.cmake
index 72d96b3..72d96b3 100644
--- a/share/cmake-3.17/Modules/Internal/FeatureTesting.cmake
+++ b/share/cmake-3.18/Modules/Internal/FeatureTesting.cmake
diff --git a/share/cmake-3.17/Modules/KDE3Macros.cmake b/share/cmake-3.18/Modules/KDE3Macros.cmake
index 1c353ba..1c353ba 100644
--- a/share/cmake-3.17/Modules/KDE3Macros.cmake
+++ b/share/cmake-3.18/Modules/KDE3Macros.cmake
diff --git a/share/cmake-3.17/Modules/MacOSXBundleInfo.plist.in b/share/cmake-3.18/Modules/MacOSXBundleInfo.plist.in
index a4009bc..a4009bc 100644
--- a/share/cmake-3.17/Modules/MacOSXBundleInfo.plist.in
+++ b/share/cmake-3.18/Modules/MacOSXBundleInfo.plist.in
diff --git a/share/cmake-3.17/Modules/MacOSXFrameworkInfo.plist.in b/share/cmake-3.18/Modules/MacOSXFrameworkInfo.plist.in
index 18eaef2..18eaef2 100644
--- a/share/cmake-3.17/Modules/MacOSXFrameworkInfo.plist.in
+++ b/share/cmake-3.18/Modules/MacOSXFrameworkInfo.plist.in
diff --git a/share/cmake-3.17/Modules/MacroAddFileDependencies.cmake b/share/cmake-3.18/Modules/MacroAddFileDependencies.cmake
index ca60b57..ca60b57 100644
--- a/share/cmake-3.17/Modules/MacroAddFileDependencies.cmake
+++ b/share/cmake-3.18/Modules/MacroAddFileDependencies.cmake
diff --git a/share/cmake-3.17/Modules/MatlabTestsRedirect.cmake b/share/cmake-3.18/Modules/MatlabTestsRedirect.cmake
index fc36fc3..fc36fc3 100644
--- a/share/cmake-3.17/Modules/MatlabTestsRedirect.cmake
+++ b/share/cmake-3.18/Modules/MatlabTestsRedirect.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-Clang-C.cmake
index 0e8a1c0..0e8a1c0 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-Clang-CXX.cmake
index 6b9110e..6b9110e 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU-ASM.cmake
index c256df6..c256df6 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-GNU-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU-C.cmake
index f49d528..f49d528 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU-CXX.cmake
index d047801..d047801 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU-Fortran.cmake
index 07772a7..07772a7 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-GNU.cmake b/share/cmake-3.18/Modules/Platform/AIX-GNU.cmake
index 5a532c7..5a532c7 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-C.cmake
index 67b3171..67b3171 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-CXX.cmake
index 7894d24..7894d24 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-Fortran.cmake b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-Fortran.cmake
index 19e59d6..19e59d6 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-VisualAge-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-VisualAge-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL-ASM.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL-ASM.cmake
index ea0944b..ea0944b 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-XL-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-XL-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL-C.cmake
index cbfd58b..cbfd58b 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-XL-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL-CXX.cmake
index 78baef5..78baef5 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-XL-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL-Fortran.cmake
index 6d4f655..6d4f655 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-XL-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XL.cmake b/share/cmake-3.18/Modules/Platform/AIX-XL.cmake
index 2a8c159..2a8c159 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-XL.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-XL.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XLClang-C.cmake b/share/cmake-3.18/Modules/Platform/AIX-XLClang-C.cmake
index f0bedc5..f0bedc5 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-XLClang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-XLClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XLClang-CXX.cmake b/share/cmake-3.18/Modules/Platform/AIX-XLClang-CXX.cmake
index cceb576..cceb576 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-XLClang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-XLClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX-XLClang.cmake b/share/cmake-3.18/Modules/Platform/AIX-XLClang.cmake
index c932095..c932095 100644
--- a/share/cmake-3.17/Modules/Platform/AIX-XLClang.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX-XLClang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX.cmake b/share/cmake-3.18/Modules/Platform/AIX.cmake
index 03cef51..03cef51 100644
--- a/share/cmake-3.17/Modules/Platform/AIX.cmake
+++ b/share/cmake-3.18/Modules/Platform/AIX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/AIX/ExportImportList b/share/cmake-3.18/Modules/Platform/AIX/ExportImportList
index 891bce7..891bce7 100644
--- a/share/cmake-3.17/Modules/Platform/AIX/ExportImportList
+++ b/share/cmake-3.18/Modules/Platform/AIX/ExportImportList
diff --git a/share/cmake-3.17/Modules/Platform/ARTOS-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/ARTOS-GNU-C.cmake
index fe8d782..fe8d782 100644
--- a/share/cmake-3.17/Modules/Platform/ARTOS-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/ARTOS-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/ARTOS.cmake b/share/cmake-3.18/Modules/Platform/ARTOS.cmake
index f9365d6..f9365d6 100644
--- a/share/cmake-3.17/Modules/Platform/ARTOS.cmake
+++ b/share/cmake-3.18/Modules/Platform/ARTOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/Android-Clang-ASM.cmake
index 6448da6..6448da6 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Clang-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/Android-Clang-C.cmake
index 9e16911..9e16911 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Android-Clang-CXX.cmake
index 85d5088..85d5088 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android-Clang.cmake
index 759448b..759448b 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Clang.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Android-Common.cmake b/share/cmake-3.18/Modules/Platform/Android-Common.cmake
new file mode 100644
index 0000000..581fde4
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Android-Common.cmake
@@ -0,0 +1,218 @@
+# 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_COMMON)
+ return()
+endif()
+set(__ANDROID_COMPILER_COMMON 1)
+
+if(CMAKE_ANDROID_NDK)
+ # <ndk>/build/core/definitions.mk
+
+ set(_ANDROID_STL_TYPES
+ none
+ system
+ c++_static
+ c++_shared
+ gabi++_static
+ gabi++_shared
+ gnustl_static
+ gnustl_shared
+ stlport_static
+ stlport_shared
+ )
+
+ if(CMAKE_ANDROID_STL_TYPE)
+ list(FIND _ANDROID_STL_TYPES "${CMAKE_ANDROID_STL_TYPE}" _ANDROID_STL_TYPE_FOUND)
+ if(_ANDROID_STL_TYPE_FOUND EQUAL -1)
+ string(REPLACE ";" "\n " _msg ";${_ANDROID_STL_TYPES}")
+ message(FATAL_ERROR
+ "The CMAKE_ANDROID_STL_TYPE '${CMAKE_ANDROID_STL_TYPE}' is not one of the allowed values:${_msg}\n"
+ )
+ endif()
+ unset(_ANDROID_STL_TYPE_FOUND)
+ elseif(IS_DIRECTORY ${CMAKE_ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++)
+ set(CMAKE_ANDROID_STL_TYPE "gnustl_static")
+ else()
+ set(CMAKE_ANDROID_STL_TYPE "c++_static")
+ endif()
+
+ unset(_ANDROID_STL_TYPES)
+
+ # Forward Android-specific platform variables to try_compile projects.
+ list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
+ CMAKE_ANDROID_STL_TYPE
+ )
+endif()
+
+if(CMAKE_ANDROID_STL_TYPE)
+ if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
+ if(CMAKE_ANDROID_STL_TYPE STREQUAL "system")
+ set(_ANDROID_STL_EXCEPTIONS 0)
+ set(_ANDROID_STL_RTTI 0)
+ macro(__android_stl lang)
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " -stdlib=libstdc++")
+ endmacro()
+ elseif(CMAKE_ANDROID_STL_TYPE STREQUAL "c++_static")
+ set(_ANDROID_STL_EXCEPTIONS 1)
+ set(_ANDROID_STL_RTTI 1)
+ macro(__android_stl lang)
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " -stdlib=libc++")
+ string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " -static-libstdc++")
+ endmacro()
+ elseif(CMAKE_ANDROID_STL_TYPE STREQUAL "c++_shared")
+ set(_ANDROID_STL_EXCEPTIONS 1)
+ set(_ANDROID_STL_RTTI 1)
+ macro(__android_stl lang)
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " -stdlib=libc++")
+ endmacro()
+ elseif(CMAKE_ANDROID_STL_TYPE STREQUAL "none")
+ set(_ANDROID_STL_RTTI 0)
+ set(_ANDROID_STL_EXCEPTIONS 0)
+ macro(__android_stl lang)
+ # FIXME: Add a way to add project-wide language-specific compile-only flags.
+ set(CMAKE_CXX_COMPILE_OBJECT
+ "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE> -nostdinc++")
+ string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " -nostdlib++")
+ endmacro()
+ else()
+ message(FATAL_ERROR
+ "Android: STL '${CMAKE_ANDROID_STL_TYPE}' not supported by this NDK."
+ )
+ endif()
+ elseif(CMAKE_ANDROID_NDK)
+
+ macro(__android_stl_inc lang dir req)
+ if(EXISTS "${dir}")
+ list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${dir}")
+ elseif(${req})
+ message(FATAL_ERROR
+ "Android: STL '${CMAKE_ANDROID_STL_TYPE}' include directory not found:\n"
+ " ${dir}"
+ )
+ endif()
+ endmacro()
+
+ macro(__android_stl_lib lang lib req)
+ if(CMAKE_ANDROID_ARCH_ABI MATCHES "^armeabi" AND NOT CMAKE_ANDROID_ARM_MODE)
+ get_filename_component(_ANDROID_STL_LIBDIR "${lib}" DIRECTORY)
+ get_filename_component(_ANDROID_STL_LIBNAME "${lib}" NAME)
+ set(_ANDROID_STL_LIBTHUMB "${_ANDROID_STL_LIBDIR}/thumb/${_ANDROID_STL_LIBNAME}")
+ unset(_ANDROID_STL_LIBDIR)
+ unset(_ANDROID_STL_LIBNAME)
+ else()
+ set(_ANDROID_STL_LIBTHUMB "")
+ endif()
+
+ if(_ANDROID_STL_LIBTHUMB AND EXISTS "${_ANDROID_STL_LIBTHUMB}")
+ string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " \"${_ANDROID_STL_LIBTHUMB}\"")
+ elseif(EXISTS "${lib}")
+ string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " \"${lib}\"")
+ elseif(${req})
+ message(FATAL_ERROR
+ "Android: STL '${CMAKE_ANDROID_STL_TYPE}' library file not found:\n"
+ " ${lib}"
+ )
+ endif()
+
+ unset(_ANDROID_STL_LIBTHUMB)
+ endmacro()
+
+ include(Platform/Android/ndk-stl-${CMAKE_ANDROID_STL_TYPE})
+ else()
+ macro(__android_stl lang)
+ endmacro()
+ endif()
+else()
+ macro(__android_stl lang)
+ endmacro()
+endif()
+
+# The NDK toolchain configuration files at:
+#
+# <ndk>/[build/core/]toolchains/*/setup.mk
+#
+# contain logic to set TARGET_CFLAGS and TARGET_LDFLAGS (and debug/release
+# variants) to tell their build system what flags to pass for each ABI.
+# We need to produce the same flags here to produce compatible binaries.
+# We initialize these variables here and set them in the compiler-specific
+# modules that include this one. Then we use them in the macro below when
+# it is called.
+set(_ANDROID_ABI_INIT_CFLAGS "")
+set(_ANDROID_ABI_INIT_CFLAGS_DEBUG "")
+set(_ANDROID_ABI_INIT_CFLAGS_RELEASE "")
+set(_ANDROID_ABI_INIT_LDFLAGS "")
+set(_ANDROID_ABI_INIT_EXE_LDFLAGS "")
+
+macro(__android_compiler_common lang)
+ if(_ANDROID_ABI_INIT_CFLAGS)
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " ${_ANDROID_ABI_INIT_CFLAGS}")
+ endif()
+ if(_ANDROID_ABI_INIT_CFLAGS_DEBUG)
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " ${_ANDROID_ABI_INIT_CFLAGS_DEBUG}")
+ endif()
+ if(_ANDROID_ABI_INIT_CFLAGS_RELEASE)
+ string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " ${_ANDROID_ABI_INIT_CFLAGS_RELEASE}")
+ string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " ${_ANDROID_ABI_INIT_CFLAGS_RELEASE}")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " ${_ANDROID_ABI_INIT_CFLAGS_RELEASE}")
+ endif()
+ if(_ANDROID_ABI_INIT_LDFLAGS)
+ foreach(t EXE SHARED MODULE)
+ string(APPEND CMAKE_${t}_LINKER_FLAGS_INIT " ${_ANDROID_ABI_INIT_LDFLAGS}")
+ endforeach()
+ endif()
+ if(_ANDROID_ABI_INIT_EXE_LDFLAGS)
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${_ANDROID_ABI_INIT_EXE_LDFLAGS}")
+ endif()
+
+ if(DEFINED _ANDROID_STL_EXCEPTIONS)
+ if(_ANDROID_STL_EXCEPTIONS)
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " -fexceptions")
+ else()
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " -fno-exceptions")
+ endif()
+ endif()
+
+ if("x${lang}" STREQUAL "xCXX" AND DEFINED _ANDROID_STL_RTTI)
+ if(_ANDROID_STL_RTTI)
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " -frtti")
+ else()
+ string(APPEND CMAKE_${lang}_FLAGS_INIT " -fno-rtti")
+ endif()
+ endif()
+
+ if("x${lang}" STREQUAL "xCXX")
+ __android_stl(CXX)
+ endif()
+
+ if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
+ string(APPEND CMAKE_${lang}_STANDARD_LIBRARIES " -latomic -lm")
+ endif()
+
+ # <ndk>/build/core/definitions.mk appends the sysroot's include directory
+ # explicitly at the end of the command-line include path so that it
+ # precedes the toolchain's builtin include directories. This is
+ # necessary so that Android API-version-specific headers are preferred
+ # over those in the toolchain's `include-fixed` directory (which cannot
+ # possibly match all versions).
+ #
+ # Do not do this for a standalone toolchain because it is already
+ # tied to a specific API version.
+ if(CMAKE_ANDROID_NDK AND NOT CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
+ if(CMAKE_SYSROOT_COMPILE)
+ set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}")
+ else()
+ set(_cmake_sysroot_compile "${CMAKE_SYSROOT}")
+ endif()
+ if(NOT CMAKE_ANDROID_NDK_DEPRECATED_HEADERS)
+ list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES
+ "${_cmake_sysroot_compile}/usr/include"
+ "${_cmake_sysroot_compile}/usr/include/${CMAKE_ANDROID_ARCH_TRIPLE}"
+ )
+ else()
+ list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${_cmake_sysroot_compile}/usr/include")
+ endif()
+ unset(_cmake_sysroot_compile)
+ endif()
+endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/Android-Determine-C.cmake b/share/cmake-3.18/Modules/Platform/Android-Determine-C.cmake
index c7d1d15..c7d1d15 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Determine-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Determine-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/Android-Determine-CXX.cmake
index 3a3de88..3a3de88 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Determine.cmake b/share/cmake-3.18/Modules/Platform/Android-Determine.cmake
index 2225897..2225897 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Determine.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Determine.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/Android-GNU-C.cmake
index 78a6a50..78a6a50 100644
--- a/share/cmake-3.17/Modules/Platform/Android-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/Android-GNU-CXX.cmake
index d30d0ff..d30d0ff 100644
--- a/share/cmake-3.17/Modules/Platform/Android-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android-GNU.cmake
index e1f79ca..e1f79ca 100644
--- a/share/cmake-3.17/Modules/Platform/Android-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android-Initialize.cmake b/share/cmake-3.18/Modules/Platform/Android-Initialize.cmake
index b90dd7a..b90dd7a 100644
--- a/share/cmake-3.17/Modules/Platform/Android-Initialize.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android-Initialize.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android.cmake b/share/cmake-3.18/Modules/Platform/Android.cmake
index 8ffa1b2..8ffa1b2 100644
--- a/share/cmake-3.17/Modules/Platform/Android.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-NDK.cmake b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-NDK.cmake
index f56e1d5..f56e1d5 100644
--- a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-NDK.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-NDK.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-Standalone.cmake b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
index 5095aff..5095aff 100644
--- a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler-Standalone.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler.cmake
index f9c2d89..f9c2d89 100644
--- a/share/cmake-3.17/Modules/Platform/Android/Determine-Compiler.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/Determine-Compiler.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
index f4717d5..f4717d5 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
index b71a674..b71a674 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-arm64-v8a-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-Clang.cmake
index b857bd3..b857bd3 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-GNU.cmake
index 33e8b31..33e8b31 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
index a7412f5..a7412f5 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
index 1fda184..1fda184 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v6-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
index e2ab58b..e2ab58b 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
index b7c328d..b7c328d 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-armeabi-v7a-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-common-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-common-Clang.cmake
index 6025170..6025170 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-common-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-common-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-common-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-common-GNU.cmake
index 40d829f..40d829f 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-common-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-common-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-common.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-common.cmake
index b01ef61..b01ef61 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-common.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-common.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-mips-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-mips-Clang.cmake
index 73addde..73addde 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-mips-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-mips-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-mips-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-mips-GNU.cmake
index 982ad46..982ad46 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-mips-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-mips-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-mips64-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-mips64-Clang.cmake
index 603f1b2..603f1b2 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-mips64-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-mips64-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-mips64-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-mips64-GNU.cmake
index a1bc2c2..a1bc2c2 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-mips64-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-mips64-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-x86-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-x86-Clang.cmake
index fe7eace..fe7eace 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-x86-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-x86-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-x86-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-x86-GNU.cmake
index 76ea5ca..76ea5ca 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-x86-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-x86-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-Clang.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-x86_64-Clang.cmake
index 3cbcd49..3cbcd49 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-x86_64-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-GNU.cmake b/share/cmake-3.18/Modules/Platform/Android/abi-x86_64-GNU.cmake
index 441bdcd..441bdcd 100644
--- a/share/cmake-3.17/Modules/Platform/Android/abi-x86_64-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/abi-x86_64-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++.cmake
index 1cafd1f..1cafd1f 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_shared.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_shared.cmake
index 3389408..3389408 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_shared.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_shared.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_static.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_static.cmake
index 061a5c2..061a5c2 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-c++_static.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-c++_static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++.cmake
index d3b9e45..d3b9e45 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
index 314c1e0..314c1e0 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_shared.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_static.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
index f4a1d3c..f4a1d3c 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gabi++_static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl.cmake
index 46cedc6..46cedc6 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
index f20cc4d..f20cc4d 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_shared.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_static.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
index af4cc2a..af4cc2a 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-gnustl_static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-none.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-none.cmake
index 45122f7..45122f7 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-none.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-none.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport.cmake
index efad33b..efad33b 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_shared.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
index 2b5846b..2b5846b 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_shared.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_static.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_static.cmake
index bf60307..bf60307 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-stlport_static.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-stlport_static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-system.cmake b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-system.cmake
index 7d86a40..7d86a40 100644
--- a/share/cmake-3.17/Modules/Platform/Android/ndk-stl-system.cmake
+++ b/share/cmake-3.18/Modules/Platform/Android/ndk-stl-system.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Absoft-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-Absoft-Fortran.cmake
index 8caa202..8caa202 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Absoft-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Absoft-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Apple-Swift.cmake b/share/cmake-3.18/Modules/Platform/Apple-Apple-Swift.cmake
index 7ca3e36..7ca3e36 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Apple-Swift.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Apple-Swift.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-C.cmake
index f45ccf4..f45ccf4 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-CXX.cmake
index 1128204..1128204 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJC.cmake b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJC.cmake
index b78edb1..b78edb1 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJC.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJCXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
index ed172f1..ed172f1 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-AppleClang-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-ASM.cmake
index 935cce9..935cce9 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Clang-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-C.cmake
index 4d0dc82..4d0dc82 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-CXX.cmake
index 6c1ddc1..6c1ddc1 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJC.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-OBJC.cmake
index 63cd846..63cd846 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJC.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Clang-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJCXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang-OBJCXX.cmake
index 28fc352..28fc352 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Clang-OBJCXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Clang-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Clang.cmake b/share/cmake-3.18/Modules/Platform/Apple-Clang.cmake
index 0681bfb..0681bfb 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Clang.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Clang.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-C.cmake
index 5481c99..5481c99 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-CXX.cmake
index 727f726..727f726 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-Fortran.cmake
index 2f53603..2f53603 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJC.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-OBJC.cmake
index aa8b33f..aa8b33f 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJC.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-GNU-OBJC.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJCXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU-OBJCXX.cmake
index 919e11d..919e11d 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-GNU-OBJCXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-GNU-OBJCXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-GNU.cmake b/share/cmake-3.18/Modules/Platform/Apple-GNU.cmake
index 9572736..9572736 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Intel-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-Intel-C.cmake
index 95bb270..95bb270 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Intel-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Intel-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Intel-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-Intel-CXX.cmake
index b87e512..b87e512 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Intel-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Intel-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Intel-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-Intel-Fortran.cmake
index e54e237..e54e237 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Intel-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Intel-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-Intel.cmake b/share/cmake-3.18/Modules/Platform/Apple-Intel.cmake
index a854be9..a854be9 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-Intel.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-Intel.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-NAG-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-NAG-Fortran.cmake
index 8d3e741..8d3e741 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-NAG-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-NAG-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-NVIDIA-CUDA.cmake b/share/cmake-3.18/Modules/Platform/Apple-NVIDIA-CUDA.cmake
index bec3948..bec3948 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-NVIDIA-CUDA.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-NVIDIA-CUDA.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-PGI-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-PGI-C.cmake
index 1e11724..1e11724 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-PGI-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-PGI-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-PGI-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-PGI-CXX.cmake
index aa5daf7..aa5daf7 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-PGI-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-PGI-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-PGI-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Apple-PGI-Fortran.cmake
index 1e3e4b1..1e3e4b1 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-PGI-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-PGI-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-PGI.cmake b/share/cmake-3.18/Modules/Platform/Apple-PGI.cmake
index 8d343b7..8d343b7 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-PGI.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-PGI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-VisualAge-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-VisualAge-C.cmake
index 7fa6032..7fa6032 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-VisualAge-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-VisualAge-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-VisualAge-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-VisualAge-CXX.cmake
index 12dd347..12dd347 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-VisualAge-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-VisualAge-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-XL-C.cmake b/share/cmake-3.18/Modules/Platform/Apple-XL-C.cmake
index e4fc3dd..e4fc3dd 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-XL-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Apple-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/Apple-XL-CXX.cmake
index ea330c8..ea330c8 100644
--- a/share/cmake-3.17/Modules/Platform/Apple-XL-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Apple-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BSDOS.cmake b/share/cmake-3.18/Modules/Platform/BSDOS.cmake
index 47852f8..47852f8 100644
--- a/share/cmake-3.17/Modules/Platform/BSDOS.cmake
+++ b/share/cmake-3.18/Modules/Platform/BSDOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BeOS.cmake b/share/cmake-3.18/Modules/Platform/BeOS.cmake
index ef811bd..ef811bd 100644
--- a/share/cmake-3.17/Modules/Platform/BeOS.cmake
+++ b/share/cmake-3.18/Modules/Platform/BeOS.cmake
diff --git a/share/cmake-3.18/Modules/Platform/BlueGeneL.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneL.cmake
new file mode 100644
index 0000000..0ed9975
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneL.cmake
@@ -0,0 +1,40 @@
+#the compute nodes on BlueGene/L don't support shared libs
+set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
+
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic
+set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -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_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 ".a") # .a
+set(CMAKE_EXECUTABLE_SUFFIX "") # .exe
+set(CMAKE_DL_LIBS "" )
+
+set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+
+
+include(Platform/UnixPaths)
+
+if(CMAKE_COMPILER_IS_GNUCC)
+ set(CMAKE_C_LINK_EXECUTABLE
+ "<CMAKE_C_COMPILER> -Wl,-relax <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lgcc,-lc -lnss_files -lnss_dns -lresolv")
+else()
+ # when using IBM xlc we probably don't want to link to -lgcc
+ set(CMAKE_C_LINK_EXECUTABLE
+ "<CMAKE_C_COMPILER> -Wl,-relax <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lc -lnss_files -lnss_dns -lresolv")
+endif()
+
+if(CMAKE_COMPILER_IS_GNUCXX)
+ set(CMAKE_CXX_LINK_EXECUTABLE
+ "<CMAKE_CXX_COMPILER> -Wl,-relax <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lstdc++,-lgcc,-lc -lnss_files -lnss_dns -lresolv")
+else()
+ # when using the IBM xlC we probably don't want to link to -lgcc
+ set(CMAKE_CXX_LINK_EXECUTABLE
+ "<CMAKE_CXX_COMPILER> -Wl,-relax <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -Wl,-lstdc++,-lc -lnss_files -lnss_dns -lresolv")
+endif()
diff --git a/share/cmake-3.18/Modules/Platform/BlueGeneP-base.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-base.cmake
new file mode 100644
index 0000000..7095dd8
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-base.cmake
@@ -0,0 +1,114 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+#
+# BlueGeneP base platform file.
+#
+# NOTE: Do not set your platform to "BlueGeneP-base". This file is included
+# by the real platform files. Use one of these two platforms instead:
+#
+# BlueGeneP-dynamic For dynamically linked builds
+# BlueGeneP-static For statically linked builds
+#
+# This platform file tries its best to adhere to the behavior of the MPI
+# compiler wrappers included with the latest BG/P drivers.
+#
+
+
+#
+# For BGP builds, we're cross compiling, but we don't want to re-root things
+# (e.g. with CMAKE_FIND_ROOT_PATH) because users may have libraries anywhere on
+# the shared filesystems, and this may lie outside the root. Instead, we set the
+# system directories so that the various system BGP CNK library locations are
+# searched first. This is not the clearest thing in the world, given IBM's driver
+# layout, but this should cover all the standard ones.
+#
+set(CMAKE_SYSTEM_LIBRARY_PATH
+ /bgsys/drivers/ppcfloor/comm/default/lib # default comm layer (used by mpi compiler wrappers)
+ /bgsys/drivers/ppcfloor/comm/sys/lib # DCMF, other lower-level comm libraries
+ /bgsys/drivers/ppcfloor/runtime/SPI # other low-level stuff
+ /bgsys/drivers/ppcfloor/gnu-linux/lib # CNK python installation directory
+ /bgsys/drivers/ppcfloor/gnu-linux/powerpc-bgp-linux/lib # CNK Linux image -- standard runtime libs, pthread, etc.
+)
+
+#
+# This adds directories that find commands should specifically ignore for cross compiles.
+# Most of these directories are the includeand lib directories for the frontend on BG/P systems.
+# Not ignoring these can cause things like FindX11 to find a frontend PPC version mistakenly.
+# We use this on BG instead of re-rooting because backend libraries are typically strewn about
+# the filesystem, and we can't re-root ALL backend libraries to a single place.
+#
+set(CMAKE_SYSTEM_IGNORE_PATH
+ /lib /lib64 /include
+ /usr/lib /usr/lib64 /usr/include
+ /usr/local/lib /usr/local/lib64 /usr/local/include
+ /usr/X11/lib /usr/X11/lib64 /usr/X11/include
+ /usr/lib/X11 /usr/lib64/X11 /usr/include/X11
+ /usr/X11R6/lib /usr/X11R6/lib64 /usr/X11R6/include
+ /usr/X11R7/lib /usr/X11R7/lib64 /usr/X11R7/include
+)
+
+#
+# Indicate that this is a unix-like system
+#
+set(UNIX 1)
+
+#
+# Library prefixes, suffixes, extra libs.
+#
+set(CMAKE_LINK_LIBRARY_SUFFIX "")
+set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # lib
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") # .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")
+
+#
+# This macro needs to be called for dynamic library support. Unfortunately on BGP,
+# We can't support both static and dynamic links in the same platform file. The
+# dynamic link platform file needs to call this explicitly to set up dynamic linking.
+#
+macro(__BlueGeneP_set_dynamic_flags compiler_id lang)
+ if (${compiler_id} STREQUAL XL)
+ # Flags for XL compilers if we explicitly detected XL
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-qpic")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-qpie")
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-qpic")
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-qmkshrobj -qnostaticlink")
+ set(BGP_${lang}_DYNAMIC_EXE_FLAGS "-qnostaticlink -qnostaticlink=libgcc")
+ else()
+ # Assume flags for GNU compilers (if the ID is GNU *or* anything else).
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC")
+ set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIE")
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
+ set(BGP_${lang}_DYNAMIC_EXE_FLAGS "-dynamic")
+ endif()
+
+ # Both toolchains use the GNU linker on BG/P, so these options are shared.
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-rpath,")
+ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_${lang}_FLAG "-Wl,-rpath-link,")
+ set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,-soname,")
+ set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-dynamic")
+ set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "") # +s, flag for exe link to use shared lib
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") # : or empty
+
+ set(BGP_${lang}_DEFAULT_EXE_FLAGS
+ "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_LINK_EXECUTABLE
+ "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGP_${lang}_DYNAMIC_EXE_FLAGS} ${BGP_${lang}_DEFAULT_EXE_FLAGS}")
+endmacro()
+
+#
+# This macro needs to be called for static builds. Right now it just adds -Wl,-relax
+# to the link line.
+#
+macro(__BlueGeneP_set_static_flags compiler_id lang)
+ set(BGP_${lang}_DEFAULT_EXE_FLAGS
+ "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_LINK_EXECUTABLE
+ "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGP_${lang}_DEFAULT_EXE_FLAGS}")
+endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
index 3491870..3491870 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
index d3c946b..d3c946b 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
index 9db75be..9db75be 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
index 918ee70..918ee70 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
index cfefb0b..cfefb0b 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
index 9c295bd..9c295bd 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic.cmake
index daebab3..daebab3 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-dynamic.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-dynamic.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-C.cmake
index 7c60794..7c60794 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
index edceaad..edceaad 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
index 6b2265a..6b2265a 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-C.cmake
index 7d4fc13..7d4fc13 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
index 1df276e..1df276e 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
index 2bdb6d9..2bdb6d9 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-static-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneP-static.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneP-static.cmake
index 3675ed2..3675ed2 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneP-static.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneP-static.cmake
diff --git a/share/cmake-3.18/Modules/Platform/BlueGeneQ-base.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-base.cmake
new file mode 100644
index 0000000..94cb0a8
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-base.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.
+
+
+#
+# Blue Gene/Q base platform file.
+#
+# NOTE: Do not set your platform to "BlueGeneQ-base". This file is
+# included by the real platform files. Use one of these two platforms
+# instead:
+#
+# BlueGeneQ-dynamic For dynamically linked executables
+# BlueGeneQ-static For statically linked executables
+#
+# The platform you choose doesn't affect whether or not you can build
+# shared or static libraries -- it ONLY changs whether exeuatbles are linked
+# statically or dynamically.
+#
+# This platform file tries its best to adhere to the behavior of the MPI
+# compiler wrappers included with the latest BG/P drivers.
+#
+
+#
+# This adds directories that find commands should specifically ignore
+# for cross compiles. Most of these directories are the includeand
+# lib directories for the frontend on BG/P systems. Not ignoring
+# these can cause things like FindX11 to find a frontend PPC version
+# mistakenly. We use this on BG instead of re-rooting because backend
+# libraries are typically strewn about the filesystem, and we can't
+# re-root ALL backend libraries to a single place.
+#
+set(CMAKE_SYSTEM_IGNORE_PATH
+ /lib /lib64 /include
+ /usr/lib /usr/lib64 /usr/include
+ /usr/local/lib /usr/local/lib64 /usr/local/include
+ /usr/X11/lib /usr/X11/lib64 /usr/X11/include
+ /usr/lib/X11 /usr/lib64/X11 /usr/include/X11
+ /usr/X11R6/lib /usr/X11R6/lib64 /usr/X11R6/include
+ /usr/X11R7/lib /usr/X11R7/lib64 /usr/X11R7/include
+)
+
+#
+# Indicate that this is a unix-like system
+#
+set(UNIX 1)
+
+#
+# Library prefixes, suffixes, extra libs.
+#
+set(CMAKE_LINK_LIBRARY_SUFFIX "")
+set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # lib
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") # .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")
+
+#
+# BG/Q supports dynamic libraries regardless of whether we're building
+# static or dynamic *executables*.
+#
+set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
+set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+
+#
+# For BGQ builds, we're cross compiling, but we don't want to re-root things
+# (e.g. with CMAKE_FIND_ROOT_PATH) because users may have libraries anywhere on
+# the shared filesystems, and this may lie outside the root. Instead, we set the
+# system directories so that the various system BG CNK library locations are
+# searched first. This is not the clearest thing in the world, given IBM's driver
+# layout, but this should cover all the standard ones.
+#
+macro(__BlueGeneQ_common_setup compiler_id lang)
+ # Need to use the version of the comm lib compiled with the right compiler.
+ set(__BlueGeneQ_commlib_dir gcc)
+ if (${compiler_id} STREQUAL XL)
+ set(__BlueGeneQ_commlib_dir xl)
+ endif()
+
+ set(CMAKE_SYSTEM_LIBRARY_PATH
+ /bgsys/drivers/ppcfloor/comm/default/lib # default comm layer (used by mpi compiler wrappers)
+ /bgsys/drivers/ppcfloor/comm/${__BlueGeneQ_commlib_dir}/lib # PAMI, other lower-level comm libraries
+ /bgsys/drivers/ppcfloor/gnu-linux/lib # CNK python installation directory
+ /bgsys/drivers/ppcfloor/gnu-linux/powerpc64-bgq-linux/lib # CNK Linux image -- standard runtime libs, pthread, etc.
+ )
+
+ # Add all the system include paths.
+ set(CMAKE_SYSTEM_INCLUDE_PATH
+ /bgsys/drivers/ppcfloor/comm/sys/include
+ /bgsys/drivers/ppcfloor/
+ /bgsys/drivers/ppcfloor/spi/include
+ /bgsys/drivers/ppcfloor/spi/include/kernel/cnk
+ /bgsys/drivers/ppcfloor/comm/${__BlueGeneQ_commlib_dir}/include
+ )
+
+ # Ensure that the system directories are included with the regular compilers, as users will expect this
+ # to do the same thing as the MPI compilers, which add these flags.
+ set(BGQ_SYSTEM_INCLUDES "")
+ foreach(dir ${CMAKE_SYSTEM_INCLUDE_PATH})
+ string(APPEND BGQ_SYSTEM_INCLUDES " -I${dir}")
+ endforeach()
+ set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${BGQ_SYSTEM_INCLUDES} <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+ set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> ${BGQ_SYSTEM_INCLUDES} <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+
+ #
+ # Code below does setup for shared libraries. That this is done
+ # regardless of whether the platform is static or dynamic -- you can make
+ # shared libraries even if you intend to make static executables, you just
+ # can't make a dynamic executable if you use the static platform file.
+ #
+ if (${compiler_id} STREQUAL XL)
+ # Flags for XL compilers if we explicitly detected XL
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-qpic")
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-qmkshrobj -qnostaticlink")
+ else()
+ # Assume flags for GNU compilers (if the ID is GNU *or* anything else).
+ set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-fPIC")
+ set(CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS "-shared")
+ endif()
+
+ # Both toolchains use the GNU linker on BG/P, so these options are shared.
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG "-Wl,-rpath,")
+ set(CMAKE_SHARED_LIBRARY_RPATH_LINK_${lang}_FLAG "-Wl,-rpath-link,")
+ set(CMAKE_SHARED_LIBRARY_SONAME_${lang}_FLAG "-Wl,-soname,")
+ set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-dynamic")
+ set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "") # +s, flag for exe link to use shared lib
+ set(CMAKE_SHARED_LIBRARY_RUNTIME_${lang}_FLAG_SEP ":") # : or empty
+
+endmacro()
+
+#
+# This macro needs to be called for dynamic library support. Unfortunately on BG,
+# We can't support both static and dynamic links in the same platform file. The
+# dynamic link platform file needs to call this explicitly to set up dynamic linking.
+#
+macro(__BlueGeneQ_setup_dynamic compiler_id lang)
+ __BlueGeneQ_common_setup(${compiler_id} ${lang})
+
+ if (${compiler_id} STREQUAL XL)
+ set(BGQ_${lang}_DYNAMIC_EXE_FLAGS "-qnostaticlink -qnostaticlink=libgcc")
+ else()
+ set(BGQ_${lang}_DYNAMIC_EXE_FLAGS "-dynamic")
+ endif()
+
+ # For dynamic executables, need to provide special BG/Q arguments.
+ set(BGQ_${lang}_DEFAULT_EXE_FLAGS
+ "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_LINK_EXECUTABLE
+ "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGQ_${lang}_DYNAMIC_EXE_FLAGS} ${BGQ_${lang}_DEFAULT_EXE_FLAGS}")
+endmacro()
+
+#
+# This macro needs to be called for static builds. Right now it just adds -Wl,-relax
+# to the link line.
+#
+macro(__BlueGeneQ_setup_static compiler_id lang)
+ __BlueGeneQ_common_setup(${compiler_id} ${lang})
+
+ # For static executables, use default link settings.
+ set(BGQ_${lang}_DEFAULT_EXE_FLAGS
+ "<FLAGS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+ set(CMAKE_${lang}_LINK_EXECUTABLE
+ "<CMAKE_${lang}_COMPILER> -Wl,-relax ${BGQ_${lang}_DEFAULT_EXE_FLAGS}")
+endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
index 6758304..6758304 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
index 5d40f9f..5d40f9f 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
index 6105999..6105999 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
index c51dacb..c51dacb 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
index 5dbc836..5dbc836 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
index a6ac03b..a6ac03b 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic.cmake
index 9440a3e..9440a3e 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-dynamic.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-dynamic.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
index 5fdc25c..5fdc25c 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
index ad7c092..ad7c092 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
index f32d1d4..f32d1d4 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-C.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-C.cmake
index 67cd57d..67cd57d 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
index a171e7f..a171e7f 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
index c7fbb44..c7fbb44 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static-XL-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static.cmake b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static.cmake
index 79cd391..79cd391 100644
--- a/share/cmake-3.17/Modules/Platform/BlueGeneQ-static.cmake
+++ b/share/cmake-3.18/Modules/Platform/BlueGeneQ-static.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-Clang-C.cmake
index e8343a4..e8343a4 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-Clang-CXX.cmake
index 67775de..67775de 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-Determine-CXX.cmake
index bf37f79..bf37f79 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-C.cmake
index 9eb0ecf..9eb0ecf 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-CXX.cmake
index 2603dcd..2603dcd 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-Fortran.cmake
index d3b49b6..d3b49b6 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU-Fortran.cmake
diff --git a/share/cmake-3.18/Modules/Platform/CYGWIN-GNU.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU.cmake
new file mode 100644
index 0000000..4fa14ce
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-GNU.cmake
@@ -0,0 +1,54 @@
+# 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(__CYGWIN_COMPILER_GNU)
+ return()
+endif()
+set(__CYGWIN_COMPILER_GNU 1)
+
+# TODO: Is -Wl,--enable-auto-import now always default?
+string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " -Wl,--enable-auto-import")
+set(CMAKE_CREATE_WIN32_EXE "-mwindows")
+
+set(CMAKE_GNULD_IMAGE_VERSION
+ "-Wl,--major-image-version,<TARGET_VERSION_MAJOR>,--minor-image-version,<TARGET_VERSION_MINOR>")
+set(CMAKE_GENERATOR_RC windres)
+macro(__cygwin_compiler_gnu lang)
+ # Binary link rules.
+ set(CMAKE_${lang}_CREATE_SHARED_MODULE
+ "<CMAKE_${lang}_COMPILER> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_MODULE_${lang}_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> <LANGUAGE_COMPILE_FLAGS> <CMAKE_SHARED_LIBRARY_${lang}_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>")
+
+ # No -fPIC on cygwin
+ 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 "")
+
+ # 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()
+
+ set(CMAKE_EXE_EXPORTS_${lang}_FLAG "-Wl,--export-all-symbols")
+ # TODO: Is -Wl,--enable-auto-import now always default?
+ string(APPEND CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS " -Wl,--enable-auto-import")
+ set(CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_${lang}_FLAGS}")
+
+ if(NOT CMAKE_RC_COMPILER_INIT)
+ set(CMAKE_RC_COMPILER_INIT windres)
+ endif()
+
+ enable_language(RC)
+endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN-windres.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN-windres.cmake
index 7d787dd..7d787dd 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN-windres.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN-windres.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CYGWIN.cmake b/share/cmake-3.18/Modules/Platform/CYGWIN.cmake
index 9b897bd..9b897bd 100644
--- a/share/cmake-3.17/Modules/Platform/CYGWIN.cmake
+++ b/share/cmake-3.18/Modules/Platform/CYGWIN.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Catamount.cmake b/share/cmake-3.18/Modules/Platform/Catamount.cmake
index 7e9e021..7e9e021 100644
--- a/share/cmake-3.17/Modules/Platform/Catamount.cmake
+++ b/share/cmake-3.18/Modules/Platform/Catamount.cmake
diff --git a/share/cmake-3.17/Modules/Platform/CrayLinuxEnvironment.cmake b/share/cmake-3.18/Modules/Platform/CrayLinuxEnvironment.cmake
index f2aaf3f..f2aaf3f 100644
--- a/share/cmake-3.17/Modules/Platform/CrayLinuxEnvironment.cmake
+++ b/share/cmake-3.18/Modules/Platform/CrayLinuxEnvironment.cmake
diff --git a/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-C.cmake
new file mode 100644
index 0000000..cf71c84
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/DOS-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..cf71c84
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/DOS-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom.cmake b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom.cmake
new file mode 100644
index 0000000..54c452e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/DOS-OpenWatcom.cmake
@@ -0,0 +1,28 @@
+
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system dos")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system dos")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system dos")
+else()
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system dos4g")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system dos4g")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system dos4g")
+endif()
+
+set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
+
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=dos")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=dos -xs")
+
+if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+ set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h)
+endif()
+if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h)
+endif()
diff --git a/share/cmake-3.18/Modules/Platform/DOS.cmake b/share/cmake-3.18/Modules/Platform/DOS.cmake
new file mode 100644
index 0000000..fc95936
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/DOS.cmake
@@ -0,0 +1,14 @@
+set(DOS 1)
+
+set(CMAKE_STATIC_LIBRARY_PREFIX "")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX "")
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_IMPORT_LIBRARY_PREFIX "")
+set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+set(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
+set(CMAKE_DL_LIBS "")
+
+set(CMAKE_FIND_LIBRARY_PREFIXES "")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
diff --git a/share/cmake-3.17/Modules/Platform/Darwin-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/Darwin-Determine-CXX.cmake
index bf37f79..bf37f79 100644
--- a/share/cmake-3.17/Modules/Platform/Darwin-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Darwin-Determine-CXX.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Darwin-Initialize.cmake b/share/cmake-3.18/Modules/Platform/Darwin-Initialize.cmake
new file mode 100644
index 0000000..80e9a40
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Darwin-Initialize.cmake
@@ -0,0 +1,301 @@
+# 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()
+
+function(_apple_resolve_supported_archs_for_sdk_from_system_lib sdk_path ret ret_failed)
+ # Detect the supported SDK architectures by inspecting the main libSystem library.
+ set(common_lib_prefix "${sdk_path}/usr/lib/libSystem")
+ set(system_lib_dylib_path "${common_lib_prefix}.dylib")
+ set(system_lib_tbd_path "${common_lib_prefix}.tbd")
+
+ # Newer SDKs ship text based dylib stub files which contain the architectures supported by the
+ # library in text form.
+ if(EXISTS "${system_lib_tbd_path}")
+ file(STRINGS "${system_lib_tbd_path}" tbd_lines REGEX "^archs: +\\[.+\\]")
+ if(NOT tbd_lines)
+ set(${ret_failed} TRUE PARENT_SCOPE)
+ return()
+ endif()
+
+ # The tbd architectures line looks like the following:
+ # archs: [ armv7, armv7s, arm64, arm64e ]
+ list(GET tbd_lines 0 first_arch_line)
+ string(REGEX REPLACE
+ "archs: +\\[ (.+) \\]" "\\1" arches_comma_separated "${first_arch_line}")
+ string(STRIP "${arches_comma_separated}" arches_comma_separated)
+ string(REPLACE "," ";" arch_list "${arches_comma_separated}")
+ string(REPLACE " " "" arch_list "${arch_list}")
+ if(NOT arch_list)
+ set(${ret_failed} TRUE PARENT_SCOPE)
+ return()
+ endif()
+ set(${ret} "${arch_list}" PARENT_SCOPE)
+ elseif(EXISTS "${system_lib_dylib_path}")
+ # Old SDKs (Xcode < 7) ship dylib files, use lipo to inspect the supported architectures.
+ # Can't use -archs because the option is not available in older Xcode versions.
+ execute_process(
+ COMMAND lipo -info ${system_lib_dylib_path}
+ OUTPUT_VARIABLE lipo_output
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE _stderr
+ RESULT_VARIABLE _failed
+ )
+ if(_failed OR NOT lipo_output OR NOT lipo_output MATCHES "(Non-fat file:|Architectures in the fat file:)")
+ set(${ret_failed} TRUE PARENT_SCOPE)
+ return()
+ endif()
+
+ # The lipo output looks like the following:
+ # Non-fat file: <path> is architecture: i386
+ # Architectures in the fat file: <path> are: i386 x86_64
+ string(REGEX REPLACE
+ "^(.+)is architecture:(.+)" "\\2" arches_space_separated "${lipo_output}")
+ string(REGEX REPLACE
+ "^(.+)are:(.+)" "\\2" arches_space_separated "${arches_space_separated}")
+
+ # Need to clean up the arches, with Xcode 4.6.3 the output of lipo -info contains some
+ # additional info, e.g.
+ # Architectures in the fat file: <path> are: armv7 (cputype (12) cpusubtype (11))
+ string(REGEX REPLACE
+ "\\(.+\\)" "" arches_space_separated "${arches_space_separated}")
+
+ # The output is space separated.
+ string(STRIP "${arches_space_separated}" arches_space_separated)
+ string(REPLACE " " ";" arch_list "${arches_space_separated}")
+
+ if(NOT arch_list)
+ set(${ret_failed} TRUE PARENT_SCOPE)
+ return()
+ endif()
+ set(${ret} "${arch_list}" PARENT_SCOPE)
+ else()
+ # This shouldn't happen, but keep it for safety.
+ message(WARNING "No way to find architectures for given sdk_path '${sdk_path}'")
+ set(${ret_failed} TRUE PARENT_SCOPE)
+ endif()
+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(DEFINED 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()
+
+ _apple_resolve_supported_archs_for_sdk_from_system_lib(${_sdk_path} _sdk_archs _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()
+
+ 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 "${arch}-SDK-NOTFOUND")
+ 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.18/Modules/Platform/Darwin.cmake b/share/cmake-3.18/Modules/Platform/Darwin.cmake
new file mode 100644
index 0000000..c6de3b0
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Darwin.cmake
@@ -0,0 +1,236 @@
+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_EXTRA_SHARED_LIBRARY_SUFFIXES ".tbd" ".so")
+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()
+
+ if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/lib)
+ list(INSERT CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/lib)
+ endif()
+ if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/lib)
+ list(INSERT CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/lib)
+ endif()
+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)
+ if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include)
+ list(INSERT CMAKE_SYSTEM_PREFIX_PATH 0 ${_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()
+ if(EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/include)
+ list(INSERT CMAKE_SYSTEM_PREFIX_PATH 0 ${_CMAKE_OSX_SYSROOT_PATH}/usr/local)
+ foreach(lang C CXX OBJC OBJCXX Swift)
+ list(APPEND _CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES_INIT ${_CMAKE_OSX_SYSROOT_PATH}/usr/local/include)
+ endforeach()
+ endif()
+endif()
+list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ /sw # Fink
+ /opt/local # MacPorts
+ )
diff --git a/share/cmake-3.17/Modules/Platform/DragonFly.cmake b/share/cmake-3.18/Modules/Platform/DragonFly.cmake
index 12e5f3c..12e5f3c 100644
--- a/share/cmake-3.17/Modules/Platform/DragonFly.cmake
+++ b/share/cmake-3.18/Modules/Platform/DragonFly.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Euros.cmake b/share/cmake-3.18/Modules/Platform/Euros.cmake
index 4c7b182..4c7b182 100644
--- a/share/cmake-3.17/Modules/Platform/Euros.cmake
+++ b/share/cmake-3.18/Modules/Platform/Euros.cmake
diff --git a/share/cmake-3.17/Modules/Platform/FreeBSD-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/FreeBSD-Determine-CXX.cmake
index b594dae..b594dae 100644
--- a/share/cmake-3.17/Modules/Platform/FreeBSD-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/FreeBSD-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/FreeBSD.cmake b/share/cmake-3.18/Modules/Platform/FreeBSD.cmake
index 4a4c00d..4a4c00d 100644
--- a/share/cmake-3.17/Modules/Platform/FreeBSD.cmake
+++ b/share/cmake-3.18/Modules/Platform/FreeBSD.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Fuchsia.cmake b/share/cmake-3.18/Modules/Platform/Fuchsia.cmake
index 4b13805..4b13805 100644
--- a/share/cmake-3.17/Modules/Platform/Fuchsia.cmake
+++ b/share/cmake-3.18/Modules/Platform/Fuchsia.cmake
diff --git a/share/cmake-3.17/Modules/Platform/GHS-MULTI-Determine.cmake b/share/cmake-3.18/Modules/Platform/GHS-MULTI-Determine.cmake
index 349d906..349d906 100644
--- a/share/cmake-3.17/Modules/Platform/GHS-MULTI-Determine.cmake
+++ b/share/cmake-3.18/Modules/Platform/GHS-MULTI-Determine.cmake
diff --git a/share/cmake-3.17/Modules/Platform/GHS-MULTI.cmake b/share/cmake-3.18/Modules/Platform/GHS-MULTI.cmake
index 60a15c4..60a15c4 100644
--- a/share/cmake-3.17/Modules/Platform/GHS-MULTI.cmake
+++ b/share/cmake-3.18/Modules/Platform/GHS-MULTI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/GNU.cmake b/share/cmake-3.18/Modules/Platform/GNU.cmake
index fac29a8..fac29a8 100644
--- a/share/cmake-3.17/Modules/Platform/GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.bat.in b/share/cmake-3.18/Modules/Platform/GNUtoMS_lib.bat.in
index 8613be3..8613be3 100644
--- a/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.bat.in
+++ b/share/cmake-3.18/Modules/Platform/GNUtoMS_lib.bat.in
diff --git a/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.cmake b/share/cmake-3.18/Modules/Platform/GNUtoMS_lib.cmake
index ca9b0f8..ca9b0f8 100644
--- a/share/cmake-3.17/Modules/Platform/GNUtoMS_lib.cmake
+++ b/share/cmake-3.18/Modules/Platform/GNUtoMS_lib.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-ADSP-ASM.cmake b/share/cmake-3.18/Modules/Platform/Generic-ADSP-ASM.cmake
index e718bec..e718bec 100644
--- a/share/cmake-3.17/Modules/Platform/Generic-ADSP-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/Generic-ADSP-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-ADSP-C.cmake b/share/cmake-3.18/Modules/Platform/Generic-ADSP-C.cmake
index c8597cd..c8597cd 100644
--- a/share/cmake-3.17/Modules/Platform/Generic-ADSP-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Generic-ADSP-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-ADSP-CXX.cmake b/share/cmake-3.18/Modules/Platform/Generic-ADSP-CXX.cmake
index d76bb66..d76bb66 100644
--- a/share/cmake-3.17/Modules/Platform/Generic-ADSP-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Generic-ADSP-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-ADSP-Common.cmake b/share/cmake-3.18/Modules/Platform/Generic-ADSP-Common.cmake
index 026f83c..026f83c 100644
--- a/share/cmake-3.17/Modules/Platform/Generic-ADSP-Common.cmake
+++ b/share/cmake-3.18/Modules/Platform/Generic-ADSP-Common.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake b/share/cmake-3.18/Modules/Platform/Generic-SDCC-C.cmake
index c3fd186..c3fd186 100644
--- a/share/cmake-3.17/Modules/Platform/Generic-SDCC-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Generic-SDCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Generic.cmake b/share/cmake-3.18/Modules/Platform/Generic.cmake
index fcb2699..fcb2699 100644
--- a/share/cmake-3.17/Modules/Platform/Generic.cmake
+++ b/share/cmake-3.18/Modules/Platform/Generic.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-ASM.cmake
index 613b859..613b859 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-C.cmake
index 5f9ac42..5f9ac42 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-CXX.cmake
index ac72560..ac72560 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-Fortran.cmake
index ee0181f..ee0181f 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-GNU.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-GNU.cmake
index 699c4aa..699c4aa 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP-ASM.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP-ASM.cmake
index 05c69e4..05c69e4 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-HP-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-HP-ASM.cmake
diff --git a/share/cmake-3.18/Modules/Platform/HP-UX-HP-C.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP-C.cmake
new file mode 100644
index 0000000..57ba2eb
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-HP-C.cmake
@@ -0,0 +1,6 @@
+include(Platform/HP-UX-HP)
+__hpux_compiler_hp(C)
+
+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>")
+set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> -Aa -Ae <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP-CXX.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP-CXX.cmake
index d37d2b0..d37d2b0 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-HP-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-HP-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP-Fortran.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP-Fortran.cmake
index 12007e4..12007e4 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-HP-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-HP-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX-HP.cmake b/share/cmake-3.18/Modules/Platform/HP-UX-HP.cmake
index b301d17..b301d17 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX-HP.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX-HP.cmake
diff --git a/share/cmake-3.17/Modules/Platform/HP-UX.cmake b/share/cmake-3.18/Modules/Platform/HP-UX.cmake
index 9572a7e..9572a7e 100644
--- a/share/cmake-3.17/Modules/Platform/HP-UX.cmake
+++ b/share/cmake-3.18/Modules/Platform/HP-UX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Haiku.cmake b/share/cmake-3.18/Modules/Platform/Haiku.cmake
index 7e0af61..7e0af61 100644
--- a/share/cmake-3.17/Modules/Platform/Haiku.cmake
+++ b/share/cmake-3.18/Modules/Platform/Haiku.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Absoft-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-Absoft-Fortran.cmake
index beb41a3..beb41a3 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-Absoft-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-Absoft-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-CCur-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-CCur-Fortran.cmake
index ceecc2f..ceecc2f 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-CCur-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-CCur-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-Clang-C.cmake
index 2a77d27..2a77d27 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-Clang-CXX.cmake
index 9d9a4df..9d9a4df 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-Determine-CXX.cmake
index b594dae..b594dae 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-GNU-C.cmake
index 84dd492..84dd492 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-GNU-CXX.cmake
index 4162335..4162335 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-GNU-Fortran.cmake
index 85e1226..85e1226 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-GNU.cmake b/share/cmake-3.18/Modules/Platform/Linux-GNU.cmake
index 6878254..6878254 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Intel-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-Intel-C.cmake
index 449493a..449493a 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-Intel-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-Intel-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Intel-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-Intel-CXX.cmake
index 142b6cf..142b6cf 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-Intel-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-Intel-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Intel-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-Intel-Fortran.cmake
index d8e94d0..d8e94d0 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-Intel-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-Intel-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-Intel.cmake b/share/cmake-3.18/Modules/Platform/Linux-Intel.cmake
index 3b5ca59..3b5ca59 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-Intel.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-Intel.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-NAG-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-NAG-Fortran.cmake
index 353bae6..353bae6 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-NAG-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-NAG-Fortran.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-C.cmake
new file mode 100644
index 0000000..383349a
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/Linux-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..383349a
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/Linux-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom.cmake b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom.cmake
new file mode 100644
index 0000000..5b4e995
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Linux-OpenWatcom.cmake
@@ -0,0 +1,25 @@
+# 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()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system linux opt noextension")
+string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system linux")
+string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system linux")
+
+# single/multi-threaded /-bm
+# default is setup for single-threaded libraries
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=linux")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=linux -xs")
+
+if(CMAKE_CROSSCOMPILING)
+ if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+ set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/lh)
+ endif()
+ if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/lh)
+ endif()
+endif()
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PGI-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-PGI-C.cmake
index edf4f3f..edf4f3f 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-PGI-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-PGI-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PGI-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-PGI-CXX.cmake
index d425f88..d425f88 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-PGI-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-PGI-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PGI-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-PGI-Fortran.cmake
index e8731a3..e8731a3 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-PGI-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-PGI-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PGI.cmake b/share/cmake-3.18/Modules/Platform/Linux-PGI.cmake
index 0341654..0341654 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-PGI.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-PGI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PathScale-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-PathScale-C.cmake
index 009f398..009f398 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-PathScale-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-PathScale-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PathScale-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-PathScale-CXX.cmake
index b6a5771..b6a5771 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-PathScale-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-PathScale-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PathScale-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-PathScale-Fortran.cmake
index 5662d3d..5662d3d 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-PathScale-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-PathScale-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-PathScale.cmake b/share/cmake-3.18/Modules/Platform/Linux-PathScale.cmake
index 6070606..6070606 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-PathScale.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-PathScale.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-SunPro-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-SunPro-CXX.cmake
index a07f1ec..a07f1ec 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-SunPro-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-SunPro-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-TinyCC-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-TinyCC-C.cmake
index 9409d8b..9409d8b 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-TinyCC-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-TinyCC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-C.cmake
index 0622b63..0622b63 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-CXX.cmake
index b878ba0..b878ba0 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-Fortran.cmake
index 1939a8a..1939a8a 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-VisualAge-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-VisualAge-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-XL-C.cmake b/share/cmake-3.18/Modules/Platform/Linux-XL-C.cmake
index ef0c52b..ef0c52b 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-XL-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-XL-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-XL-CXX.cmake b/share/cmake-3.18/Modules/Platform/Linux-XL-CXX.cmake
index aa57d6e..aa57d6e 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-XL-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-XL-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Linux-XL-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Linux-XL-Fortran.cmake
index d9b4c2d..d9b4c2d 100644
--- a/share/cmake-3.17/Modules/Platform/Linux-XL-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux-XL-Fortran.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Linux-como.cmake b/share/cmake-3.18/Modules/Platform/Linux-como.cmake
new file mode 100644
index 0000000..f6db34c
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Linux-como.cmake
@@ -0,0 +1,17 @@
+# create a shared C++ library
+set(CMAKE_CXX_CREATE_SHARED_LIBRARY
+ "<CMAKE_CXX_COMPILER> --prelink_objects <OBJECTS>"
+ "<CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
+
+# create a C++ static library
+set(CMAKE_CXX_CREATE_STATIC_LIBRARY
+ "<CMAKE_CXX_COMPILER> --prelink_objects <OBJECTS>"
+ "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
+ "<CMAKE_RANLIB> <TARGET> ")
+
+set(CMAKE_CXX_LINK_EXECUTABLE
+ "<CMAKE_CXX_COMPILER> --prelink_objects <OBJECTS>"
+ "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+
+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "")
diff --git a/share/cmake-3.17/Modules/Platform/Linux.cmake b/share/cmake-3.18/Modules/Platform/Linux.cmake
index b5d5464..b5d5464 100644
--- a/share/cmake-3.17/Modules/Platform/Linux.cmake
+++ b/share/cmake-3.18/Modules/Platform/Linux.cmake
diff --git a/share/cmake-3.17/Modules/Platform/MP-RAS.cmake b/share/cmake-3.18/Modules/Platform/MP-RAS.cmake
index fe8d81a..fe8d81a 100644
--- a/share/cmake-3.17/Modules/Platform/MP-RAS.cmake
+++ b/share/cmake-3.18/Modules/Platform/MP-RAS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Midipix.cmake b/share/cmake-3.18/Modules/Platform/Midipix.cmake
index 54a156b..54a156b 100644
--- a/share/cmake-3.17/Modules/Platform/Midipix.cmake
+++ b/share/cmake-3.18/Modules/Platform/Midipix.cmake
diff --git a/share/cmake-3.17/Modules/Platform/MirBSD.cmake b/share/cmake-3.18/Modules/Platform/MirBSD.cmake
index 7637f9b..7637f9b 100644
--- a/share/cmake-3.17/Modules/Platform/MirBSD.cmake
+++ b/share/cmake-3.18/Modules/Platform/MirBSD.cmake
diff --git a/share/cmake-3.17/Modules/Platform/NetBSD.cmake b/share/cmake-3.18/Modules/Platform/NetBSD.cmake
index d99cb4a..d99cb4a 100644
--- a/share/cmake-3.17/Modules/Platform/NetBSD.cmake
+++ b/share/cmake-3.18/Modules/Platform/NetBSD.cmake
diff --git a/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-C.cmake
new file mode 100644
index 0000000..21a4d9e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-C.cmake
@@ -0,0 +1 @@
+include(Platform/OS2-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-CXX.cmake
new file mode 100644
index 0000000..21a4d9e
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom-CXX.cmake
@@ -0,0 +1 @@
+include(Platform/OS2-OpenWatcom)
diff --git a/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom.cmake b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom.cmake
new file mode 100644
index 0000000..998fb9f
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/OS2-OpenWatcom.cmake
@@ -0,0 +1,35 @@
+# This module is shared by multiple languages; use include blocker.
+include_guard()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system os2")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system os2_dll")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system os2_dll")
+else()
+ string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " system os2v2")
+ string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system os2v2_dll")
+ string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system os2v2_dll")
+endif()
+
+set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
+
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=os2")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=os2 -xs")
+
+if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+ if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+ set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/os21x)
+ else()
+ set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/os2)
+ endif()
+endif()
+if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+ if(DEFINED CMAKE_SYSTEM_PROCESSOR AND CMAKE_SYSTEM_PROCESSOR STREQUAL "I86")
+ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/os21x)
+ else()
+ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/os2)
+ endif()
+endif()
diff --git a/share/cmake-3.18/Modules/Platform/OS2.cmake b/share/cmake-3.18/Modules/Platform/OS2.cmake
new file mode 100644
index 0000000..a9df66d
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/OS2.cmake
@@ -0,0 +1,14 @@
+set(OS2 1)
+
+set(CMAKE_STATIC_LIBRARY_PREFIX "")
+set(CMAKE_STATIC_LIBRARY_SUFFIX ".lib")
+set(CMAKE_SHARED_LIBRARY_PREFIX "")
+set(CMAKE_SHARED_LIBRARY_SUFFIX ".dll")
+set(CMAKE_IMPORT_LIBRARY_PREFIX "")
+set(CMAKE_IMPORT_LIBRARY_SUFFIX ".lib")
+set(CMAKE_EXECUTABLE_SUFFIX ".exe")
+set(CMAKE_LINK_LIBRARY_SUFFIX ".lib")
+set(CMAKE_DL_LIBS "")
+
+set(CMAKE_FIND_LIBRARY_PREFIXES "")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
diff --git a/share/cmake-3.17/Modules/Platform/OSF1.cmake b/share/cmake-3.18/Modules/Platform/OSF1.cmake
index f2ad612..f2ad612 100644
--- a/share/cmake-3.17/Modules/Platform/OSF1.cmake
+++ b/share/cmake-3.18/Modules/Platform/OSF1.cmake
diff --git a/share/cmake-3.17/Modules/Platform/OpenBSD.cmake b/share/cmake-3.18/Modules/Platform/OpenBSD.cmake
index 97e2a6a..97e2a6a 100644
--- a/share/cmake-3.17/Modules/Platform/OpenBSD.cmake
+++ b/share/cmake-3.18/Modules/Platform/OpenBSD.cmake
diff --git a/share/cmake-3.17/Modules/Platform/OpenVMS.cmake b/share/cmake-3.18/Modules/Platform/OpenVMS.cmake
index b10da23..b10da23 100644
--- a/share/cmake-3.17/Modules/Platform/OpenVMS.cmake
+++ b/share/cmake-3.18/Modules/Platform/OpenVMS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/QNX.cmake b/share/cmake-3.18/Modules/Platform/QNX.cmake
index ebc4609..ebc4609 100644
--- a/share/cmake-3.17/Modules/Platform/QNX.cmake
+++ b/share/cmake-3.18/Modules/Platform/QNX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/RISCos.cmake b/share/cmake-3.18/Modules/Platform/RISCos.cmake
index 570cd7b..570cd7b 100644
--- a/share/cmake-3.17/Modules/Platform/RISCos.cmake
+++ b/share/cmake-3.18/Modules/Platform/RISCos.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SCO_SV.cmake b/share/cmake-3.18/Modules/Platform/SCO_SV.cmake
index 1cb4b38..1cb4b38 100644
--- a/share/cmake-3.17/Modules/Platform/SCO_SV.cmake
+++ b/share/cmake-3.18/Modules/Platform/SCO_SV.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SINIX.cmake b/share/cmake-3.18/Modules/Platform/SINIX.cmake
index e3b0a05..e3b0a05 100644
--- a/share/cmake-3.17/Modules/Platform/SINIX.cmake
+++ b/share/cmake-3.18/Modules/Platform/SINIX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/SunOS-Clang-C.cmake
index f06eb8f..f06eb8f 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/SunOS-Clang-CXX.cmake
index 869182c..869182c 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/SunOS-GNU-C.cmake
index 6a96c00..6a96c00 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/SunOS-GNU-CXX.cmake
index 6b9f6fa..6b9f6fa 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/SunOS-GNU-Fortran.cmake
index c6b1888..c6b1888 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-GNU-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-GNU.cmake b/share/cmake-3.18/Modules/Platform/SunOS-GNU.cmake
index 47334d6..47334d6 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-GNU.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-GNU.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-C.cmake b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-C.cmake
index 2f78da1..2f78da1 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-CXX.cmake b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-CXX.cmake
index bb79d86..bb79d86 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-Fortran.cmake b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-Fortran.cmake
index 3c202f7..3c202f7 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-PathScale-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-PathScale-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS-PathScale.cmake b/share/cmake-3.18/Modules/Platform/SunOS-PathScale.cmake
index 25ead80..25ead80 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS-PathScale.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS-PathScale.cmake
diff --git a/share/cmake-3.17/Modules/Platform/SunOS.cmake b/share/cmake-3.18/Modules/Platform/SunOS.cmake
index 78eccf7..78eccf7 100644
--- a/share/cmake-3.17/Modules/Platform/SunOS.cmake
+++ b/share/cmake-3.18/Modules/Platform/SunOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Tru64.cmake b/share/cmake-3.18/Modules/Platform/Tru64.cmake
index 47852f8..47852f8 100644
--- a/share/cmake-3.17/Modules/Platform/Tru64.cmake
+++ b/share/cmake-3.18/Modules/Platform/Tru64.cmake
diff --git a/share/cmake-3.17/Modules/Platform/ULTRIX.cmake b/share/cmake-3.18/Modules/Platform/ULTRIX.cmake
index 9db4c7c..9db4c7c 100644
--- a/share/cmake-3.17/Modules/Platform/ULTRIX.cmake
+++ b/share/cmake-3.18/Modules/Platform/ULTRIX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/UNIX_SV.cmake b/share/cmake-3.18/Modules/Platform/UNIX_SV.cmake
index bd1ffce..bd1ffce 100644
--- a/share/cmake-3.17/Modules/Platform/UNIX_SV.cmake
+++ b/share/cmake-3.18/Modules/Platform/UNIX_SV.cmake
diff --git a/share/cmake-3.18/Modules/Platform/UnixPaths.cmake b/share/cmake-3.18/Modules/Platform/UnixPaths.cmake
new file mode 100644
index 0000000..b9381c3
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/UnixPaths.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.
+
+
+# Block multiple inclusion because "CMakeCInformation.cmake" includes
+# "Platform/${CMAKE_SYSTEM_NAME}" even though the generic module
+# "CMakeSystemSpecificInformation.cmake" already included it.
+# The extra inclusion is a work-around documented next to the include()
+# call, so this can be removed when the work-around is removed.
+if(__UNIX_PATHS_INCLUDED)
+ return()
+endif()
+set(__UNIX_PATHS_INCLUDED 1)
+
+set(UNIX 1)
+
+# also add the install directory of the running cmake to the search directories
+# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up
+get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
+get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
+
+# List common installation prefixes. These will be used for all
+# search types.
+#
+# Reminder when adding new locations computed from environment variables
+# please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+# synchronized
+list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ # Standard
+ /usr/local /usr /
+
+ # CMake install location
+ "${_CMAKE_INSTALL_DIR}"
+ )
+if (NOT CMAKE_FIND_NO_INSTALL_PREFIX)
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ # Project install destination.
+ "${CMAKE_INSTALL_PREFIX}"
+ )
+ if(CMAKE_STAGING_PREFIX)
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ # User-supplied staging prefix.
+ "${CMAKE_STAGING_PREFIX}"
+ )
+ endif()
+endif()
+
+# Non "standard" but common install prefixes
+list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ /usr/X11R6
+ /usr/pkg
+ /opt
+ )
+
+# List common include file locations not under the common prefixes.
+list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+ # X11
+ /usr/include/X11
+ )
+
+list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+ # X11
+ /usr/lib/X11
+ )
+
+list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+ /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
+ )
+
+if(CMAKE_SYSROOT_COMPILE)
+ set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}")
+else()
+ set(_cmake_sysroot_compile "${CMAKE_SYSROOT}")
+endif()
+
+# Default per-language values. These may be later replaced after
+# parsing the implicit directory information from compiler output.
+set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
+ "${_cmake_sysroot_compile}/usr/include"
+ )
+set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
+ "${_cmake_sysroot_compile}/usr/include"
+ )
+set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES}
+ "${_cmake_sysroot_compile}/usr/include"
+ )
+
+unset(_cmake_sysroot_compile)
+
+# Reminder when adding new locations computed from environment variables
+# please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+# synchronized
+if(CMAKE_COMPILER_SYSROOT)
+ list(PREPEND CMAKE_SYSTEM_PREFIX_PATH "${CMAKE_COMPILER_SYSROOT}")
+
+ if(DEFINED ENV{CONDA_PREFIX} AND EXISTS "$ENV{CONDA_PREFIX}")
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{CONDA_PREFIX}")
+ endif()
+endif()
+
+# Enable use of lib32 and lib64 search path variants by default.
+set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS TRUE)
+set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)
+set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS TRUE)
diff --git a/share/cmake-3.17/Modules/Platform/UnixWare.cmake b/share/cmake-3.18/Modules/Platform/UnixWare.cmake
index 94888d9..94888d9 100644
--- a/share/cmake-3.17/Modules/Platform/UnixWare.cmake
+++ b/share/cmake-3.18/Modules/Platform/UnixWare.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake b/share/cmake-3.18/Modules/Platform/Windows-Apple-Swift.cmake
index 1177755..1177755 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Apple-Swift.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Apple-Swift.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Borland-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Borland-C.cmake
index e2f76aa..e2f76aa 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Borland-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Borland-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Borland-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Borland-CXX.cmake
index 809490f..809490f 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Borland-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Borland-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/Windows-Clang-ASM.cmake
index 345d77d..345d77d 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Clang-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Clang-C.cmake
index d007105..d007105 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Clang-CXX.cmake
index f1d40f2..f1d40f2 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Clang-CXX.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Windows-Clang.cmake b/share/cmake-3.18/Modules/Platform/Windows-Clang.cmake
new file mode 100644
index 0000000..dff8166
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Windows-Clang.cmake
@@ -0,0 +1,179 @@
+# 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 MATCHES "llvm-rc")
+ if(DEFINED CMAKE_C_COMPILER_ID)
+ set(CMAKE_RC_PREPROCESSOR CMAKE_C_COMPILER)
+ elseif(DEFINED CMAKE_CXX_COMPILER_ID)
+ set(CMAKE_RC_PREPROCESSOR CMAKE_CXX_COMPILER)
+ endif()
+ if(DEFINED CMAKE_RC_PREPROCESSOR)
+ set(CMAKE_DEPFILE_FLAGS_RC "-clang:-MD -clang:-MF -clang:<DEPFILE>")
+ set(CMAKE_RC_COMPILE_OBJECT "${CMAKE_COMMAND} -E cmake_llvm_rc <SOURCE> <OBJECT>.pp <${CMAKE_RC_PREPROCESSOR}> <DEFINES> -DRC_INVOKED <INCLUDES> <FLAGS> -E <SOURCE> -- <CMAKE_RC_COMPILER> <DEFINES> -I <SOURCE_DIR> <INCLUDES> /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.17/Modules/Platform/Windows-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Determine-CXX.cmake
index bf37f79..bf37f79 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero-C.cmake
index 607fd4e..607fd4e 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero-CXX.cmake
index 279a4de..279a4de 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero.cmake
index 0c24739..0c24739 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Embarcadero.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Embarcadero.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Flang-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-Flang-Fortran.cmake
index c4420f7..c4420f7 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Flang-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Flang-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-G95-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-G95-Fortran.cmake
index af08008..af08008 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-G95-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-G95-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-ASM.cmake
index 8600892..8600892 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-GNU-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-C-ABI.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-C-ABI.cmake
index 1189263..1189263 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-GNU-C-ABI.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU-C-ABI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-C.cmake
index ecf89dc..ecf89dc 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX-ABI.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-CXX-ABI.cmake
index f3c701c..f3c701c 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX-ABI.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU-CXX-ABI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-CXX.cmake
index 23e6552..23e6552 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran-ABI.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
index 179280b..179280b 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran-ABI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran.cmake
index b81b796..b81b796 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-GNU-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU-Fortran.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Windows-GNU.cmake b/share/cmake-3.18/Modules/Platform/Windows-GNU.cmake
new file mode 100644
index 0000000..a2e3811
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Windows-GNU.cmake
@@ -0,0 +1,206 @@
+# 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()
+
+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 ${_CMAKE_TOOLCHAIN_PREFIX}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.17/Modules/Platform/Windows-Intel-ASM.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel-ASM.cmake
index 31d08c7..31d08c7 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Intel-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Intel-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Intel-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel-C.cmake
index 06d8f50..06d8f50 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Intel-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Intel-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Intel-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel-CXX.cmake
index 666de6e..666de6e 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Intel-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Intel-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Intel-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel-Fortran.cmake
index e3804fb..e3804fb 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Intel-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Intel-Fortran.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Windows-Intel.cmake b/share/cmake-3.18/Modules/Platform/Windows-Intel.cmake
new file mode 100644
index 0000000..5d8f7fc
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Windows-Intel.cmake
@@ -0,0 +1,18 @@
+# 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_INTEL)
+ return()
+endif()
+set(__WINDOWS_INTEL 1)
+
+include(Platform/Windows-MSVC)
+macro(__windows_compiler_intel lang)
+ __windows_compiler_msvc(${lang})
+ string(REPLACE "<CMAKE_AR>" "xilib" CMAKE_${lang}_CREATE_STATIC_LIBRARY "${CMAKE_${lang}_CREATE_STATIC_LIBRARY}")
+ foreach(rule CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE)
+ string(REPLACE "<CMAKE_LINKER>" "xilink" CMAKE_${lang}_${rule} "${CMAKE_${lang}_${rule}}")
+ endforeach()
+endmacro()
diff --git a/share/cmake-3.17/Modules/Platform/Windows-MSVC-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-MSVC-C.cmake
index cbe1586..cbe1586 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-MSVC-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-MSVC-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-MSVC-CXX.cmake
index 0e85005..0e85005 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-MSVC-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-MSVC-CXX.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Windows-MSVC.cmake b/share/cmake-3.18/Modules/Platform/Windows-MSVC.cmake
new file mode 100644
index 0000000..2476a33
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Windows-MSVC.cmake
@@ -0,0 +1,441 @@
+# 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_AR> ${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 (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang")
+ set(CMAKE_PCH_PROLOGUE "#pragma clang system_header")
+ elseif(MSVC_VERSION GREATER_EQUAL 1913)
+ # At least MSVC toolet 14.13 from VS 2017 15.6
+ set(CMAKE_PCH_PROLOGUE "#pragma system_header")
+ 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.18/Modules/Platform/Windows-NVIDIA-CUDA.cmake b/share/cmake-3.18/Modules/Platform/Windows-NVIDIA-CUDA.cmake
new file mode 100644
index 0000000..a88f4bc
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Windows-NVIDIA-CUDA.cmake
@@ -0,0 +1,96 @@
+include(Platform/Windows-MSVC)
+
+set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
+ "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -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> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -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> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -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_AR> ${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> <LINK_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} <LANGUAGE_COMPILE_FLAGS> <LINK_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_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(UNIX)
+ list(APPEND CMAKE_CUDA_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "rt" "pthread" "dl")
+endif()
+
+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.17/Modules/Platform/Windows-OpenWatcom-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-C.cmake
index ce9bc45..ce9bc45 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-CXX.cmake
index ce9bc45..ce9bc45 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-OpenWatcom-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom-CXX.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom.cmake b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom.cmake
new file mode 100644
index 0000000..70055da
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Windows-OpenWatcom.cmake
@@ -0,0 +1,32 @@
+# 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()
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+
+set(CMAKE_CREATE_WIN32_EXE "system nt_win" )
+set(CMAKE_CREATE_CONSOLE_EXE "system nt" )
+string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system nt_dll")
+string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system nt_dll")
+
+set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
+
+set(CMAKE_RC_COMPILER "rc" )
+
+# single/multi-threaded /-bm
+# static/DLL run-time libraries /-br
+# default is setup for multi-threaded + DLL run-time libraries
+string(APPEND CMAKE_C_FLAGS_INIT " -bt=nt -dWIN32 -br -bm")
+string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=nt -xs -dWIN32 -br -bm")
+
+if(CMAKE_CROSSCOMPILING)
+ if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
+ set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/nt)
+ endif()
+ if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
+ set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/nt)
+ endif()
+endif()
diff --git a/share/cmake-3.17/Modules/Platform/Windows-PGI-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-PGI-C.cmake
index 0495b93..0495b93 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-PGI-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-PGI-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-PGI-Fortran.cmake b/share/cmake-3.18/Modules/Platform/Windows-PGI-Fortran.cmake
index 2222e33..2222e33 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-PGI-Fortran.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-PGI-Fortran.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-PGI.cmake b/share/cmake-3.18/Modules/Platform/Windows-PGI.cmake
index 8166240..8166240 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-PGI.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-PGI.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Watcom-C.cmake b/share/cmake-3.18/Modules/Platform/Windows-Watcom-C.cmake
index 44a008b..44a008b 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Watcom-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Watcom-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows-Watcom-CXX.cmake b/share/cmake-3.18/Modules/Platform/Windows-Watcom-CXX.cmake
index 63d109b..63d109b 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-Watcom-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-Watcom-CXX.cmake
diff --git a/share/cmake-3.18/Modules/Platform/Windows-df.cmake b/share/cmake-3.18/Modules/Platform/Windows-df.cmake
new file mode 100644
index 0000000..8b824bc
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/Windows-df.cmake
@@ -0,0 +1,60 @@
+# compiler support for fortran CVF compiler on windows
+
+set(CMAKE_WINDOWS_OBJECT_PATH 1)
+set(CMAKE_LIBRARY_PATH_FLAG "-LIBPATH:")
+set(CMAKE_LINK_LIBRARY_FLAG "")
+set(WIN32 1)
+if(CMAKE_VERBOSE_MAKEFILE)
+ set(CMAKE_CL_NOLOGO)
+else()
+ set(CMAKE_CL_NOLOGO "/nologo")
+endif()
+
+set(CMAKE_Fortran_MODDIR_FLAG "-module:")
+
+set(CMAKE_Fortran_CREATE_SHARED_LIBRARY
+ "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out:<TARGET> /dll <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+
+set(CMAKE_Fortran_CREATE_SHARED_MODULE ${CMAKE_Fortran_CREATE_SHARED_LIBRARY})
+
+# create a C++ static library
+set(CMAKE_Fortran_CREATE_STATIC_LIBRARY "lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
+
+# compile a C++ file into an object file
+set(CMAKE_Fortran_COMPILE_OBJECT
+ "<CMAKE_Fortran_COMPILER> ${CMAKE_START_TEMP_FILE} ${CMAKE_CL_NOLOGO} /object:<OBJECT> <FLAGS> /compile_only <SOURCE>${CMAKE_END_TEMP_FILE}")
+
+set(CMAKE_Fortran_LINK_EXECUTABLE
+ "<CMAKE_Fortran_COMPILER> ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} <FLAGS> /exe:<TARGET> <OBJECTS> /link <CMAKE_Fortran_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
+
+set(CMAKE_CREATE_WIN32_EXE /winapp)
+set(CMAKE_CREATE_CONSOLE_EXE )
+
+# does the compiler support pdbtype and is it the newer compiler
+
+set(CMAKE_BUILD_TYPE_INIT Debug)
+set (CMAKE_Fortran_FLAGS_INIT "")
+set (CMAKE_Fortran_FLAGS_DEBUG_INIT "/debug:full")
+set (CMAKE_Fortran_FLAGS_MINSIZEREL_INIT "/Optimize:2 /Define:NDEBUG")
+set (CMAKE_Fortran_FLAGS_RELEASE_INIT "/Optimize:1 /Define:NDEBUG")
+set (CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT "/Optimize:1 /debug:full /Define:NDEBUG")
+
+set (CMAKE_Fortran_STANDARD_LIBRARIES_INIT "user32.lib")
+
+# executable linker flags
+set (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
+set (CMAKE_EXE_LINKER_FLAGS_INIT " /INCREMENTAL:YES")
+if (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
+ set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept")
+ set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept")
+else ()
+ set (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug")
+ set (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug")
+endif ()
+
+set (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
+set (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
+set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})
+set (CMAKE_MODULE_LINKER_FLAGS_INIT ${CMAKE_SHARED_LINKER_FLAGS_INIT})
+set (CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT ${CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT})
+set (CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT})
diff --git a/share/cmake-3.17/Modules/Platform/Windows-windres.cmake b/share/cmake-3.18/Modules/Platform/Windows-windres.cmake
index 7d787dd..7d787dd 100644
--- a/share/cmake-3.17/Modules/Platform/Windows-windres.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows-windres.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Windows.cmake b/share/cmake-3.18/Modules/Platform/Windows.cmake
index d8b3957..d8b3957 100644
--- a/share/cmake-3.17/Modules/Platform/Windows.cmake
+++ b/share/cmake-3.18/Modules/Platform/Windows.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-C.cmake
index ce8060b..ce8060b 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-CXX.cmake
index 281eadc..281eadc 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsCE-MSVC-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsCE-MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsCE.cmake b/share/cmake-3.18/Modules/Platform/WindowsCE.cmake
index 65b2eae..65b2eae 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsCE.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsCE.cmake
diff --git a/share/cmake-3.18/Modules/Platform/WindowsPaths.cmake b/share/cmake-3.18/Modules/Platform/WindowsPaths.cmake
new file mode 100644
index 0000000..b9e2f17
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/WindowsPaths.cmake
@@ -0,0 +1,96 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+
+# Block multiple inclusion because "CMakeCInformation.cmake" includes
+# "Platform/${CMAKE_SYSTEM_NAME}" even though the generic module
+# "CMakeSystemSpecificInformation.cmake" already included it.
+# The extra inclusion is a work-around documented next to the include()
+# call, so this can be removed when the work-around is removed.
+if(__WINDOWS_PATHS_INCLUDED)
+ return()
+endif()
+set(__WINDOWS_PATHS_INCLUDED 1)
+
+# Add the program-files folder(s) to the list of installation
+# prefixes.
+#
+# Windows 64-bit Binary:
+# ENV{ProgramFiles(x86)} = [C:\Program Files (x86)]
+# ENV{ProgramFiles} = [C:\Program Files]
+# ENV{ProgramW6432} = [C:\Program Files] or <not set>
+#
+# Windows 32-bit Binary on 64-bit Windows:
+# ENV{ProgramFiles(x86)} = [C:\Program Files (x86)]
+# ENV{ProgramFiles} = [C:\Program Files (x86)]
+# ENV{ProgramW6432} = [C:\Program Files]
+#
+# Reminder when adding new locations computed from environment variables
+# please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+# synchronized
+set(_programfiles "")
+foreach(v "ProgramW6432" "ProgramFiles" "ProgramFiles(x86)")
+ if(DEFINED "ENV{${v}}")
+ file(TO_CMAKE_PATH "$ENV{${v}}" _env_programfiles)
+ list(APPEND _programfiles "${_env_programfiles}")
+ unset(_env_programfiles)
+ endif()
+endforeach()
+if(DEFINED "ENV{SystemDrive}")
+ foreach(d "Program Files" "Program Files (x86)")
+ if(EXISTS "$ENV{SystemDrive}/${d}")
+ list(APPEND _programfiles "$ENV{SystemDrive}/${d}")
+ endif()
+ endforeach()
+endif()
+if(_programfiles)
+ list(REMOVE_DUPLICATES _programfiles)
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${_programfiles})
+endif()
+unset(_programfiles)
+
+# Add the CMake install location.
+get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
+get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
+list(APPEND CMAKE_SYSTEM_PREFIX_PATH "${_CMAKE_INSTALL_DIR}")
+
+if (NOT CMAKE_FIND_NO_INSTALL_PREFIX)
+ # Add other locations.
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ # Project install destination.
+ "${CMAKE_INSTALL_PREFIX}"
+ )
+ if (CMAKE_STAGING_PREFIX)
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ # User-supplied staging prefix.
+ "${CMAKE_STAGING_PREFIX}"
+ )
+ endif()
+endif()
+
+if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
+ # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
+endif()
+
+list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+ )
+
+# mingw can also link against dlls which can also be in /bin, so list this too
+if (NOT CMAKE_FIND_NO_INSTALL_PREFIX)
+ list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+ "${CMAKE_INSTALL_PREFIX}/bin"
+ )
+ if (CMAKE_STAGING_PREFIX)
+ list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+ "${CMAKE_STAGING_PREFIX}/bin"
+ )
+ endif()
+endif()
+list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+ "${_CMAKE_INSTALL_DIR}/bin"
+ /bin
+ )
+
+list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
+ )
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-ASM.cmake
index 94f4ca7..94f4ca7 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-C.cmake
index 6e38572..6e38572 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-CXX.cmake
index bf47978..bf47978 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-ASM.cmake
index 140eea7..140eea7 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-C.cmake
index ff6acd5..ff6acd5 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-CXX.cmake
index 6adab6a..6adab6a 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-C.cmake
index ce8060b..ce8060b 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
index 281eadc..281eadc 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone-MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsPhone.cmake b/share/cmake-3.18/Modules/Platform/WindowsPhone.cmake
index 65b2eae..65b2eae 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsPhone.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsPhone.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-ASM.cmake
index 94f4ca7..94f4ca7 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-C.cmake
index 6e38572..6e38572 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-CXX.cmake
index bf47978..bf47978 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore-Clang-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore-Clang-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-ASM.cmake
index 140eea7..140eea7 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-ASM.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-ASM.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-C.cmake
index ff6acd5..ff6acd5 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-CXX.cmake
index 6adab6a..6adab6a 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore-GNU-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore-GNU-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-C.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-C.cmake
index ce8060b..ce8060b 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-C.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-C.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-CXX.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-CXX.cmake
index 281eadc..281eadc 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore-MSVC-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore-MSVC-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/WindowsStore.cmake b/share/cmake-3.18/Modules/Platform/WindowsStore.cmake
index 65b2eae..65b2eae 100644
--- a/share/cmake-3.17/Modules/Platform/WindowsStore.cmake
+++ b/share/cmake-3.18/Modules/Platform/WindowsStore.cmake
diff --git a/share/cmake-3.17/Modules/Platform/Xenix.cmake b/share/cmake-3.18/Modules/Platform/Xenix.cmake
index 47852f8..47852f8 100644
--- a/share/cmake-3.17/Modules/Platform/Xenix.cmake
+++ b/share/cmake-3.18/Modules/Platform/Xenix.cmake
diff --git a/share/cmake-3.18/Modules/Platform/eCos.cmake b/share/cmake-3.18/Modules/Platform/eCos.cmake
new file mode 100644
index 0000000..25db028
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/eCos.cmake
@@ -0,0 +1,65 @@
+# support for eCos http://ecos.sourceware.org
+
+# Guard against multiple inclusion, which e.g. leads to multiple calls to add_definition() #12987
+if(__ECOS_CMAKE_INCLUDED)
+ return()
+endif()
+set(__ECOS_CMAKE_INCLUDED TRUE)
+
+set(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic
+set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "") # -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_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 ".a") # .a
+set(CMAKE_EXECUTABLE_SUFFIX ".elf") # same suffix as if built using UseEcos.cmake
+set(CMAKE_DL_LIBS "" )
+
+set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+
+
+include(Platform/UnixPaths)
+
+# eCos can be built only with gcc
+get_property(_IN_TC GLOBAL PROPERTY IN_TRY_COMPILE)
+if(CMAKE_C_COMPILER AND NOT CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT _IN_TC)
+ message(FATAL_ERROR "GNU gcc is required for eCos")
+endif()
+if(CMAKE_CXX_COMPILER AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" AND NOT _IN_TC)
+ message(FATAL_ERROR "GNU g++ is required for eCos")
+endif()
+
+# find eCos system files
+find_path(ECOS_SYSTEM_CONFIG_HEADER_PATH NAMES pkgconf/system.h)
+find_library(ECOS_SYSTEM_TARGET_LIBRARY NAMES libtarget.a)
+
+if(NOT ECOS_SYSTEM_CONFIG_HEADER_PATH)
+ message(FATAL_ERROR "Could not find eCos pkgconf/system.h. Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.")
+endif()
+
+if(NOT ECOS_SYSTEM_TARGET_LIBRARY)
+ message(FATAL_ERROR "Could not find eCos \"libtarget.a\". Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly.")
+endif()
+
+get_filename_component(ECOS_LIBTARGET_DIRECTORY "${ECOS_SYSTEM_TARGET_LIBRARY}" PATH)
+include_directories(${ECOS_SYSTEM_CONFIG_HEADER_PATH})
+add_definitions(-D__ECOS__=1 -D__ECOS=1)
+
+# special link commands for eCos executables
+set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld <LINK_LIBRARIES>")
+set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -nostdlib -nostartfiles -L${ECOS_LIBTARGET_DIRECTORY} -Ttarget.ld <LINK_LIBRARIES>")
+
+# eCos doesn't support shared libs
+set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
+
+set(CMAKE_CXX_LINK_SHARED_LIBRARY )
+set(CMAKE_CXX_LINK_MODULE_LIBRARY )
+set(CMAKE_C_LINK_SHARED_LIBRARY )
+set(CMAKE_C_LINK_MODULE_LIBRARY )
+
diff --git a/share/cmake-3.18/Modules/Platform/gas.cmake b/share/cmake-3.18/Modules/Platform/gas.cmake
new file mode 100644
index 0000000..8484076
--- /dev/null
+++ b/share/cmake-3.18/Modules/Platform/gas.cmake
@@ -0,0 +1,19 @@
+if(UNIX)
+ set(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .o)
+else()
+ set(CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION .obj)
+endif()
+
+set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <INCLUDES> <FLAGS> -o <OBJECT> <SOURCE>")
+
+set(CMAKE_ASM${ASM_DIALECT}_CREATE_STATIC_LIBRARY
+ "<CMAKE_AR> cr <TARGET> <LINK_FLAGS> <OBJECTS> "
+ "<CMAKE_RANLIB> <TARGET> ")
+
+set(CMAKE_ASM${ASM_DIALECT}_LINK_EXECUTABLE
+ "<CMAKE_LINKER> <FLAGS> <CMAKE_ASM${ASM_DIALECT}_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
+
+# to be done
+set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_LIBRARY)
+set(CMAKE_ASM${ASM_DIALECT}_CREATE_SHARED_MODULE)
+
diff --git a/share/cmake-3.17/Modules/Platform/iOS-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/iOS-Determine-CXX.cmake
index ac80fa6..ac80fa6 100644
--- a/share/cmake-3.17/Modules/Platform/iOS-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/iOS-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/iOS-Initialize.cmake b/share/cmake-3.18/Modules/Platform/iOS-Initialize.cmake
index 301ca4c..301ca4c 100644
--- a/share/cmake-3.17/Modules/Platform/iOS-Initialize.cmake
+++ b/share/cmake-3.18/Modules/Platform/iOS-Initialize.cmake
diff --git a/share/cmake-3.17/Modules/Platform/iOS.cmake b/share/cmake-3.18/Modules/Platform/iOS.cmake
index 850ddc2..850ddc2 100644
--- a/share/cmake-3.17/Modules/Platform/iOS.cmake
+++ b/share/cmake-3.18/Modules/Platform/iOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/kFreeBSD.cmake b/share/cmake-3.18/Modules/Platform/kFreeBSD.cmake
index c1db259..c1db259 100644
--- a/share/cmake-3.17/Modules/Platform/kFreeBSD.cmake
+++ b/share/cmake-3.18/Modules/Platform/kFreeBSD.cmake
diff --git a/share/cmake-3.17/Modules/Platform/syllable.cmake b/share/cmake-3.18/Modules/Platform/syllable.cmake
index 69c108d..69c108d 100644
--- a/share/cmake-3.17/Modules/Platform/syllable.cmake
+++ b/share/cmake-3.18/Modules/Platform/syllable.cmake
diff --git a/share/cmake-3.17/Modules/Platform/tvOS-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/tvOS-Determine-CXX.cmake
index ac80fa6..ac80fa6 100644
--- a/share/cmake-3.17/Modules/Platform/tvOS-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/tvOS-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/tvOS-Initialize.cmake b/share/cmake-3.18/Modules/Platform/tvOS-Initialize.cmake
index 6834c80..6834c80 100644
--- a/share/cmake-3.17/Modules/Platform/tvOS-Initialize.cmake
+++ b/share/cmake-3.18/Modules/Platform/tvOS-Initialize.cmake
diff --git a/share/cmake-3.17/Modules/Platform/tvOS.cmake b/share/cmake-3.18/Modules/Platform/tvOS.cmake
index 850ddc2..850ddc2 100644
--- a/share/cmake-3.17/Modules/Platform/tvOS.cmake
+++ b/share/cmake-3.18/Modules/Platform/tvOS.cmake
diff --git a/share/cmake-3.17/Modules/Platform/watchOS-Determine-CXX.cmake b/share/cmake-3.18/Modules/Platform/watchOS-Determine-CXX.cmake
index ac80fa6..ac80fa6 100644
--- a/share/cmake-3.17/Modules/Platform/watchOS-Determine-CXX.cmake
+++ b/share/cmake-3.18/Modules/Platform/watchOS-Determine-CXX.cmake
diff --git a/share/cmake-3.17/Modules/Platform/watchOS-Initialize.cmake b/share/cmake-3.18/Modules/Platform/watchOS-Initialize.cmake
index 2f396d3..2f396d3 100644
--- a/share/cmake-3.17/Modules/Platform/watchOS-Initialize.cmake
+++ b/share/cmake-3.18/Modules/Platform/watchOS-Initialize.cmake
diff --git a/share/cmake-3.17/Modules/Platform/watchOS.cmake b/share/cmake-3.18/Modules/Platform/watchOS.cmake
index 850ddc2..850ddc2 100644
--- a/share/cmake-3.17/Modules/Platform/watchOS.cmake
+++ b/share/cmake-3.18/Modules/Platform/watchOS.cmake
diff --git a/share/cmake-3.17/Modules/ProcessorCount.cmake b/share/cmake-3.18/Modules/ProcessorCount.cmake
index 43ec889..43ec889 100644
--- a/share/cmake-3.17/Modules/ProcessorCount.cmake
+++ b/share/cmake-3.18/Modules/ProcessorCount.cmake
diff --git a/share/cmake-3.17/Modules/Qt4ConfigDependentSettings.cmake b/share/cmake-3.18/Modules/Qt4ConfigDependentSettings.cmake
index 4699ecd..4699ecd 100644
--- a/share/cmake-3.17/Modules/Qt4ConfigDependentSettings.cmake
+++ b/share/cmake-3.18/Modules/Qt4ConfigDependentSettings.cmake
diff --git a/share/cmake-3.17/Modules/Qt4Macros.cmake b/share/cmake-3.18/Modules/Qt4Macros.cmake
index cb6ae43..cb6ae43 100644
--- a/share/cmake-3.17/Modules/Qt4Macros.cmake
+++ b/share/cmake-3.18/Modules/Qt4Macros.cmake
diff --git a/share/cmake-3.17/Modules/RepositoryInfo.txt.in b/share/cmake-3.18/Modules/RepositoryInfo.txt.in
index df8e322..df8e322 100644
--- a/share/cmake-3.17/Modules/RepositoryInfo.txt.in
+++ b/share/cmake-3.18/Modules/RepositoryInfo.txt.in
diff --git a/share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake b/share/cmake-3.18/Modules/SelectLibraryConfigurations.cmake
index 4c0e9a8..4c0e9a8 100644
--- a/share/cmake-3.17/Modules/SelectLibraryConfigurations.cmake
+++ b/share/cmake-3.18/Modules/SelectLibraryConfigurations.cmake
diff --git a/share/cmake-3.18/Modules/Squish4RunTestCase.bat b/share/cmake-3.18/Modules/Squish4RunTestCase.bat
new file mode 100644
index 0000000..05dc586
--- /dev/null
+++ b/share/cmake-3.18/Modules/Squish4RunTestCase.bat
@@ -0,0 +1,23 @@
+set SQUISHSERVER=%1
+set SQUISHRUNNER=%2
+set TESTSUITE=%3
+set TESTCASE=%4
+set AUT=%5
+set AUTDIR=%6
+
+%SQUISHSERVER% --stop
+
+echo "Adding AUT... %SQUISHSERVER% --config addAUT %AUT% %AUTDIR%"
+%SQUISHSERVER% --config addAUT "%AUT%" "%AUTDIR%"
+
+echo "Starting the squish server... %SQUISHSERVER%"
+start /B "Squish Server" %SQUISHSERVER%
+
+echo "Running the test case... %SQUISHRUNNER% --testsuite %TESTSUITE% --testcase %TESTCASE%"
+%SQUISHRUNNER% --testsuite "%TESTSUITE%" --testcase "%TESTCASE%"
+set returnValue=%ERRORLEVEL%
+
+echo "Stopping the squish server... %SQUISHSERVER% --stop"
+%SQUISHSERVER% --stop
+
+exit /B %returnValue%
diff --git a/share/cmake-3.18/Modules/Squish4RunTestCase.sh b/share/cmake-3.18/Modules/Squish4RunTestCase.sh
new file mode 100644
index 0000000..4d1e382
--- /dev/null
+++ b/share/cmake-3.18/Modules/Squish4RunTestCase.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+SQUISHSERVER=$1
+SQUISHRUNNER=$2
+TESTSUITE=$3
+TESTCASE=$4
+AUT=$5
+AUTDIR=$6
+
+$SQUISHSERVER --stop > /dev/null 2>&1
+
+echo "Adding AUT... $SQUISHSERVER --config addAUT $AUT $AUTDIR"
+$SQUISHSERVER --config addAUT "$AUT" "$AUTDIR" || exit 255
+# sleep 1
+
+echo "Starting the squish server... $SQUISHSERVER --daemon"
+$SQUISHSERVER --daemon || exit 255
+# sleep 2
+
+echo "Running the test case... $SQUISHRUNNER --testsuite $TESTSUITE --testcase $TESTCASE"
+$SQUISHRUNNER --testsuite "$TESTSUITE" --testcase "$TESTCASE"
+returnValue=$?
+
+echo "Stopping the squish server... $SQUISHSERVER --stop"
+$SQUISHSERVER --stop
+
+exit $returnValue
diff --git a/share/cmake-3.17/Modules/SquishRunTestCase.bat b/share/cmake-3.18/Modules/SquishRunTestCase.bat
index 5c5d388..5c5d388 100755..100644
--- a/share/cmake-3.17/Modules/SquishRunTestCase.bat
+++ b/share/cmake-3.18/Modules/SquishRunTestCase.bat
diff --git a/share/cmake-3.17/Modules/SquishRunTestCase.sh b/share/cmake-3.18/Modules/SquishRunTestCase.sh
index 409b46a..409b46a 100644
--- a/share/cmake-3.17/Modules/SquishRunTestCase.sh
+++ b/share/cmake-3.18/Modules/SquishRunTestCase.sh
diff --git a/share/cmake-3.18/Modules/SquishTestScript.cmake b/share/cmake-3.18/Modules/SquishTestScript.cmake
new file mode 100644
index 0000000..b0cb4af
--- /dev/null
+++ b/share/cmake-3.18/Modules/SquishTestScript.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:
+SquishTestScript
+----------------
+
+
+
+
+
+This script launches a GUI test using Squish. You should not call the
+script directly; instead, you should access it via the SQUISH_ADD_TEST
+macro that is defined in FindSquish.cmake.
+
+This script starts the Squish server, launches the test on the client,
+and finally stops the squish server. If any of these steps fail
+(including if the tests do not pass) then a fatal error is raised.
+#]=======================================================================]
+
+# print out the variable that we are using
+message(STATUS "squish_aut='${squish_aut}'")
+message(STATUS "squish_aut_dir='${squish_aut_dir}'")
+
+message(STATUS "squish_version='${squish_version}'")
+message(STATUS "squish_server_executable='${squish_server_executable}'")
+message(STATUS "squish_client_executable='${squish_client_executable}'")
+message(STATUS "squish_libqtdir ='${squish_libqtdir}'")
+message(STATUS "squish_test_suite='${squish_test_suite}'")
+message(STATUS "squish_test_case='${squish_test_case}'")
+message(STATUS "squish_wrapper='${squish_wrapper}'")
+message(STATUS "squish_env_vars='${squish_env_vars}'")
+message(STATUS "squish_module_dir='${squish_module_dir}'")
+message(STATUS "squish_pre_command='${squish_pre_command}'")
+message(STATUS "squish_post_command='${squish_post_command}'")
+
+# parse environment variables
+foreach(i ${squish_env_vars})
+ message(STATUS "parsing env var key/value pair ${i}")
+ string(REGEX MATCH "([^=]*)=(.*)" squish_env_name ${i})
+ message(STATUS "key=${CMAKE_MATCH_1}")
+ message(STATUS "value=${CMAKE_MATCH_2}")
+ set ( ENV{${CMAKE_MATCH_1}} ${CMAKE_MATCH_2} )
+endforeach()
+
+if (QT4_INSTALLED)
+ # record Qt lib directory
+ set ( ENV{${SQUISH_LIBQTDIR}} ${squish_libqtdir} )
+endif ()
+
+if(squish_pre_command)
+ message(STATUS "Executing pre command: ${squish_pre_command}")
+ execute_process(COMMAND "${squish_pre_command}")
+endif()
+
+# run the test
+if("${squish_version}" STREQUAL "4")
+ if (WIN32)
+ execute_process(COMMAND ${squish_module_dir}/Squish4RunTestCase.bat ${squish_server_executable} ${squish_client_executable} ${squish_test_suite} ${squish_test_case} ${squish_aut} ${squish_aut_dir}
+ RESULT_VARIABLE test_rv )
+ elseif(UNIX)
+ execute_process(COMMAND ${squish_module_dir}/Squish4RunTestCase.sh ${squish_server_executable} ${squish_client_executable} ${squish_test_suite} ${squish_test_case} ${squish_aut} ${squish_aut_dir}
+ RESULT_VARIABLE test_rv )
+ endif ()
+
+else()
+
+ if (WIN32)
+ execute_process(COMMAND ${squish_module_dir}/SquishRunTestCase.bat ${squish_server_executable} ${squish_client_executable} ${squish_test_case} ${squish_wrapper} ${squish_aut}
+ RESULT_VARIABLE test_rv )
+ elseif(UNIX)
+ execute_process(COMMAND ${squish_module_dir}/SquishRunTestCase.sh ${squish_server_executable} ${squish_client_executable} ${squish_test_case} ${squish_wrapper} ${squish_aut}
+ RESULT_VARIABLE test_rv )
+ endif ()
+endif()
+
+if(squish_post_command)
+ message(STATUS "Executing post command: ${squish_post_command}")
+ execute_process(COMMAND "${squish_post_command}")
+endif()
+
+# check for an error with running the test
+if(NOT "${test_rv}" STREQUAL "0")
+ message(FATAL_ERROR "Error running Squish test")
+endif()
diff --git a/share/cmake-3.17/Modules/SystemInformation.cmake b/share/cmake-3.18/Modules/SystemInformation.cmake
index 5ecc39a..5ecc39a 100644
--- a/share/cmake-3.17/Modules/SystemInformation.cmake
+++ b/share/cmake-3.18/Modules/SystemInformation.cmake
diff --git a/share/cmake-3.17/Modules/SystemInformation.in b/share/cmake-3.18/Modules/SystemInformation.in
index f2aef50..f2aef50 100644
--- a/share/cmake-3.17/Modules/SystemInformation.in
+++ b/share/cmake-3.18/Modules/SystemInformation.in
diff --git a/share/cmake-3.17/Modules/TestBigEndian.cmake b/share/cmake-3.18/Modules/TestBigEndian.cmake
index 8a769b7..8a769b7 100644
--- a/share/cmake-3.17/Modules/TestBigEndian.cmake
+++ b/share/cmake-3.18/Modules/TestBigEndian.cmake
diff --git a/share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake b/share/cmake-3.18/Modules/TestCXXAcceptsFlag.cmake
index ce505f3..ce505f3 100644
--- a/share/cmake-3.17/Modules/TestCXXAcceptsFlag.cmake
+++ b/share/cmake-3.18/Modules/TestCXXAcceptsFlag.cmake
diff --git a/share/cmake-3.17/Modules/TestEndianess.c.in b/share/cmake-3.18/Modules/TestEndianess.c.in
index c924f78..c924f78 100644
--- a/share/cmake-3.17/Modules/TestEndianess.c.in
+++ b/share/cmake-3.18/Modules/TestEndianess.c.in
diff --git a/share/cmake-3.17/Modules/TestForANSIForScope.cmake b/share/cmake-3.18/Modules/TestForANSIForScope.cmake
index 0f2dc01..0f2dc01 100644
--- a/share/cmake-3.17/Modules/TestForANSIForScope.cmake
+++ b/share/cmake-3.18/Modules/TestForANSIForScope.cmake
diff --git a/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cmake b/share/cmake-3.18/Modules/TestForANSIStreamHeaders.cmake
index e532a71..e532a71 100644
--- a/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cmake
+++ b/share/cmake-3.18/Modules/TestForANSIStreamHeaders.cmake
diff --git a/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cxx b/share/cmake-3.18/Modules/TestForANSIStreamHeaders.cxx
index d314d58..d314d58 100644
--- a/share/cmake-3.17/Modules/TestForANSIStreamHeaders.cxx
+++ b/share/cmake-3.18/Modules/TestForANSIStreamHeaders.cxx
diff --git a/share/cmake-3.17/Modules/TestForAnsiForScope.cxx b/share/cmake-3.18/Modules/TestForAnsiForScope.cxx
index 4bc2c67..4bc2c67 100644
--- a/share/cmake-3.17/Modules/TestForAnsiForScope.cxx
+++ b/share/cmake-3.18/Modules/TestForAnsiForScope.cxx
diff --git a/share/cmake-3.17/Modules/TestForSSTREAM.cmake b/share/cmake-3.18/Modules/TestForSSTREAM.cmake
index 545b7ec..545b7ec 100644
--- a/share/cmake-3.17/Modules/TestForSSTREAM.cmake
+++ b/share/cmake-3.18/Modules/TestForSSTREAM.cmake
diff --git a/share/cmake-3.17/Modules/TestForSSTREAM.cxx b/share/cmake-3.18/Modules/TestForSSTREAM.cxx
index 83a75e4..83a75e4 100644
--- a/share/cmake-3.17/Modules/TestForSSTREAM.cxx
+++ b/share/cmake-3.18/Modules/TestForSSTREAM.cxx
diff --git a/share/cmake-3.17/Modules/TestForSTDNamespace.cmake b/share/cmake-3.18/Modules/TestForSTDNamespace.cmake
index d101c83..d101c83 100644
--- a/share/cmake-3.17/Modules/TestForSTDNamespace.cmake
+++ b/share/cmake-3.18/Modules/TestForSTDNamespace.cmake
diff --git a/share/cmake-3.17/Modules/TestForSTDNamespace.cxx b/share/cmake-3.18/Modules/TestForSTDNamespace.cxx
index 62951ff..62951ff 100644
--- a/share/cmake-3.17/Modules/TestForSTDNamespace.cxx
+++ b/share/cmake-3.18/Modules/TestForSTDNamespace.cxx
diff --git a/share/cmake-3.18/Modules/UseEcos.cmake b/share/cmake-3.18/Modules/UseEcos.cmake
new file mode 100644
index 0000000..83c9b20
--- /dev/null
+++ b/share/cmake-3.18/Modules/UseEcos.cmake
@@ -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.
+
+#[=======================================================================[.rst:
+UseEcos
+-------
+
+This module defines variables and macros required to build eCos application.
+
+This file contains the following macros:
+ECOS_ADD_INCLUDE_DIRECTORIES() - add the eCos include dirs
+ECOS_ADD_EXECUTABLE(name source1 ... sourceN ) - create an eCos
+executable ECOS_ADJUST_DIRECTORY(VAR source1 ... sourceN ) - adjusts
+the path of the source files and puts the result into VAR
+
+Macros for selecting the toolchain: ECOS_USE_ARM_ELF_TOOLS() - enable
+the ARM ELF toolchain for the directory where it is called
+ECOS_USE_I386_ELF_TOOLS() - enable the i386 ELF toolchain for the
+directory where it is called ECOS_USE_PPC_EABI_TOOLS() - enable the
+PowerPC toolchain for the directory where it is called
+
+It contains the following variables: ECOS_DEFINITIONS
+ECOSCONFIG_EXECUTABLE ECOS_CONFIG_FILE - defaults to ecos.ecc, if your
+eCos configuration file has a different name, adjust this variable for
+internal use only:
+
+::
+
+ ECOS_ADD_TARGET_LIB
+#]=======================================================================]
+
+# first check that ecosconfig is available
+find_program(ECOSCONFIG_EXECUTABLE NAMES ecosconfig)
+if(NOT ECOSCONFIG_EXECUTABLE)
+ message(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.")
+else()
+ message(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}")
+endif()
+
+# check that ECOS_REPOSITORY is set correctly
+if (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db)
+ message(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db")
+else ()
+ message(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}")
+endif ()
+
+# check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work
+find_package(Tclsh)
+if (NOT TCL_TCLSH)
+ message(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.")
+else ()
+ message(STATUS "tlcsh found: ${TCL_TCLSH}")
+endif ()
+
+#add the globale include-diretories
+#usage: ECOS_ADD_INCLUDE_DIRECTORIES()
+macro(ECOS_ADD_INCLUDE_DIRECTORIES)
+#check for ProjectSources.txt one level higher
+ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectSources.txt)
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../)
+ else ()
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/)
+ endif ()
+
+#the ecos include directory
+ include_directories(${CMAKE_CURRENT_BINARY_DIR}/ecos/install/include/)
+
+endmacro()
+
+
+#we want to compile for the xscale processor, in this case the following macro has to be called
+#usage: ECOS_USE_ARM_ELF_TOOLS()
+macro (ECOS_USE_ARM_ELF_TOOLS)
+ set(CMAKE_CXX_COMPILER "arm-elf-c++")
+ set(CMAKE_COMPILER_IS_GNUCXX 1)
+ set(CMAKE_C_COMPILER "arm-elf-gcc")
+ set(CMAKE_AR "arm-elf-ar")
+ set(CMAKE_RANLIB "arm-elf-ranlib")
+#for linking
+ set(ECOS_LD_MCPU "-mcpu=xscale")
+#for compiling
+ add_definitions(-mcpu=xscale -mapcs-frame)
+#for the obj-tools
+ set(ECOS_ARCH_PREFIX "arm-elf-")
+endmacro ()
+
+#usage: ECOS_USE_PPC_EABI_TOOLS()
+macro (ECOS_USE_PPC_EABI_TOOLS)
+ set(CMAKE_CXX_COMPILER "powerpc-eabi-c++")
+ set(CMAKE_COMPILER_IS_GNUCXX 1)
+ set(CMAKE_C_COMPILER "powerpc-eabi-gcc")
+ set(CMAKE_AR "powerpc-eabi-ar")
+ set(CMAKE_RANLIB "powerpc-eabi-ranlib")
+#for linking
+ set(ECOS_LD_MCPU "")
+#for compiling
+ add_definitions()
+#for the obj-tools
+ set(ECOS_ARCH_PREFIX "powerpc-eabi-")
+endmacro ()
+
+#usage: ECOS_USE_I386_ELF_TOOLS()
+macro (ECOS_USE_I386_ELF_TOOLS)
+ set(CMAKE_CXX_COMPILER "i386-elf-c++")
+ set(CMAKE_COMPILER_IS_GNUCXX 1)
+ set(CMAKE_C_COMPILER "i386-elf-gcc")
+ set(CMAKE_AR "i386-elf-ar")
+ set(CMAKE_RANLIB "i386-elf-ranlib")
+#for linking
+ set(ECOS_LD_MCPU "")
+#for compiling
+ add_definitions()
+#for the obj-tools
+ set(ECOS_ARCH_PREFIX "i386-elf-")
+endmacro ()
+
+
+#since the actual sources are located one level upwards
+#a "../" has to be prepended in front of every source file
+#call the following macro to achieve this, the first parameter
+#is the name of the new list of source files with adjusted paths,
+#followed by all source files
+#usage: ECOS_ADJUST_DIRECTORY(adjusted_SRCS ${my_srcs})
+macro(ECOS_ADJUST_DIRECTORY _target_FILES )
+ foreach (_current_FILE ${ARGN})
+ get_filename_component(_abs_FILE ${_current_FILE} ABSOLUTE)
+ if (NOT ${_abs_FILE} STREQUAL ${_current_FILE})
+ get_filename_component(_abs_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../${_current_FILE} ABSOLUTE)
+ endif ()
+ list(APPEND ${_target_FILES} ${_abs_FILE})
+ endforeach ()
+endmacro()
+
+# the default ecos config file name
+# maybe in future also out-of-source builds may be possible
+set(ECOS_CONFIG_FILE ecos.ecc)
+
+#creates the dependency from all source files on the ecos target.ld,
+#adds the command for compiling ecos
+macro(ECOS_ADD_TARGET_LIB)
+# when building out-of-source, create the ecos/ subdir
+ if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/ecos)
+ file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ecos)
+ endif()
+
+#sources depend on target.ld
+ set_source_files_properties(
+ ${ARGN}
+ PROPERTIES
+ OBJECT_DEPENDS
+ ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
+ )
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld
+ COMMAND sh -c \"make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos || exit -1\; if [ -e ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld ] \; then touch ${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib/target.ld\; fi\"
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
+ )
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile
+ COMMAND sh -c \" cd ${CMAKE_CURRENT_BINARY_DIR}/ecos\; ${ECOSCONFIG_EXECUTABLE} --config=${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE} tree || exit -1\;\"
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE}
+ )
+
+ add_custom_target( ecos make -C ${CMAKE_CURRENT_BINARY_DIR}/ecos/ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/ecos/makefile )
+endmacro()
+
+# get the directory of the current file, used later on in the file
+get_filename_component( ECOS_CMAKE_MODULE_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
+
+#macro for creating an executable ecos application
+#the first parameter is the name of the executable,
+#the second is the list of all source files (where the path
+#has been adjusted beforehand by calling ECOS_ADJUST_DIRECTORY()
+#usage: ECOS_ADD_EXECUTABLE(my_app ${adjusted_SRCS})
+macro(ECOS_ADD_EXECUTABLE _exe_NAME )
+ #definitions, valid for all ecos projects
+ #the optimization and "-g" for debugging has to be enabled
+ #in the project-specific CMakeLists.txt
+ add_definitions(-D__ECOS__=1 -D__ECOS=1)
+ set(ECOS_DEFINITIONS -Wall -Wno-long-long -pipe -fno-builtin)
+
+#the executable depends on ecos target.ld
+ ECOS_ADD_TARGET_LIB(${ARGN})
+
+# when using nmake makefiles, the custom buildtype suppresses the default cl.exe flags
+# and the rules for creating objects are adjusted for gcc
+ set(CMAKE_BUILD_TYPE CUSTOM_ECOS_BUILD)
+ set(CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+ set(CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT> -c <SOURCE>")
+# special link commands for ecos-executables
+ set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_CXX_COMPILER> <CMAKE_CXX_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
+ set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_C_COMPILER> <CMAKE_C_LINK_FLAGS> <OBJECTS> -o <TARGET> ${_ecos_EXTRA_LIBS} -nostdlib -nostartfiles -L${CMAKE_CURRENT_BINARY_DIR}/ecos/install/lib -Ttarget.ld ${ECOS_LD_MCPU}")
+# some strict compiler flags
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Woverloaded-virtual -fno-rtti -Wctor-dtor-privacy -fno-strict-aliasing -fno-exceptions")
+
+ add_executable(${_exe_NAME} ${ARGN})
+ set_target_properties(${_exe_NAME} PROPERTIES SUFFIX ".elf")
+
+#create a binary file
+ add_custom_command(
+ TARGET ${_exe_NAME}
+ POST_BUILD
+ COMMAND ${ECOS_ARCH_PREFIX}objcopy
+ ARGS -O binary ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin
+ )
+
+#and an srec file
+ add_custom_command(
+ TARGET ${_exe_NAME}
+ POST_BUILD
+ COMMAND ${ECOS_ARCH_PREFIX}objcopy
+ ARGS -O srec ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec
+ )
+
+#add the created files to the clean-files
+ set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.bin"
+ "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.srec"
+ "${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst")
+
+ add_custom_target(ecosclean ${CMAKE_COMMAND} -DECOS_DIR=${CMAKE_CURRENT_BINARY_DIR}/ecos/ -P ${ECOS_CMAKE_MODULE_DIR}/ecos_clean.cmake )
+ add_custom_target(normalclean ${CMAKE_MAKE_PROGRAM} clean WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+ add_dependencies (ecosclean normalclean)
+
+
+ add_custom_target( listing
+ COMMAND echo -e \"\\n--- Symbols sorted by address ---\\n\" > ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
+ COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -n ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
+ COMMAND echo -e \"\\n--- Symbols sorted by size ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
+ COMMAND ${ECOS_ARCH_PREFIX}nm -S -C -r --size-sort ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
+ COMMAND echo -e \"\\n--- Full assembly listing ---\\n\" >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst
+ COMMAND ${ECOS_ARCH_PREFIX}objdump -S -x -d -C ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.elf >> ${CMAKE_CURRENT_BINARY_DIR}/${_exe_NAME}.lst )
+
+endmacro()
+
diff --git a/share/cmake-3.18/Modules/UseJava.cmake b/share/cmake-3.18/Modules/UseJava.cmake
new file mode 100644
index 0000000..db3fb95
--- /dev/null
+++ b/share/cmake-3.18/Modules/UseJava.cmake
@@ -0,0 +1,1438 @@
+# 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}
+ VERBATIM
+ )
+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}\"")
+ set(CMAKE_CONFIGURABLE_FILE_CONTENT "${_JAVA_COMPILE_STRING}")
+ configure_file("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in"
+ "${_JAVA_SOURCES_FILE}" @ONLY)
+ unset(CMAKE_CONFIGURABLE_FILE_CONTENT)
+ 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 ${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}/UseJava/ClearClassFiles.cmake
+ 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} ${_JAVA_SOURCES_FILE}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMENT "Building Java objects for ${_TARGET_NAME}.jar"
+ VERBATIM
+ )
+ 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}
+ VERBATIM
+ )
+ 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}"
+ VERBATIM
+ )
+ 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}"
+ VERBATIM
+ )
+ 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.18/Modules/UseJava/ClearClassFiles.cmake b/share/cmake-3.18/Modules/UseJava/ClearClassFiles.cmake
new file mode 100644
index 0000000..f3115c6
--- /dev/null
+++ b/share/cmake-3.18/Modules/UseJava/ClearClassFiles.cmake
@@ -0,0 +1,17 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+# This script deletes compiled Java class files.
+
+if(CMAKE_JAVA_CLASS_OUTPUT_PATH)
+ if(EXISTS "${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist")
+ file(STRINGS "${CMAKE_JAVA_CLASS_OUTPUT_PATH}/java_class_filelist" classes)
+ list(TRANSFORM classes PREPEND "${CMAKE_JAVA_CLASS_OUTPUT_PATH}/")
+ if(classes)
+ file(REMOVE ${classes})
+ message(STATUS "Clean class files from previous build")
+ endif()
+ endif()
+else()
+ message(FATAL_ERROR "Can't find CMAKE_JAVA_CLASS_OUTPUT_PATH")
+endif()
diff --git a/share/cmake-3.17/Modules/UseJavaClassFilelist.cmake b/share/cmake-3.18/Modules/UseJavaClassFilelist.cmake
index 1c4baa9..1c4baa9 100644
--- a/share/cmake-3.17/Modules/UseJavaClassFilelist.cmake
+++ b/share/cmake-3.18/Modules/UseJavaClassFilelist.cmake
diff --git a/share/cmake-3.17/Modules/UseJavaSymlinks.cmake b/share/cmake-3.18/Modules/UseJavaSymlinks.cmake
index 3969f54..3969f54 100644
--- a/share/cmake-3.17/Modules/UseJavaSymlinks.cmake
+++ b/share/cmake-3.18/Modules/UseJavaSymlinks.cmake
diff --git a/share/cmake-3.17/Modules/UsePkgConfig.cmake b/share/cmake-3.18/Modules/UsePkgConfig.cmake
index 32d228d..32d228d 100644
--- a/share/cmake-3.17/Modules/UsePkgConfig.cmake
+++ b/share/cmake-3.18/Modules/UsePkgConfig.cmake
diff --git a/share/cmake-3.17/Modules/UseQt4.cmake b/share/cmake-3.18/Modules/UseQt4.cmake
index 8fec717..8fec717 100644
--- a/share/cmake-3.17/Modules/UseQt4.cmake
+++ b/share/cmake-3.18/Modules/UseQt4.cmake
diff --git a/share/cmake-3.18/Modules/UseSWIG.cmake b/share/cmake-3.18/Modules/UseSWIG.cmake
new file mode 100644
index 0000000..a60e05e
--- /dev/null
+++ b/share/cmake-3.18/Modules/UseSWIG.cmake
@@ -0,0 +1,865 @@
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+UseSWIG
+-------
+
+This file provides support for ``SWIG``. It is assumed that :module:`FindSWIG`
+module has already been loaded.
+
+Defines the following command for use with ``SWIG``:
+
+.. command:: swig_add_library
+
+ Define swig module with given name and specified language::
+
+ swig_add_library(<name>
+ [TYPE <SHARED|MODULE|STATIC|USE_BUILD_SHARED_LIBS>]
+ LANGUAGE <language>
+ [NO_PROXY]
+ [OUTPUT_DIR <directory>]
+ [OUTFILE_DIR <directory>]
+ SOURCES <file>...
+ )
+
+ Targets created with the ``swig_add_library`` command have the same
+ capabilities as targets created with the :command:`add_library` command, so
+ those targets can be used with any command expecting a target (e.g.
+ :command:`target_link_libraries`).
+
+ .. note::
+
+ This command creates a target with the specified ``<name>`` when
+ policy :policy:`CMP0078` is set to ``NEW``. Otherwise, the legacy
+ behavior will choose a different target name and store it in the
+ ``SWIG_MODULE_<name>_REAL_NAME`` variable.
+
+ .. note::
+
+ For multi-config generators, this module does not support
+ configuration-specific files generated by ``SWIG``. All build
+ configurations must result in the same generated source file.
+
+ .. note::
+
+ For Make-based generators, ``swig_add_library`` does not track file
+ dependencies, so depending on the ``<name>_swig_compilation`` custom target
+ is required for targets which require the ``swig``-generated files to
+ exist. Other generators may depend on the source files that would be
+ generated by SWIG.
+
+ ``TYPE``
+ ``SHARED``, ``MODULE`` and ``STATIC`` have the same semantic as for the
+ :command:`add_library` command. If ``USE_BUILD_SHARED_LIBS`` is specified,
+ the library type will be ``STATIC`` or ``SHARED`` based on whether the
+ current value of the :variable:`BUILD_SHARED_LIBS` variable is ``ON``. If
+ no type is specified, ``MODULE`` will be used.
+
+ ``LANGUAGE``
+ Specify the target language.
+
+ ``NO_PROXY``
+ Prevent the generation of the wrapper layer (swig ``-noproxy`` option).
+
+ ``OUTPUT_DIR``
+ Specify where to write the language specific files (swig ``-outdir``
+ option). If not given, the ``CMAKE_SWIG_OUTDIR`` variable will be used.
+ If neither is specified, the default depends on the value of the
+ ``UseSWIG_MODULE_VERSION`` variable as follows:
+
+ * If ``UseSWIG_MODULE_VERSION`` is 1 or is undefined, output is written to
+ the :variable:`CMAKE_CURRENT_BINARY_DIR` directory.
+ * If ``UseSWIG_MODULE_VERSION`` is 2, a dedicated directory will be used.
+ The path of this directory can be retrieved from the
+ ``SWIG_SUPPORT_FILES_DIRECTORY`` target property.
+
+ ``OUTFILE_DIR``
+ Specify an output directory name where the generated source file will be
+ placed (swig -o option). If not specified, the ``SWIG_OUTFILE_DIR`` variable
+ will be used. If neither is specified, ``OUTPUT_DIR`` or
+ ``CMAKE_SWIG_OUTDIR`` is used instead.
+
+ ``SOURCES``
+ List of sources for the library. Files with extension ``.i`` will be
+ identified as sources for the ``SWIG`` tool. Other files will be handled in
+ the standard way. This behavior can be overriden by specifying the variable
+ ``SWIG_SOURCE_FILE_EXTENSIONS``.
+
+ .. note::
+
+ If ``UseSWIG_MODULE_VERSION`` is set to 2, it is **strongly** recommended
+ to use a dedicated directory unique to the target when either the
+ ``OUTPUT_DIR`` option or the ``CMAKE_SWIG_OUTDIR`` variable are specified.
+ The output directory contents are erased as part of the target build, so
+ to prevent interference between targets or losing other important files,
+ each target should have its own dedicated output directory.
+
+.. command:: swig_link_libraries
+
+ Link libraries to swig module::
+
+ swig_link_libraries(<name> <item>...)
+
+ This command has same capabilities as :command:`target_link_libraries`
+ command.
+
+ .. note::
+
+ If variable ``UseSWIG_TARGET_NAME_PREFERENCE`` is set to ``STANDARD``, this
+ command is deprecated and :command:`target_link_libraries` command must be
+ used instead.
+
+Source file properties on module files **must** be set before the invocation
+of the ``swig_add_library`` command to specify special behavior of SWIG and
+ensure generated files will receive the required settings.
+
+``CPLUSPLUS``
+ Call SWIG in c++ mode. For example:
+
+ .. code-block:: cmake
+
+ set_property(SOURCE mymod.i PROPERTY CPLUSPLUS ON)
+ swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
+
+``INCLUDE_DIRECTORIES``, ``COMPILE_DEFINITIONS`` and ``COMPILE_OPTIONS``
+ Add custom flags to SWIG compiler and have same semantic as properties
+ :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and
+ :prop_sf:`COMPILE_OPTIONS`.
+
+``USE_TARGET_INCLUDE_DIRECTORIES``
+ If set to ``TRUE``, contents of target property
+ :prop_tgt:`INCLUDE_DIRECTORIES` will be forwarded to ``SWIG`` compiler.
+ If set to ``FALSE`` target property :prop_tgt:`INCLUDE_DIRECTORIES` will be
+ ignored. If not set, target property ``SWIG_USE_TARGET_INCLUDE_DIRECTORIES``
+ will be considered.
+
+``GENERATED_INCLUDE_DIRECTORIES``, ``GENERATED_COMPILE_DEFINITIONS`` and ``GENERATED_COMPILE_OPTIONS``
+ Add custom flags to the C/C++ generated source. They will fill, respectively,
+ properties :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and
+ :prop_sf:`COMPILE_OPTIONS` of generated C/C++ file.
+
+``DEPENDS``
+ Specify additional dependencies to the source file.
+
+``SWIG_MODULE_NAME``
+ Specify the actual import name of the module in the target language.
+ This is required if it cannot be scanned automatically from source
+ or different from the module file basename. For example:
+
+ .. code-block:: cmake
+
+ set_property(SOURCE mymod.i PROPERTY SWIG_MODULE_NAME mymod_realname)
+
+ .. note::
+
+ If policy :policy:`CMP0086` is set to ``NEW``, ``-module <module_name>``
+ is passed to ``SWIG`` compiler.
+
+Target library properties can be set to apply same configuration to all SWIG
+input files.
+
+``SWIG_INCLUDE_DIRECTORIES``, ``SWIG_COMPILE_DEFINITIONS`` and ``SWIG_COMPILE_OPTIONS``
+ These properties will be applied to all SWIG input files and have same
+ semantic as target properties :prop_tgt:`INCLUDE_DIRECTORIES`,
+ :prop_tgt:`COMPILE_DEFINITIONS` and :prop_tgt:`COMPILE_OPTIONS`.
+
+ .. code-block:: cmake
+
+ set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
+ swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
+ set_property(TARGET mymod PROPERTY SWIG_COMPILE_DEFINITIONS MY_DEF1 MY_DEF2)
+ set_property(TARGET mymod PROPERTY SWIG_COMPILE_OPTIONS -bla -blb)
+
+``SWIG_USE_TARGET_INCLUDE_DIRECTORIES``
+ If set to ``TRUE``, contents of target property
+ :prop_tgt:`INCLUDE_DIRECTORIES` will be forwarded to ``SWIG`` compiler.
+ If set to ``FALSE`` or not defined, target property
+ :prop_tgt:`INCLUDE_DIRECTORIES` will be ignored. This behavior can be
+ overridden by specifying source property ``USE_TARGET_INCLUDE_DIRECTORIES``.
+
+``SWIG_GENERATED_INCLUDE_DIRECTORIES``, ``SWIG_GENERATED_COMPILE_DEFINITIONS`` and ``SWIG_GENERATED_COMPILE_OPTIONS``
+ These properties will populate, respectively, properties
+ :prop_sf:`INCLUDE_DIRECTORIES`, :prop_sf:`COMPILE_DEFINITIONS` and
+ :prop_sf:`COMPILE_FLAGS` of all generated C/C++ files.
+
+``SWIG_DEPENDS``
+ Add dependencies to all SWIG input files.
+
+The following target properties are output properties and can be used to get
+information about support files generated by ``SWIG`` interface compilation.
+
+``SWIG_SUPPORT_FILES``
+ This output property list of wrapper files generated during SWIG compilation.
+
+ .. code-block:: cmake
+
+ set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
+ swig_add_library(mymod LANGUAGE python SOURCES mymod.i)
+ get_property(support_files TARGET mymod PROPERTY SWIG_SUPPORT_FILES)
+
+ .. note::
+
+ Only most principal support files are listed. In case some advanced
+ features of ``SWIG`` are used (for example ``%template``), associated
+ support files may not be listed. Prefer to use the
+ ``SWIG_SUPPORT_FILES_DIRECTORY`` property to handle support files.
+
+``SWIG_SUPPORT_FILES_DIRECTORY``
+ This output property specifies the directory where support files will be
+ generated.
+
+Some variables can be set to customize the behavior of ``swig_add_library``
+as well as ``SWIG``:
+
+``UseSWIG_MODULE_VERSION``
+ Specify different behaviors for ``UseSWIG`` module.
+
+ * Set to 1 or undefined: Legacy behavior is applied.
+ * Set to 2: A new strategy is applied regarding support files: the output
+ directory of support files is erased before ``SWIG`` interface compilation.
+
+``CMAKE_SWIG_FLAGS``
+ Add flags to all swig calls.
+
+``CMAKE_SWIG_OUTDIR``
+ Specify where to write the language specific files (swig ``-outdir`` option).
+
+``SWIG_OUTFILE_DIR``
+ Specify an output directory name where the generated source file will be
+ placed. If not specified, ``CMAKE_SWIG_OUTDIR`` is used.
+
+``SWIG_MODULE_<name>_EXTRA_DEPS``
+ Specify extra dependencies for the generated module for ``<name>``.
+
+``SWIG_SOURCE_FILE_EXTENSIONS``
+ Specify a list of source file extensions to override the default
+ behavior of considering only ``.i`` files as sources for the ``SWIG``
+ tool. For example:
+
+ .. code-block:: cmake
+
+ set(SWIG_SOURCE_FILE_EXTENSIONS ".i" ".swg")
+#]=======================================================================]
+
+cmake_policy(GET CMP0078 target_name_policy)
+cmake_policy(GET CMP0086 module_name_policy)
+
+cmake_policy (VERSION 3.12)
+if (target_name_policy)
+ # respect user choice regarding CMP0078 policy
+ cmake_policy(SET CMP0078 ${target_name_policy})
+endif()
+if (module_name_policy)
+ # respect user choice regarding CMP0086 policy
+ cmake_policy(SET CMP0086 ${module_name_policy})
+endif()
+unset(target_name_policy)
+unset(module_name_policy)
+
+set(SWIG_CXX_EXTENSION "cxx")
+set(SWIG_EXTRA_LIBRARIES "")
+
+set(SWIG_PYTHON_EXTRA_FILE_EXTENSIONS ".py")
+set(SWIG_JAVA_EXTRA_FILE_EXTENSIONS ".java" "JNI.java")
+set(SWIG_CSHARP_EXTRA_FILE_EXTENSIONS ".cs" "PINVOKE.cs")
+
+set(SWIG_MANAGE_SUPPORT_FILES_SCRIPT "${CMAKE_CURRENT_LIST_DIR}/UseSWIG/ManageSupportFiles.cmake")
+
+##
+## PRIVATE functions
+##
+function (__SWIG_COMPUTE_TIMESTAMP name language infile workingdir __timestamp)
+ get_filename_component(filename "${infile}" NAME_WE)
+ set(${__timestamp}
+ "${workingdir}/${filename}${language}.stamp" PARENT_SCOPE)
+ # get_filename_component(filename "${infile}" ABSOLUTE)
+ # string(UUID uuid NAMESPACE 9735D882-D2F8-4E1D-88C9-A0A4F1F6ECA4
+ # NAME ${name}-${language}-${filename} TYPE SHA1)
+ # set(${__timestamp} "${workingdir}/${uuid}.stamp" PARENT_SCOPE)
+endfunction()
+
+#
+# For given swig module initialize variables associated with it
+#
+macro(SWIG_MODULE_INITIALIZE name language)
+ string(TOUPPER "${language}" SWIG_MODULE_${name}_LANGUAGE)
+ string(TOLOWER "${language}" SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG)
+
+ if (NOT DEFINED SWIG_MODULE_${name}_NOPROXY)
+ set (SWIG_MODULE_${name}_NOPROXY FALSE)
+ endif()
+ if ("-noproxy" IN_LIST CMAKE_SWIG_FLAGS)
+ set (SWIG_MODULE_${name}_NOPROXY TRUE)
+ endif ()
+
+ if (SWIG_MODULE_${name}_NOPROXY AND
+ NOT ("-noproxy" IN_LIST CMAKE_SWIG_FLAGS OR "-noproxy" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
+ list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-noproxy")
+ endif()
+ if(SWIG_MODULE_${name}_LANGUAGE STREQUAL "UNKNOWN")
+ message(FATAL_ERROR "SWIG Error: Language \"${language}\" not found")
+ elseif(SWIG_MODULE_${name}_LANGUAGE STREQUAL "PERL" AND
+ NOT "-shadow" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS)
+ list(APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-shadow")
+ endif()
+endmacro()
+
+#
+# For a given language, input file, and output file, determine extra files that
+# will be generated. This is internal swig macro.
+#
+
+function(SWIG_GET_EXTRA_OUTPUT_FILES language outfiles generatedpath infile)
+ set(files)
+ get_source_file_property(module_basename
+ "${infile}" SWIG_MODULE_NAME)
+ if(NOT module_basename)
+
+ # try to get module name from "%module foo" syntax
+ if ( EXISTS "${infile}" )
+ file ( STRINGS "${infile}" module_basename REGEX "[ ]*%module[ ]*[a-zA-Z0-9_]+.*" )
+ endif ()
+ if ( module_basename )
+ string ( REGEX REPLACE "[ ]*%module[ ]*([a-zA-Z0-9_]+).*" "\\1" module_basename "${module_basename}" )
+
+ else ()
+ # try to get module name from "%module (options=...) foo" syntax
+ if ( EXISTS "${infile}" )
+ file ( STRINGS "${infile}" module_basename REGEX "[ ]*%module[ ]*\\(.*\\)[ ]*[a-zA-Z0-9_]+.*" )
+ endif ()
+ if ( module_basename )
+ string ( REGEX REPLACE "[ ]*%module[ ]*\\(.*\\)[ ]*([a-zA-Z0-9_]+).*" "\\1" module_basename "${module_basename}" )
+
+ else ()
+ # fallback to file basename
+ get_filename_component(module_basename "${infile}" NAME_WE)
+ endif ()
+ endif ()
+
+ endif()
+ foreach(it ${SWIG_${language}_EXTRA_FILE_EXTENSIONS})
+ set(extra_file "${generatedpath}/${module_basename}${it}")
+ if (extra_file MATCHES "\\.cs$" AND CMAKE_CSharp_COMPILER_LOADED)
+ set_source_files_properties(${extra_file} PROPERTIES LANGUAGE "CSharp")
+ else()
+ # Treat extra outputs as plain files regardless of language.
+ set_source_files_properties(${extra_file} PROPERTIES LANGUAGE "")
+ endif()
+ list(APPEND files "${extra_file}")
+ endforeach()
+
+ if (language STREQUAL "FORTRAN" AND CMAKE_Fortran_COMPILER_LOADED)
+ # Process possible user-supplied extension in flags (obtained via parent
+ # scope variable) to determine the source file name.
+ list(FIND SWIG_COMPILATION_FLAGS "-fext" fext_idx)
+ if (fext_idx EQUAL -1)
+ # Default Fortran generated extension
+ set(fext "f90")
+ else()
+ # Get extension from user-provided flag
+ math(EXPR fext_idx "${fext_idx} + 1")
+ list(GET SWIG_COMPILATION_FLAGS "${fext_idx}" fext)
+ endif()
+ set(extra_file "${generatedpath}/${module_basename}.${fext}")
+ set_source_files_properties("${extra_file}" PROPERTIES LANGUAGE "Fortran")
+ list(APPEND files "${extra_file}")
+ endif()
+
+ set (${outfiles} ${files} PARENT_SCOPE)
+endfunction()
+
+#
+# Take swig (*.i) file and add proper custom commands for it
+#
+function(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
+ get_filename_component(swig_source_file_name_we "${infile}" NAME_WE)
+ get_source_file_property(swig_source_file_cplusplus "${infile}" CPLUSPLUS)
+
+ # If CMAKE_SWIG_OUTDIR was specified then pass it to -outdir
+ if(CMAKE_SWIG_OUTDIR)
+ set(outdir ${CMAKE_SWIG_OUTDIR})
+ else()
+ set(outdir ${CMAKE_CURRENT_BINARY_DIR})
+ endif()
+
+ if(SWIG_OUTFILE_DIR)
+ set(outfiledir ${SWIG_OUTFILE_DIR})
+ else()
+ set(outfiledir ${outdir})
+ endif()
+
+ if(SWIG_WORKING_DIR)
+ set (workingdir "${SWIG_WORKING_DIR}")
+ else()
+ set(workingdir "${outdir}")
+ endif()
+
+ if(SWIG_TARGET_NAME)
+ set(target_name ${SWIG_TARGET_NAME})
+ else()
+ set(target_name ${name})
+ endif()
+
+ set (swig_source_file_flags ${CMAKE_SWIG_FLAGS})
+ # handle various swig compile flags properties
+ get_source_file_property (include_directories "${infile}" INCLUDE_DIRECTORIES)
+ if (include_directories)
+ list (APPEND swig_source_file_flags "$<$<BOOL:${include_directories}>:-I$<JOIN:${include_directories},$<SEMICOLON>-I>>")
+ endif()
+ set (property "$<TARGET_PROPERTY:${target_name},SWIG_INCLUDE_DIRECTORIES>")
+ list (APPEND swig_source_file_flags "$<$<BOOL:${property}>:-I$<JOIN:$<TARGET_GENEX_EVAL:${target_name},${property}>,$<SEMICOLON>-I>>")
+ set (property "$<TARGET_PROPERTY:${target_name},INCLUDE_DIRECTORIES>")
+ get_source_file_property(use_target_include_dirs "${infile}" USE_TARGET_INCLUDE_DIRECTORIES)
+ if (use_target_include_dirs)
+ list (APPEND swig_source_file_flags "$<$<BOOL:${property}>:-I$<JOIN:${property},$<SEMICOLON>-I>>")
+ elseif(use_target_include_dirs STREQUAL "NOTFOUND")
+ # not defined at source level, rely on target level
+ list (APPEND swig_source_file_flags "$<$<AND:$<BOOL:$<TARGET_PROPERTY:${target_name},SWIG_USE_TARGET_INCLUDE_DIRECTORIES>>,$<BOOL:${property}>>:-I$<JOIN:${property},$<SEMICOLON>-I>>")
+ endif()
+
+ set (property "$<TARGET_PROPERTY:${target_name},SWIG_COMPILE_DEFINITIONS>")
+ list (APPEND swig_source_file_flags "$<$<BOOL:${property}>:-D$<JOIN:$<TARGET_GENEX_EVAL:${target_name},${property}>,$<SEMICOLON>-D>>")
+ get_source_file_property (compile_definitions "${infile}" COMPILE_DEFINITIONS)
+ if (compile_definitions)
+ list (APPEND swig_source_file_flags "$<$<BOOL:${compile_definitions}>:-D$<JOIN:${compile_definitions},$<SEMICOLON>-D>>")
+ endif()
+
+ list (APPEND swig_source_file_flags "$<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_COMPILE_OPTIONS>>")
+ get_source_file_property (compile_options "${infile}" COMPILE_OPTIONS)
+ if (compile_options)
+ list (APPEND swig_source_file_flags ${compile_options})
+ endif()
+
+ # legacy support
+ get_source_file_property (swig_flags "${infile}" SWIG_FLAGS)
+ if (swig_flags)
+ list (APPEND swig_source_file_flags ${swig_flags})
+ endif()
+
+ get_filename_component(swig_source_file_fullname "${infile}" ABSOLUTE)
+
+ if (NOT SWIG_MODULE_${name}_NOPROXY)
+ set(SWIG_COMPILATION_FLAGS ${swig_source_file_flags})
+ SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE}
+ swig_extra_generated_files
+ "${outdir}"
+ "${swig_source_file_fullname}")
+ endif()
+ set(swig_generated_file_fullname
+ "${outfiledir}/${swig_source_file_name_we}")
+ # add the language into the name of the file (i.e. TCL_wrap)
+ # this allows for the same .i file to be wrapped into different languages
+ string(APPEND swig_generated_file_fullname
+ "${SWIG_MODULE_${name}_LANGUAGE}_wrap")
+
+ if(swig_source_file_cplusplus)
+ string(APPEND swig_generated_file_fullname
+ ".${SWIG_CXX_EXTENSION}")
+ else()
+ string(APPEND swig_generated_file_fullname
+ ".c")
+ endif()
+
+ get_directory_property (cmake_include_directories INCLUDE_DIRECTORIES)
+ list (REMOVE_DUPLICATES cmake_include_directories)
+ set (swig_include_dirs)
+ if (cmake_include_directories)
+ set (swig_include_dirs "$<$<BOOL:${cmake_include_directories}>:-I$<JOIN:${cmake_include_directories},$<SEMICOLON>-I>>")
+ endif()
+
+ set(swig_special_flags)
+ # default is c, so add c++ flag if it is c++
+ if(swig_source_file_cplusplus)
+ list (APPEND swig_special_flags "-c++")
+ endif()
+
+ cmake_policy(GET CMP0086 module_name_policy)
+ if (module_name_policy STREQUAL "NEW")
+ get_source_file_property(module_name "${infile}" SWIG_MODULE_NAME)
+ if (module_name)
+ list (APPEND swig_special_flags "-module" "${module_name}")
+ endif()
+ else()
+ if (NOT module_name_policy)
+ cmake_policy(GET_WARNING CMP0086 _cmp0086_warning)
+ message(AUTHOR_WARNING "${_cmp0086_warning}\n")
+ endif()
+ endif()
+
+ set (swig_extra_flags)
+ if(SWIG_MODULE_${name}_LANGUAGE STREQUAL "CSHARP")
+ if(NOT ("-dllimport" IN_LIST swig_source_file_flags OR "-dllimport" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
+ # This makes sure that the name used in the generated DllImport
+ # matches the library name created by CMake
+ list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-dllimport" "$<TARGET_FILE_PREFIX:${target_name}>$<TARGET_FILE_BASE_NAME:${target_name}>")
+ endif()
+ endif()
+ if (SWIG_MODULE_${name}_LANGUAGE STREQUAL "PYTHON" AND NOT SWIG_MODULE_${name}_NOPROXY)
+ if(NOT ("-interface" IN_LIST swig_source_file_flags OR "-interface" IN_LIST SWIG_MODULE_${name}_EXTRA_FLAGS))
+ # This makes sure that the name used in the proxy code
+ # matches the library name created by CMake
+ list (APPEND SWIG_MODULE_${name}_EXTRA_FLAGS "-interface" "$<TARGET_FILE_PREFIX:${target_name}>$<TARGET_FILE_BASE_NAME:${target_name}>")
+ endif()
+ endif()
+ list (APPEND swig_extra_flags ${SWIG_MODULE_${name}_EXTRA_FLAGS})
+
+ # dependencies
+ set (swig_dependencies ${SWIG_MODULE_${name}_EXTRA_DEPS} $<TARGET_PROPERTY:${target_name},SWIG_DEPENDS>)
+ get_source_file_property(file_depends "${infile}" DEPENDS)
+ if (file_depends)
+ list (APPEND swig_dependencies ${file_depends})
+ endif()
+
+ if (UseSWIG_MODULE_VERSION VERSION_GREATER 1)
+ # as part of custom command, start by removing old generated files
+ # to ensure obsolete files do not stay
+ set (swig_file_outdir "${workingdir}/${swig_source_file_name_we}.files")
+ set (swig_cleanup_command COMMAND "${CMAKE_COMMAND}" "-DSUPPORT_FILES_WORKING_DIRECTORY=${swig_file_outdir}" "-DSUPPORT_FILES_OUTPUT_DIRECTORY=${outdir}" -DACTION=CLEAN -P "${SWIG_MANAGE_SUPPORT_FILES_SCRIPT}")
+ set (swig_copy_command COMMAND "${CMAKE_COMMAND}" "-DSUPPORT_FILES_WORKING_DIRECTORY=${swig_file_outdir}" "-DSUPPORT_FILES_OUTPUT_DIRECTORY=${outdir}" -DACTION=COPY -P "${SWIG_MANAGE_SUPPORT_FILES_SCRIPT}")
+ else()
+ set (swig_file_outdir "${outdir}")
+ unset (swig_cleanup_command)
+ unset (swig_copy_command)
+ endif()
+
+ # IMPLICIT_DEPENDS below can not handle situations where a dependent file is
+ # removed. We need an extra step with timestamp and custom target, see #16830
+ # As this is needed only for Makefile generator do it conditionally
+ if(CMAKE_GENERATOR MATCHES "Make")
+ __swig_compute_timestamp(${name} ${SWIG_MODULE_${name}_LANGUAGE}
+ "${infile}" "${workingdir}" swig_generated_timestamp)
+ set(swig_custom_output "${swig_generated_timestamp}")
+ set(swig_custom_products
+ BYPRODUCTS "${swig_generated_file_fullname}" ${swig_extra_generated_files})
+ set(swig_timestamp_command
+ COMMAND ${CMAKE_COMMAND} -E touch "${swig_generated_timestamp}")
+ else()
+ set(swig_custom_output
+ "${swig_generated_file_fullname}" ${swig_extra_generated_files})
+ set(swig_custom_products)
+ set(swig_timestamp_command)
+ endif()
+ add_custom_command(
+ OUTPUT ${swig_custom_output}
+ ${swig_custom_products}
+ ${swig_cleanup_command}
+ # Let's create the ${outdir} at execution time, in case dir contains $(OutDir)
+ COMMAND "${CMAKE_COMMAND}" -E make_directory ${outdir} ${outfiledir}
+ ${swig_timestamp_command}
+ COMMAND "${CMAKE_COMMAND}" -E env "SWIG_LIB=${SWIG_DIR}" "${SWIG_EXECUTABLE}"
+ "-${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}"
+ "${swig_source_file_flags}"
+ -outdir "${swig_file_outdir}"
+ ${swig_special_flags}
+ ${swig_extra_flags}
+ "${swig_include_dirs}"
+ -o "${swig_generated_file_fullname}"
+ "${swig_source_file_fullname}"
+ ${swig_copy_command}
+ MAIN_DEPENDENCY "${swig_source_file_fullname}"
+ DEPENDS ${swig_dependencies}
+ IMPLICIT_DEPENDS CXX "${swig_source_file_fullname}"
+ COMMENT "Swig compile ${infile} for ${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}"
+ COMMAND_EXPAND_LISTS)
+ set_source_files_properties("${swig_generated_file_fullname}" ${swig_extra_generated_files}
+ PROPERTIES GENERATED 1)
+
+ ## add all properties for generated file to various properties
+ get_property (include_directories SOURCE "${infile}" PROPERTY GENERATED_INCLUDE_DIRECTORIES)
+ set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY INCLUDE_DIRECTORIES ${include_directories} $<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_GENERATED_INCLUDE_DIRECTORIES>>)
+
+ get_property (compile_definitions SOURCE "${infile}" PROPERTY GENERATED_COMPILE_DEFINITIONS)
+ set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY COMPILE_DEFINITIONS $<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_GENERATED_COMPILE_DEFINITIONS>> ${compile_definitions})
+
+ get_property (compile_options SOURCE "${infile}" PROPERTY GENERATED_COMPILE_OPTIONS)
+ set_property (SOURCE "${swig_generated_file_fullname}" PROPERTY COMPILE_OPTIONS $<TARGET_GENEX_EVAL:${target_name},$<TARGET_PROPERTY:${target_name},SWIG_GENERATED_COMPILE_OPTIONS>> ${compile_options})
+
+ if (SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG MATCHES "php")
+ set_property (SOURCE "${swig_generated_file_fullname}" APPEND PROPERTY INCLUDE_DIRECTORIES "${outdir}")
+ endif()
+
+ set(${outfiles} "${swig_generated_file_fullname}" ${swig_extra_generated_files} PARENT_SCOPE)
+
+ # legacy support
+ set (swig_generated_file_fullname "${swig_generated_file_fullname}" PARENT_SCOPE)
+endfunction()
+
+#
+# Create Swig module
+#
+macro(SWIG_ADD_MODULE name language)
+ message(DEPRECATION "SWIG_ADD_MODULE is deprecated. Use SWIG_ADD_LIBRARY instead.")
+ swig_add_library(${name}
+ LANGUAGE ${language}
+ TYPE MODULE
+ SOURCES ${ARGN})
+endmacro()
+
+
+function(SWIG_ADD_LIBRARY name)
+ set(options NO_PROXY)
+ set(oneValueArgs LANGUAGE
+ TYPE
+ OUTPUT_DIR
+ OUTFILE_DIR)
+ set(multiValueArgs SOURCES)
+ cmake_parse_arguments(_SAM "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
+
+ if (_SAM_UNPARSED_ARGUMENTS)
+ message(FATAL_ERROR "SWIG_ADD_LIBRARY: ${_SAM_UNPARSED_ARGUMENTS}: unexpected arguments")
+ endif()
+
+ if(NOT DEFINED _SAM_LANGUAGE)
+ message(FATAL_ERROR "SWIG_ADD_LIBRARY: Missing LANGUAGE argument")
+ endif()
+
+ if(NOT DEFINED _SAM_SOURCES)
+ message(FATAL_ERROR "SWIG_ADD_LIBRARY: Missing SOURCES argument")
+ endif()
+
+ if(NOT DEFINED _SAM_TYPE)
+ set(_SAM_TYPE MODULE)
+ elseif(_SAM_TYPE STREQUAL "USE_BUILD_SHARED_LIBS")
+ unset(_SAM_TYPE)
+ endif()
+
+ cmake_policy(GET CMP0078 target_name_policy)
+ if (target_name_policy STREQUAL "NEW")
+ set (UseSWIG_TARGET_NAME_PREFERENCE STANDARD)
+ else()
+ if (NOT target_name_policy)
+ cmake_policy(GET_WARNING CMP0078 _cmp0078_warning)
+ message(AUTHOR_WARNING "${_cmp0078_warning}\n")
+ endif()
+ if (NOT DEFINED UseSWIG_TARGET_NAME_PREFERENCE)
+ set (UseSWIG_TARGET_NAME_PREFERENCE LEGACY)
+ elseif (NOT UseSWIG_TARGET_NAME_PREFERENCE MATCHES "^(LEGACY|STANDARD)$")
+ message (FATAL_ERROR "UseSWIG_TARGET_NAME_PREFERENCE: ${UseSWIG_TARGET_NAME_PREFERENCE}: invalid value. 'LEGACY' or 'STANDARD' is expected.")
+ endif()
+ endif()
+
+ if (NOT DEFINED UseSWIG_MODULE_VERSION)
+ set (UseSWIG_MODULE_VERSION 1)
+ elseif (NOT UseSWIG_MODULE_VERSION MATCHES "^(1|2)$")
+ message (FATAL_ERROR "UseSWIG_MODULE_VERSION: ${UseSWIG_MODULE_VERSION}: invalid value. 1 or 2 is expected.")
+ endif()
+
+ set (SWIG_MODULE_${name}_NOPROXY ${_SAM_NO_PROXY})
+ swig_module_initialize(${name} ${_SAM_LANGUAGE})
+
+ # compute real target name.
+ if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "LEGACY" AND
+ SWIG_MODULE_${name}_LANGUAGE STREQUAL "PYTHON" AND NOT SWIG_MODULE_${name}_NOPROXY)
+ # swig will produce a module.py containing an 'import _modulename' statement,
+ # which implies having a corresponding _modulename.so (*NIX), _modulename.pyd (Win32),
+ # unless the -noproxy flag is used
+ set(target_name "_${name}")
+ else()
+ set(target_name "${name}")
+ endif()
+
+ if (TARGET ${target_name})
+ # a target with same name is already defined.
+ # call NOW add_library command to raise the most useful error message
+ add_library(${target_name})
+ return()
+ endif()
+
+ set (workingdir "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}.dir")
+ # set special variable to pass extra information to command SWIG_ADD_SOURCE_TO_MODULE
+ # which cannot be changed due to legacy compatibility
+ set (SWIG_WORKING_DIR "${workingdir}")
+ set (SWIG_TARGET_NAME "${target_name}")
+
+ set (outputdir "${_SAM_OUTPUT_DIR}")
+ if (NOT _SAM_OUTPUT_DIR)
+ if (CMAKE_SWIG_OUTDIR)
+ set (outputdir "${CMAKE_SWIG_OUTDIR}")
+ else()
+ if (UseSWIG_MODULE_VERSION VERSION_GREATER 1)
+ set (outputdir "${workingdir}/${_SAM_LANGUAGE}.files")
+ else()
+ set (outputdir "${CMAKE_CURRENT_BINARY_DIR}")
+ endif()
+ endif()
+ endif()
+
+ set (outfiledir "${_SAM_OUTFILE_DIR}")
+ if(NOT _SAM_OUTFILE_DIR)
+ if (SWIG_OUTFILE_DIR)
+ set (outfiledir "${SWIG_OUTFILE_DIR}")
+ else()
+ if (_SAM_OUTPUT_DIR OR CMAKE_SWIG_OUTDIR)
+ set (outfiledir "${outputdir}")
+ else()
+ set (outfiledir "${workingdir}")
+ endif()
+ endif()
+ endif()
+ # set again, locally, predefined variables to ensure compatibility
+ # with command SWIG_ADD_SOURCE_TO_MODULE
+ set(CMAKE_SWIG_OUTDIR "${outputdir}")
+ set(SWIG_OUTFILE_DIR "${outfiledir}")
+
+ # See if the user has specified source extensions for swig files?
+ if (NOT DEFINED SWIG_SOURCE_FILE_EXTENSIONS)
+ # Assume the default (*.i) file extension for Swig source files
+ set(SWIG_SOURCE_FILE_EXTENSIONS ".i")
+ endif()
+
+ # Generate a regex out of file extensions.
+ string(REGEX REPLACE "([$^.*+?|()-])" "\\\\\\1" swig_source_ext_regex "${SWIG_SOURCE_FILE_EXTENSIONS}")
+ list (JOIN swig_source_ext_regex "|" swig_source_ext_regex)
+ string (PREPEND swig_source_ext_regex "(")
+ string (APPEND swig_source_ext_regex ")$")
+
+ set(swig_dot_i_sources ${_SAM_SOURCES})
+ list(FILTER swig_dot_i_sources INCLUDE REGEX ${swig_source_ext_regex})
+ if (NOT swig_dot_i_sources)
+ message(FATAL_ERROR "SWIG_ADD_LIBRARY: no SWIG interface files specified")
+ endif()
+ set(swig_other_sources ${_SAM_SOURCES})
+ list(REMOVE_ITEM swig_other_sources ${swig_dot_i_sources})
+
+ set(swig_generated_sources)
+ set(swig_generated_timestamps)
+ foreach(swig_it IN LISTS swig_dot_i_sources)
+ SWIG_ADD_SOURCE_TO_MODULE(${name} swig_generated_source "${swig_it}")
+ list (APPEND swig_generated_sources "${swig_generated_source}")
+ if(CMAKE_GENERATOR MATCHES "Make")
+ __swig_compute_timestamp(${name} ${SWIG_MODULE_${name}_LANGUAGE} "${swig_it}"
+ "${workingdir}" swig_timestamp)
+ list (APPEND swig_generated_timestamps "${swig_timestamp}")
+ endif()
+ endforeach()
+ set_property (DIRECTORY APPEND PROPERTY
+ ADDITIONAL_CLEAN_FILES ${swig_generated_sources} ${swig_generated_timestamps})
+ if (UseSWIG_MODULE_VERSION VERSION_GREATER 1)
+ set_property (DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES "${outputdir}")
+ endif()
+
+ add_library(${target_name}
+ ${_SAM_TYPE}
+ ${swig_generated_sources}
+ ${swig_other_sources})
+ if(CMAKE_GENERATOR MATCHES "Make")
+ # see IMPLICIT_DEPENDS above
+ add_custom_target(${name}_swig_compilation DEPENDS ${swig_generated_timestamps})
+ add_dependencies(${target_name} ${name}_swig_compilation)
+ endif()
+ if(_SAM_TYPE STREQUAL "MODULE")
+ set_target_properties(${target_name} PROPERTIES NO_SONAME ON)
+ endif()
+ string(TOLOWER "${_SAM_LANGUAGE}" swig_lowercase_language)
+ if (swig_lowercase_language STREQUAL "octave")
+ set_target_properties(${target_name} PROPERTIES PREFIX "")
+ set_target_properties(${target_name} PROPERTIES SUFFIX ".oct")
+ elseif (swig_lowercase_language STREQUAL "go")
+ set_target_properties(${target_name} PROPERTIES PREFIX "")
+ elseif (swig_lowercase_language STREQUAL "java")
+ # In java you want:
+ # System.loadLibrary("LIBRARY");
+ # then JNI will look for a library whose name is platform dependent, namely
+ # MacOS : libLIBRARY.jnilib
+ # Windows: LIBRARY.dll
+ # Linux : libLIBRARY.so
+ if (APPLE)
+ set_target_properties (${target_name} PROPERTIES SUFFIX ".jnilib")
+ endif()
+ if ((WIN32 AND MINGW) OR CYGWIN OR CMAKE_SYSTEM_NAME STREQUAL MSYS)
+ set_target_properties(${target_name} PROPERTIES PREFIX "")
+ endif()
+ elseif (swig_lowercase_language STREQUAL "lua")
+ if(_SAM_TYPE STREQUAL "MODULE")
+ set_target_properties(${target_name} PROPERTIES PREFIX "")
+ endif()
+ elseif (swig_lowercase_language STREQUAL "python")
+ if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "STANDARD" AND NOT SWIG_MODULE_${name}_NOPROXY)
+ # swig will produce a module.py containing an 'import _modulename' statement,
+ # which implies having a corresponding _modulename.so (*NIX), _modulename.pyd (Win32),
+ # unless the -noproxy flag is used
+ set_target_properties(${target_name} PROPERTIES PREFIX "_")
+ else()
+ set_target_properties(${target_name} PROPERTIES PREFIX "")
+ endif()
+ # Python extension modules on Windows must have the extension ".pyd"
+ # instead of ".dll" as of Python 2.5. Older python versions do support
+ # this suffix.
+ # http://docs.python.org/whatsnew/ports.html#SECTION0001510000000000000000
+ # <quote>
+ # Windows: .dll is no longer supported as a filename extension for extension modules.
+ # .pyd is now the only filename extension that will be searched for.
+ # </quote>
+ if(WIN32 AND NOT CYGWIN)
+ set_target_properties(${target_name} PROPERTIES SUFFIX ".pyd")
+ endif()
+ elseif (swig_lowercase_language STREQUAL "r")
+ set_target_properties(${target_name} PROPERTIES PREFIX "")
+ elseif (swig_lowercase_language STREQUAL "ruby")
+ # In ruby you want:
+ # require 'LIBRARY'
+ # then ruby will look for a library whose name is platform dependent, namely
+ # MacOS : LIBRARY.bundle
+ # Windows: LIBRARY.dll
+ # Linux : LIBRARY.so
+ set_target_properties (${target_name} PROPERTIES PREFIX "")
+ if (APPLE)
+ set_target_properties (${target_name} PROPERTIES SUFFIX ".bundle")
+ endif ()
+ elseif (swig_lowercase_language STREQUAL "perl")
+ # assume empty prefix because we expect the module to be dynamically loaded
+ set_target_properties (${target_name} PROPERTIES PREFIX "")
+ if (APPLE)
+ set_target_properties (${target_name} PROPERTIES SUFFIX ".dylib")
+ endif ()
+ elseif (swig_lowercase_language STREQUAL "fortran")
+ # Do *not* override the target's library prefix
+ else()
+ # assume empty prefix because we expect the module to be dynamically loaded
+ set_target_properties (${target_name} PROPERTIES PREFIX "")
+ endif ()
+
+ # target property SWIG_SUPPORT_FILES_DIRECTORY specify output directory of support files
+ set_property (TARGET ${target_name} PROPERTY SWIG_SUPPORT_FILES_DIRECTORY "${outputdir}")
+ # target property SWIG_SUPPORT_FILES lists principal proxy support files
+ if (NOT SWIG_MODULE_${name}_NOPROXY)
+ string(TOUPPER "${_SAM_LANGUAGE}" swig_uppercase_language)
+ set(swig_all_support_files)
+ foreach (swig_it IN LISTS SWIG_${swig_uppercase_language}_EXTRA_FILE_EXTENSIONS)
+ set (swig_support_files ${swig_generated_sources})
+ list (FILTER swig_support_files INCLUDE REGEX ".*${swig_it}$")
+ list(APPEND swig_all_support_files ${swig_support_files})
+ endforeach()
+ if (swig_all_support_files)
+ list(REMOVE_DUPLICATES swig_all_support_files)
+ endif()
+ set_property (TARGET ${target_name} PROPERTY SWIG_SUPPORT_FILES ${swig_all_support_files})
+ endif()
+
+ # to ensure legacy behavior, export some variables
+ set (SWIG_MODULE_${name}_LANGUAGE "${SWIG_MODULE_${name}_LANGUAGE}" PARENT_SCOPE)
+ set (SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG "${SWIG_MODULE_${name}_SWIG_LANGUAGE_FLAG}" PARENT_SCOPE)
+ set (SWIG_MODULE_${name}_REAL_NAME "${target_name}" PARENT_SCOPE)
+ set (SWIG_MODULE_${name}_NOPROXY "${SWIG_MODULE_${name}_NOPROXY}" PARENT_SCOPE)
+ set (SWIG_MODULE_${name}_EXTRA_FLAGS "${SWIG_MODULE_${name}_EXTRA_FLAGS}" PARENT_SCOPE)
+ # the last one is a bit crazy but it is documented, so...
+ # NOTA: works as expected if only ONE input file is specified
+ set (swig_generated_file_fullname "${swig_generated_file_fullname}" PARENT_SCOPE)
+endfunction()
+
+#
+# Like TARGET_LINK_LIBRARIES but for swig modules
+#
+function(SWIG_LINK_LIBRARIES name)
+ if (UseSWIG_TARGET_NAME_PREFERENCE STREQUAL "STANDARD")
+ message(DEPRECATION "SWIG_LINK_LIBRARIES is deprecated. Use TARGET_LINK_LIBRARIES instead.")
+ target_link_libraries(${name} ${ARGN})
+ else()
+ if(SWIG_MODULE_${name}_REAL_NAME)
+ target_link_libraries(${SWIG_MODULE_${name}_REAL_NAME} ${ARGN})
+ else()
+ message(SEND_ERROR "Cannot find Swig library \"${name}\".")
+ endif()
+ endif()
+endfunction()
diff --git a/share/cmake-3.17/Modules/UseSWIG/ManageSupportFiles.cmake b/share/cmake-3.18/Modules/UseSWIG/ManageSupportFiles.cmake
index 4a03900..4a03900 100644
--- a/share/cmake-3.17/Modules/UseSWIG/ManageSupportFiles.cmake
+++ b/share/cmake-3.18/Modules/UseSWIG/ManageSupportFiles.cmake
diff --git a/share/cmake-3.17/Modules/Use_wxWindows.cmake b/share/cmake-3.18/Modules/Use_wxWindows.cmake
index 782874c..782874c 100644
--- a/share/cmake-3.17/Modules/Use_wxWindows.cmake
+++ b/share/cmake-3.18/Modules/Use_wxWindows.cmake
diff --git a/share/cmake-3.17/Modules/UsewxWidgets.cmake b/share/cmake-3.18/Modules/UsewxWidgets.cmake
index eed0410..eed0410 100644
--- a/share/cmake-3.17/Modules/UsewxWidgets.cmake
+++ b/share/cmake-3.18/Modules/UsewxWidgets.cmake
diff --git a/share/cmake-3.17/Modules/VTKCompatibility.cmake b/share/cmake-3.18/Modules/VTKCompatibility.cmake
index 1b0815e..1b0815e 100644
--- a/share/cmake-3.17/Modules/VTKCompatibility.cmake
+++ b/share/cmake-3.18/Modules/VTKCompatibility.cmake
diff --git a/share/cmake-3.17/Modules/WriteBasicConfigVersionFile.cmake b/share/cmake-3.18/Modules/WriteBasicConfigVersionFile.cmake
index 45f9e58..45f9e58 100644
--- a/share/cmake-3.17/Modules/WriteBasicConfigVersionFile.cmake
+++ b/share/cmake-3.18/Modules/WriteBasicConfigVersionFile.cmake
diff --git a/share/cmake-3.17/Modules/WriteCompilerDetectionHeader.cmake b/share/cmake-3.18/Modules/WriteCompilerDetectionHeader.cmake
index 23d81b5..23d81b5 100644
--- a/share/cmake-3.17/Modules/WriteCompilerDetectionHeader.cmake
+++ b/share/cmake-3.18/Modules/WriteCompilerDetectionHeader.cmake
diff --git a/share/cmake-3.17/Modules/ecos_clean.cmake b/share/cmake-3.18/Modules/ecos_clean.cmake
index 480b1ce..480b1ce 100644
--- a/share/cmake-3.17/Modules/ecos_clean.cmake
+++ b/share/cmake-3.18/Modules/ecos_clean.cmake
diff --git a/share/cmake-3.17/Modules/exportheader.cmake.in b/share/cmake-3.18/Modules/exportheader.cmake.in
index c518b3d..c518b3d 100644
--- a/share/cmake-3.17/Modules/exportheader.cmake.in
+++ b/share/cmake-3.18/Modules/exportheader.cmake.in
diff --git a/share/cmake-3.17/Modules/javaTargets.cmake.in b/share/cmake-3.18/Modules/javaTargets.cmake.in
index c5f9c78..c5f9c78 100644
--- a/share/cmake-3.17/Modules/javaTargets.cmake.in
+++ b/share/cmake-3.18/Modules/javaTargets.cmake.in
diff --git a/share/cmake-3.17/Modules/kde3init_dummy.cpp.in b/share/cmake-3.18/Modules/kde3init_dummy.cpp.in
index 7135c73..7135c73 100644
--- a/share/cmake-3.17/Modules/kde3init_dummy.cpp.in
+++ b/share/cmake-3.18/Modules/kde3init_dummy.cpp.in
diff --git a/share/cmake-3.17/Modules/kde3uic.cmake b/share/cmake-3.18/Modules/kde3uic.cmake
index b1f73d5..b1f73d5 100644
--- a/share/cmake-3.17/Modules/kde3uic.cmake
+++ b/share/cmake-3.18/Modules/kde3uic.cmake
diff --git a/share/cmake-3.18/Modules/readme.txt b/share/cmake-3.18/Modules/readme.txt
new file mode 100644
index 0000000..da78730
--- /dev/null
+++ b/share/cmake-3.18/Modules/readme.txt
@@ -0,0 +1,4 @@
+See the "Find Modules" section of the cmake-developer(7) manual page.
+
+For more information about how to contribute modules to CMake, see this page:
+https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/dev/Module-Maintainers
diff --git a/share/cmake-3.17/Templates/AppleInfo.plist b/share/cmake-3.18/Templates/AppleInfo.plist
index 3445e53..3445e53 100644
--- a/share/cmake-3.17/Templates/AppleInfo.plist
+++ b/share/cmake-3.18/Templates/AppleInfo.plist
diff --git a/share/cmake-3.17/Templates/CMakeVSMacros1.vsmacros b/share/cmake-3.18/Templates/CMakeVSMacros1.vsmacros
index 60487d9..60487d9 100644
--- a/share/cmake-3.17/Templates/CMakeVSMacros1.vsmacros
+++ b/share/cmake-3.18/Templates/CMakeVSMacros1.vsmacros
Binary files differ
diff --git a/share/cmake-3.17/Templates/CMakeVSMacros2.vsmacros b/share/cmake-3.18/Templates/CMakeVSMacros2.vsmacros
index 5ba2799..5ba2799 100644
--- a/share/cmake-3.17/Templates/CMakeVSMacros2.vsmacros
+++ b/share/cmake-3.18/Templates/CMakeVSMacros2.vsmacros
Binary files differ
diff --git a/share/cmake-3.17/Templates/CPack.GenericDescription.txt b/share/cmake-3.18/Templates/CPack.GenericDescription.txt
index 712ee14..712ee14 100644
--- a/share/cmake-3.17/Templates/CPack.GenericDescription.txt
+++ b/share/cmake-3.18/Templates/CPack.GenericDescription.txt
diff --git a/share/cmake-3.17/Templates/CPack.GenericLicense.txt b/share/cmake-3.18/Templates/CPack.GenericLicense.txt
index 09c6218..09c6218 100644
--- a/share/cmake-3.17/Templates/CPack.GenericLicense.txt
+++ b/share/cmake-3.18/Templates/CPack.GenericLicense.txt
diff --git a/share/cmake-3.17/Templates/CPack.GenericWelcome.txt b/share/cmake-3.18/Templates/CPack.GenericWelcome.txt
index 5330087..5330087 100644
--- a/share/cmake-3.17/Templates/CPack.GenericWelcome.txt
+++ b/share/cmake-3.18/Templates/CPack.GenericWelcome.txt
diff --git a/share/cmake-3.17/Templates/CPackConfig.cmake.in b/share/cmake-3.18/Templates/CPackConfig.cmake.in
index c00ea2a..c00ea2a 100644
--- a/share/cmake-3.17/Templates/CPackConfig.cmake.in
+++ b/share/cmake-3.18/Templates/CPackConfig.cmake.in
diff --git a/share/cmake-3.17/Templates/CTestScript.cmake.in b/share/cmake-3.18/Templates/CTestScript.cmake.in
index 5fb3529..5fb3529 100644
--- a/share/cmake-3.17/Templates/CTestScript.cmake.in
+++ b/share/cmake-3.18/Templates/CTestScript.cmake.in
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CL.json
index 06158be..06158be 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CL.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CSharp.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Cuda.json
index b3230ac..b3230ac 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Cuda.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Cuda.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CudaHost.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CudaHost.json
index 2593ff1..2593ff1 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_CudaHost.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_CudaHost.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_LIB.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_LIB.json
index 58a238c..58a238c 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_LIB.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_LIB.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Link.json
index ac5b8b1..ac5b8b1 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_Link.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_MASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_MASM.json
index 4634306..4634306 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_MASM.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_MASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_NASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_NASM.json
index 434cd63..434cd63 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_NASM.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_NASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_RC.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_RC.json
index b8c0127..b8c0127 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v10_RC.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v10_RC.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CL.json
index b47ab2e..b47ab2e 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CL.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_CSharp.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_LIB.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_LIB.json
index 58a238c..58a238c 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_LIB.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_LIB.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_Link.json
index 5d5c13f..5d5c13f 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_Link.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_MASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_MASM.json
index 4634306..4634306 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_MASM.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_MASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_RC.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_RC.json
index b8c0127..b8c0127 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v11_RC.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v11_RC.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CL.json
index 771a555..771a555 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CL.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_CSharp.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_LIB.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_LIB.json
index 58a238c..58a238c 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_LIB.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_LIB.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_Link.json
index 5d5c13f..5d5c13f 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_Link.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_MASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_MASM.json
index 4634306..4634306 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_MASM.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_MASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_RC.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_RC.json
index b8c0127..b8c0127 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v12_RC.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v12_RC.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CL.json
index 3dc9f35..3dc9f35 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CL.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_CSharp.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_Link.json
index 3fb072c..3fb072c 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v140_Link.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v140_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CL.json
index 01fafe4..01fafe4 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CL.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_CSharp.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_Link.json
index 66ee76f..66ee76f 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v141_Link.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v141_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CL.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CL.json
index 95b9d14..95b9d14 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CL.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CL.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CSharp.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CSharp.json
index 5989aea..5989aea 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_CSharp.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_CSharp.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_Link.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_Link.json
index 66ee76f..66ee76f 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v142_Link.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v142_Link.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_LIB.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_LIB.json
index 5990ed1..5990ed1 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_LIB.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_LIB.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_MASM.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_MASM.json
index 4634306..4634306 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_MASM.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_MASM.json
diff --git a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_RC.json b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_RC.json
index b8c0127..b8c0127 100644
--- a/share/cmake-3.17/Templates/MSBuild/FlagTables/v14_RC.json
+++ b/share/cmake-3.18/Templates/MSBuild/FlagTables/v14_RC.json
diff --git a/share/cmake-3.17/Templates/MSBuild/nasm.props.in b/share/cmake-3.18/Templates/MSBuild/nasm.props.in
index 3443108..3443108 100644
--- a/share/cmake-3.17/Templates/MSBuild/nasm.props.in
+++ b/share/cmake-3.18/Templates/MSBuild/nasm.props.in
diff --git a/share/cmake-3.17/Templates/MSBuild/nasm.targets b/share/cmake-3.18/Templates/MSBuild/nasm.targets
index eeeb613..eeeb613 100644
--- a/share/cmake-3.17/Templates/MSBuild/nasm.targets
+++ b/share/cmake-3.18/Templates/MSBuild/nasm.targets
diff --git a/share/cmake-3.17/Templates/MSBuild/nasm.xml b/share/cmake-3.18/Templates/MSBuild/nasm.xml
index a5dcdd5..a5dcdd5 100644
--- a/share/cmake-3.17/Templates/MSBuild/nasm.xml
+++ b/share/cmake-3.18/Templates/MSBuild/nasm.xml
diff --git a/share/cmake-3.18/Templates/TestDriver.cxx.in b/share/cmake-3.18/Templates/TestDriver.cxx.in
new file mode 100644
index 0000000..053f1ee
--- /dev/null
+++ b/share/cmake-3.18/Templates/TestDriver.cxx.in
@@ -0,0 +1,146 @@
+#include <ctype.h> /* NOLINT */
+#include <stdio.h> /* NOLINT */
+#include <stdlib.h> /* NOLINT */
+#include <string.h> /* NOLINT */
+
+#if defined(_MSC_VER)
+#pragma warning(disable : 4996) /* deprecation */
+#endif
+
+@CMAKE_TESTDRIVER_EXTRA_INCLUDES@
+
+/* Forward declare test functions. */
+@CMAKE_FORWARD_DECLARE_TESTS@
+
+#ifdef __cplusplus
+# define CM_CAST(TYPE, EXPR) static_cast<TYPE>(EXPR)
+# if __cplusplus >= 201103L
+# define CM_NULL nullptr
+# else
+# define CM_NULL NULL
+# endif
+#else
+# define CM_CAST(TYPE, EXPR) (TYPE)(EXPR)
+# define CM_NULL NULL
+#endif
+
+/* Create map. */
+
+typedef int (*MainFuncPointer)(int, char* []); /* NOLINT */
+typedef struct /* NOLINT */
+{
+ const char* name;
+ MainFuncPointer func;
+} functionMapEntry;
+
+static functionMapEntry cmakeGeneratedFunctionMapEntries[] = {
+ @CMAKE_FUNCTION_TABLE_ENTIRES@
+ { CM_NULL, CM_NULL } /* NOLINT */
+};
+
+static const int NumTests = CM_CAST(int,
+ sizeof(cmakeGeneratedFunctionMapEntries) / sizeof(functionMapEntry)) - 1;
+
+/* Allocate and create a lowercased copy of string
+ (note that it has to be free'd manually) */
+static char* lowercase(const char* string)
+{
+ char *new_string;
+ char *p;
+ size_t stringSize;
+
+ stringSize = CM_CAST(size_t, strlen(string) + 1);
+ new_string = CM_CAST(char*, malloc(sizeof(char) * stringSize));
+
+ if (new_string == CM_NULL) { /* NOLINT */
+ return CM_NULL; /* NOLINT */
+ }
+ strcpy(new_string, string); /* NOLINT */
+ for (p = new_string; *p != 0; ++p) {
+ *p = CM_CAST(char, tolower(*p));
+ }
+ return new_string;
+}
+
+int main(int ac, char* av[])
+{
+ int i;
+ int testNum = 0;
+ int partial_match;
+ char *arg;
+ int testToRun = -1;
+
+ @CMAKE_TESTDRIVER_ARGVC_FUNCTION@
+
+ /* If no test name was given */
+ /* process command line with user function. */
+ if (ac < 2) {
+ /* Ask for a test. */
+ printf("Available tests:\n");
+ for (i = 0; i < NumTests; ++i) {
+ printf("%3d. %s\n", i, cmakeGeneratedFunctionMapEntries[i].name);
+ }
+ printf("To run a test, enter the test number: ");
+ fflush(stdout);
+ if (scanf("%d", &testNum) != 1) {
+ printf("Couldn't parse that input as a number\n");
+ return -1;
+ }
+ if (testNum >= NumTests) {
+ printf("%3d is an invalid test number.\n", testNum);
+ return -1;
+ }
+ testToRun = testNum;
+ ac--;
+ av++;
+ }
+ partial_match = 0;
+ arg = CM_NULL; /* NOLINT */
+ /* If partial match is requested. */
+ if (testToRun == -1 && ac > 1) {
+ partial_match = (strcmp(av[1], "-R") == 0) ? 1 : 0;
+ }
+ if (partial_match != 0 && ac < 3) {
+ printf("-R needs an additional parameter.\n");
+ return -1;
+ }
+ if (testToRun == -1) {
+ arg = lowercase(av[1 + partial_match]);
+ }
+ for (i = 0; i < NumTests && testToRun == -1; ++i) {
+ char *test_name = lowercase(cmakeGeneratedFunctionMapEntries[i].name);
+ if (partial_match != 0 && strstr(test_name, arg) != CM_NULL) { /* NOLINT */
+ testToRun = i;
+ ac -= 2;
+ av += 2;
+ } else if (partial_match == 0 && strcmp(test_name, arg) == 0) {
+ testToRun = i;
+ ac--;
+ av++;
+ }
+ free(test_name);
+ }
+ free(arg);
+ if (testToRun != -1) {
+ int result;
+@CMAKE_TESTDRIVER_BEFORE_TESTMAIN@
+ if (testToRun < 0 || testToRun >= NumTests) {
+ printf("testToRun was modified by TestDriver code to an invalid value: "
+ "%3d.\n",
+ testNum);
+ return -1;
+ }
+ result = (*cmakeGeneratedFunctionMapEntries[testToRun].func)(ac, av);
+@CMAKE_TESTDRIVER_AFTER_TESTMAIN@
+ return result;
+ }
+
+ /* Nothing was run, display the test names. */
+ printf("Available tests:\n");
+ for (i = 0; i < NumTests; ++i) {
+ printf("%3d. %s\n", i, cmakeGeneratedFunctionMapEntries[i].name);
+ }
+ printf("Failed: %s is an invalid test name.\n", av[1]);
+
+ return -1;
+}
diff --git a/share/cmake-3.17/Templates/Windows/ApplicationIcon.png b/share/cmake-3.18/Templates/Windows/ApplicationIcon.png
index c715e1b..c715e1b 100644
--- a/share/cmake-3.17/Templates/Windows/ApplicationIcon.png
+++ b/share/cmake-3.18/Templates/Windows/ApplicationIcon.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/Logo.png b/share/cmake-3.18/Templates/Windows/Logo.png
index 65f91ac..65f91ac 100644
--- a/share/cmake-3.17/Templates/Windows/Logo.png
+++ b/share/cmake-3.18/Templates/Windows/Logo.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/SmallLogo.png b/share/cmake-3.18/Templates/Windows/SmallLogo.png
index 460c022..460c022 100644
--- a/share/cmake-3.17/Templates/Windows/SmallLogo.png
+++ b/share/cmake-3.18/Templates/Windows/SmallLogo.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/SmallLogo44x44.png b/share/cmake-3.18/Templates/Windows/SmallLogo44x44.png
index c237458..c237458 100644
--- a/share/cmake-3.17/Templates/Windows/SmallLogo44x44.png
+++ b/share/cmake-3.18/Templates/Windows/SmallLogo44x44.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/SplashScreen.png b/share/cmake-3.18/Templates/Windows/SplashScreen.png
index 8342565..8342565 100644
--- a/share/cmake-3.17/Templates/Windows/SplashScreen.png
+++ b/share/cmake-3.18/Templates/Windows/SplashScreen.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/StoreLogo.png b/share/cmake-3.18/Templates/Windows/StoreLogo.png
index 508c8a8..508c8a8 100644
--- a/share/cmake-3.17/Templates/Windows/StoreLogo.png
+++ b/share/cmake-3.18/Templates/Windows/StoreLogo.png
Binary files differ
diff --git a/share/cmake-3.17/Templates/Windows/Windows_TemporaryKey.pfx b/share/cmake-3.18/Templates/Windows/Windows_TemporaryKey.pfx
index 1cad999..1cad999 100644
--- a/share/cmake-3.17/Templates/Windows/Windows_TemporaryKey.pfx
+++ b/share/cmake-3.18/Templates/Windows/Windows_TemporaryKey.pfx
Binary files differ
diff --git a/share/cmake-3.17/include/cmCPluginAPI.h b/share/cmake-3.18/include/cmCPluginAPI.h
index 19626f0..19626f0 100644
--- a/share/cmake-3.17/include/cmCPluginAPI.h
+++ b/share/cmake-3.18/include/cmCPluginAPI.h
diff --git a/share/cmake-3.17/editors/emacs/cmake-mode.el b/share/emacs/site-lisp/cmake-mode.el
index caaf0d5..caaf0d5 100644
--- a/share/cmake-3.17/editors/emacs/cmake-mode.el
+++ b/share/emacs/site-lisp/cmake-mode.el
diff --git a/share/cmake-3.17/editors/vim/indent/cmake.vim b/share/vim/vimfiles/indent/cmake.vim
index 33e583d..33e583d 100644
--- a/share/cmake-3.17/editors/vim/indent/cmake.vim
+++ b/share/vim/vimfiles/indent/cmake.vim
diff --git a/share/vim/vimfiles/syntax/cmake.vim b/share/vim/vimfiles/syntax/cmake.vim
new file mode 100644
index 0000000..2d63eb0
--- /dev/null
+++ b/share/vim/vimfiles/syntax/cmake.vim
@@ -0,0 +1,3376 @@
+" 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
+ \ Fortran_PREPROCESS
+ \ 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_PREPROCESS
+ \ 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: