Commit Graph

386 Commits

Author SHA1 Message Date
Andrej730 b59dc01019 build: run aqtinstall in deps directory to avoid stray log file 2026-09-14 17:23:21 +05:00
Andrej730 6ad9386a8d build: dont provide dependencies to cgal installation
CGAL never runs `find_package` for `Boost`, `GMP` or `MPFR` during its configuration and never hardcodes their paths to the generated configs. So providing them have no effect. It's also can be confirmed by `build-deps.cmd` on Windows running all this time without the most of these args. Though it was settings `BOOST_ROOT` but it had no effect too.

Probably it's some kind of artifact from CGAL past when it's used to be non-header-only library.
2026-09-09 16:43:04 +05:00
Andrej730 9fd3fd17ab build: drop CGAL_HEADER_ONLY flag
Since cgal 5.3 the library is header only and flag is not needed. `BUILD_SHARED_LIBS` - same story.

See https://www.cgal.org/2021/07/06/cgal53/
2026-09-09 16:43:04 +05:00
Andrej730 5352d72815 build-all: use logger instead of print consistently 2026-09-01 18:13:03 +05:00
Andrej730 2f7ab8852f build-all: document QT_DIR, QT6_VERSION variables 2026-09-01 18:13:03 +05:00
Andrej730 1477fd2bc0 build-all: use datetime instead of date executable 2026-09-01 18:13:03 +05:00
Andrej730 7c685942b2 build-all: use shutil and pathlib instead of mkdir and cp 2026-09-01 18:13:03 +05:00
Andrej730 ee0e67a63b build-all: use find_spec to check aqt 2026-09-01 18:13:03 +05:00
Andrej730 f462424185 build-all: clean up unused variables
`BOOST_VERSION_UNDERSCORE` unused since 2e35b07

`OCE_LOCATION` is dead since it was introduced 72d8b5377 (and was a dead variable in build-all.sh too)

`curl`, `wget` - replaced with `urlretrieve back in 51cf52c38

Moved `BOOST_LOCATION` next to its `build_dependency`, so it will have a harder time getting lost.
2026-09-01 18:13:03 +05:00
Andrej730 29e14c10cb build-all: --disable-icu on boost to avoid linking unexpected ICU libs
Example error coming from Linux build (`build_rocky` is bringing ISU dev libs transitively through pango/cairo):
```
./BonsaiViewer: error while loading shared libraries: libicudata.so.67: cannot open shared object file: No such file or directory
```
2026-08-31 22:50:20 +05:00
Andrej730 24c4231013 build-all: do not deploy qt runtime
As it installs everything to `lib`, making it hard to filter things that are needed just for Python wrapper (e.g. skipping qt libs). Anyway we deploy everything ourselves manually in `package-zip-archives`.
2026-08-31 22:50:20 +05:00
Andrej730 c4dde0b0c0 build-all: support providing ld library paths on Mac 2026-08-31 22:50:20 +05:00
Andrej730 8332371ed3 build-all: pass boost to ld library paths for tests 2026-08-31 22:50:20 +05:00
Andrej730 2d6e233bd0 build-all: reuse APPLE constant 2026-08-31 22:50:20 +05:00
Andrej730 da28d127d7 build-all: make BonsaiViewer a normal target, built by default
Can be skipped using `--without-BonsaiViewer` as any other target, if
needed.
2026-08-31 22:50:20 +05:00
Andrej730 6dc14fa05c build-all: fix LIBRARY_EXT not considering macos
Led to error during OpenCOLLADA build:
```
2026-08-28 13:33:34,391 make[2]: *** No rule to make target `/Users/runner/work/IfcOpenShell/IfcOpenShell/build/Darwin/arm64/10.15/install/pcre-shared-8.41/lib/libpcre.so', needed by `lib/libOpenCOLLADABaseUtils.dylib'.  Stop.
2026-08-28 13:33:34,391 make[2]: *** Waiting for unfinished jobs....
```
2026-08-28 18:59:47 +05:00
Andrej730 12334d1f69 build-all: use kernel as gmp mirror
As it seems more stable than the other ones.
2026-08-28 18:59:47 +05:00
Andrej730 4e390acbbc 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:59:47 +05:00
Andrej730 f3d1c62f57 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:59:47 +05:00
Andrej730 914720c7ac 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:59:47 +05:00
Andrej730 68da576123 build-all: provide LD_LIBRARY_PATH when testing wrapper import 2026-08-28 18:59:47 +05:00
Andrej730 05cc2d4e3d build-all: consider lib64 during examples testing 2026-08-28 18:59:47 +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 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
Andrej730 b37499ddf7 ty: add ignores
(cherry picked from commit 0bad5a9389)
2026-07-25 23:18:33 +10:00