Commit 618b0d414ffd5681b620346913545e41445a7f9d

Cameron Gutman 2021-10-30T12:05:11

cmake: Remove SDL2_test_resources dummy hack It doesn't work properly on MSVC because the dummy target fails to link

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 629ac5a..aae1ddc 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -105,21 +105,8 @@ target_link_libraries(testshader OpenGL::GL)
 target_link_libraries(testgl2 OpenGL::GL)
 endif()
 
-# HACK: Dummy target to cause the resource files to be copied to the build directory.
-# Need to make it an executable so we can use the TARGET_FILE_DIR generator expression.
-# This is needed so they get copied to the correct Debug/Release subdirectory in Xcode.
-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/resources_dummy.c "int main(int argc, const char **argv){ return 1; }\n")
-add_executable(SDL2_test_resources ${CMAKE_CURRENT_BINARY_DIR}/resources_dummy.c)
-
 file(GLOB RESOURCE_FILES *.bmp *.wav *.hex moose.dat utf8.txt)
-foreach(RESOURCE_FILE ${RESOURCE_FILES})
-    add_custom_command(TARGET SDL2_test_resources POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${RESOURCE_FILE} $<TARGET_FILE_DIR:SDL2_test_resources>)
-endforeach(RESOURCE_FILE)
-
 file(COPY ${RESOURCE_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
-
-# TODO: Might be easier to make all targets depend on the resources...?
-
 set(NEEDS_RESOURCES
     testscale
     testrendercopyex
@@ -141,7 +128,9 @@ set(NEEDS_RESOURCES
     testmultiaudio
 )
 foreach(APP IN LISTS NEEDS_RESOURCES)
-    add_dependencies(${APP} SDL2_test_resources)
+    foreach(RESOURCE_FILE ${RESOURCE_FILES})
+        add_custom_command(TARGET ${APP} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${RESOURCE_FILE} $<TARGET_FILE_DIR:${APP}>)
+    endforeach(RESOURCE_FILE)
     if(APPLE)
         # Make sure resource files get installed into macOS/iOS .app bundles.  
         target_sources(${APP} PRIVATE "${RESOURCE_FILES}")