Commit Graph

417 Commits

Author SHA1 Message Date
Dion Moult 3c81e6e2e7 win: key the CGAL install dir on its version
6dbc4e28d raised the minimum CGAL to 5.4. The Windows dependency cache in
build-outputs is keyed on the install directory name and only ever adds to
it, so the unversioned `cgal` directory kept serving CGAL 5.2.3 and the
Windows build has failed at configure since:

  Could not find a configuration file for package "CGAL" that is compatible
  ... cgal/lib/cmake/CGAL/CGALConfig.cmake, version: 5.2.3

Name the directory `cgal-5.5.5`, as the TODO already suggested, and record
it in the deps cache like the other installers do.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 19:30:29 +10:00
Andrej730 3c1f44a42c cmake: require just 2 boost component by default program_options, regex
Tested locally that build succeeds with all other components being
header-only or unused by now.

`regex` is only needed for Boost <1.76, see
https://www.boost.org/releases/1.76.0/
2026-09-16 18:07:51 +05:00
Andrej730 abeea643af build-all: --add-commit-sha cli arg 2026-09-16 18:07:51 +05:00
Andrej730 39b913d5ec build-all: --num_build_procs cli arg 2026-09-16 18:07:51 +05:00
Andrej730 48042b4ff5 build-all-win: reuse boost for a small speedup 2026-09-15 19:01:05 +05:00
Andrej730 0607a7caa1 build scripts: autoswitch to release Python 3.15 2026-09-15 12:02:52 +05:00
Andrej730 5528d5e5a5 build-all-win: remove redundant python_versions list
A dead code since the commit when it was introduced (51bf4951b)
2026-09-15 12:02:52 +05:00
Andrej730 a6746ba531 run-cmake.py: --clean flag for removing build dir 2026-09-15 12:02:52 +05:00
Andrej730 ed6316b7f9 build-deps.py: add support for Python 3.15
We've added 3.15 to build-all-win, but `3.15.0` is not available on nuget yet, we need rc2 suffix for workflow to succeed.
2026-09-15 12:02:52 +05:00
Andrej730 f9d606e13a build-all-win: add script metadata 2026-09-14 17:23:21 +05:00
Andrej730 c8ece3ddb3 pyproject: add win to ty check 2026-09-14 17:23:21 +05:00
Andrej730 34e01b3cf8 build_win: fix wrong env var bug introduced in bfce5b94
In bfce5b94 by accident I removed `TARGET_ARCH` env variable to `VS_PLATFORM` in `build-all-win.py`, while it wasn't related to build-deps really - this was the variable coming from CI matrix.
2026-09-14 17:23:21 +05:00
Andrej730 1cadd711f1 build-deps: remove unnecessary mark installation for qt6 2026-09-14 17:23:21 +05:00
Andrej730 b59dc01019 build: run aqtinstall in deps directory to avoid stray log file 2026-09-14 17:23:21 +05:00
Andrej730 04ded95045 build-deps.py: use uv for running aqtinstall if possible, warn about possible global Python pollution
Using `uv` allows to run dependency in an ephemeral environment instead of polluting either local/global Python.
2026-09-14 17:23:21 +05:00
Andrej730 b93cd182fd build-deps: drop unnecessarypython.exe check
If `IFCOS_INSTALL_PYTHON` is enabled, then it's guaranteed that `PYTHONHOME` is set to nuget Python installation, so it will have python.exe.
2026-09-14 17:23:21 +05:00
Andrej730 3c8d8b2fda run-cmake.py: dont set any env variables
And pass needed values as cmake args instead
2026-09-14 17:23:21 +05:00
Andrej730 1b97857b60 build-deps.py: relax default logging to INFO 2026-09-14 17:23:21 +05:00
Andrej730 e7ae2097a4 run-cmake.py: cli args for using ninja and adding commit sha 2026-09-14 17:23:21 +05:00
Andrej730 e76b6bb9d7 build-all-win: use cli args instead of env vars 2026-09-14 17:23:21 +05:00
Andrej730 befc031ec5 build-deps.py: cli args to provide qt6 and Python version 2026-09-14 17:23:21 +05:00
Andrej730 a0e0516795 build-deps.py: add -y to skip initial confirmation prompt 2026-09-14 17:23:21 +05:00
Andrej730 73d24a50d0 build-all.cmd: keep using build-deps.cmd`until its removed 2026-09-14 17:23:21 +05:00
Andrej730 23f3874de1 run-cmake.py: pass Python args as cmake args instead of env vars
Keeping it more explicit and to avoid reconfiguration issues.
2026-09-11 19:12:01 +05:00
Andrej730 3ccfda1911 win/readme: hide remaining deprecated .cmd scripts 2026-09-11 19:12:01 +05:00
Andrej730 71cc22d795 Add win/build-all.py, deprecate build-all.cmd 2026-09-11 19:12:01 +05:00
Andrej730 d5fd959e6c Add run-cmake.py, deprecate run-cmake.bat
Also drop-in replacement mostly, except extra cmake args need to be provided now after `--` - `python run-cmake.py vs2022-x64 -- -DGLTF_SUPPORT=ON`.

Internally, script relies on env variables much much less.
2026-09-11 19:12:01 +05:00
Andrej730 e7b33a909d cmake: remove CGAL_LIBRARY_DIR
It's an artifact from times when CGAL wasn't a header-only library.
2026-09-11 19:12:01 +05:00
Andrej730 6317451a9e run-cmake: drop BOOST_INSTALL_DIR fallback value (2af7470)
`BOOST_INSTALL_DIR` is set in cache since 2af7470
2026-09-11 19:12:01 +05:00
Andrej730 8aa2f4e208 run-cmake: drop OCC_INCLUDE_DIR / OCC_LIBRARY_DIR (ce7fdcc)
They were not set by `build-deps.cmd` since ce7fdcc
2026-09-11 19:12:01 +05:00
Andrej730 51a86cdd86 Add install-/build-ifcopenshell.py, deprecate corresponding .bat files
Mainly drop-in replacement for `build-ifcopenshell.bat` with `--help`, kw args and args validation, but there's a small caveat.

Previously it was possible to pass args to the underlying build tool as simple positionals - e.g. `build-ifcopenshell vs2022-x64 Release /p:Foo=bar`.
This behaviour is disabled now, because it doesn't allow validating provided args - it's impossible to tell whether `--config Release` is meant to be passed to msbuild or was meant as `--build-cfg Release` for `build-ifcopenshell`.

But it's still possible to pass args to msbuild by using `--` - `python build-ifcopenshell.py vs2022-x64 Release -- /p:Foo=bar`

`install-ifcopenshell.py` is now just a small wrapper passing `--target INSTALL` arg.
2026-09-11 19:12:01 +05:00
Andrej730 322de0b56b build-deps.py: allow providing env vars as kw args
To include them in `--help` and make them more explicit.
2026-09-11 19:12:01 +05:00
Andrej730 65547a8694 build-deps.py: add todos to include version strings to installation paths 2026-09-11 19:12:01 +05:00
Andrej730 0da17c6515 build-deps: manifold to support co-existing Release/Debug builds 2026-09-11 19:12:01 +05:00
Andrej730 81df7982bc build-deps: --reuse-boost to support co-existing Release/Debug builds 2026-09-11 19:12:01 +05:00
Andrej730 7f9423daa6 build-deps.py: shortcut for getting active toolset 2026-09-11 19:12:01 +05:00
Andrej730 fb0a826ac9 build-deps.py: add kw args
So now user doesn't have to provide positional args they don't need if they're fine with the defaults - e.g. `python build-deps.py --build-cfg Debug`.
2026-09-11 19:12:01 +05:00
Andrej730 3be454447f build-deps.py: rename build_type_cfg to build_cfg (more concise) 2026-09-11 19:12:01 +05:00
Andrej730 bfce5b9415 Introduce build-deps.py, deprecate build-deps.cmd
Moving to Python to make Windows build scripts more maintainable.

It's intended to be a drop-in replacement, so it should be possible to just switch `.\build-deps.cmd` to `python build-deps.py`, keeping exactly the same arguments and behaviour will be the same.
`build-deps.cmd` is deprecated, but not yet removed, but will be shortly after more testing.

Other batch files will be migrated to Python shortly after too.
2026-09-09 16:43:04 +05:00
Andrej730 33462ecc7c win/readme: drop stale IFCOS_USE_OCCT note (15c28a1) 2026-09-09 16:43:04 +05:00
Andrej730 633b35e171 build-ifcopenshell: add example usage 2026-09-09 16:43:04 +05:00
Andrej730 f36f48819e build-ifcopenshell: process cpp files in parallel (5d8d6a0) 2026-09-09 16:43:04 +05:00
Andrej730 fe5b826ec1 run-cmake: wire manifold
Renamed variable to `MANIFOLD_INSTALL_PATH` to avoid relying on env variables for manifold package discovery in cmake.
2026-09-09 16:43:04 +05:00
Andrej730 e9a547dd5e build-deps/manifold: use BuildCMakeProject instead of BuildSolution
We use `BuildSolution` only in one other case - mpfr that doesn't have a cmake.
2026-09-09 16:43:04 +05:00
Andrej730 d94653cd1f build-deps/manifold: drop redundant git reset
It already happens during git clone.
2026-09-09 16:43:04 +05:00
Andrej730 2486dd38cb build-deps/manifold: make it reachable
manifold was introduced in a19d398, but its `goto :manifold` occurred too early in the file skipping bunch of dependencies - I guess that's why it was removed in 6ad5fbb, but then new target, qt was using `Successful` as the next label, so `manifold` end up being always skipped.
Making it reachable as we do use it in nix/build-all.
2026-09-09 16:43:04 +05:00
Andrej730 f4445e7e99 build-deps/rocksdb: remove redundant cmake args 2026-09-09 16:43:04 +05:00
Andrej730 a856ca9bf2 build-deps/qt: reuse NEXT_DEPENDENCY_LABEL 2026-09-09 16:43:04 +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