mirror of
				https://github.com/Ryujinx/SDL.git
				synced 2025-11-04 15:14:56 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			444 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			444 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
cmake_minimum_required(VERSION 3.0)
 | 
						|
project(SDL2_test)
 | 
						|
 | 
						|
include(CheckCCompilerFlag)
 | 
						|
include(CMakeParseArguments)
 | 
						|
include(CMakePushCheckState)
 | 
						|
 | 
						|
set(SDL_TEST_EXECUTABLES)
 | 
						|
set(SDL_TESTS_NONINTERACTIVE)
 | 
						|
set(SDL_TESTS_NEEDS_ESOURCES)
 | 
						|
 | 
						|
macro(add_sdl_test_executable TARGET)
 | 
						|
    cmake_parse_arguments(AST "NONINTERACTIVE;NEEDS_RESOURCES" "" "" ${ARGN})
 | 
						|
    add_executable(${TARGET} ${AST_UNPARSED_ARGUMENTS})
 | 
						|
 | 
						|
    list(APPEND SDL_TEST_EXECUTABLES ${TARGET})
 | 
						|
    if(AST_NONINTERACTIVE)
 | 
						|
        list(APPEND SDL_TESTS_NONINTERACTIVE ${TARGET})
 | 
						|
    endif()
 | 
						|
    if(AST_NEEDS_RESOURCES)
 | 
						|
        list(APPEND SDL_TESTS_NEEDS_ESOURCES ${TARGET})
 | 
						|
    endif()
 | 
						|
endmacro()
 | 
						|
 | 
						|
if(NOT TARGET SDL2::SDL2-static)
 | 
						|
    find_package(SDL2 2.0.23 REQUIRED COMPONENTS SDL2-static SDL2test)
 | 
						|
endif()
 | 
						|
 | 
						|
enable_testing()
 | 
						|
 | 
						|
if(SDL_INSTALL_TESTS)
 | 
						|
    include(GNUInstallDirs)
 | 
						|
endif()
 | 
						|
 | 
						|
if(N3DS)
 | 
						|
    link_libraries(SDL2::SDL2main)
 | 
						|
endif()
 | 
						|
 | 
						|
if(PSP)
 | 
						|
    link_libraries(
 | 
						|
        SDL2::SDL2main
 | 
						|
        SDL2::SDL2test
 | 
						|
        SDL2::SDL2-static
 | 
						|
        GL
 | 
						|
        pspvram
 | 
						|
        pspvfpu
 | 
						|
        pspdisplay
 | 
						|
        pspgu
 | 
						|
        pspge
 | 
						|
        pspaudio
 | 
						|
        pspctrl
 | 
						|
        psphprm
 | 
						|
        psppower
 | 
						|
    )
 | 
						|
elseif(PS2)
 | 
						|
link_libraries(
 | 
						|
        SDL2main
 | 
						|
        SDL2_test
 | 
						|
        SDL2-static
 | 
						|
        patches
 | 
						|
        gskit
 | 
						|
        dmakit
 | 
						|
        ps2_drivers
 | 
						|
)
 | 
						|
else()
 | 
						|
    link_libraries(SDL2::SDL2test SDL2::SDL2-static)
 | 
						|
endif()
 | 
						|
 | 
						|
if(WINDOWS)
 | 
						|
    # mingw32 must come before SDL2main to link successfully
 | 
						|
    if(MINGW OR CYGWIN)
 | 
						|
        link_libraries(mingw32)
 | 
						|
    endif()
 | 
						|
 | 
						|
    # CET support was added in VS 16.7
 | 
						|
    if(MSVC_VERSION GREATER 1926 AND CMAKE_GENERATOR_PLATFORM MATCHES "Win32|x64")
 | 
						|
        link_libraries(-CETCOMPAT)
 | 
						|
    endif()
 | 
						|
 | 
						|
    # FIXME: Parent directory CMakeLists.txt only sets these for mingw/cygwin,
 | 
						|
    # but we need them for VS as well.
 | 
						|
    link_libraries(SDL2main)
 | 
						|
    add_definitions(-Dmain=SDL_main)
 | 
						|
endif()
 | 
						|
 | 
						|
# CMake incorrectly detects opengl32.lib being present on MSVC ARM64
 | 
						|
if(NOT MSVC OR NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64")
 | 
						|
    # Prefer GLVND, if present
 | 
						|
    set(OpenGL_GL_PREFERENCE GLVND)
 | 
						|
    find_package(OpenGL)
 | 
						|
endif()
 | 
						|
 | 
						|
if (OPENGL_FOUND)
 | 
						|
add_definitions(-DHAVE_OPENGL)
 | 
						|
endif()
 | 
						|
 | 
						|
add_sdl_test_executable(checkkeys checkkeys.c)
 | 
						|
add_sdl_test_executable(checkkeysthreads checkkeysthreads.c)
 | 
						|
add_sdl_test_executable(loopwave NEEDS_RESOURCES loopwave.c testutils.c)
 | 
						|
add_sdl_test_executable(loopwavequeue NEEDS_RESOURCES loopwavequeue.c testutils.c)
 | 
						|
add_sdl_test_executable(testsurround testsurround.c)
 | 
						|
add_sdl_test_executable(testresample NEEDS_RESOURCES testresample.c)
 | 
						|
add_sdl_test_executable(testaudioinfo testaudioinfo.c)
 | 
						|
 | 
						|
file(GLOB TESTAUTOMATION_SOURCE_FILES testautomation*.c)
 | 
						|
add_sdl_test_executable(testautomation NEEDS_RESOURCES ${TESTAUTOMATION_SOURCE_FILES})
 | 
						|
add_sdl_test_executable(testmultiaudio NEEDS_RESOURCES testmultiaudio.c testutils.c)
 | 
						|
add_sdl_test_executable(testaudiohotplug NEEDS_RESOURCES testaudiohotplug.c testutils.c)
 | 
						|
add_sdl_test_executable(testaudiocapture testaudiocapture.c)
 | 
						|
add_sdl_test_executable(testatomic NONINTERACTIVE testatomic.c)
 | 
						|
add_sdl_test_executable(testintersections testintersections.c)
 | 
						|
add_sdl_test_executable(testrelative testrelative.c)
 | 
						|
add_sdl_test_executable(testhittesting testhittesting.c)
 | 
						|
add_sdl_test_executable(testdraw2 testdraw2.c)
 | 
						|
add_sdl_test_executable(testdrawchessboard testdrawchessboard.c)
 | 
						|
add_sdl_test_executable(testdropfile testdropfile.c)
 | 
						|
add_sdl_test_executable(testerror NONINTERACTIVE testerror.c)
 | 
						|
 | 
						|
if(LINUX)
 | 
						|
    add_sdl_test_executable(testevdev NONINTERACTIVE testevdev.c)
 | 
						|
endif()
 | 
						|
 | 
						|
add_sdl_test_executable(testfile testfile.c)
 | 
						|
add_sdl_test_executable(testgamecontroller NEEDS_RESOURCES testgamecontroller.c testutils.c)
 | 
						|
add_sdl_test_executable(testgeometry testgeometry.c testutils.c)
 | 
						|
add_sdl_test_executable(testgesture testgesture.c)
 | 
						|
add_sdl_test_executable(testgl2 testgl2.c)
 | 
						|
add_sdl_test_executable(testgles testgles.c)
 | 
						|
add_sdl_test_executable(testgles2 testgles2.c)
 | 
						|
add_sdl_test_executable(testhaptic testhaptic.c)
 | 
						|
add_sdl_test_executable(testhotplug testhotplug.c)
 | 
						|
add_sdl_test_executable(testrumble testrumble.c)
 | 
						|
add_sdl_test_executable(testthread NONINTERACTIVE testthread.c)
 | 
						|
add_sdl_test_executable(testiconv NEEDS_RESOURCES testiconv.c testutils.c)
 | 
						|
add_sdl_test_executable(testime NEEDS_RESOURCES testime.c testutils.c)
 | 
						|
add_sdl_test_executable(testjoystick testjoystick.c)
 | 
						|
add_sdl_test_executable(testkeys testkeys.c)
 | 
						|
add_sdl_test_executable(testloadso testloadso.c)
 | 
						|
add_sdl_test_executable(testlocale NONINTERACTIVE testlocale.c)
 | 
						|
add_sdl_test_executable(testlock testlock.c)
 | 
						|
add_sdl_test_executable(testmouse testmouse.c)
 | 
						|
 | 
						|
if(APPLE)
 | 
						|
    add_sdl_test_executable(testnative NEEDS_RESOURCES
 | 
						|
        testnative.c
 | 
						|
        testnativecocoa.m
 | 
						|
        testnativex11.c
 | 
						|
        testutils.c
 | 
						|
    )
 | 
						|
 | 
						|
    cmake_push_check_state(RESET)
 | 
						|
    check_c_compiler_flag(-Wno-error=deprecated-declarations HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS)
 | 
						|
    cmake_pop_check_state()
 | 
						|
    if(HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS)
 | 
						|
        set_property(SOURCE "testnativecocoa.m" APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-error=deprecated-declarations")
 | 
						|
    endif()
 | 
						|
elseif(WINDOWS)
 | 
						|
    add_sdl_test_executable(testnative NEEDS_RESOURCES testnative.c testnativew32.c testutils.c)
 | 
						|
elseif(HAVE_X11)
 | 
						|
    add_sdl_test_executable(testnative NEEDS_RESOURCES testnative.c testnativex11.c testutils.c)
 | 
						|
    target_link_libraries(testnative X11)
 | 
						|
endif()
 | 
						|
 | 
						|
add_sdl_test_executable(testoverlay2 NEEDS_RESOURCES testoverlay2.c testyuv_cvt.c testutils.c)
 | 
						|
add_sdl_test_executable(testplatform NONINTERACTIVE testplatform.c)
 | 
						|
add_sdl_test_executable(testpower NONINTERACTIVE testpower.c)
 | 
						|
add_sdl_test_executable(testfilesystem NONINTERACTIVE testfilesystem.c)
 | 
						|
add_sdl_test_executable(testrendertarget NEEDS_RESOURCES testrendertarget.c testutils.c)
 | 
						|
add_sdl_test_executable(testscale NEEDS_RESOURCES testscale.c testutils.c)
 | 
						|
add_sdl_test_executable(testsem testsem.c)
 | 
						|
add_sdl_test_executable(testsensor testsensor.c)
 | 
						|
add_sdl_test_executable(testshader NEEDS_RESOURCES testshader.c)
 | 
						|
add_sdl_test_executable(testshape NEEDS_RESOURCES testshape.c)
 | 
						|
add_sdl_test_executable(testsprite2 NEEDS_RESOURCES testsprite2.c testutils.c)
 | 
						|
add_sdl_test_executable(testspriteminimal NEEDS_RESOURCES testspriteminimal.c testutils.c)
 | 
						|
add_sdl_test_executable(teststreaming NEEDS_RESOURCES teststreaming.c testutils.c)
 | 
						|
add_sdl_test_executable(testtimer NONINTERACTIVE testtimer.c)
 | 
						|
add_sdl_test_executable(testurl testurl.c)
 | 
						|
add_sdl_test_executable(testver NONINTERACTIVE testver.c)
 | 
						|
add_sdl_test_executable(testviewport NEEDS_RESOURCES testviewport.c testutils.c)
 | 
						|
add_sdl_test_executable(testwm2 testwm2.c)
 | 
						|
add_sdl_test_executable(testyuv NEEDS_RESOURCES testyuv.c testyuv_cvt.c)
 | 
						|
add_sdl_test_executable(torturethread torturethread.c)
 | 
						|
add_sdl_test_executable(testrendercopyex NEEDS_RESOURCES testrendercopyex.c testutils.c)
 | 
						|
add_sdl_test_executable(testmessage testmessage.c)
 | 
						|
add_sdl_test_executable(testdisplayinfo testdisplayinfo.c)
 | 
						|
add_sdl_test_executable(testqsort NONINTERACTIVE testqsort.c)
 | 
						|
add_sdl_test_executable(testbounds testbounds.c)
 | 
						|
add_sdl_test_executable(testcustomcursor testcustomcursor.c)
 | 
						|
add_sdl_test_executable(controllermap NEEDS_RESOURCES controllermap.c testutils.c)
 | 
						|
add_sdl_test_executable(testvulkan testvulkan.c)
 | 
						|
add_sdl_test_executable(testoffscreen testoffscreen.c)
 | 
						|
 | 
						|
cmake_push_check_state(RESET)
 | 
						|
 | 
						|
check_c_compiler_flag(-Wformat-overflow HAVE_WFORMAT_OVERFLOW)
 | 
						|
if(HAVE_WFORMAT_OVERFLOW)
 | 
						|
    target_compile_definitions(testautomation PRIVATE HAVE_WFORMAT_OVERFLOW)
 | 
						|
endif()
 | 
						|
 | 
						|
check_c_compiler_flag(-Wformat HAVE_WFORMAT)
 | 
						|
if(HAVE_WFORMAT)
 | 
						|
    target_compile_definitions(testautomation PRIVATE HAVE_WFORMAT)
 | 
						|
endif()
 | 
						|
 | 
						|
check_c_compiler_flag(-Wformat-extra-args HAVE_WFORMAT_EXTRA_ARGS)
 | 
						|
if(HAVE_WFORMAT_EXTRA_ARGS)
 | 
						|
    target_compile_definitions(testautomation PRIVATE HAVE_WFORMAT_EXTRA_ARGS)
 | 
						|
endif()
 | 
						|
 | 
						|
cmake_pop_check_state()
 | 
						|
 | 
						|
if(SDL_DUMMYAUDIO)
 | 
						|
  list(APPEND SDL_TESTS_NONINTERACTIVE
 | 
						|
    testaudioinfo
 | 
						|
    testsurround
 | 
						|
  )
 | 
						|
endif()
 | 
						|
 | 
						|
if(SDL_DUMMYVIDEO)
 | 
						|
  list(APPEND SDL_TESTS_NONINTERACTIVE
 | 
						|
    testkeys
 | 
						|
    testbounds
 | 
						|
    testdisplayinfo
 | 
						|
  )
 | 
						|
endif()
 | 
						|
 | 
						|
if(OPENGL_FOUND)
 | 
						|
    if(TARGET OpenGL::GL)
 | 
						|
        target_link_libraries(testshader OpenGL::GL)
 | 
						|
        target_link_libraries(testgl2 OpenGL::GL)
 | 
						|
    else()
 | 
						|
        if(EMSCRIPTEN AND OPENGL_gl_LIBRARY STREQUAL "nul")
 | 
						|
            set(OPENGL_gl_LIBRARY GL)
 | 
						|
        endif()
 | 
						|
        # emscripten's FindOpenGL.cmake does not create OpenGL::GL
 | 
						|
        target_link_libraries(testshader ${OPENGL_gl_LIBRARY})
 | 
						|
        target_link_libraries(testgl2 ${OPENGL_gl_LIBRARY})
 | 
						|
    endif()
 | 
						|
endif()
 | 
						|
if(EMSCRIPTEN)
 | 
						|
    target_link_libraries(testshader -sLEGACY_GL_EMULATION)
 | 
						|
endif()
 | 
						|
 | 
						|
file(GLOB RESOURCE_FILES *.bmp *.wav *.hex moose.dat utf8.txt)
 | 
						|
file(COPY ${RESOURCE_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
 | 
						|
 | 
						|
if(PSP)
 | 
						|
    # Build EBOOT files if building for PSP
 | 
						|
    set(BUILD_EBOOT
 | 
						|
        ${SDL_TESTS_NEEDS_ESOURCES}
 | 
						|
        testatomic
 | 
						|
        testaudiocapture
 | 
						|
        testaudioinfo
 | 
						|
        testbounds
 | 
						|
        testdisplayinfo
 | 
						|
        testdraw2
 | 
						|
        testdrawchessboard
 | 
						|
        testerror
 | 
						|
        testfile
 | 
						|
        testfilesystem
 | 
						|
        testgeometry
 | 
						|
        testgl2
 | 
						|
        testhittesting
 | 
						|
        testiconv
 | 
						|
        testintersections
 | 
						|
        testjoystick
 | 
						|
        testlock
 | 
						|
        testmessage
 | 
						|
        testoverlay2
 | 
						|
        testplatform
 | 
						|
        testpower
 | 
						|
        testqsort
 | 
						|
        testsem
 | 
						|
        teststreaming
 | 
						|
        testsurround
 | 
						|
        testthread
 | 
						|
        testtimer
 | 
						|
        testver
 | 
						|
        testviewport
 | 
						|
        testwm2
 | 
						|
        torturethread
 | 
						|
    )
 | 
						|
    foreach(APP IN LISTS BUILD_EBOOT)
 | 
						|
        create_pbp_file(
 | 
						|
            TARGET          ${APP}
 | 
						|
            TITLE           SDL-${APP}
 | 
						|
            ICON_PATH       NULL
 | 
						|
            BACKGROUND_PATH NULL
 | 
						|
            PREVIEW_PATH    NULL
 | 
						|
        )
 | 
						|
        add_custom_command(
 | 
						|
            TARGET ${APP} POST_BUILD
 | 
						|
            COMMAND ${CMAKE_COMMAND} -E make_directory
 | 
						|
            $<TARGET_FILE_DIR:${ARG_TARGET}>/sdl-${APP}
 | 
						|
        )
 | 
						|
        add_custom_command(
 | 
						|
            TARGET ${APP} POST_BUILD
 | 
						|
            COMMAND ${CMAKE_COMMAND} -E rename
 | 
						|
            $<TARGET_FILE_DIR:${ARG_TARGET}>/EBOOT.PBP
 | 
						|
            $<TARGET_FILE_DIR:${ARG_TARGET}>/sdl-${APP}/EBOOT.PBP
 | 
						|
        )
 | 
						|
        if(${BUILD_PRX})
 | 
						|
            add_custom_command(
 | 
						|
                TARGET ${APP} POST_BUILD
 | 
						|
                COMMAND ${CMAKE_COMMAND} -E copy
 | 
						|
                $<TARGET_FILE_DIR:${ARG_TARGET}>/${APP}
 | 
						|
                $<TARGET_FILE_DIR:${ARG_TARGET}>/sdl-${APP}/${APP}
 | 
						|
            )
 | 
						|
            add_custom_command(
 | 
						|
                TARGET ${APP} POST_BUILD
 | 
						|
                COMMAND ${CMAKE_COMMAND} -E rename
 | 
						|
                $<TARGET_FILE_DIR:${ARG_TARGET}>/${APP}.prx
 | 
						|
                $<TARGET_FILE_DIR:${ARG_TARGET}>/sdl-${APP}/${APP}.prx
 | 
						|
            )
 | 
						|
        endif()
 | 
						|
        add_custom_command(
 | 
						|
            TARGET ${APP} POST_BUILD
 | 
						|
            COMMAND ${CMAKE_COMMAND} -E remove
 | 
						|
            $<TARGET_FILE_DIR:${ARG_TARGET}>/PARAM.SFO
 | 
						|
        )
 | 
						|
    endforeach()
 | 
						|
endif()
 | 
						|
 | 
						|
if(N3DS)
 | 
						|
    set(ROMFS_DIR "${CMAKE_CURRENT_BINARY_DIR}/romfs")
 | 
						|
    file(COPY ${RESOURCE_FILES} DESTINATION "${ROMFS_DIR}")
 | 
						|
 | 
						|
    foreach(APP IN LISTS SDL_TEST_EXECUTABLES)
 | 
						|
        get_target_property(TARGET_BINARY_DIR ${APP} BINARY_DIR)
 | 
						|
        set(SMDH_FILE "${TARGET_BINARY_DIR}/${APP}.smdh")
 | 
						|
        ctr_generate_smdh("${SMDH_FILE}" 
 | 
						|
            NAME "SDL-${APP}"
 | 
						|
            DESCRIPTION "SDL2 Test suite"
 | 
						|
            AUTHOR "SDL2 Contributors"
 | 
						|
            ICON "${CMAKE_CURRENT_SOURCE_DIR}/n3ds/logo48x48.png"
 | 
						|
        )
 | 
						|
        ctr_create_3dsx(
 | 
						|
            ${APP}
 | 
						|
            ROMFS "${ROMFS_DIR}"
 | 
						|
            SMDH "${SMDH_FILE}"
 | 
						|
        )
 | 
						|
    endforeach()
 | 
						|
endif()
 | 
						|
 | 
						|
if(RISCOS)
 | 
						|
    set(SDL_TEST_EXECUTABLES_AIF)
 | 
						|
    foreach(APP IN LISTS SDL_TEST_EXECUTABLES)
 | 
						|
        target_link_options(${APP} PRIVATE -static)
 | 
						|
        add_custom_command(
 | 
						|
            OUTPUT ${APP},ff8
 | 
						|
            COMMAND elf2aif ${APP} ${APP},ff8
 | 
						|
            DEPENDS ${APP}
 | 
						|
        )
 | 
						|
        add_custom_target(${APP}-aif ALL DEPENDS ${APP},ff8)
 | 
						|
        list(APPEND SDL_TEST_EXECUTABLES_AIF ${CMAKE_CURRENT_BINARY_DIR}/${APP},ff8)
 | 
						|
    endforeach()
 | 
						|
endif()
 | 
						|
 | 
						|
foreach(APP IN LISTS SDL_TESTS_NEEDS_RESOURCES)
 | 
						|
    foreach(RESOURCE_FILE ${RESOURCE_FILES})
 | 
						|
        if(PSP OR PS2)
 | 
						|
            add_custom_command(TARGET ${APP} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${RESOURCE_FILE} $<TARGET_FILE_DIR:${APP}>/sdl-${APP})
 | 
						|
        else()
 | 
						|
            add_custom_command(TARGET ${APP} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${RESOURCE_FILE} $<TARGET_FILE_DIR:${APP}>)
 | 
						|
        endif()
 | 
						|
    endforeach(RESOURCE_FILE)
 | 
						|
    if(APPLE)
 | 
						|
        # Make sure resource files get installed into macOS/iOS .app bundles.  
 | 
						|
        target_sources(${APP} PRIVATE "${RESOURCE_FILES}")
 | 
						|
        set_target_properties(${APP} PROPERTIES RESOURCE "${RESOURCE_FILES}")
 | 
						|
    endif()
 | 
						|
endforeach()
 | 
						|
 | 
						|
# Set Apple App ID / Bundle ID.  This is needed to launch apps on some Apple
 | 
						|
# platforms (iOS, for example).
 | 
						|
if(APPLE)
 | 
						|
    if(${CMAKE_VERSION} VERSION_LESS "3.7.0")
 | 
						|
        # CMake's 'BUILDSYSTEM_TARGETS' property is only available in
 | 
						|
        # CMake 3.7 and above.
 | 
						|
        message(WARNING "Unable to set Bundle ID for Apple .app builds due to old CMake (pre 3.7).")
 | 
						|
    else()
 | 
						|
        get_property(TARGETS DIRECTORY ${CMAKE_CURRENT_LIST_DIR} PROPERTY BUILDSYSTEM_TARGETS)
 | 
						|
        foreach(CURRENT_TARGET IN LISTS TARGETS)
 | 
						|
            get_property(TARGET_TYPE TARGET ${CURRENT_TARGET} PROPERTY TYPE)
 | 
						|
            if(TARGET_TYPE STREQUAL "EXECUTABLE")
 | 
						|
                set_target_properties("${CURRENT_TARGET}" PROPERTIES
 | 
						|
                    MACOSX_BUNDLE_GUI_IDENTIFIER "org.libsdl.${CURRENT_TARGET}"
 | 
						|
                    MACOSX_BUNDLE_BUNDLE_VERSION "${SDL_VERSION}"
 | 
						|
                    MACOSX_BUNDLE_SHORT_VERSION_STRING "${SDL_VERSION}"
 | 
						|
                )
 | 
						|
            endif()
 | 
						|
        endforeach()
 | 
						|
    endif()
 | 
						|
endif()
 | 
						|
 | 
						|
set(TESTS_ENVIRONMENT
 | 
						|
    SDL_AUDIODRIVER=dummy
 | 
						|
    SDL_VIDEODRIVER=dummy
 | 
						|
)
 | 
						|
 | 
						|
foreach(TESTCASE ${SDL_TESTS_NONINTERACTIVE})
 | 
						|
    add_test(
 | 
						|
        NAME ${TESTCASE}
 | 
						|
        COMMAND ${TESTCASE}
 | 
						|
        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
 | 
						|
    )
 | 
						|
    set_tests_properties(${TESTCASE}
 | 
						|
        PROPERTIES
 | 
						|
            ENVIRONMENT "${TESTS_ENVIRONMENT}"
 | 
						|
            TIMEOUT 10
 | 
						|
    )
 | 
						|
    if(SDL_INSTALL_TESTS)
 | 
						|
        set(exe ${TESTCASE})
 | 
						|
        set(installedtestsdir "${CMAKE_INSTALL_FULL_LIBEXECDIR}/installed-tests/SDL2")
 | 
						|
        configure_file(template.test.in "${exe}.test" @ONLY)
 | 
						|
        install(
 | 
						|
            FILES "${CMAKE_CURRENT_BINARY_DIR}/${exe}.test"
 | 
						|
            DESTINATION ${CMAKE_INSTALL_DATADIR}/installed-tests/SDL2
 | 
						|
        )
 | 
						|
    endif()
 | 
						|
endforeach()
 | 
						|
 | 
						|
set_tests_properties(testthread PROPERTIES TIMEOUT 40)
 | 
						|
set_tests_properties(testtimer PROPERTIES TIMEOUT 60)
 | 
						|
 | 
						|
if(SDL_INSTALL_TESTS)
 | 
						|
    if(RISCOS)
 | 
						|
        install(
 | 
						|
            FILES ${SDL_TEST_EXECUTABLES_AIF}
 | 
						|
            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL2
 | 
						|
        )
 | 
						|
    else()
 | 
						|
        install(
 | 
						|
            TARGETS ${SDL_TEST_EXECUTABLES}
 | 
						|
            DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL2
 | 
						|
        )
 | 
						|
    endif()
 | 
						|
    install(
 | 
						|
        FILES ${RESOURCE_FILES}
 | 
						|
        DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/installed-tests/SDL2
 | 
						|
    )
 | 
						|
endif()
 |