42 lines
1.3 KiB
CMake
42 lines
1.3 KiB
CMake
# Find the MS Visual Studio VC redistributable package
|
|
|
|
if(WIN32)
|
|
set(VCREDISTRUNTIME_FOUND "NO")
|
|
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64-bit
|
|
set(REDIST_ARCH x64)
|
|
else()
|
|
set(REDIST_ARCH x86)
|
|
endif()
|
|
|
|
# VS 2017 uses vcredist_ARCH.exe, VS 2022 uses vc_redist.ARCH.exe
|
|
set(REDIST_FILE_NAMES vcredist_${REDIST_ARCH}.exe vcredist.${REDIST_ARCH}.exe vc_redist.${REDIST_ARCH}.exe)
|
|
|
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
|
include(InstallRequiredSystemLibraries)
|
|
|
|
# Check if the list contains minimum one element, to get the path from
|
|
list(LENGTH CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS libsCount)
|
|
if(libsCount GREATER 0)
|
|
list(GET CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS 0 _path)
|
|
|
|
get_filename_component(_path ${_path} DIRECTORY)
|
|
get_filename_component(_path ${_path}/../../ ABSOLUTE)
|
|
|
|
foreach(redist_file ${REDIST_FILE_NAMES})
|
|
if(EXISTS "${_path}/${REDIST_FILE}")
|
|
set(VCREDISTRUNTIME_FOUND "YES")
|
|
set(VCREDISTRUNTIME_FILE ${_path}/${redist_file})
|
|
break()
|
|
endif()
|
|
endforeach()
|
|
endif()
|
|
|
|
if(VCREDISTRUNTIME_FOUND)
|
|
message(STATUS "Found VCredist ${VCREDISTRUNTIME_FILE}")
|
|
else()
|
|
message(
|
|
WARNING "Could not find VCredist package. It's not required for compiling, but needs to be available at runtime."
|
|
)
|
|
endif()
|
|
endif()
|