Commit Graph

412 Commits

Author SHA1 Message Date
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
Andrej730 cb510519a1 run-cmake: drop default value for SWIG_INSTALL_DIR
Caching of version path was introduced in c5f6d47, awhile ago, removing it, since all new installations are already using the cache instead of this default fallback.

`robocopy` line was an artifact from old layout.
2026-09-09 16:43:04 +05:00
Andrej730 649a869d9c build-deps/python: remove redundant PYTHON_AMD64_POSTFIX variable
It was only needed to set `PYTHON_INSTALLER` correctly, but
`PYTHON_INSTALLER` is actually only used when arch is not x64/arm64,
exactly the only cases when `PYTHON_AMD64_POSTFIX` is set.
2026-09-09 16:43:04 +05:00
Andrej730 865fd99eba build-deps/occt: drop cleaning up inc directory
Turned out it wasn't cmake/occt problem and was a general Windows issue - realtime protection is slowing down cmake reinstalls.
See https://redirect.github.com/Open-Cascade-SAS/OCCT/issues/901
2026-09-09 16:43:04 +05:00
Andrej730 69f5fca049 build-deps/occt: use CMAKE_INSTALL_PREFIX for consistency with build-all
Switched from custom `INSTALL_DIR` to generic `CMAKE_INSTALL_PREFIX` in build-all in f3d1c62f5, mirroring the change on Windows too.
2026-09-09 16:43:04 +05:00
Andrej730 01d489589e build-deps/occt: set dependency name just once 2026-09-09 16:43:04 +05:00