Przeglądaj źródła

Fixed windows SDL dll issues.

Angel Ortiz 7 lat temu
rodzic
commit
29ce0b3cc7
2 zmienionych plików z 21 dodań i 0 usunięć
  1. 8 0
      CMakeLists.txt
  2. 13 0
      modules/FindSDL2.cmake

+ 8 - 0
CMakeLists.txt

@@ -3,9 +3,17 @@ project(softwareRenderer)
 
 
 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules")
+set(SDL2_PATH "C:\\vs_dev_lib\\SDL2-2.0.8")
 find_package(SDL2 REQUIRED)
 include_directories(${SDL2_INCLUDE_DIR})
 
 add_executable(softwareRenderer src/main.cpp)
 target_link_libraries(softwareRenderer ${SDL2_LIBRARY})
 
+
+if(WIN32)
+    add_custom_command(TARGET softwareRenderer POST_BUILD COMMAND
+    ${CMAKE_COMMAND} -E copy_if_different
+    ${SDL2_DLL}
+    $<TARGET_FILE_DIR:softwareRenderer>)
+endif()

+ 13 - 0
modules/FindSDL2.cmake

@@ -85,6 +85,7 @@ FIND_PATH(SDL2_INCLUDE_DIR SDL.h
 	PATHS ${SDL2_SEARCH_PATHS}
 )
 
+
 if(CMAKE_SIZEOF_VOID_P EQUAL 8) 
 	set(PATH_SUFFIXES lib64 lib/x64 lib)
 else() 
@@ -99,6 +100,17 @@ FIND_LIBRARY(SDL2_LIBRARY_TEMP
 	PATHS ${SDL2_SEARCH_PATHS}
 )
 
+if(WIN32)
+	FIND_PATH(SDL2_DLL_PATH SDL2.dll
+	HINTS
+	$ENV{SDL2DIR}
+	PATH_SUFFIXES ${PATH_SUFFIXES}
+	PATHS ${SDL2_SEARCH_PATHS}
+	)
+	set(SDL2_DLL "${SDL2_DLL_PATH}\\SDL2.dll" )
+endif()
+
+
 IF(NOT SDL2_BUILDING_LIBRARY)
 	IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
 		# Non-OS X framework versions expect you to also dynamically link to
@@ -167,6 +179,7 @@ ENDIF(SDL2_LIBRARY_TEMP)
 
 # message("</FindSDL2.cmake>")
 
+
 INCLUDE(FindPackageHandleStandardArgs)
 
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR)