pineapple/externals/SDL/test/CMakeLists.txt

302 lines
9.2 KiB
CMake
Raw Normal View History

2021-05-09 11:30:38 +02:00
cmake_minimum_required(VERSION 3.0.0)
2021-04-18 05:35:25 +02:00
project(SDL2 C)
# Global settings for all of the test targets
# FIXME: is this wrong?
remove_definitions(-DUSING_GENERATED_CONFIG_H)
2022-07-15 04:00:50 +02:00
if(PSP)
link_libraries(
SDL2main
SDL2_test
SDL2-static
GL
pspvram
pspvfpu
pspdisplay
pspgu
pspge
pspaudio
pspctrl
psphprm
psppower
)
else()
link_libraries(SDL2_test SDL2-static)
endif()
2021-04-18 05:35:25 +02:00
if(WINDOWS)
2021-12-07 02:20:09 +01:00
# mingw32 must come before SDL2main to link successfully
if(MINGW OR CYGWIN)
link_libraries(mingw32)
endif()
# FIXME: Parent directory CMakeLists.txt only sets these for mingw/cygwin,
# but we need them for VS as well.
2021-04-18 05:35:25 +02:00
link_libraries(SDL2main)
add_definitions(-Dmain=SDL_main)
endif()
2021-12-07 02:20:09 +01:00
# CMake incorrectly detects opengl32.lib being present on MSVC ARM64
if(NOT MSVC OR NOT CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64")
find_package(OpenGL)
endif()
2021-05-09 11:30:38 +02:00
if (OPENGL_FOUND)
add_definitions(-DHAVE_OPENGL)
endif()
2021-04-18 05:35:25 +02:00
add_executable(checkkeys checkkeys.c)
2021-06-11 20:56:03 +02:00
add_executable(checkkeysthreads checkkeysthreads.c)
2022-07-19 05:48:31 +02:00
add_executable(loopwave loopwave.c)
add_executable(loopwavequeue loopwavequeue.c)
2021-12-07 02:20:09 +01:00
add_executable(testsurround testsurround.c)
2021-04-18 05:35:25 +02:00
add_executable(testresample testresample.c)
add_executable(testaudioinfo testaudioinfo.c)
file(GLOB TESTAUTOMATION_SOURCE_FILES testautomation*.c)
add_executable(testautomation ${TESTAUTOMATION_SOURCE_FILES})
2022-07-19 05:48:31 +02:00
add_executable(testmultiaudio testmultiaudio.c)
add_executable(testaudiohotplug testaudiohotplug.c)
2021-04-18 05:35:25 +02:00
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)
2022-07-19 05:48:31 +02:00
add_executable(testgamecontroller testgamecontroller.c)
add_executable(testgeometry testgeometry.c)
2021-04-18 05:35:25 +02:00
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)
2022-07-19 05:48:31 +02:00
add_executable(testiconv testiconv.c)
add_executable(testime testime.c)
2021-04-18 05:35:25 +02:00
add_executable(testjoystick testjoystick.c)
add_executable(testkeys testkeys.c)
add_executable(testloadso testloadso.c)
add_executable(testlock testlock.c)
2021-12-07 02:20:09 +01:00
add_executable(testmouse testmouse.c)
2021-04-18 05:35:25 +02:00
if(APPLE)
add_executable(testnative testnative.c
testnativecocoa.m
2022-07-19 05:48:31 +02:00
testnativex11.c)
2021-04-18 05:35:25 +02:00
elseif(WINDOWS)
2022-07-19 05:48:31 +02:00
add_executable(testnative testnative.c testnativew32.c)
elseif(UNIX)
add_executable(testnative testnative.c testnativex11.c)
2021-04-18 05:35:25 +02:00
endif()
2022-07-19 05:48:31 +02:00
add_executable(testoverlay2 testoverlay2.c testyuv_cvt.c)
2021-04-18 05:35:25 +02:00
add_executable(testplatform testplatform.c)
add_executable(testpower testpower.c)
add_executable(testfilesystem testfilesystem.c)
2022-07-19 05:48:31 +02:00
add_executable(testrendertarget testrendertarget.c)
add_executable(testscale testscale.c)
2021-04-18 05:35:25 +02:00
add_executable(testsem testsem.c)
add_executable(testshader testshader.c)
add_executable(testshape testshape.c)
2022-07-19 05:48:31 +02:00
add_executable(testsprite2 testsprite2.c)
add_executable(testspriteminimal testspriteminimal.c)
add_executable(teststreaming teststreaming.c)
2021-04-18 05:35:25 +02:00
add_executable(testtimer testtimer.c)
add_executable(testver testver.c)
2022-07-19 05:48:31 +02:00
add_executable(testviewport testviewport.c)
2021-04-18 05:35:25 +02:00
add_executable(testwm2 testwm2.c)
add_executable(testyuv testyuv.c testyuv_cvt.c)
add_executable(torturethread torturethread.c)
2022-07-19 05:48:31 +02:00
add_executable(testrendercopyex testrendercopyex.c)
2021-04-18 05:35:25 +02:00
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)
2022-07-19 05:48:31 +02:00
add_executable(controllermap controllermap.c)
2021-04-18 05:35:25 +02:00
add_executable(testvulkan testvulkan.c)
add_executable(testoffscreen testoffscreen.c)
2022-07-15 04:00:50 +02:00
if(OPENGL_FOUND)
2022-07-19 05:48:31 +02:00
add_dependencies(testshader OpenGL::GL)
add_dependencies(testgl2 OpenGL::GL)
target_link_libraries(testshader OpenGL::GL)
target_link_libraries(testgl2 OpenGL::GL)
2022-07-15 04:00:50 +02:00
endif()
file(GLOB RESOURCE_FILES *.bmp *.wav *.hex moose.dat utf8.txt)
file(COPY ${RESOURCE_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
2022-07-19 05:48:31 +02:00
if(PSP)
2022-07-15 04:00:50 +02:00
set(NEEDS_RESOURCES
testscale
testrendercopyex
controllermap
testyuv
testgamecontroller
testshape
testshader
testspriteminimal
testautomation
testrendertarget
testsprite2
loopwave
loopwavequeue
testresample
testaudiohotplug
testmultiaudio
testiconv
testoverlay2
teststreaming
testviewport
)
else()
set(NEEDS_RESOURCES
testscale
testrendercopyex
controllermap
testyuv
testgamecontroller
testshape
testshader
testspriteminimal
testautomation
testcustomcursor
testrendertarget
testsprite2
loopwave
loopwavequeue
testresample
testaudiohotplug
testmultiaudio
testime
2022-07-19 05:48:31 +02:00
testnative
2022-07-15 04:00:50 +02:00
testiconv
testoverlay2
teststreaming
testviewport
)
endif()
if(PSP)
# Build EBOOT files if building for PSP
set(BUILD_EBOOT
${NEEDS_RESOURCES}
testbounds
2022-07-19 05:48:31 +02:00
testgl2
testsem
2022-07-15 04:00:50 +02:00
testdisplayinfo
2022-07-19 05:48:31 +02:00
teststreaming
2022-07-15 04:00:50 +02:00
testgeometry
2022-07-19 05:48:31 +02:00
testfile
testdraw2
testviewport
2022-07-15 04:00:50 +02:00
testhittesting
2022-07-19 05:48:31 +02:00
testoverlay2
testver
testdrawchessboard
testsurround
2022-07-15 04:00:50 +02:00
testintersections
testmessage
2022-07-19 05:48:31 +02:00
testaudiocapture
testerror
testatomic
testjoystick
testiconv
testfilesystem
2022-07-15 04:00:50 +02:00
testplatform
testthread
2022-07-19 05:48:31 +02:00
testloadso
testqsort
testaudioinfo
testlock
2022-07-15 04:00:50 +02:00
testtimer
2022-07-19 05:48:31 +02:00
testpower
2022-07-15 04:00:50 +02:00
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()
2021-04-18 05:35:25 +02:00
foreach(APP IN LISTS NEEDS_RESOURCES)
2021-12-07 02:20:09 +01:00
foreach(RESOURCE_FILE ${RESOURCE_FILES})
2022-07-19 05:48:31 +02:00
if(PSP)
2022-07-15 04:00:50 +02:00
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()
2021-12-07 02:20:09 +01:00
endforeach(RESOURCE_FILE)
2021-04-18 05:35:25 +02:00
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()