qt-material-widgets/cmake/windows-set-path.cmake

25 lines
842 B
CMake

# This function will add shared libraries to the PATH when running the test, so
# they can be found. Windows does not support RPATH or similar. See:
# https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order
# Usage: windows_set_path(<test> <target>...)
function(windows_set_path TEST)
if(NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
return()
endif()
set(path "")
set(glue "")
foreach(target IN LISTS ARGN)
if(TARGET "${target}")
get_target_property(type "${target}" TYPE)
if(type STREQUAL "SHARED_LIBRARY")
set(path "${path}${glue}$<TARGET_FILE_DIR:${target}>")
set(glue "\;") # backslash is important
endif()
endif()
endforeach()
if(NOT path STREQUAL "")
set_property(TEST "${TEST}" PROPERTY ENVIRONMENT "PATH=${path}")
endif()
endfunction()