29 lines
986 B
CMake
29 lines
986 B
CMake
|
|
function(auto_copy_mingw_dll target)
|
|
if(MINGW)
|
|
# 获取MinGW目录
|
|
get_filename_component(MINGW_DIR ${CMAKE_CXX_COMPILER} PATH)
|
|
|
|
# 根据你的环境调整DLL列表
|
|
set(MINGW_DLLS
|
|
"libstdc++-6.dll"
|
|
# "libgcc_s_dw2-1.dll"
|
|
"libgcc_s_seh-1.dll"
|
|
"libwinpthread-1.dll"
|
|
)
|
|
|
|
foreach(DLL ${MINGW_DLLS})
|
|
# 检查文件是否存在
|
|
if(EXISTS "${MINGW_DIR}/${DLL}")
|
|
add_custom_command(TARGET ${target} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
"${MINGW_DIR}/${DLL}"
|
|
"$<TARGET_FILE_DIR:${target}>"
|
|
COMMENT "Copying ${DLL} to output directory"
|
|
VERBATIM)
|
|
else()
|
|
message(WARNING "DLL not found: ${MINGW_DIR}/${DLL}")
|
|
endif()
|
|
endforeach()
|
|
endif()
|
|
endfunction() |