mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 05:20:51 +00:00
build-all: --num_build_procs cli arg
This commit is contained in:
+1
-1
@@ -38,7 +38,6 @@ from common import (
|
||||
REPO_ROOT,
|
||||
SCRIPT_DIR,
|
||||
BuildCfg,
|
||||
BuildDepsCache,
|
||||
BuildType,
|
||||
C,
|
||||
HelpStrings,
|
||||
@@ -49,6 +48,7 @@ from common import (
|
||||
resolve_cli_or_env,
|
||||
validate_cmake_version,
|
||||
)
|
||||
from common_win import BuildDepsCache
|
||||
from installers import (
|
||||
install_boost,
|
||||
install_ccache,
|
||||
|
||||
@@ -38,9 +38,9 @@ from common import (
|
||||
ensure_script_dir,
|
||||
logger,
|
||||
resolve_cli_or_env,
|
||||
resolve_generator,
|
||||
run_streamed,
|
||||
)
|
||||
from common_win import resolve_generator
|
||||
from vs_cfg import vs_cfg
|
||||
|
||||
|
||||
|
||||
+1
-47
@@ -27,10 +27,7 @@ import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import TYPE_CHECKING, Any, Literal, TypeVar, cast, get_args
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from vs_cfg import VsCfgResult
|
||||
from typing import Any, Literal, TypeVar, cast, get_args
|
||||
|
||||
|
||||
class C:
|
||||
@@ -195,46 +192,3 @@ def validate_cmake_version() -> None:
|
||||
if not match or tuple(map(int, match.groups())) < MIN_CMAKE_VERSION:
|
||||
logger.error(error_msg)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
class BuildDepsCache:
|
||||
def __init__(self, vs_cfg_vars: VsCfgResult) -> None:
|
||||
if vs_cfg_vars.vs_toolset_override:
|
||||
self.path = SCRIPT_DIR / f"BuildDepsCache-{vs_cfg_vars.vs_platform}-{vs_cfg_vars.vs_toolset_override}.txt"
|
||||
else:
|
||||
self.path = SCRIPT_DIR / f"BuildDepsCache-{vs_cfg_vars.vs_platform}.txt"
|
||||
self.path.write_text("")
|
||||
|
||||
def add_entry(self, key: str, value: str) -> None:
|
||||
with self.path.open("a") as f:
|
||||
f.write(f"{key}={value}\n")
|
||||
|
||||
@staticmethod
|
||||
def parse(path: Path) -> dict[str, str]:
|
||||
entries: dict[str, str] = {}
|
||||
for line in path.read_text().splitlines():
|
||||
key, _, value = line.partition("=")
|
||||
entries[key] = value
|
||||
return entries
|
||||
|
||||
|
||||
def resolve_generator(generator: str | None) -> str:
|
||||
"""Return `generator` as-is, or fall back to the GEN_SHORTHAND from the most recently modified
|
||||
BuildDepsCache-*.txt. Exits if neither is available.
|
||||
"""
|
||||
if generator is not None:
|
||||
return generator
|
||||
|
||||
cache_files = sorted(SCRIPT_DIR.glob("BuildDepsCache-*.txt"), key=lambda p: p.stat().st_mtime, reverse=True)
|
||||
cached_generator = None
|
||||
if cache_files:
|
||||
cache_file = cache_files[0]
|
||||
logger.info(f"Found {cache_file.name}, reading GEN_SHORTHAND from it.")
|
||||
cached_generator = BuildDepsCache.parse(cache_file).get("GEN_SHORTHAND")
|
||||
|
||||
if cached_generator is None:
|
||||
logger.error(
|
||||
"BuildDepsCache file does not exist and/or GEN_SHORTHAND missing from it. Run build-deps.py to create it."
|
||||
)
|
||||
sys.exit(1)
|
||||
return cached_generator
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# This file is part of IfcOpenShell. #
|
||||
# #
|
||||
# IfcOpenShell is free software: you can redistribute it and/or modify #
|
||||
# it under the terms of the Lesser GNU General Public License as published by #
|
||||
# the Free Software Foundation, either version 3.0 of the License, or #
|
||||
# (at your option) any later version. #
|
||||
# #
|
||||
# IfcOpenShell is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# Lesser GNU General Public License for more details. #
|
||||
# #
|
||||
# You should have received a copy of the Lesser GNU General Public License #
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
# #
|
||||
###############################################################################
|
||||
#
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from common import SCRIPT_DIR, logger
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from vs_cfg import VsCfgResult
|
||||
|
||||
|
||||
class BuildDepsCache:
|
||||
def __init__(self, vs_cfg_vars: VsCfgResult) -> None:
|
||||
if vs_cfg_vars.vs_toolset_override:
|
||||
self.path = SCRIPT_DIR / f"BuildDepsCache-{vs_cfg_vars.vs_platform}-{vs_cfg_vars.vs_toolset_override}.txt"
|
||||
else:
|
||||
self.path = SCRIPT_DIR / f"BuildDepsCache-{vs_cfg_vars.vs_platform}.txt"
|
||||
self.path.write_text("")
|
||||
|
||||
def add_entry(self, key: str, value: str) -> None:
|
||||
with self.path.open("a") as f:
|
||||
f.write(f"{key}={value}\n")
|
||||
|
||||
@staticmethod
|
||||
def parse(path: Path) -> dict[str, str]:
|
||||
entries: dict[str, str] = {}
|
||||
for line in path.read_text().splitlines():
|
||||
key, _, value = line.partition("=")
|
||||
entries[key] = value
|
||||
return entries
|
||||
|
||||
|
||||
def resolve_generator(generator: str | None) -> str:
|
||||
"""Return `generator` as-is, or fall back to the GEN_SHORTHAND from the most recently modified
|
||||
BuildDepsCache-*.txt. Exits if neither is available.
|
||||
"""
|
||||
if generator is not None:
|
||||
return generator
|
||||
|
||||
cache_files = sorted(SCRIPT_DIR.glob("BuildDepsCache-*.txt"), key=lambda p: p.stat().st_mtime, reverse=True)
|
||||
cached_generator = None
|
||||
if cache_files:
|
||||
cache_file = cache_files[0]
|
||||
logger.info(f"Found {cache_file.name}, reading GEN_SHORTHAND from it.")
|
||||
cached_generator = BuildDepsCache.parse(cache_file).get("GEN_SHORTHAND")
|
||||
|
||||
if cached_generator is None:
|
||||
logger.error(
|
||||
"BuildDepsCache file does not exist and/or GEN_SHORTHAND missing from it. Run build-deps.py to create it."
|
||||
)
|
||||
sys.exit(1)
|
||||
return cached_generator
|
||||
+1
-1
@@ -34,7 +34,6 @@ from common import (
|
||||
REPO_ROOT,
|
||||
SCRIPT_DIR,
|
||||
BuildCfg,
|
||||
BuildDepsCache,
|
||||
BuildType,
|
||||
debug_or_release,
|
||||
logger,
|
||||
@@ -42,6 +41,7 @@ from common import (
|
||||
run,
|
||||
run_streamed,
|
||||
)
|
||||
from common_win import BuildDepsCache
|
||||
from vs_cfg import CMAKE_GENERATORS, VS_TOOLSET_TO_VS_VER, VsCfgResult, get_vs_var
|
||||
|
||||
|
||||
|
||||
+1
-2
@@ -33,17 +33,16 @@ from common import (
|
||||
OFF_ON,
|
||||
PROJECT_NAME,
|
||||
REPO_ROOT,
|
||||
BuildDepsCache,
|
||||
C,
|
||||
HelpStrings,
|
||||
colorize,
|
||||
ensure_script_dir,
|
||||
logger,
|
||||
resolve_cli_or_env,
|
||||
resolve_generator,
|
||||
run,
|
||||
run_streamed,
|
||||
)
|
||||
from common_win import BuildDepsCache, resolve_generator
|
||||
from vs_cfg import VsCfgResult, vs_cfg
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user