Re: [meta-ti][master/wrynose][PATCH] libsdl2: Build tests with dynamically linked library support
Antonios Christidis <[email protected]> Wed, 1 Jul 2026 13:28:08 -0500
| Newsgroups | org.yoctoproject.lists.meta-ti |
|---|---|
| Message-ID | <[email protected]> |
On 6/30/26 5:51 PM, Denys Dmytriyenko wrote: > On Tue, Jun 30, 2026 at 12:43:14PM -0500, Antonios Christidis via lists.yoctoproject.org wrote: >> From: Antonios Christidis <[email protected]> >> >> Carry upstream-submitted patch that adds SDL_TESTS_SHARED_LIB option, >> enabling test executables to be built with dynamic linking against >> libsdl2. >> >> Signed-off-by: Antonios Christidis <[email protected]> >> --- >> .../recipes-graphics/libsdl2/libsdl2-ti.inc | 9 +++ >> ...TS_SHARED_LIB-option-for-dynamically.patch | 56 +++++++++++++++++++ >> 2 files changed, 65 insertions(+) >> create mode 100644 meta-ti-test/recipes-graphics/libsdl2/libsdl2/0001-test-New-SDL_TESTS_SHARED_LIB-option-for-dynamically.patch >> >> diff --git a/meta-ti-test/recipes-graphics/libsdl2/libsdl2-ti.inc b/meta-ti-test/recipes-graphics/libsdl2/libsdl2-ti.inc >> index 33ff0632..959818a1 100644 >> --- a/meta-ti-test/recipes-graphics/libsdl2/libsdl2-ti.inc >> +++ b/meta-ti-test/recipes-graphics/libsdl2/libsdl2-ti.inc >> @@ -1,5 +1,14 @@ >> +FILESEXTRAPATHS:prepend := "${THISDIR}/libsdl2:" >> + >> +SRC_URI:append = " \ >> + file://0001-test-New-SDL_TESTS_SHARED_LIB-option-for-dynamically.patch \ >> +" >> + >> EXTRA_OECMAKE += "-DSDL_TESTS=ON \ >> -DSDL_INSTALL_TESTS=ON \ >> + -DSDL_TESTS_SHARED_LIB=ON \ >> " >> + >> PACKAGE_BEFORE_PN = "${PN}-tests" >> FILES:${PN}-tests += "${libexecdir} ${datadir}/installed-tests/SDL2" >> +RDEPENDS:${PN}-tests += "${PN}" > Now that you are no longer linking statically, you should try w/o explicit > RDEPENDS here, as bitbake is supposed to detect this dependency automatically. > That's what Andrew was asking last week... > Understood. I was mistaken, originally "bitbake -e" option did not show the package dependency. But looking at the image manifest in the deploy dir now I can see the main libsdl2 package is present alongside the test package. Sending revision. >> diff --git a/meta-ti-test/recipes-graphics/libsdl2/libsdl2/0001-test-New-SDL_TESTS_SHARED_LIB-option-for-dynamically.patch b/meta-ti-test/recipes-graphics/libsdl2/libsdl2/0001-test-New-SDL_TESTS_SHARED_LIB-option-for-dynamically.patch >> new file mode 100644 >> index 00000000..cc435b3a >> --- /dev/null >> +++ b/meta-ti-test/recipes-graphics/libsdl2/libsdl2/0001-test-New-SDL_TESTS_SHARED_LIB-option-for-dynamically.patch >> @@ -0,0 +1,56 @@ >> +From 96512412805f34ac6328290221c7ad83cde342b3 Mon Sep 17 00:00:00 2001 >> +From: Antonios Christidis <[email protected]> >> +Date: Fri, 26 Jun 2026 13:28:24 -0500 >> +Subject: [PATCH] test: New SDL_TESTS_SHARED_LIB option for dynamically linked >> + tests >> + >> +Introduce SDL_TESTS_SHARED_LIB to allow tests that expect dynamic linking >> +to be built. >> + >> +Upstream-Status: Submitted [https://github.com/libsdl-org/SDL/pull/15907] >> + >> +Signed-off-by: Antonios Christidis <[email protected]> >> +--- >> + test/CMakeLists.txt | 19 ++++++++++++++++--- >> + 1 file changed, 16 insertions(+), 3 deletions(-) >> + >> +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt >> +index 288645d73..8e5bd68d3 100644 >> +--- a/test/CMakeLists.txt >> ++++ b/test/CMakeLists.txt >> +@@ -87,8 +87,17 @@ macro(add_sdl_test_executable TARGET) >> + endif() >> + endmacro() >> + >> +-if(NOT TARGET SDL2::SDL2-static) >> +- find_package(SDL2 2.0.23 REQUIRED COMPONENTS SDL2-static SDL2test) >> ++option(SDL_TESTS_SHARED_LIB "Link test executables against the shared SDL2 library" OFF) >> ++ >> ++if(SDL_TESTS_SHARED_LIB) >> ++ set(SDL_SHARED ON) >> ++ if(NOT TARGET SDL2::SDL2) >> ++ find_package(SDL2 ${SDL_VERSION} REQUIRED COMPONENTS SDL2 SDL2test) >> ++ endif() >> ++else() >> ++ if(NOT TARGET SDL2::SDL2-static) >> ++ find_package(SDL2 ${SDL_VERSION} REQUIRED COMPONENTS SDL2-static SDL2test) >> ++ endif() >> + endif() >> + >> + enable_testing() >> +@@ -247,7 +256,11 @@ elseif(PS2) >> + elseif(IOS OR TVOS) >> + sdltest_link_librararies(SDL2::SDL2main SDL2::SDL2test SDL2::SDL2-static) >> + else() >> +- sdltest_link_librararies(SDL2::SDL2test SDL2::SDL2-static) >> ++ if(SDL_TESTS_SHARED_LIB) >> ++ sdltest_link_librararies(SDL2::SDL2test SDL2::SDL2) >> ++ else() >> ++ sdltest_link_librararies(SDL2::SDL2test SDL2::SDL2-static) >> ++ endif() >> + endif() >> + >> + if(WINDOWS) >> +-- >> +2.34.1 >> + >> -- >> 2.34.1