mirage/cmake/mingw_dll.cmake
2025-04-10 17:19:59 +08:00

41 lines
1.4 KiB
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"
"libbz2-1.dll"
"libbrotlidec.dll"
"libbrotlicommon.dll"
"libharfbuzz-0.dll"
"libpng16-16.dll"
"zlib1.dll"
"libglib-2.0-0.dll"
"libfreetype-6.dll"
"libgraphite2.dll"
"libintl-8.dll"
"libpcre2-8-0.dll"
"libiconv-2.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()