Skip to content
Snippets Groups Projects
Commit 4a7e21eb authored by James Rowe's avatar James Rowe
Browse files

More changes to the CMakeFiles for better MSVC compatibility. Added in the...

More changes to the CMakeFiles for better MSVC compatibility. Added in the RelWithDebInfo target and setup copying the Qt 5 Dlls to the output directories.
parent fa79b3f4
No related branches found
No related tags found
No related merge requests found
......@@ -12,7 +12,7 @@ else()
add_definitions(/D_CRT_SECURE_NO_WARNINGS)
# set up output paths for executable binaries (.exe-files, and .dll-files on DLL-capable platforms)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_CONFIGURATION_TYPES Debug Release RelWithDebInfo CACHE TYPE INTERNAL FORCE)
# Tweak optimization settings
# As far as I can tell, there's no way to override the CMake defaults while leaving user
# changes intact, so we'll just clobber everything and say sorry.
......@@ -106,7 +106,7 @@ if (ENABLE_GLFW)
set(GLFW_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/externals/glfw-3.0.4.bin")
set(GLFW_INCLUDE_DIRS "${GLFW_PREFIX}/include" CACHE PATH "Path to GLFW3 headers")
set(GLFW_LIBRARY_DIRS "${GLFW_PREFIX}/lib-${TMP_TOOLSET}" CACHE PATH "Path to GLFW3 libraries")
# Clean up after ourselves
unset(TMP_TOOLSET)
unset(TMP_ARCH)
......
......@@ -74,3 +74,47 @@ target_link_libraries(citra-qt ${OPENGL_gl_LIBRARY} ${CITRA_QT_LIBS})
target_link_libraries(citra-qt ${PLATFORM_LIBRARIES})
#install(TARGETS citra-qt RUNTIME DESTINATION ${bindir})
# setup a post build to copy the Qt Dlls to the right place on Windows MSVC
# I only have Qt 5 so if someone wants to add this for Qt 4 as well that would be great
if (Qt5_FOUND)
set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin")
file(GLOB Qt5_DEBUG_DLLS
"${Qt5_DLL_DIR}/icudt*.dll"
"${Qt5_DLL_DIR}/icuin*.dll"
"${Qt5_DLL_DIR}/icuuc*.dll"
"${Qt5_DLL_DIR}/Qt5Cored.*"
"${Qt5_DLL_DIR}/Qt5Guid.*"
"${Qt5_DLL_DIR}/Qt5OpenGLd.*"
"${Qt5_DLL_DIR}/Qt5Widgetsd.*"
)
foreach(Dll ${Qt5_DEBUG_DLLS})
# the if not exist skips this copy if the build directory doesn't exist so it doesn't error out
add_custom_command(TARGET citra-qt POST_BUILD
COMMAND if not exist "${CMAKE_BINARY_DIR}/bin/Debug/" goto :cmEnd
COMMAND ${CMAKE_COMMAND} -E
copy ${Dll} "${CMAKE_BINARY_DIR}/bin/Debug/")
endforeach()
# sooo here's a fun struggle. I can't set a custom command for a single build target,
# so instead I have to add all these to every configuration in VS anyway.
file(GLOB Qt5_RELEASE_DLLS
"${Qt5_DLL_DIR}/icudt*.dll"
"${Qt5_DLL_DIR}/icuin*.dll"
"${Qt5_DLL_DIR}/icuuc*.dll"
"${Qt5_DLL_DIR}/Qt5Core.*"
"${Qt5_DLL_DIR}/Qt5Gui.*"
"${Qt5_DLL_DIR}/Qt5OpenGL.*"
"${Qt5_DLL_DIR}/Qt5Widgets.*"
)
foreach(Dll ${Qt5_RELEASE_DLLS})
add_custom_command(TARGET citra-qt POST_BUILD
COMMAND if not exist "${CMAKE_BINARY_DIR}/bin/Release/" goto :cmEnd
COMMAND ${CMAKE_COMMAND} -E
copy ${Dll} "${CMAKE_BINARY_DIR}/bin/Release/")
add_custom_command(TARGET citra-qt POST_BUILD
COMMAND if not exist "${CMAKE_BINARY_DIR}/bin/RelWithDebInfo/" goto :cmEnd
COMMAND ${CMAKE_COMMAND} -E
copy ${Dll} "${CMAKE_BINARY_DIR}/bin/RelWithDebInfo/")
endforeach()
unset(Qt5_DLL_DIR)
endif()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment