Commit Graph

400 Commits

Author SHA1 Message Date
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
Andrej730 0e39abf88e build-deps/occt: drop -new-layout suffix on next version update automatically 2026-09-09 16:43:04 +05:00
Andrej730 eaae0072e4 build-deps/opencollada: drop stale helper comment
It's dating back to the original implementation in 5c0eb05, it was
needed to avoid rebuilding opencollada. Not needed anymore since
previous installations are now recognized.
2026-09-09 16:43:04 +05:00
Andrej730 b4687b5caa build-deps/opencollada: remove note about release/debug builds switching
It was since the beginning in 5c0eb0548, it's probably resolved after we
added coexisting debug/release installs.
2026-09-09 16:43:04 +05:00
Andrej730 5ae30c4264 build-deps: remove mark_based_on_artifacts workaround
We mark some dependency installations using empty `.release/debug_installation` files to support coexisting release/debug installations, which is needed on Windows to be able to easily switch between Release/Debug builds of IfcOpenShell and avoiding conflicts when different binaries are using different debubg/non-debug runtimes.

It was introduced in 517ba237f and `mark_based_on_artifacts` was pre-existing installations based on the found artifacts, all new installations were not relying on this for marking. Since it's been some time, dropping this workaround.
2026-09-09 16:43:04 +05:00
Andrej730 2d6ec159d2 build-deps/boost: don't specify runtime-link explicitly
As it is assumed `shared` by default.
2026-09-09 16:43:04 +05:00
Andrej730 35d5980959 build-deps/boost: drop check_boost_vc145_compatibility workaround
It's needed to support vc145 (vs2026) for boost versions <1.91. Since
05ba93a we're now building using 1.92, so the workaround is no longer
needed.
2026-09-09 16:43:04 +05:00
Andrej730 b6dd061f14 build-deps/boost: drop fallback for older archive names
Introduced in 2e35b07 when moving to github releases, removing it since
it's been 20 months already.
Added temporary clean up step to remove previous installation.
2026-09-09 16:43:04 +05:00
Andrej730 9624a17809 build-deps/mpfr: consider VS_TOOLSET override
Previously it constructed toolset from `VC_VER`, while it's possible
it's overridden using `VS_TOOLSET`.
2026-09-09 16:43:04 +05:00
Andrej730 2eba0addf2 build-deps/mpfr: clean up repo dir on the rebuild
For consistency with `mpir`
2026-09-09 16:43:04 +05:00
Andrej730 97caf8033c build-deps: note about mpfr/mpir missing some configurations 2026-09-09 16:43:04 +05:00
Andrej730 fe8753bb17 build-deps: document target arg in BuildSolution 2026-09-09 16:43:04 +05:00
Andrej730 2be991fff4 build-deps: remove USE_STATIC_RUNTIME option in mpfr/mpir
Typically we always avoid using static runtime as it causes issues when
binaries are interacting.
2026-09-09 16:43:04 +05:00