recipe 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. # Build recipe for imath.
  2. #
  3. # Copyright (c) 2021-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=imath
  19. version=3.1.4
  20. release=1
  21. # Define a category for the output of the package name
  22. pkgcategory=x-libs
  23. tarname=${program}-${version}.tar.gz
  24. # Remote source(s)
  25. fetch=https://github.com/AcademySoftwareFoundation/Imath/archive/v${version}/$tarname
  26. description="
  27. A C++ and Python library of 2D and 3D vector, matrix for computer graphics.
  28. Imath is a basic, light-weight, and efficient C++ representation of 2D and
  29. 3D vectors and matrices and other simple but useful mathematical objects,
  30. functions, and data types common in computer graphics applications,
  31. including the half 16-bit floating-point type.
  32. Imath also includes optional Python bindings for all types and functions,
  33. including optimized implementations of vector and matrix arrays.
  34. "
  35. homepage=https://www.openexr.com
  36. license="BSD 3-clause"
  37. # Source documentation
  38. docs="CHANGES.md CODE_OF_CONDUCT.md CONTRIB* LICENSE.md README.md SECURITY.md"
  39. docsdir="${docdir}/${program}-${version}"
  40. # The source has a custom directory
  41. srcdir=Imath-${version}
  42. build()
  43. {
  44. unpack "${tardir}/$tarname"
  45. cd "$srcdir"
  46. # Set sane permissions
  47. chmod -R u+w,go-w,a+rX-s .
  48. rm -rf BUILD
  49. mkdir BUILD
  50. cd BUILD
  51. cmake \
  52. -DCMAKE_CXX_FLAGS_RELEASE:STRING="$QICXXFLAGS" \
  53. -DCMAKE_EXE_LINKER_FLAGS:STRING="$QILDFLAGS" \
  54. -DCMAKE_SHARED_LINKER_FLAGS:STRING="$QILDFLAGS" \
  55. -DCMAKE_INSTALL_PREFIX=/usr \
  56. -DCMAKE_INSTALL_LIBDIR=/usr/lib${libSuffix} \
  57. -DCMAKE_INSTALL_MANDIR=$mandir \
  58. -DCMAKE_INSTALL_DOCDIR=$docsdir \
  59. -DCMAKE_BUILD_TYPE=Release \
  60. -DCMAKE_VERBOSE_MAKEFILE=ON \
  61. -DCMAKE_SKIP_INSTALL_RPATH=YES \
  62. -DPYTHON=ON \
  63. -G Ninja ..
  64. ninja -j${jobs}
  65. DESTDIR="$destdir" ninja -j${jobs} install
  66. # Compress and link man pages (if needed)
  67. if test -d "${destdir}/$mandir"
  68. then
  69. (
  70. cd "${destdir}/$mandir"
  71. find . -type f -exec lzip -9 {} +
  72. find . -type l | while read -r file
  73. do
  74. ln -sf "$(readlink -- "$file").lz" "${file}.lz"
  75. rm -- "$file"
  76. done
  77. )
  78. fi
  79. cd ..
  80. # Copy documentation
  81. mkdir -p "${destdir}/$docsdir"
  82. cp -p $docs "${destdir}/$docsdir"
  83. }