mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-06 07:51:47 +00:00
nix: use and patch occt 7.2
This commit is contained in:
+28
-12
@@ -59,8 +59,10 @@ logger.addHandler(ch)
|
|||||||
|
|
||||||
PROJECT_NAME="IfcOpenShell"
|
PROJECT_NAME="IfcOpenShell"
|
||||||
OCE_VERSION="0.18"
|
OCE_VERSION="0.18"
|
||||||
OCCT_VERSION="7.1.0"
|
# OCCT_VERSION="7.1.0"
|
||||||
OCCT_HASH="89aebde"
|
# OCCT_HASH="89aebde"
|
||||||
|
OCCT_VERSION="7.2.0"
|
||||||
|
OCCT_HASH="88af392"
|
||||||
PYTHON_VERSIONS=["2.7.12", "3.2.6", "3.3.6", "3.4.6", "3.5.3", "3.6.2"]
|
PYTHON_VERSIONS=["2.7.12", "3.2.6", "3.3.6", "3.4.6", "3.5.3", "3.6.2"]
|
||||||
BOOST_VERSION="1.59.0"
|
BOOST_VERSION="1.59.0"
|
||||||
PCRE_VERSION="8.39"
|
PCRE_VERSION="8.39"
|
||||||
@@ -183,7 +185,7 @@ cecho(""" - How many compiler processes may be run in parallel.
|
|||||||
|
|
||||||
# Check that required tools are in PATH
|
# Check that required tools are in PATH
|
||||||
|
|
||||||
for cmd in [git, bunzip2, tar, cc, cplusplus, autoconf, automake, yacc, make]:
|
for cmd in [git, bunzip2, tar, cc, cplusplus, autoconf, automake, yacc, make, "patch"]:
|
||||||
if which(cmd) is None:
|
if which(cmd) is None:
|
||||||
raise ValueError("Required tool '%s' not installed or not added to PATH" % (cmd,))
|
raise ValueError("Required tool '%s' not installed or not added to PATH" % (cmd,))
|
||||||
|
|
||||||
@@ -284,7 +286,7 @@ def git_clone(clone_url, target_dir, revision=None):
|
|||||||
if revision != None:
|
if revision != None:
|
||||||
__check_call__([git, "checkout", revision], cwd=target_dir)
|
__check_call__([git, "checkout", revision], cwd=target_dir)
|
||||||
|
|
||||||
def build_dependency(name, mode, build_tool_args, download_url, download_name, download_tool=download_tool_default, revision=None, additional_files={}, no_append_name=False):
|
def build_dependency(name, mode, build_tool_args, download_url, download_name, download_tool=download_tool_default, revision=None, patch=None, additional_files={}, no_append_name=False):
|
||||||
"""Handles building of dependencies with different tools (which are
|
"""Handles building of dependencies with different tools (which are
|
||||||
distinguished with the `mode` argument. `build_tool_args` is expected to be
|
distinguished with the `mode` argument. `build_tool_args` is expected to be
|
||||||
a list which is necessary in order to not mess up quoting of compiler and
|
a list which is necessary in order to not mess up quoting of compiler and
|
||||||
@@ -347,6 +349,14 @@ def build_dependency(name, mode, build_tool_args, download_url, download_name, d
|
|||||||
if not os.path.exists(path):
|
if not os.path.exists(path):
|
||||||
urllib.urlretrieve(url, os.path.join(extract_dir, path))
|
urllib.urlretrieve(url, os.path.join(extract_dir, path))
|
||||||
|
|
||||||
|
if patch is not None:
|
||||||
|
patch_abs = os.path.abspath(os.path.join(os.path.dirname(__file__), patch))
|
||||||
|
if os.path.exists(patch_abs):
|
||||||
|
try: __check_call__(["patch", "-p1", "--batch", "--forward", "-i", patch_abs], cwd=extract_dir)
|
||||||
|
except Exception as e:
|
||||||
|
# Assert that the patch has already been applied
|
||||||
|
__check_call__(["patch", "-p1", "--batch", "--reverse", "--dry-run", "-i", patch_abs], cwd=extract_dir)
|
||||||
|
|
||||||
if mode != "bjam":
|
if mode != "bjam":
|
||||||
extract_build_dir = os.path.join(extract_dir, "build")
|
extract_build_dir = os.path.join(extract_dir, "build")
|
||||||
if os.path.exists(extract_build_dir):
|
if os.path.exists(extract_build_dir):
|
||||||
@@ -457,7 +467,15 @@ build_dependency(name="pcre-%s" % (PCRE_VERSION,), mode="autoconf", build_tool_a
|
|||||||
build_dependency(name="swig", mode="autoconf", build_tool_args=["--with-pcre-prefix=%s/install/pcre-%s" % (DEPS_DIR, PCRE_VERSION)], download_url="https://github.com/swig/swig.git", download_name="swig", download_tool=download_tool_git, revision="rel-%s" % SWIG_VERSION)
|
build_dependency(name="swig", mode="autoconf", build_tool_args=["--with-pcre-prefix=%s/install/pcre-%s" % (DEPS_DIR, PCRE_VERSION)], download_url="https://github.com/swig/swig.git", download_name="swig", download_tool=download_tool_git, revision="rel-%s" % SWIG_VERSION)
|
||||||
|
|
||||||
if USE_OCCT:
|
if USE_OCCT:
|
||||||
long_filename = "src/RWStepVisual/RWStepVisual_RWCharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation"
|
long_filenames = ["src/RWStepVisual/RWStepVisual_RWCharacterizedObjectAndCharacterizedRepresentationAndDraughtingModelAndRepresentation"]
|
||||||
|
if OCCT_VERSION == "7.2.0":
|
||||||
|
long_filenames += [
|
||||||
|
"src/StepVisual/StepVisual_AnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem",
|
||||||
|
"src/RWStepVisual/RWStepVisual_RWAnnotationCurveOccurrenceAndAnnotationOccurrenceAndGeomReprItemAndReprItemAndStyledItem"
|
||||||
|
]
|
||||||
|
long_filenames_ext = [("%s.hxx" % fn) for fn in long_filenames] + [("%s.cxx" % fn) for fn in long_filenames]
|
||||||
|
patch_filename = "patches/occt/%s.patch" % OCCT_HASH
|
||||||
|
|
||||||
occt_gitweb = "http://git.dev.opencascade.org/gitweb/?p=occt.git"
|
occt_gitweb = "http://git.dev.opencascade.org/gitweb/?p=occt.git"
|
||||||
build_dependency(
|
build_dependency(
|
||||||
name="occt-%s" % OCCT_VERSION,
|
name="occt-%s" % OCCT_VERSION,
|
||||||
@@ -467,13 +485,11 @@ if USE_OCCT:
|
|||||||
"-DBUILD_LIBRARY_TYPE=Static",
|
"-DBUILD_LIBRARY_TYPE=Static",
|
||||||
"-DBUILD_MODULE_Draw=0",
|
"-DBUILD_MODULE_Draw=0",
|
||||||
],
|
],
|
||||||
download_url="%s;a=snapshot;h=%s;sf=tgz" % (occt_gitweb, OCCT_HASH),
|
download_url = "%s;a=snapshot;h=%s;sf=tgz" % (occt_gitweb, OCCT_HASH),
|
||||||
additional_files = {
|
additional_files = {fn: "%s;a=blob_plain;hb=%s;f=%s.hxx" % (occt_gitweb, OCCT_HASH, fn) for fn in long_filenames_ext},
|
||||||
"%s.hxx" % (long_filename): "%s;a=blob_plain;hb=%s;f=%s.hxx" % (occt_gitweb, OCCT_HASH, long_filename),
|
patch = patch_filename,
|
||||||
"%s.cxx" % (long_filename): "%s;a=blob_plain;hb=%s;f=%s.cxx" % (occt_gitweb, OCCT_HASH, long_filename)
|
download_name = "occt-%s.tar.gz" % OCCT_HASH,
|
||||||
},
|
no_append_name = True)
|
||||||
download_name="occt-%s.tar.gz" % OCCT_HASH,
|
|
||||||
no_append_name=True)
|
|
||||||
else:
|
else:
|
||||||
build_dependency(name="oce-%s" % (OCE_VERSION,), mode="cmake", build_tool_args=["-DOCE_DISABLE_TKSERVICE_FONT=ON", "-DOCE_TESTING=OFF", "-DOCE_BUILD_SHARED_LIB=OFF", "-DOCE_DISABLE_X11=ON", "-DOCE_VISUALISATION=OFF", "-DOCE_OCAF=OFF", "-DOCE_INSTALL_PREFIX=%s/install/oce-%s" % (DEPS_DIR, OCE_VERSION)], download_url="https://github.com/tpaviot/oce/archive/", download_name="OCE-%s.tar.gz" % (OCE_VERSION,))
|
build_dependency(name="oce-%s" % (OCE_VERSION,), mode="cmake", build_tool_args=["-DOCE_DISABLE_TKSERVICE_FONT=ON", "-DOCE_TESTING=OFF", "-DOCE_BUILD_SHARED_LIB=OFF", "-DOCE_DISABLE_X11=ON", "-DOCE_VISUALISATION=OFF", "-DOCE_OCAF=OFF", "-DOCE_INSTALL_PREFIX=%s/install/oce-%s" % (DEPS_DIR, OCE_VERSION)], download_url="https://github.com/tpaviot/oce/archive/", download_name="OCE-%s.tar.gz" % (OCE_VERSION,))
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
http://git.dev.opencascade.org/gitweb/?p=occt.git;a=commitdiff;h=0ab4e621833f4eae945a3762c9a29ee12e2eec53#patch1
|
||||||
|
diff --git a/src/HLRBRep/HLRBRep_InternalAlgo.cxx b/src/HLRBRep/HLRBRep_InternalAlgo.cxx
|
||||||
|
index ca885ca..c13cb06 100644 (file)
|
||||||
|
--- a/src/HLRBRep/HLRBRep_InternalAlgo.cxx
|
||||||
|
+++ b/src/HLRBRep/HLRBRep_InternalAlgo.cxx
|
||||||
|
@@ -165,7 +165,7 @@ void HLRBRep_InternalAlgo::Update ()
|
||||||
|
SB.Bounds(v1,v2,e1,e2,f1,f2);
|
||||||
|
|
||||||
|
for (Standard_Integer e = e1; e <= e2; e++) {
|
||||||
|
- HLRBRep_EdgeData ed = aEDataArray.ChangeValue(e);
|
||||||
|
+ HLRBRep_EdgeData& ed = aEDataArray.ChangeValue(e);
|
||||||
|
HLRAlgo::DecodeMinMax(ed.MinMax(), TheMin, TheMax);
|
||||||
|
if (FirstTime) {
|
||||||
|
FirstTime = Standard_False;
|
||||||
|
@@ -307,7 +307,7 @@ void HLRBRep_InternalAlgo::InitEdgeStatus ()
|
||||||
|
Standard_Integer nf = myDS->NbFaces();
|
||||||
|
|
||||||
|
for (Standard_Integer e = 1; e <= ne; e++) {
|
||||||
|
- HLRBRep_EdgeData ed = aEDataArray.ChangeValue(e);
|
||||||
|
+ HLRBRep_EdgeData& ed = aEDataArray.ChangeValue(e);
|
||||||
|
if (ed.Selected()) ed.Status().ShowAll();
|
||||||
|
}
|
||||||
|
// for (Standard_Integer f = 1; f <= nf; f++) {
|
||||||
|
@@ -368,7 +368,7 @@ void HLRBRep_InternalAlgo::Select ()
|
||||||
|
Standard_Integer nf = myDS->NbFaces();
|
||||||
|
|
||||||
|
for (Standard_Integer e = 1; e <= ne; e++) {
|
||||||
|
- HLRBRep_EdgeData ed = aEDataArray.ChangeValue(e);
|
||||||
|
+ HLRBRep_EdgeData& ed = aEDataArray.ChangeValue(e);
|
||||||
|
ed.Selected(Standard_True);
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user