build: copy + install mingw dll's libgcc_s_seh-1.dll, libstdc++-6.dll, libwinpthread-1.dll

This commit is contained in:
Eric Wasylishen 2023-09-16 14:28:06 -06:00
parent d189145a01
commit 872f5fe8a0
9 changed files with 45 additions and 0 deletions

View File

@ -61,6 +61,41 @@ endif ()
add_definitions(-DERICWTOOLS_VERSION="${GIT_DESCRIBE}")
# MINGW stuff
if(MINGW)
find_file(LIB_GCC_S_SEH_1_DLL NAMES "libgcc_s_seh-1.dll")
find_file(LIB_STDCPP_6_DLL NAMES "libstdc++-6.dll")
find_file(LIB_WINPTHREAD_1_DLL NAMES "libwinpthread-1.dll")
if(LIB_GCC_S_SEH_1_DLL)
install(FILES ${LIB_GCC_S_SEH_1_DLL} DESTINATION bin)
endif()
if(LIB_STDCPP_6_DLL)
install(FILES ${LIB_STDCPP_6_DLL} DESTINATION bin)
endif()
if(LIB_WINPTHREAD_1_DLL)
install(FILES ${LIB_WINPTHREAD_1_DLL} DESTINATION bin)
endif()
endif()
function(copy_mingw_dlls TARGETNAME)
if (LIB_GCC_S_SEH_1_DLL)
add_custom_command(TARGET ${TARGETNAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LIB_GCC_S_SEH_1_DLL}" "$<TARGET_FILE_DIR:${TARGETNAME}>"
)
endif()
if (LIB_STDCPP_6_DLL)
add_custom_command(TARGET ${TARGETNAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LIB_STDCPP_6_DLL}" "$<TARGET_FILE_DIR:${TARGETNAME}>"
)
endif()
if (LIB_WINPTHREAD_1_DLL)
add_custom_command(TARGET ${TARGETNAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${LIB_WINPTHREAD_1_DLL}" "$<TARGET_FILE_DIR:${TARGETNAME}>"
)
endif()
endfunction()
if (WIN32)
set("NO_ITERATOR_DEBUG" FALSE CACHE BOOL "Whether to use MSVC iterator debugging or not")

View File

@ -6,5 +6,6 @@ add_custom_command(TARGET bspinfo POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbb>" "$<TARGET_FILE_DIR:bspinfo>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbbmalloc>" "$<TARGET_FILE_DIR:bspinfo>"
)
copy_mingw_dlls(bspinfo)
install(TARGETS bspinfo RUNTIME DESTINATION bin)

View File

@ -14,5 +14,6 @@ add_custom_command(TARGET bsputil POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbb>" "$<TARGET_FILE_DIR:bsputil>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbbmalloc>" "$<TARGET_FILE_DIR:bsputil>"
)
copy_mingw_dlls(bsputil)
install(TARGETS bsputil RUNTIME DESTINATION bin)

View File

@ -145,5 +145,7 @@ if (embree_FOUND)
endif()
endif(embree_FOUND)
copy_mingw_dlls(light)
install(TARGETS light RUNTIME DESTINATION bin)
install(FILES ../gpl_v3.txt DESTINATION bin)

View File

@ -60,6 +60,7 @@ if (NOT EMBREE_TBB_DLL STREQUAL EMBREE_TBB_DLL-NOTFOUND)
add_custom_command(TARGET lightpreview POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${EMBREE_TBB_DLL}" "$<TARGET_FILE_DIR:lightpreview>")
endif()
copy_mingw_dlls(lightpreview)
# Install Qt DLL's
install(FILES $<TARGET_FILE:Qt5::Widgets> DESTINATION bin)

View File

@ -27,5 +27,6 @@ add_custom_command(TARGET maputil POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbb>" "$<TARGET_FILE_DIR:maputil>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbbmalloc>" "$<TARGET_FILE_DIR:maputil>"
)
copy_mingw_dlls(maputil)
install(TARGETS maputil RUNTIME DESTINATION bin)

View File

@ -44,3 +44,5 @@ install(TARGETS qbsp RUNTIME DESTINATION bin)
add_custom_command(TARGET qbsp POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbb>" "$<TARGET_FILE_DIR:qbsp>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbbmalloc>" "$<TARGET_FILE_DIR:qbsp>")
copy_mingw_dlls(qbsp)

View File

@ -43,5 +43,6 @@ if (NOT EMBREE_TBB_DLL STREQUAL EMBREE_TBB_DLL-NOTFOUND)
add_custom_command(TARGET tests POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${EMBREE_TBB_DLL}" "$<TARGET_FILE_DIR:tests>")
endif()
copy_mingw_dlls(tests)
add_definitions(-DHAVE_EMBREE)

View File

@ -26,5 +26,6 @@ add_custom_command(TARGET vis POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbb>" "$<TARGET_FILE_DIR:vis>"
COMMAND ${CMAKE_COMMAND} -E copy_if_different "$<TARGET_FILE:TBB::tbbmalloc>" "$<TARGET_FILE_DIR:vis>"
)
copy_mingw_dlls(vis)
install(TARGETS vis RUNTIME DESTINATION bin)