recipe 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. # Build recipe for ccache.
  2. #
  3. # Copyright (c) 2022 Matias Fonzo, <selk@dragora.org>.
  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=ccache
  19. version=4.7.4
  20. release=1
  21. # Define a category for the output of the package name
  22. pkgcategory=devel
  23. tarname=${program}-${version}.tar.gz
  24. # Remote source(s)
  25. fetch=https://github.com/ccache/ccache/releases/download/v${version}/$tarname
  26. description="
  27. A fast C/C++ compiler cache.
  28. Ccache is a compiler cache. It speeds up recompilation by caching
  29. previous compilations and detecting when the same compilation is
  30. being done again. Ccache is free software, released under the
  31. GNU General Public License version 3 or later.
  32. "
  33. homepage=https://ccache.dev/
  34. license="GPLv3+, LGPLv3+"
  35. # Source documentation
  36. docs="ARCHITECTURE.md CONTRIBUTING.md LGPL* GPL* README.md doc/AUTHORS* doc/NEWS*"
  37. docsdir="${docdir}/${program}-${version}"
  38. build()
  39. {
  40. unpack "${tardir}/$tarname"
  41. cd "$srcdir"
  42. # Set sane permissions
  43. chmod -R u+w,go-w,a+rX-s .
  44. rm -rf BUILD
  45. mkdir BUILD
  46. cd BUILD
  47. cmake -DCMAKE_BUILD_TYPE=Release \
  48. -DCMAKE_C_FLAGS="$QICFLAGS" \
  49. -DCMAKE_CXX_FLAGS="$QICXXFLAGS" \
  50. -DCMAKE_EXE_LINKER_FLAGS="$QILDFLAGS" \
  51. -DCMAKE_SHARED_LINKER_FLAGS="$QILDFLAGS" \
  52. -DCMAKE_STATIC_LINKER_FLAGS="$QILDFLAGS" \
  53. -DCMAKE_INSTALL_PREFIX=/usr \
  54. -DCMAKE_INSTALL_LIBDIR=lib${libSuffix} \
  55. -DCMAKE_INSTALL_SYSCONFDIR=/etc \
  56. -DCMAKE_INSTALL_MANDIR=$mandir \
  57. -DCMAKE_INSTALL_DOCDIR=$docsdir \
  58. -DREDIS_STORAGE_BACKEND=OFF \
  59. -G Ninja ..
  60. ninja -j${jobs}
  61. DESTDIR="$destdir" ninja -j${jobs} install
  62. # Switch back to the main source directory
  63. cd ..
  64. # Compress and link man pages (if needed)
  65. if test -d "${destdir}/$mandir"
  66. then
  67. (
  68. cd "${destdir}/$mandir"
  69. find . -type f -exec lzip -9 {} +
  70. find . -type l | while read -r file
  71. do
  72. ln -sf "$(readlink -- "$file").lz" "${file}.lz"
  73. rm -- "$file"
  74. done
  75. )
  76. fi
  77. # Copy documentation
  78. mkdir -p "${destdir}/$docsdir"
  79. cp -p $docs "${destdir}/$docsdir"
  80. }