summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2016-12-16 11:35:55 -0500
committerGitHub <noreply@github.com>2016-12-16 11:35:55 -0500
commitd30d6f81aa2ef14a690d483c5b7e7487c71d1971 (patch)
tree4626053321537e40007b8bcd8170bd91caadb99b
parentca5a8966acd2780576bf2f7b03ed7b12b8f95c0b (diff)
parentb7b2627b3746e28fe64c9af74583c8b24edee909 (diff)
Merge pull request #2303 from freiro/citra-qt_missing_sdl2_dll
Copy SDL2.dll when compiling citra-qt with msvc
-rw-r--r--CMakeLists.txt1
-rw-r--r--CMakeModules/CopyCitraQt5Deps.cmake17
-rw-r--r--CMakeModules/CopyCitraSDLDeps.cmake5
-rw-r--r--src/citra/CMakeLists.txt11
-rw-r--r--src/citra_qt/CMakeLists.txt29
5 files changed, 33 insertions, 30 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bcee98a5f..52a1fd492 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,6 @@
# CMake 3.2 required for cmake to know the right flags for CXX standard on OSX
cmake_minimum_required(VERSION 3.2)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
function(download_bundled_external remote_path lib_name prefix_var)
set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}")
diff --git a/CMakeModules/CopyCitraQt5Deps.cmake b/CMakeModules/CopyCitraQt5Deps.cmake
new file mode 100644
index 000000000..05f58cf9a
--- /dev/null
+++ b/CMakeModules/CopyCitraQt5Deps.cmake
@@ -0,0 +1,17 @@
+function(copy_citra_Qt5_deps target_dir)
+ include(WindowsCopyFiles)
+ set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/")
+ set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin")
+ set(Qt5_PLATFORMS_DIR "${Qt5_DIR}/../../../plugins/platforms/")
+ set(PLATFORMS ${DLL_DEST}platforms/)
+ windows_copy_files(${target_dir} ${Qt5_DLL_DIR} ${DLL_DEST}
+ icudt*.dll
+ icuin*.dll
+ icuuc*.dll
+ Qt5Core$<$<CONFIG:Debug>:d>.*
+ Qt5Gui$<$<CONFIG:Debug>:d>.*
+ Qt5OpenGL$<$<CONFIG:Debug>:d>.*
+ Qt5Widgets$<$<CONFIG:Debug>:d>.*
+ )
+ windows_copy_files(citra-qt ${Qt5_PLATFORMS_DIR} ${PLATFORMS} qwindows$<$<CONFIG:Debug>:d>.*)
+endfunction(copy_citra_Qt5_deps)
diff --git a/CMakeModules/CopyCitraSDLDeps.cmake b/CMakeModules/CopyCitraSDLDeps.cmake
new file mode 100644
index 000000000..4f9e4aeb9
--- /dev/null
+++ b/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)
diff --git a/src/citra/CMakeLists.txt b/src/citra/CMakeLists.txt
index f9c488a1a..ecb5d2dfe 100644
--- a/src/citra/CMakeLists.txt
+++ b/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()
diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt
index a9dacd5f1..e1b3566bf 100644
--- a/src/citra_qt/CMakeLists.txt
+++ b/src/citra_qt/CMakeLists.txt
@@ -1,5 +1,6 @@
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/CMakeModules)
set(SRCS
config.cpp
@@ -107,27 +108,9 @@ if(UNIX AND NOT APPLE)
install(TARGETS citra-qt RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
endif()
-if (Qt5_FOUND AND MSVC)
- include(WindowsCopyFiles)
-
- set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin")
- set(Qt5_PLATFORMS_DIR "${Qt5_DIR}/../../../plugins/platforms/")
- set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/")
- set(PLATFORMS ${DLL_DEST}platforms/)
-
- windows_copy_files(citra-qt ${Qt5_DLL_DIR} ${DLL_DEST}
- icudt*.dll
- icuin*.dll
- icuuc*.dll
- Qt5Core$<$<CONFIG:Debug>:d>.*
- Qt5Gui$<$<CONFIG:Debug>:d>.*
- Qt5OpenGL$<$<CONFIG:Debug>:d>.*
- Qt5Widgets$<$<CONFIG:Debug>:d>.*
- )
- windows_copy_files(citra-qt ${Qt5_PLATFORMS_DIR} ${PLATFORMS} qwindows$<$<CONFIG:Debug>:d>.*)
-
- unset(Qt5_DLL_DIR)
- unset(Qt5_PLATFORMS_DIR)
- unset(DLL_DEST)
- unset(PLATFORMS)
+if (MSVC)
+ include(CopyCitraQt5Deps)
+ include(CopyCitraSDLDeps)
+ copy_citra_Qt5_deps(citra-qt)
+ copy_citra_SDL_deps(citra-qt)
endif()