summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Help/command/get_cmake_property.rst6
-rw-r--r--Help/command/get_source_file_property.rst14
-rw-r--r--Help/command/get_target_property.rst16
-rw-r--r--Help/command/get_test_property.rst14
-rw-r--r--Help/command/set_directory_properties.rst5
-rw-r--r--Help/command/set_target_properties.rst6
-rw-r--r--Help/command/set_tests_properties.rst5
-rw-r--r--Help/command/string.rst2
-rw-r--r--Help/guide/tutorial/Step3/MathFunctions/CMakeLists.txt4
-rw-r--r--Help/manual/cmake-language.7.rst2
-rw-r--r--Help/manual/cmake-toolchains.7.rst10
-rw-r--r--Help/manual/ctest.1.rst48
-rw-r--r--Help/policy/CMP0158.rst2
-rw-r--r--Help/release/3.28.rst6
-rw-r--r--Modules/CMakeParseImplicitLinkInfo.cmake38
-rw-r--r--Modules/CheckLanguage.cmake28
-rw-r--r--Modules/ExternalProject.cmake14
-rw-r--r--Modules/FeatureSummary.cmake2
-rw-r--r--Modules/FindPkgConfig.cmake6
-rw-r--r--Modules/Internal/CMakeDetermineLinkerId.cmake17
-rw-r--r--Source/CMakeVersion.cmake2
-rw-r--r--Source/CursesDialog/cmCursesMainForm.cxx5
-rw-r--r--Source/QtDialog/CMakeSetupDialog.cxx2
-rw-r--r--Source/QtDialog/FirstConfigure.cxx4
-rw-r--r--Source/QtDialog/FirstConfigure.h1
-rw-r--r--Source/QtDialog/QCMake.cxx96
-rw-r--r--Source/cmComputeLinkInformation.cxx4
-rw-r--r--Source/cmComputeLinkInformation.h2
-rw-r--r--Source/cmDyndepCollation.cxx3
-rw-r--r--Source/cmFindLibraryCommand.cxx8
-rw-r--r--Source/cmNinjaTargetGenerator.cxx120
-rw-r--r--Source/cmNinjaTargetGenerator.h8
-rw-r--r--Source/cmPolicies.h2
-rw-r--r--Tests/CMakeOnly/CMakeLists.txt7
-rw-r--r--Tests/CMakeOnly/CheckLanguageHIPPlatform/CMakeLists.txt17
-rw-r--r--Tests/CMakeOnly/CheckLanguageHIPPlatform2/CMakeLists.txt14
-rw-r--r--Tests/RunCMake/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/ParseImplicitData/CMakeLists.txt8
-rw-r--r--Tests/RunCMake/ParseImplicitData/aix-C-IBMClang-17.1.1.2.input43
-rw-r--r--Tests/RunCMake/ParseImplicitData/aix-CXX-IBMClang-17.1.1.2.input44
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-C-GNU-12.2.0.input74
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-C-Intel-2021.10.0.20230609.input41
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-C-IntelLLVM-2023.2.0.input59
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-12.2.0.input78
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-2021.10.0.20230609.input44
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-CXX-IntelLLVM-2023.2.0.input62
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-12.2.0.input93
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-Fortran-Intel-2021.10.0.20230609.input63
-rw-r--r--Tests/RunCMake/ParseImplicitData/linux-Fortran-IntelLLVM-2023.2.0.input58
-rw-r--r--Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-C-GNU-5.5.0.input66
-rw-r--r--Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-CXX-GNU-5.5.0.input69
-rw-r--r--Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-Fortran-GNU-5.5.0.input70
-rw-r--r--Tests/RunCMake/ParseImplicitData/sunos5.11_i386-C-GNU-5.5.0.input66
-rw-r--r--Tests/RunCMake/ParseImplicitData/sunos5.11_i386-CXX-GNU-5.5.0.input69
-rw-r--r--Tests/RunCMake/ParseImplicitData/sunos5.11_i386-Fortran-GNU-5.5.0.input70
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Intel-2021.9.0.20230302.input19
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-C-IntelLLVM-2023.1.0.input19
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.36.32543.0.input19
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.38.33130.0-VS.input48
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Intel-2021.9.0.20230302.input19
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-IntelLLVM-2023.1.0.input19
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.36.32543.0.input19
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.input48
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-Intel-2021.9.0.20230302.input21
-rw-r--r--Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-IntelLLVM-2023.1.0.input21
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake38
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/aix-C-IBMClang-17.1.1.2.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/aix-CXX-IBMClang-17.1.1.2.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-GNU-12.2.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-Intel-2021.10.0.20230609.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-IntelLLVM-2023.2.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-GNU-12.2.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-Intel-2021.10.0.20230609.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-IntelLLVM-2023.2.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-GNU-12.2.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-Intel-2021.10.0.20230609.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-IntelLLVM-2023.2.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-C-GNU-5.5.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-CXX-GNU-5.5.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-Fortran-GNU-5.5.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-C-GNU-5.5.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-CXX-GNU-5.5.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-Fortran-GNU-5.5.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/DetermineLinkerId.cmake37
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/Inspect.cmake9
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake111
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/RunCMakeTest.cmake33
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.cmake1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.txt2
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.bfd.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.bfd.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.gold.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.gold.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.lld.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.lld.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.mold.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.mold.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.bfd.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.bfd.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.gold.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.gold.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.lld.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.lld.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.mold.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.mold.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/msvc14.36-link.bash5
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/msvc14.36-link.txt3
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.bash2
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.cmake1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.txt2
-rwxr-xr-xTests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.bash9
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.cmake1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.txt3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-IBMClang-17.1.1.2.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-IBMClang-17.1.1.2.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-9.0-hlist-ad.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-GNU-7.3.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Intel-18.0.2.20180210.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-9.0-hlist-ad.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-GNU-7.3.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Intel-18.0.2.20180210.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-8.7.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-9.0-hlist-ad.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-GNU-7.3.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Intel-18.0.2.20180210.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-C-AppleClang-8.0.0.8000042.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-CXX-AppleClang-8.0.0.8000042.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-C-AppleClang-8.0.0.8000042.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-C-Clang-3.3.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-CXX-Clang-3.3.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-Fortran-GNU-4.6.4.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-empty.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-relative.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-empty.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-relative.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-10.2.1-static-libgcc.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-12.2.0.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-7.3.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-18.0.0.20170811.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-2021.10.0.20230609.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-IntelLLVM-2023.2.0.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-NVHPC-21.1.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-PGI-18.10.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-CLANG.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-XLClang-v.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-9.2.148-GCC.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-10.2.1-static-libstdc++.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-12.2.0.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-7.3.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-18.0.0.20170811.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-2021.10.0.20230609.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-IntelLLVM-2023.2.0.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-NVHPC-21.1.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-PGI-18.10.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-10.2.1-static-libgfortran.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-12.2.0.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-7.3.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-Intel-2021.10.0.20230609.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-IntelLLVM-2023.2.0.output4
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-PGI-18.10.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-C-Clang-13.0.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-CXX-Clang-13.0.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-PGI-18.10.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-PGI-18.10.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-Fortran-PGI-18.10.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/linux_pgf77-Fortran-PGI-18.10.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-C-GNU-4.9.3.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-CXX-GNU-4.9.3.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-C-GNU-4.8.5.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-CXX-GNU-4.8.5.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-C-GNU-4.8.5.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-CXX-GNU-4.8.5.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-C-Clang-5.0.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-CXX-Clang-5.0.1.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-C-SunPro-5.13.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-CXX-SunPro-5.13.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-Fortran-SunPro-8.8.0.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-C-GNU-5.5.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-CXX-GNU-5.5.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-Fortran-GNU-5.5.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-C-GNU-5.5.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-CXX-GNU-5.5.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-Fortran-GNU-5.5.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-C-Clang-17.0.1-MSVC.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-CXX-Clang-17.0.1-MSVC.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Clang-17.0.1-MSVC.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Intel-2021.9.0.20230302.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-IntelLLVM-2023.1.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-MSVC-19.36.32543.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-MSVC-19.38.33130.0-VS.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Clang-17.0.1-MSVC.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Intel-2021.9.0.20230302.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-IntelLLVM-2023.1.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-MSVC-19.36.32543.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-Intel-2021.9.0.20230302.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-IntelLLVM-2023.1.0.output3
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.output1
-rw-r--r--Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.output1
-rw-r--r--Tests/RunCMake/Swift/CompileCommands-check.cmake30
-rw-r--r--Tests/RunCMake/Swift/CompileCommands.cmake9
-rw-r--r--Tests/RunCMake/Swift/NoWorkToDo-norelink-stdout.txt2
-rw-r--r--Tests/RunCMake/Swift/NoWorkToDo.cmake7
-rw-r--r--Tests/RunCMake/Swift/RunCMakeTest.cmake8
-rw-r--r--Tests/RunCMake/VS10Project/UnityBuildPre2017-check.cmake2
223 files changed, 2163 insertions, 249 deletions
diff --git a/Help/command/get_cmake_property.rst b/Help/command/get_cmake_property.rst
index b1d18a0..9f78a86 100644
--- a/Help/command/get_cmake_property.rst
+++ b/Help/command/get_cmake_property.rst
@@ -5,11 +5,11 @@ Get a global property of the CMake instance.
.. code-block:: cmake
- get_cmake_property(<var> <property>)
+ get_cmake_property(<variable> <property>)
Gets a global property from the CMake instance. The value of
-the ``<property>`` is stored in the variable ``<var>``.
-If the property is not found, ``<var>`` will be set to ``NOTFOUND``.
+the ``<property>`` is stored in the specified ``<variable>``.
+If the property is not found, ``<variable>`` will be set to ``NOTFOUND``.
See the :manual:`cmake-properties(7)` manual for available properties.
In addition to global properties, this command (for historical reasons)
diff --git a/Help/command/get_source_file_property.rst b/Help/command/get_source_file_property.rst
index e83e9c2..a7e5191 100644
--- a/Help/command/get_source_file_property.rst
+++ b/Help/command/get_source_file_property.rst
@@ -9,14 +9,12 @@ Get a property for a source 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.
+Gets a property from a source file. The value of the property is stored in
+the specified ``<variable>``. If the ``<file>`` is not a source file, or the
+source property is not found, ``<variable>`` will be set to ``NOTFOUND``.
+If the source property was defined to be an ``INHERITED`` property (see
+:command:`define_property`), the search will include the relevant parent
+scopes, as described for the :command:`define_property` command.
By default, the source file's property will be read from the current source
directory's scope.
diff --git a/Help/command/get_target_property.rst b/Help/command/get_target_property.rst
index 8c6dcb1..1554a85 100644
--- a/Help/command/get_target_property.rst
+++ b/Help/command/get_target_property.rst
@@ -5,16 +5,14 @@ Get a property from a target.
.. code-block:: cmake
- get_target_property(<VAR> target property)
+ get_target_property(<variable> <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.
+Get a property from a target. The value of the property is stored in the
+specified ``<variable>``. If the target property is not found, ``<variable>``
+will be set to ``<variable>-NOTFOUND``. If the target property was defined to
+be an ``INHERITED`` property (see :command:`define_property`), the search will
+include the relevant parent scopes, as described for the
+:command:`define_property` command.
Use :command:`set_target_properties` to set target property values.
Properties are usually used to control how a target is built, but some
diff --git a/Help/command/get_test_property.rst b/Help/command/get_test_property.rst
index 1fcf24e..3f1a64c 100644
--- a/Help/command/get_test_property.rst
+++ b/Help/command/get_test_property.rst
@@ -5,16 +5,14 @@ Get a property of the test.
.. code-block:: cmake
- get_test_property(test property [DIRECTORY <dir>] VAR)
+ get_test_property(<test> <property> [DIRECTORY <dir>] <variable>)
Get a property from the test. The value of the property is stored in
-the variable ``VAR``. If the test 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.
+the specified ``<variable>``. If the ``<test>`` is not defined, or the
+test property is not found, ``<variable>`` will be set to ``NOTFOUND``.
+If the test property was defined to be an ``INHERITED`` property (see
+:command:`define_property`), the search will include the relevant parent
+scopes, as described for the :command:`define_property` command.
For a list of standard properties you can type
:option:`cmake --help-property-list`.
diff --git a/Help/command/set_directory_properties.rst b/Help/command/set_directory_properties.rst
index 93ad39b..6d94808 100644
--- a/Help/command/set_directory_properties.rst
+++ b/Help/command/set_directory_properties.rst
@@ -5,9 +5,10 @@ Set properties of the current directory and subdirectories.
.. code-block:: cmake
- set_directory_properties(PROPERTIES prop1 value1 [prop2 value2] ...)
+ set_directory_properties(PROPERTIES <prop1> <value1> [<prop2> <value2>] ...)
-Sets properties of the current directory and its subdirectories in key-value pairs.
+Sets properties of the current directory and its subdirectories in key-value
+pairs.
See also the :command:`set_property(DIRECTORY)` command.
diff --git a/Help/command/set_target_properties.rst b/Help/command/set_target_properties.rst
index 874788b..5357575 100644
--- a/Help/command/set_target_properties.rst
+++ b/Help/command/set_target_properties.rst
@@ -5,9 +5,9 @@ Targets can have properties that affect how they are built.
.. code-block:: cmake
- set_target_properties(target1 target2 ...
- PROPERTIES prop1 value1
- prop2 value2 ...)
+ set_target_properties(<targets> ...
+ PROPERTIES <prop1> <value1>
+ [<prop2> <value2>] ...)
Sets properties on targets. The syntax for the command is to list all
the targets you want to change, and then provide the values you want to
diff --git a/Help/command/set_tests_properties.rst b/Help/command/set_tests_properties.rst
index da750e3..a21f746 100644
--- a/Help/command/set_tests_properties.rst
+++ b/Help/command/set_tests_properties.rst
@@ -5,7 +5,10 @@ Set a property of the tests.
.. code-block:: cmake
- set_tests_properties(test1 [test2...] PROPERTIES prop1 value1 prop2 value2)
+ set_tests_properties(<tests>...
+ [DIRECTORY <dir>]
+ PROPERTIES <prop1> <value1>
+ [<prop2> <value2>]...)
Sets a property for the tests. If the test is not found, CMake
will report an error.
diff --git a/Help/command/string.rst b/Help/command/string.rst
index 0e69b27..2f01653 100644
--- a/Help/command/string.rst
+++ b/Help/command/string.rst
@@ -22,7 +22,7 @@ Synopsis
string(`JOIN`_ <glue> <out-var> [<input>...])
string(`TOLOWER`_ <string> <out-var>)
string(`TOUPPER`_ <string> <out-var>)
- string(`LENGTH`_ <string> <out-var>)
+ string(`LENGTH <LENGTH_>`_ <string> <out-var>)
string(`SUBSTRING`_ <string> <begin> <length> <out-var>)
string(`STRIP`_ <string> <out-var>)
string(`GENEX_STRIP`_ <string> <out-var>)
diff --git a/Help/guide/tutorial/Step3/MathFunctions/CMakeLists.txt b/Help/guide/tutorial/Step3/MathFunctions/CMakeLists.txt
index ffb2f35..74c553f 100644
--- a/Help/guide/tutorial/Step3/MathFunctions/CMakeLists.txt
+++ b/Help/guide/tutorial/Step3/MathFunctions/CMakeLists.txt
@@ -14,9 +14,9 @@ if (USE_MYMATH)
mysqrt.cxx
)
- # TODO 7: Link SqrtLibrary to tutorial_compiler_flags
+ # TODO 6: Link SqrtLibrary to tutorial_compiler_flags
target_link_libraries(MathFunctions PRIVATE SqrtLibrary)
endif()
-# TODO 6: Link MathFunctions to tutorial_compiler_flags
+# TODO 7: Link MathFunctions to tutorial_compiler_flags
diff --git a/Help/manual/cmake-language.7.rst b/Help/manual/cmake-language.7.rst
index d0774cb..dba953d 100644
--- a/Help/manual/cmake-language.7.rst
+++ b/Help/manual/cmake-language.7.rst
@@ -224,7 +224,7 @@ For example::
They interpret the opening bracket as the start of an
`Unquoted Argument`_.
-.. _`Lua`: http://www.lua.org/
+.. _`Lua`: https://www.lua.org/
.. _`Quoted Argument`:
diff --git a/Help/manual/cmake-toolchains.7.rst b/Help/manual/cmake-toolchains.7.rst
index e32bd29..1ebdf85 100644
--- a/Help/manual/cmake-toolchains.7.rst
+++ b/Help/manual/cmake-toolchains.7.rst
@@ -583,7 +583,7 @@ generator is recommended. The :generator:`Unix Makefiles` or
:generator:`Ninja` generators can also be used, but they require the
project to handle more areas like target CPU selection and code signing.
-Any of the three systems can be targeted by setting the
+Any of the Apple device platforms can be targeted by setting the
:variable:`CMAKE_SYSTEM_NAME` variable to a value from the table below.
By default, the latest Device SDK is chosen. As for all Apple platforms,
a different SDK (e.g. a simulator) can be selected by setting the
@@ -611,9 +611,11 @@ Variable :variable:`CMAKE_OSX_ARCHITECTURES` can be used to set architectures
for both device and simulator. Variable :variable:`CMAKE_OSX_DEPLOYMENT_TARGET`
can be used to set an iOS/tvOS/visionOS/watchOS deployment target.
-Next configuration will install fat 5 architectures iOS library
-and add the ``-miphoneos-version-min=9.3``/``-mios-simulator-version-min=9.3``
-flags to the compiler:
+The next example installs five architectures in a universal binary for an iOS
+library. It adds the relevant ``-miphoneos-version-min=9.3`` or
+``-mios-simulator-version-min=9.3`` compiler flag where appropriate.
+Note that the :variable:`CMAKE_IOS_INSTALL_COMBINED` variable used in the
+example is now deprecated, so this approach is no longer recommended.
.. code-block:: console
diff --git a/Help/manual/ctest.1.rst b/Help/manual/ctest.1.rst
index b519ccf..0917191 100644
--- a/Help/manual/ctest.1.rst
+++ b/Help/manual/ctest.1.rst
@@ -1594,17 +1594,20 @@ 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:
+has. It does not have any way of communicating with a GPU to retrieve this
+information or perform any memory management, although the project can define
+a test that provides details about the test machine (see
+:ref:`ctest-resource-dynamically-generated-spec-file`).
+
+CTest 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 at least two inputs:
* The :ref:`resource specification file <ctest-resource-specification-file>`,
described below, which describes the resources available on the system.
@@ -1645,15 +1648,20 @@ properties to indicate a skipped test.
Resource Specification File
---------------------------
-The resource specification file is a JSON file which is passed to CTest, either
-on the command line as :option:`ctest --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 :option:`--resource-spec-file <ctest --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 is a JSON file which is passed to CTest in one
+of a number of ways. It can be specified on the command line with the
+:option:`ctest --resource-spec-file` option, it can be given using the
+``RESOURCE_SPEC_FILE`` argument of :command:`ctest_test`, or it can be
+generated dynamically as part of test execution (see
+:ref:`ctest-resource-dynamically-generated-spec-file`).
+
+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 :option:`--resource-spec-file <ctest --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:
diff --git a/Help/policy/CMP0158.rst b/Help/policy/CMP0158.rst
index 4289c6d..369b5ec 100644
--- a/Help/policy/CMP0158.rst
+++ b/Help/policy/CMP0158.rst
@@ -25,3 +25,5 @@ This policy was introduced in CMake version 3.29. 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/Help/release/3.28.rst b/Help/release/3.28.rst
index f002cd2..d28024f 100644
--- a/Help/release/3.28.rst
+++ b/Help/release/3.28.rst
@@ -116,12 +116,6 @@ Modules
Additionally, the :command:`ExternalProject_Add_Step` command
has been updated to support the new ``JOB_SERVER_AWARE`` option.
-* The :module:`ExternalProject` module now declares ``BYPRODUCTS`` for the
- downloaded file for generated ``download`` steps. Previously, if multiple
- external projects downloaded to the same file, hash verification could fail.
- Now, when using the :ref:`Ninja Generators`, this scenario is detected and
- Ninja will raise an error stating that multiple rules generate the same file.
-
* The :module:`FetchContent` module's :command:`FetchContent_Declare` command
gained an ``EXCLUDE_FROM_ALL`` option, which propagates through to the
:command:`add_subdirectory` call made by
diff --git a/Modules/CMakeParseImplicitLinkInfo.cmake b/Modules/CMakeParseImplicitLinkInfo.cmake
index f62de4c..896eac0 100644
--- a/Modules/CMakeParseImplicitLinkInfo.cmake
+++ b/Modules/CMakeParseImplicitLinkInfo.cmake
@@ -74,9 +74,10 @@ function(cmake_parse_implicit_link_info2 text log_var obj_regex)
# whole line and just the command (argv[0]).
set(linker_regex "^( *|.*[/\\])(${linker}|${startfile}|([^/\\]+-)?ld|collect2)[^/\\]*( |$)")
set(linker_exclude_regex "collect2 version |^[A-Za-z0-9_]+=|/ldfe ")
- set(linker_tool_regex "^[ \t]*(->|exec:|\")?[ \t]*(.*[/\\](${linker}))(\"|,| |$)")
- set(linker_tool_exclude_regex "cuda-fake-ld|-fuse-ld=|--with-ld=")
+ set(linker_tool_regex "^[ \t]*(->|\")?[ \t]*(([^\"]*[/\\])?(${linker}))(\"|,| |$)")
+ set(linker_tool_exclude_regex "cuda-fake-ld|-fuse-ld=")
set(linker_tool "NOTFOUND")
+ set(linker_tool_fallback "")
set(link_line_parsed 0)
string(APPEND log " link line regex: [${linker_regex}]\n")
if(EXTRA_PARSE_COMPUTE_LINKER)
@@ -85,15 +86,22 @@ function(cmake_parse_implicit_link_info2 text log_var obj_regex)
string(REGEX REPLACE "\r?\n" ";" output_lines "${text}")
foreach(line IN LISTS output_lines)
if(EXTRA_PARSE_COMPUTE_LINKER AND
- NOT linker_tool AND NOT "${line}" MATCHES "${linker_tool_exclude_regex}"
- AND "${line}" MATCHES "${linker_tool_regex}")
- set(linker_tool "${CMAKE_MATCH_2}")
- if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
- # pick-up last path
- string(REGEX REPLACE "^.*([A-Za-z]:[/\\][^:]+)$" "\\1" linker_tool "${linker_tool}")
- cmake_path(SET linker_tool "${linker_tool}")
+ NOT linker_tool AND NOT "${line}" MATCHES "${linker_tool_exclude_regex}")
+ if("${line}" MATCHES "exec: ([^()]*/(${linker}))") # IBM XL as nvcc host compiler
+ set(linker_tool "${CMAKE_MATCH_1}")
+ elseif("${line}" MATCHES "^export XL_LINKER=(.*/${linker})[ \t]*$") # IBM XL
+ set(linker_tool "${CMAKE_MATCH_1}")
+ elseif("${line}" MATCHES "--with-ld=") # GNU
+ # The GNU compiler reports how it was configured.
+ # This does not account for -fuse-ld= so use it only as a fallback.
+ if("${line}" MATCHES " --with-ld=([^ ]+/${linker})( |$)")
+ set(linker_tool_fallback "${CMAKE_MATCH_1}")
+ endif()
+ elseif("${line}" MATCHES "vs_link.*-- +([^\"]*[/\\](${linker})) ") # cmake -E vs_link_exe
+ set(linker_tool "${CMAKE_MATCH_1}")
+ elseif("${line}" MATCHES "${linker_tool_regex}")
+ set(linker_tool "${CMAKE_MATCH_2}")
endif()
- string(APPEND log " linker tool for '${EXTRA_PARSE_LANGUAGE}': ${linker_tool}\n")
endif()
if(NOT (EXTRA_PARSE_COMPUTE_IMPLICIT_LIBS OR EXTRA_PARSE_COMPUTE_IMPLICIT_DIRS
OR EXTRA_PARSE_COMPUTE_IMPLICIT_FWKS OR EXTRA_PARSE_COMPUTE_IMPLICIT_OBJECTS))
@@ -259,6 +267,16 @@ function(cmake_parse_implicit_link_info2 text log_var obj_regex)
endif()
endforeach()
+ if(NOT linker_tool AND linker_tool_fallback)
+ set(linker_tool "${linker_tool_fallback}")
+ endif()
+ if(linker_tool)
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
+ cmake_path(NORMAL_PATH linker_tool)
+ endif()
+ string(APPEND log " linker tool for '${EXTRA_PARSE_LANGUAGE}': ${linker_tool}\n")
+ endif()
+
# Look for library search paths reported by linker.
if(EXTRA_PARSE_COMPUTE_IMPLICIT_DIRS AND "${output_lines}" MATCHES ";Library search paths:((;\t[^;]+)+)")
string(REPLACE ";\t" ";" implicit_dirs_match "${CMAKE_MATCH_1}")
diff --git a/Modules/CheckLanguage.cmake b/Modules/CheckLanguage.cmake
index 94948b9..bad3590 100644
--- a/Modules/CheckLanguage.cmake
+++ b/Modules/CheckLanguage.cmake
@@ -41,6 +41,12 @@ or :command:`project` commands:
not be set without also setting
:variable:`CMAKE_<LANG>_COMPILER` to a NVCC compiler.
+ :variable:`CMAKE_<LANG>_PLATFORM <CMAKE_HIP_PLATFORM>`
+ This variable is set to the detected GPU platform when ``<lang>`` is ``HIP``.
+
+ If the variable is already set its value is always preserved. Only compatible values
+ will be considered for :variable:`CMAKE_<LANG>_COMPILER`.
+
For example:
.. code-block:: cmake
@@ -66,15 +72,23 @@ macro(check_language lang)
set(extra_compiler_variables)
if("${lang}" MATCHES "^(CUDA|HIP)$" AND NOT CMAKE_GENERATOR MATCHES "Visual Studio")
- set(extra_compiler_variables "set(CMAKE_CUDA_HOST_COMPILER \\\"\${CMAKE_CUDA_HOST_COMPILER}\\\")")
+ set(extra_compiler_variables "set(CMAKE_${lang}_HOST_COMPILER \\\"\${CMAKE_${lang}_HOST_COMPILER}\\\")")
+ endif()
+
+ if("${lang}" STREQUAL "HIP")
+ list(APPEND extra_compiler_variables "set(CMAKE_${lang}_PLATFORM \\\"\${CMAKE_${lang}_PLATFORM}\\\")")
endif()
+ list(TRANSFORM extra_compiler_variables PREPEND "\"")
+ list(TRANSFORM extra_compiler_variables APPEND "\\n\"")
+ list(JOIN extra_compiler_variables "\n " extra_compiler_variables)
+
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\"
+ ${extra_compiler_variables}
)"
)
@@ -95,6 +109,11 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
else()
set(_D_CMAKE_TOOLCHAIN_FILE "")
endif()
+ if(CMAKE_${lang}_PLATFORM)
+ set(_D_CMAKE_LANG_PLATFORM "-DCMAKE_${lang}_PLATFORM:STRING=${CMAKE_${lang}_PLATFORM}")
+ else()
+ set(_D_CMAKE_LANG_PLATFORM "")
+ endif()
execute_process(
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang}
COMMAND ${CMAKE_COMMAND} . -G ${CMAKE_GENERATOR}
@@ -103,6 +122,7 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
${_D_CMAKE_GENERATOR_INSTANCE}
${_D_CMAKE_MAKE_PROGRAM}
${_D_CMAKE_TOOLCHAIN_FILE}
+ ${_D_CMAKE_LANG_PLATFORM}
OUTPUT_VARIABLE _cl_output
ERROR_VARIABLE _cl_output
RESULT_VARIABLE _cl_result
@@ -130,6 +150,10 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\"
mark_as_advanced(CMAKE_${lang}_HOST_COMPILER)
endif()
+ if(CMAKE_${lang}_PLATFORM)
+ set(CMAKE_${lang}_PLATFORM "${CMAKE_${lang}_PLATFORM}" CACHE STRING "${lang} platform")
+ mark_as_advanced(CMAKE_${lang}_PLATFORM)
+ endif()
endif()
endmacro()
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index b2816a5..757b04e 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -2836,7 +2836,6 @@ function(_ep_add_download_command name)
set(comment)
set(work_dir)
set(extra_repo_info)
- set(byproduct_file)
if(cmd_set)
set(work_dir ${download_dir})
@@ -3117,16 +3116,14 @@ hash=${hash}
get_filename_component(fname "${fname}" NAME)
else()
# Fall back to a default file name. The actual file name does not
- # matter as long as it doesn't conflict with other projects 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 "${name}-archive.tar")
+ # 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})
- set(byproduct_file "${download_dir}/${fname}")
get_property(timeout TARGET ${name} PROPERTY _EP_TIMEOUT)
get_property(inactivity_timeout
TARGET ${name}
@@ -3303,7 +3300,6 @@ hash=${hash}
COMMAND ${__cmdQuoted}
WORKING_DIRECTORY \${work_dir}
DEPENDS \${depends}
- BYPRODUCTS \${byproduct_file}
DEPENDEES mkdir
${log}
${uses_terminal}
diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake
index 77c66d1..009ca38 100644
--- a/Modules/FeatureSummary.cmake
+++ b/Modules/FeatureSummary.cmake
@@ -17,7 +17,7 @@ packages and/or feature for a build tree such as::
PNG, A PNG image library., <http://www.libpng.org/pub/png/>
* Enables saving screenshots
-- The following OPTIONAL packages have not been found:
- Lua51, The Lua scripting language., <http://www.lua.org>
+ Lua51, The Lua scripting language., <https://www.lua.org>
* Enables macros in MyWordProcessor
Foo, Foo provides cool stuff.
diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake
index 27d25fb..1b6a72a 100644
--- a/Modules/FindPkgConfig.cmake
+++ b/Modules/FindPkgConfig.cmake
@@ -656,6 +656,9 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma
if (APPLE AND "-framework" IN_LIST ${_prefix}_LDFLAGS_OTHER)
_pkgconfig_extract_frameworks("${_prefix}")
+ # Using _pkgconfig_set in this scope so that a future policy can switch to normal variables
+ _pkgconfig_set("${_pkg_check_prefix}_LIBRARIES" "${${_pkg_check_prefix}_LIBRARIES}")
+ _pkgconfig_set("${_pkg_check_prefix}_LDFLAGS_OTHER" "${${_pkg_check_prefix}_LDFLAGS_OTHER}")
endif()
_pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )(-I|-isystem ?)" --cflags-only-I )
@@ -664,6 +667,9 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma
if (${_prefix}_CFLAGS_OTHER MATCHES "-isystem")
_pkgconfig_extract_isystem("${_prefix}")
+ # Using _pkgconfig_set in this scope so that a future policy can switch to normal variables
+ _pkgconfig_set("${_pkg_check_prefix}_CFLAGS_OTHER" "${${_pkg_check_prefix}_CFLAGS_OTHER}")
+ _pkgconfig_set("${_pkg_check_prefix}_INCLUDE_DIRS" "${${_pkg_check_prefix}_INCLUDE_DIRS}")
endif ()
_pkg_recalculate("${_prefix}" ${_no_cmake_path} ${_no_cmake_environment_path} ${_imp_target} ${_imp_target_global})
diff --git a/Modules/Internal/CMakeDetermineLinkerId.cmake b/Modules/Internal/CMakeDetermineLinkerId.cmake
index 05c83d2..45499a5 100644
--- a/Modules/Internal/CMakeDetermineLinkerId.cmake
+++ b/Modules/Internal/CMakeDetermineLinkerId.cmake
@@ -35,7 +35,14 @@ function(cmake_determine_linker_id lang linker)
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_STRIP_TRAILING_WHITESPACE)
- if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND linker_desc MATCHES "@\\(#\\)PROGRAM:ld.+PROJECT:[a-z0-9]+-([0-9.]+).+")
+ string(JOIN "\" \"" flags_string ${flags})
+ string(REGEX REPLACE "\n\n.*" "" linker_desc_head "${linker_desc}")
+ message(CONFIGURE_LOG
+ "Running the ${lang} compiler's linker: \"${linker}\" \"${flags_string}\"\n"
+ "${linker_desc_head}\n"
+ )
+
+ if(CMAKE_EFFECTIVE_SYSTEM_NAME STREQUAL "Apple" AND linker_desc MATCHES "@\\(#\\)PROGRAM:ld.+PROJECT:[a-z0-9]+-([0-9.]+).+")
set(linker_id "AppleClang")
set(linker_frontend "GNU")
set(linker_version "${CMAKE_MATCH_1}")
@@ -58,10 +65,10 @@ function(cmake_determine_linker_id lang linker)
set(linker_frontend "MSVC")
endif()
break()
- elseif(linker_desc MATCHES "GNU ld \\([^)]+\\) ([0-9.]+)")
+ elseif(linker_desc MATCHES "GNU ld (\\([^)]+\\)|version) ([0-9.]+)")
set(linker_id "GNU")
set(linker_frontend "GNU")
- set(linker_version "${CMAKE_MATCH_1}")
+ set(linker_version "${CMAKE_MATCH_2}")
break()
elseif(linker_desc MATCHES "GNU gold \\([^)]+\\) ([0-9.]+)")
set(linker_id "GNUgold")
@@ -83,10 +90,6 @@ function(cmake_determine_linker_id lang linker)
break()
endif()
endforeach()
- if(NOT linker_id)
- # unknown linker
- set(linker_id "UNKNOWN")
- endif()
set(CMAKE_${lang}_COMPILER_LINKER_ID "${linker_id}" PARENT_SCOPE)
if (linker_frontend)
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 4a0c4a0..9ac9d0a 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,7 +1,7 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 28)
-set(CMake_VERSION_PATCH 20231230)
+set(CMake_VERSION_PATCH 20240108)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
diff --git a/Source/CursesDialog/cmCursesMainForm.cxx b/Source/CursesDialog/cmCursesMainForm.cxx
index 77a0048..72460f3 100644
--- a/Source/CursesDialog/cmCursesMainForm.cxx
+++ b/Source/CursesDialog/cmCursesMainForm.cxx
@@ -962,6 +962,11 @@ int cmCursesMainForm::LoadCache(const char* /*unused*/)
if (r < 0) {
return r;
}
+
+ // Process presets before loading the cache
+ this->CMakeInstance->ProcessPresetVariables();
+ this->CMakeInstance->ProcessPresetEnvironment();
+
this->CMakeInstance->SetCacheArgs(this->Args);
this->CMakeInstance->PreLoadCMakeFiles();
return r;
diff --git a/Source/QtDialog/CMakeSetupDialog.cxx b/Source/QtDialog/CMakeSetupDialog.cxx
index ab77818..2a6a831 100644
--- a/Source/QtDialog/CMakeSetupDialog.cxx
+++ b/Source/QtDialog/CMakeSetupDialog.cxx
@@ -875,7 +875,7 @@ bool CMakeSetupDialog::setupFirstConfigure()
if (preset.setToolset) {
dialog.setToolset(preset.toolset);
}
- dialog.setCompilerOption(CompilerOption::DefaultNative);
+ dialog.setCompilerOption(CompilerOption::DefaultPreset);
}
if (dialog.exec() == QDialog::Accepted) {
diff --git a/Source/QtDialog/FirstConfigure.cxx b/Source/QtDialog/FirstConfigure.cxx
index a454cb6..2986e1f 100644
--- a/Source/QtDialog/FirstConfigure.cxx
+++ b/Source/QtDialog/FirstConfigure.cxx
@@ -159,6 +159,10 @@ void StartCompilerSetup::setCompilerOption(CompilerOption option)
{
std::size_t index = 0;
switch (option) {
+ case CompilerOption::DefaultPreset:
+ this->CompilerSetupOptions[0]->setText(
+ tr("Use default preset compilers"));
+ CM_FALLTHROUGH;
case CompilerOption::DefaultNative:
index = 0;
break;
diff --git a/Source/QtDialog/FirstConfigure.h b/Source/QtDialog/FirstConfigure.h
index 5844f3a..ea6fae6 100644
--- a/Source/QtDialog/FirstConfigure.h
+++ b/Source/QtDialog/FirstConfigure.h
@@ -24,6 +24,7 @@ enum FirstConfigurePages
enum class CompilerOption
{
+ DefaultPreset,
DefaultNative,
SpecifyNative,
ToolchainFile,
diff --git a/Source/QtDialog/QCMake.cxx b/Source/QtDialog/QCMake.cxx
index f43f05f..8d63f6d 100644
--- a/Source/QtDialog/QCMake.cxx
+++ b/Source/QtDialog/QCMake.cxx
@@ -378,6 +378,54 @@ void QCMake::setProperties(const QCMakePropertyList& newProps)
this->CMakeInstance->SaveCache(this->BinaryDirectory.toStdString());
}
+namespace {
+template <typename T>
+QCMakeProperty cache_to_property(const T& v)
+{
+ QCMakeProperty prop;
+ prop.Key = QString::fromStdString(v.first);
+ prop.Value = QString::fromStdString(v.second->Value);
+ prop.Type = QCMakeProperty::STRING;
+ if (!v.second->Type.empty()) {
+ auto type = cmState::StringToCacheEntryType(v.second->Type);
+ switch (type) {
+ case cmStateEnums::BOOL:
+ prop.Type = QCMakeProperty::BOOL;
+ prop.Value = cmIsOn(v.second->Value);
+ break;
+ case cmStateEnums::PATH:
+ prop.Type = QCMakeProperty::PATH;
+ break;
+ case cmStateEnums::FILEPATH:
+ prop.Type = QCMakeProperty::FILEPATH;
+ break;
+ default:
+ prop.Type = QCMakeProperty::STRING;
+ break;
+ }
+ }
+ return prop;
+}
+
+void add_to_property_list(QCMakePropertyList& list, QCMakeProperty&& prop)
+{
+ // QCMakeCacheModel prefers variables earlier in the list rather than
+ // later, so overwrite them if they already exist rather than simply
+ // appending
+ bool found = false;
+ for (auto& orig : list) {
+ if (orig.Key == prop.Key) {
+ orig = prop;
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ list.append(prop);
+ }
+}
+}
+
QCMakePropertyList QCMake::properties() const
{
QCMakePropertyList ret;
@@ -423,47 +471,21 @@ QCMakePropertyList QCMake::properties() const
auto const& p =
this->CMakePresetsGraph.ConfigurePresets.at(presetName).Expanded;
if (p) {
+ if (!p->ToolchainFile.empty()) {
+ using CacheVariable = cmCMakePresetsGraph::CacheVariable;
+ CacheVariable var{ "FILEPATH", p->ToolchainFile };
+ std::pair<std::string, cm::optional<CacheVariable>> value = {
+ "CMAKE_TOOLCHAIN_FILE", var
+ };
+ auto prop = cache_to_property(value);
+ add_to_property_list(ret, std::move(prop));
+ }
for (auto const& v : p->CacheVariables) {
if (!v.second) {
continue;
}
- QCMakeProperty prop;
- prop.Key = QString::fromStdString(v.first);
- prop.Value = QString::fromStdString(v.second->Value);
- prop.Type = QCMakeProperty::STRING;
- if (!v.second->Type.empty()) {
- auto type = cmState::StringToCacheEntryType(v.second->Type);
- switch (type) {
- case cmStateEnums::BOOL:
- prop.Type = QCMakeProperty::BOOL;
- prop.Value = cmIsOn(v.second->Value);
- break;
- case cmStateEnums::PATH:
- prop.Type = QCMakeProperty::PATH;
- break;
- case cmStateEnums::FILEPATH:
- prop.Type = QCMakeProperty::FILEPATH;
- break;
- default:
- prop.Type = QCMakeProperty::STRING;
- break;
- }
- }
-
- // QCMakeCacheModel prefers variables earlier in the list rather than
- // later, so overwrite them if they already exist rather than simply
- // appending
- bool found = false;
- for (auto& orig : ret) {
- if (orig.Key == prop.Key) {
- orig = prop;
- found = true;
- break;
- }
- }
- if (!found) {
- ret.append(prop);
- }
+ auto prop = cache_to_property(v);
+ add_to_property_list(ret, std::move(prop));
}
}
}
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index 1b69f6e..e7bef68 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -260,7 +260,7 @@ cmComputeLinkInformation::cmComputeLinkInformation(
, Config(config)
{
// Check whether to recognize OpenBSD-style library versioned names.
- this->OpenBSD = this->Makefile->GetState()->GetGlobalPropertyAsBool(
+ this->IsOpenBSD = this->Makefile->GetState()->GetGlobalPropertyAsBool(
"FIND_LIBRARY_USE_OPENBSD_VERSIONING");
// Allocate internals.
@@ -1574,7 +1574,7 @@ std::string cmComputeLinkInformation::CreateExtensionRegex(
libext += ')';
// Add an optional OpenBSD-style version or major.minor.version component.
- if (this->OpenBSD || type == LinkShared) {
+ if (this->IsOpenBSD || type == LinkShared) {
libext += "(\\.[0-9]+)*";
}
diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h
index 3ee995f..2a06530 100644
--- a/Source/cmComputeLinkInformation.h
+++ b/Source/cmComputeLinkInformation.h
@@ -254,7 +254,7 @@ private:
std::unique_ptr<cmOrderDirectories> OrderRuntimeSearchPath;
bool OldLinkDirMode;
- bool OpenBSD;
+ bool IsOpenBSD;
bool LinkDependsNoShared;
bool RuntimeUseChrpath;
bool NoSONameUsesPath;
diff --git a/Source/cmDyndepCollation.cxx b/Source/cmDyndepCollation.cxx
index e9f7be3..ea46f03 100644
--- a/Source/cmDyndepCollation.cxx
+++ b/Source/cmDyndepCollation.cxx
@@ -495,7 +495,8 @@ bool cmDyndepCollation::WriteDyndepMetadata(
if (!has_provides) {
cmSystemTools::Error(
cmStrCat("Output ", object.PrimaryOutput,
- " is of type `CXX_MODULES` but does not provide a module"));
+ " is of type `CXX_MODULES` but does not provide a module "
+ "interface unit or partition"));
result = false;
continue;
}
diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx
index df77ad0..9df7665 100644
--- a/Source/cmFindLibraryCommand.cxx
+++ b/Source/cmFindLibraryCommand.cxx
@@ -207,7 +207,7 @@ struct cmFindLibraryHelper
std::string BestPath;
// Support for OpenBSD shared library naming: lib<name>.so.<major>.<minor>
- bool OpenBSD;
+ bool IsOpenBSD;
bool DebugMode;
@@ -320,7 +320,7 @@ cmFindLibraryHelper::cmFindLibraryHelper(std::string debugName, cmMakefile* mf,
this->RegexFromList(this->SuffixRegexStr, this->Suffixes);
// Check whether to use OpenBSD-style library version comparisons.
- this->OpenBSD = this->Makefile->GetState()->GetGlobalPropertyAsBool(
+ this->IsOpenBSD = this->Makefile->GetState()->GetGlobalPropertyAsBool(
"FIND_LIBRARY_USE_OPENBSD_VERSIONING");
}
@@ -390,7 +390,7 @@ void cmFindLibraryHelper::AddName(std::string const& name)
std::string regex = cmStrCat('^', this->PrefixRegexStr);
this->RegexFromLiteral(regex, name);
regex += this->SuffixRegexStr;
- if (this->OpenBSD) {
+ if (this->IsOpenBSD) {
regex += "(\\.[0-9]+\\.[0-9]+)?";
}
regex += "$";
@@ -472,7 +472,7 @@ bool cmFindLibraryHelper::CheckDirectoryForName(std::string const& path,
size_type suffix = this->GetSuffixIndex(name.Regex.match(2));
unsigned int major = 0;
unsigned int minor = 0;
- if (this->OpenBSD) {
+ if (this->IsOpenBSD) {
sscanf(name.Regex.match(3).c_str(), ".%u.%u", &major, &minor);
}
if (this->BestPath.empty() || prefix < bestPrefix ||
diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx
index 2cb1284..bc75a95 100644
--- a/Source/cmNinjaTargetGenerator.cxx
+++ b/Source/cmNinjaTargetGenerator.cxx
@@ -1390,8 +1390,10 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
bool const needDyndep = !isPch &&
this->GeneratorTarget->NeedDyndepForSource(language, config, source);
- cmNinjaBuild objBuild(this->LanguageCompilerRule(
- language, config, needDyndep ? WithScanning::Yes : WithScanning::No));
+ WithScanning withScanning =
+ needDyndep ? WithScanning::Yes : WithScanning::No;
+ cmNinjaBuild objBuild(
+ this->LanguageCompilerRule(language, config, withScanning));
cmNinjaVars& vars = objBuild.Variables;
vars["FLAGS"] =
this->ComputeFlagsForObject(source, language, config, objectFileName);
@@ -1454,7 +1456,7 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement(
this->ExportObjectCompileCommand(
language, sourceFilePath, objectDir, objectFileName, objectFileDir,
vars["FLAGS"], vars["DEFINES"], vars["INCLUDES"],
- vars["TARGET_COMPILE_PDB"], vars["TARGET_PDB"], config);
+ vars["TARGET_COMPILE_PDB"], vars["TARGET_PDB"], config, withScanning);
}
objBuild.Outputs.push_back(objectFileName);
@@ -1801,7 +1803,7 @@ void cmNinjaTargetGenerator::WriteCxxModuleBmiBuildStatement(
this->ExportObjectCompileCommand(
language, sourceFilePath, bmiDir, bmiFileName, bmiFileDir, vars["FLAGS"],
vars["DEFINES"], vars["INCLUDES"], vars["TARGET_COMPILE_PDB"],
- vars["TARGET_PDB"], config);
+ vars["TARGET_PDB"], config, WithScanning::Yes);
}
bmiBuild.Outputs.push_back(bmiFileName);
@@ -1914,7 +1916,6 @@ void cmNinjaTargetGenerator::WriteSwiftObjectBuildStatement(
// indistinguishable from the old behavior.
//
// FIXME(#25490): Add response file support to Swift object build step
- // FIXME(#25491): Include all files in module in compile_commands.json
if (sources.empty()) {
return;
@@ -1949,6 +1950,10 @@ void cmNinjaTargetGenerator::WriteSwiftObjectBuildStatement(
this->LanguageCompilerRule(language, config, WithScanning::No));
cmNinjaVars& vars = objBuild.Variables;
+ // The swift toolchain leaves outputs untouched if there are no meaningful
+ // changes to input files (e.g. addition of a comment).
+ vars.emplace("restat", "1");
+
std::string const moduleName =
getTargetPropertyOrDefault(target, "Swift_MODULE_NAME", target.GetName());
std::string const moduleDirectory = getTargetPropertyOrDefault(
@@ -2025,15 +2030,7 @@ void cmNinjaTargetGenerator::WriteSwiftObjectBuildStatement(
std::string const sourceFilePath = this->GetCompiledSourceNinjaPath(sf);
objBuild.ExplicitDeps.push_back(sourceFilePath);
- if (isSingleOutput) {
- if (firstForConfig) {
- this->ExportObjectCompileCommand(
- language, sourceFilePath, objectDir, targetObjectFilename,
- cmSystemTools::GetFilenamePath(targetObjectFilename), vars["FLAGS"],
- vars["DEFINES"], vars["INCLUDES"],
- /*compile pdb*/ "", /*target pdb*/ "", config);
- }
- } else {
+ if (!isSingleOutput) {
// Object outputs
std::string const objectFilepath =
this->ConvertToNinjaPath(this->GetObjectFilePath(sf, config));
@@ -2043,16 +2040,6 @@ void cmNinjaTargetGenerator::WriteSwiftObjectBuildStatement(
// Add OFM data
this->EmitSwiftDependencyInfo(sf, config);
-
- // Emit compile commands
- if (firstForConfig) {
- this->ExportObjectCompileCommand(
- language, sourceFilePath, objectDir, objectFilepath,
- cmSystemTools::GetFilenamePath(objectFilepath), vars["FLAGS"],
- vars["DEFINES"], vars["INCLUDES"],
- /*compile pdb*/ "",
- /*target pdb*/ "", config);
- }
}
}
@@ -2060,6 +2047,12 @@ void cmNinjaTargetGenerator::WriteSwiftObjectBuildStatement(
this->GenerateSwiftOutputFileMap(config, vars["FLAGS"]);
}
+ if (firstForConfig) {
+ this->ExportSwiftObjectCompileCommand(
+ sources, targetObjectFilename, vars["FLAGS"], vars["DEFINES"],
+ vars["INCLUDES"], config, isSingleOutput);
+ }
+
for (cmTargetDepend const& dep :
this->GetGlobalGenerator()->GetTargetDirectDepends(&target)) {
if (!dep->IsLanguageUsed("Swift", config)) {
@@ -2220,7 +2213,7 @@ void cmNinjaTargetGenerator::ExportObjectCompileCommand(
std::string const& objectFileDir, std::string const& flags,
std::string const& defines, std::string const& includes,
std::string const& targetCompilePdb, std::string const& targetPdb,
- std::string const& outputConfig)
+ std::string const& outputConfig, WithScanning withScanning)
{
if (!this->GeneratorTarget->GetPropertyAsBool("EXPORT_COMPILE_COMMANDS")) {
return;
@@ -2243,14 +2236,12 @@ void cmNinjaTargetGenerator::ExportObjectCompileCommand(
escapedSourceFileName, cmOutputConverter::SHELL);
std::string fullFlags = flags;
- {
- bool const needDyndep =
- this->GetGeneratorTarget()->NeedDyndep(language, outputConfig);
+ if (withScanning == WithScanning::Yes) {
std::string const modmapFormatVar =
cmStrCat("CMAKE_", language, "_MODULE_MAP_FORMAT");
std::string const modmapFormat =
this->Makefile->GetSafeDefinition(modmapFormatVar);
- if (needDyndep && !modmapFormat.empty()) {
+ if (!modmapFormat.empty()) {
std::string modmapFlags = this->GetMakefile()->GetRequiredDefinition(
cmStrCat("CMAKE_", language, "_MODULE_MAP_FLAG"));
// XXX(modmap): If changing this path construction, change
@@ -2326,6 +2317,77 @@ void cmNinjaTargetGenerator::ExportObjectCompileCommand(
objectFileName);
}
+void cmNinjaTargetGenerator::ExportSwiftObjectCompileCommand(
+ std::vector<cmSourceFile const*> const& moduleSourceFiles,
+ std::string const& moduleObjectFilename, std::string const& flags,
+ std::string const& defines, std::string const& includes,
+ std::string const& outputConfig, bool singleOutput)
+{
+ if (!this->GeneratorTarget->GetPropertyAsBool("EXPORT_COMPILE_COMMANDS")) {
+ return;
+ }
+
+ auto escapeSourceFileName = [this](std::string srcFilename) -> std::string {
+ if (!cmSystemTools::FileIsFullPath(srcFilename)) {
+ srcFilename =
+ cmSystemTools::CollapseFullPath(srcFilename,
+ this->GetGlobalGenerator()
+ ->GetCMakeInstance()
+ ->GetHomeOutputDirectory());
+ }
+
+ return this->LocalGenerator->ConvertToOutputFormat(
+ srcFilename, cmOutputConverter::SHELL);
+ };
+
+ cmRulePlaceholderExpander::RuleVariables compileObjectVars;
+ compileObjectVars.Language = "Swift";
+ compileObjectVars.Flags = flags.c_str();
+ compileObjectVars.Defines = defines.c_str();
+ compileObjectVars.Includes = includes.c_str();
+
+ // Build up the list of source files in the module
+ std::vector<std::string> filenames;
+ filenames.reserve(moduleSourceFiles.size());
+ for (cmSourceFile const* sf : moduleSourceFiles) {
+ filenames.emplace_back(
+ escapeSourceFileName(this->GetCompiledSourceNinjaPath(sf)));
+ }
+ // Note that `escapedSourceFilenames` must remain alive until the
+ // compileObjectVars is consumed or Source will be a dangling pointer.
+ std::string const escapedSourceFilenames = cmJoin(filenames, " ");
+ compileObjectVars.Source = escapedSourceFilenames.c_str();
+
+ std::string const& compileCommand =
+ this->Makefile->GetRequiredDefinition("CMAKE_Swift_COMPILE_OBJECT");
+ cmList compileCmds(compileCommand);
+
+ auto rulePlaceholderExpander =
+ this->GetLocalGenerator()->CreateRulePlaceholderExpander();
+
+ for (cmSourceFile const* sf : moduleSourceFiles) {
+ std::string const sourceFilename = this->GetCompiledSourceNinjaPath(sf);
+ std::string objectFilename = moduleObjectFilename;
+
+ if (!singleOutput) {
+ // If it's not single-output, each source file gets a separate object
+ objectFilename = this->GetObjectFilePath(sf, outputConfig);
+ }
+ compileObjectVars.Objects = objectFilename.c_str();
+
+ for (std::string& cmd : compileCmds) {
+ rulePlaceholderExpander->ExpandRuleVariables(this->GetLocalGenerator(),
+ cmd, compileObjectVars);
+ }
+
+ std::string commandLine = this->GetLocalGenerator()->BuildCommandLine(
+ compileCmds, outputConfig, outputConfig);
+
+ this->GetGlobalGenerator()->AddCXXCompileCommand(
+ commandLine, sourceFilename, objectFilename);
+ }
+}
+
void cmNinjaTargetGenerator::AdditionalCleanFiles(const std::string& config)
{
if (cmValue prop_value =
diff --git a/Source/cmNinjaTargetGenerator.h b/Source/cmNinjaTargetGenerator.h
index 7a68599..f081117 100644
--- a/Source/cmNinjaTargetGenerator.h
+++ b/Source/cmNinjaTargetGenerator.h
@@ -193,7 +193,13 @@ protected:
std::string const& objectFileDir, std::string const& flags,
std::string const& defines, std::string const& includes,
std::string const& targetCompilePdb, std::string const& targetPdb,
- std::string const& outputConfig);
+ std::string const& outputConfig, WithScanning withScanning);
+
+ void ExportSwiftObjectCompileCommand(
+ std::vector<cmSourceFile const*> const& moduleSourceFiles,
+ std::string const& moduleObjectFilename, std::string const& flags,
+ std::string const& defines, std::string const& includes,
+ std::string const& outputConfig, bool singleOutput);
void AdditionalCleanFiles(const std::string& config);
diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h
index f038c6b..3f20dc0 100644
--- a/Source/cmPolicies.h
+++ b/Source/cmPolicies.h
@@ -484,7 +484,7 @@ class cmMakefile;
SELECT(POLICY, CMP0158, \
"add_test() honors CMAKE_CROSSCOMPILING_EMULATOR only when " \
"cross-compiling.", \
- 3, 28, 0, cmPolicies::WARN)
+ 3, 29, 0, cmPolicies::WARN)
#define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1)
#define CM_FOR_EACH_POLICY_ID(POLICY) \
diff --git a/Tests/CMakeOnly/CMakeLists.txt b/Tests/CMakeOnly/CMakeLists.txt
index a41b44e..30cabf1 100644
--- a/Tests/CMakeOnly/CMakeLists.txt
+++ b/Tests/CMakeOnly/CMakeLists.txt
@@ -25,6 +25,13 @@ add_CMakeOnly_test(CheckCXXSymbolExists)
add_CMakeOnly_test(CheckCXXCompilerFlag)
add_CMakeOnly_test(CheckLanguage)
+if (CMake_TEST_HIP)
+ set_property(TEST CMakeOnly.CheckLanguage APPEND PROPERTY LABELS "HIP")
+ add_CMakeOnly_test(CheckLanguageHIPPlatform)
+ set_property(TEST CMakeOnly.CheckLanguageHIPPlatform APPEND PROPERTY LABELS "HIP")
+ add_CMakeOnly_test(CheckLanguageHIPPlatform2)
+ set_property(TEST CMakeOnly.CheckLanguageHIPPlatform2 APPEND PROPERTY LABELS "HIP")
+endif()
add_CMakeOnly_test(CheckStructHasMember)
diff --git a/Tests/CMakeOnly/CheckLanguageHIPPlatform/CMakeLists.txt b/Tests/CMakeOnly/CheckLanguageHIPPlatform/CMakeLists.txt
new file mode 100644
index 0000000..03b8aa0
--- /dev/null
+++ b/Tests/CMakeOnly/CheckLanguageHIPPlatform/CMakeLists.txt
@@ -0,0 +1,17 @@
+cmake_minimum_required (VERSION 3.28)
+project(CheckLanguageHIPPlatform NONE)
+include(CheckLanguage)
+
+check_language(HIP)
+
+if(NOT DEFINED CMAKE_HIP_COMPILER)
+ message(FATAL_ERROR "check_language did not set result")
+endif()
+
+if (NOT CMAKE_HIP_COMPILER)
+ message(FATAL_ERROR "check_language should not fail!")
+endif()
+
+if (NOT DEFINED CMAKE_HIP_PLATFORM)
+ message(FATAL_ERROR "check_language did not set CMAKE_HIP_PLATFORM!")
+endif()
diff --git a/Tests/CMakeOnly/CheckLanguageHIPPlatform2/CMakeLists.txt b/Tests/CMakeOnly/CheckLanguageHIPPlatform2/CMakeLists.txt
new file mode 100644
index 0000000..f251c49
--- /dev/null
+++ b/Tests/CMakeOnly/CheckLanguageHIPPlatform2/CMakeLists.txt
@@ -0,0 +1,14 @@
+cmake_minimum_required (VERSION 3.28)
+project(CheckLanguageHIPPlatform2 NONE)
+include(CheckLanguage)
+
+set(CMAKE_HIP_PLATFORM "not-a-hip-platform" CACHE STRING "")
+check_language(HIP)
+
+if(NOT DEFINED CMAKE_HIP_COMPILER)
+ message(FATAL_ERROR "check_language did not set result")
+endif()
+
+if (CMAKE_HIP_COMPILER)
+ message(FATAL_ERROR "check_language should have failed")
+endif()
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index dbcb94e..324a4da 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -888,6 +888,9 @@ if(CMake_TEST_RunCMake_ExternalProject_DOWNLOAD_SERVER_TIMEOUT)
list(APPEND ExternalProject_ARGS -DDOWNLOAD_SERVER_TIMEOUT=${CMake_TEST_RunCMake_ExternalProject_DOWNLOAD_SERVER_TIMEOUT})
endif()
add_RunCMake_test(ExternalProject -DDETECT_JOBSERVER=$<TARGET_FILE:detect_jobserver>)
+if(CMake_TEST_RunCMake_ExternalProject_RUN_SERIAL)
+ set_property(TEST RunCMake.ExternalProject PROPERTY RUN_SERIAL TRUE)
+endif()
add_RunCMake_test(FetchContent)
add_RunCMake_test(FetchContent_find_package)
set(CTestCommandLine_ARGS -DPython_EXECUTABLE=${Python_EXECUTABLE})
diff --git a/Tests/RunCMake/ParseImplicitData/CMakeLists.txt b/Tests/RunCMake/ParseImplicitData/CMakeLists.txt
index 7a8570b..6ba6913 100644
--- a/Tests/RunCMake/ParseImplicitData/CMakeLists.txt
+++ b/Tests/RunCMake/ParseImplicitData/CMakeLists.txt
@@ -55,18 +55,24 @@ foreach(lang IN ITEMS ${LANGUAGES})
set(outfile "${CMAKE_PLATFORM_INFO_DIR}/test${lang}.out")
set(CMAKE_FLAGS )
set(COMPILE_DEFINITIONS )
+ set(LINK_OPTIONS )
if(DEFINED CMAKE_${lang}_VERBOSE_FLAG)
- set(CMAKE_FLAGS "-DEXE_LINKER_FLAGS=${CMAKE_${lang}_VERBOSE_FLAG}")
+ set(LINK_OPTIONS "${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(DEFINED CMAKE_${lang}_VERBOSE_LINK_FLAG)
+ list(APPEND LINK_OPTIONS "${CMAKE_${lang}_VERBOSE_LINK_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()
+ list(JOIN LINK_OPTIONS " " LINK_OPTIONS)
+ list(APPEND CMAKE_FLAGS "-DEXE_LINKER_FLAGS=${LINK_OPTIONS}")
try_compile(rv ${CMAKE_BINARY_DIR} ${file}
CMAKE_FLAGS ${CMAKE_FLAGS}
diff --git a/Tests/RunCMake/ParseImplicitData/aix-C-IBMClang-17.1.1.2.input b/Tests/RunCMake/ParseImplicitData/aix-C-IBMClang-17.1.1.2.input
new file mode 100644
index 0000000..0d57b2c
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/aix-C-IBMClang-17.1.1.2.input
@@ -0,0 +1,43 @@
+CMAKE_LANG=C
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_C_COMPILER_ABI=
+CMAKE_C_COMPILER_AR=
+CMAKE_C_COMPILER_ARCHITECTURE_ID=
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=IBMClang
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=17.1.1.2
+CMAKE_C_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake-build/bin/cmake -E env VERBOSE=1 /opt/freeware/bin/gmake -f Makefile cmTC_b9ba2/fast
+/opt/freeware/bin/gmake -f CMakeFiles/cmTC_b9ba2.dir/build.make CMakeFiles/cmTC_b9ba2.dir/build
+gmake[1]: Entering directory '/tmp/ii/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o
+/opt/IBM/openxlC/17.1.1/bin/ibm-clang_r -v -MD -MT CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o -c /tmp/cmake/Modules/CMakeCCompilerABI.c
+IBM Open XL C/C++ for AIX 17.1.1 (5725-C72, 5765-J18), version 17.1.1.2, clang version 15.0.0 (build 3948f09)
+Target: powerpc-ibm-aix7.3.0.0
+Thread model: posix
+InstalledDir: /opt/IBM/openxlC/17.1.1/bin
+ "/opt/IBM/openxlC/17.1.1/bin/.ibm-clang.orig" -cc1 -triple powerpc-ibm-aix7.3.0.0 -S -disable-free -clear-ast-before-backend -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -fno-verbose-asm -mconstructor-aliases -target-cpu pwr7 -mfloat-abi hard -mllvm -treat-scalable-fixed-error-as-warning -gstrict-dwarf -gno-column-info -debugger-tuning=dbx -fno-dwarf-directory-asm -v -fdata-sections -fcoverage-compilation-dir=/tmp/ii/CMakeFiles/CMakeTmp -resource-dir /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0 -dependency-file CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o -sys-header-deps -internal-isystem /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include/ppc_wrappers -internal-isystem /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include -internal-isystem /usr/include -internal-isystem /opt/IBM/xlmass/10.1.1/include -fdebug-compilation-dir=/tmp/ii/CMakeFiles/CMakeTmp -ferror-limit 19 -pthread -fno-signed-char -fno-use-cxa-atexit -fgnuc-version=4.2.1 -no-opaque-pointers -fexec-charset UTF-8 -fxl-pragma-pack -o /tmp/CMakeCCompilerABI-a15e67.s -x c /tmp/cmake/Modules/CMakeCCompilerABI.c
+clang -cc1 version 15.0.0 based upon LLVM 15.0.0git default target powerpc-ibm-aix7.3.0.0
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include/ppc_wrappers
+ /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include
+ /usr/include
+ /opt/IBM/xlmass/10.1.1/include
+End of search list.
+ "/usr/bin/as" -a32 -many -o CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o /tmp/CMakeCCompilerABI-a15e67.s
+Linking C executable cmTC_b9ba2
+/tmp/cmake-build/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b9ba2.dir/link.txt --verbose=1
+/opt/IBM/openxlC/17.1.1/bin/ibm-clang_r -Wl,-bnoipath -v -Wl,-v -Wl,-bexpall CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o -o cmTC_b9ba2 -Wl,-blibpath:/opt/IBM/xlmass/10.1.1/lib:/usr/lib:/lib
+IBM Open XL C/C++ for AIX 17.1.1 (5725-C72, 5765-J18), version 17.1.1.2, clang version 15.0.0 (build 3948f09)
+Target: powerpc-ibm-aix7.3.0.0
+Thread model: posix
+InstalledDir: /opt/IBM/openxlC/17.1.1/bin
+ "/usr/bin/ld" -o cmTC_b9ba2 -b32 -bpT:0x10000000 -bpD:0x20000000 /usr/lib/crt0.o /usr/lib/crti.o -bcdtors:all:0:s -bnoipath -v -bexpall CMakeFiles/cmTC_b9ba2.dir/CMakeCCompilerABI.c.o -blibpath:/opt/IBM/xlmass/10.1.1/lib:/usr/lib:/lib -L/opt/IBM/xlmass/10.1.1/lib /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/lib/aix/libxlopt.a /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/lib/aix/libclang_rt.builtins-powerpc.a -lunwind -lpthreads -lc
+gmake[1]: Leaving directory '/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/aix-CXX-IBMClang-17.1.1.2.input b/Tests/RunCMake/ParseImplicitData/aix-CXX-IBMClang-17.1.1.2.input
new file mode 100644
index 0000000..ace5021
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/aix-CXX-IBMClang-17.1.1.2.input
@@ -0,0 +1,44 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_CXX_COMPILER_ABI=
+CMAKE_CXX_COMPILER_AR=
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=IBMClang
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=17.1.1.2
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake-build/bin/cmake -E env VERBOSE=1 /opt/freeware/bin/gmake -f Makefile cmTC_7f688/fast
+/opt/freeware/bin/gmake -f CMakeFiles/cmTC_7f688.dir/build.make CMakeFiles/cmTC_7f688.dir/build
+gmake[1]: Entering directory '/tmp/ii/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_7f688.dir/CMakeCXXCompilerABI.cpp.o
+/opt/IBM/openxlC/17.1.1/bin/ibm-clang++_r -x c++ -v -o CMakeFiles/cmTC_7f688.dir/CMakeCXXCompilerABI.cpp.o -c /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp
+IBM Open XL C/C++ for AIX 17.1.1 (5725-C72, 5765-J18), version 17.1.1.2, clang version 15.0.0 (build 3948f09)
+Target: powerpc-ibm-aix7.3.0.0
+Thread model: posix
+InstalledDir: /opt/IBM/openxlC/17.1.1/bin
+ "/opt/IBM/openxlC/17.1.1/bin/.ibm-clang.orig" -cc1 -triple powerpc-ibm-aix7.3.0.0 -S -disable-free -clear-ast-before-backend -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -fno-verbose-asm -mconstructor-aliases -target-cpu pwr7 -mfloat-abi hard -mllvm -treat-scalable-fixed-error-as-warning -gstrict-dwarf -gno-column-info -debugger-tuning=dbx -fno-dwarf-directory-asm -v -fdata-sections -fcoverage-compilation-dir=/tmp/ii/CMakeFiles/CMakeTmp -resource-dir /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0 -internal-isystem /opt/IBM/openxlC/17.1.1/bin/../include/c++/v1 -D__LIBC_NO_CPP_MATH_OVERLOADS__ -internal-isystem /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include/ppc_wrappers -internal-isystem /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include -internal-isystem /usr/include -internal-isystem /opt/IBM/xlmass/10.1.1/include -fdeprecated-macro -fdebug-compilation-dir=/tmp/ii/CMakeFiles/CMakeTmp -ferror-limit 19 -pthread -fno-signed-char -fno-use-cxa-atexit -fgnuc-version=4.2.1 -no-opaque-pointers -fcxx-exceptions -fexceptions -fexec-charset UTF-8 -fxl-pragma-pack -o /tmp/CMakeCXXCompilerABI-8a2098.s -x c++ /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp
+clang -cc1 version 15.0.0 based upon LLVM 15.0.0git default target powerpc-ibm-aix7.3.0.0
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/IBM/openxlC/17.1.1/bin/../include/c++/v1
+ /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include/ppc_wrappers
+ /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include
+ /usr/include
+ /opt/IBM/xlmass/10.1.1/include
+End of search list.
+ "/usr/bin/as" -a32 -many -o CMakeFiles/cmTC_7f688.dir/CMakeCXXCompilerABI.cpp.o /tmp/CMakeCXXCompilerABI-8a2098.s
+Linking CXX executable cmTC_7f688
+/tmp/cmake-build/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7f688.dir/link.txt --verbose=1
+/opt/IBM/openxlC/17.1.1/bin/ibm-clang++_r -Wl,-bnoipath -v -Wl,-v -Wl,-bexpall CMakeFiles/cmTC_7f688.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_7f688 -Wl,-blibpath:/opt/IBM/xlmass/10.1.1/lib:/usr/lib:/lib
+IBM Open XL C/C++ for AIX 17.1.1 (5725-C72, 5765-J18), version 17.1.1.2, clang version 15.0.0 (build 3948f09)
+Target: powerpc-ibm-aix7.3.0.0
+Thread model: posix
+InstalledDir: /opt/IBM/openxlC/17.1.1/bin
+ "/usr/bin/ld" -o cmTC_7f688 -b32 -bpT:0x10000000 -bpD:0x20000000 /usr/lib/crt0.o /usr/lib/crti.o -bcdtors:all:0:s -bnoipath -v -bexpall CMakeFiles/cmTC_7f688.dir/CMakeCXXCompilerABI.cpp.o -blibpath:/opt/IBM/xlmass/10.1.1/lib:/usr/lib:/lib -lc++ -lc++abi -L/opt/IBM/xlmass/10.1.1/lib /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/lib/aix/libxlopt.a /opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/lib/aix/libclang_rt.builtins-powerpc.a -lunwind -lpthreads -lm -lc
+gmake[1]: Leaving directory '/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-GNU-12.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-C-GNU-12.2.0.input
new file mode 100644
index 0000000..7ecf081
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-C-GNU-12.2.0.input
@@ -0,0 +1,74 @@
+CMAKE_LANG=C
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_C_COMPILER_ABI=ELF
+CMAKE_C_COMPILER_AR=/usr/bin/gcc-ar-12
+CMAKE_C_COMPILER_ARCHITECTURE_ID=
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=GNU
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=/usr/bin/gcc-ranlib-12
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=12.2.0
+CMAKE_C_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_9e804
+[1/2] /usr/bin/cc -v -o CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.o -c /tmp/cmake/Modules/CMakeCCompilerABI.c
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 12.2.0 (Debian 12.2.0-14)
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9e804.dir/'
+ /usr/lib/gcc/x86_64-linux-gnu/12/cc1 -quiet -v -imultiarch x86_64-linux-gnu /tmp/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_9e804.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccS22h9H.s
+GNU C17 (Debian 12.2.0-14) version 12.2.0 (x86_64-linux-gnu)
+ compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.1-p1, MPC version 1.3.1, isl version isl-0.25-GMP
+
+warning: MPFR header version 4.1.1-p1 differs from library version 4.2.0.
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/lib/gcc/x86_64-linux-gnu/12/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+End of search list.
+GNU C17 (Debian 12.2.0-14) version 12.2.0 (x86_64-linux-gnu)
+ compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.1-p1, MPC version 1.3.1, isl version isl-0.25-GMP
+
+warning: MPFR header version 4.1.1-p1 differs from library version 4.2.0.
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: cc72d2b9b5048fedc2be9051c917b40b
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9e804.dir/'
+ as -v --64 -o CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.o /tmp/ccS22h9H.s
+GNU assembler version 2.40 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.40
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.'
+[2/2] : && /usr/bin/cc -v -Wl,-v -rdynamic CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.o -o cmTC_9e804 && :
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 12.2.0 (Debian 12.2.0-14)
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_9e804' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_9e804.'
+ /usr/lib/gcc/x86_64-linux-gnu/12/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/12/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4RWkJm.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_9e804 /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/12/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/12 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/12/../../.. -v CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/12/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crtn.o
+collect2 version 12.2.0
+/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/12/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper -plugin-opt=-fresolution=/tmp/cc4RWkJm.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_9e804 /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/12/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/12 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/12/../../.. -v CMakeFiles/cmTC_9e804.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/12/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crtn.o
+GNU ld (GNU Binutils for Debian) 2.40
+COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_9e804' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_9e804.'
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-Intel-2021.10.0.20230609.input b/Tests/RunCMake/ParseImplicitData/linux-C-Intel-2021.10.0.20230609.input
new file mode 100644
index 0000000..60f2017
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-C-Intel-2021.10.0.20230609.input
@@ -0,0 +1,41 @@
+CMAKE_LANG=C
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_C_COMPILER_ABI=ELF
+CMAKE_C_COMPILER_AR=
+CMAKE_C_COMPILER_ARCHITECTURE_ID=
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=Intel
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=2021.10.0.20230609
+CMAKE_C_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_c7575
+[1/2] /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/icc -v -MD -MT CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -c /tmp/cmake/Modules/CMakeCCompilerABI.c
+icc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is deprecated and will be removed from product release in the second half of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended compiler moving forward. Please transition to use this compiler. Use '-diag-disable=10441' to disable this message.
+icc version 2021.10.0 (gcc version 8.3.1 compatibility)
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/mcpcom --target_efi2 --lang=c -oCMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -_g -mP3OPT_inline_alloca -D__ICC=2021 -D__INTEL_COMPILER=2021 -D__INTEL_COMPILER_UPDATE=10 -D__PTRDIFF_TYPE__=long "-D__SIZE_TYPE__=unsigned long" -D__WCHAR_TYPE__=int "-D__WINT_TYPE__=unsigned int" "-D__INTMAX_TYPE__=long int" "-D__UINTMAX_TYPE__=long unsigned int" -D__LONG_MAX__=9223372036854775807L -D__QMSPP_ -D__OPTIMIZE__ -D__NO_MATH_INLINES -D__NO_STRING_INLINES -D__GNUC_GNU_INLINE__ -D__GNUC__=8 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=1 -D__LP64__ -D_LP64 -D__GXX_ABI_VERSION=1010 "-D__USER_LABEL_PREFIX__= " -D__REGISTER_PREFIX__= -D__INTEL_RTTI__ -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -B -Dunix -Dlinux "-_Asystem(unix)" -D__ELF__ -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ "-_Acpu(x86_64)" "-_Amachine(x86_64)" -D__INTEL_COMPILER_BUILD_DATE=20230609 -D__INTEL_OFFLOAD -D__MMX__ -D__SSE__ -D__SSE_MATH__ -D__SSE2__ -D__SSE2_MATH__ -D__pentium4 -D__pentium4__ -D__tune_pentium4__ -_k -_8 -_l --has_new_stdarg_support -_a -_b --gnu_version=80301 -_W5 --openmp_simd --noopenmp_offload --dependency_file_name CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o.d --compile_dependencies --dependency_target_name CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o --multibyte_chars -mGLOB_diag_suppress_sys --system_preinclude /usr/include/stdc-predef.h -I/opt/intel/oneapi/tbb/2021.10.0/env/../include -I/opt/intel/oneapi/mpi/2021.10.0//include -I/opt/intel/oneapi/mkl/2023.2.0/include -I/opt/intel/oneapi/dpcpp-ct/2023.2.0/include -I/opt/intel/oneapi/dev-utilities/2021.10.0/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include --array_section --simd --simd_func --offload_mode=1 --offload_target_names=mic,MIC --offload_unique_string=icc1008062305yGW96M -mGLOB_em64t=TRUE -mP1OPT_version=2021.10.0-intel64 -mGLOB_diag_file=CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.diag -mGLOB_long_size_64 -mGLOB_routine_pointer_size_64 -mP1OPT_print_version=FALSE -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_gcc_version=831 "-mGLOB_options_string=-v -MD -MT CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -c" -mGLOB_cxx_limited_range=FALSE -mCG_extend_parms=FALSE -mGLOB_compiler_bin_directory=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64 -mGLOB_as_output_backup_file_name=/tmp/icc2jQ0anas_.s -mIPOPT_activate -mIPOPT_lite -mGLOB_uarch_tuning=0x0 -mGLOB_product_id_code=0x22006d93 -mCG_bnl_movbe=T -mP3OPT_use_mspp_call_convention -mP2OPT_subs_out_of_bound=FALSE -mP2OPT_disam_type_based_disam=2 -mP2OPT_disam_assume_ansi_c -mP2OPT_checked_disam_ansi_alias=TRUE -mGLOB_ansi_alias -mPGOPTI_value_profile_use=T -mP2OPT_il0_array_sections=TRUE -mGLOB_offload_mode=1 -mGLOB_offload_no_openmp=TRUE -mP2OPT_offload_unique_var_string=icc1008062305yGW96M -mP2OPT_hlo_level=2 -mP2OPT_hlo -mP2OPT_hpo_rtt_control=0 -mIPOPT_args_in_regs=0 -mP2OPT_disam_assume_nonstd_intent_in=FALSE -mGLOB_imf_mapping_library=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/libiml_attr.so -mPGOPTI_gen_threadsafe_level=0 -mIPOPT_lto_object_enabled -mIPOPT_lto_object_value=1 -mIPOPT_obj_output_file_name=CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -mIPOPT_whole_archive_fixup_file_name=/tmp/iccwarchY2M6W5 -mGLOB_linker_version=2.30 -mGLOB_linker=ld -mGLOB_driver_tempfile_name=/tmp/icctempfilegrsOlX -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_async_unwind_tables=TRUE -mGLOB_obj_output_file=CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_C -mP1OPT_source_file_name=/tmp/cmake/Modules/CMakeCCompilerABI.c -mP1OPT_full_source_file_name=/tmp/cmake/Modules/CMakeCCompilerABI.c /tmp/cmake/Modules/CMakeCCompilerABI.c
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/intel/oneapi/tbb/2021.10.0/env/../include
+ /opt/intel/oneapi/mpi/2021.10.0//include
+ /opt/intel/oneapi/mkl/2023.2.0/include
+ /opt/intel/oneapi/dpcpp-ct/2023.2.0/include
+ /opt/intel/oneapi/dev-utilities/2021.10.0/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/intel64
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/icc
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include
+ /usr/local/include
+ /usr/lib/gcc/x86_64-redhat-linux/8/include
+ /usr/include/
+ /usr/include
+End of search list.
+[2/2] : && /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/icc -v -rdynamic CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -o cmTC_c7575 && :
+icc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is deprecated and will be removed from product release in the second half of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended compiler moving forward. Please transition to use this compiler. Use '-diag-disable=10441' to disable this message.
+icc version 2021.10.0 (gcc version 8.3.1 compatibility)
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/mcpcom -mGLOB_em64t=TRUE -mP1OPT_version=2021.10.0-intel64 -mGLOB_diag_file=CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.diag -mGLOB_long_size_64 -mGLOB_routine_pointer_size_64 -mP1OPT_print_version=FALSE -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_gcc_version=831 "-mGLOB_options_string=-v -rdynamic -o cmTC_c7575" -mGLOB_cxx_limited_range=FALSE -mCG_extend_parms=FALSE -mGLOB_compiler_bin_directory=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64 -mGLOB_as_output_backup_file_name=/tmp/iccWrdTRVas_.s -mGLOB_dashboard_use_source_name -mIPOPT_activate -mGLOB_product_id_code=0x22006d93 -mP3OPT_use_mspp_call_convention -mP2OPT_subs_out_of_bound=FALSE -mP2OPT_disam_type_based_disam=2 -mP2OPT_disam_assume_ansi_c -mP2OPT_checked_disam_ansi_alias=TRUE -mGLOB_ansi_alias -mPGOPTI_value_profile_use=T -mGLOB_opt_report_use_source_name -mP2OPT_il0_array_sections=TRUE -mGLOB_offload_mode=1 -mGLOB_offload_no_openmp=TRUE -mP2OPT_offload_unique_var_string=icc130092668226Q7tV -mP2OPT_hlo -mP2OPT_hpo_rtt_control=0 -mIPOPT_args_in_regs=0 -mP2OPT_disam_assume_nonstd_intent_in=FALSE -mGLOB_imf_mapping_library=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/libiml_attr.so -mPGOPTI_gen_threadsafe_level=0 -mIPOPT_link -mIPOPT_ipo_activate -mIPOPT_mo_activate -mIPOPT_source_files_list=/tmp/iccsliskXOPjc -mIPOPT_mo_global_data -mIPOPT_link_script_file=/tmp/iccscriptcFJQ53 "-mIPOPT_cmdline_link="/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o" "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o" "/usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o" "-export-dynamic" "--eh-frame-hdr" "--build-id" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-m" "elf_x86_64" "-o" "cmTC_c7575" "-L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8" "-L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/release" "-L/opt/intel/oneapi/mpi/2021.10.0//lib" "-L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/lib" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/lib/intel64_lin" "-L/usr/lib/gcc/x86_64-redhat-linux/8/" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/" "-L/lib/../lib64" "-L/lib/../lib64/" "-L/usr/lib/../lib64" "-L/usr/lib/../lib64/" "-L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8/" "-L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib/" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/release/" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/" "-L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../" "-L/lib64" "-L/lib/" "-L/usr/lib64" "-L/usr/lib" "CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o" "-Bdynamic" "-Bstatic" "-limf" "-lsvml" "-lirng" "-Bdynamic" "-lm" "-Bstatic" "-lipgo" "-ldecimal" "--as-needed" "-Bdynamic" "-lcilkrts" "-lstdc++" "--no-as-needed" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc" "-lsvml" "-Bdynamic" "-lc" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc_s" "-Bdynamic" "-ldl" "-lc" "/usr/lib/gcc/x86_64-redhat-linux/8/crtend.o" "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o"" -mIPOPT_il_in_obj -mIPOPT_ipo_activate_warn=FALSE -mIPOPT_obj_output_file_name=/tmp/ipo_icc4yyaGZ.o -mIPOPT_whole_archive_fixup_file_name=/tmp/iccwarchKxTVrF -mGLOB_linker_version=2.30 -mGLOB_linker=ld -mGLOB_driver_tempfile_name=/tmp/icctempfileo3zWfx -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_async_unwind_tables=TRUE -mGLOB_obj_output_file=/tmp/ipo_icc4yyaGZ.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE -mP1OPT_source_file_name=ipo_out.c CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -mIPOPT_object_files=T -mIPOPT_assembly_files=/tmp/iccalisibzYdJ -mIPOPT_generated_tempfiles=/tmp/iccelisAuAUZA -mIPOPT_embedded_object_base_name=/tmp/icceobjWlKRLs -mIPOPT_cmdline_link_new_name=/tmp/iccllisG28Pxk
+ld /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -export-dynamic --eh-frame-hdr --build-id -dynamic-linker /lib64/ld-linux-x86-64.so.2 -m elf_x86_64 -o cmTC_c7575 -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8 -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib -L/opt/intel/oneapi/mpi/2021.10.0//lib/release -L/opt/intel/oneapi/mpi/2021.10.0//lib -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64 -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib -L/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/lib/intel64_lin -L/usr/lib/gcc/x86_64-redhat-linux/8/ -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8/ -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib/ -L/opt/intel/oneapi/mpi/2021.10.0//lib/release/ -L/opt/intel/oneapi/mpi/2021.10.0//lib/ -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/ -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/ -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/ -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib CMakeFiles/cmTC_c7575.dir/CMakeCCompilerABI.c.o -Bdynamic -Bstatic -limf -lsvml -lirng -Bdynamic -lm -Bstatic -lipgo -ldecimal --as-needed -Bdynamic -lcilkrts -lstdc++ --no-as-needed -lgcc -lgcc_s -Bstatic -lirc -lsvml -Bdynamic -lc -lgcc -lgcc_s -Bstatic -lirc_s -Bdynamic -ldl -lc /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o
diff --git a/Tests/RunCMake/ParseImplicitData/linux-C-IntelLLVM-2023.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-C-IntelLLVM-2023.2.0.input
new file mode 100644
index 0000000..dd3b227
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-C-IntelLLVM-2023.2.0.input
@@ -0,0 +1,59 @@
+CMAKE_LANG=C
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_C_COMPILER_ABI=ELF
+CMAKE_C_COMPILER_AR=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ar
+CMAKE_C_COMPILER_ARCHITECTURE_ID=
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=IntelLLVM
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ranlib
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=2023.2.0
+CMAKE_C_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_0d8c1
+[1/2] /opt/intel/oneapi/compiler/2023.2.1/linux/bin/icx -v -MD -MT CMakeFiles/cmTC_0d8c1.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_0d8c1.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_0d8c1.dir/CMakeCCompilerABI.c.o -c /tmp/cmake/Modules/CMakeCCompilerABI.c
+Intel(R) oneAPI DPC++/C++ Compiler 2023.2.0 (2023.2.0.20230721)
+Target: x86_64-unknown-linux-gnu
+Thread model: posix
+InstalledDir: /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm
+Configuration file: /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../bin/icx.cfg
+Found candidate GCC installation: /usr/lib/gcc/i686-redhat-linux/8
+Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
+Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
+Candidate multilib: .@m64
+Candidate multilib: 32@m32
+Selected multilib: .@m64
+ (in-process)
+ "/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/clang" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model static -fveclib=SVML -mframe-pointer=none -menable-no-infs -menable-no-nans -fapprox-func -funsafe-math-optimizations -fno-signed-zeros -mreassociate -freciprocal-math -fdenormal-fp-math=preserve-sign,preserve-sign -ffp-contract=fast -fno-rounding-math -ffast-math -ffinite-math-only -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -mllvm -x86-enable-unaligned-vector-move=true -tune-cpu generic -debugger-tuning=gdb -v -fcoverage-compilation-dir=/tmp/ii/CMakeFiles/CMakeTmp -resource-dir /opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17 -dependency-file CMakeFiles/cmTC_0d8c1.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_0d8c1.dir/CMakeCCompilerABI.c.o -sys-header-deps -I/opt/intel/oneapi/tbb/2021.10.0/env/../include -I/opt/intel/oneapi/mpi/2021.10.0//include -I/opt/intel/oneapi/mkl/2023.2.0/include -I/opt/intel/oneapi/dpcpp-ct/2023.2.0/include -I/opt/intel/oneapi/dev-utilities/2021.10.0/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include -internal-isystem /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../compiler/include -internal-isystem /opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/tmp/ii/CMakeFiles/CMakeTmp -ferror-limit 19 -fheinous-gnu-extensions -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -D__GCC_HAVE_DWARF2_CFI_ASM=1 -fintel-compatibility -fintel-libirc-allowed -mllvm -disable-hir-generate-mkl-call -mllvm -loopopt=1 -floopopt-pipeline=light -mllvm -intel-abi-compatible=true -o CMakeFiles/cmTC_0d8c1.dir/CMakeCCompilerABI.c.o -x c /tmp/cmake/Modules/CMakeCCompilerABI.c
+clang -cc1 version 17.0.0 based upon LLVM 17.0.0git default target x86_64-unknown-linux-gnu
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include"
+ignoring nonexistent directory "/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/intel/oneapi/tbb/2021.10.0/env/../include
+ /opt/intel/oneapi/mpi/2021.10.0//include
+ /opt/intel/oneapi/mkl/2023.2.0/include
+ /opt/intel/oneapi/dpcpp-ct/2023.2.0/include
+ /opt/intel/oneapi/dev-utilities/2021.10.0/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../compiler/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include
+ /usr/local/include
+ /usr/include
+End of search list.
+[2/2] : && /opt/intel/oneapi/compiler/2023.2.1/linux/bin/icx -v -rdynamic CMakeFiles/cmTC_0d8c1.dir/CMakeCCompilerABI.c.o -o cmTC_0d8c1 && :
+Intel(R) oneAPI DPC++/C++ Compiler 2023.2.0 (2023.2.0.20230721)
+Target: x86_64-unknown-linux-gnu
+Thread model: posix
+InstalledDir: /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm
+Configuration file: /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../bin/icx.cfg
+Found candidate GCC installation: /usr/lib/gcc/i686-redhat-linux/8
+Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
+Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
+Candidate multilib: .@m64
+Candidate multilib: 32@m32
+Selected multilib: .@m64
+ "/usr/bin/ld" -export-dynamic --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_0d8c1 /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../lib -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/usr/lib/gcc/x86_64-redhat-linux/8 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../.. -L/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../lib -L/lib -L/usr/lib -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8 -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib -L/opt/intel/oneapi/mpi/2021.10.0//lib/release -L/opt/intel/oneapi/mpi/2021.10.0//lib -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64 -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib CMakeFiles/cmTC_0d8c1.dir/CMakeCCompilerABI.c.o -Bstatic -lsvml -Bdynamic -Bstatic -lirng -Bdynamic -Bstatic -limf -Bdynamic -lm -lgcc --as-needed -lgcc_s --no-as-needed -Bstatic -lirc -Bdynamic -ldl -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed -Bstatic -lirc_s -Bdynamic /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-12.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-12.2.0.input
new file mode 100644
index 0000000..134a8e9
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-GNU-12.2.0.input
@@ -0,0 +1,78 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_CXX_COMPILER_ABI=ELF
+CMAKE_CXX_COMPILER_AR=/usr/bin/gcc-ar-12
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=GNU
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=/usr/bin/gcc-ranlib-12
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=12.2.0
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_705d2
+[1/2] /usr/bin/c++ -v -o CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.o -c /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 12.2.0 (Debian 12.2.0-14)
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_705d2.dir/'
+ /usr/lib/gcc/x86_64-linux-gnu/12/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_705d2.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -o /tmp/ccn8sUGv.s
+GNU C++17 (Debian 12.2.0-14) version 12.2.0 (x86_64-linux-gnu)
+ compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.1-p1, MPC version 1.3.1, isl version isl-0.25-GMP
+
+warning: MPFR header version 4.1.1-p1 differs from library version 4.2.0.
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/12"
+ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/include/c++/12
+ /usr/include/x86_64-linux-gnu/c++/12
+ /usr/include/c++/12/backward
+ /usr/lib/gcc/x86_64-linux-gnu/12/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+End of search list.
+GNU C++17 (Debian 12.2.0-14) version 12.2.0 (x86_64-linux-gnu)
+ compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.1-p1, MPC version 1.3.1, isl version isl-0.25-GMP
+
+warning: MPFR header version 4.1.1-p1 differs from library version 4.2.0.
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: 62b090dbbefa50644117a3c13d47369a
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_705d2.dir/'
+ as -v --64 -o CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccn8sUGv.s
+GNU assembler version 2.40 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.40
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.'
+[2/2] : && /usr/bin/c++ -v -Wl,-v -rdynamic CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_705d2 && :
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 12.2.0 (Debian 12.2.0-14)
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_705d2' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_705d2.'
+ /usr/lib/gcc/x86_64-linux-gnu/12/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/12/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper -plugin-opt=-fresolution=/tmp/ccAJr9zl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_705d2 /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/12/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/12 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/12/../../.. -v CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/12/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crtn.o
+collect2 version 12.2.0
+/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/12/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper -plugin-opt=-fresolution=/tmp/ccAJr9zl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_705d2 /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/12/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/12 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/12/../../.. -v CMakeFiles/cmTC_705d2.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/12/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crtn.o
+GNU ld (GNU Binutils for Debian) 2.40
+COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_705d2' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_705d2.'
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-2021.10.0.20230609.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-2021.10.0.20230609.input
new file mode 100644
index 0000000..8a7ffda
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-Intel-2021.10.0.20230609.input
@@ -0,0 +1,44 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_CXX_COMPILER_ABI=ELF
+CMAKE_CXX_COMPILER_AR=
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=Intel
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=2021.10.0.20230609
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_b5439
+[1/2] /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/icpc -v -MD -MT CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -c /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp
+icpc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is deprecated and will be removed from product release in the second half of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended compiler moving forward. Please transition to use this compiler. Use '-diag-disable=10441' to disable this message.
+icpc version 2021.10.0 (gcc version 8.3.1 compatibility)
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/mcpcom --target_efi2 --lang=c++ -oCMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -_g -mP3OPT_inline_alloca -D__ICC=2021 -D__INTEL_COMPILER=2021 -D__INTEL_COMPILER_UPDATE=10 -D__PTRDIFF_TYPE__=long "-D__SIZE_TYPE__=unsigned long" -D__WCHAR_TYPE__=int "-D__WINT_TYPE__=unsigned int" "-D__INTMAX_TYPE__=long int" "-D__UINTMAX_TYPE__=long unsigned int" -D__GLIBCXX_TYPE_INT_N_0=__int128 -D__GLIBCXX_BITSIZE_INT_N_0=128 -D__LONG_MAX__=9223372036854775807L -D__QMSPP_ -D__OPTIMIZE__ -D__NO_MATH_INLINES -D__NO_STRING_INLINES -D__GNUC_GNU_INLINE__ -D__GNUG__=8 -D__GNUC__=8 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=1 -D__LP64__ -D_LP64 -D_GNU_SOURCE=1 -D__DEPRECATED=1 -D__GXX_WEAK__=1 -D__GXX_ABI_VERSION=1010 "-D__USER_LABEL_PREFIX__= " -D__REGISTER_PREFIX__= -D__INTEL_RTTI__ -D__EXCEPTIONS=1 -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -B -Dunix -Dlinux "-_Asystem(unix)" -D__ELF__ -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ "-_Acpu(x86_64)" "-_Amachine(x86_64)" -D__INTEL_COMPILER_BUILD_DATE=20230609 -D__INTEL_OFFLOAD -D__MMX__ -D__SSE__ -D__SSE_MATH__ -D__SSE2__ -D__SSE2_MATH__ -D__pentium4 -D__pentium4__ -D__tune_pentium4__ -_k -_8 -_l --has_new_stdarg_support -_a -_b --gnu_version=80301 -_W5 -p --bool -tused -x --openmp_simd --noopenmp_offload --dependency_file_name CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o.d --compile_dependencies --dependency_target_name CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o --multibyte_chars -mGLOB_diag_suppress_sys --system_preinclude /usr/include/stdc-predef.h -I/opt/intel/oneapi/tbb/2021.10.0/env/../include -I/opt/intel/oneapi/mpi/2021.10.0//include -I/opt/intel/oneapi/mkl/2023.2.0/include -I/opt/intel/oneapi/dpcpp-ct/2023.2.0/include -I/opt/intel/oneapi/dev-utilities/2021.10.0/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include --array_section --simd --simd_func --offload_mode=1 --offload_target_names=mic,MIC --offload_unique_string=icpc1590505640fLpnC2 --bool -mGLOB_em64t=TRUE -mP1OPT_version=2021.10.0-intel64 -mGLOB_diag_file=CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.diag -mGLOB_long_size_64 -mGLOB_routine_pointer_size_64 -mP1OPT_print_version=FALSE -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_gcc_version=831 "-mGLOB_options_string=-v -MD -MT CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -c" -mGLOB_cxx_limited_range=FALSE -mCG_extend_parms=FALSE -mGLOB_compiler_bin_directory=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64 -mGLOB_as_output_backup_file_name=/tmp/icpctw7qvGas_.s -mIPOPT_activate -mIPOPT_lite -mGLOB_uarch_tuning=0x0 -mGLOB_product_id_code=0x22006d90 -mCG_bnl_movbe=T -mP3OPT_use_mspp_call_convention -mP2OPT_subs_out_of_bound=FALSE -mP2OPT_disam_type_based_disam=2 -mP2OPT_disam_assume_ansi_c -mP2OPT_checked_disam_ansi_alias=TRUE -mGLOB_ansi_alias -mPGOPTI_value_profile_use=T -mP2OPT_il0_array_sections=TRUE -mGLOB_offload_mode=1 -mGLOB_offload_no_openmp=TRUE -mP2OPT_offload_unique_var_string=icpc1590505640fLpnC2 -mP2OPT_hlo_level=2 -mP2OPT_hlo -mP2OPT_hpo_rtt_control=0 -mIPOPT_args_in_regs=0 -mP2OPT_disam_assume_nonstd_intent_in=FALSE -mGLOB_imf_mapping_library=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/libiml_attr.so -mPGOPTI_gen_threadsafe_level=0 -mIPOPT_lto_object_enabled -mIPOPT_lto_object_value=1 -mIPOPT_obj_output_file_name=CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -mIPOPT_whole_archive_fixup_file_name=/tmp/icpcwarch1PUgQr -mGLOB_linker_version=2.30 -mGLOB_linker=ld -mGLOB_driver_tempfile_name=/tmp/icpctempfiletJgmwk -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_async_unwind_tables=TRUE -mGLOB_obj_output_file=CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_C_PLUS_PLUS -mP1OPT_source_file_name=/tmp/cmake/Modules/CMakeCXXCompilerABI.cpp -mP1OPT_full_source_file_name=/tmp/cmake/Modules/CMakeCXXCompilerABI.cpp -mGLOB_eh_linux /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/intel/oneapi/tbb/2021.10.0/env/../include
+ /opt/intel/oneapi/mpi/2021.10.0//include
+ /opt/intel/oneapi/mkl/2023.2.0/include
+ /opt/intel/oneapi/dpcpp-ct/2023.2.0/include
+ /opt/intel/oneapi/dev-utilities/2021.10.0/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/intel64
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/icc
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include
+ /usr/include/c++/8
+ /usr/include/c++/8/x86_64-redhat-linux
+ /usr/include/c++/8/backward
+ /usr/local/include
+ /usr/lib/gcc/x86_64-redhat-linux/8/include
+ /usr/include/
+ /usr/include
+End of search list.
+[2/2] : && /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/icpc -v -rdynamic CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_b5439 && :
+icpc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is deprecated and will be removed from product release in the second half of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended compiler moving forward. Please transition to use this compiler. Use '-diag-disable=10441' to disable this message.
+icpc version 2021.10.0 (gcc version 8.3.1 compatibility)
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/mcpcom -mGLOB_em64t=TRUE -mP1OPT_version=2021.10.0-intel64 -mGLOB_diag_file=CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.diag -mGLOB_long_size_64 -mGLOB_routine_pointer_size_64 -mP1OPT_print_version=FALSE -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_gcc_version=831 "-mGLOB_options_string=-v -rdynamic -o cmTC_b5439" -mGLOB_cxx_limited_range=FALSE -mCG_extend_parms=FALSE -mGLOB_compiler_bin_directory=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64 -mGLOB_as_output_backup_file_name=/tmp/icpcN3pftvas_.s -mGLOB_dashboard_use_source_name -mIPOPT_activate -mGLOB_product_id_code=0x22006d90 -mP3OPT_use_mspp_call_convention -mP2OPT_subs_out_of_bound=FALSE -mP2OPT_disam_type_based_disam=2 -mP2OPT_disam_assume_ansi_c -mP2OPT_checked_disam_ansi_alias=TRUE -mGLOB_ansi_alias -mPGOPTI_value_profile_use=T -mGLOB_opt_report_use_source_name -mP2OPT_il0_array_sections=TRUE -mGLOB_offload_mode=1 -mGLOB_offload_no_openmp=TRUE -mP2OPT_offload_unique_var_string=icpc0800981546zDEBac -mP2OPT_hlo -mP2OPT_hpo_rtt_control=0 -mIPOPT_args_in_regs=0 -mP2OPT_disam_assume_nonstd_intent_in=FALSE -mGLOB_imf_mapping_library=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/libiml_attr.so -mPGOPTI_gen_threadsafe_level=0 -mIPOPT_link -mIPOPT_ipo_activate -mIPOPT_mo_activate -mIPOPT_source_files_list=/tmp/icpcslisbcBQoJ -mIPOPT_mo_global_data -mIPOPT_link_script_file=/tmp/icpcscript9dg2qC "-mIPOPT_cmdline_link="/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o" "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o" "/usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o" "-export-dynamic" "--eh-frame-hdr" "--build-id" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-m" "elf_x86_64" "-o" "cmTC_b5439" "-L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8" "-L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/release" "-L/opt/intel/oneapi/mpi/2021.10.0//lib" "-L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/lib" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/lib/intel64_lin" "-L/usr/lib/gcc/x86_64-redhat-linux/8/" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/" "-L/lib/../lib64" "-L/lib/../lib64/" "-L/usr/lib/../lib64" "-L/usr/lib/../lib64/" "-L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8/" "-L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib/" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/release/" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/" "-L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../" "-L/lib64" "-L/lib/" "-L/usr/lib64" "-L/usr/lib" "CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o" "-Bdynamic" "-Bstatic" "-limf" "-lsvml" "-lirng" "-Bdynamic" "-lstdc++" "-lm" "-Bstatic" "-lipgo" "-ldecimal" "--as-needed" "-Bdynamic" "-lcilkrts" "--no-as-needed" "-lstdc++" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-Bstatic" "-lirc" "-lsvml" "-Bdynamic" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-Bstatic" "-lirc_s" "-Bdynamic" "-ldl" "-lc" "/usr/lib/gcc/x86_64-redhat-linux/8/crtend.o" "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o"" -mIPOPT_il_in_obj -mIPOPT_ipo_activate_warn=FALSE -mIPOPT_obj_output_file_name=/tmp/ipo_icpcZow8bp.o -mIPOPT_whole_archive_fixup_file_name=/tmp/icpcwarchPRGCzh -mGLOB_linker_version=2.30 -mGLOB_linker=ld -mGLOB_driver_tempfile_name=/tmp/icpctempfileTAaNDa -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_async_unwind_tables=TRUE -mGLOB_obj_output_file=/tmp/ipo_icpcZow8bp.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE -mP1OPT_source_file_name=ipo_out.c CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -mIPOPT_object_files=T -mIPOPT_assembly_files=/tmp/icpcalisv59hgb -mIPOPT_generated_tempfiles=/tmp/icpcelis1IXoi4 -mIPOPT_embedded_object_base_name=/tmp/icpceobj1VZwkX -mIPOPT_cmdline_link_new_name=/tmp/icpcllisFeaGmQ
+ld /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -export-dynamic --eh-frame-hdr --build-id -dynamic-linker /lib64/ld-linux-x86-64.so.2 -m elf_x86_64 -o cmTC_b5439 -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8 -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib -L/opt/intel/oneapi/mpi/2021.10.0//lib/release -L/opt/intel/oneapi/mpi/2021.10.0//lib -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64 -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib -L/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/lib/intel64_lin -L/usr/lib/gcc/x86_64-redhat-linux/8/ -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8/ -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib/ -L/opt/intel/oneapi/mpi/2021.10.0//lib/release/ -L/opt/intel/oneapi/mpi/2021.10.0//lib/ -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/ -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/ -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/ -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib CMakeFiles/cmTC_b5439.dir/CMakeCXXCompilerABI.cpp.o -Bdynamic -Bstatic -limf -lsvml -lirng -Bdynamic -lstdc++ -lm -Bstatic -lipgo -ldecimal --as-needed -Bdynamic -lcilkrts --no-as-needed -lstdc++ -lgcc --as-needed -lgcc_s --no-as-needed -Bstatic -lirc -lsvml -Bdynamic -lc -lgcc --as-needed -lgcc_s --no-as-needed -Bstatic -lirc_s -Bdynamic -ldl -lc /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o
diff --git a/Tests/RunCMake/ParseImplicitData/linux-CXX-IntelLLVM-2023.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-CXX-IntelLLVM-2023.2.0.input
new file mode 100644
index 0000000..8713d6d
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-CXX-IntelLLVM-2023.2.0.input
@@ -0,0 +1,62 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_CXX_COMPILER_ABI=ELF
+CMAKE_CXX_COMPILER_AR=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ar
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=IntelLLVM
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ranlib
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=2023.2.0
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_05be3
+[1/2] /opt/intel/oneapi/compiler/2023.2.1/linux/bin/icpx -v -MD -MT CMakeFiles/cmTC_05be3.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_05be3.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_05be3.dir/CMakeCXXCompilerABI.cpp.o -c /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp
+Intel(R) oneAPI DPC++/C++ Compiler 2023.2.0 (2023.2.0.20230721)
+Target: x86_64-unknown-linux-gnu
+Thread model: posix
+InstalledDir: /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm
+Configuration file: /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../bin/icpx.cfg
+Found candidate GCC installation: /usr/lib/gcc/i686-redhat-linux/8
+Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
+Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
+Candidate multilib: .@m64
+Candidate multilib: 32@m32
+Selected multilib: .@m64
+ (in-process)
+ "/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/clang" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model static -fveclib=SVML -mframe-pointer=none -menable-no-infs -menable-no-nans -fapprox-func -funsafe-math-optimizations -fno-signed-zeros -mreassociate -freciprocal-math -fdenormal-fp-math=preserve-sign,preserve-sign -ffp-contract=fast -fno-rounding-math -ffast-math -ffinite-math-only -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -mllvm -x86-enable-unaligned-vector-move=true -tune-cpu generic -debugger-tuning=gdb -v -fcoverage-compilation-dir=/tmp/ii/CMakeFiles/CMakeTmp -resource-dir /opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17 -dependency-file CMakeFiles/cmTC_05be3.dir/CMakeCXXCompilerABI.cpp.o.d -MT CMakeFiles/cmTC_05be3.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -I/opt/intel/oneapi/tbb/2021.10.0/env/../include -I/opt/intel/oneapi/mpi/2021.10.0//include -I/opt/intel/oneapi/mkl/2023.2.0/include -I/opt/intel/oneapi/dpcpp-ct/2023.2.0/include -I/opt/intel/oneapi/dev-utilities/2021.10.0/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include -internal-isystem /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../compiler/include -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8 -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/x86_64-redhat-linux -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/backward -internal-isystem /opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -fdeprecated-macro -fdebug-compilation-dir=/tmp/ii/CMakeFiles/CMakeTmp -ferror-limit 19 -fheinous-gnu-extensions -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -vectorize-loops -vectorize-slp -D__GCC_HAVE_DWARF2_CFI_ASM=1 -fintel-compatibility -fintel-libirc-allowed -mllvm -disable-hir-generate-mkl-call -mllvm -loopopt=1 -floopopt-pipeline=light -mllvm -intel-abi-compatible=true -o CMakeFiles/cmTC_05be3.dir/CMakeCXXCompilerABI.cpp.o -x c++ /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp
+clang -cc1 version 17.0.0 based upon LLVM 17.0.0git default target x86_64-unknown-linux-gnu
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include"
+ignoring nonexistent directory "/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/intel/oneapi/tbb/2021.10.0/env/../include
+ /opt/intel/oneapi/mpi/2021.10.0//include
+ /opt/intel/oneapi/mkl/2023.2.0/include
+ /opt/intel/oneapi/dpcpp-ct/2023.2.0/include
+ /opt/intel/oneapi/dev-utilities/2021.10.0/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../compiler/include
+ /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8
+ /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/x86_64-redhat-linux
+ /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/backward
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include
+ /usr/local/include
+ /usr/include
+End of search list.
+[2/2] : && /opt/intel/oneapi/compiler/2023.2.1/linux/bin/icpx -v -rdynamic CMakeFiles/cmTC_05be3.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_05be3 && :
+Intel(R) oneAPI DPC++/C++ Compiler 2023.2.0 (2023.2.0.20230721)
+Target: x86_64-unknown-linux-gnu
+Thread model: posix
+InstalledDir: /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm
+Configuration file: /opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../bin/icpx.cfg
+Found candidate GCC installation: /usr/lib/gcc/i686-redhat-linux/8
+Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
+Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/8
+Candidate multilib: .@m64
+Candidate multilib: 32@m32
+Selected multilib: .@m64
+ "/usr/bin/ld" -export-dynamic --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_05be3 /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../lib -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/usr/lib/gcc/x86_64-redhat-linux/8 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../.. -L/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/../lib -L/lib -L/usr/lib -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8 -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib -L/opt/intel/oneapi/mpi/2021.10.0//lib/release -L/opt/intel/oneapi/mpi/2021.10.0//lib -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64 -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib CMakeFiles/cmTC_05be3.dir/CMakeCXXCompilerABI.cpp.o -Bstatic -lsvml -Bdynamic -Bstatic -lirng -Bdynamic -lstdc++ -Bstatic -limf -Bdynamic -lm -lgcc_s -lgcc -Bstatic -lirc -Bdynamic -ldl -lgcc_s -lgcc -lc -lgcc_s -lgcc -Bstatic -lirc_s -Bdynamic /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-12.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-12.2.0.input
new file mode 100644
index 0000000..ed4ddcb
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-GNU-12.2.0.input
@@ -0,0 +1,93 @@
+CMAKE_LANG=Fortran
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_Fortran_COMPILER_ABI=
+CMAKE_Fortran_COMPILER_AR=/usr/bin/gcc-ar-12
+CMAKE_Fortran_COMPILER_ARCHITECTURE_ID=
+CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_Fortran_COMPILER_ID=GNU
+CMAKE_Fortran_COMPILER_LAUNCHER=
+CMAKE_Fortran_COMPILER_LOADED=1
+CMAKE_Fortran_COMPILER_RANLIB=/usr/bin/gcc-ranlib-12
+CMAKE_Fortran_COMPILER_TARGET=
+CMAKE_Fortran_COMPILER_VERSION=12.2.0
+CMAKE_Fortran_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_62ee5
+[1/4] /usr/bin/gfortran -cpp -v -E /tmp/cmake/Modules/CMakeFortranCompilerABI.F -o CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f && /tmp/cmake-build/bin/cmake -E cmake_ninja_depends --tdi=CMakeFiles/cmTC_62ee5.dir/FortranDependInfo.json --lang=Fortran --src=CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f --out=CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f --dep=CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f.d --obj=CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o --ddi=CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o.ddi
+Using built-in specs.
+COLLECT_GCC=/usr/bin/gfortran
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 12.2.0 (Debian 12.2.0-14)
+COLLECT_GCC_OPTIONS='-cpp' '-v' '-E' '-o' 'CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62ee5.dir/'
+ /usr/lib/gcc/x86_64-linux-gnu/12/f951 /tmp/cmake/Modules/CMakeFortranCompilerABI.F -ffixed-form -cpp=/tmp/ccJUkJqq.f90 -E -quiet -v -imultiarch x86_64-linux-gnu /tmp/cmake/Modules/CMakeFortranCompilerABI.F -o CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f -dumpdir CMakeFiles/cmTC_62ee5.dir/ -dumpbase CMakeFortranCompilerABI.F-pp.F -dumpbase-ext .F -mtune=generic -march=x86-64 -fsyntax-only
+ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/include-fixed"
+ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /usr/lib/gcc/x86_64-linux-gnu/12/include
+ /usr/local/include
+ /usr/include/x86_64-linux-gnu
+ /usr/include
+End of search list.
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-cpp' '-v' '-E' '-o' 'CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.'
+[2/4] /tmp/cmake-build/bin/cmake -E cmake_ninja_dyndep --tdi=CMakeFiles/cmTC_62ee5.dir/FortranDependInfo.json --lang=Fortran --dd=CMakeFiles/cmTC_62ee5.dir/Fortran.dd @CMakeFiles/cmTC_62ee5.dir/Fortran.dd.rsp
+[3/4] /usr/bin/gfortran -I/tmp/cmake/Modules -v -fpreprocessed -c CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f -o CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o
+Using built-in specs.
+COLLECT_GCC=/usr/bin/gfortran
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 12.2.0 (Debian 12.2.0-14)
+COLLECT_GCC_OPTIONS='-I' '/tmp/cmake/Modules' '-v' '-fpreprocessed' '-c' '-o' 'CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62ee5.dir/'
+ /usr/lib/gcc/x86_64-linux-gnu/12/f951 CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F-pp.f -ffixed-form -I /tmp/cmake/Modules -quiet -dumpdir CMakeFiles/cmTC_62ee5.dir/ -dumpbase CMakeFortranCompilerABI.F.f -dumpbase-ext .f -mtune=generic -march=x86-64 -version -fpreprocessed -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/12/finclude -fpre-include=/usr/include/finclude/x86_64-linux-gnu/math-vector-fortran.h -o /tmp/ccj0kDCS.s
+GNU Fortran (Debian 12.2.0-14) version 12.2.0 (x86_64-linux-gnu)
+ compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.1-p1, MPC version 1.3.1, isl version isl-0.25-GMP
+
+warning: MPFR header version 4.1.1-p1 differs from library version 4.2.0.
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+GNU Fortran2008 (Debian 12.2.0-14) version 12.2.0 (x86_64-linux-gnu)
+ compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.1-p1, MPC version 1.3.1, isl version isl-0.25-GMP
+
+warning: MPFR header version 4.1.1-p1 differs from library version 4.2.0.
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+COLLECT_GCC_OPTIONS='-I' '/tmp/cmake/Modules' '-v' '-fpreprocessed' '-c' '-o' 'CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62ee5.dir/'
+ as -v -I /tmp/cmake/Modules --64 -o CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o /tmp/ccj0kDCS.s
+GNU assembler version 2.40 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.40
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-I' '/tmp/cmake/Modules' '-v' '-fpreprocessed' '-c' '-o' 'CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.'
+[4/4] : && /usr/bin/gfortran -v -Wl,-v CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o -o cmTC_62ee5 && :
+Driving: /usr/bin/gfortran -v -Wl,-v CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o -o cmTC_62ee5 -l gfortran -l m -shared-libgcc
+Using built-in specs.
+COLLECT_GCC=/usr/bin/gfortran
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-14' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-bTRWOB/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 12.2.0 (Debian 12.2.0-14)
+Reading specs from /usr/lib/gcc/x86_64-linux-gnu/12/libgfortran.spec
+rename spec lib to liborig
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_62ee5' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_62ee5-'
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/12/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/12/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_62ee5' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_62ee5.'
+ /usr/lib/gcc/x86_64-linux-gnu/12/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/12/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper -plugin-opt=-fresolution=/tmp/ccGtuZbF.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_62ee5 /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/12/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/12 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/12/../../.. -v CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/12/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crtn.o
+collect2 version 12.2.0
+/usr/bin/ld -plugin /usr/lib/gcc/x86_64-linux-gnu/12/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper -plugin-opt=-fresolution=/tmp/ccGtuZbF.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_62ee5 /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/12/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/12 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/12/../../.. -v CMakeFiles/cmTC_62ee5.dir/CMakeFortranCompilerABI.F.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/12/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/crtn.o
+GNU ld (GNU Binutils for Debian) 2.40
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_62ee5' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_62ee5.'
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-Intel-2021.10.0.20230609.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-Intel-2021.10.0.20230609.input
new file mode 100644
index 0000000..7379c84
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-Intel-2021.10.0.20230609.input
@@ -0,0 +1,63 @@
+CMAKE_LANG=Fortran
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_Fortran_COMPILER_ABI=ELF
+CMAKE_Fortran_COMPILER_AR=
+CMAKE_Fortran_COMPILER_ARCHITECTURE_ID=
+CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_Fortran_COMPILER_ID=Intel
+CMAKE_Fortran_COMPILER_LAUNCHER=
+CMAKE_Fortran_COMPILER_LOADED=1
+CMAKE_Fortran_COMPILER_RANLIB=
+CMAKE_Fortran_COMPILER_TARGET=
+CMAKE_Fortran_COMPILER_VERSION=2021.10.0.20230609
+CMAKE_Fortran_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_9370c
+[1/4] /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/ifort -fpp -v -P /tmp/cmake/Modules/CMakeFortranCompilerABI.F -o CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f && /tmp/cmake-build/bin/cmake -E cmake_ninja_depends --tdi=CMakeFiles/cmTC_9370c.dir/FortranDependInfo.json --lang=Fortran --src=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f --out=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f --dep=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f.d --obj=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o --ddi=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o.ddi
+ifort version 2021.10.0
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/fpp -D__INTEL_COMPILER=2021 -D__INTEL_COMPILER_UPDATE=10 -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -Dunix -Dlinux -D__ELF__ -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ -D__INTEL_COMPILER_BUILD_DATE=20230609 -D__INTEL_OFFLOAD -D__MMX__ -D__SSE__ -D__SSE_MATH__ -D__SSE2__ -D__SSE2_MATH__ -D__pentium4 -D__pentium4__ -D__tune_pentium4__ -I. -I/opt/intel/oneapi/tbb/2021.10.0/env/../include -I/opt/intel/oneapi/mpi/2021.10.0//include -I/opt/intel/oneapi/mkl/2023.2.0/include -I/opt/intel/oneapi/dpcpp-ct/2023.2.0/include -I/opt/intel/oneapi/dev-utilities/2021.10.0/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/intel64 -I/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/icc -I/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include -I/usr/local/include -I/usr/lib/gcc/x86_64-redhat-linux/8/include -I/usr/include/ -I/usr/include -fixed -4Ycpp -4Ncvf -f_com=yes /tmp/cmake/Modules/CMakeFortranCompilerABI.F CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f
+#include "..." search starts here:
+#include <...> search starts here:
+ .
+ /opt/intel/oneapi/tbb/2021.10.0/env/../include
+ /opt/intel/oneapi/mpi/2021.10.0//include
+ /opt/intel/oneapi/mkl/2023.2.0/include
+ /opt/intel/oneapi/dpcpp-ct/2023.2.0/include
+ /opt/intel/oneapi/dev-utilities/2021.10.0/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/intel64
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/icc
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include
+ /usr/local/include
+ /usr/lib/gcc/x86_64-redhat-linux/8/include
+ /usr/include/
+ /usr/include
+End of search list.
+[2/4] /tmp/cmake-build/bin/cmake -E cmake_ninja_dyndep --tdi=CMakeFiles/cmTC_9370c.dir/FortranDependInfo.json --lang=Fortran --dd=CMakeFiles/cmTC_9370c.dir/Fortran.dd @CMakeFiles/cmTC_9370c.dir/Fortran.dd.rsp
+[3/4] /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/ifort -I/tmp/cmake/Modules -v -c CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f -o CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o
+ifort version 2021.10.0
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/fortcom -D__INTEL_COMPILER=2021 -D__INTEL_COMPILER_UPDATE=10 -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -Dunix -Dlinux -D__ELF__ -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ -D__INTEL_COMPILER_BUILD_DATE=20230609 -D__INTEL_OFFLOAD -D__MMX__ -D__SSE__ -D__SSE_MATH__ -D__SSE2__ -D__SSE2_MATH__ -D__pentium4 -D__pentium4__ -D__tune_pentium4__ -ICMakeFiles/cmTC_9370c.dir -I. -I/tmp/cmake/Modules -I/opt/intel/oneapi/tbb/2021.10.0/env/../include -I/opt/intel/oneapi/mpi/2021.10.0//include -I/opt/intel/oneapi/mkl/2023.2.0/include -I/opt/intel/oneapi/dpcpp-ct/2023.2.0/include -I/opt/intel/oneapi/dev-utilities/2021.10.0/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/intel64 -I/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/icc -I/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include -I/usr/local/include -I/usr/lib/gcc/x86_64-redhat-linux/8/include -I/usr/include/ -I/usr/include -omp_simd -O2 "-reentrancy threaded" -simd -offload_host -mGLOB_em64t=TRUE -mP1OPT_version=2021.10.0-intel64 -mGLOB_diag_file=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.diag -mGLOB_long_size_64 -mGLOB_routine_pointer_size_64 -mGLOB_source_language=GLOB_SOURCE_LANGUAGE_F90 -mP2OPT_static_promotion -mGLOB_pack_sort_init_list -mP1OPT_print_version=FALSE -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_gcc_version=831 "-mGLOB_options_string=-I/tmp/cmake/Modules -v -c -o CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o" -mGLOB_cxx_limited_range=FALSE -mCG_extend_parms=FALSE -mGLOB_compiler_bin_directory=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64 -mGLOB_as_output_backup_file_name=/tmp/ifortlMfujias_.s -mIPOPT_activate -mIPOPT_lite -mGLOB_uarch_tuning=0x0 -mGLOB_product_id_code=0x22006d91 -mCG_bnl_movbe=T -mP3OPT_use_mspp_call_convention -mP2OPT_subs_out_of_bound=FALSE -mP2OPT_disam_type_based_disam=2 -mGLOB_ansi_alias -mPGOPTI_value_profile_use=T -mGLOB_offload_mode=1 -mGLOB_offload_no_openmp=TRUE -mP2OPT_offload_unique_var_string=ifort0602277341Xeklvz -mP2OPT_hlo_level=2 -mP2OPT_hlo -mP2OPT_hpo_rtt_control=0 -mIPOPT_args_in_regs=0 -mP2OPT_disam_assume_nonstd_intent_in=FALSE -mGLOB_imf_mapping_library=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/libiml_attr.so -mPGOPTI_gen_threadsafe_level=0 -mIPOPT_lto_object_enabled -mIPOPT_lto_object_value=1 -mIPOPT_obj_output_file_name=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o -mIPOPT_whole_archive_fixup_file_name=/tmp/ifortwarchdJu6U6 -mGLOB_linker_version=2.30 -mGLOB_linker=ld -mGLOB_driver_tempfile_name=/tmp/iforttempfile9xZze1 -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_async_unwind_tables=TRUE -mGLOB_obj_output_file=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_FORTRAN -mP1OPT_source_file_name=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f -mP1OPT_full_source_file_name=/tmp/ii/CMakeFiles/CMakeTmp/CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f -mP2OPT_symtab_type_copy=true CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F-pp.f
+#include "..." search starts here:
+#include <...> search starts here:
+ CMakeFiles/cmTC_9370c.dir
+ .
+ /tmp/cmake/Modules
+ /opt/intel/oneapi/tbb/2021.10.0/env/../include
+ /opt/intel/oneapi/mpi/2021.10.0//include
+ /opt/intel/oneapi/mkl/2023.2.0/include
+ /opt/intel/oneapi/dpcpp-ct/2023.2.0/include
+ /opt/intel/oneapi/dev-utilities/2021.10.0/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/intel64
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include/icc
+ /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/include
+ /usr/local/include
+ /usr/lib/gcc/x86_64-redhat-linux/8/include
+ /usr/include/
+ /usr/include
+End of search list.
+[4/4] : && /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/ifort -v CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o -o cmTC_9370c && :
+ifort version 2021.10.0
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/fortcom -mGLOB_em64t=TRUE -mP1OPT_version=2021.10.0-intel64 -mGLOB_diag_file=CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.diag -mGLOB_long_size_64 -mGLOB_routine_pointer_size_64 -mGLOB_source_language=GLOB_SOURCE_LANGUAGE_F90 -mP2OPT_static_promotion -mGLOB_pack_sort_init_list -mP1OPT_print_version=FALSE -mCG_use_gas_got_workaround=F -mP2OPT_align_option_used=TRUE -mGLOB_gcc_version=831 "-mGLOB_options_string=-v -o cmTC_9370c" -mGLOB_cxx_limited_range=FALSE -mCG_extend_parms=FALSE -mGLOB_compiler_bin_directory=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64 -mGLOB_as_output_backup_file_name=/tmp/ifortdtZJJpas_.s -mGLOB_dashboard_use_source_name -mIPOPT_activate -mGLOB_product_id_code=0x22006d91 -mP3OPT_use_mspp_call_convention -mP2OPT_subs_out_of_bound=FALSE -mP2OPT_disam_type_based_disam=2 -mGLOB_ansi_alias -mPGOPTI_value_profile_use=T -mGLOB_opt_report_use_source_name -mGLOB_offload_mode=1 -mGLOB_offload_no_openmp=TRUE -mP2OPT_offload_unique_var_string=ifort1973007351zLXgMH -mP2OPT_hlo -mP2OPT_hpo_rtt_control=0 -mIPOPT_args_in_regs=0 -mP2OPT_disam_assume_nonstd_intent_in=FALSE -mGLOB_imf_mapping_library=/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/libiml_attr.so -mPGOPTI_gen_threadsafe_level=0 -mIPOPT_link -mIPOPT_ipo_activate -mIPOPT_mo_activate -mIPOPT_source_files_list=/tmp/ifortslisxGkpnA -mIPOPT_mo_global_data -mIPOPT_link_script_file=/tmp/ifortscript7sRy3u "-mIPOPT_cmdline_link="/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o" "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o" "/usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o" "--eh-frame-hdr" "--build-id" "-dynamic-linker" "/lib64/ld-linux-x86-64.so.2" "-m" "elf_x86_64" "-plugin" "/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/../../lib/icx-lto.so" "-o" "cmTC_9370c" "/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/lib/intel64_lin/for_main.o" "-L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8" "-L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/release" "-L/opt/intel/oneapi/mpi/2021.10.0//lib" "-L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/lib" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/lib/intel64_lin" "-L/usr/lib/gcc/x86_64-redhat-linux/8/" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/" "-L/lib/../lib64" "-L/lib/../lib64/" "-L/usr/lib/../lib64" "-L/usr/lib/../lib64/" "-L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8/" "-L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib/" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/release/" "-L/opt/intel/oneapi/mpi/2021.10.0//lib/" "-L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/" "-L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/" "-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../" "-L/lib64" "-L/lib/" "-L/usr/lib64" "-L/usr/lib" "CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o" "-Bdynamic" "-Bstatic" "-lifport" "-lifcoremt" "-limf" "-lsvml" "-Bdynamic" "-lm" "-Bstatic" "-lipgo" "-lirc" "-Bdynamic" "-lpthread" "-Bstatic" "-lsvml" "-Bdynamic" "-lc" "-lgcc" "-lgcc_s" "-Bstatic" "-lirc_s" "-Bdynamic" "-ldl" "-lc" "/usr/lib/gcc/x86_64-redhat-linux/8/crtend.o" "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o"" -mIPOPT_il_in_obj -mIPOPT_ipo_activate_warn=FALSE -mIPOPT_obj_output_file_name=/tmp/ipo_ifort9BUTi6.o -mIPOPT_whole_archive_fixup_file_name=/tmp/ifortwarchVuR57e -mGLOB_linker_version=2.30 -mGLOB_linker=ld -mGLOB_driver_tempfile_name=/tmp/iforttempfile1X5gQ9 -mP3OPT_asm_target=P3OPT_ASM_TARGET_GAS -mGLOB_async_unwind_tables=TRUE -mGLOB_obj_output_file=/tmp/ipo_ifort9BUTi6.o -mGLOB_source_dialect=GLOB_SOURCE_DIALECT_NONE -mP1OPT_source_file_name=ipo_out.f -mP2OPT_symtab_type_copy=true CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o -mIPOPT_object_files=T -mIPOPT_assembly_files=/tmp/ifortalisTIqZEV -mIPOPT_generated_tempfiles=/tmp/ifortelisvL73kQ -mIPOPT_embedded_object_base_name=/tmp/iforteobjx0090K -mIPOPT_cmdline_link_new_name=/tmp/ifortllisH21gHF
+ld /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o --eh-frame-hdr --build-id -dynamic-linker /lib64/ld-linux-x86-64.so.2 -m elf_x86_64 -plugin /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../bin/intel64/../../lib/icx-lto.so -o cmTC_9370c /opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/lib/intel64_lin/for_main.o -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8 -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib -L/opt/intel/oneapi/mpi/2021.10.0//lib/release -L/opt/intel/oneapi/mpi/2021.10.0//lib -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64 -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib -L/opt/intel/oneapi/compiler/2023.2.1/linux/bin/intel64/../../compiler/lib/intel64_lin -L/usr/lib/gcc/x86_64-redhat-linux/8/ -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8/ -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib/ -L/opt/intel/oneapi/mpi/2021.10.0//lib/release/ -L/opt/intel/oneapi/mpi/2021.10.0//lib/ -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/ -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/ -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/ -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib CMakeFiles/cmTC_9370c.dir/CMakeFortranCompilerABI.F.o -Bdynamic -Bstatic -lifport -lifcoremt -limf -lsvml -Bdynamic -lm -Bstatic -lipgo -lirc -Bdynamic -lpthread -Bstatic -lsvml -Bdynamic -lc -lgcc -lgcc_s -Bstatic -lirc_s -Bdynamic -ldl -lc /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o
diff --git a/Tests/RunCMake/ParseImplicitData/linux-Fortran-IntelLLVM-2023.2.0.input b/Tests/RunCMake/ParseImplicitData/linux-Fortran-IntelLLVM-2023.2.0.input
new file mode 100644
index 0000000..53c7e53
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/linux-Fortran-IntelLLVM-2023.2.0.input
@@ -0,0 +1,58 @@
+CMAKE_LANG=Fortran
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_Fortran_COMPILER_ABI=ELF
+CMAKE_Fortran_COMPILER_AR=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ar
+CMAKE_Fortran_COMPILER_ARCHITECTURE_ID=
+CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_Fortran_COMPILER_ID=IntelLLVM
+CMAKE_Fortran_COMPILER_LAUNCHER=
+CMAKE_Fortran_COMPILER_LOADED=1
+CMAKE_Fortran_COMPILER_RANLIB=/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/llvm-ranlib
+CMAKE_Fortran_COMPILER_TARGET=
+CMAKE_Fortran_COMPILER_VERSION=2023.2.0
+CMAKE_Fortran_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/.gitlab/ninja -v cmTC_59e9e
+[1/4] /opt/intel/oneapi/compiler/2023.2.1/linux/bin/ifx -fpp -v -P /tmp/cmake/Modules/CMakeFortranCompilerABI.F -o CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F-pp.f && /tmp/cmake-build/bin/cmake -E cmake_ninja_depends --tdi=CMakeFiles/cmTC_59e9e.dir/FortranDependInfo.json --lang=Fortran --src=CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F-pp.f --out=CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F-pp.f --dep=CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F-pp.f.d --obj=CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F.o --ddi=CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F.o.ddi
+ifx version 2023.2.0
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin/fpp -D__INTEL_LLVM_COMPILER=20230200 -D__INTEL_LLVM_COMPILER_UPDATE=0 -D__INTEL_COMPILER=20230200 -D__INTEL_COMPILER_UPDATE=0 -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -Dunix -Dlinux -D__ELF__ -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ -D__INTEL_COMPILER_BUILD_DATE=20230721 -I. -I/opt/intel/oneapi/tbb/2021.10.0/env/../include -I/opt/intel/oneapi/mpi/2021.10.0//include -I/opt/intel/oneapi/mkl/2023.2.0/include -I/opt/intel/oneapi/dpcpp-ct/2023.2.0/include -I/opt/intel/oneapi/dev-utilities/2021.10.0/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/intel64 -I/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include -I/usr/local/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include -I/usr/include -fixed -4Ycpp -4Ncvf -f_com=yes /tmp/cmake/Modules/CMakeFortranCompilerABI.F CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F-pp.f
+#include "..." search starts here:
+#include <...> search starts here:
+ .
+ /opt/intel/oneapi/tbb/2021.10.0/env/../include
+ /opt/intel/oneapi/mpi/2021.10.0//include
+ /opt/intel/oneapi/mkl/2023.2.0/include
+ /opt/intel/oneapi/dpcpp-ct/2023.2.0/include
+ /opt/intel/oneapi/dev-utilities/2021.10.0/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/intel64
+ /opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include
+ /usr/local/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include
+ /usr/include
+End of search list.
+[2/4] /tmp/cmake-build/bin/cmake -E cmake_ninja_dyndep --tdi=CMakeFiles/cmTC_59e9e.dir/FortranDependInfo.json --lang=Fortran --dd=CMakeFiles/cmTC_59e9e.dir/Fortran.dd @CMakeFiles/cmTC_59e9e.dir/Fortran.dd.rsp
+[3/4] /opt/intel/oneapi/compiler/2023.2.1/linux/bin/ifx -I/tmp/cmake/Modules -v -c CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F-pp.f -o CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F.o
+ifx version 2023.2.0
+/opt/intel/oneapi/compiler/2023.2.1/linux/bin-llvm/xfortcom -triple x86_64-unknown-linux-gnu -emit-obj "-verify nomodule" -main-file-name CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F-pp.f -mllvm --relocation-model=static "-options-string -I/tmp/cmake/Modules -v -c -o CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F.o " -mframe-pointer=none -omp_simd -target-cpu x86-64 -target-linker-version 2.30 -fveclib=SVML -mllvm -loopopt=1 -floopopt-pipeline=light -mllvm -disable-hir-generate-mkl-call -mllvm -paropt=11 -fintel-libirc-allowed -o CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F.o -D__INTEL_LLVM_COMPILER=20230200 -D__INTEL_LLVM_COMPILER_UPDATE=0 -D__unix__ -D__unix -D__linux__ -D__linux -D__gnu_linux__ -Dunix -Dlinux -D__ELF__ -D__x86_64 -D__x86_64__ -D__amd64 -D__amd64__ -D__INTEL_COMPILER_BUILD_DATE=20230721 -D__INTEL_COMPILER=20230200 -D__INTEL_COMPILER_UPDATE=0 -ICMakeFiles/cmTC_59e9e.dir -I. -I/tmp/cmake/Modules -I/opt/intel/oneapi/tbb/2021.10.0/env/../include -I/opt/intel/oneapi/mpi/2021.10.0//include -I/opt/intel/oneapi/mkl/2023.2.0/include -I/opt/intel/oneapi/dpcpp-ct/2023.2.0/include -I/opt/intel/oneapi/dev-utilities/2021.10.0/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/intel64 -I/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include -I/usr/local/include -I/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include -I/usr/include -omp_simd -O2 "-reentrancy threaded" "-unroll 2" -simd -offload_host CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F-pp.f
+#include "..." search starts here:
+#include <...> search starts here:
+ CMakeFiles/cmTC_59e9e.dir
+ .
+ /tmp/cmake/Modules
+ /opt/intel/oneapi/tbb/2021.10.0/env/../include
+ /opt/intel/oneapi/mpi/2021.10.0//include
+ /opt/intel/oneapi/mkl/2023.2.0/include
+ /opt/intel/oneapi/dpcpp-ct/2023.2.0/include
+ /opt/intel/oneapi/dev-utilities/2021.10.0/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/intel64
+ /opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include
+ /usr/local/include
+ /opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include
+ /usr/include
+End of search list.
+[4/4] : && /opt/intel/oneapi/compiler/2023.2.1/linux/bin/ifx -v CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F.o -o cmTC_59e9e && :
+ifx version 2023.2.0
+ld /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o --eh-frame-hdr --build-id -dynamic-linker /lib64/ld-linux-x86-64.so.2 -m elf_x86_64 -o cmTC_59e9e /opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/for_main.o -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8 -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib -L/opt/intel/oneapi/mpi/2021.10.0//lib/release -L/opt/intel/oneapi/mpi/2021.10.0//lib -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64 -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/lib/linux -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/lib/x86_64-unknown-linux-gnu -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib -L/usr/lib/gcc/x86_64-redhat-linux/8/ -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/ -L/lib/../lib64 -L/lib/../lib64/ -L/usr/lib/../lib64 -L/usr/lib/../lib64/ -L/opt/intel/oneapi/tbb/2021.10.0/env/../lib/intel64/gcc4.8/ -L/opt/intel/oneapi/mpi/2021.10.0//libfabric/lib/ -L/opt/intel/oneapi/mpi/2021.10.0//lib/release/ -L/opt/intel/oneapi/mpi/2021.10.0//lib/ -L/opt/intel/oneapi/mkl/2023.2.0/lib/intel64/ -L/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin/ -L/opt/intel/oneapi/compiler/2023.2.1/linux/lib/ -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../ -L/lib64 -L/lib/ -L/usr/lib64 -L/usr/lib CMakeFiles/cmTC_59e9e.dir/CMakeFortranCompilerABI.F.o -Bdynamic -Bstatic -lifport -lifcoremt -Bdynamic -limf -Bstatic -lsvml -Bdynamic -lm -Bstatic -lipgo -lirc -Bdynamic -lpthread -Bstatic -lsvml -Bdynamic -lc -lgcc -lgcc_s -Bstatic -lirc_s -Bdynamic -ldl -lc /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-C-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-C-GNU-5.5.0.input
new file mode 100644
index 0000000..39d9f79
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-C-GNU-5.5.0.input
@@ -0,0 +1,66 @@
+CMAKE_LANG=C
+CMAKE_LINKER=/usr/ccs/bin/ld
+CMAKE_C_COMPILER_ABI=ELF
+CMAKE_C_COMPILER_AR=/opt/csw/bin/gcc-ar-5.5
+CMAKE_C_COMPILER_ARCHITECTURE_ID=
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=GNU
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=5.5.0
+CMAKE_C_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/build/bin/cmake -E env VERBOSE=1 /opt/csw/bin/gmake -f Makefile cmTC_c0ced/fast
+/opt/csw/bin/gmake -f CMakeFiles/cmTC_c0ced.dir/build.make CMakeFiles/cmTC_c0ced.dir/build
+gmake[1]: Entering directory '/tmp/ii/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o
+/opt/csw/bin/gcc -v -o CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o -c /tmp/cmake/Modules/CMakeCCompilerABI.c
+Reading specs from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/bin/gcc
+Target: sparc-sun-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-sparc/build-isa-sparcv8plus/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-as=/usr/ccs/bin/as --without-gnu-as
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o' '-c' '-mcpu=v9'
+ /opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/cc1 -quiet -v -D__sparcv8 /tmp/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mcpu=v9 -auxbase-strip CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o -version -o /var/tmp//ccYQRQSM.s
+GNU C11 (GCC) version 5.5.0 (sparc-sun-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include"
+ignoring nonexistent directory "/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include
+ /opt/csw/include
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed
+ /usr/include
+End of search list.
+GNU C11 (GCC) version 5.5.0 (sparc-sun-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: 02b73bce42722ebeabb3a83ac3913cb8
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o' '-c' '-mcpu=v9'
+ /usr/ccs/bin/as -V -Qy -s -xarch=v8plus -m32 -o CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o /var/tmp//ccYQRQSM.s
+/usr/ccs/bin/as: Studio 12.5 Compiler Common 12.5 SunOS_sparc Patch 05/02/2016
+COMPILER_PATH=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o' '-c' '-mcpu=v9'
+Linking C executable cmTC_c0ced
+/tmp/cmake/build/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c0ced.dir/link.txt --verbose=1
+/opt/csw/bin/gcc -v CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o -o cmTC_c0ced
+Reading specs from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/bin/gcc
+COLLECT_LTO_WRAPPER=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/lto-wrapper
+Target: sparc-sun-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-sparc/build-isa-sparcv8plus/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-as=/usr/ccs/bin/as --without-gnu-as
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COMPILER_PATH=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c0ced' '-mcpu=v9'
+ /opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/collect2 -V -Y P,/lib:/usr/lib -Qy -o cmTC_c0ced /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crt1.o /usr/lib/crti.o /usr/lib/values-Xa.o /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crtbegin.o -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0 -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../.. CMakeFiles/cmTC_c0ced.dir/CMakeCCompilerABI.c.o -lgcc -lgcc_eh -lc -R /opt/csw/lib -lgcc -lgcc_eh -lc -R /opt/csw/lib /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crtend.o /usr/lib/crtn.o
+ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.1520
+gmake[1]: Leaving directory '/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-CXX-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-CXX-GNU-5.5.0.input
new file mode 100644
index 0000000..dd0799a
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-CXX-GNU-5.5.0.input
@@ -0,0 +1,69 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=/usr/ccs/bin/ld
+CMAKE_CXX_COMPILER_ABI=ELF
+CMAKE_CXX_COMPILER_AR=/opt/csw/bin/gcc-ar-5.5
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=GNU
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=5.5.0
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/build/bin/cmake -E env VERBOSE=1 /opt/csw/bin/gmake -f Makefile cmTC_e6422/fast
+/opt/csw/bin/gmake -f CMakeFiles/cmTC_e6422.dir/build.make CMakeFiles/cmTC_e6422.dir/build
+gmake[1]: Entering directory '/tmp/ii/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o
+/opt/csw/bin/g++ -v -o CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o -c /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp
+Reading specs from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/bin/g++
+Target: sparc-sun-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-sparc/build-isa-sparcv8plus/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-as=/usr/ccs/bin/as --without-gnu-as
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mcpu=v9'
+ /opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/cc1plus -quiet -v -D__sparcv8 /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mcpu=v9 -auxbase-strip CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o -version -o /var/tmp//ccD58BdJ.s
+GNU C++ (GCC) version 5.5.0 (sparc-sun-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include"
+ignoring nonexistent directory "/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../include/c++/5.5.0
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../include/c++/5.5.0/sparc-sun-solaris2.10
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../include/c++/5.5.0/backward
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include
+ /opt/csw/include
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed
+ /usr/include
+End of search list.
+GNU C++ (GCC) version 5.5.0 (sparc-sun-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: 0fb2c410667dff80f2823486f487547c
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mcpu=v9'
+ /usr/ccs/bin/as -V -Qy -s -xarch=v8plus -m32 -o CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o /var/tmp//ccD58BdJ.s
+/usr/ccs/bin/as: Studio 12.5 Compiler Common 12.5 SunOS_sparc Patch 05/02/2016
+COMPILER_PATH=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mcpu=v9'
+Linking CXX executable cmTC_e6422
+/tmp/cmake/build/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e6422.dir/link.txt --verbose=1
+/opt/csw/bin/g++ -v CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e6422
+Reading specs from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/bin/g++
+COLLECT_LTO_WRAPPER=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/lto-wrapper
+Target: sparc-sun-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-sparc/build-isa-sparcv8plus/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-as=/usr/ccs/bin/as --without-gnu-as
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COMPILER_PATH=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e6422' '-shared-libgcc' '-mcpu=v9'
+ /opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/collect2 -V -M /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../libgcc-unwind.map -Y P,/lib:/usr/lib -Qy -o cmTC_e6422 /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crt1.o /usr/lib/crti.o /usr/lib/values-Xa.o /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crtbegin.o -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0 -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../.. CMakeFiles/cmTC_e6422.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lrt -lgcc_s -lgcc -lc -R /opt/csw/lib -lgcc_s -lgcc -lc -R /opt/csw/lib /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crtend.o /usr/lib/crtn.o
+ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.1520
+gmake[1]: Leaving directory '/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-Fortran-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-Fortran-GNU-5.5.0.input
new file mode 100644
index 0000000..9d62b1a
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/sunos5.10_sparc32-Fortran-GNU-5.5.0.input
@@ -0,0 +1,70 @@
+CMAKE_LANG=Fortran
+CMAKE_LINKER=/usr/ccs/bin/ld
+CMAKE_Fortran_COMPILER_ABI=
+CMAKE_Fortran_COMPILER_AR=/opt/csw/bin/gcc-ar-5.5
+CMAKE_Fortran_COMPILER_ARCHITECTURE_ID=
+CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_Fortran_COMPILER_ID=GNU
+CMAKE_Fortran_COMPILER_LAUNCHER=
+CMAKE_Fortran_COMPILER_LOADED=1
+CMAKE_Fortran_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5
+CMAKE_Fortran_COMPILER_TARGET=
+CMAKE_Fortran_COMPILER_VERSION=5.5.0
+CMAKE_Fortran_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): /tmp/cmake/build/bin/cmake -E env VERBOSE=1 /opt/csw/bin/gmake -f Makefile cmTC_955e5/fast
+/opt/csw/bin/gmake -f CMakeFiles/cmTC_955e5.dir/build.make CMakeFiles/cmTC_955e5.dir/build
+gmake[1]: Entering directory '/tmp/ii/CMakeFiles/CMakeTmp'
+Building Fortran object CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o
+/opt/csw/bin/gfortran -v -c /tmp/cmake/Modules/CMakeFortranCompilerABI.F -o CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o
+Reading specs from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/bin/gfortran
+Target: sparc-sun-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-sparc/build-isa-sparcv8plus/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-as=/usr/ccs/bin/as --without-gnu-as
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o' '-mcpu=v9'
+ /opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/f951 /tmp/cmake/Modules/CMakeFortranCompilerABI.F -ffixed-form -cpp=/var/tmp//ccIEY4SI.f90 -quiet -v -D__sparcv8 /tmp/cmake/Modules/CMakeFortranCompilerABI.F -quiet -dumpbase CMakeFortranCompilerABI.F -mcpu=v9 -auxbase-strip CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o -version -fintrinsic-modules-path /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/finclude -o /var/tmp//cccnvwRh.s
+GNU Fortran (GCC) version 5.5.0 (sparc-sun-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include"
+ignoring nonexistent directory "/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/finclude
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include
+ /opt/csw/include
+ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed
+ /usr/include
+End of search list.
+GNU Fortran2008 (GCC) version 5.5.0 (sparc-sun-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o' '-mcpu=v9'
+ /usr/ccs/bin/as -V -Qy -s -xarch=v8plus -m32 -o CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o /var/tmp//cccnvwRh.s
+/usr/ccs/bin/as: Studio 12.5 Compiler Common 12.5 SunOS_sparc Patch 05/02/2016
+COMPILER_PATH=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o' '-mcpu=v9'
+Linking Fortran executable cmTC_955e5
+/tmp/cmake/build/bin/cmake -E cmake_link_script CMakeFiles/cmTC_955e5.dir/link.txt --verbose=1
+/opt/csw/bin/gfortran -v CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o -o cmTC_955e5
+Driving: /opt/csw/bin/gfortran -v CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o -o cmTC_955e5 -l gfortran -l m -shared-libgcc
+Reading specs from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/bin/gfortran
+COLLECT_LTO_WRAPPER=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/lto-wrapper
+Target: sparc-sun-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-sparc/build-isa-sparcv8plus/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-as=/usr/ccs/bin/as --without-gnu-as
+Thread model: posix
+gcc version 5.5.0 (GCC)
+Reading specs from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../libgfortran.spec
+rename spec lib to liborig
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_955e5' '-shared-libgcc' '-mcpu=v9'
+COMPILER_PATH=/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib/:/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_955e5' '-shared-libgcc' '-mcpu=v9'
+ /opt/csw/libexec/gcc/sparc-sun-solaris2.10/5.5.0/collect2 -V -M /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../libgcc-unwind.map -Y P,/lib:/usr/lib -Qy -o cmTC_955e5 /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crt1.o /usr/lib/crti.o /usr/lib/values-Xa.o /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crtbegin.o -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0 -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/lib -L/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../.. CMakeFiles/cmTC_955e5.dir/CMakeFortranCompilerABI.F.o -lgfortran -lm -lgcc_s -lgcc -lm -lgcc_s -lgcc -lc -R /opt/csw/lib -lgcc_s -lgcc -lm -lgcc_s -lgcc -lc -R /opt/csw/lib /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/crtend.o /usr/lib/crtn.o
+ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.1520
+gmake[1]: Leaving directory '/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-C-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-C-GNU-5.5.0.input
new file mode 100644
index 0000000..0fc6809
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-C-GNU-5.5.0.input
@@ -0,0 +1,66 @@
+CMAKE_LANG=C
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_C_COMPILER_ABI=ELF
+CMAKE_C_COMPILER_AR=/opt/csw/bin/gcc-ar-5.5
+CMAKE_C_COMPILER_ARCHITECTURE_ID=
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=GNU
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=5.5.0
+CMAKE_C_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): "/tmp/cmake/build/bin/cmake" -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_669bd/fast
+/usr/bin/gmake -f CMakeFiles/cmTC_669bd.dir/build.make CMakeFiles/cmTC_669bd.dir/build
+gmake[1]: Entering directory `/tmp/ii/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o
+/opt/csw/gcc5/bin/gcc -v -o CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o -c "/tmp/cmake/Modules/CMakeCCompilerABI.c"
+Reading specs from /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/gcc5/bin/gcc
+Target: i386-pc-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-i386/build-isa-pentium_pro/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-gnu-as --with-as=/opt/csw/bin/gas
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=pentium4'
+ /opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/cc1 -quiet -v /tmp/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=pentium4 -auxbase-strip CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o -version -o /var/tmp//ccnKHDt6.s
+GNU C11 (GCC) version 5.5.0 (i386-pc-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include"
+ignoring nonexistent directory "/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include
+ /opt/csw/include
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed
+ /usr/include
+End of search list.
+GNU C11 (GCC) version 5.5.0 (i386-pc-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: e033aa0b1a20b1a1618cfcdc112301a7
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=pentium4'
+ /opt/csw/bin/gas -v -V -Qy -s --32 -o CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o /var/tmp//ccnKHDt6.s
+GNU assembler version 2.24 (i386-pc-solaris2.10) using BFD version (GNU Binutils) 2.24
+COMPILER_PATH=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=pentium4'
+Linking C executable cmTC_669bd
+"/tmp/cmake/build/bin/cmake" -E cmake_link_script CMakeFiles/cmTC_669bd.dir/link.txt --verbose=1
+/opt/csw/gcc5/bin/gcc -v CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o -o cmTC_669bd
+Reading specs from /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/gcc5/bin/gcc
+COLLECT_LTO_WRAPPER=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/lto-wrapper
+Target: i386-pc-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-i386/build-isa-pentium_pro/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-gnu-as --with-as=/opt/csw/bin/gas
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COMPILER_PATH=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_669bd' '-mtune=generic' '-march=pentium4'
+ /usr/ccs/bin/ld -V -Y P,/lib:/usr/lib -Qy -o cmTC_669bd /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/values-Xa.o /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/crtbegin.o -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0 -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../.. CMakeFiles/cmTC_669bd.dir/CMakeCCompilerABI.c.o -lgcc -lgcc_eh -lc -R /opt/csw/lib -lgcc -lgcc_eh /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/crtend.o /usr/lib/crtn.o
+ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.2458
+gmake[1]: Leaving directory `/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-CXX-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-CXX-GNU-5.5.0.input
new file mode 100644
index 0000000..0f0c712
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-CXX-GNU-5.5.0.input
@@ -0,0 +1,69 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_CXX_COMPILER_ABI=ELF
+CMAKE_CXX_COMPILER_AR=/opt/csw/bin/gcc-ar-5.5
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=GNU
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=5.5.0
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): "/tmp/cmake/build/bin/cmake" -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_1c2eb/fast
+/usr/bin/gmake -f CMakeFiles/cmTC_1c2eb.dir/build.make CMakeFiles/cmTC_1c2eb.dir/build
+gmake[1]: Entering directory `/tmp/ii/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o
+/opt/csw/gcc5/bin/g++ -v -o CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o -c "/tmp/cmake/Modules/CMakeCXXCompilerABI.cpp"
+Reading specs from /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/gcc5/bin/g++
+Target: i386-pc-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-i386/build-isa-pentium_pro/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-gnu-as --with-as=/opt/csw/bin/gas
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=pentium4'
+ /opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/cc1plus -quiet -v /tmp/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=pentium4 -auxbase-strip CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o -version -o /var/tmp//cca5Tfac.s
+GNU C++ (GCC) version 5.5.0 (i386-pc-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include"
+ignoring nonexistent directory "/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../include/c++/5.5.0
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../include/c++/5.5.0/i386-pc-solaris2.10
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../include/c++/5.5.0/backward
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include
+ /opt/csw/include
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed
+ /usr/include
+End of search list.
+GNU C++ (GCC) version 5.5.0 (i386-pc-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+Compiler executable checksum: d6737be2d7a7f1ff0cf51e522387e31b
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=pentium4'
+ /opt/csw/bin/gas -v -V -Qy -s --32 -o CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o /var/tmp//cca5Tfac.s
+GNU assembler version 2.24 (i386-pc-solaris2.10) using BFD version (GNU Binutils) 2.24
+COMPILER_PATH=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=pentium4'
+Linking CXX executable cmTC_1c2eb
+"/tmp/cmake/build/bin/cmake" -E cmake_link_script CMakeFiles/cmTC_1c2eb.dir/link.txt --verbose=1
+/opt/csw/gcc5/bin/g++ -v CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_1c2eb
+Reading specs from /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/gcc5/bin/g++
+COLLECT_LTO_WRAPPER=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/lto-wrapper
+Target: i386-pc-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-i386/build-isa-pentium_pro/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-gnu-as --with-as=/opt/csw/bin/gas
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COMPILER_PATH=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_1c2eb' '-shared-libgcc' '-mtune=generic' '-march=pentium4'
+ /usr/ccs/bin/ld -V -M /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../libgcc-unwind.map -Y P,/lib:/usr/lib -Qy -o cmTC_1c2eb /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/values-Xa.o /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/crtbegin.o -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0 -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../.. CMakeFiles/cmTC_1c2eb.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lrt -lgcc_s -lgcc -lc -R /opt/csw/lib -lgcc_s -lgcc /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/crtend.o /usr/lib/crtn.o
+ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.2458
+gmake[1]: Leaving directory `/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-Fortran-GNU-5.5.0.input b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-Fortran-GNU-5.5.0.input
new file mode 100644
index 0000000..bcd5114
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/sunos5.11_i386-Fortran-GNU-5.5.0.input
@@ -0,0 +1,70 @@
+CMAKE_LANG=Fortran
+CMAKE_LINKER=/usr/bin/ld
+CMAKE_Fortran_COMPILER_ABI=
+CMAKE_Fortran_COMPILER_AR=/opt/csw/bin/gcc-ar-5.5
+CMAKE_Fortran_COMPILER_ARCHITECTURE_ID=
+CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_Fortran_COMPILER_ID=GNU
+CMAKE_Fortran_COMPILER_LAUNCHER=
+CMAKE_Fortran_COMPILER_LOADED=1
+CMAKE_Fortran_COMPILER_RANLIB=/opt/csw/bin/gcc-ranlib-5.5
+CMAKE_Fortran_COMPILER_TARGET=
+CMAKE_Fortran_COMPILER_VERSION=5.5.0
+CMAKE_Fortran_COMPILER_VERSION_INTERAL=
+Change Dir: '/tmp/ii/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): "/tmp/cmake/build/bin/cmake" -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_437d4/fast
+/usr/bin/gmake -f CMakeFiles/cmTC_437d4.dir/build.make CMakeFiles/cmTC_437d4.dir/build
+gmake[1]: Entering directory `/tmp/ii/CMakeFiles/CMakeTmp'
+Building Fortran object CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o
+/opt/csw/gcc5/bin/gfortran -v -c "/tmp/cmake/Modules/CMakeFortranCompilerABI.F" -o CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o
+Reading specs from /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/gcc5/bin/gfortran
+Target: i386-pc-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-i386/build-isa-pentium_pro/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-gnu-as --with-as=/opt/csw/bin/gas
+Thread model: posix
+gcc version 5.5.0 (GCC)
+COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o' '-mtune=generic' '-march=pentium4'
+ /opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/f951 /tmp/cmake/Modules/CMakeFortranCompilerABI.F -ffixed-form -cpp=/var/tmp//ccq6gvEa.f90 -quiet -v /tmp/cmake/Modules/CMakeFortranCompilerABI.F -quiet -dumpbase CMakeFortranCompilerABI.F -mtune=generic -march=pentium4 -auxbase-strip CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o -version -fintrinsic-modules-path /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/finclude -o /var/tmp//ccSeT27a.s
+GNU Fortran (GCC) version 5.5.0 (i386-pc-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ignoring nonexistent directory "/usr/local/include"
+ignoring nonexistent directory "/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/include"
+#include "..." search starts here:
+#include <...> search starts here:
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/finclude
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include
+ /opt/csw/include
+ /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed
+ /usr/include
+End of search list.
+GNU Fortran2008 (GCC) version 5.5.0 (i386-pc-solaris2.10)
+ compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2
+GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o' '-mtune=generic' '-march=pentium4'
+ /opt/csw/bin/gas -v -V -Qy -s --32 -o CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o /var/tmp//ccSeT27a.s
+GNU assembler version 2.24 (i386-pc-solaris2.10) using BFD version (GNU Binutils) 2.24
+COMPILER_PATH=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o' '-mtune=generic' '-march=pentium4'
+Linking Fortran executable cmTC_437d4
+"/tmp/cmake/build/bin/cmake" -E cmake_link_script CMakeFiles/cmTC_437d4.dir/link.txt --verbose=1
+/opt/csw/gcc5/bin/gfortran -v CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o -o cmTC_437d4
+Driving: /opt/csw/gcc5/bin/gfortran -v CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o -o cmTC_437d4 -l gfortran -l m -shared-libgcc
+Reading specs from /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/specs
+COLLECT_GCC=/opt/csw/gcc5/bin/gfortran
+COLLECT_LTO_WRAPPER=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/lto-wrapper
+Target: i386-pc-solaris2.10
+Configured with: /home/dam/mgar/pkg/gcc5/trunk/work/solaris10-i386/build-isa-pentium_pro/gcc-5.5.0/configure --prefix=/opt/csw --exec_prefix=/opt/csw --bindir=/opt/csw/bin --sbindir=/opt/csw/sbin --libexecdir=/opt/csw/libexec --datadir=/opt/csw/share --sysconfdir=/etc/opt/csw --sharedstatedir=/opt/csw/share --localstatedir=/var/opt/csw --libdir=/opt/csw/lib --infodir=/opt/csw/share/info --includedir=/opt/csw/include --mandir=/opt/csw/share/man --enable-cloog-backend=isl --enable-java-awt=xlib --enable-languages=ada,c,c++,fortran,go,java,objc --enable-libada --enable-libssp --enable-nls --enable-objc-gc --enable-threads=posix --program-suffix=-5.5 --with-cloog=/opt/csw --with-gmp=/opt/csw --with-included-gettext --with-ld=/usr/ccs/bin/ld --without-gnu-ld --with-libiconv-prefix=/opt/csw --with-mpfr=/opt/csw --with-ppl=/opt/csw --with-system-zlib=/opt/csw --with-gnu-as --with-as=/opt/csw/bin/gas
+Thread model: posix
+gcc version 5.5.0 (GCC)
+Reading specs from /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../libgfortran.spec
+rename spec lib to liborig
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_437d4' '-shared-libgcc' '-mtune=generic' '-march=pentium4'
+COMPILER_PATH=/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/libexec/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/bin/:/usr/ccs/bin/
+LIBRARY_PATH=/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib/:/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_437d4' '-shared-libgcc' '-mtune=generic' '-march=pentium4'
+ /usr/ccs/bin/ld -V -M /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../libgcc-unwind.map -Y P,/lib:/usr/lib -Qy -o cmTC_437d4 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/values-Xa.o /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/crtbegin.o -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0 -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../../../i386-pc-solaris2.10/lib -L/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/../../.. CMakeFiles/cmTC_437d4.dir/CMakeFortranCompilerABI.F.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -R /opt/csw/lib -lgcc_s -lgcc /opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/crtend.o /usr/lib/crtn.o
+ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.2458
+gmake[1]: Leaving directory `/tmp/ii/CMakeFiles/CMakeTmp'
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Intel-2021.9.0.20230302.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Intel-2021.9.0.20230302.input
new file mode 100644
index 0000000..a54d54b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-Intel-2021.9.0.20230302.input
@@ -0,0 +1,19 @@
+CMAKE_LANG=C
+CMAKE_LINKER=C:/DoesNotExist/Intel/oneAPI/compiler/latest/windows/bin/intel64/xilink.exe
+CMAKE_C_COMPILER_ABI=
+CMAKE_C_COMPILER_AR=
+CMAKE_C_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=Intel
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=2021.9.0.20230302
+CMAKE_C_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): C:/DoesNotExist/ninja/bin/ninja.exe -v cmTC_250e1
+[1/2] C:\DoesNotExist\Intel\oneAPI\compiler\latest\windows\bin\intel64\icl.exe /nologo /DWIN32 /D_WINDOWS /W3 /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\cmTC_250e1.dir\CMakeCCompilerABI.c.obj /FdCMakeFiles\cmTC_250e1.dir\ -c "C:\DoesNotExist\CMake\Modules\CMakeCCompilerABI.c"
+[2/2] C:\Windows\system32\cmd.exe /C "cd . && "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_250e1.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests -- C:\DoesNotExist\Intel\oneAPI\compiler\latest\windows\bin\intel64\xilink.exe /nologo CMakeFiles\cmTC_250e1.dir\CMakeCCompilerABI.c.obj /out:cmTC_250e1.exe /implib:cmTC_250e1.lib /pdb:cmTC_250e1.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console && cd ."
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-IntelLLVM-2023.1.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-IntelLLVM-2023.1.0.input
new file mode 100644
index 0000000..710892c
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-IntelLLVM-2023.1.0.input
@@ -0,0 +1,19 @@
+CMAKE_LANG=C
+CMAKE_LINKER=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/link.exe
+CMAKE_C_COMPILER_ABI=
+CMAKE_C_COMPILER_AR=C:/DoesNotExist/intel/compiler/latest/windows/bin-llvm/llvm-ar.exe
+CMAKE_C_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=IntelLLVM
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/Llvm/x64/bin/llvm-ranlib.exe
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=2023.1.0
+CMAKE_C_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): C:/DoesNotExist/ninja/bin/ninja.exe -v cmTC_084c6
+[1/2] C:\DoesNotExist\intel\compiler\latest\windows\bin\icx.exe /nologo /DWIN32 /D_WINDOWS /W3 /MDd /Zi /Ob0 /Od /RTC1 -QMD -QMT CMakeFiles\cmTC_084c6.dir\CMakeCCompilerABI.c.obj -QMF CMakeFiles\cmTC_084c6.dir\CMakeCCompilerABI.c.obj.d /FoCMakeFiles\cmTC_084c6.dir\CMakeCCompilerABI.c.obj /FdCMakeFiles\cmTC_084c6.dir\ -c "C:\DoesNotExist\CMake\Modules\CMakeCCompilerABI.c"
+[2/2] C:\Windows\system32\cmd.exe /C "cd . && "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_084c6.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests -- C:\DoesNotExist\intel\compiler\latest\windows\bin\icx.exe /nologo CMakeFiles\cmTC_084c6.dir\CMakeCCompilerABI.c.obj /Qoption,link,/machine:x64 /debug /INCREMENTAL /Qoption,link,/subsystem:console /link /out:cmTC_084c6.exe /implib:cmTC_084c6.lib /pdb:cmTC_084c6.pdb /version:0.0 && cd ."
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.36.32543.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.36.32543.0.input
new file mode 100644
index 0000000..cc73ff7
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.36.32543.0.input
@@ -0,0 +1,19 @@
+CMAKE_LANG=C
+CMAKE_LINKER=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/link.exe
+CMAKE_C_COMPILER_ABI=
+CMAKE_C_COMPILER_AR=
+CMAKE_C_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=MSVC
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=19.36.32543.0
+CMAKE_C_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): C:/DoesNotExist/ninja/bin/ninja.exe -v cmTC_ccd96
+[1/2] C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\cl.exe /nologo /DWIN32 /D_WINDOWS /W3 /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\cmTC_ccd96.dir\CMakeCCompilerABI.c.obj /FdCMakeFiles\cmTC_ccd96.dir\ /FS -c "C:\DoesNotExist\CMake\Modules\CMakeCCompilerABI.c"
+[2/2] C:\Windows\system32\cmd.exe /C "cd . && "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_ccd96.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\mt.exe --manifests -- C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\link.exe /nologo CMakeFiles\cmTC_ccd96.dir\CMakeCCompilerABI.c.obj /out:cmTC_ccd96.exe /implib:cmTC_ccd96.lib /pdb:cmTC_ccd96.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.38.33130.0-VS.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.38.33130.0-VS.input
new file mode 100644
index 0000000..77bae76
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-C-MSVC-19.38.33130.0-VS.input
@@ -0,0 +1,48 @@
+CMAKE_LANG=C
+CMAKE_LINKER=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/link.exe
+CMAKE_C_COMPILER_ABI=
+CMAKE_C_COMPILER_AR=
+CMAKE_C_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_C_COMPILER_ID=MSVC
+CMAKE_C_COMPILER_LAUNCHER=
+CMAKE_C_COMPILER_LOADED=1
+CMAKE_C_COMPILER_RANLIB=
+CMAKE_C_COMPILER_TARGET=
+CMAKE_C_COMPILER_VERSION=19.38.33130.0
+CMAKE_C_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_7cc99.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n
+MSBuild version 17.8.3+195e7f5a3 for .NET Framework
+Build started 12/14/2023 11:53:27 AM.
+
+Project "C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\cmTC_7cc99.vcxproj" on node 1 (default targets).
+PrepareForBuild:
+ Creating directory "cmTC_7cc99.dir\Debug\".
+ Structured output is enabled. The formatting of compiler diagnostics will reflect the error hierarchy. See https://aka.ms/cpp/structured-output for more details.
+ Creating directory "C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\Debug\".
+ Creating directory "cmTC_7cc99.dir\Debug\cmTC_7cc99.tlog\".
+InitializeBuildStatus:
+ Creating "cmTC_7cc99.dir\Debug\cmTC_7cc99.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
+ Touching "cmTC_7cc99.dir\Debug\cmTC_7cc99.tlog\unsuccessfulbuild".
+ClCompile:
+ C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\bin\HostX64\x64\CL.exe /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /Gm- /RTC1 /MDd /GS /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_7cc99.dir\Debug\\" /Fd"cmTC_7cc99.dir\Debug\vc143.pdb" /external:W3 /Gd /TC /errorReport:queue "C:\DoesNotExist\CMake\Modules\CMakeCCompilerABI.c"
+ Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33130 for x64
+ Copyright (C) Microsoft Corporation. All rights reserved.
+ cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /Gm- /RTC1 /MDd /GS /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"cmTC_7cc99.dir\Debug\\" /Fd"cmTC_7cc99.dir\Debug\vc143.pdb" /external:W3 /Gd /TC /errorReport:queue "C:\DoesNotExist\CMake\Modules\CMakeCCompilerABI.c"
+ CMakeCCompilerABI.c
+Link:
+ C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\Debug\cmTC_7cc99.exe" /INCREMENTAL /ILK:"cmTC_7cc99.dir\Debug\cmTC_7cc99.ilk" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp/Debug/cmTC_7cc99.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp/Debug/cmTC_7cc99.lib" /MACHINE:X64 /machine:x64 cmTC_7cc99.dir\Debug\CMakeCCompilerABI.obj
+ cmTC_7cc99.vcxproj -> C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\Debug\cmTC_7cc99.exe
+FinalizeBuildStatus:
+ Deleting file "cmTC_7cc99.dir\Debug\cmTC_7cc99.tlog\unsuccessfulbuild".
+ Touching "cmTC_7cc99.dir\Debug\cmTC_7cc99.tlog\cmTC_7cc99.lastbuildstate".
+Done Building Project "C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\cmTC_7cc99.vcxproj" (default targets).
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:00.86
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Intel-2021.9.0.20230302.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Intel-2021.9.0.20230302.input
new file mode 100644
index 0000000..ecb3f5c
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-Intel-2021.9.0.20230302.input
@@ -0,0 +1,19 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=C:/DoesNotExist/Intel/oneAPI/compiler/latest/windows/bin/intel64/xilink.exe
+CMAKE_CXX_COMPILER_ABI=
+CMAKE_CXX_COMPILER_AR=
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=Intel
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=2021.9.0.20230302
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): C:/DoesNotExist/ninja/bin/ninja.exe -v cmTC_3490c
+[1/2] C:\DoesNotExist\Intel\oneAPI\compiler\latest\windows\bin\intel64\icl.exe /nologo /TP /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\cmTC_3490c.dir\CMakeCXXCompilerABI.cpp.obj /FdCMakeFiles\cmTC_3490c.dir\ -c "C:\DoesNotExist\CMake\Modules\CMakeCXXCompilerABI.cpp"
+[2/2] C:\Windows\system32\cmd.exe /C "cd . && "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_3490c.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests -- C:\DoesNotExist\Intel\oneAPI\compiler\latest\windows\bin\intel64\xilink.exe /nologo CMakeFiles\cmTC_3490c.dir\CMakeCXXCompilerABI.cpp.obj /out:cmTC_3490c.exe /implib:cmTC_3490c.lib /pdb:cmTC_3490c.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console && cd ."
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-IntelLLVM-2023.1.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-IntelLLVM-2023.1.0.input
new file mode 100644
index 0000000..2650ba7
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-IntelLLVM-2023.1.0.input
@@ -0,0 +1,19 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/link.exe
+CMAKE_CXX_COMPILER_ABI=
+CMAKE_CXX_COMPILER_AR=C:/DoesNotExist/intel/compiler/latest/windows/bin-llvm/llvm-ar.exe
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=IntelLLVM
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/Llvm/x64/bin/llvm-ranlib.exe
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=2023.1.0
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): C:/DoesNotExist/ninja/bin/ninja.exe -v cmTC_3f9c2
+[1/2] C:\DoesNotExist\intel\compiler\latest\windows\bin\icx.exe /nologo /TP /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 -QMD -QMT CMakeFiles\cmTC_3f9c2.dir\CMakeCXXCompilerABI.cpp.obj -QMF CMakeFiles\cmTC_3f9c2.dir\CMakeCXXCompilerABI.cpp.obj.d /FoCMakeFiles\cmTC_3f9c2.dir\CMakeCXXCompilerABI.cpp.obj /FdCMakeFiles\cmTC_3f9c2.dir\ -c "C:\DoesNotExist\CMake\Modules\CMakeCXXCompilerABI.cpp"
+[2/2] C:\Windows\system32\cmd.exe /C "cd . && "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_3f9c2.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests -- C:\DoesNotExist\intel\compiler\latest\windows\bin\icx.exe /nologo CMakeFiles\cmTC_3f9c2.dir\CMakeCXXCompilerABI.cpp.obj /Qoption,link,/machine:x64 /debug /INCREMENTAL /Qoption,link,/subsystem:console /link /out:cmTC_3f9c2.exe /implib:cmTC_3f9c2.lib /pdb:cmTC_3f9c2.pdb /version:0.0 && cd ."
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.36.32543.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.36.32543.0.input
new file mode 100644
index 0000000..5575537
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.36.32543.0.input
@@ -0,0 +1,19 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/link.exe
+CMAKE_CXX_COMPILER_ABI=
+CMAKE_CXX_COMPILER_AR=
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=MSVC
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=19.36.32543.0
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): C:/DoesNotExist/ninja/bin/ninja.exe -v cmTC_bb116
+[1/2] C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\cl.exe /nologo /TP /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MDd /Zi /Ob0 /Od /RTC1 /showIncludes /FoCMakeFiles\cmTC_bb116.dir\CMakeCXXCompilerABI.cpp.obj /FdCMakeFiles\cmTC_bb116.dir\ /FS -c "C:\DoesNotExist\CMake\Modules\CMakeCXXCompilerABI.cpp"
+[2/2] C:\Windows\system32\cmd.exe /C "cd . && "C:\DoesNotExist\build\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_bb116.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\mt.exe --manifests -- C:\PROGRA~1\MIB055~1\2022\PROFES~1\VC\Tools\MSVC\1436~1.325\bin\Hostx64\x64\link.exe /nologo CMakeFiles\cmTC_bb116.dir\CMakeCXXCompilerABI.cpp.obj /out:cmTC_bb116.exe /implib:cmTC_bb116.lib /pdb:cmTC_bb116.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.input
new file mode 100644
index 0000000..16d1b37
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.input
@@ -0,0 +1,48 @@
+CMAKE_LANG=CXX
+CMAKE_LINKER=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.38.33130/bin/Hostx64/x64/link.exe
+CMAKE_CXX_COMPILER_ABI=
+CMAKE_CXX_COMPILER_AR=
+CMAKE_CXX_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_CXX_COMPILER_ID=MSVC
+CMAKE_CXX_COMPILER_LAUNCHER=
+CMAKE_CXX_COMPILER_LOADED=1
+CMAKE_CXX_COMPILER_RANLIB=
+CMAKE_CXX_COMPILER_TARGET=
+CMAKE_CXX_COMPILER_VERSION=19.38.33130.0
+CMAKE_CXX_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Professional/MSBuild/Current/Bin/amd64/MSBuild.exe" cmTC_29675.vcxproj /p:Configuration=Debug /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:n
+MSBuild version 17.8.3+195e7f5a3 for .NET Framework
+Build started 12/14/2023 11:53:28 AM.
+
+Project "C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\cmTC_29675.vcxproj" on node 1 (default targets).
+PrepareForBuild:
+ Creating directory "cmTC_29675.dir\Debug\".
+ Structured output is enabled. The formatting of compiler diagnostics will reflect the error hierarchy. See https://aka.ms/cpp/structured-output for more details.
+ Creating directory "C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\Debug\".
+ Creating directory "cmTC_29675.dir\Debug\cmTC_29675.tlog\".
+InitializeBuildStatus:
+ Creating "cmTC_29675.dir\Debug\cmTC_29675.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
+ Touching "cmTC_29675.dir\Debug\cmTC_29675.tlog\unsuccessfulbuild".
+ClCompile:
+ C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\bin\HostX64\x64\CL.exe /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /Gm- /EHsc /RTC1 /MDd /GS /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"cmTC_29675.dir\Debug\\" /Fd"cmTC_29675.dir\Debug\vc143.pdb" /external:W3 /Gd /TP /errorReport:queue "C:\DoesNotExist\CMake\Modules\CMakeCXXCompilerABI.cpp"
+ Microsoft (R) C/C++ Optimizing Compiler Version 19.38.33130 for x64
+ Copyright (C) Microsoft Corporation. All rights reserved.
+ cl /c /Zi /W3 /WX- /diagnostics:column /Od /Ob0 /D _MBCS /D WIN32 /D _WINDOWS /D "CMAKE_INTDIR=\"Debug\"" /Gm- /EHsc /RTC1 /MDd /GS /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"cmTC_29675.dir\Debug\\" /Fd"cmTC_29675.dir\Debug\vc143.pdb" /external:W3 /Gd /TP /errorReport:queue "C:\DoesNotExist\CMake\Modules\CMakeCXXCompilerABI.cpp"
+ CMakeCXXCompilerABI.cpp
+Link:
+ C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\bin\HostX64\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\Debug\cmTC_29675.exe" /INCREMENTAL /ILK:"cmTC_29675.dir\Debug\cmTC_29675.ilk" /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp/Debug/cmTC_29675.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp/Debug/cmTC_29675.lib" /MACHINE:X64 /machine:x64 cmTC_29675.dir\Debug\CMakeCXXCompilerABI.obj
+ cmTC_29675.vcxproj -> C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\Debug\cmTC_29675.exe
+FinalizeBuildStatus:
+ Deleting file "cmTC_29675.dir\Debug\cmTC_29675.tlog\unsuccessfulbuild".
+ Touching "cmTC_29675.dir\Debug\cmTC_29675.tlog\cmTC_29675.lastbuildstate".
+Done Building Project "C:\DoesNotExist\Temp\CMakeFiles\CMakeTmp\cmTC_29675.vcxproj" (default targets).
+
+Build succeeded.
+ 0 Warning(s)
+ 0 Error(s)
+
+Time Elapsed 00:00:00.92
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-Intel-2021.9.0.20230302.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-Intel-2021.9.0.20230302.input
new file mode 100644
index 0000000..75e49a6
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-Intel-2021.9.0.20230302.input
@@ -0,0 +1,21 @@
+CMAKE_LANG=Fortran
+CMAKE_LINKER=C:/DoesNotExist/Intel/oneAPI/compiler/latest/windows/bin/intel64/xilink.exe
+CMAKE_Fortran_COMPILER_ABI=
+CMAKE_Fortran_COMPILER_AR=
+CMAKE_Fortran_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_Fortran_COMPILER_ID=Intel
+CMAKE_Fortran_COMPILER_LAUNCHER=
+CMAKE_Fortran_COMPILER_LOADED=1
+CMAKE_Fortran_COMPILER_RANLIB=
+CMAKE_Fortran_COMPILER_TARGET=
+CMAKE_Fortran_COMPILER_VERSION=2021.9.0.20230302
+CMAKE_Fortran_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): C:/DoesNotExist/ninja/bin/ninja.exe -v cmTC_40ac9
+[1/4] C:\Windows\system32\cmd.exe /C "C:\DoesNotExist\Intel\oneAPI\compiler\latest\windows\bin\intel64\ifort.exe -fpp /W1 /nologo /fpp /libs:dll /threads /Od /debug:full /dbglibs -P "C:\DoesNotExist\CMake\Modules\CMakeFortranCompilerABI.F" -FiCMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F-pp.f && "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E cmake_ninja_depends --tdi=CMakeFiles\cmTC_40ac9.dir\FortranDependInfo.json --lang=Fortran --src=CMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F-pp.f --out=CMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F-pp.f --dep=CMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F-pp.f.d --obj=CMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F.obj --ddi=CMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F.obj.ddi"
+[2/4] "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E cmake_ninja_dyndep --tdi=CMakeFiles\cmTC_40ac9.dir\FortranDependInfo.json --lang=Fortran --dd=CMakeFiles\cmTC_40ac9.dir\Fortran.dd @CMakeFiles\cmTC_40ac9.dir\Fortran.dd.rsp
+[3/4] C:\DoesNotExist\Intel\oneAPI\compiler\latest\windows\bin\intel64\ifort.exe /nologo /fpp -I"C:\DoesNotExist\CMake\Modules" /W1 /nologo /fpp /libs:dll /threads /Od /debug:full /dbglibs /FoCMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F.obj /Fd -c CMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F-pp.f
+[4/4] C:\Windows\system32\cmd.exe /C "cd . && "C:\DoesNotExist\build\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_40ac9.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt="" --manifests -- C:\DoesNotExist\Intel\oneAPI\compiler\latest\windows\bin\intel64\xilink.exe /nologo CMakeFiles\cmTC_40ac9.dir\CMakeFortranCompilerABI.F.obj /out:cmTC_40ac9.exe /implib:cmTC_40ac9.lib /pdb:cmTC_40ac9.exe.dbg /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console && cd ."
diff --git a/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-IntelLLVM-2023.1.0.input b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-IntelLLVM-2023.1.0.input
new file mode 100644
index 0000000..e8e0d1a
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitData/windows_x86_64-Fortran-IntelLLVM-2023.1.0.input
@@ -0,0 +1,21 @@
+CMAKE_LANG=Fortran
+CMAKE_LINKER=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/link.exe
+CMAKE_Fortran_COMPILER_ABI=
+CMAKE_Fortran_COMPILER_AR=C:/DoesNotExist/intel/compiler/latest/windows/bin-llvm/llvm-ar.exe
+CMAKE_Fortran_COMPILER_ARCHITECTURE_ID=x64
+CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN=
+CMAKE_Fortran_COMPILER_ID=IntelLLVM
+CMAKE_Fortran_COMPILER_LAUNCHER=
+CMAKE_Fortran_COMPILER_LOADED=1
+CMAKE_Fortran_COMPILER_RANLIB=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/Llvm/x64/bin/llvm-ranlib.exe
+CMAKE_Fortran_COMPILER_TARGET=
+CMAKE_Fortran_COMPILER_VERSION=2023.1.0
+CMAKE_Fortran_COMPILER_VERSION_INTERAL=
+CMAKE_HOST_SYSTEM_NAME=Windows
+Change Dir: 'C:/DoesNotExist/Temp/CMakeFiles/CMakeTmp'
+
+Run Build Command(s): C:/DoesNotExist/ninja/bin/ninja.exe -v cmTC_26e9b
+[1/4] C:\Windows\system32\cmd.exe /C "C:\DoesNotExist\intel\compiler\latest\windows\bin\ifx.exe -fpp /W1 /nologo /fpp /libs:dll /threads /Od /debug:full /dbglibs -P "C:\DoesNotExist\CMake\Modules\CMakeFortranCompilerABI.F" -FiCMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F-pp.f && "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E cmake_ninja_depends --tdi=CMakeFiles\cmTC_26e9b.dir\FortranDependInfo.json --lang=Fortran --src=CMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F-pp.f --out=CMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F-pp.f --dep=CMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F-pp.f.d --obj=CMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F.obj --ddi=CMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F.obj.ddi"
+[2/4] "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E cmake_ninja_dyndep --tdi=CMakeFiles\cmTC_26e9b.dir\FortranDependInfo.json --lang=Fortran --dd=CMakeFiles\cmTC_26e9b.dir\Fortran.dd @CMakeFiles\cmTC_26e9b.dir\Fortran.dd.rsp
+[3/4] C:\DoesNotExist\intel\compiler\latest\windows\bin\ifx.exe /nologo /fpp -I"C:\DoesNotExist\CMake\Modules" /W1 /nologo /fpp /libs:dll /threads /Od /debug:full /dbglibs /FoCMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F.obj /Fd -c CMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F-pp.f
+[4/4] C:\Windows\system32\cmd.exe /C "cd . && "C:\DoesNotExist\CMake\build\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\cmTC_26e9b.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt="" --manifests -- C:\DoesNotExist\intel\compiler\latest\windows\bin\ifx.exe /nologo CMakeFiles\cmTC_26e9b.dir\CMakeFortranCompilerABI.F.obj /Qoption,link,/machine:x64 /debug /INCREMENTAL /Qoption,link,/subsystem:console /link /out:cmTC_26e9b.exe /implib:cmTC_26e9b.lib /pdb:cmTC_26e9b.exe.dbg /version:0.0 && cd ."
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake b/Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake
index 6027f03..c5bb5d7 100644
--- a/Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/ParseImplicitIncludeInfo.cmake
@@ -8,6 +8,7 @@
set(targets
aix-C-XL-13.1.3 aix-CXX-XL-13.1.3
aix-C-XLClang-16.1.0.1 aix-CXX-XLClang-16.1.0.1
+ aix-C-IBMClang-17.1.1.2 aix-CXX-IBMClang-17.1.1.2
craype-C-Cray-8.7 craype-CXX-Cray-8.7 craype-Fortran-Cray-8.7
craype-C-Cray-9.0-hlist-ad craype-CXX-Cray-9.0-hlist-ad craype-Fortran-Cray-9.0-hlist-ad
craype-C-GNU-7.3.0 craype-CXX-GNU-7.3.0 craype-Fortran-GNU-7.3.0
@@ -23,7 +24,10 @@ set(targets
linux-C-GNU-10.2.1-static-libgcc
linux-CXX-GNU-10.2.1-static-libstdc++
linux-Fortran-GNU-10.2.1-static-libgfortran
+ linux-C-GNU-12.2.0 linux-CXX-GNU-12.2.0 linux-Fortran-GNU-12.2.0
linux-C-Intel-18.0.0.20170811 linux-CXX-Intel-18.0.0.20170811
+ linux-C-Intel-2021.10.0.20230609 linux-CXX-Intel-2021.10.0.20230609 linux-Fortran-Intel-2021.10.0.20230609
+ linux-C-IntelLLVM-2023.2.0 linux-CXX-IntelLLVM-2023.2.0 linux-Fortran-IntelLLVM-2023.2.0
linux-C-PGI-18.10.1 linux-CXX-PGI-18.10.1
linux-Fortran-PGI-18.10.1 linux_pgf77-Fortran-PGI-18.10.1
linux_nostdinc-C-PGI-18.10.1 linux_nostdinc-CXX-PGI-18.10.1
@@ -41,6 +45,8 @@ set(targets
netbsd_nostdinc-C-GNU-4.8.5 netbsd_nostdinc-CXX-GNU-4.8.5
openbsd-C-Clang-5.0.1 openbsd-CXX-Clang-5.0.1
sunos-C-SunPro-5.13.0 sunos-CXX-SunPro-5.13.0 sunos-Fortran-SunPro-8.8.0
+ sunos5.10_sparc32-C-GNU-5.5.0 sunos5.10_sparc32-CXX-GNU-5.5.0 sunos5.10_sparc32-Fortran-GNU-5.5.0
+ sunos5.11_i386-C-GNU-5.5.0 sunos5.11_i386-CXX-GNU-5.5.0 sunos5.11_i386-Fortran-GNU-5.5.0
)
if(CMAKE_HOST_WIN32)
@@ -88,15 +94,6 @@ function(load_compiler_info infile lang_var outcmvars_var outstr_var)
endfunction()
#
-# unload_compiler_info: clear out any CMAKE_* vars load previously set
-#
-function(unload_compiler_info cmvars)
- foreach(var IN LISTS cmvars)
- unset("${var}" PARENT_SCOPE)
- endforeach()
-endfunction()
-
-#
# main test loop
#
foreach(t ${targets})
@@ -113,17 +110,18 @@ foreach(t ${targets})
continue()
endif()
- load_compiler_info(${infile} lang cmvars input)
- file(READ ${outfile} output)
- string(STRIP "${output}" output)
- cmake_parse_implicit_include_info("${input}" "${lang}" idirs log state)
+ block()
+ load_compiler_info(${infile} lang cmvars input)
+ file(READ ${outfile} output)
+ string(STRIP "${output}" output)
+ cmake_parse_implicit_include_info("${input}" "${lang}" idirs log state)
- if(t MATCHES "-empty$") # empty isn't supposed to parse
- if("${state}" STREQUAL "done")
- message("empty parse failed: ${idirs}, log=${log}")
+ if(t MATCHES "-empty$") # empty isn't supposed to parse
+ if("${state}" STREQUAL "done")
+ message("empty parse failed: ${idirs}, log=${log}")
+ endif()
+ elseif(NOT "${state}" STREQUAL "done" OR NOT "${idirs}" MATCHES "^${output}$")
+ message("${t} parse failed: state=${state}, '${idirs}' does not match '^${output}$', log=${log}")
endif()
- elseif(NOT "${state}" STREQUAL "done" OR NOT "${idirs}" MATCHES "^${output}$")
- message("${t} parse failed: state=${state}, '${idirs}' does not match '^${output}$', log=${log}")
- endif()
- unload_compiler_info("${cmvars}")
+ endblock()
endforeach(t)
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/aix-C-IBMClang-17.1.1.2.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/aix-C-IBMClang-17.1.1.2.output
new file mode 100644
index 0000000..4839eed
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/aix-C-IBMClang-17.1.1.2.output
@@ -0,0 +1 @@
+/opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include/ppc_wrappers;/opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include;/usr/include;/opt/IBM/xlmass/10.1.1/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/aix-CXX-IBMClang-17.1.1.2.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/aix-CXX-IBMClang-17.1.1.2.output
new file mode 100644
index 0000000..8831d58
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/aix-CXX-IBMClang-17.1.1.2.output
@@ -0,0 +1 @@
+/opt/IBM/openxlC/17.1.1/include/c\+\+/v1;/opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include/ppc_wrappers;/opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/include;/usr/include;/opt/IBM/xlmass/10.1.1/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-GNU-12.2.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-GNU-12.2.0.output
new file mode 100644
index 0000000..d0fd9ee
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-GNU-12.2.0.output
@@ -0,0 +1 @@
+/usr/lib/gcc/x86_64-linux-gnu/12/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-Intel-2021.10.0.20230609.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-Intel-2021.10.0.20230609.output
new file mode 100644
index 0000000..00614c1
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-Intel-2021.10.0.20230609.output
@@ -0,0 +1 @@
+/opt/intel/oneapi/tbb/2021.10.0/include;/opt/intel/oneapi/mpi/2021.10.0/include;/opt/intel/oneapi/mkl/2023.2.0/include;/opt/intel/oneapi/dpcpp-ct/2023.2.0/include;/opt/intel/oneapi/dev-utilities/2021.10.0/include;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/intel64;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/icc;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include;/usr/local/include;/usr/lib/gcc/x86_64-redhat-linux/8/include;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-IntelLLVM-2023.2.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-IntelLLVM-2023.2.0.output
new file mode 100644
index 0000000..29600d1
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-C-IntelLLVM-2023.2.0.output
@@ -0,0 +1 @@
+/opt/intel/oneapi/tbb/2021.10.0/include;/opt/intel/oneapi/mpi/2021.10.0/include;/opt/intel/oneapi/mkl/2023.2.0/include;/opt/intel/oneapi/dpcpp-ct/2023.2.0/include;/opt/intel/oneapi/dev-utilities/2021.10.0/include;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include;/usr/local/include;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-GNU-12.2.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-GNU-12.2.0.output
new file mode 100644
index 0000000..0005fb2
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-GNU-12.2.0.output
@@ -0,0 +1 @@
+/usr/include/c\+\+/12;/usr/include/x86_64-linux-gnu/c\+\+/12;/usr/include/c\+\+/12/backward;/usr/lib/gcc/x86_64-linux-gnu/12/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-Intel-2021.10.0.20230609.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-Intel-2021.10.0.20230609.output
new file mode 100644
index 0000000..0df22c3
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-Intel-2021.10.0.20230609.output
@@ -0,0 +1 @@
+/opt/intel/oneapi/tbb/2021.10.0/include;/opt/intel/oneapi/mpi/2021.10.0/include;/opt/intel/oneapi/mkl/2023.2.0/include;/opt/intel/oneapi/dpcpp-ct/2023.2.0/include;/opt/intel/oneapi/dev-utilities/2021.10.0/include;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/intel64;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/icc;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include;/usr/include/c\+\+/8;/usr/include/c\+\+/8/x86_64-redhat-linux;/usr/include/c\+\+/8/backward;/usr/local/include;/usr/lib/gcc/x86_64-redhat-linux/8/include;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-IntelLLVM-2023.2.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-IntelLLVM-2023.2.0.output
new file mode 100644
index 0000000..dcce0c6
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-CXX-IntelLLVM-2023.2.0.output
@@ -0,0 +1 @@
+/opt/intel/oneapi/tbb/2021.10.0/include;/opt/intel/oneapi/mpi/2021.10.0/include;/opt/intel/oneapi/mkl/2023.2.0/include;/opt/intel/oneapi/dpcpp-ct/2023.2.0/include;/opt/intel/oneapi/dev-utilities/2021.10.0/include;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include;/usr/include/c\+\+/8;/usr/include/c\+\+/8/x86_64-redhat-linux;/usr/include/c\+\+/8/backward;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include;/usr/local/include;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-GNU-12.2.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-GNU-12.2.0.output
new file mode 100644
index 0000000..d0fd9ee
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-GNU-12.2.0.output
@@ -0,0 +1 @@
+/usr/lib/gcc/x86_64-linux-gnu/12/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-Intel-2021.10.0.20230609.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-Intel-2021.10.0.20230609.output
new file mode 100644
index 0000000..00614c1
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-Intel-2021.10.0.20230609.output
@@ -0,0 +1 @@
+/opt/intel/oneapi/tbb/2021.10.0/include;/opt/intel/oneapi/mpi/2021.10.0/include;/opt/intel/oneapi/mkl/2023.2.0/include;/opt/intel/oneapi/dpcpp-ct/2023.2.0/include;/opt/intel/oneapi/dev-utilities/2021.10.0/include;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/intel64;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/icc;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include;/usr/local/include;/usr/lib/gcc/x86_64-redhat-linux/8/include;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-IntelLLVM-2023.2.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-IntelLLVM-2023.2.0.output
new file mode 100644
index 0000000..e447350
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/linux-Fortran-IntelLLVM-2023.2.0.output
@@ -0,0 +1 @@
+/opt/intel/oneapi/tbb/2021.10.0/include;/opt/intel/oneapi/mpi/2021.10.0/include;/opt/intel/oneapi/mkl/2023.2.0/include;/opt/intel/oneapi/dpcpp-ct/2023.2.0/include;/opt/intel/oneapi/dev-utilities/2021.10.0/include;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/oclfpga/include;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include/intel64;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/include;/usr/local/include;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/include;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-C-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-C-GNU-5.5.0.output
new file mode 100644
index 0000000..b2c73fb
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-C-GNU-5.5.0.output
@@ -0,0 +1 @@
+/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include;/opt/csw/include;/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-CXX-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-CXX-GNU-5.5.0.output
new file mode 100644
index 0000000..a22ced0
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-CXX-GNU-5.5.0.output
@@ -0,0 +1 @@
+/opt/csw/include/c\+\+/5.5.0;/opt/csw/include/c\+\+/5.5.0/sparc-sun-solaris2.10;/opt/csw/include/c\+\+/5.5.0/backward;/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include;/opt/csw/include;/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-Fortran-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-Fortran-GNU-5.5.0.output
new file mode 100644
index 0000000..0488c01
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.10_sparc32-Fortran-GNU-5.5.0.output
@@ -0,0 +1 @@
+/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/finclude;/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include;/opt/csw/include;/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-C-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-C-GNU-5.5.0.output
new file mode 100644
index 0000000..0016671
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-C-GNU-5.5.0.output
@@ -0,0 +1 @@
+/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include;/opt/csw/include;/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-CXX-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-CXX-GNU-5.5.0.output
new file mode 100644
index 0000000..60dfb81
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-CXX-GNU-5.5.0.output
@@ -0,0 +1 @@
+/opt/csw/include/c\+\+/5.5.0;/opt/csw/include/c\+\+/5.5.0/i386-pc-solaris2.10;/opt/csw/include/c\+\+/5.5.0/backward;/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include;/opt/csw/include;/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-Fortran-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-Fortran-GNU-5.5.0.output
new file mode 100644
index 0000000..16673a5
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitIncludeInfo/results/sunos5.11_i386-Fortran-GNU-5.5.0.output
@@ -0,0 +1 @@
+/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/finclude;/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include;/opt/csw/include;/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0/include-fixed;/usr/include
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/DetermineLinkerId.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/DetermineLinkerId.cmake
new file mode 100644
index 0000000..73e5e1b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/DetermineLinkerId.cmake
@@ -0,0 +1,37 @@
+include(${CMAKE_ROOT}/Modules/Internal/CMakeDetermineLinkerId.cmake)
+
+set(tools
+ aix7.3-ld
+ debian12-ld.bfd
+ debian12-ld.gold
+ debian12-ld.lld
+ debian12-ld.mold
+ fedora39-ld.bfd
+ fedora39-ld.gold
+ fedora39-ld.lld
+ fedora39-ld.mold
+ msvc14.36-link
+ sunos5.11-ld
+ xcode15.1-ld
+ )
+
+foreach(tool IN LISTS tools)
+ block()
+ include(${CMAKE_CURRENT_LIST_DIR}/ld-v/${tool}.cmake OPTIONAL)
+ cmake_determine_linker_id(C ${CMAKE_CURRENT_LIST_DIR}/ld-v/${tool}.bash)
+ file(STRINGS ${CMAKE_CURRENT_LIST_DIR}/ld-v/${tool}.txt results)
+ foreach(result IN LISTS results)
+ if(result MATCHES "^([A-Z_]+)='([^']*)'")
+ set(expect_var "${CMAKE_MATCH_1}")
+ set(expect_val "${CMAKE_MATCH_2}")
+ if(NOT "x${${expect_var}}" STREQUAL "x${expect_val}")
+ message(SEND_ERROR "${tool} result\n"
+ " ${expect_var}='${${expect_var}}'\n"
+ "is not expected\n"
+ " ${expect_var}='${expect_val}'\n"
+ )
+ endif()
+ endif()
+ endforeach()
+ endblock()
+endforeach()
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/Inspect.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/Inspect.cmake
index 42e1c67..fd93baf 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/Inspect.cmake
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/Inspect.cmake
@@ -2,10 +2,17 @@ enable_language(C)
set(info "")
foreach(var
+ CMAKE_SYSTEM_NAME
+ CMAKE_C_COMPILER
+ CMAKE_C_COMPILER_ID
+ CMAKE_C_COMPILER_VERSION
+ CMAKE_C_COMPILER_LINKER
+ CMAKE_C_COMPILER_LINKER_ID
+ CMAKE_C_COMPILER_LINKER_VERSION
CMAKE_C_IMPLICIT_LINK_DIRECTORIES
)
if(DEFINED ${var})
- string(APPEND info "set(INFO_${var} \"${${var}}\")\n")
+ string(APPEND info "set(${var} \"${${var}}\")\n")
endif()
endforeach()
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
index 0ede9ee..8d6c739 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ParseImplicitLinkInfo.cmake
@@ -8,6 +8,7 @@
set(targets
aix-C-XL-13.1.3 aix-CXX-XL-13.1.3
aix-C-XLClang-16.1.0.1 aix-CXX-XLClang-16.1.0.1
+ aix-C-IBMClang-17.1.1.2 aix-CXX-IBMClang-17.1.1.2
craype-C-Cray-8.7 craype-CXX-Cray-8.7 craype-Fortran-Cray-8.7
craype-C-Cray-9.0-hlist-ad craype-CXX-Cray-9.0-hlist-ad craype-Fortran-Cray-9.0-hlist-ad
craype-C-GNU-7.3.0 craype-CXX-GNU-7.3.0 craype-Fortran-GNU-7.3.0
@@ -23,7 +24,10 @@ set(targets
linux-C-GNU-10.2.1-static-libgcc
linux-CXX-GNU-10.2.1-static-libstdc++
linux-Fortran-GNU-10.2.1-static-libgfortran
+ linux-C-GNU-12.2.0 linux-CXX-GNU-12.2.0 linux-Fortran-GNU-12.2.0
linux-C-Intel-18.0.0.20170811 linux-CXX-Intel-18.0.0.20170811
+ linux-C-Intel-2021.10.0.20230609 linux-CXX-Intel-2021.10.0.20230609 linux-Fortran-Intel-2021.10.0.20230609
+ linux-C-IntelLLVM-2023.2.0 linux-CXX-IntelLLVM-2023.2.0 linux-Fortran-IntelLLVM-2023.2.0
linux-C-PGI-18.10.1 linux-CXX-PGI-18.10.1
linux-Fortran-PGI-18.10.1 linux_pgf77-Fortran-PGI-18.10.1
linux_nostdinc-C-PGI-18.10.1 linux_nostdinc-CXX-PGI-18.10.1
@@ -42,8 +46,14 @@ set(targets
netbsd_nostdinc-C-GNU-4.8.5 netbsd_nostdinc-CXX-GNU-4.8.5
openbsd-C-Clang-5.0.1 openbsd-CXX-Clang-5.0.1
sunos-C-SunPro-5.13.0 sunos-CXX-SunPro-5.13.0 sunos-Fortran-SunPro-8.8.0
+ sunos5.10_sparc32-C-GNU-5.5.0 sunos5.10_sparc32-CXX-GNU-5.5.0 sunos5.10_sparc32-Fortran-GNU-5.5.0
+ sunos5.11_i386-C-GNU-5.5.0 sunos5.11_i386-CXX-GNU-5.5.0 sunos5.11_i386-Fortran-GNU-5.5.0
+ windows_x86_64-C-MSVC-19.36.32543.0 windows_x86_64-CXX-MSVC-19.36.32543.0
+ windows_x86_64-C-MSVC-19.38.33130.0-VS windows_x86_64-CXX-MSVC-19.38.33130.0-VS
windows_x86_64-C-Clang-17.0.1-MSVC windows_x86_64-CXX-Clang-17.0.1-MSVC windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC
windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC
+ windows_x86_64-C-Intel-2021.9.0.20230302 windows_x86_64-CXX-Intel-2021.9.0.20230302 windows_x86_64-Fortran-Intel-2021.9.0.20230302
+ windows_x86_64-C-IntelLLVM-2023.1.0 windows_x86_64-CXX-IntelLLVM-2023.1.0 windows_x86_64-Fortran-IntelLLVM-2023.1.0
windows_arm64-C-Clang-17.0.1-MSVC windows_arm64-CXX-Clang-17.0.1-MSVC windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC
)
@@ -94,16 +104,6 @@ function(load_compiler_info infile lang_var outcmvars_var outstr_var)
endfunction()
#
-# unload_compiler_info: clear out any CMAKE_* vars load previously set
-#
-function(unload_compiler_info cmvars)
- foreach(var IN LISTS cmvars)
- unset("${var}" PARENT_SCOPE)
- endforeach()
-endfunction()
-
-
-#
# load_platform_info: establish CMAKE_LIBRARY_ARCHITECTURE_REGEX
# based on the target platform.
#
@@ -132,49 +132,64 @@ foreach(t ${targets})
continue()
endif()
- load_compiler_info(${infile} lang cmvars input)
- load_platform_info(${t})
+ block()
+ load_compiler_info(${infile} lang cmvars input)
+ load_platform_info(${t})
- # Need to handle files with empty entries for both libs or dirs
- set(implicit_lib_output "")
- set(idirs_output "")
- set(implicit_objs "")
- set(library_arch_output "")
- file(STRINGS ${outfile} outputs)
- foreach(line IN LISTS outputs)
- if(line MATCHES "libs=")
- string(REPLACE "libs=" "" implicit_lib_output "${line}")
- endif()
- if(line MATCHES "dirs=")
- string(REPLACE "dirs=" "" idirs_output "${line}")
- endif()
- if(line MATCHES "library_arch=")
- string(REPLACE "library_arch=" "" library_arch_output "${line}")
- endif()
- endforeach()
+ # Need to handle files with empty entries for both libs or dirs
+ set(implicit_lib_output "")
+ set(idirs_output "")
+ set(implicit_objs "")
+ set(library_arch_output "")
+ set(linker_tool_output "")
+ file(STRINGS ${outfile} outputs)
+ foreach(line IN LISTS outputs)
+ if(line MATCHES "libs=")
+ string(REPLACE "libs=" "" implicit_lib_output "${line}")
+ endif()
+ if(line MATCHES "dirs=")
+ string(REPLACE "dirs=" "" idirs_output "${line}")
+ endif()
+ if(line MATCHES "library_arch=")
+ string(REPLACE "library_arch=" "" library_arch_output "${line}")
+ endif()
+ if(line MATCHES "linker_tool=")
+ string(REPLACE "linker_tool=" "" linker_tool_output "${line}")
+ endif()
+ endforeach()
- cmake_parse_implicit_link_info("${input}" implicit_libs idirs implicit_fwks log
- "${CMAKE_${lang}_IMPLICIT_OBJECT_REGEX}"
- LANGUAGE ${lang}
- COMPUTE_IMPLICIT_OBJECTS implicit_objs)
+ cmake_parse_implicit_link_info2("${input}" log
+ "${CMAKE_${lang}_IMPLICIT_OBJECT_REGEX}"
+ LANGUAGE ${lang}
+ COMPUTE_LINKER linker_tool
+ COMPUTE_IMPLICIT_LIBS implicit_libs
+ COMPUTE_IMPLICIT_DIRS idirs
+ COMPUTE_IMPLICIT_FWKS implicit_fwks
+ COMPUTE_IMPLICIT_OBJECTS implicit_objs)
- set(library_arch)
- cmake_parse_library_architecture(${lang} "${idirs}" "${implicit_objs}" library_arch)
+ set(library_arch)
+ cmake_parse_library_architecture(${lang} "${idirs}" "${implicit_objs}" library_arch)
- # File format
- # file(WRITE ${outfile} "libs=${implicit_libs}\ndirs=${idirs}\nlibrary_arch=${library_arch}")
+ # File format
+ # file(WRITE ${outfile} "libs=${implicit_libs}\ndirs=${idirs}\nlibrary_arch=${library_arch}\nlinker_tool=${linker_tool}\n")
- if(t MATCHES "-empty$") # empty isn't supposed to parse
- if("${state}" STREQUAL "done")
- message("empty parse failed: ${idirs}, log=${log}")
+ if(t MATCHES "windows" AND NOT CMAKE_HOST_WIN32)
+ string(REPLACE "\\" "/" linker_tool "${linker_tool}")
+ cmake_path(NORMAL_PATH linker_tool)
endif()
- elseif(NOT "${idirs}" MATCHES "^${idirs_output}$")
- message("${t} parse failed: state=${state}, '${idirs}' does not match '^${idirs_output}$'")
- elseif(NOT "${implicit_libs}" MATCHES "^${implicit_lib_output}$")
- message("${t} parse failed: state=${state}, '${implicit_libs}' does not match '^${implicit_lib_output}$'")
- elseif((library_arch OR library_arch_output) AND NOT "${library_arch}" MATCHES "^${library_arch_output}$")
- message("${t} parse failed: state=${state}, '${library_arch}' does not match '^${library_arch_output}$'")
- endif()
- unload_compiler_info("${cmvars}")
+ if(t MATCHES "-empty$") # empty isn't supposed to parse
+ if("${state}" STREQUAL "done")
+ message("empty parse failed: ${idirs}, log=${log}")
+ endif()
+ elseif(NOT "${idirs}" MATCHES "^${idirs_output}$")
+ message("${t} parse failed: state=${state}, '${idirs}' does not match '^${idirs_output}$'")
+ elseif(NOT "${implicit_libs}" MATCHES "^${implicit_lib_output}$")
+ message("${t} parse failed: state=${state}, '${implicit_libs}' does not match '^${implicit_lib_output}$'")
+ elseif((library_arch OR library_arch_output) AND NOT "${library_arch}" MATCHES "^${library_arch_output}$")
+ message("${t} parse failed: state=${state}, '${library_arch}' does not match '^${library_arch_output}$'")
+ elseif((linker_tool OR linker_tool_output) AND NOT "${linker_tool}" MATCHES "^${linker_tool_output}$")
+ message("${t} parse failed: state=${state}, '${linker_tool}' does not match '^${linker_tool_output}$'")
+ endif()
+ endblock()
endforeach(t)
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/RunCMakeTest.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/RunCMakeTest.cmake
index c7655d2..9514c97 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/RunCMakeTest.cmake
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/RunCMakeTest.cmake
@@ -2,10 +2,41 @@ include(RunCMake)
run_cmake(ParseImplicitLinkInfo)
+# Detect information from the toolchain:
+# - CMAKE_SYSTEM_NAME
+# - CMAKE_C_COMPILER
+# - CMAKE_C_COMPILER_ID
+# - CMAKE_C_COMPILER_VERSION
+# - CMAKE_C_COMPILER_LINKER
+# - CMAKE_C_COMPILER_LINKER_ID
+# - CMAKE_C_COMPILER_LINKER_VERSION
+# - CMAKE_C_IMPLICIT_LINK_DIRECTORIES
run_cmake(Inspect)
set(info "${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
include("${info}")
-if(INFO_CMAKE_C_IMPLICIT_LINK_DIRECTORIES MATCHES ";")
+if(CMAKE_HOST_UNIX)
+ run_cmake_script(DetermineLinkerId)
+endif()
+
+if(CMAKE_C_IMPLICIT_LINK_DIRECTORIES MATCHES ";")
run_cmake_with_options(ExcludeDirs "-Dinfo=${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
endif()
+
+if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Darwin|Windows|AIX|SunOS)$|BSD"
+ AND NOT CMAKE_C_COMPILER_ID MATCHES "^(Borland|Embarcadero|OpenWatcom|OrangeC|Watcom)$"
+ AND NOT (CMAKE_C_COMPILER_ID MATCHES "^(Intel|IntelLLVM)$" AND CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ AND NOT CMAKE_C_COMPILER_LINKER MATCHES "Visual Studio 9\\.0"
+ AND NOT RunCMake_GENERATOR MATCHES "Visual Studio 9 "
+ )
+ if(NOT CMAKE_C_COMPILER_LINKER OR NOT CMAKE_C_COMPILER_LINKER_ID OR NOT CMAKE_C_COMPILER_LINKER_VERSION)
+ message(SEND_ERROR "C compiler's linker not identified:\n"
+ " CMAKE_C_COMPILER='${CMAKE_C_COMPILER}'\n"
+ " CMAKE_C_COMPILER_ID='${CMAKE_C_COMPILER_ID}'\n"
+ " CMAKE_C_COMPILER_VERSION='${CMAKE_C_COMPILER_VERSION}'\n"
+ " CMAKE_C_COMPILER_LINKER='${CMAKE_C_COMPILER_LINKER}'\n"
+ " CMAKE_C_COMPILER_LINKER_ID='${CMAKE_C_COMPILER_LINKER_ID}'\n"
+ " CMAKE_C_COMPILER_LINKER_VERSION='${CMAKE_C_COMPILER_LINKER_VERSION}'\n"
+ )
+ endif()
+endif()
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.bash
new file mode 100755
index 0000000..b996b53
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'ld: LD 7.3.1(6/9/22)'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.cmake
new file mode 100644
index 0000000..e01e467
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.cmake
@@ -0,0 +1 @@
+set(CMAKE_SYSTEM_NAME "AIX")
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.txt
new file mode 100644
index 0000000..a708bd2
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/aix7.3-ld.txt
@@ -0,0 +1,2 @@
+CMAKE_C_COMPILER_LINKER_ID='AIX'
+CMAKE_C_COMPILER_LINKER_VERSION='7.3.1'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.bfd.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.bfd.bash
new file mode 100755
index 0000000..d63fd30
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.bfd.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'GNU ld (GNU Binutils for Debian) 2.40'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.bfd.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.bfd.txt
new file mode 100644
index 0000000..802becd
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.bfd.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='GNU'
+CMAKE_C_COMPILER_LINKER_VERSION='2.40'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.gold.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.gold.bash
new file mode 100755
index 0000000..894219c
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.gold.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'GNU gold (GNU Binutils for Debian 2.40) 1.16'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.gold.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.gold.txt
new file mode 100644
index 0000000..0b4e7c2
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.gold.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='GNUgold'
+CMAKE_C_COMPILER_LINKER_VERSION='1.16'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.lld.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.lld.bash
new file mode 100755
index 0000000..8b3099e
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.lld.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'Debian LLD 14.0.6 (compatible with GNU linkers)'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.lld.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.lld.txt
new file mode 100644
index 0000000..e689c2c
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.lld.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='LLD'
+CMAKE_C_COMPILER_LINKER_VERSION='14.0.6'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.mold.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.mold.bash
new file mode 100755
index 0000000..99bf1a3
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.mold.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'mold 1.10.1 (compatible with GNU ld)'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.mold.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.mold.txt
new file mode 100644
index 0000000..0f4d63e
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/debian12-ld.mold.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='MOLD'
+CMAKE_C_COMPILER_LINKER_VERSION='1.10.1'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.bfd.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.bfd.bash
new file mode 100755
index 0000000..c74ea41
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.bfd.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'GNU ld version 2.40-13.fc39'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.bfd.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.bfd.txt
new file mode 100644
index 0000000..802becd
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.bfd.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='GNU'
+CMAKE_C_COMPILER_LINKER_VERSION='2.40'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.gold.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.gold.bash
new file mode 100755
index 0000000..c79bc24
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.gold.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'GNU gold (version 2.40-13.fc39) 1.16'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.gold.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.gold.txt
new file mode 100644
index 0000000..0b4e7c2
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.gold.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='GNUgold'
+CMAKE_C_COMPILER_LINKER_VERSION='1.16'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.lld.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.lld.bash
new file mode 100755
index 0000000..fef53f9
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.lld.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'LLD 17.0.4 (compatible with GNU linkers)'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.lld.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.lld.txt
new file mode 100644
index 0000000..e9d0d36
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.lld.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='LLD'
+CMAKE_C_COMPILER_LINKER_VERSION='17.0.4'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.mold.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.mold.bash
new file mode 100755
index 0000000..c20639c
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.mold.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'mold 2.4.0 (compatible with GNU ld)'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.mold.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.mold.txt
new file mode 100644
index 0000000..708c5dc
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/fedora39-ld.mold.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='MOLD'
+CMAKE_C_COMPILER_LINKER_VERSION='2.4.0'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/msvc14.36-link.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/msvc14.36-link.bash
new file mode 100755
index 0000000..3599216
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/msvc14.36-link.bash
@@ -0,0 +1,5 @@
+#!/bin/sh
+echo 'Microsoft (R) Incremental Linker Version 14.36.32543.0
+Copyright (C) Microsoft Corporation. All rights reserved.
+
+ usage: LINK [options] [files] [@commandfile]'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/msvc14.36-link.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/msvc14.36-link.txt
new file mode 100644
index 0000000..b15aaf0
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/msvc14.36-link.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='MSVC'
+CMAKE_C_COMPILER_LINKER_VERSION='14.36.32543.0'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='MSVC'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.bash
new file mode 100755
index 0000000..b296462
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.bash
@@ -0,0 +1,2 @@
+#!/bin/sh
+echo 'ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.2458'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.cmake
new file mode 100644
index 0000000..323087d
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.cmake
@@ -0,0 +1 @@
+set(CMAKE_SYSTEM_NAME "SunOS")
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.txt
new file mode 100644
index 0000000..6c645a6
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/sunos5.11-ld.txt
@@ -0,0 +1,2 @@
+CMAKE_C_COMPILER_LINKER_ID='Solaris'
+CMAKE_C_COMPILER_LINKER_VERSION='5.11-1.2458'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.bash b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.bash
new file mode 100755
index 0000000..8dd9267
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.bash
@@ -0,0 +1,9 @@
+#!/bin/sh
+echo '@(#)PROGRAM:ld PROJECT:dyld-1022.1
+BUILD 13:21:42 Nov 10 2023
+configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h
+will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
+LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
+TAPI support using: Apple TAPI version 15.0.0 (tapi-1500.0.12.8)
+Library search paths:
+Framework search paths:'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.cmake b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.cmake
new file mode 100644
index 0000000..9982824
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.cmake
@@ -0,0 +1 @@
+set(CMAKE_EFFECTIVE_SYSTEM_NAME "Apple")
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.txt b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.txt
new file mode 100644
index 0000000..f2eb083
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/ld-v/xcode15.1-ld.txt
@@ -0,0 +1,3 @@
+CMAKE_C_COMPILER_LINKER_ID='AppleClang'
+CMAKE_C_COMPILER_LINKER_VERSION='1022.1'
+CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-IBMClang-17.1.1.2.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-IBMClang-17.1.1.2.output
new file mode 100644
index 0000000..9979735
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-IBMClang-17.1.1.2.output
@@ -0,0 +1,3 @@
+libs=/opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/lib/aix/libxlopt.a;unwind;pthreads;c
+dirs=/opt/IBM/xlmass/10.1.1/lib
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output
index 4e030b3..17e6308 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XL-13.1.3.output
@@ -1,2 +1,3 @@
libs=xlopt;xlipa;xl;c
dirs=/opt/IBM/xlmass/8.1.3/lib/aix61;/opt/IBM/xlc/13.1.3/lib
+linker_tool=/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output
index 6f677a0..462d852 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-C-XLClang-16.1.0.1.output
@@ -1,2 +1,3 @@
libs=xlopt;xlipa;xl;c;pthreads
dirs=/opt/IBM/xlmass/9.1.0/lib/aix61;/opt/IBM/xlc/16.1.0/lib
+linker_tool=/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-IBMClang-17.1.1.2.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-IBMClang-17.1.1.2.output
new file mode 100644
index 0000000..8dbb500
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-IBMClang-17.1.1.2.output
@@ -0,0 +1,3 @@
+libs=c\+\+;c\+\+abi;/opt/IBM/openxlC/17.1.1/lib/clang/15.0.0/lib/aix/libxlopt.a;unwind;pthreads;m;c
+dirs=/opt/IBM/xlmass/10.1.1/lib
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output
index 6cbc792..33a2f44 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XL-13.1.3.output
@@ -1,2 +1,3 @@
libs=xlopt;xlipa;xl;C;m;c
dirs=/opt/IBM/xlmass/8.1.3/lib/aix61;/opt/IBM/xlc/13.1.3/lib;/opt/IBM/xlC/13.1.3/lib
+linker_tool=/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output
index 3a57464..3599785 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/aix-CXX-XLClang-16.1.0.1.output
@@ -1,2 +1,3 @@
libs=xlopt;xlipa;xl;c\+\+;Ccore;pthreads;m;c
dirs=/opt/IBM/xlmass/9.1.0/lib/aix61;/opt/IBM/xlc/16.1.0/lib;/opt/IBM/xlC/16.1.0/lib
+linker_tool=/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output
index 0373d89..8f68c4c 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-8.7.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;pthread;sci_cray_mpi_mp;m;f;sci_cray_mp;craymp;m;pthread;f;hugetlbfs;mpich_cray;rt;pthread;ugni;pmi;pgas-dmapp;fi;u;rt;dmapp;ugni;udreg;pthread;m;cray-c\+\+-rts;stdc\+\+;xpmem;dmapp;pthread;pmi;pthread;alpslli;pthread;wlm_detect;ugni;pthread;alpsutil;pthread;rca;udreg;quadmath;m;omp;rt;craymp;pthread;rt;dl;cray-c\+\+-rts;stdc\+\+;m;modules;m;rt;fi;m;quadmath;rt;craymath;m;gfortran;quadmath;rt;f;m;pthread;rt;u;rt;dl;cray-c\+\+-rts;stdc\+\+;m;csup;rt;atomic;stdc\+\+;pthread;c;csup;m;gcc
dirs=/opt/gcc/6.1.0/snos/lib64;/opt/cray/pe/libsci/18.07.1/CRAY/8.6/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-cray/8.6/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/alps/6.5.28-6.0.5.0_18.6__g13a91b6.ari/lib64;/opt/cray/xpmem/2.2.4-6.0.5.1_8.26__g35d5e73.ari/lib64;/opt/cray/dmapp/7.1.1-6.0.5.0_49.8__g1125556.ari/lib64;/opt/cray/pe/pmi/5.0.14/lib64;/opt/cray/ugni/6.0.14-6.0.5.0_16.9__g19583bb.ari/lib64;/opt/cray/udreg/2.3.2-6.0.5.0_13.12__ga14955a.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/pe/cce/8.7.4/cce/x86_64/lib;/opt/cray/wlm_detect/1.3.2-6.0.5.0_3.1__g388ccd5.ari/lib64;/usr/lib64;/lib64;/opt/gcc/6.1.0/snos/lib/gcc/x86_64-suse-linux/6.1.0;/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-unknown-linux-gnu/lib
+linker_tool=/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-9.0-hlist-ad.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-9.0-hlist-ad.output
index 0f52e8b..b192e8b 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-9.0-hlist-ad.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Cray-9.0-hlist-ad.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;rca;mpich_cray_90;sci_cray_mpi;sci_cray;pgas-dmapp;quadmath;modules;fi;craymath;f;u;csup;atomic;tcmalloc_minimal;cray-c\+\+-rts;stdc\+\+;pthread;c;csup;m;clang_rt.craypgo-x86_64;gcc
dirs=/opt/gcc/8.1.0/snos/lib64;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.8/gni/mpich-cray/9.0/lib;/opt/cray/pe/libsci/19.06.1/CRAY/9.0/x86_64/lib;/opt/cray/rca/2.2.18-6.0.7.0_33.3__g2aa4f39.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/pe/cce/9.0.0/cce/x86_64/lib;/usr/lib64;/lib64;/opt/cray/pe/cce/9.0.0/cce-clang/x86_64/lib/clang/9.0.0/lib/linux;/opt/gcc/8.1.0/snos/lib/gcc/x86_64-suse-linux/8.1.0;/opt/cray/pe/cce/9.0.0/binutils/x86_64/x86_64-unknown-linux-gnu/lib
+linker_tool=/opt/cray/pe/cce/9.0.0/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-GNU-7.3.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-GNU-7.3.0.output
index 267bf58..bd6add6 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-GNU-7.3.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-GNU-7.3.0.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;pthread;sci_gnu_71_mpi;sci_gnu_71;pthread;hugetlbfs;mpich_gnu_71;rt;ugni;pthread;pmi;pthread;alpslli;pthread;wlm_detect;alpsutil;pthread;rca;xpmem;ugni;pthread;udreg;gfortran;quadmath;mvec;m;pthread;gcc;c
dirs=/opt/cray/pe/libsci/18.07.1/GNU/7.1/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/alps/6.5.28-6.0.5.0_18.6__g13a91b6.ari/lib64;/opt/cray/xpmem/2.2.4-6.0.5.1_8.26__g35d5e73.ari/lib64;/opt/cray/pe/pmi/5.0.14/lib64;/opt/cray/ugni/6.0.14-6.0.5.0_16.9__g19583bb.ari/lib64;/opt/cray/udreg/2.3.2-6.0.5.0_13.12__ga14955a.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/wlm_detect/1.3.2-6.0.5.0_3.1__g388ccd5.ari/lib64;/opt/gcc/7.3.0/snos/lib/gcc/x86_64-suse-linux/7.3.0;/opt/gcc/7.3.0/snos/lib64;/lib64;/usr/lib64;/opt/gcc/7.3.0/snos/lib
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Intel-18.0.2.20180210.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Intel-18.0.2.20180210.output
index 5b8ae8d..a3f11f4 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Intel-18.0.2.20180210.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-C-Intel-18.0.2.20180210.output
@@ -1,2 +1,3 @@
libs=imf;svml;irng;m;ipgo;decimal;cilkrts;stdc\+\+;gcc;gcc_s;irc;svml;c;gcc;gcc_s;irc_s;dl;c
dirs=/opt/intel/2018.2.199/compilers_and_libraries_2018/linux/mkl/lib/intel64;/opt/intel/2018.2.199/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64_lin;/opt/gcc/6.3.0/snos/lib/gcc/x86_64-suse-linux/6.3.0;/opt/gcc/6.3.0/snos/lib64;/lib64;/usr/lib64;/opt/gcc/6.3.0/snos/lib;/lib;/usr/lib
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output
index 00281d5..0b25047 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-8.7.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;pthread;sci_cray_mpi_mp;m;f;sci_cray_mp;craymp;m;pthread;f;hugetlbfs;mpichcxx_cray;rt;pthread;ugni;pmi;mpich_cray;rt;pthread;ugni;pmi;pgas-dmapp;fi;u;rt;dmapp;ugni;udreg;pthread;m;cray-c\+\+-rts;stdc\+\+;xpmem;dmapp;pthread;pmi;pthread;alpslli;pthread;wlm_detect;ugni;pthread;alpsutil;pthread;rca;udreg;quadmath;m;omp;rt;craymp;pthread;rt;dl;cray-c\+\+-rts;stdc\+\+;m;modules;m;rt;fi;m;quadmath;rt;craymath;m;gfortran;quadmath;rt;f;m;pthread;rt;u;rt;dl;cray-c\+\+-rts;stdc\+\+;m;csup;rt;atomic;cray-c\+\+-rts;stdc\+\+;supc\+\+;stdc\+\+;pthread;c;csup;m;gcc
dirs=/opt/gcc/6.1.0/snos/lib64;/opt/cray/pe/libsci/18.07.1/CRAY/8.6/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-cray/8.6/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/alps/6.5.28-6.0.5.0_18.6__g13a91b6.ari/lib64;/opt/cray/xpmem/2.2.4-6.0.5.1_8.26__g35d5e73.ari/lib64;/opt/cray/dmapp/7.1.1-6.0.5.0_49.8__g1125556.ari/lib64;/opt/cray/pe/pmi/5.0.14/lib64;/opt/cray/ugni/6.0.14-6.0.5.0_16.9__g19583bb.ari/lib64;/opt/cray/udreg/2.3.2-6.0.5.0_13.12__ga14955a.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/pe/cce/8.7.4/cce/x86_64/lib;/opt/cray/wlm_detect/1.3.2-6.0.5.0_3.1__g388ccd5.ari/lib64;/usr/lib64;/lib64;/opt/gcc/6.1.0/snos/lib/gcc/x86_64-suse-linux/6.1.0;/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-unknown-linux-gnu/lib
+linker_tool=/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-9.0-hlist-ad.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-9.0-hlist-ad.output
index a7287d3..861ba7b 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-9.0-hlist-ad.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Cray-9.0-hlist-ad.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;rca;mpich_cray_90;mpichcxx_cray_90;sci_cray_mpi;sci_cray;pgas-dmapp;quadmath;modules;fi;craymath;f;u;csup;atomic;cray-c\+\+-rts;cray-c\+\+-rts;stdc\+\+;supc\+\+;tcmalloc_minimal;cray-c\+\+-rts;stdc\+\+;pthread;c;csup;m;clang_rt.craypgo-x86_64;gcc
dirs=/opt/gcc/8.1.0/snos/lib64;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.8/gni/mpich-cray/9.0/lib;/opt/cray/pe/libsci/19.06.1/CRAY/9.0/x86_64/lib;/opt/cray/rca/2.2.18-6.0.7.0_33.3__g2aa4f39.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/pe/cce/9.0.0/cce/x86_64/lib;/usr/lib64;/lib64;/opt/cray/pe/cce/9.0.0/cce-clang/x86_64/lib/clang/9.0.0/lib/linux;/opt/gcc/8.1.0/snos/lib/gcc/x86_64-suse-linux/8.1.0;/opt/cray/pe/cce/9.0.0/binutils/x86_64/x86_64-unknown-linux-gnu/lib
+linker_tool=/opt/cray/pe/cce/9.0.0/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-GNU-7.3.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-GNU-7.3.0.output
index ead4804..fa56fbb 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-GNU-7.3.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-GNU-7.3.0.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;pthread;sci_gnu_71_mpi;sci_gnu_71;pthread;hugetlbfs;mpichcxx_gnu_71;rt;ugni;pthread;pmi;mpich_gnu_71;rt;ugni;pthread;pmi;pthread;alpslli;pthread;wlm_detect;alpsutil;pthread;rca;ugni;pthread;xpmem;udreg;gfortran;quadmath;mvec;m;pthread;stdc\+\+;m;gcc;c
dirs=/opt/cray/pe/libsci/18.07.1/GNU/7.1/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/alps/6.5.28-6.0.5.0_18.6__g13a91b6.ari/lib64;/opt/cray/xpmem/2.2.4-6.0.5.1_8.26__g35d5e73.ari/lib64;/opt/cray/pe/pmi/5.0.14/lib64;/opt/cray/ugni/6.0.14-6.0.5.0_16.9__g19583bb.ari/lib64;/opt/cray/udreg/2.3.2-6.0.5.0_13.12__ga14955a.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/wlm_detect/1.3.2-6.0.5.0_3.1__g388ccd5.ari/lib64;/opt/gcc/7.3.0/snos/lib/gcc/x86_64-suse-linux/7.3.0;/opt/gcc/7.3.0/snos/lib64;/lib64;/usr/lib64;/opt/gcc/7.3.0/snos/lib
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Intel-18.0.2.20180210.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Intel-18.0.2.20180210.output
index 1a3b736..0d77d39 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Intel-18.0.2.20180210.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-CXX-Intel-18.0.2.20180210.output
@@ -1,2 +1,3 @@
libs=imf;svml;irng;stdc\+\+;m;ipgo;decimal;cilkrts;stdc\+\+;gcc;gcc_s;irc;svml;c;gcc;gcc_s;irc_s;dl;c
dirs=/opt/intel/2018.2.199/compilers_and_libraries_2018/linux/mkl/lib/intel64;/opt/intel/2018.2.199/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64_lin;/opt/gcc/6.3.0/snos/lib/gcc/x86_64-suse-linux/6.3.0;/opt/gcc/6.3.0/snos/lib64;/lib64;/usr/lib64;/opt/gcc/6.3.0/snos/lib;/lib;/usr/lib
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-8.7.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-8.7.output
index 3b26f40..f580b77 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-8.7.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-8.7.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;rca;sci_cray_mpi_mp;sci_cray_mp;mpich_cray;mpichf90_cray;pgas-dmapp;quadmath;omp;craymp;modules;fi;craymath;f;u;csup;atomic;gfortran;tcmalloc_minimal;stdc\+\+;pthread;c;csup;m;gcc
dirs=/opt/gcc/6.1.0/snos/lib64;/opt/cray/pe/libsci/18.07.1/CRAY/8.6/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-cray/8.6/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/pe/cce/8.7.4/cce/x86_64/lib;/usr/lib64;/lib64;/opt/gcc/6.1.0/snos/lib/gcc/x86_64-suse-linux/6.1.0;/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-unknown-linux-gnu/lib
+linker_tool=/opt/cray/pe/cce/8.7.4/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-9.0-hlist-ad.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-9.0-hlist-ad.output
index d15e5a7..312bc13 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-9.0-hlist-ad.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Cray-9.0-hlist-ad.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;rca;mpich_cray_90;mpichf90_cray_90;sci_cray_mpi;sci_cray;pgas-dmapp;quadmath;modules;fi;craymath;f;u;csup;gfortran;tcmalloc_minimal;cray-c\+\+-rts;stdc\+\+;pthread;c;csup;m;clang_rt.craypgo-x86_64;gcc
dirs=/opt/gcc/8.1.0/snos/lib64;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.8/gni/mpich-cray/9.0/lib;/opt/cray/pe/libsci/19.06.1/CRAY/9.0/x86_64/lib;/opt/cray/rca/2.2.18-6.0.7.0_33.3__g2aa4f39.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/pe/cce/9.0.0/cce/x86_64/lib;/usr/lib64;/lib64;/opt/cray/pe/cce/9.0.0/cce-clang/x86_64/lib/clang/9.0.0/lib/linux;/opt/gcc/8.1.0/snos/lib/gcc/x86_64-suse-linux/8.1.0;/opt/cray/pe/cce/9.0.0/binutils/x86_64/x86_64-unknown-linux-gnu/lib
+linker_tool=/opt/cray/pe/cce/9.0.0/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-GNU-7.3.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-GNU-7.3.0.output
index da2e557..32d4057 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-GNU-7.3.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-GNU-7.3.0.output
@@ -1,2 +1,3 @@
libs=AtpSigHandler;AtpSigHCommData;rca;sci_gnu_71_mpi;sci_gnu_71;mpich_gnu_71;mpichf90_gnu_71;gfortran;quadmath;pthread;gfortran;m;gcc_s;gcc;quadmath;m;gcc_s;gcc;c;gcc_s;gcc
dirs=/opt/cray/pe/libsci/18.07.1/GNU/7.1/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-gnu/7.1/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/gcc/7.3.0/snos/lib/gcc/x86_64-suse-linux/7.3.0;/opt/gcc/7.3.0/snos/lib64;/lib64;/usr/lib64;/opt/gcc/7.3.0/snos/lib
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Intel-18.0.2.20180210.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Intel-18.0.2.20180210.output
index e73cbe9..8ff73bb 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Intel-18.0.2.20180210.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/craype-Fortran-Intel-18.0.2.20180210.output
@@ -1,2 +1,3 @@
libs=hugetlbfs;AtpSigHandler;AtpSigHCommData;pthread;mpichf90_intel;rt;ugni;pmi;imf;m;pthread;dl;sci_intel_mpi;sci_intel;imf;m;dl;mpich_intel;rt;ugni;pthread;pmi;imf;m;dl;pmi;pthread;alpslli;pthread;wlm_detect;alpsutil;pthread;rca;xpmem;ugni;pthread;udreg;sci_intel;imf;m;pthread;dl;hugetlbfs;imf;m;pthread;ifport;ifcore;imf;svml;m;ipgo;irc;svml;c;gcc;irc_s;dl;c
dirs=/opt/cray/pe/libsci/18.07.1/INTEL/16.0/x86_64/lib;/opt/cray/dmapp/default/lib64;/opt/cray/pe/mpt/7.7.3/gni/mpich-intel/16.0/lib;/opt/cray/rca/2.2.16-6.0.5.0_15.34__g5e09e6d.ari/lib64;/opt/cray/alps/6.5.28-6.0.5.0_18.6__g13a91b6.ari/lib64;/opt/cray/xpmem/2.2.4-6.0.5.1_8.26__g35d5e73.ari/lib64;/opt/cray/pe/pmi/5.0.14/lib64;/opt/cray/ugni/6.0.14-6.0.5.0_16.9__g19583bb.ari/lib64;/opt/cray/udreg/2.3.2-6.0.5.0_13.12__ga14955a.ari/lib64;/opt/cray/pe/atp/2.1.3/libApp;/opt/cray/wlm_detect/1.3.2-6.0.5.0_3.1__g388ccd5.ari/lib64;/opt/intel/2018.2.199/compilers_and_libraries_2018/linux/mkl/lib/intel64;/opt/intel/2018.2.199/compilers_and_libraries_2018.2.199/linux/compiler/lib/intel64_lin;/opt/gcc/6.3.0/snos/lib/gcc/x86_64-suse-linux/6.3.0;/opt/gcc/6.3.0/snos/lib64;/lib64;/usr/lib64;/opt/gcc/6.3.0/snos/lib;/lib;/usr/lib
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-C-AppleClang-8.0.0.8000042.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-C-AppleClang-8.0.0.8000042.output
index c041faa..0728e9a 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-C-AppleClang-8.0.0.8000042.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-C-AppleClang-8.0.0.8000042.output
@@ -1,2 +1,3 @@
libs=
dirs=/usr/lib;/usr/local/lib
+linker_tool=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-CXX-AppleClang-8.0.0.8000042.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-CXX-AppleClang-8.0.0.8000042.output
index 47a362a..c3e82ce 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-CXX-AppleClang-8.0.0.8000042.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin-CXX-AppleClang-8.0.0.8000042.output
@@ -1,2 +1,3 @@
libs=c\+\+
dirs=/usr/lib;/usr/local/lib
+linker_tool=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-C-AppleClang-8.0.0.8000042.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-C-AppleClang-8.0.0.8000042.output
index c041faa..0728e9a 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-C-AppleClang-8.0.0.8000042.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-C-AppleClang-8.0.0.8000042.output
@@ -1,2 +1,3 @@
libs=
dirs=/usr/lib;/usr/local/lib
+linker_tool=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.output
index 47a362a..c3e82ce 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/darwin_nostdinc-CXX-AppleClang-8.0.0.8000042.output
@@ -1,2 +1,3 @@
libs=c\+\+
dirs=/usr/lib;/usr/local/lib
+linker_tool=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-C-Clang-3.3.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-C-Clang-3.3.0.output
index 4ce854a..1fe59bb 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-C-Clang-3.3.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-C-Clang-3.3.0.output
@@ -1,2 +1,3 @@
libs=gcc;gcc_s;c;gcc;gcc_s
dirs=/usr/lib
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-CXX-Clang-3.3.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-CXX-Clang-3.3.0.output
index 18d7cd1..b2df7d5 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-CXX-Clang-3.3.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-CXX-Clang-3.3.0.output
@@ -1,2 +1,3 @@
libs=c\+\+;m;gcc;gcc_s;c;gcc;gcc_s
dirs=/usr/lib
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-Fortran-GNU-4.6.4.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-Fortran-GNU-4.6.4.output
index 1228333..41c3c30 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-Fortran-GNU-4.6.4.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/freebsd-Fortran-GNU-4.6.4.output
@@ -1,2 +1,3 @@
libs=gfortran;m;gcc_s;gcc;quadmath;m;gcc_s;gcc;c;gcc_s;gcc
dirs=/usr/local/lib/gcc46/gcc/x86_64-portbld-freebsd10.0/4.6.4;/usr/local/x86_64-portbld-freebsd10.0/lib;/usr/local/lib/gcc46
+linker_tool=/usr/local/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-empty.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-empty.output
index 1b14cd5..51ab39b 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-empty.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-empty.output
@@ -1,2 +1,3 @@
libs=
dirs=
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-relative.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-relative.output
index 9bb651a..4bbc6c3 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-relative.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-C-relative.output
@@ -1,2 +1,3 @@
libs=
dirs=/usr/lib64
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-empty.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-empty.output
index 1b14cd5..51ab39b 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-empty.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-empty.output
@@ -1,2 +1,3 @@
libs=
dirs=
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-relative.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-relative.output
index 9bb651a..4bbc6c3 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-relative.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/hand-CXX-relative.output
@@ -1,2 +1,3 @@
libs=
dirs=/usr/lib64
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-10.2.1-static-libgcc.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-10.2.1-static-libgcc.output
index 8bcd8b2..ffb5f0b 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-10.2.1-static-libgcc.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-10.2.1-static-libgcc.output
@@ -1,3 +1,4 @@
libs=gcc;c;gcc
dirs=/usr/lib/gcc/x86_64-linux-gnu/10;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
library_arch=x86_64-linux-gnu
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-12.2.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-12.2.0.output
new file mode 100644
index 0000000..9eeea34
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-12.2.0.output
@@ -0,0 +1,4 @@
+libs=gcc;gcc_s;c;gcc;gcc_s
+dirs=/usr/lib/gcc/x86_64-linux-gnu/12;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
+library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-7.3.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-7.3.0.output
index 0cf3a49..ff5e486 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-7.3.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-GNU-7.3.0.output
@@ -1,3 +1,4 @@
libs=gcc;gcc_s;c;gcc;gcc_s
dirs=/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
library_arch=x86_64-linux-gnu
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-18.0.0.20170811.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-18.0.0.20170811.output
index d78c9f4..7dead45 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-18.0.0.20170811.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-18.0.0.20170811.output
@@ -1,3 +1,4 @@
libs=imf;svml;irng;m;ipgo;decimal;cilkrts;stdc\+\+;gcc;gcc_s;irc;svml;c;gcc;gcc_s;irc_s;dl;c
dirs=/opt/intel/compilers_and_libraries_2018.0.128/linux/ipp/lib/intel64;/opt/intel/compilers_and_libraries_2018.0.128/linux/compiler/lib/intel64_lin;/opt/intel/compilers_and_libraries_2018.0.128/linux/mkl/lib/intel64_lin;/opt/intel/compilers_and_libraries_2018.0.128/linux/tbb/lib/intel64/gcc4.7;/usr/lib/gcc/x86_64-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib;/lib
library_arch=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-2021.10.0.20230609.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-2021.10.0.20230609.output
new file mode 100644
index 0000000..68b9916
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-Intel-2021.10.0.20230609.output
@@ -0,0 +1,4 @@
+libs=imf;svml;irng;m;ipgo;decimal;cilkrts;stdc\+\+;gcc;gcc_s;irc;svml;c;gcc;gcc_s;irc_s;dl;c
+dirs=/opt/intel/oneapi/tbb/2021.10.0/lib/intel64/gcc4.8;/opt/intel/oneapi/mpi/2021.10.0/libfabric/lib;/opt/intel/oneapi/mpi/2021.10.0/lib/release;/opt/intel/oneapi/mpi/2021.10.0/lib;/opt/intel/oneapi/mkl/2023.2.0/lib/intel64;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin;/opt/intel/oneapi/compiler/2023.2.1/linux/lib;/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib;/lib
+library_arch=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-IntelLLVM-2023.2.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-IntelLLVM-2023.2.0.output
new file mode 100644
index 0000000..06fa9cb
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-IntelLLVM-2023.2.0.output
@@ -0,0 +1,4 @@
+libs=svml;irng;imf;m;gcc;gcc_s;irc;dl;gcc;gcc_s;c;gcc;gcc_s;irc_s
+dirs=/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin;/opt/intel/oneapi/compiler/2023.2.1/linux/lib;/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib;/lib;/opt/intel/oneapi/tbb/2021.10.0/lib/intel64/gcc4.8;/opt/intel/oneapi/mpi/2021.10.0/libfabric/lib;/opt/intel/oneapi/mpi/2021.10.0/lib/release;/opt/intel/oneapi/mpi/2021.10.0/lib;/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
+library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-NVHPC-21.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-NVHPC-21.1.0.output
index e932be9..496484c 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-NVHPC-21.1.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-NVHPC-21.1.0.output
@@ -1,3 +1,4 @@
libs=nvomp;dl;nvhpcatm;atomic;pthread;nvcpumath;nsnvc;nvc;m;gcc;c;gcc;gcc_s
dirs=/opt/nvidia/hpc_sdk/Linux_x86_64/21.1/compilers/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/9
library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-PGI-18.10.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-PGI-18.10.1.output
index 7931102..eb9a55d 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-PGI-18.10.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-PGI-18.10.1.output
@@ -1,3 +1,4 @@
libs=pgmp;numa;pthread;pgmath;nspgc;pgc;m;gcc;c;gcc;gcc_s
dirs=/mnt/pgi/linux86-64/18.10/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/7
library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output
index 81ac0ba..46ed2d9 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-12.1.0.output
@@ -1,3 +1,4 @@
libs=xlopt;xl;dl;gcc_s;gcc;m;c;gcc_s;gcc
dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output
index b88a48d..ab0db93 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-C-XL-16.1.0.0.output
@@ -1,3 +1,4 @@
libs=xlopt;xl;dl;gcc_s;pthread;gcc;m;c;gcc_s;gcc
dirs=/opt/ibm/xlsmp/5.1.0/lib;/opt/ibm/xlmass/9.1.0/lib;/opt/ibm/xlC/16.1.0/lib;/usr/lib/gcc/ppc64le-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-CLANG.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-CLANG.output
index be6b906..6d17cdc 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-CLANG.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-CLANG.output
@@ -1,3 +1,4 @@
libs=cudadevrt;cudart_static;rt;pthread;dl;stdc\+\+;m;gcc_s;gcc;c;gcc_s;gcc
dirs=/usr/local/cuda/targets/x86_64-linux/lib/stubs;/usr/local/cuda/targets/x86_64-linux/lib;/usr/lib/gcc/x86_64-linux-gnu/8;/usr/lib/x86_64-linux-gnu;/lib/x86_64-linux-gnu;/lib64;/usr/lib;/usr/lib/llvm-8/lib;/lib
library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-XLClang-v.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-XLClang-v.output
index d3f3627..6cd069a 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-XLClang-v.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-10.1.168-XLClang-v.output
@@ -1,3 +1,4 @@
libs=cudadevrt;cudart_static;rt;pthread;dl;xlopt;xl;ibmc\+\+;stdc\+\+;m;dl;gcc_s;gcc;pthread;m;c;gcc_s;gcc
dirs=/sw/summit/cuda/10.1.168/targets/ppc64le-linux/lib/stubs;/sw/summit/cuda/10.1.168/targets/ppc64le-linux/lib;/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/xl-16.1.1-3/spectrum-mpi-10.3.0.1-20190611-aqjt3jo53mogrrhcrd2iufr435azcaha/lib;/autofs/nccs-svm1_sw/summit/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/gcc-4.8.5/darshan-runtime-3.1.7-csygoqyym3m3ysoaperhxlhoiluvpa2u/lib;/autofs/nccs-svm1_sw/summit/xl/16.1.1-3/xlsmp/5.1.1/lib;/autofs/nccs-svm1_sw/summit/xl/16.1.1-3/xlmass/9.1.1/lib;/autofs/nccs-svm1_sw/summit/xl/16.1.1-3/xlC/16.1.1/lib;/usr/lib/gcc/ppc64le-redhat-linux/4.8.5;/usr/lib64;/lib64;/autofs/nccs-svm1_sw/peak/.swci/1-compute/opt/spack/20180914/linux-rhel7-ppc64le/gcc-4.8.5/darshan-runtime-3.1.7-ytwv7xbkub6mqnpvygdthwqa7mhjqbc5/lib;/usr/lib
library_arch=
+linker_tool=/sw/summit/xalt/1.1.3/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-9.2.148-GCC.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-9.2.148-GCC.output
index 958f41d..400f377 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-9.2.148-GCC.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CUDA-NVIDIA-9.2.148-GCC.output
@@ -1,3 +1,4 @@
libs=cudadevrt;cudart_static;rt;pthread;dl;stdc\+\+;m;gcc_s;gcc;c;gcc_s;gcc
dirs=/usr/lib/x86_64-linux-gnu/stubs;/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
library_arch=x86_64-linux-gnu
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-10.2.1-static-libstdc++.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-10.2.1-static-libstdc++.output
index d38dfee..a9cb5b1 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-10.2.1-static-libstdc++.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-10.2.1-static-libstdc++.output
@@ -1,3 +1,4 @@
libs=/usr/lib/gcc/x86_64-linux-gnu/10/libstdc\+\+.a;m;gcc_s;gcc;c;gcc_s;gcc
dirs=/usr/lib/gcc/x86_64-linux-gnu/10;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
library_arch=x86_64-linux-gnu
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-12.2.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-12.2.0.output
new file mode 100644
index 0000000..65da5ea
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-12.2.0.output
@@ -0,0 +1,4 @@
+libs=stdc\+\+;m;gcc_s;gcc;c;gcc_s;gcc
+dirs=/usr/lib/gcc/x86_64-linux-gnu/12;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
+library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-7.3.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-7.3.0.output
index f87ecff..1698ced 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-7.3.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-GNU-7.3.0.output
@@ -1,3 +1,4 @@
libs=stdc\+\+;m;gcc_s;gcc;c;gcc_s;gcc
dirs=/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
library_arch=x86_64-linux-gnu
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-18.0.0.20170811.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-18.0.0.20170811.output
index 832f218..598ec80 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-18.0.0.20170811.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-18.0.0.20170811.output
@@ -1,3 +1,4 @@
libs=imf;svml;irng;stdc\+\+;m;ipgo;decimal;cilkrts;stdc\+\+;gcc;gcc_s;irc;svml;c;gcc;gcc_s;irc_s;dl;c
dirs=/opt/intel/compilers_and_libraries_2018.0.128/linux/ipp/lib/intel64;/opt/intel/compilers_and_libraries_2018.0.128/linux/compiler/lib/intel64_lin;/opt/intel/compilers_and_libraries_2018.0.128/linux/mkl/lib/intel64_lin;/opt/intel/compilers_and_libraries_2018.0.128/linux/tbb/lib/intel64/gcc4.7;/usr/lib/gcc/x86_64-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib;/lib
library_arch=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-2021.10.0.20230609.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-2021.10.0.20230609.output
new file mode 100644
index 0000000..6e2d13c
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-Intel-2021.10.0.20230609.output
@@ -0,0 +1,4 @@
+libs=imf;svml;irng;stdc\+\+;m;ipgo;decimal;cilkrts;stdc\+\+;gcc;gcc_s;irc;svml;c;gcc;gcc_s;irc_s;dl;c
+dirs=/opt/intel/oneapi/tbb/2021.10.0/lib/intel64/gcc4.8;/opt/intel/oneapi/mpi/2021.10.0/libfabric/lib;/opt/intel/oneapi/mpi/2021.10.0/lib/release;/opt/intel/oneapi/mpi/2021.10.0/lib;/opt/intel/oneapi/mkl/2023.2.0/lib/intel64;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin;/opt/intel/oneapi/compiler/2023.2.1/linux/lib;/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib;/lib
+library_arch=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-IntelLLVM-2023.2.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-IntelLLVM-2023.2.0.output
new file mode 100644
index 0000000..3da108c
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-IntelLLVM-2023.2.0.output
@@ -0,0 +1,4 @@
+libs=svml;irng;stdc\+\+;imf;m;gcc_s;gcc;irc;dl;gcc_s;gcc;c;gcc_s;gcc;irc_s
+dirs=/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin;/opt/intel/oneapi/compiler/2023.2.1/linux/lib;/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib;/lib;/opt/intel/oneapi/tbb/2021.10.0/lib/intel64/gcc4.8;/opt/intel/oneapi/mpi/2021.10.0/libfabric/lib;/opt/intel/oneapi/mpi/2021.10.0/lib/release;/opt/intel/oneapi/mpi/2021.10.0/lib;/opt/intel/oneapi/mkl/2023.2.0/lib/intel64
+library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-NVHPC-21.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-NVHPC-21.1.0.output
index 5e93f6d..ce39fc6 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-NVHPC-21.1.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-NVHPC-21.1.0.output
@@ -1,3 +1,4 @@
libs=atomic;nvhpcatm;stdc\+\+;nvomp;dl;nvhpcatm;atomic;pthread;nvcpumath;nsnvc;nvc;m;gcc;c;gcc;gcc_s
dirs=/opt/nvidia/hpc_sdk/Linux_x86_64/21.1/compilers/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/9
library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-PGI-18.10.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-PGI-18.10.1.output
index 0e95961..e37e49c 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-PGI-18.10.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-PGI-18.10.1.output
@@ -1,3 +1,4 @@
libs=atomic;pgatm;stdc\+\+;pgmp;numa;pthread;pgmath;nspgc;pgc;m;gcc;c;gcc;gcc_s
dirs=/mnt/pgi/linux86-64/18.10/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/7
library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output
index 34cab2e..9e69183 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-12.1.0.output
@@ -1,3 +1,4 @@
libs=xlopt;xl;ibmc\+\+;xlopt;xl;stdc\+\+;m;dl;gcc_s;gcc;m;c;gcc_s;gcc;dl;gcc_s;gcc;m;c;gcc_s;gcc
dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output
index c754bda..30e16c9 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-CXX-XL-16.1.0.0.output
@@ -1,3 +1,4 @@
libs=xlopt;xl;ibmc\+\+;stdc\+\+;m;dl;gcc_s;gcc;pthread;m;c;gcc_s;gcc
dirs=/opt/ibm/xlsmp/5.1.0/lib;/opt/ibm/xlmass/9.1.0/lib;/opt/ibm/xlC/16.1.0/lib;/usr/lib/gcc/ppc64le-redhat-linux/4.8.5;/usr/lib64;/lib64;/usr/lib
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-10.2.1-static-libgfortran.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-10.2.1-static-libgfortran.output
index edeb20c..d105cd7 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-10.2.1-static-libgfortran.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-10.2.1-static-libgfortran.output
@@ -1,3 +1,4 @@
libs=/usr/lib/gcc/x86_64-linux-gnu/10/libgfortran.a;m;gcc_s;gcc;quadmath;m;gcc_s;gcc;c;gcc_s;gcc
dirs=/usr/lib/gcc/x86_64-linux-gnu/10;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
library_arch=x86_64-linux-gnu
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-12.2.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-12.2.0.output
new file mode 100644
index 0000000..0fcf92b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-12.2.0.output
@@ -0,0 +1,4 @@
+libs=gfortran;m;gcc_s;gcc;quadmath;m;gcc_s;gcc;c;gcc_s;gcc
+dirs=/usr/lib/gcc/x86_64-linux-gnu/12;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
+library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-7.3.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-7.3.0.output
index 09b720e..27db155 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-7.3.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-GNU-7.3.0.output
@@ -1,3 +1,4 @@
libs=gfortran;m;gcc_s;gcc;quadmath;m;gcc_s;gcc;c;gcc_s;gcc
dirs=/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib
library_arch=x86_64-linux-gnu
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-Intel-2021.10.0.20230609.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-Intel-2021.10.0.20230609.output
new file mode 100644
index 0000000..784711f
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-Intel-2021.10.0.20230609.output
@@ -0,0 +1,4 @@
+libs=ifport;ifcoremt;imf;svml;m;ipgo;irc;pthread;svml;c;gcc;gcc_s;irc_s;dl;c
+dirs=/opt/intel/oneapi/tbb/2021.10.0/lib/intel64/gcc4.8;/opt/intel/oneapi/mpi/2021.10.0/libfabric/lib;/opt/intel/oneapi/mpi/2021.10.0/lib/release;/opt/intel/oneapi/mpi/2021.10.0/lib;/opt/intel/oneapi/mkl/2023.2.0/lib/intel64;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin;/opt/intel/oneapi/compiler/2023.2.1/linux/lib;/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib;/lib
+library_arch=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-IntelLLVM-2023.2.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-IntelLLVM-2023.2.0.output
new file mode 100644
index 0000000..0129854
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-IntelLLVM-2023.2.0.output
@@ -0,0 +1,4 @@
+libs=ifport;ifcoremt;imf;svml;m;ipgo;irc;pthread;svml;c;gcc;gcc_s;irc_s;dl;c
+dirs=/opt/intel/oneapi/tbb/2021.10.0/lib/intel64/gcc4.8;/opt/intel/oneapi/mpi/2021.10.0/libfabric/lib;/opt/intel/oneapi/mpi/2021.10.0/lib/release;/opt/intel/oneapi/mpi/2021.10.0/lib;/opt/intel/oneapi/mkl/2023.2.0/lib/intel64;/opt/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin;/opt/intel/oneapi/compiler/2023.2.1/linux/lib;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/lib/linux;/opt/intel/oneapi/compiler/2023.2.1/linux/lib/clang/17/lib/x86_64-unknown-linux-gnu;/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib;/lib
+library_arch=x86_64-unknown-linux-gnu
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output
index cea8a68..17d16d1 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-LLVMFlang-15.0.0.output
@@ -1,2 +1,3 @@
libs=Fortran_main;FortranRuntime;FortranDecimal;m;gcc;gcc_s;c;gcc;gcc_s
dirs=/usr/lib/gcc/x86_64-redhat-linux/12;/usr/lib64;/lib64;/lib;/usr/lib
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-PGI-18.10.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-PGI-18.10.1.output
index f3cc551..4cb8199 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-PGI-18.10.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-PGI-18.10.1.output
@@ -1,3 +1,4 @@
libs=pgf90rtl;pgf90;pgf90_rpm1;pgf902;pgf90rtl;pgftnrtl;pgmp;numa;pthread;pgmath;nspgc;pgc;rt;pthread;m;gcc;c;gcc;gcc_s
dirs=/mnt/pgi/linux86-64/18.10/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/7
library_arch=x86_64-linux-gnu
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output
index 3c07cf8..526914b 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-Fortran-XL-14.1.0.output
@@ -1,3 +1,4 @@
libs=xlf90;xlopt;xlomp_ser;xl;xlfmath;gcc_s;dl;rt;pthread;gcc;m;c;gcc_s;gcc
dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/xlf/bg/14.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-C-Clang-13.0.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-C-Clang-13.0.0.output
index 108712d..680a74e 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-C-Clang-13.0.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-C-Clang-13.0.0.output
@@ -1,3 +1,4 @@
libs=-l:libunwind.so;c;-l:libunwind.so
dirs=/opt/llvm-13/lib/x86_64-pc-linux-gnu;/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib64;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/opt/llvm-13/lib;/lib;/usr/lib
library_arch=x86_64-linux-gnu
+linker_tool=/opt/llvm-13/bin/ld.lld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-CXX-Clang-13.0.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-CXX-Clang-13.0.0.output
index e4a8a70..90c411f 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-CXX-Clang-13.0.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux-custom_clang-CXX-Clang-13.0.0.output
@@ -1,3 +1,4 @@
libs=c\+\+;m;-l:libunwind.so;c;-l:libunwind.so
dirs=/opt/llvm-13/lib/x86_64-pc-linux-gnu;/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib64;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/opt/llvm-13/lib;/lib;/usr/lib
library_arch=x86_64-linux-gnu
+linker_tool=/opt/llvm-13/bin/ld.lld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-PGI-18.10.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-PGI-18.10.1.output
index dc17ce7..60662e2 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-PGI-18.10.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-PGI-18.10.1.output
@@ -1,3 +1,4 @@
libs=pgmp;numa;pthread;pgmath;nspgc;pgc;m;gcc;c;gcc;gcc_s
dirs=/mnt/pgi/linux86-64/18.10/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/7
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output
index 81ac0ba..46ed2d9 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-C-XL-12.1.0.output
@@ -1,3 +1,4 @@
libs=xlopt;xl;dl;gcc_s;gcc;m;c;gcc_s;gcc
dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-PGI-18.10.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-PGI-18.10.1.output
index 848e8c0..37c8129 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-PGI-18.10.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-PGI-18.10.1.output
@@ -1,3 +1,4 @@
libs=atomic;pgatm;stdc\+\+;pgmp;numa;pthread;pgmath;nspgc;pgc;m;gcc;c;gcc;gcc_s
dirs=/mnt/pgi/linux86-64/18.10/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/7
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output
index 34cab2e..9e69183 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-CXX-XL-12.1.0.output
@@ -1,3 +1,4 @@
libs=xlopt;xl;ibmc\+\+;xlopt;xl;stdc\+\+;m;dl;gcc_s;gcc;m;c;gcc_s;gcc;dl;gcc_s;gcc;m;c;gcc_s;gcc
dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-Fortran-PGI-18.10.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-Fortran-PGI-18.10.1.output
index 955d540..d0055d5 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-Fortran-PGI-18.10.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc-Fortran-PGI-18.10.1.output
@@ -1,3 +1,4 @@
libs=pgf90rtl;pgf90;pgf90_rpm1;pgf902;pgf90rtl;pgftnrtl;pgmp;numa;pthread;pgmath;nspgc;pgc;rt;pthread;m;gcc;c;gcc;gcc_s
dirs=/mnt/pgi/linux86-64/18.10/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/7
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output
index 81ac0ba..46ed2d9 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_nostdinc_i-C-XL-12.1.0.output
@@ -1,3 +1,4 @@
libs=xlopt;xl;dl;gcc_s;gcc;m;c;gcc_s;gcc
dirs=/soft/compilers/ibmcmp-oct2017/xlsmp/bg/3.1/lib64;/soft/compilers/ibmcmp-oct2017/xlmass/bg/7.3/lib64;/soft/compilers/ibmcmp-oct2017/vac/bg/12.1/lib64;/soft/compilers/ibmcmp-oct2017/vacpp/bg/12.1/lib64;/usr/lib/gcc/ppc64-redhat-linux/4.4.7;/usr/lib64;/lib64;/usr/lib
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_pgf77-Fortran-PGI-18.10.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_pgf77-Fortran-PGI-18.10.1.output
index 30b86e6..2570a4a 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_pgf77-Fortran-PGI-18.10.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/linux_pgf77-Fortran-PGI-18.10.1.output
@@ -1,3 +1,4 @@
libs=pgftnrtl;pgmp;numa;pthread;pgmath;nspgc;pgc;rt;pthread;m;gcc;c;gcc;gcc_s
dirs=/mnt/pgi/linux86-64/18.10/lib;/usr/lib64;/usr/lib/gcc/x86_64-linux-gnu/7
library_arch=
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-C-GNU-4.9.3.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-C-GNU-4.9.3.output
index 8aee7cf..495f4de 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-C-GNU-4.9.3.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-C-GNU-4.9.3.output
@@ -1,2 +1,3 @@
libs=mingw32;gcc;moldname;mingwex;advapi32;shell32;user32;kernel32;mingw32;gcc;moldname;mingwex
dirs=C:/DoesNotExist/mingw/lib/gcc/mingw32/4.9.3;C:/DoesNotExist/mingw/lib/gcc;C:/DoesNotExist/mingw/mingw32/lib;C:/DoesNotExist/mingw/lib
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-CXX-GNU-4.9.3.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-CXX-GNU-4.9.3.output
index 7852bfd..8661aee 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-CXX-GNU-4.9.3.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/mingw.org-CXX-GNU-4.9.3.output
@@ -1,2 +1,3 @@
libs=stdc\+\+;mingw32;gcc_s;gcc;moldname;mingwex;advapi32;shell32;user32;kernel32;mingw32;gcc_s;gcc;moldname;mingwex
dirs=C:/DoesNotExist/mingw/lib/gcc/mingw32/4.9.3;C:/DoesNotExist/mingw/lib/gcc;C:/DoesNotExist/mingw/mingw32/lib;C:/DoesNotExist/mingw/lib
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-C-GNU-4.8.5.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-C-GNU-4.8.5.output
index 4a09c5b..afaa59a 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-C-GNU-4.8.5.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-C-GNU-4.8.5.output
@@ -1,2 +1,3 @@
libs=gcc;gcc_s;c;gcc;gcc_s
dirs=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-CXX-GNU-4.8.5.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-CXX-GNU-4.8.5.output
index c6a098e..43003b0 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-CXX-GNU-4.8.5.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd-CXX-GNU-4.8.5.output
@@ -1,2 +1,3 @@
libs=stdc\+\+;m;gcc_s;gcc;c;gcc_s;gcc
dirs=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-C-GNU-4.8.5.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-C-GNU-4.8.5.output
index 4a09c5b..afaa59a 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-C-GNU-4.8.5.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-C-GNU-4.8.5.output
@@ -1,2 +1,3 @@
libs=gcc;gcc_s;c;gcc;gcc_s
dirs=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-CXX-GNU-4.8.5.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-CXX-GNU-4.8.5.output
index c6a098e..43003b0 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-CXX-GNU-4.8.5.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/netbsd_nostdinc-CXX-GNU-4.8.5.output
@@ -1,2 +1,3 @@
libs=stdc\+\+;m;gcc_s;gcc;c;gcc_s;gcc
dirs=
+linker_tool=ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-C-Clang-5.0.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-C-Clang-5.0.1.output
index 5bb5db4..76ec3b9 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-C-Clang-5.0.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-C-Clang-5.0.1.output
@@ -1,2 +1,3 @@
libs=compiler_rt;c;compiler_rt
dirs=/usr/lib
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-CXX-Clang-5.0.1.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-CXX-Clang-5.0.1.output
index 711225c..791249e 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-CXX-Clang-5.0.1.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/openbsd-CXX-Clang-5.0.1.output
@@ -1,2 +1,3 @@
libs=c\+\+;c\+\+abi;pthread;m;compiler_rt;c;compiler_rt
dirs=/usr/lib
+linker_tool=/usr/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-C-SunPro-5.13.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-C-SunPro-5.13.0.output
index 0d636e6..13b67f6 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-C-SunPro-5.13.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-C-SunPro-5.13.0.output
@@ -1,2 +1,3 @@
libs=c
dirs=/opt/solarisstudio12.4/lib/compilers/staticlib;/opt/solarisstudio12.4/lib/compilers/sparc;/opt/solarisstudio12.4/lib/compilers;/usr/ccs/lib;/lib;/usr/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-CXX-SunPro-5.13.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-CXX-SunPro-5.13.0.output
index f7c8213..68f46bf 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-CXX-SunPro-5.13.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-CXX-SunPro-5.13.0.output
@@ -1,2 +1,3 @@
libs=Cstd;Crun;m;c
dirs=/opt/solarisstudio12.4/lib/compilers/sparc;/opt/solarisstudio12.4/lib/compilers;/opt/solarisstudio12.4/lib/sparc;/opt/solarisstudio12.4/lib;/usr/ccs/lib;/lib;/usr/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-Fortran-SunPro-8.8.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-Fortran-SunPro-8.8.0.output
index b49557a..0847f9b 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-Fortran-SunPro-8.8.0.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos-Fortran-SunPro-8.8.0.output
@@ -1,2 +1,3 @@
libs=fsu;sunmath;mtsk;m;c
dirs=/opt/developerstudio12.6/lib/compilers/sparcvis2;/opt/developerstudio12.6/lib/compilers;/opt/developerstudio12.6/lib;/usr/ccs/lib;/lib;/usr/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-C-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-C-GNU-5.5.0.output
new file mode 100644
index 0000000..3212044
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-C-GNU-5.5.0.output
@@ -0,0 +1,3 @@
+libs=gcc;c;gcc;c
+dirs=/lib;/usr/lib;/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0;/opt/csw/sparc-sun-solaris2.10/lib;/opt/csw/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-CXX-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-CXX-GNU-5.5.0.output
new file mode 100644
index 0000000..742e608
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-CXX-GNU-5.5.0.output
@@ -0,0 +1,3 @@
+libs=stdc\+\+;m;rt;gcc_s;gcc;c;gcc_s;gcc;c
+dirs=/lib;/usr/lib;/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0;/opt/csw/sparc-sun-solaris2.10/lib;/opt/csw/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-Fortran-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-Fortran-GNU-5.5.0.output
new file mode 100644
index 0000000..7169169
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.10_sparc32-Fortran-GNU-5.5.0.output
@@ -0,0 +1,3 @@
+libs=gfortran;m;gcc_s;gcc;m;gcc_s;gcc;c;gcc_s;gcc;m;gcc_s;gcc;c
+dirs=/lib;/usr/lib;/opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0;/opt/csw/sparc-sun-solaris2.10/lib;/opt/csw/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-C-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-C-GNU-5.5.0.output
new file mode 100644
index 0000000..8c31ef5
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-C-GNU-5.5.0.output
@@ -0,0 +1,3 @@
+libs=gcc;c;gcc
+dirs=/lib;/usr/lib;/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0;/opt/csw/i386-pc-solaris2.10/lib;/opt/csw/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-CXX-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-CXX-GNU-5.5.0.output
new file mode 100644
index 0000000..fa771f2
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-CXX-GNU-5.5.0.output
@@ -0,0 +1,3 @@
+libs=stdc\+\+;m;rt;gcc_s;gcc;c;gcc_s;gcc
+dirs=/lib;/usr/lib;/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0;/opt/csw/i386-pc-solaris2.10/lib;/opt/csw/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-Fortran-GNU-5.5.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-Fortran-GNU-5.5.0.output
new file mode 100644
index 0000000..726988d
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/sunos5.11_i386-Fortran-GNU-5.5.0.output
@@ -0,0 +1,3 @@
+libs=gfortran;m;gcc_s;gcc;quadmath;m;gcc_s;gcc;c;gcc_s;gcc
+dirs=/lib;/usr/lib;/opt/csw/lib/gcc/i386-pc-solaris2.10/5.5.0;/opt/csw/i386-pc-solaris2.10/lib;/opt/csw/lib
+linker_tool=/usr/ccs/bin/ld
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-C-Clang-17.0.1-MSVC.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-C-Clang-17.0.1-MSVC.output
index df9ef98..1633a9c 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-C-Clang-17.0.1-MSVC.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-C-Clang-17.0.1-MSVC.output
@@ -1,2 +1,3 @@
libs=
dirs=C:/DoesNotExist/LLVM/lib/clang/17/lib/windows
+linker_tool=C:/DoesNotExist/LLVM/bin/lld-link
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-CXX-Clang-17.0.1-MSVC.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-CXX-Clang-17.0.1-MSVC.output
index df9ef98..1633a9c 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-CXX-Clang-17.0.1-MSVC.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-CXX-Clang-17.0.1-MSVC.output
@@ -1,2 +1,3 @@
libs=
dirs=C:/DoesNotExist/LLVM/lib/clang/17/lib/windows
+linker_tool=C:/DoesNotExist/LLVM/bin/lld-link
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.output
index 65f3494..bb0e012 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_arm64-Fortran-LLVMFlang-17.0.1-MSVC.output
@@ -1,2 +1,3 @@
libs=Fortran_main\.lib;FortranRuntime\.lib;FortranDecimal\.lib
dirs=C:/DoesNotExist/LLVM/lib;C:/DoesNotExist/LLVM/lib/clang/17/lib/windows
+linker_tool=C:/DoesNotExist/LLVM/bin/lld-link
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Clang-17.0.1-MSVC.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Clang-17.0.1-MSVC.output
index df9ef98..5bf205c 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Clang-17.0.1-MSVC.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Clang-17.0.1-MSVC.output
@@ -1,2 +1,3 @@
libs=
dirs=C:/DoesNotExist/LLVM/lib/clang/17/lib/windows
+linker_tool=C:/Program Files \(x86\)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/link.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Intel-2021.9.0.20230302.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Intel-2021.9.0.20230302.output
new file mode 100644
index 0000000..158a90b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-Intel-2021.9.0.20230302.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=C:/DoesNotExist/Intel/oneAPI/compiler/latest/windows/bin/intel64/xilink.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-IntelLLVM-2023.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-IntelLLVM-2023.1.0.output
new file mode 100644
index 0000000..51ab39b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-IntelLLVM-2023.1.0.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-MSVC-19.36.32543.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-MSVC-19.36.32543.0.output
new file mode 100644
index 0000000..e159ed5
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-MSVC-19.36.32543.0.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=C:/PROGRA~1/MIB055~1/2022/PROFES~1/VC/Tools/MSVC/1436~1.325/bin/Hostx64/x64/link.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-MSVC-19.38.33130.0-VS.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-MSVC-19.38.33130.0-VS.output
new file mode 100644
index 0000000..0ffc15b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-C-MSVC-19.38.33130.0-VS.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.38.33130/bin/HostX64/x64/link.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Clang-17.0.1-MSVC.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Clang-17.0.1-MSVC.output
index df9ef98..7cfbad5 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Clang-17.0.1-MSVC.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Clang-17.0.1-MSVC.output
@@ -1,2 +1,3 @@
libs=
dirs=C:/DoesNotExist/LLVM/lib/clang/17/lib/windows
+linker_tool=C:/Program Files \(x86\)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14\.29\.30133/bin/Hostx64/x64/link\.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Intel-2021.9.0.20230302.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Intel-2021.9.0.20230302.output
new file mode 100644
index 0000000..158a90b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-Intel-2021.9.0.20230302.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=C:/DoesNotExist/Intel/oneAPI/compiler/latest/windows/bin/intel64/xilink.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-IntelLLVM-2023.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-IntelLLVM-2023.1.0.output
new file mode 100644
index 0000000..51ab39b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-IntelLLVM-2023.1.0.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-MSVC-19.36.32543.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-MSVC-19.36.32543.0.output
new file mode 100644
index 0000000..e159ed5
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-MSVC-19.36.32543.0.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=C:/PROGRA~1/MIB055~1/2022/PROFES~1/VC/Tools/MSVC/1436~1.325/bin/Hostx64/x64/link.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.output
new file mode 100644
index 0000000..0ffc15b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-CXX-MSVC-19.38.33130.0-VS.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.38.33130/bin/HostX64/x64/link.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-Intel-2021.9.0.20230302.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-Intel-2021.9.0.20230302.output
new file mode 100644
index 0000000..158a90b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-Intel-2021.9.0.20230302.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=C:/DoesNotExist/Intel/oneAPI/compiler/latest/windows/bin/intel64/xilink.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-IntelLLVM-2023.1.0.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-IntelLLVM-2023.1.0.output
new file mode 100644
index 0000000..51ab39b
--- /dev/null
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-IntelLLVM-2023.1.0.output
@@ -0,0 +1,3 @@
+libs=
+dirs=
+linker_tool=
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.output
index 65f3494..b10f19d 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-17.0.1-MSVC.output
@@ -1,2 +1,3 @@
libs=Fortran_main\.lib;FortranRuntime\.lib;FortranDecimal\.lib
dirs=C:/DoesNotExist/LLVM/lib;C:/DoesNotExist/LLVM/lib/clang/17/lib/windows
+linker_tool=C:/Program Files \(x86\)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/link.exe
diff --git a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.output b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.output
index c8266a5..54195df 100644
--- a/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.output
+++ b/Tests/RunCMake/ParseImplicitLinkInfo/results/windows_x86_64-Fortran-LLVMFlang-18.0.0-MSVC.output
@@ -1,2 +1,3 @@
libs=
dirs=C:/DoesNotExist/LLVM/lib;C:/DoesNotExist/LLVM/lib/clang/18/lib/windows
+linker_tool=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/link.exe
diff --git a/Tests/RunCMake/Swift/CompileCommands-check.cmake b/Tests/RunCMake/Swift/CompileCommands-check.cmake
new file mode 100644
index 0000000..6450745
--- /dev/null
+++ b/Tests/RunCMake/Swift/CompileCommands-check.cmake
@@ -0,0 +1,30 @@
+if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/compile_commands.json")
+ set(RunCMake_TEST_FAILED "compile_commands.json not generated")
+ return()
+endif()
+
+# The compile command for both files should contain all Swift source files in
+# the module
+set(expected_compile_commands
+[==[^\[
+{
+ "directory": ".*(/Tests/RunCMake/Swift/CompileCommands-build|\\\\Tests\\\\RunCMake\\\\Swift\\\\CompileCommands-build)",
+ "command": ".*swiftc .* (\\")?.*(/Tests/RunCMake/Swift/E.swift|\\\\Tests\\\\RunCMake\\\\Swift\\\\E.swift)(\\")? (\\")?.*(/Tests/RunCMake/Swift/L.swift|\\\\Tests\\\\RunCMake\\\\Swift\\\\L.swift)(\\")?",
+ "file": ".*(/Tests/RunCMake/Swift/E.swift|\\\\Tests\\\\RunCMake\\\\Swift\\\\E.swift)",
+ "output": "CMakeFiles/CompileCommandLib.dir/E.swift.o|CMakeFiles\\\\CompileCommandLib.dir\\\\E.swift.obj"
+},
+{
+ "directory": ".*(/Tests/RunCMake/Swift/CompileCommands-build|\\\\Tests\\\\RunCMake\\\\Swift\\\\CompileCommands-build)",
+ "command": ".*swiftc .* (\\")?.*(/Tests/RunCMake/Swift/E.swift|\\\\Tests\\\\RunCMake\\\\Swift\\\\E.swift)(\\")? (\\")?.*(/Tests/RunCMake/Swift/L.swift|\\\\Tests\\\\RunCMake\\\\Swift\\\\L.swift)(\\")?",
+ "file": ".*/Tests/RunCMake/Swift/L.swift",
+ "output": "CMakeFiles/CompileCommandLib.dir/L.swift.o|CMakeFiles\\\\CompileCommandLib.dir\\\\L.swift.obj"
+}
+]$]==]
+)
+
+file(READ "${RunCMake_TEST_BINARY_DIR}/compile_commands.json" compile_commands)
+if(NOT compile_commands MATCHES "${expected_compile_commands}")
+ string(REPLACE "\n" "\n " expected_compile_commands_formatted "${expected_compile_commands}")
+ string(REPLACE "\n" "\n " compile_commands_formatted "${compile_commands}")
+ string(APPEND RunCMake_TEST_FAILED "Expected compile_commands.json to match:\n ${expected_compile_commands_formatted}\nActual compile_commands.json:\n ${compile_commands_formatted}\n")
+endif()
diff --git a/Tests/RunCMake/Swift/CompileCommands.cmake b/Tests/RunCMake/Swift/CompileCommands.cmake
new file mode 100644
index 0000000..f859693
--- /dev/null
+++ b/Tests/RunCMake/Swift/CompileCommands.cmake
@@ -0,0 +1,9 @@
+if(POLICY CMP0157)
+ cmake_policy(SET CMP0157 NEW)
+endif()
+set(CMAKE_Swift_COMPILATION_MODE "singlefile")
+
+enable_language(Swift)
+
+add_library(CompileCommandLib STATIC E.swift L.swift)
+set_target_properties(CompileCommandLib PROPERTIES EXPORT_COMPILE_COMMANDS YES)
diff --git a/Tests/RunCMake/Swift/NoWorkToDo-norelink-stdout.txt b/Tests/RunCMake/Swift/NoWorkToDo-norelink-stdout.txt
new file mode 100644
index 0000000..e7b31b7
--- /dev/null
+++ b/Tests/RunCMake/Swift/NoWorkToDo-norelink-stdout.txt
@@ -0,0 +1,2 @@
+.*\[1\/4\].*
+.*\[2\/3\].*
diff --git a/Tests/RunCMake/Swift/NoWorkToDo.cmake b/Tests/RunCMake/Swift/NoWorkToDo.cmake
index 02b9195..b58f8ff 100644
--- a/Tests/RunCMake/Swift/NoWorkToDo.cmake
+++ b/Tests/RunCMake/Swift/NoWorkToDo.cmake
@@ -1,6 +1,9 @@
cmake_policy(SET CMP0157 NEW)
enable_language(Swift)
-add_executable(hello1 hello.swift)
+
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/hello.swift "")
+
+add_executable(hello1 ${CMAKE_CURRENT_BINARY_DIR}/hello.swift)
set_target_properties(hello1 PROPERTIES ENABLE_EXPORTS TRUE)
-add_executable(hello2 hello.swift)
+add_executable(hello2 ${CMAKE_CURRENT_BINARY_DIR}/hello.swift)
diff --git a/Tests/RunCMake/Swift/RunCMakeTest.cmake b/Tests/RunCMake/Swift/RunCMakeTest.cmake
index 184b461..f0ad0bd 100644
--- a/Tests/RunCMake/Swift/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Swift/RunCMakeTest.cmake
@@ -27,6 +27,9 @@ elseif(RunCMake_GENERATOR STREQUAL Ninja)
set(RunCMake_TEST_OUTPUT_MERGE 1)
run_cmake_command(NoWorkToDo-build ${CMAKE_COMMAND} --build .)
run_cmake_command(NoWorkToDo-nowork ${CMAKE_COMMAND} --build . -- -d explain)
+ file(WRITE ${RunCMake_TEST_BINARY_DIR}/hello.swift "//No-op change\n")
+ run_cmake_command(NoWorkToDo-norelink ${CMAKE_COMMAND} --build . -- -d explain)
+ run_cmake_command(NoWorkToDo-nowork ${CMAKE_COMMAND} --build . -- -d explain)
endblock()
# Test that intermediate static libraries are rebuilt when the public
@@ -61,6 +64,11 @@ elseif(RunCMake_GENERATOR STREQUAL Ninja)
run_cmake(CMP0157-WARN)
endblock()
+ block()
+ set(CompileCommands_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CompileCommands-build)
+ run_cmake(CompileCommands)
+ run_cmake_command(CompileCommands-check ${CMAKE_COMMAND} --build ${CompileCommands_TEST_BINARY_DIR})
+ endblock()
endif()
elseif(RunCMake_GENERATOR STREQUAL "Ninja Multi-Config")
if(CMake_TEST_Swift)
diff --git a/Tests/RunCMake/VS10Project/UnityBuildPre2017-check.cmake b/Tests/RunCMake/VS10Project/UnityBuildPre2017-check.cmake
index 17e7b46..c904cd0 100644
--- a/Tests/RunCMake/VS10Project/UnityBuildPre2017-check.cmake
+++ b/Tests/RunCMake/VS10Project/UnityBuildPre2017-check.cmake
@@ -27,7 +27,7 @@ foreach(line IN LISTS tgt_projects_strings)
endif()
endforeach()
-string(REPLACE "\\" "/" unity_source_line ${unity_source_line})
+string(REPLACE "\\" "/" unity_source_line "${unity_source_line}")
string(FIND "${unity_source_line}" "CMakeFiles/tgt.dir/Unity/unity_0_c.c" unity_source_file_position)
if (unity_source_file_position EQUAL "-1")
set(RunCMake_TEST_FAILED "Generated project should include the generated unity source file.")