recipe 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. # Build recipe for SDL2.
  2. #
  3. # Copyright (c) 2022 Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>.
  4. #
  5. # Licensed under the Apache License, Version 2.0 (the "License");
  6. # you may not use this file except in compliance with the License.
  7. # You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. # Exit immediately on any error
  17. set -e
  18. program=SDL2
  19. version=2.26.1
  20. release=1
  21. pkgname=sdl2
  22. # Define a category for the output of the package name
  23. pkgcategory=media
  24. tarname=${program}-${version}.tar.gz
  25. # Remote source(s)
  26. fetch=https://libsdl.org/release/$tarname
  27. description="
  28. Simple Directmedia Layer.
  29. SDL is a cross-platform development library designed to provide low level
  30. access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL
  31. and Direct3D. It is used by video playback software, emulators, and popular
  32. games.
  33. "
  34. homepage=https://www.libsdl.org/
  35. license=Zlib
  36. # Source documentation
  37. docs="LICENSE.txt README-SDL.txt docs/README*.md"
  38. docsdir="${docdir}/${pkgname}-${version}"
  39. build()
  40. {
  41. unpack "${tardir}/$tarname"
  42. cd "$srcdir"
  43. # Set sane permissions
  44. chmod -R u+w,go-w,a+rX-s .
  45. rm -rf BUILD
  46. mkdir BUILD
  47. cd BUILD
  48. cmake -DCMAKE_BUILD_TYPE=Release \
  49. -DCMAKE_C_FLAGS="$QICFLAGS" \
  50. -DCMAKE_CXX_FLAGS="$QICXXFLAGS" \
  51. -DCMAKE_EXE_LINKER_FLAGS="$QILDFLAGS" \
  52. -DCMAKE_SHARED_LINKER_FLAGS="$QILDFLAGS" \
  53. -DCMAKE_STATIC_LINKER_FLAGS="$QILDFLAGS" \
  54. -DCMAKE_INSTALL_PREFIX=/usr \
  55. -DCMAKE_INSTALL_LIBDIR=lib${libSuffix} \
  56. -DCMAKE_INSTALL_MANDIR=$mandir \
  57. -DCMAKE_INSTALL_DOCDIR=$docsdir \
  58. -DSDL_STATIC_PIC=ON \
  59. -DSDL_STATIC=OFF \
  60. -G Ninja ..
  61. ninja -j${jobs}
  62. DESTDIR="$destdir" ninja -j${jobs} install
  63. # Switch back to the main source directory
  64. cd ..
  65. # Compress and link man pages (if needed)
  66. if test -d "${destdir}/$mandir"
  67. then
  68. (
  69. cd "${destdir}/$mandir"
  70. find . -type f -exec lzip -9 {} +
  71. find . -type l | while read -r file
  72. do
  73. ln -sf "$(readlink -- "$file").lz" "${file}.lz"
  74. rm -- "$file"
  75. done
  76. )
  77. fi
  78. # Copy documentation
  79. mkdir -p "${destdir}/$docsdir"
  80. cp -p $docs "${destdir}/$docsdir"
  81. }