Commit Graph

245 Commits

Author SHA1 Message Date
Andrej730 1cadd711f1 build-deps: remove unnecessary mark installation for qt6 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 0da17c6515 build-deps: manifold to support co-existing Release/Debug builds 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 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 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
Andrej730 0e9dc6a87f buld-deps/proj: fix use of deprecated variables
Resolves the warnings below:
```

CMake Deprecation Warning at CMakeLists.txt:207 (message):
  Use SQLite3_INCLUDE_DIR instead of SQLITE3_INCLUDE_DIR

CMake Deprecation Warning at CMakeLists.txt:211 (message):
  Use SQLite3_LIBRARY instead of SQLITE3_LIBRARY
```
2026-09-09 16:43:04 +05:00
Andrej730 cd9cc8cf2f build-deps/proj: use CMAKE_PREFIX_PATH instead of modifying PATH 2026-09-09 16:43:04 +05:00
Andrej730 94f724da13 build-deps: remove redundant GEN_SHORTHAND check
`vs-cfg` always sets it, so it's always defined.
2026-09-09 16:43:04 +05:00
Andrej730 843557b18d build-deps: remove unused PY_VER_MAJOR_MINOR var
It was removed in 0a5388f, but then reintroduced in b25c24a - looking at the code, there was no use for it added, so I guess it was just an accident.
2026-09-09 16:43:04 +05:00
Andrej730 89fe51fbb2 win: remove redundant TARGET_ARCH variable
`TARGET_ARCH` has exactly the same values as `VS_PLATFORM` - "x64", "ARM", "ARM64") except it has `x86` instead of `Win32`, but this value is never actually used, so both variables end up using interchangeably, making code harder to reason about - you needed to remember that they're exactly the same except the case when the variable is passed directly to VS (either through `cmake -A` or some `msbuild` command), then user must use `VS_PLATFORM`. So we might just use one variable always.
2026-09-09 16:43:04 +05:00
Andrej730 f2a6d7859b build-deps: drop VS 2008 leftovers (6a8d813) 2026-09-09 16:43:04 +05:00
Andrej730 d45d1ca0a6 win: remove Windows XP related code 2026-09-09 16:43:04 +05:00
Andrej730 c4aca06cb5 win: bump required cmake to 3.21.0 to match cmake_minimum_required 2026-09-09 16:43:04 +05:00
Andrej730 d399581f11 vs-cfg: remove VS_HOST / VS_TOOLSET_HOST
They were added awhile ago in 67666ed for overcoming some win32 issues, which is not around anymore.
And now `VS_HOST` is never set (and therefore `VS_TOOLSET_HOST` is always empty too) and likely to be never used.
2026-09-09 16:43:04 +05:00
Andrej730 ab8567fdca build-deps: point to the existing remove_tr1.patch
Tested that it applies cleanly even though commit is outdated.
2026-08-27 17:07:21 +05:00
Richard Brice 05ba93ab61 Modifications to build C++ with Visual Studio 2026 and the v145 toolset. (#9359)
* Modifications to build C++ with Visual Studio 2026 and the v145 toolset.

* Fixes linker settings for rocksdb for Debug and Release builds

* module is a C++ 20 keyword. Explicitly stating namespace allows cpp20 projects to build against the library

* Fixes crash when initializing an object with the initialize function when some of the attributes are empty, {}, or omitted, std::nullopt

* cleanup for vs2026 v145 toolset per @aothms review

* Fixes bug, IfcCurveSegment.setStartLength was setSegmentLength in alignment_helper.cpp

* Bumps boost to 1.92
2026-08-26 09:10:41 -07:00
Andrej730 3d05ccbd59 gitattributes: ensure platform dependent files are stored using correct line endings 2026-08-06 19:49:38 +05:00
Dion Moult de7520418b Build the Bonsai Viewer in CI with the Autodesk connector bundled
Compile the Bonsai Viewer as part of the Linux and Windows binary builds,
and ship the Autodesk connector alongside the viewer executable.

Qt6 dependencies:
- The viewer links Qt6::Svg for runtime icon tinting. Svg is a separate
  base-Qt archive, so aqt now installs "qtbase qtsvg" (plus icu on Linux)
  rather than qtbase alone, on both Linux and Windows.
- Qt6::CorePrivate is exposed differently across Qt versions: Qt 6.8 ships
  the target inside Qt6Core, while Qt 6.10 provides it only as a separate
  CorePrivate config package. The viewer CMakeLists requests it via
  OPTIONAL_COMPONENTS so it resolves on both.
- When cross-compiling Windows ARM64, windeployqt runs from the host x64
  Qt, so qtsvg is installed into the host Qt as well.

Windows build:
- build-all-win.py passed -DBUILD_IFCVIEWER, a flag since renamed to
  BUILD_BONSAIVIEWER, so the Windows build compiled no viewer at all. It
  now passes -DBUILD_BONSAIVIEWER.
- The Autodesk connector is bundled under connectors/ next to
  BonsaiViewer.exe in the packaged archive, mirroring the Linux builds.
- The Windows workflow builds the connector (PyInstaller) before the main
  build so it is available to bundle.

Connector bundling:
- The Linux rocky workflows build the connector and bundle it into the
  BonsaiViewer archive; the Windows build now does the same.

Generated with the assistance of an AI coding tool.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 16:34:19 +10:00
Thomas Krijnen c1173dfc78 Additional plug-in host to try and fix arm64 build 2026-05-09 21:04:32 +02:00
Thomas Krijnen 12935c83de Silent extraction 2026-05-08 20:31:29 +02:00
Thomas Krijnen cf257aa20a check_installation for qt6 - was not aware of this bit 2026-05-08 19:08:08 +02:00
Thomas Krijnen 554c7174e3 Backspace everything regarding HDF5 2026-05-08 16:20:26 +02:00
Thomas Krijnen 6ad5fbb27e Add qt6 to win build scripts using an 3rd party install script 2026-05-07 22:32:53 +02:00
Thomas Krijnen 91ae631c7d Merge remote-tracking branch 'origin/v0.8.0' into datamodel-v1.0 2026-04-18 20:15:28 +02:00
Thomas Krijnen a19d398c78 Vibe code an implementation that uses manifold 2026-04-07 15:47:58 +02:00
tsomanna_QCOM ae253f5e2a Add Support for IfcOpenShell on Win ARM64 2026-03-12 20:29:10 +01:00
tsomanna_QCOM b25c24a007 Add Support for IfcOpenShell on Win ARM64 2026-03-12 20:29:10 +01:00