diff options
author | Grey Christoforo | 2021-11-24 13:43:54 +0100 |
---|---|---|
committer | Grey Christoforo | 2021-11-24 13:43:54 +0100 |
commit | e119ac502acac008f831a8e0b7cc2ed6e0d1b291 (patch) | |
tree | c6927527434278406b17e6915be0e275f344a010 /PKGBUILD | |
parent | 2b99dbc0dfae54c7a5437b7b4b88b6ede395a43b (diff) | |
download | aur-e119ac502acac008f831a8e0b7cc2ed6e0d1b291.tar.gz |
switch to non-official opencascade build
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 79 |
1 files changed, 51 insertions, 28 deletions
@@ -1,7 +1,7 @@ # Maintainer: Grey Christoforo <first name at last name dot net> pkgname=python-ocp-git -pkgver=7.5.2.beta.r2.g52c15d8 +pkgver=7.5.2.beta.r3.ge74a3de pkgrel=1 pkgdesc="Python wrapper for OCCT generated using pywrap" arch=(x86_64) @@ -9,12 +9,13 @@ url=https://github.com/CadQuery/OCP license=('Apache') depends=( python -opencascade +opencascade-cadquery vtk ) makedepends=( git clang +llvm python-joblib python-click python-pandas @@ -29,13 +30,24 @@ python-schema rapidjson python-jinja python-toml -python-cymbal lief ) conflicts=(python-ocp) provides=(python-ocp) -source=(git+https://github.com/CadQuery/OCP.git) -sha256sums=('SKIP') +source=( +git+https://github.com/CadQuery/OCP.git +git+https://github.com/CadQuery/pywrap.git +) +sha256sums=('SKIP' + 'SKIP') + +# pick where opencascade is installed +export _opencascade_install_prefix="/opt/opencascade-cadquery/usr" +#export _opencascade_install_prefix="/usr" + +# pick the package name that will provide opencascade here +export _occt_package_name="opencascade-cadquery" +#export _occt_package_name="opencascade" pkgver() { cd OCP @@ -44,20 +56,26 @@ pkgver() { prepare(){ cd OCP - git submodule update --init --recursive - - # opencascade is 7.5.3 not 7.5.1 - # TODO: unhardcode this crap - sed 's,7.5.1,7.5.3,g' -i dump_symbols.py + git submodule init + git config submodule.pywrap.url "${srcdir}"/pywrap + #git submodule update # use the submodule commit hashes specified + git submodule update --remote --merge # use the latest commit(s) + + _system_occt_ver=$(pacman -Q opencascade-cadquery | cut -f2 -d ' ' | cut -f1 -d'-') + sed "s,^libs_linux = .*,libs_linux = prefix_linux.glob('**/libTK*.so.${_system_occt_ver%p*}')," -i dump_symbols.py # don't use the opencascade headers packaged here # instead use the ones from the installed opencascade package rm -rf opencascade - ln -s /usr/include/opencascade . + ln -s "${_opencascade_install_prefix}"/include/opencascade . + + # ensure any opencascade at /usr isn't used here + sed 's|CONDA_PREFIX|_opencascade_install_prefix|g' -i FindOpenCascade.cmake pywrap/FindOpenCascade.cmake # add support for jinja v3 - cd pywrap - curl https://patch-diff.githubusercontent.com/raw/CadQuery/pywrap/pull/34.diff | patch -p1 || true + #cd pywrap + #curl https://patch-diff.githubusercontent.com/raw/CadQuery/pywrap/pull/34.diff | patch -p1 || true + #git checkout f8869e5a47fd3e3e1d31e7ab89b46c158f7487bf } build() { @@ -65,8 +83,8 @@ build() { # get symbols local _structure_needed="dummy/lib_linux/" - mkdir -p ${_structure_needed} - ln -s /usr/lib dummy/lib_linux/. + mkdir -p "${_structure_needed}" + ln -s "${_opencascade_install_prefix}"/lib dummy/lib_linux/. msg2 "Old symbols:" ls -lh *.dat rm *.dat @@ -76,29 +94,36 @@ build() { ls -lh *.dat rm -rf ${_structure_needed} find -maxdepth 1 -name '*.dat' -exec ln -sf ../{} pywrap/{} \; + + export CONDA_PREFIX="/usr" - msg2 "Running bindgen..." - CONDA_PREFIX=/usr PYTHONPATH=pywrap python -m bindgen \ + msg2 "Generating bindings..." + PYTHONPATH=pywrap python -m bindgen \ --clean \ - --libclang "$(ldconfig -p | grep 'libclang.so$' | head -1 | awk '{print $NF}')" \ + --libclang /usr/lib/libclang.so \ --include "$(clang -print-resource-dir)"/include \ --include "/usr/include/vtk" \ all ocp.toml - msg2 "bindgen done." + msg2 "Bindings generated." msg2 "Building OCP..." cmake -B build_dir -S OCP -W no-dev -G Ninja \ - -D OPENCASCADE_INCLUDE_DIR=opencascade \ - -D CMAKE_BUILD_TYPE=None - - cmake --build build_dir -- -j4 - msg2 "OCP build done." + -D CMAKE_BUILD_TYPE=None \ + -D CMAKE_FIND_ROOT_PATH="${_opencascade_install_prefix}" \ + -D OPENCASCADE_INCLUDE_DIR="${_opencascade_install_prefix}"/include/opencascade/ + cmake --build build_dir -- -j1 # -j1 prevents memory exhaustion + msg2 "OCP built." } check() { cd OCP - #python -c "from OCP.gp import gp_Vec, gp_Ax1, gp_Ax3, gp_Pnt, gp_Dir, gp_Trsf, gp_GTrsf, gp, gp_XYZ" - PYTHONPATH="./build_dir" python -c "import OCP" + + # prevent the current environment from skewing the testing + unset "${!CSF@}" + unset "${!DRAW@}" + unset CASROOT + + PYTHONPATH="$(pwd)/build_dir" python -c "from OCP import *" } package(){ @@ -107,5 +132,3 @@ package(){ install -Dt "${pkgdir}$(python -c 'import sys; print(sys.path[-1])')" -m644 build_dir/OCP.*.so install -Dt "${pkgdir}/usr/share/licenses/${pkgname}" -m644 LICENSE } - -# vim:ts=2:sw=2:et: |