50-sdl.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/bash
  2. SCRIPT_REPO="https://github.com/libsdl-org/SDL.git"
  3. SCRIPT_COMMIT="ab44451578ec6e449bd78b8f99ee0333dba69e3c"
  4. SCRIPT_BRANCH="SDL2"
  5. ffbuild_enabled() {
  6. return 0
  7. }
  8. ffbuild_dockerbuild() {
  9. mkdir build && cd build
  10. local mycmake=(
  11. -DSDL_SHARED=OFF
  12. -DSDL_STATIC=ON
  13. -DSDL_STATIC_PIC=ON
  14. -DSDL_TEST=OFF
  15. )
  16. if [[ $TARGET == linux* ]]; then
  17. mycmake+=(
  18. -DSDL_X11=ON
  19. -DSDL_X11_SHARED=OFF
  20. -DHAVE_XGENERICEVENT=TRUE
  21. -DSDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM=1
  22. -DSDL_PULSEAUDIO=ON
  23. -DSDL_PULSEAUDIO_SHARED=OFF
  24. )
  25. fi
  26. cmake -GNinja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" "${mycmake[@]}" ..
  27. ninja -j$(nproc)
  28. ninja install
  29. if [[ $TARGET == linux* ]]; then
  30. sed -ri -e 's/\-Wl,\-\-no\-undefined.*//' \
  31. -e 's/ \-l\/.+?\.a//g' \
  32. "$FFBUILD_PREFIX"/lib/pkgconfig/sdl2.pc
  33. echo 'Requires: libpulse-simple xxf86vm xscrnsaver xrandr xfixes xi xinerama xcursor' >> "$FFBUILD_PREFIX"/lib/pkgconfig/sdl2.pc
  34. elif [[ $TARGET == win* ]]; then
  35. sed -ri -e 's/\-Wl,\-\-no\-undefined.*//' \
  36. -e 's/ \-mwindows//g' \
  37. -e 's/ \-lSDL2main//g' \
  38. -e 's/ \-Dmain=SDL_main//g' \
  39. "$FFBUILD_PREFIX"/lib/pkgconfig/sdl2.pc
  40. fi
  41. sed -ri -e 's/ -lSDL2//g' \
  42. -e 's/Libs: /Libs: -lSDL2 /'\
  43. "$FFBUILD_PREFIX"/lib/pkgconfig/sdl2.pc
  44. echo 'Requires: samplerate' >> "$FFBUILD_PREFIX"/lib/pkgconfig/sdl2.pc
  45. }
  46. ffbuild_configure() {
  47. echo --enable-sdl2
  48. }
  49. ffbuild_unconfigure() {
  50. echo --disable-sdl2
  51. }