Commit Graph

22580 Commits

Author SHA1 Message Date
Andrej730 c13471a8af build-all: fix missing cgal dependency on boost
boost does have `"boost" in targets` guard, so building just `cgal` previously would fail
2026-08-28 18:51:24 +05:00
Andrej730 75c93ce5be build_rocky: use dtolnay/rust-toolchain action 2026-08-28 18:13:57 +05:00
Andrej730 0594e88de1 build-all: set CMAKE_INSTALL_PREFIX automatically for all dependencies
The only tricky one was occt, but it seems `INSTALL_DIR` is always initialized with `CMAKE_INSTALL_PREFIX` if not provided, so it will work fine.
2026-08-28 18:13:57 +05:00
Andrej730 cf60ed3c59 package-zip-archives: --shared flag
Currently adding `-shared-` suffix to all dependencies instead of overriding, to avoid mixups during transition period.
2026-08-28 18:13:57 +05:00
Andrej730 ecd328e42e package-zip-archives: skip previously installed runtime deps 2026-08-28 18:13:57 +05:00
Andrej730 c5a24a3f47 build-all: provide LD_LIBRARY_PATH when testing wrapper import 2026-08-28 18:13:57 +05:00
Andrej730 7997d5a2c8 build-all: consider lib64 during examples testing 2026-08-28 14:20:10 +05:00
Andrej730 3a67602bd2 IfcParseExamples: fix gcc warning about not covered enum cases 2026-08-27 19:19:11 +05:00
Andrej730 2a9786bac2 package-zip-archives: --occt-shared
Packing OCCT shared libraries, seems to work. Though still got to do a test in CI before implementing `--shared`.
2026-08-27 18:48:58 +05:00
Andrej730 df31069743 package-zip-archives: target patching and checking more precisely
E.g. to ensure patching of qt libraries is not covering up issues with other runtime libraries.
2026-08-27 18:48:58 +05:00
Andrej730 48eddeec01 package-zip-archives: patch rpath for all runtime libs, not just qt
Unsure if it's required, but just to be safe and to avoid warnings showing up during `check_runtime_dependencies`.
2026-08-27 18:48:58 +05:00
Andrej730 453bf9b8e8 package-zip-archives: add libs to ignore during check_runtime_dependencies 2026-08-27 18:48:58 +05:00
Andrej730 705aacf659 package-zip-archives: check runtime deps for python wrapper too 2026-08-27 18:48:58 +05:00
Andrej730 94fa2dea42 package-zip-archives: make python wrapper packaging rerunnable
Now we have temporary staging area and each run works exactly the same, without affecting actuall installation.
2026-08-27 17:56:15 +05:00
Andrej730 57f0f89993 remove_tr1.patch: add a note 2026-08-27 17:07:35 +05:00
Andrej730 ab8567fdca build-deps: point to the existing remove_tr1.patch
Tested that it applies cleanly even though commit is outdated.
2026-08-27 17:07:21 +05:00
Andrej730 57eb5f474e build-all: always apply tr1 removal patch
Just to use consistent patches between the builds. It was previously guarded by `WASM`, but it was a dead code - `OpenCOLLADA` is skipped on wasm, so it was never exercised.

Regarding the "specializing std::hash outside of the std:: namespace" issue on gcc - it was caused by patch missing fixes for `COLLADABU_HASH_NAMESPACE_OPEN` and `COLLADABU_HASH_NAMESPACE_CLOSE`. So in theory it should have also result in an error in clang or in an invalid code/ub. Either way, now it's fixed.
2026-08-27 17:07:11 +05:00
Andrej730 ec0e0ab3ff run-cmake.bat: revert special handling for USE_CCACHE
Since it's part of normal cmake options and no need to alter PATH to disable ccache.
2026-08-27 16:54:01 +05:00
Andrej730 25ffdc3943 cmake: adjust ccache messages given ut's now optional 2026-08-27 16:54:01 +05:00
Andrej730 147c87a7be cmake: move USE_CCACHE closer to other options 2026-08-27 16:54:01 +05:00
Andrej730 3251c1b225 Enable ccache explicitly for builds #9359
Since it's now off by default
2026-08-27 16:54:01 +05:00
Andrej730 d2da2988a4 cmake: fix buidling using rocksdb built as RelWithDebInfo #9359
See logs below for example issue I've met locally when I had just `RocksDBTargets-relwithdebinfo.cmake`.
Providing a list of configs makes it try to use matching config first and only then try `Release` as a fallback, otherwise it was now requiring `Release` builds.

```
CMake Error in CMakeLists.txt:
  IMPORTED_LOCATION not set for imported target "RocksDB::rocksdb"
  configuration "RelWithDebInfo".
```
2026-08-27 16:54:01 +05:00
Andrej730 5903c3c895 Normalize whitespaces in yml files 2026-08-27 16:54:01 +05:00
Andrej730 028497d4c0 package-zip-archives: use logger to control logs verbosity 2026-08-27 10:26:06 +05:00
Andrej730 b6b8d27f53 package-zip-archives: fix using wrong pattern for detecting SONAME
See example below - `Shared library` is used to declarate dependency, `Library soname` is used to declare `SONAME`.
```
 0x0000000000000001 (NEEDED)             Shared library: [libifcopenshell.plugin.so]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
 0x000000000000000e (SONAME)             Library soname: [libifcopenshell.parse.so]
```
2026-08-27 10:26:06 +05:00
Richard Brice 3b908aff79 Guard get_style() against non-IfcMaterial material sets lacking HasRepresentation bonsai-0.9.0-alpha2608261658 2026-08-26 09:14:44 -07:00
Richard Brice 05ba93ab61 Modifications to build C++ with Visual Studio 2026 and the v145 toolset. (#9359)
* Modifications to build C++ with Visual Studio 2026 and the v145 toolset.

* Fixes linker settings for rocksdb for Debug and Release builds

* module is a C++ 20 keyword. Explicitly stating namespace allows cpp20 projects to build against the library

* Fixes crash when initializing an object with the initialize function when some of the attributes are empty, {}, or omitted, std::nullopt

* cleanup for vs2026 v145 toolset per @aothms review

* Fixes bug, IfcCurveSegment.setStartLength was setSegmentLength in alignment_helper.cpp

* Bumps boost to 1.92
2026-08-26 09:10:41 -07:00
Andrej730 05e5a375f5 pyodide/meta.yaml: drop redundant --py313
Noticed after 5b00c8b45 - build started to break. `--py313` is not needed here, since wasm build doesn't really depend on the provided Python versions and just builds the version it picks up from `pyodide`.
2026-08-26 14:49:03 +05:00
dependabot[bot] 15deb1c02c build(deps): bump actions/setup-python from 6 to 7
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-26 14:11:39 +05:00
dependabot[bot] cc78d0bcc7 build(deps): bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-26 14:11:28 +05:00
dependabot[bot] 9246e9f1be Bump python-jose from 3.3.0 to 3.4.0 in /src/opencdeserver/api/app
Bumps [python-jose](https://github.com/mpdavis/python-jose) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/mpdavis/python-jose/releases)
- [Changelog](https://github.com/mpdavis/python-jose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mpdavis/python-jose/compare/3.3.0...3.4.0)

---
updated-dependencies:
- dependency-name: python-jose
  dependency-version: 3.4.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-26 14:10:52 +05:00
Andrej730 12338714aa package-zip-archives: provide arch suffixes and use them to determine build type
E.g. to avoid picking up wasm build that's also available locally
2026-08-26 13:03:30 +05:00
Andrej730 99c3304365 package-zip-archives: add colors for readibility 2026-08-26 12:34:36 +05:00
Andrej730 087f24185f package-zip-archives: consider installed qt libs to install/ifcopenshell/lib 2026-08-26 12:34:04 +05:00
Andrej730 aa4a73f62c package-zip-archives: clean up leftovers from previous failed local run 2026-08-26 12:34:04 +05:00
Andrej730 feba4cedb6 package-zip-archives: print current step 2026-08-26 12:33:58 +05:00
Andrej730 be05a04c9e package-zip-archives: get hash using git rev-parse for local runs 2026-08-26 12:02:01 +05:00
Andrej730 13bc8308b1 CI: unify script for packaging zips, port to Python bonsai-0.9.0-alpha2608251413 2026-08-25 18:55:14 +05:00
Andrej730 e104e7486c OCCT: avoid using deprecated Triangles method
Deprecated since OCCT 7.6.0
2026-08-25 18:55:14 +05:00
Andrej730 3103b3c747 Add fake-bpy-module to Bonsai dev environment 2026-08-25 18:55:14 +05:00
Andrej730 ea1671933f Bump tools 2026-08-25 18:55:14 +05:00
Andrej730 3c74891c4e BonsaiViewer: add --version cli option
Also useful for testing if all dependencies are found, without launching the viewer.
2026-08-25 18:16:13 +05:00
Andrej730 42dccbc74b build-all: support Python 3.15 2026-08-25 14:02:43 +05:00
Ryan Schultz 151aa2c45a Bonsai: sort drawing scale dropdown by scale ratio (#9357)
The imperial list ran the architectural scales from 1'=1'-0" down to
1/128"=1'-0", then restarted at 1"=10' for the engineering scales. Merge
both groups into a single sequence ordered by ratio, largest scale first.
The metric list was already ordered by ratio and is unchanged.

Also fix the enum cache invalidation, which compared the cached list's
length against hardcoded 13/31 while the imperial list has 32 entries, so
switching a scene from imperial back to metric kept showing imperial
scales. Track the unit system the cache was built for instead.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
bonsai-0.9.0-alpha2608250302
2026-08-24 22:02:22 -05:00
Dion Moult d808104725 ci: test the daily bonsai build against the branch that built it
The bare clone fetched the default branch, so a v0.9.0 daily would be
smoke-tested and pytested against v0.8.0 scripts and tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bonsai-0.9.0-alpha2608250046
2026-08-25 10:25:42 +10:00
Dion Moult b71b217814 ci: trigger bonsai and ifcsverchok dailies from v0.9.0
Daily builds for user testing now come from the v0.9.0 branch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 10:25:10 +10:00
Dion Moult d9f218eacf Bump build e333c1c > ad113e1
First v0.9.0alpha0 binary set, so the version prefix moves with it.
The bump trackers had drifted (bonsai's OLD pointed at 3e7b739 while
ifcopenshell-python pinned e333c1c), so this was done by hand;
'make bump' works again from here.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 10:25:04 +10:00
Dion Moult 0faba0fdd8 bonsai: drop Intel macOS builds
Upstream binary builds no longer produce macos64 zips (build_osx builds
arm64 only since wgpu Qt), and Blender dropped Intel Mac support in 5.0,
so there is nothing left to package for that platform.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 10:24:53 +10:00
Dion Moult ad113e1283 ifcviewer: latch the motion contribution cull instead of flip-flopping
The coarse motion threshold (15 px vs the 3 px still floor) followed the
per-frame "did the camera move" test directly. During a slow drag on a
janky main thread — the 66-model web session at 20 fps, mouse events
coalesced — some frames see no camera change, so the cull alternated
between thresholds every few frames: 84% of the visible set vanishing
and reappearing (139k <-> 22k objects in the log), with a full
visible-set re-upload at each flip feeding the very jank that caused the
gaps. On screen it read as the model sporadically jumping and returning
while orbiting slowly, easing as streaming and caching settled — which
is exactly how it was reported.

The motion state now latches: any camera movement arms it, and it only
drops after 250 ms of stillness, with the render loop kept alive over
the hold so the fine-threshold re-cull actually runs in an on-demand
loop. A drag degrades once at its start and restores once shortly after
it ends. Measured with a deliberately gappy scripted drag: two
transitions for the whole drag where each 120 ms pause previously
flipped it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 07:42:13 +10:00
Dion Moult 4a761b51f5 ifcviewer: pack the cull-hot instance fields and skip unchanged culls
On the single-threaded web build the CPU cull WAS the frame: 52-60 ms
of a 60 ms frame at 640k instances (desktop hides the same cost across
cores via std::async, which web cannot use without COOP/COEP+pthreads).

Two changes, both also helping desktop:

- ModelGpuData::CullInstance packs the six AABB floats and three ids the
  cull reads into 40 contiguous bytes. InstanceInfo is 232 bytes with
  the AABB 200 bytes away from the ids, so the walk paid two or three
  cache lines per instance. Rebuilt by rebuildCullInstances at model
  apply and inside uploadInstanceRecords, which every recompose,
  transform and colour-override change already funnels through.
  Measured on web: 94 ns/instance -> 36 ns/instance during a continuous
  orbit (~2.6x).

- render() re-culls only when a cull input changed: the camera, a
  cull-relevant setting (contribution px, LOD px, x-ray, HiZ on/off), a
  fresh HiZ pyramid, or scene_epoch_ — bumped by chunk residency,
  visibility, colours, transforms, model add/remove/hide/unload. A
  frame requested for an overlay redraw, pick feedback, or a streaming
  tick where nothing landed draws from the buffers the last cull
  uploaded and skips the walk entirely. Benchmarks are exempt so bench
  numbers keep measuring the real cull.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 07:42:13 +10:00