Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed bug 4092 - CMake support for building everything in the "test" …
…directory Eric Wasylishen Patch to support building the tests with cmake. Disabled by default, use: "cmake .. -DSDL_TEST=YES" to enable the tests. Tested on macOS 10.13 with the ninja, makefile, and Xcode generators, and Windows 10 with the Visual Studio 2017 generator.
- Loading branch information
Showing
2 changed files
with
132 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
cmake_minimum_required(VERSION 2.8.11) | ||
project(SDL2 C) | ||
|
||
# Global settings for all of the test targets | ||
# FIXME: is this wrong? | ||
remove_definitions(-DUSING_GENERATED_CONFIG_H) | ||
link_libraries(SDL2_test SDL2-static) | ||
|
||
# FIXME: Parent directory CMakeLists.txt only sets these for mingw/cygwin, | ||
# but we need them for VS as well. | ||
if(WINDOWS) | ||
link_libraries(SDL2main) | ||
add_definitions(-Dmain=SDL_main) | ||
endif() | ||
|
||
add_executable(checkkeys checkkeys.c) | ||
add_executable(loopwave loopwave.c) | ||
add_executable(loopwavequeue loopwavequeue.c) | ||
add_executable(testresample testresample.c) | ||
add_executable(testaudioinfo testaudioinfo.c) | ||
|
||
file(GLOB TESTAUTOMATION_SOURCE_FILES testautomation*.c) | ||
add_executable(testautomation ${TESTAUTOMATION_SOURCE_FILES}) | ||
|
||
add_executable(testmultiaudio testmultiaudio.c) | ||
add_executable(testaudiohotplug testaudiohotplug.c) | ||
add_executable(testaudiocapture testaudiocapture.c) | ||
add_executable(testatomic testatomic.c) | ||
add_executable(testintersections testintersections.c) | ||
add_executable(testrelative testrelative.c) | ||
add_executable(testhittesting testhittesting.c) | ||
add_executable(testdraw2 testdraw2.c) | ||
add_executable(testdrawchessboard testdrawchessboard.c) | ||
add_executable(testdropfile testdropfile.c) | ||
add_executable(testerror testerror.c) | ||
add_executable(testfile testfile.c) | ||
add_executable(testgamecontroller testgamecontroller.c) | ||
add_executable(testgesture testgesture.c) | ||
add_executable(testgl2 testgl2.c) | ||
add_executable(testgles testgles.c) | ||
add_executable(testgles2 testgles2.c) | ||
add_executable(testhaptic testhaptic.c) | ||
add_executable(testhotplug testhotplug.c) | ||
add_executable(testrumble testrumble.c) | ||
add_executable(testthread testthread.c) | ||
add_executable(testiconv testiconv.c) | ||
add_executable(testime testime.c) | ||
add_executable(testjoystick testjoystick.c) | ||
add_executable(testkeys testkeys.c) | ||
add_executable(testloadso testloadso.c) | ||
add_executable(testlock testlock.c) | ||
|
||
if(APPLE) | ||
add_executable(testnative testnative.c | ||
testnativecocoa.m | ||
testnativex11.c) | ||
elseif(WINDOWS) | ||
add_executable(testnative testnative.c testnativew32.c) | ||
elseif(UNIX) | ||
add_executable(testnative testnative.c testnativex11.c) | ||
endif() | ||
|
||
add_executable(testoverlay2 testoverlay2.c testyuv_cvt.c) | ||
add_executable(testplatform testplatform.c) | ||
add_executable(testpower testpower.c) | ||
add_executable(testfilesystem testfilesystem.c) | ||
add_executable(testrendertarget testrendertarget.c) | ||
add_executable(testscale testscale.c) | ||
add_executable(testsem testsem.c) | ||
add_executable(testshader testshader.c) | ||
add_executable(testshape testshape.c) | ||
add_executable(testsprite2 testsprite2.c) | ||
add_executable(testspriteminimal testspriteminimal.c) | ||
add_executable(teststreaming teststreaming.c) | ||
add_executable(testtimer testtimer.c) | ||
add_executable(testver testver.c) | ||
add_executable(testviewport testviewport.c) | ||
add_executable(testwm2 testwm2.c) | ||
add_executable(testyuv testyuv.c testyuv_cvt.c) | ||
add_executable(torturethread torturethread.c) | ||
add_executable(testrendercopyex testrendercopyex.c) | ||
add_executable(testmessage testmessage.c) | ||
add_executable(testdisplayinfo testdisplayinfo.c) | ||
add_executable(testqsort testqsort.c) | ||
add_executable(testbounds testbounds.c) | ||
add_executable(testcustomcursor testcustomcursor.c) | ||
add_executable(controllermap controllermap.c) | ||
add_executable(testvulkan testvulkan.c) | ||
|
||
# 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_resoureces ${CMAKE_CURRENT_BINARY_DIR}/resources_dummy.c) | ||
|
||
file(GLOB RESOURCE_FILES *.bmp *.wav) | ||
foreach(RESOURCE_FILE ${RESOURCE_FILES}) | ||
add_custom_command(TARGET SDL2_test_resoureces POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${RESOURCE_FILE} $<TARGET_FILE_DIR:SDL2_test_resoureces>) | ||
endforeach(RESOURCE_FILE) | ||
|
||
file(COPY ${RESOURCE_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) | ||
|
||
# TODO: Might be easier to make all targets depend on the resources...? | ||
add_dependencies(testscale SDL2_test_resoureces) | ||
add_dependencies(testrendercopyex SDL2_test_resoureces) | ||
add_dependencies(controllermap SDL2_test_resoureces) | ||
add_dependencies(testyuv SDL2_test_resoureces) | ||
add_dependencies(testgamecontroller SDL2_test_resoureces) | ||
add_dependencies(testshape SDL2_test_resoureces) | ||
add_dependencies(testshader SDL2_test_resoureces) | ||
add_dependencies(testnative SDL2_test_resoureces) | ||
add_dependencies(testspriteminimal SDL2_test_resoureces) | ||
add_dependencies(testautomation SDL2_test_resoureces) | ||
add_dependencies(testcustomcursor SDL2_test_resoureces) | ||
add_dependencies(testrendertarget SDL2_test_resoureces) | ||
add_dependencies(testsprite2 SDL2_test_resoureces) | ||
|
||
add_dependencies(loopwave SDL2_test_resoureces) | ||
add_dependencies(loopwavequeue SDL2_test_resoureces) | ||
add_dependencies(testresample SDL2_test_resoureces) | ||
add_dependencies(testaudiohotplug SDL2_test_resoureces) | ||
add_dependencies(testmultiaudio SDL2_test_resoureces) |