Explorar el Código

Modularized Qt and SDL file copying
Now cmake relies on two submodules to copy the libraries in the proper folders

freiro hace 9 años
padre
commit
b7b2627b37

+ 3 - 5
CMakeModules/CopyMSVCLibsQt.cmake → CMakeModules/CopyCitraQt5Deps.cmake

@@ -1,12 +1,10 @@
-function(copy_msvc_libraries)
+function(copy_citra_Qt5_deps target_dir)
     include(WindowsCopyFiles)
     set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/")
-    windows_copy_files(citra-qt ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll)
-
     set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin")
     set(Qt5_PLATFORMS_DIR "${Qt5_DIR}/../../../plugins/platforms/")
     set(PLATFORMS ${DLL_DEST}platforms/)
-    windows_copy_files(citra-qt ${Qt5_DLL_DIR} ${DLL_DEST}
+    windows_copy_files(${target_dir} ${Qt5_DLL_DIR} ${DLL_DEST}
         icudt*.dll
         icuin*.dll
         icuuc*.dll
@@ -16,4 +14,4 @@ function(copy_msvc_libraries)
         Qt5Widgets$<$<CONFIG:Debug>:d>.*
     )
     windows_copy_files(citra-qt ${Qt5_PLATFORMS_DIR} ${PLATFORMS} qwindows$<$<CONFIG:Debug>:d>.*)
-endfunction(copy_msvc_libraries)
+endfunction(copy_citra_Qt5_deps)

+ 5 - 0
CMakeModules/CopyCitraSDLDeps.cmake

@@ -0,0 +1,5 @@
+function(copy_citra_SDL_deps target_dir)
+    include(WindowsCopyFiles)
+    set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/")
+    windows_copy_files(${target_dir} ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll)
+endfunction(copy_citra_SDL_deps)

+ 4 - 7
src/citra/CMakeLists.txt

@@ -1,3 +1,5 @@
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
+
 set(SRCS
             emu_window/emu_window_sdl2.cpp
             citra.cpp
@@ -28,11 +30,6 @@ if(UNIX AND NOT APPLE)
 endif()
 
 if (MSVC)
-    include(WindowsCopyFiles)
-
-    set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/")
-
-    windows_copy_files(citra ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll)
-
-    unset(DLL_DEST)
+    include(CopyCitraSDLDeps)
+    copy_citra_SDL_deps(citra)
 endif()

+ 4 - 2
src/citra_qt/CMakeLists.txt

@@ -108,7 +108,9 @@ if(UNIX AND NOT APPLE)
     install(TARGETS citra-qt RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
 endif()
 
-include(CopyMSVCLibsQt)
 if (MSVC)
-    copy_msvc_libraries()
+    include(CopyCitraQt5Deps)
+    include(CopyCitraSDLDeps)
+    copy_citra_Qt5_deps(citra-qt)
+    copy_citra_SDL_deps(citra-qt)
 endif()