Commit Graph

372 Commits

Author SHA1 Message Date
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
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 9c311c19de win\readme: drop stale PY_VER_MAJOR_MINOR reference (0a5388f38) 2026-09-09 16:43:04 +05:00
Andrej730 ddcc9f4a0a build-type-cfg.cmd: drop unused POSTFIX_ variables
`POSTFIX_D` unused since ICU was eliminated as a dependency (0b2bd5d), other two were never used.
2026-09-09 16:43:04 +05:00
Andrej730 84daa22400 win: remove set-python-to-path.bat
It was introduced a (very) long time ago (c7bf03e), was barely changed since then and seems unused by now.
Apparently it was used mainly to get installation's Python to PATH (`set PATH=%PYTHONHOME%;%PATH%`). It was also setting and env variables based on the cache as a side effect.
If needed, we'll be able reintroduce it later, delegating most of the logic to Python.
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 2a49619e2a vs-cfg: drop unused VCPROJ_FILE_EXT
It was used in build-deps.cmd, but then was superseded by cmake calls (c6220b7)
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 20d56efdfc win: remove outdated msys2 scripts
They were very outdated and if we'll need msys2 support, we'll be able to introduce it later in our Python scripts.
2026-09-09 16:43:04 +05:00
Andrej730 7cfb146717 vs-cfg: remove redundant where cl check
`START` is set to `0` for "amd64" / "x64" and `1` in all other cases, effectively just skipping `GENERATORS[0]` in case when "amd64" or "x64" is present.
Which is now useless, since `GENERATORS[0]` doesn't exist anymore.
2026-09-09 16:43:04 +05:00
Andrej730 dc9218e9eb vs-cfg: remove unused Win64 code
We don't have any generators with `Win64` suffix (they were removed 36f51e1), so this code was unreachable.
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 21691616fd vs-cfg: move examples next to debug prints 2026-09-09 16:43:04 +05:00
Andrej730 995f98d5fe vs-cfg: add support for missing toolsets in gen shortcut 2026-09-09 16:43:04 +05:00
Thomas Krijnen 99f1051d18 Run black 2026-09-02 13:48:31 +02:00
DesertSpringsCivil 65ce0f71c4 win: collect underscore-prefixed runtime plugin DLLs in build artifacts
Runtime plugins are canonically named `ifcopenshell_<kind>_<name>` (decorated_basename() in src/plugin/plugin.cpp, and the OUTPUT_NAME properties of the plugin targets), but the archive collection filtered on the dotted `ifcopenshell.` prefix, which matches only the core shared libraries. Every load-by-name plugin was therefore silently dropped from every win64 / win-arm64 zip.

Accept both prefixes, and extend the geometry-writer exclusion to the underscore form so the per-schema writers keep their existing Python-package-only treatment.

Fixes #9301
2026-09-01 19:51:34 +02:00
Thomas Krijnen 1a03fd7df1 Unify python versions across win and nix #9313 2026-08-29 13:34:01 +02: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
Andrej730 ec0e0ab3ff run-cmake.bat: revert special handling for USE_CCACHE
Since it's part of normal cmake options and no need to alter PATH to disable ccache.
2026-08-27 16:54:01 +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
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 da5ebf172e Delete 7za.exe from repo 2026-05-09 21:05:08 +02:00