cmake: Remove SDL2_test_resources dummy hack

It doesn't work properly on MSVC because the dummy target fails to link
This commit is contained in:
Cameron Gutman 2021-10-30 12:05:11 -05:00 committed by Sam Lantinga
parent 16845eef29
commit 618b0d414f
1 changed files with 3 additions and 14 deletions

View File

@ -105,21 +105,8 @@ target_link_libraries(testshader OpenGL::GL)
target_link_libraries(testgl2 OpenGL::GL) target_link_libraries(testgl2 OpenGL::GL)
endif() 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) 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}) file(COPY ${RESOURCE_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
# TODO: Might be easier to make all targets depend on the resources...?
set(NEEDS_RESOURCES set(NEEDS_RESOURCES
testscale testscale
testrendercopyex testrendercopyex
@ -141,7 +128,9 @@ set(NEEDS_RESOURCES
testmultiaudio testmultiaudio
) )
foreach(APP IN LISTS NEEDS_RESOURCES) 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) if(APPLE)
# Make sure resource files get installed into macOS/iOS .app bundles. # Make sure resource files get installed into macOS/iOS .app bundles.
target_sources(${APP} PRIVATE "${RESOURCE_FILES}") target_sources(${APP} PRIVATE "${RESOURCE_FILES}")