summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorGrey Christoforo2021-11-24 13:43:54 +0100
committerGrey Christoforo2021-11-24 13:43:54 +0100
commite119ac502acac008f831a8e0b7cc2ed6e0d1b291 (patch)
treec6927527434278406b17e6915be0e275f344a010 /PKGBUILD
parent2b99dbc0dfae54c7a5437b7b4b88b6ede395a43b (diff)
downloadaur-e119ac502acac008f831a8e0b7cc2ed6e0d1b291.tar.gz
switch to non-official opencascade build
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD79
1 files changed, 51 insertions, 28 deletions
diff --git a/PKGBUILD b/PKGBUILD
index b9e17a8eda2a..a7ae8a4a1e7a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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: