InstallRequiredSystemLibraries, Intel Fortran
In i Fortran project I use the InstallRequiredSystemLibraries module. I use the Intel Fortran Compiler:
c:\NinjaCmake\Fortran>cmake -B CMakeBuild -G "Ninja"
-- The Fortran compiler identification is Intel 19.1.0.20200306
....
The InstallRequiredSystemLibraries issue the message:
CMake Warning at C:/Program Files/CMake/share/cmake-3.18/Modules/InstallRequiredSystemLibraries.cmake:699 (message):
system runtime library file does not exist: 'C:/Program Files
(x86)/IntelSWTools/compilers_and_libraries_2020.1.216/windows/redist/intel64/compiler/libioffload_host.dll'
Call Stack (most recent call first):
CMakeLists.txt:17 (include)
This library, and also the liboffload.dll and libmpx.lib, are removed from the Intel redist.
In my CMakeLists.txt I have an install command and when I install the Release version of my program the following dll's are installed:
-- Installing: C:/NinjaCmake/Fortran/./bin/msvcp140.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/vcruntime140.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/concrt140.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/cilkrts20.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libchkp.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libirngmd.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libmmd.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libmmdd.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/svml_dispmd.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/ifdlg100.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libicaf.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libifcoremd.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libifcoremdd.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libifcorert.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libifcorertd.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/libifportmd.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/1033
-- Installing: C:/NinjaCmake/Fortran/./bin/1033/ifcore_msg.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/1033/irc_msg.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/1033/libmUI.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/1041
-- Installing: C:/NinjaCmake/Fortran/./bin/1041/ifcore_msg.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/1041/irc_msg.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/1041/libiomp5ui.dll
-- Installing: C:/NinjaCmake/Fortran/./bin/1041/libmUI.dll
Here libmmdd.dll, libifcoremdd.dll are debug dll's and could be removed from the installation.
Furthermore, I think msvcp140, concrt140 and cilkrts20 are c++ libraries and could be removed? I have never shipped them with Fortran executables. From the intel documentation it also look like libirngmd is also for c++.
The libifcorert is used when compiling using /MDs (single threaded dynamic library) , as far as I understand from the Intel documentation the /MDs switch is depreciated so I guess the libifcorert.dll could also be removed.
My guess is that libchkp(check pointers), ifdlg100(interface dialog) and libicaf(co arrays) are not much used and can also be removed.