mirror of
https://github.com/azahar-emu/azahar.git
synced 2026-06-05 18:23:39 -04:00
Implement proper DLL resolution for MXE builds
This commit is contained in:
parent
644a181aff
commit
0ce2a30d20
3 changed files with 16 additions and 8 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
|
@ -106,3 +106,6 @@
|
||||||
[submodule "externals/libretro-common"]
|
[submodule "externals/libretro-common"]
|
||||||
path = externals/libretro-common/libretro-common
|
path = externals/libretro-common/libretro-common
|
||||||
url = https://github.com/libretro/libretro-common.git
|
url = https://github.com/libretro/libretro-common.git
|
||||||
|
[submodule "dllwalker"]
|
||||||
|
path = externals/dllwalker
|
||||||
|
url = https://github.com/azahar-emu/dllwalker
|
||||||
|
|
|
||||||
1
externals/dllwalker
vendored
Submodule
1
externals/dllwalker
vendored
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 0c35d5de533eb82480dce2a211112517f69010d4
|
||||||
|
|
@ -49,19 +49,23 @@ if (APPLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND WIN32 AND MINGW)
|
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND WIN32 AND MINGW)
|
||||||
# TODO: This is placeholder bullshit, we need to find out a way to do actual dependency resolution.
|
# TODO: Do this for all executables, not just citra_meta
|
||||||
# Can we use Wine maybe? -OS
|
# TODO: Don't hardcode MXE directory to root?
|
||||||
set(EXTRA_LIBS /mxe/usr/x86_64-w64-mingw32.shared/bin/*.dll )
|
set(dllwalker_command "${CMAKE_SOURCE_DIR}/externals/dllwalker/dllwalker.rb"
|
||||||
|
$<TARGET_FILE:citra_meta>
|
||||||
|
/mxe/usr/x86_64-w64-mingw32.shared/bin/
|
||||||
|
/mxe/usr/x86_64-w64-mingw32.shared/qt6/bin/)
|
||||||
|
set(dll_list_filename "${CMAKE_CURRENT_BINARY_DIR}/required_dlls_list.txt")
|
||||||
add_custom_command(TARGET citra_meta POST_BUILD
|
add_custom_command(TARGET citra_meta POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_RUNTIME_DLLS:citra_meta> ${EXTRA_LIBS} $<TARGET_FILE_DIR:citra_meta>
|
COMMAND ${dllwalker_command} > ${dll_list_filename}
|
||||||
|
)
|
||||||
|
add_custom_command(TARGET citra_meta POST_BUILD
|
||||||
|
COMMAND cat ${dll_list_filename} | xargs -I {} ${CMAKE_COMMAND} -E copy {} $<TARGET_FILE_DIR:citra_meta>
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory "$<TARGET_FILE_DIR:citra_meta>/plugins/"
|
COMMAND ${CMAKE_COMMAND} -E make_directory "$<TARGET_FILE_DIR:citra_meta>/plugins/"
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory /mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/ "$<TARGET_FILE_DIR:citra_meta>/plugins/"
|
COMMAND ${CMAKE_COMMAND} -E copy_directory /mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/ "$<TARGET_FILE_DIR:citra_meta>/plugins/"
|
||||||
COMMAND_EXPAND_LISTS
|
COMMAND_EXPAND_LISTS
|
||||||
|
DEPENDS ${dll_list_filename}
|
||||||
)
|
)
|
||||||
add_custom_command(TARGET citra_meta POST_BUILD
|
|
||||||
COMMAND_EXPAND_LISTS
|
|
||||||
)
|
|
||||||
unset(EXTRA_LIBS)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(citra_meta PRIVATE citra_common fmt)
|
target_link_libraries(citra_meta PRIVATE citra_common fmt)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue