From 5aa7ba6be68d93e8a12590a95cf026098eed57d2 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 4 Feb 2026 17:58:30 +0500 Subject: [PATCH] IfcConvert - fix Windows builds stuck on `0.8.0` version --- win/build-all-win.py | 20 ++++++++++++++++++-- win/run-cmake.bat | 17 ++++++++++++++--- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/win/build-all-win.py b/win/build-all-win.py index 087f869ac4..9e8d597185 100644 --- a/win/build-all-win.py +++ b/win/build-all-win.py @@ -30,6 +30,22 @@ def run(command: list[str]) -> None: subprocess.check_call(command) # nosec B603 +def set_env(var_name: str, value: str) -> tuple[str, str | None]: + """ + :return: Tuple of ``(var_name, old_value)`` to be passed to ``restore_env``. + """ + old_value = os.getenv(var_name) + os.environ[var_name] = value + return var_name, old_value + + +def restore_env(var_name: str, old_value: str | None) -> None: + if old_value is None: + del os.environ[var_name] + else: + os.environ[var_name] = old_value + + def build() -> None: for python_version in PYTHON_VERSIONS: os.environ["PYTHON_VERSION"] = python_version @@ -40,16 +56,16 @@ def build() -> None: text=True, input="y\n", ) + OLD_ADD_COMMIT_SHA = set_env("ADD_COMMIT_SHA", "ON") run( [ str(REPO_WIN / "run-cmake.bat"), "vs2022-x64", "-DENABLE_BUILD_OPTIMIZATIONS=ON", "-DGLTF_SUPPORT=ON", - "-DADD_COMMIT_SHA=ON", - "-DVERSION_OVERRIDE=ON", ] ) + restore_env(*OLD_ADD_COMMIT_SHA) run([str(REPO_WIN / "install-ifcopenshell.bat"), "vs2022-x64", "Release"]) diff --git a/win/run-cmake.bat b/win/run-cmake.bat index 397887eb6c..db3f06593d 100755 --- a/win/run-cmake.bat +++ b/win/run-cmake.bat @@ -20,6 +20,9 @@ :: Example usage: :: run-cmake.bat vs2022-x64 :: run-cmake.bat vs2022-x64 -DGLTF_SUPPORT=ON -DHDF5_SUPPORT=OFF +:: +:: Used environment variables: +:: - `ADD_COMMIT_SHA` - if defined then `ADD_COMMIT_SHA` and `VERSION_OVERRIDE` cmake args will be set to `ON`. @if not defined ECHO_ON ( echo off ) @@ -105,7 +108,13 @@ set PYTHON_LIBRARY=%PYTHONHOME%\libs\python%PY_VER_MAJOR_MINOR%.lib :: we can remove it later. if not defined SWIG_INSTALL_DIR set SWIG_INSTALL_DIR=%INSTALL_DIR%\swigwin set JSON_INCLUDE_DIR=%INSTALL_DIR%\json -if not defined ADD_COMMIT_SHA set ADD_COMMIT_SHA=Off +if defined ADD_COMMIT_SHA ( + set ADD_COMMIT_SHA=ON + set VERSION_OVERRIDE=ON +) else ( + set ADD_COMMIT_SHA=OFF + set VERSION_OVERRIDE=OFF +) set CGAL_INSTALL_DIR=%INSTALL_DIR%\cgal set GMP_INSTALL_DIR=%INSTALL_DIR%\mpir @@ -184,13 +193,15 @@ IF NOT "%VS_TOOLSET_HOST%"=="" ( -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" ^ -DWITH_ROCKSDB=On -DWITH_ZSTD=On ^ -DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^ - -DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS% + -DADD_COMMIT_SHA=%ADD_COMMIT_SHA% -DVERSION_OVERRIDE=%VERSION_OVERRIDE% ^ + %ARGUMENTS% ) ELSE ( cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% %ARCH_OPTION% ^ -DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" ^ -DWITH_ROCKSDB=On -DWITH_ZSTD=On ^ -DCMAKE_PREFIX_PATH="%CMAKE_PREFIX_PATH%" ^ - -DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS% + -DADD_COMMIT_SHA=%ADD_COMMIT_SHA% -DVERSION_OVERRIDE=%VERSION_OVERRIDE% ^ + %ARGUMENTS% ) IF NOT %ERRORLEVEL%==0 GOTO :Error