diff --git a/.travis.yml b/.travis.yml index 555a597d73..639de9a80e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,13 +4,6 @@ os: linux dist: bionic sudo: required -env : - global: - - secure: "bpsPWbUZx/sezmxo0QmSbszpnXDTzZgiZd/rStryT1/xzgm52Qe7ZonVO8v3Wv0VVZDrQSwUzsZR9sHnu17bkO09S604lBlUPxdWuIXGqCnoHRca4szQTpQ9wvN8QM+PNsuZYrpZ1ixO7/EGyvs56zxqoYxhp4GoC5lRuUzcP0zGLYu5x9kbFLWgeDb+IE7xHZrWUH2D8Y8Zd1nJqESgC9eeAYwMpzfhznSzGG0cNbZg1FBJAgaW7XdZGFyF+/wHNmGzK606os6i9Ca6bJEiEmfN5WoWZVdg3xALX/ibk8EdAUY6gacTvEABim/1YDYdFUxmA6S4tKNjZ65XphkaIDsThCMsj1zLnuUKKnqTjkDzZ2BdzDLqFCXdpqNCmuU6m36VlHMg6SS15RSqy9rYeKXJwgJiC9QgUxEoEkq5Een97hFKx6bw55YX2hvhIUdEqwOERBHCDYIt/KPZ6kdM/rY1OgCmHOBBUZWXMftrk/l59s/0DKTH9kn7uYPpB7eereC5F+UxqdMahcOW0UWpA0rtg8ffEQiRdCzfxbWpilhW4dPq6o5FnVEiQkxl4W6GVBX/+HnUzCjnR9I0yHaRhUgoiXvrcmfHihOypH5r72uhlx4DysOqYsp9+R1l7FNBguuPHkZI0afZ4BY+Hh9/OvwN+2oN4/qovD2MQ4ysDWc=" - - secure: "LL1DN6nrTFVxbIH54HLpaZfHnabxV4jStB2+XRp0nvBB/XaeceBRe6MgsfOzYSjCkT3Qz0+rIoQzUk6KIWdAAfc56fr5b4ke266zQasvjrr5XUZcKpiGT+nPjf11X2hlVbWF/6upQGwIhMkKUOuXw7JauH2Cg9aaD0Pdd0VkXh5ljlynUu3HaXvBufTt0BTEAJqqP1DNKdZdMJ9se2+nvPH7xbLBYnr+jMAZFuQUMtpw7L9dAdW5al5ORaSYs5ZVz1pvWNzDSva3FXzWsDqfEx6X+twrDa0ha8pfyHLbN8PVqmVZkowyJtjq5Q+l0T0UrettzHG0XDkHKi94YaQUOIgMTqw7NglmfVbpS7z42FrbhLpHvku7FA+cH/lVIKSr+ir8COEWKOkpstnc58UfvpcGZBrwEmTS3EU6iTGtlPwbpeNyQcF2CxkJYS6rCW5mTHI2n79ZaSMn15tyJT8cQZ7Lnw3eUoRe0mtEDuaDzGHmwlVnFe0PrUGJYWoa9ay29S951AHzQ5Y/Jz3zG1p34tEs9hkEoZfexwIS/YJRYNO3XFyPM7AR8cbjsTecmipkKa9xUNCJT8P4bJvh6aIqMbXo9eQvq5ymXlEFIt1tBvlhk/SO3R3Fs9/2e+6C0fTE0O91jYLgrvzIiWDwLMA9PyeMZC+pJaB9K05feG7j7Ak=" - - - before_install: - "sudo add-apt-repository -y ppa:freecad-community/ppa" - sudo apt-get update -qq @@ -21,10 +14,8 @@ install: sudo apt-get install -y \ libocct-data-exchange-dev libocct-foundation-dev libocct-modeling-algorithms-dev libocct-modeling-data-dev \ libboost-system-dev libboost-program-options-dev libboost-regex-dev libboost-thread-dev libboost-date-time-dev libboost-iostreams-dev libboost-filesystem-dev \ - build-essential cmake python2.7 libpython2.7-dev swig zlib1g liblzma5 opencollada-dev wget apt-transport-https python3 python3-pip python3-setuptools doxygen python3-sphinx - - sudo mkdir -p /usr/include/json/nlohmann/ - - python3 -m pip install exhale - - sudo apt-get install python3-sphinx + build-essential cmake python2.7 libpython2.7-dev swig zlib1g liblzma5 opencollada-dev wget apt-transport-https + - sudo mkdir -p /usr/include/json/nlohmann/ - sudo wget https://github.com/nlohmann/json/releases/download/v3.6.1/json.hpp -O /usr/include/json/nlohmann/json.hpp # - sudo sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -' # - sudo sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list' @@ -34,15 +25,11 @@ install: script: - pwd - - cd src/ifcblenderexport/docs - - make html - - ls -al - - cd ../../.. - cd cmake - mkdir build - cd build - | - travis_wait cmake \ + cmake \ -DOCC_INCLUDE_DIR=/usr/include/opencascade \ -DOCC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \ -DPYTHON_LIBRARY=/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so \ @@ -52,47 +39,28 @@ script: -DLIBXML2_LIBRARIES="/usr/lib/x86_64-linux-gnu/libxml2.so;/lib/x86_64-linux-gnu/libz.so.1;/lib/x86_64-linux-gnu/liblzma.so.5;/usr/lib/x86_64-linux-gnu/libicuuc.so.60;/usr/lib/x86_64-linux-gnu/libicudata.so.60" \ -DGLTF_SUPPORT=On \ -DJSON_INCLUDE_DIR=/usr/include/json \ - -DBUILD_DOCUMENTATION=On \ .. - - travis_wait 40 sudo make -j4 install + - sudo make -j2 install - # - cd ../../test - # - /usr/bin/python2.7 tests.py + - cd ../../test + - /usr/bin/python2.7 tests.py - # - cd input + - cd input - # - /usr/local/bin/IfcConvert -yv acad2010_walls.ifc acad2010_walls.glb - # # - gltf_validator acad2010_walls.glb + - /usr/local/bin/IfcConvert -yv acad2010_walls.ifc acad2010_walls.glb + # - gltf_validator acad2010_walls.glb - # - /usr/bin/python2.7 -c "from __future__ import print_function; from io import open; import ifcopenshell; f = ifcopenshell.open('encoding.ifc'); assert list(map(ord, f[1][0])) == [39, 97, 39, 32, 49, 109, 179, 32, 8804, 32, 53, 109, 179, 32, 8805, 32, 49, 48, 109, 179]" + - /usr/bin/python2.7 -c "from __future__ import print_function; from io import open; import ifcopenshell; f = ifcopenshell.open('encoding.ifc'); assert list(map(ord, f[1][0])) == [39, 97, 39, 32, 49, 109, 179, 32, 8804, 32, 53, 109, 179, 32, 8805, 32, 49, 48, 109, 179]" - # - | - # (for i in *.ifc; do \ - # echo $i | tee -a log; \ - # timeout 1m /usr/local/bin/IfcConvert -yv "$i" "$i.dae" --validate >> log 2>&1; \ - # echo $i $? >> statuses; \ - # done) || true - # - echo Failed - # - grep -v 0$ statuses - # - grep -v 0$ statuses | wc -l - # - echo Succeeded - # - grep 0$ statuses - # - grep 0$ statuses | wc -l -after_success: - - pwds - - cd ../../docs - - sudo mv ../src/ifcblenderexport/docs/_build ./output - - ls -al ./output - - pwd - - ls -al - - MESSAGE=$(git log --oneline -1) - - git clone https://johltn:$GITHUB_PASSWORD@github.com/IfcOpenShell/docs - - cd docs - - sudo rm -r * - - sudo touch .nojekyll - - sudo mv ../output/* . - - git config user.email "${GITHUB_EMAIL}" - - git config user.name "IfcOpenBot" - - git add . - - git commit -m "${MESSAGE}" - - travis_wait git push + - | + (for i in *.ifc; do \ + echo $i | tee -a log; \ + timeout 1m /usr/local/bin/IfcConvert -yv "$i" "$i.dae" --validate >> log 2>&1; \ + echo $i $? >> statuses; \ + done) || true + - echo Failed + - grep -v 0$ statuses + - grep -v 0$ statuses | wc -l + - echo Succeeded + - grep 0$ statuses + - grep 0$ statuses | wc -l diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 44a92828fe..b9ff0048af 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -23,7 +23,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # not necessary, but encouraged project (IfcOpenShell) - foreach(max_year RANGE 2014 2030) set(max_sdk "$ENV{ADSK_3DSMAX_SDK_${max_year}}") if (NOT "${max_sdk}" STREQUAL "") @@ -106,17 +105,6 @@ MACRO(UNIFY_ENVVARS_AND_CACHE VAR) ENDIF() ENDMACRO() -UNIFY_ENVVARS_AND_CACHE(BOOST_ROOT) -UNIFY_ENVVARS_AND_CACHE(BOOST_LIBRARYDIR) - - -UNIFY_ENVVARS_AND_CACHE(BOOST_ROOT) -UNIFY_ENVVARS_AND_CACHE(BOOST_LIBRARYDIR) - -message(STATUS "BOOST_ROOT ${BOOST_ROOT}") -message(STATUS "BOOST_LIBRARYDIR ${BOOST_LIBRARYDIR}") - - UNIFY_ENVVARS_AND_CACHE(OCC_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(OCC_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(OPENCOLLADA_INCLUDE_DIR) @@ -221,7 +209,7 @@ function(add_debug_variants NAME LIBRARIES POSTFIX) endfunction() if(BUILD_IFCGEOM) -MESSAGE(STATUS "OCC_INCLUDE_DIR ${OCC_INCLUDE_DIR}") + # Find Open CASCADE IF("${OCC_INCLUDE_DIR}" STREQUAL "") SET(OCC_INCLUDE_DIR "/usr/include/oce/" CACHE FILEPATH "Open CASCADE header files") @@ -404,10 +392,6 @@ if(ENABLE_BUILD_OPTIMIZATIONS) endif() endif() - - - - IF(MSVC) # Enable solution folders (free VS versions prior to 2012 don't support solution folders) if (MSVC_VERSION GREATER 1600) diff --git a/src/ifcconvert/IfcConvert.cpp b/src/ifcconvert/IfcConvert.cpp index 79bc01e01c..f5f6c44346 100644 --- a/src/ifcconvert/IfcConvert.cpp +++ b/src/ifcconvert/IfcConvert.cpp @@ -289,9 +289,6 @@ int main(int argc, char** argv) { ("disable-opening-subtractions", "Specifies whether to disable the boolean subtraction of " "IfcOpeningElement Representations from their RelatingElements.") - ("disable-boolean-results", - "Specifies whether to disable the boolean operation within representations " - "such as clippings by means of IfcBooleanResult and subtypes") ("enable-layerset-slicing", "Specifies whether to enable the slicing of products according " "to their associated IfcMaterialLayerSet.") @@ -370,14 +367,6 @@ int main(int argc, char** argv) { "Element at which vertical cross sections should be created") ("elevation-ref", po::value(&elevation_ref), "Element at which vertical elevations should be created") - ("auto-section", - "Creates SVG cross section drawings automatically based on model extents") - ("auto-elevation", - "Creates SVG elevation drawings automatically based on model extents") - ("svg-xmlns", - "Stores name and guid in a separate namespace as opposed to data-name, data-guid") - ("svg-poly", - "Uses the polygonal algorithm for hidden line rendering") ("door-arcs", "Draw door openings arcs for IfcDoor elements") ("section-height", po::value(§ion_height), "Specifies the cut section height for SVG 2D geometry.") @@ -402,7 +391,6 @@ int main(int argc, char** argv) { ("site-local-placement", "Place elements locally in the IfcSite coordinate system, instead of placing " "them in the IFC global coords. Applicable for OBJ and DAE output.") - ("y-up", "Change the 'up' axis to positive Y, default is Z UP,Applicable for OBJ output.") ("building-local-placement", "Similar to --site-local-placement, but placing elements in locally in the parent IfcBuilding coord system") ("precision", po::value(&precision)->default_value(SerializerSettings::DEFAULT_PRECISION), @@ -457,7 +445,6 @@ int main(int argc, char** argv) { const bool merge_boolean_operands = vmap.count("merge-boolean-operands") != 0; #endif const bool disable_opening_subtractions = vmap.count("disable-opening-subtractions") != 0; - const bool disable_boolean_results = vmap.count("disable-boolean-results") != 0; const bool include_plan = vmap.count("plan") != 0; const bool include_model = vmap.count("model") != 0 || (!include_plan); const bool enable_layerset_slicing = vmap.count("enable-layerset-slicing") != 0; @@ -468,7 +455,6 @@ int main(int argc, char** argv) { const bool use_material_names = vmap.count("use-material-names") != 0; const bool use_element_types = vmap.count("use-element-types") != 0; const bool use_element_hierarchy = vmap.count("use-element-hierarchy") != 0; - const bool use_y_up = vmap.count("y-up") != 0; const bool no_normals = vmap.count("no-normals") != 0; const bool center_model = vmap.count("center-model") != 0; const bool center_model_geometry = vmap.count("center-model-geometry") != 0; @@ -727,7 +713,6 @@ int main(int argc, char** argv) { settings.set(IfcGeom::IteratorSettings::FASTER_BOOLEANS, merge_boolean_operands); #endif settings.set(IfcGeom::IteratorSettings::DISABLE_OPENING_SUBTRACTIONS, disable_opening_subtractions); - settings.set(IfcGeom::IteratorSettings::DISABLE_BOOLEAN_RESULT, disable_boolean_results); settings.set(IfcGeom::IteratorSettings::INCLUDE_CURVES, include_plan); settings.set(IfcGeom::IteratorSettings::EXCLUDE_SOLIDS_AND_SURFACES, !include_model); settings.set(IfcGeom::IteratorSettings::APPLY_LAYERSETS, enable_layerset_slicing); @@ -742,7 +727,6 @@ int main(int argc, char** argv) { settings.set(SerializerSettings::USE_ELEMENT_NAMES, use_element_names); settings.set(SerializerSettings::USE_ELEMENT_GUIDS, use_element_guids); - settings.set(SerializerSettings::USE_Y_UP, use_y_up); settings.set(SerializerSettings::USE_ELEMENT_STEPIDS, use_element_stepids); settings.set(SerializerSettings::USE_MATERIAL_NAMES, use_material_names); settings.set(SerializerSettings::USE_ELEMENT_TYPES, use_element_types); @@ -957,14 +941,6 @@ int main(int argc, char** argv) { if (vmap.count("elevation-ref")) { static_cast(serializer.get())->setElevationRef(elevation_ref); } - if (vmap.count("auto-section")) { - static_cast(serializer.get())->setAutoSection(true); - } - if (vmap.count("auto-elevation")) { - static_cast(serializer.get())->setAutoElevation(true); - } - static_cast(serializer.get())->setUseNamespace(vmap.count("svg-xmlns") > 0); - static_cast(serializer.get())->setUseHlrPoly(vmap.count("svg-poly") > 0); if (relative_center_x && relative_center_y) { static_cast(serializer.get())->setDrawingCenter(*relative_center_x, *relative_center_y); } diff --git a/src/ifcgeom/IfcGeomIteratorImplementation.h b/src/ifcgeom/IfcGeomIteratorImplementation.h index 4d29f06ce6..172f19a837 100644 --- a/src/ifcgeom/IfcGeomIteratorImplementation.h +++ b/src/ifcgeom/IfcGeomIteratorImplementation.h @@ -173,9 +173,9 @@ namespace { } namespace IfcGeom { - #define IteratorImpl MAKE_TYPE_NAME(IteratorImplementation_) + template - class IteratorImpl : public IteratorImplementation { + class MAKE_TYPE_NAME(IteratorImplementation_) : public IteratorImplementation { private: std::atomic progress_; @@ -185,8 +185,8 @@ namespace IfcGeom { typename std::vector*>::const_iterator task_result_iterator_; typename std::vector*>::const_iterator native_task_result_iterator_; - IteratorImpl(const IteratorImpl&); // N/I - IteratorImpl& operator=(const IteratorImpl&); // N/I + MAKE_TYPE_NAME(IteratorImplementation_)(const MAKE_TYPE_NAME(IteratorImplementation_)&); // N/I + MAKE_TYPE_NAME(IteratorImplementation_)& operator=(const MAKE_TYPE_NAME(IteratorImplementation_)&); // N/I MAKE_TYPE_NAME(Kernel) kernel; @@ -1017,7 +1017,7 @@ namespace IfcGeom { } public: - IteratorImpl(const IteratorSettings& settings, IfcParse::IfcFile* file, const std::vector& filters, int num_threads) + MAKE_TYPE_NAME(IteratorImplementation_)(const IteratorSettings& settings, IfcParse::IfcFile* file, const std::vector& filters, int num_threads) : settings(settings) , ifc_file(file) , filters_(filters) @@ -1027,7 +1027,7 @@ namespace IfcGeom { _initialize(); } - ~IteratorImpl() { + ~MAKE_TYPE_NAME(IteratorImplementation_)() { if (owns_ifc_file) { delete ifc_file; } diff --git a/src/ifcpatch/ifcpatch.py b/src/ifcpatch/ifcpatch.py new file mode 100644 index 0000000000..00b88b97af --- /dev/null +++ b/src/ifcpatch/ifcpatch.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +# This can be packaged with `pyinstaller --onefile --clean --icon=icon.ico ifcpatch.py` + +import ifcopenshell +import logging +import argparse + +def execute(args, is_library=None): + logging.basicConfig(filename=args['log'], filemode='a', level=logging.DEBUG) + logger = logging.getLogger('IFCPatch') + print('# Loading IFC file ...') + ifc_file = ifcopenshell.open(args['input']) + print('# Loading patch recipe ...') + patcher = getattr(__import__('recipes.{}'.format(args['recipe'])), args['recipe']).Patcher( + args['input'], ifc_file, logger, args['arguments']) + print('# Patching ...') + patcher.patch() + ifc_file = patcher.file + if is_library is True: + return ifc_file + print('# Writing patched file ...') + if not args['output']: + args['output'] = args['input'] + if isinstance(ifc_file, str): + with open(args['output'], 'w') as text_file: + text_file.write(ifc_file) + else: + ifc_file.write(args['output']) + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description='Patches IFC files to fix badly formatted data') + parser.add_argument( + '-i', + '--input', + type=str, + required=True, + help='The IFC file to patch') + parser.add_argument( + '-o', + '--output', + type=str, + help='The output file to save the patched IFC') + parser.add_argument( + '-r', + '--recipe', + type=str, + required=True, + help='Name of the recipe to use when patching') + parser.add_argument( + '-l', + '--log', + type=str, + help='Specify a log file', + default='ifcpatch.log') + parser.add_argument( + '-a', + '--arguments', + nargs='+', + help='Specify custom arguments to the patch recipe') + args = vars(parser.parse_args()) + + execute(args) + + print('# All tasks are complete :-)') diff --git a/src/ifcpatch/recipes/ResetAbsoluteCoordinates.py b/src/ifcpatch/recipes/ResetAbsoluteCoordinates.py index 83edff10a6..ae8b674448 100644 --- a/src/ifcpatch/recipes/ResetAbsoluteCoordinates.py +++ b/src/ifcpatch/recipes/ResetAbsoluteCoordinates.py @@ -3,27 +3,11 @@ class Patcher: self.src = src self.file = file self.logger = logger - self.args = args def patch(self): - placement_coord_ids = set() - for placement in self.file.by_type('IfcObjectPlacement'): - [placement_coord_ids.add(e.id()) for e in self.file.traverse(placement) if e.is_a('IfcCartesianPoint')] - - # Arbitrary threshold based on experience - self.threshold = 1000000 - if self.args and len(self.args) == 1: - self.threshold = float(self.args[0]) - elif self.args and len(self.args) == 4: - self.threshold = float(self.args[3]) - - # This method will not work all the time, but will catch most issues. It - # assumes that absolute coordinates are easily recognisable based on - # having a large absolute value above a threshold. This is not always - # the case, but is very fast to run, and works for most cases. + # 12D can have some funky coordinates out of any sensible range. This + # method will not work all the time, but will catch most issues. offset_point = None - if self.args and len(self.args) >= 3: - offset_point = (float(self.args[0]),float(self.args[1]),float(self.args[2])) try: point_lists = self.file.by_type('IfcCartesianPointList3D') except: @@ -36,34 +20,33 @@ class Patcher: coord_list[i] = point continue if not offset_point: - offset_point = (-point[0], -point[1], -point[2]) + offset_point = (point[0], point[1], point[2]) self.logger.info(f'Resetting absolute coordinates by {point}') point = ( - point[0] + offset_point[0], - point[1] + offset_point[1], - point[2] + offset_point[2] + point[0] - offset_point[0], + point[1] - offset_point[1], + point[2] - offset_point[2] ) coord_list[i] = point point_list.CoordList = coord_list for point in self.file.by_type('IfcCartesianPoint'): if len(point.Coordinates) == 2 or not self.is_point_far_away(point): continue - if point.id() in placement_coord_ids: - continue if not offset_point: - offset_point = (-point.Coordinates[0], -point.Coordinates[1], -point.Coordinates[2]) + offset_point = (point.Coordinates[0], point.Coordinates[1], point.Coordinates[2]) self.logger.info(f'Resetting absolute coordinates by {point}') point.Coordinates = ( - point.Coordinates[0] + offset_point[0], - point.Coordinates[1] + offset_point[1], - point.Coordinates[2] + offset_point[2] + point.Coordinates[0] - offset_point[0], + point.Coordinates[1] - offset_point[1], + point.Coordinates[2] - offset_point[2] ) def is_point_far_away(self, point): + # Arbitrary threshold based on experience if hasattr(point, 'Coordinates'): - return abs(point.Coordinates[0]) > self.threshold \ - or abs(point.Coordinates[1]) > self.threshold \ - or abs(point.Coordinates[2]) > self.threshold - return abs(point[0]) > self.threshold \ - or abs(point[1]) > self.threshold \ - or abs(point[2]) > self.threshold + return abs(point.Coordinates[0]) > 1000000 \ + or abs(point.Coordinates[1]) > 1000000 \ + or abs(point.Coordinates[2]) > 1000000 + return abs(point[0]) > 1000000 \ + or abs(point[1]) > 1000000 \ + or abs(point[2]) > 1000000 diff --git a/win/output.txt b/win/output.txt deleted file mode 100644 index 387015a4a2..0000000000 --- a/win/output.txt +++ /dev/null @@ -1,177 +0,0 @@ - -This script fetches and builds all IfcOpenShell dependencies - -Generator not passed but VisualStudioVersion=15.0 environment variable detected: -using `Visual Studio 15 2017 Win64` as the generator. -build-type-cfg.cmd: Warning: BUILD_CFG not specified - using the default RelWithDebInfo - -Script configuration: -* CMake Generator = `Visual Studio 15 2017 Win64` - - Passed to CMake -G option. -* Target Architecture = x64 - - Whether were doing 32-bit (x86) or 64-bit (x64) build. -* Dependency Directory = C:\Users\jlutt\Documents\IfcOpenShell\deps - - The directory where IfcOpenShell dependencies are fetched and built. -* Installation Directory = C:\Users\jlutt\Documents\IfcOpenShell\deps-vs2017-x64-installed - - The directory where IfcOpenShell dependencies are installed. -* Build Config Type = RelWithDebInfo - - The used build configuration type for the dependencies. - Defaults to RelWithDebInfo if not specified. -* Build Type = Build - - The used build type for the dependencies (Build, Rebuild, Clean). - Defaults to Build if not specified. Rebuild/Clean also uninstalls Python (if it was installed by this script). -* IFCOS_USE_OCCT = TRUE - - Use the official Open CASCADE instead of the community edition. -* IFCOS_INSTALL_PYTHON = TRUE - - Download and install Python. - Set to something other than TRUE if you wish to use an already installed version of Python. -* IFCOS_USE_PYTHON2 = FALSE - - Use Python 2 instead of 3. - Set to TRUE if you wish to use Python 2 instead of 3. Has no effect if IFCOS_INSTALL_PYTHON is not TRUE. -* IFCOS_NUM_BUILD_PROCS = 8 - - How many MSBuild.exe processes may be run in parallel. - Defaults to NUMBER_OF_PROCESSORS. Used also by other IfcOpenShell build scripts. - -Requirements for a successful execution: - 1. Install PowerShell (preinstalled in Windows >= 7) version 5 or higher and make sure 'powershell' is accessible from PATH. - - https://support.microsoft.com/en-us/kb/968929 - 2. Install Git and make sure 'git' is accessible from PATH. - - https://git-for-windows.github.io/ - 3. Install CMake and make sure 'cmake' is accessible from PATH. - - http://www.cmake.org/ - 4. Visual Studio 2008 or newer (2013 or newer recommended) with C++ toolset. - - https://www.visualstudio.com/ - 5. Run this batch script with Visual Studio environment variables set. - - https://msdn.microsoft.com/en-us/library/ms229859(v=vs.110).aspx - -NB: This script needs to be ran from the directory directly containing it. - -Warning: You will need roughly 8 GB of disk space to proceed (VS 2015 x64 RelWithDebInfo). - -If you are not ready with the above: type 'n' in the prompt below. Build proceeds on all other inputs -> -Build started at 7:40:11.47. - -Boost 1.67.0 already downloaded. Skipping. -Boost 1.67.0 already extracted into C:\Users\jlutt\Documents\IfcOpenShell\deps\boost_1_67_0. Skipping. -Building Boost 1.67.0 --with-system --with-regex --with-thread --with-program_options --with-date_time --with-iostreams --with-filesystem Please be patient this will take a while. -Performing configuration checks - - - default address-model : none - - default architecture : none - - symlinks supported : no - - junctions supported : yes - - hardlinks supported : yes - - zlib : no - - bzip2 : no - - lzma : no - - has_icu builds : no - -Component configuration: - - - atomic : not building - - chrono : not building - - container : not building - - context : not building - - contract : not building - - coroutine : not building - - date_time : building - - exception : not building - - fiber : not building - - filesystem : building - - graph : not building - - graph_parallel : not building - - iostreams : building - - locale : not building - - log : not building - - math : not building - - mpi : not building - - program_options : building - - python : not building - - random : not building - - regex : building - - serialization : not building - - signals : not building - - stacktrace : not building - - system : building - - test : not building - - thread : building - - timer : not building - - type_erasure : not building - - wave : not building - -...patience... -...patience... -...found 1696 targets... -...updating 16 targets... -...skipped gregorian\greg_month.obj for lack of msvc-setup.nup... -...skipped gregorian\greg_weekday.obj for lack of msvc-setup.nup... -...skipped gregorian\date_generators.obj for lack of msvc-setup.nup... -...skipped libboost_date_time-vc141-mt-s-1_67.lib for lack of gregorian\greg_month.obj... -...skipped libboost_date_time-vc141-mt-s-1_67.lib for lack of libboost_date_time-vc141-mt-s-1_67.lib... -...skipped error_code.obj for lack of msvc-setup.nup... -...skipped libboost_system-vc141-mt-s-1_67.lib for lack of error_code.obj... -...skipped libboost_system-vc141-mt-s-1_67.lib for lack of libboost_system-vc141-mt-s-1_67.lib... -...skipped codecvt_error_category.obj for lack of msvc-setup.nup... -...skipped operations.obj for lack of msvc-setup.nup... -...skipped path.obj for lack of msvc-setup.nup... -...skipped path_traits.obj for lack of msvc-setup.nup... -...skipped portability.obj for lack of msvc-setup.nup... -...skipped unique_path.obj for lack of msvc-setup.nup... -...skipped utf8_codecvt_facet.obj for lack of msvc-setup.nup... -...skipped windows_file_codecvt.obj for lack of msvc-setup.nup... -...skipped libboost_filesystem-vc141-mt-s-1_67.lib for lack of codecvt_error_category.obj... -...skipped libboost_filesystem-vc141-mt-s-1_67.lib for lack of libboost_filesystem-vc141-mt-s-1_67.lib... -...skipped file_descriptor.obj for lack of msvc-setup.nup... -...skipped mapped_file.obj for lack of msvc-setup.nup... -...skipped libboost_iostreams-vc141-mt-s-1_67.lib for lack of file_descriptor.obj... -...skipped libboost_iostreams-vc141-mt-s-1_67.lib for lack of libboost_iostreams-vc141-mt-s-1_67.lib... -...skipped cmdline.obj for lack of msvc-setup.nup... -...skipped config_file.obj for lack of msvc-setup.nup... -...skipped options_description.obj for lack of msvc-setup.nup... -...skipped parsers.obj for lack of msvc-setup.nup... -...skipped variables_map.obj for lack of msvc-setup.nup... -...skipped value_semantic.obj for lack of msvc-setup.nup... -...skipped positional_options.obj for lack of msvc-setup.nup... -...skipped utf8_codecvt_facet.obj for lack of msvc-setup.nup... -...skipped convert.obj for lack of msvc-setup.nup... -...skipped winmain.obj for lack of msvc-setup.nup... -...skipped split.obj for lack of msvc-setup.nup... -...skipped libboost_program_options-vc141-mt-s-1_67.lib for lack of cmdline.obj... -...skipped libboost_program_options-vc141-mt-s-1_67.lib for lack of libboost_program_options-vc141-mt-s-1_67.lib... -...skipped c_regex_traits.obj for lack of msvc-setup.nup... -...skipped cpp_regex_traits.obj for lack of msvc-setup.nup... -...skipped cregex.obj for lack of msvc-setup.nup... -...skipped fileiter.obj for lack of msvc-setup.nup... -...skipped icu.obj for lack of msvc-setup.nup... -...skipped instances.obj for lack of msvc-setup.nup... -...skipped posix_api.obj for lack of msvc-setup.nup... -...skipped regex.obj for lack of msvc-setup.nup... -...skipped regex_debug.obj for lack of msvc-setup.nup... -...skipped regex_raw_buffer.obj for lack of msvc-setup.nup... -...skipped regex_traits_defaults.obj for lack of msvc-setup.nup... -...skipped static_mutex.obj for lack of msvc-setup.nup... -...skipped w32_regex_traits.obj for lack of msvc-setup.nup... -...skipped wc_regex_traits.obj for lack of msvc-setup.nup... -...skipped wide_posix_api.obj for lack of msvc-setup.nup... -...skipped winstances.obj for lack of msvc-setup.nup... -...skipped usinstances.obj for lack of msvc-setup.nup... -...skipped libboost_regex-vc141-mt-s-1_67.lib for lack of c_regex_traits.obj... -...skipped libboost_regex-vc141-mt-s-1_67.lib for lack of libboost_regex-vc141-mt-s-1_67.lib... -...skipped chrono.obj for lack of msvc-setup.nup... -...skipped thread_clock.obj for lack of msvc-setup.nup... -...skipped process_cpu_clocks.obj for lack of msvc-setup.nup... -...skipped libboost_chrono-vc141-mt-s-1_67.lib for lack of chrono.obj... -...skipped libboost_chrono-vc141-mt-s-1_67.lib for lack of libboost_chrono-vc141-mt-s-1_67.lib... -...skipped win32\thread.obj for lack of msvc-setup.nup... -...skipped win32\tss_dll.obj for lack of msvc-setup.nup... -...skipped win32\tss_pe.obj for lack of msvc-setup.nup... -...skipped win32\thread_primitives.obj for lack of msvc-setup.nup... -...skipped future.obj for lack of msvc-setup.nup... -...skipped libboost_thread-vc141-mt-s-1_67.lib for lack of win32\thread.obj... -...skipped libboost_thread-vc141-mt-s-1_67.lib for lack of libboost_thread-vc141-mt-s-1_67.lib... -...skipped 66 targets... - -An error occurred - -Build ended at 7:40:17.03. Time elapsed 0:00:05.56. diff --git a/win/run-cmake.bat b/win/run-cmake.bat index 1b2926d370..8154b3a4bc 100755 --- a/win/run-cmake.bat +++ b/win/run-cmake.bat @@ -62,10 +62,6 @@ pushd ..\%BUILD_DIR% set BOOST_VERSION=1.67.0 set BOOST_VER=%BOOST_VERSION:.=_% - - -echo %OCC_INCLUDE_DIR% - set BOOST_ROOT=%DEPS_DIR%\boost_%BOOST_VER% set BOOST_LIBRARYDIR=%BOOST_ROOT%\stage\vs%VS_VER%-%VS_PLATFORM%\lib if not defined OCC_INCLUDE_DIR set OCC_INCLUDE_DIR=%INSTALL_DIR%\oce\include\oce