Commit Graph

400 Commits

Author SHA1 Message Date
Andrej730 565393e0ec build-all: use kernel as gmp mirror
As it seems more stable than the other ones.
2026-08-28 18:51:24 +05:00
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 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 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 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 3251c1b225 Enable ccache explicitly for builds #9359
Since it's now off by default
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
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 2026-08-25 18:55:14 +05:00
Andrej730 42dccbc74b build-all: support Python 3.15 2026-08-25 14:02:43 +05:00
Andrej730 7fa8506fac build-all: test examples if they were built 2026-08-24 19:11:10 +05:00
Andrej730 9d68e7b9ca build-all: support --occt-shared 2026-08-24 19:11:10 +05:00
Andrej730 9ffbfe0dbb build-all: fix missing is_on_off
Update build-all.py
2026-08-24 19:10:28 +05:00
Andrej730 5b00c8b451 build-all: add --help and verify args 2026-08-24 18:50:23 +05:00
Andrej730 3a6055a558 build-all: document undocumented args 2026-08-14 13:03:20 +05:00
Andrej730 7b1b0b986c build-all: use global constants for flags consistently 2026-08-14 13:03:20 +05:00
Andrej730 cd34d92fdb build-all: add flag to build examples
Useful to reproduce issues with examples locally
2026-08-14 12:54:31 +05:00
Andrej730 7370d07db1 ruff: sort imports 2026-08-10 16:54:37 +05:00
Andrej730 19a3707f72 build-all: build swig natively for pyodide 2026-08-10 15:11:36 +05:00
Andrej730 262117c4f8 build-all: drop unused kwargs in build_dependency 2026-08-10 15:11:36 +05:00
Andrej730 246fa24be0 build-all: reuse WASM constant for consistency 2026-08-10 15:11:36 +05:00
Andrej730 f10f7eba83 build-all: use assert_never instead of ValueError 2026-08-10 15:11:24 +05:00
Thomas Krijnen af58eaf79f Last minute refactoring 2026-08-08 07:42:45 +02:00
Andrej730 d1027c5877 build-all: fix missing CXXFLAGS in manual build (f8f4725)
In the mentioned commit I've dropped workaround, because issue upstream was resolved, but forgot to load flags from `pyodide` fro manual build.
2026-08-05 18:37:46 +05:00
Andrej730 24c3d855de build-all: drop workaround for expired mpfr ssl 2026-08-05 18:37:46 +05:00
Andrej730 ae4f5c92fb build-all: remove unnecessary quoting from annotations and Union 2026-08-05 18:37:46 +05:00
Andrej730 75a3bf0175 build-all: accept truthy/falsy values in more consistent way 2026-08-05 18:37:46 +05:00
Andrej730 8bdaa8c7cb build-all: ifcopenshell-shared
As we're not currently bundling dlls for all other external dependencies.
It seems `--shared`in CI previously  worked sort of by accident - since it was relying on the cached build outputs that were previously built statically.
2026-08-04 22:13:25 +05:00
Andrej730 0e6e3edaa6 build-all: small alignment fix 2026-08-04 20:57:45 +05:00
Andrej730 6c750b0fdb build-all: fix opencollada patch to support it being buildable as shared 2026-08-04 14:24:32 +05:00
Andrej730 6d21801e53 build-all: fix shared build failing because opencollada is always built as static 2026-08-04 14:24:32 +05:00
Andrej730 6c049e6d6b build-all: use colors in logs for readibility 2026-08-04 14:24:32 +05:00
Dion Moult 19a1d88970 Fix all ty diagnostics on ifcviewer-wgpu (ci-lint ty-ios + ty-bonsai)
This branch carried v0.8.0's strict `[tool.ty.rules] all = "error"` config but
not the source fixes that were made upstream to satisfy it, so both ci-lint ty
gates were failing: `poe ty-ios` reported 256 diagnostics and `poe ty-bonsai`
258. Both are now clean.

Most fixes are ported from v0.8.0 and follow two idioms: initialise a name
before a conditional that may not bind it (plus an `assert` where the invariant
is real but not provable), and close an exhaustive `if`/`elif` chain with
`else: assert False, <discriminant>`.

The branch's own newer accessors are preserved throughout - `.file`,
`.declaration`, `file.types()`, `get_max_id()` are kept rather than reverted to
`wrapped_data.*`, and non-ty upstream changes (notably the in-progress geometry
cache removal) are deliberately not pulled in.

Notable fixes that are not straight ports:

* ifcopenshell_wrapper.pyi: `entity_instance.file` was declared as
  `def file(self) -> file`, where the property name shadows the `class file`
  below it, so the annotation resolved to `Unknown`. Every `element.file` in
  the codebase was therefore unchecked. Qualifying it to `ifcopenshell.file`
  restores `.schema` to its Literal union and surfaces no new diagnostics.

* model/wall.py: a duplicated merge fragment in the void-straddle path ran an
  always-true `if void_straddles:` that read `new_opening` from the mutually
  exclusive branch (stale value, or NameError on the first iteration), followed
  by an unreachable duplicate `elif`. Removing it makes the file match v0.8.0.

* light/operator.py: upstream's own fix unpacks three targets from two values
  and raises ValueError unconditionally; corrected to `None, None, None`.

* assign_system.py, validate.py, geom/main.py: walrus-in-genexp is valid at
  runtime (PEP 572 binds in the containing scope) but ty does not model it;
  rewritten as explicit loops, matching upstream.

Verified: poe ty-ios, poe ty-bonsai, ruff check src/ nix/, black --check .,
and compileall -W error at py3.10 (ifcopenshell-python) and py3.11 (bonsai).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 19:14:39 +10:00
Dion Moult 291d7d8441 black . 2026-07-26 18:03:09 +10:00