mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
Merge pull request #89 from aothms/dynamic_lib_fixes
Dynamic lib fixes (#79)
This commit is contained in:
+4
-3
@@ -4,7 +4,8 @@
|
||||
/install*/
|
||||
/win/BuildDepsCache*.txt
|
||||
# IfcExpressParser residue
|
||||
/src/ifcexpressparser/__pycache__
|
||||
/src/ifcexpressparser/express_parser.py
|
||||
# Python test residue
|
||||
/test/__pycache__
|
||||
# General Python residue
|
||||
__pycache__
|
||||
# Visual Studio Code files
|
||||
.vscode
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
IfcOpenShell
|
||||
============
|
||||
IfcOpenShell is an open source ([LGPL]) software library for working with the Industry Foundation Classes ([IFC])
|
||||
file format. Currently supported IFC releases are [IFC2x3 TC1] and [IFC4].
|
||||
file format. Currently supported IFC releases are [IFC2x3 TC1] and [IFC4 Add1].
|
||||
|
||||
For more information, see
|
||||
* [http://ifcopenshell.org](http://ifcopenshell.org)
|
||||
@@ -162,5 +162,5 @@ Usage examples
|
||||
[LGPL]: https://github.com/IfcOpenShell/IfcOpenShell/tree/master/COPYING "LGPL"
|
||||
[IFC]: http://www.buildingsmart-tech.org/specifications/ifc-overview "IFC"
|
||||
[IFC2x3 TC1]: http://www.buildingsmart-tech.org/specifications/ifc-releases/ifc2x3-tc1-release "IFC2x3 TC1"
|
||||
[IFC4]: http://www.buildingsmart-tech.org/specifications/ifc-releases/ifc4-release "IFC4"
|
||||
[IFC4 Add1]: http://www.buildingsmart-tech.org/specifications/ifc-releases/ifc4-add1-release "IFC4 Add1"
|
||||
[win/readme.md]: https://github.com/IfcOpenShell/IfcOpenShell/tree/master/win/readme.md "win/readme.md"
|
||||
+43
-27
@@ -30,7 +30,7 @@ OPTION(BUILD_IFCPYTHON "Build IfcPython." ON)
|
||||
OPTION(BUILD_EXAMPLES "Build example applications." ON)
|
||||
OPTION(USE_VLD "Use Visual Leak Detector for debugging memory leaks, MSVC-only." OFF)
|
||||
OPTION(BUILD_IFCMAX "Build IfcMax, a 3ds Max plug-in, Windows-only." OFF)
|
||||
OPTION(BUILD_SHARED_LIBS "Build ifcparse and ifcgeom libs shared." OFF)
|
||||
OPTION(BUILD_SHARED_LIBS "Build IfcParse and IfcGeom as shared libs (SO/DLL)." OFF)
|
||||
# TODO QtViewer is deprecated ATM as it uses the 0.4 API
|
||||
# OPTION(BUILD_QTVIEWER "Build IfcOpenShell Qt GUI Viewer (requires Qt 4 framework)." OFF)
|
||||
|
||||
@@ -60,7 +60,18 @@ IF(NOT IS_ABSOLUTE ${LIBDIR})
|
||||
ENDIF()
|
||||
MESSAGE(STATUS "LIBDIR: ${LIBDIR}")
|
||||
|
||||
set(IFCOPENSHELL_LIBARY_DIR "") # for *nix rpaths
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
add_definitions(-DBUILD_SHARED_LIBS)
|
||||
if (MSVC)
|
||||
message(WARNING "Building DLLs against the static VC run-time. This is not recommended if the DLLs are to be redistributed.")
|
||||
# C4521: 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'
|
||||
# There will be couple hundreds of these so suppress them away, https://msdn.microsoft.com/en-us/library/esew7y1w.aspx
|
||||
add_definitions(-wd4251)
|
||||
endif()
|
||||
set(IFCOPENSHELL_LIBARY_DIR "${LIBDIR}")
|
||||
endif()
|
||||
|
||||
# Create cache entries if absent for environment variables
|
||||
MACRO(UNIFY_ENVVARS_AND_CACHE VAR)
|
||||
@@ -305,6 +316,7 @@ IF(MSVC)
|
||||
ADD_DEFINITIONS(-wd4458)
|
||||
ENDIF()
|
||||
# Link against the static VC runtime
|
||||
# TODO Make this configurable
|
||||
FOREACH(flag CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
|
||||
@@ -318,9 +330,9 @@ IF(MSVC)
|
||||
ElSE()
|
||||
IF(WIN32)
|
||||
# -fPIC is not relevant on Windows and create pointless warnings
|
||||
ADD_DEFINITIONS(-Wno-non-virtual-dtor)
|
||||
ADD_DEFINITIONS(-Wno-non-virtual-dtor -Wall -Wextra)
|
||||
ELSE()
|
||||
ADD_DEFINITIONS(-fPIC -Wno-non-virtual-dtor)
|
||||
ADD_DEFINITIONS(-fPIC -Wno-non-virtual-dtor -Wall -Wextra)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
@@ -408,7 +420,7 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Boost >= 1.58 requires BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE to build
|
||||
# Boost >= 1.58 requires BOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE to build on some Linux distros.
|
||||
if(NOT Boost_VERSION LESS 105800)
|
||||
add_definitions(-DBOOST_OPTIONAL_USE_OLD_DEFINITION_OF_NONE)
|
||||
endif()
|
||||
@@ -420,6 +432,8 @@ if(NOT WIN32)
|
||||
LINK_DIRECTORIES(${LINK_DIRECTORIES} /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64)
|
||||
endif()
|
||||
|
||||
SET(IFCOPENSHELL_LIBRARIES IfcParse IfcGeom)
|
||||
|
||||
# IfcParse
|
||||
file(GLOB IFCPARSE_H_FILES ../src/ifcparse/*.h)
|
||||
file(GLOB IFCPARSE_CPP_FILES ../src/ifcparse/*.cpp)
|
||||
@@ -434,7 +448,8 @@ endforeach()
|
||||
|
||||
set(IFCPARSE_FILES ${IFCPARSE_CPP_FILES} ${IFCPARSE_H_FILES})
|
||||
|
||||
ADD_LIBRARY(IfcParse STATIC ${IFCPARSE_FILES})
|
||||
add_library(IfcParse ${IFCPARSE_FILES})
|
||||
set_target_properties(IfcParse PROPERTIES COMPILE_FLAGS -DIfcParse_EXPORTS)
|
||||
|
||||
IF(UNICODE_SUPPORT)
|
||||
TARGET_LINK_LIBRARIES(IfcParse ${ICU_LIBRARIES} ${Boost_LIBRARIES})
|
||||
@@ -443,31 +458,24 @@ ENDIF()
|
||||
# IfcGeom
|
||||
file(GLOB IFCGEOM_H_FILES ../src/ifcgeom/*.h)
|
||||
file(GLOB IFCGEOM_CPP_FILES ../src/ifcgeom/*.cpp)
|
||||
|
||||
set(IFCGEOM_FILES ${IFCGEOM_CPP_FILES} ${IFCGEOM_H_FILES})
|
||||
IF(BUILD_SHARED_LIBS)
|
||||
ADD_LIBRARY(IfcGeom SHARED ${IFCGEOM_FILES})
|
||||
SET(IFCLIBS "IfcGeom")
|
||||
SET(IFCDIRS "${LIBDIR}")
|
||||
message(WARNING "Building IfcGeom as shared library not currently supported")
|
||||
add_library(IfcGeom STATIC ${IFCGEOM_FILES})
|
||||
ELSE()
|
||||
ADD_LIBRARY(IfcGeom STATIC ${IFCGEOM_FILES})
|
||||
SET(IFCLIBS "IfcParse;IfcGeom")
|
||||
SET(IFCDIRS "")
|
||||
|
||||
# add macro for every project: use IfcParse as static lib
|
||||
ADD_DEFINITIONS(-DIFCPARSE_STATIC_DEFINE)
|
||||
add_library(IfcGeom ${IFCGEOM_FILES})
|
||||
ENDIF()
|
||||
|
||||
TARGET_LINK_LIBRARIES(IfcGeom IfcParse)
|
||||
|
||||
# IfcConvert
|
||||
if (IFCCONVERT_DOUBLE_PRECISION)
|
||||
add_definitions(-DIFCCONVERT_DOUBLE_PRECISION)
|
||||
endif()
|
||||
file(GLOB IFCCONVERT_CPP_FILES ../src/ifcconvert/*.cpp)
|
||||
file(GLOB IFCCONVERT_H_FILES ../src/ifcconvert/*.h)
|
||||
set(IFCCONVERT_FILES ${IFCCONVERT_CPP_FILES} ${IFCCONVERT_H_FILES})
|
||||
ADD_EXECUTABLE(IfcConvert ${IFCCONVERT_FILES})
|
||||
if (IFCCONVERT_DOUBLE_PRECISION)
|
||||
set_target_properties(IfcConvert PROPERTIES COMPILE_FLAGS -DIFCCONVERT_DOUBLE_PRECISION)
|
||||
endif()
|
||||
|
||||
# Make sure cross-referenced symbols between static OCC libraries get
|
||||
# resolved. Also add thread and rt libraries.
|
||||
@@ -480,9 +488,9 @@ if("${libTKernelExt}" STREQUAL ".a")
|
||||
set(OPENCASCADE_LIBRARIES ${OPENCASCADE_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${LIB_RT} dl)
|
||||
endif()
|
||||
|
||||
TARGET_LINK_LIBRARIES(IfcConvert ${IFCLIBS} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${OPENCOLLADA_LIBRARIES} ${ICU_LIBRARIES})
|
||||
TARGET_LINK_LIBRARIES(IfcConvert ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${OPENCOLLADA_LIBRARIES} ${ICU_LIBRARIES})
|
||||
if (NOT WIN32)
|
||||
SET_INSTALL_RPATHS(IfcConvert "${IFCDIRS};${OCC_LIBRARY_DIR};${Boost_LIBRARY_DIRS};${OPENCOLLADA_LIBRARY_DIR};${ICU_LIBRARY_DIR}")
|
||||
SET_INSTALL_RPATHS(IfcConvert "${IFCOPENSHELL_LIBARY_DIR};${OCC_LIBRARY_DIR};${Boost_LIBRARY_DIRS};${OPENCOLLADA_LIBRARY_DIR};${ICU_LIBRARY_DIR}")
|
||||
endif()
|
||||
|
||||
# IfcGeomServer
|
||||
@@ -490,10 +498,9 @@ file(GLOB CPP_FILES ../src/ifcgeomserver/*.cpp)
|
||||
file(GLOB H_FILES ../src/ifcgeomserver/*.h)
|
||||
set(SOURCE_FILES ${CPP_FILES} ${H_FILES})
|
||||
ADD_EXECUTABLE(IfcGeomServer ${SOURCE_FILES})
|
||||
|
||||
TARGET_LINK_LIBRARIES(IfcGeomServer ${IFCLIBS} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${ICU_LIBRARIES})
|
||||
TARGET_LINK_LIBRARIES(IfcGeomServer ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES} ${Boost_LIBRARIES} ${ICU_LIBRARIES})
|
||||
if (NOT WIN32)
|
||||
SET_INSTALL_RPATHS(IfcGeomServer "${IFCDIRS};${OCC_LIBRARY_DIR};${Boost_LIBRARY_DIRS};${ICU_LIBRARY_DIR}")
|
||||
SET_INSTALL_RPATHS(IfcGeomServer "${IFCOPENSHELL_LIBARY_DIR};${OCC_LIBRARY_DIR};${Boost_LIBRARY_DIRS};${ICU_LIBRARY_DIR}")
|
||||
endif()
|
||||
|
||||
IF(BUILD_IFCPYTHON)
|
||||
@@ -509,7 +516,16 @@ IF(BUILD_IFCMAX)
|
||||
ENDIF()
|
||||
|
||||
# CMake installation targets
|
||||
INSTALL(FILES ${IFCPARSE_H_FILES} DESTINATION ${INCLUDEDIR}/ifcparse)
|
||||
INSTALL(FILES ${IFCGEOM_H_FILES} DESTINATION ${INCLUDEDIR}/ifcgeom)
|
||||
INSTALL(TARGETS IfcConvert IfcGeomServer DESTINATION ${BINDIR})
|
||||
INSTALL(TARGETS ${IFCLIBS} DESTINATION ${LIBDIR})
|
||||
INSTALL(FILES ${IFCPARSE_H_FILES}
|
||||
DESTINATION ${INCLUDEDIR}/ifcparse
|
||||
)
|
||||
|
||||
INSTALL(FILES ${IFCGEOM_H_FILES}
|
||||
DESTINATION ${INCLUDEDIR}/ifcgeom
|
||||
)
|
||||
|
||||
INSTALL(TARGETS IfcParse IfcGeom IfcConvert IfcGeomServer
|
||||
ARCHIVE DESTINATION ${LIBDIR}
|
||||
LIBRARY DESTINATION ${LIBDIR}
|
||||
RUNTIME DESTINATION ${BINDIR}
|
||||
)
|
||||
|
||||
@@ -18,13 +18,9 @@
|
||||
################################################################################
|
||||
|
||||
ADD_EXECUTABLE(IfcParseExamples IfcParseExamples.cpp)
|
||||
IF(BUILD_SHARED_LIBS)
|
||||
TARGET_LINK_LIBRARIES(IfcParseExamples ${IFCLIBS})
|
||||
ELSE()
|
||||
TARGET_LINK_LIBRARIES(IfcParseExamples IfcParse)
|
||||
ENDIF()
|
||||
TARGET_LINK_LIBRARIES(IfcParseExamples IfcParse)
|
||||
set_target_properties(IfcParseExamples PROPERTIES FOLDER Examples)
|
||||
|
||||
ADD_EXECUTABLE(IfcOpenHouse IfcOpenHouse.cpp)
|
||||
TARGET_LINK_LIBRARIES(IfcOpenHouse ${IFCLIBS} ${OPENCASCADE_LIBRARIES})
|
||||
TARGET_LINK_LIBRARIES(IfcOpenHouse ${IFCOPENSHELL_LIBRARIES} ${OPENCASCADE_LIBRARIES})
|
||||
set_target_properties(IfcOpenHouse PROPERTIES FOLDER Examples)
|
||||
|
||||
@@ -93,23 +93,24 @@ lb_header = """
|
||||
|
||||
#define IfcSchema %(schema_name)s
|
||||
|
||||
#include "../ifcparse/IfcParse_Export.h"
|
||||
#include "../ifcparse/IfcUtil.h"
|
||||
#include "../ifcparse/IfcEntityDescriptor.h"
|
||||
#include "../ifcparse/IfcWritableEntity.h"
|
||||
|
||||
namespace %(schema_name)s {
|
||||
namespace Type {
|
||||
int GetAttributeCount(Enum t);
|
||||
int GetAttributeIndex(Enum t, const std::string& a);
|
||||
IfcUtil::ArgumentType GetAttributeType(Enum t, unsigned char a);
|
||||
Enum GetAttributeEntity(Enum t, unsigned char a);
|
||||
const std::string& GetAttributeName(Enum t, unsigned char a);
|
||||
bool GetAttributeOptional(Enum t, unsigned char a);
|
||||
bool GetAttributeDerived(Enum t, unsigned char a);
|
||||
std::pair<const char*, int> GetEnumerationIndex(Enum t, const std::string& a);
|
||||
std::pair<Enum, unsigned> GetInverseAttribute(Enum t, const std::string& a);
|
||||
std::set<std::string> GetInverseAttributeNames(Enum t);
|
||||
void PopulateDerivedFields(IfcWrite::IfcWritableEntity* e);
|
||||
IfcParse_EXPORT int GetAttributeCount(Enum t);
|
||||
IfcParse_EXPORT int GetAttributeIndex(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT IfcUtil::ArgumentType GetAttributeType(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT Enum GetAttributeEntity(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT const std::string& GetAttributeName(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT bool GetAttributeOptional(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT bool GetAttributeDerived(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT std::pair<const char*, int> GetEnumerationIndex(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT std::pair<Enum, unsigned> GetInverseAttribute(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT std::set<std::string> GetInverseAttributeNames(Enum t);
|
||||
IfcParse_EXPORT void PopulateDerivedFields(IfcWrite::IfcWritableEntity* e);
|
||||
}}
|
||||
|
||||
#endif
|
||||
@@ -389,8 +390,8 @@ typedef IfcUtil::IfcBaseClass %(name)s;
|
||||
enumeration = """namespace %(name)s {
|
||||
%(documentation)s
|
||||
typedef enum {%(values)s} %(name)s;
|
||||
const char* ToString(%(name)s v);
|
||||
%(name)s FromString(const std::string& s);
|
||||
IfcParse_EXPORT const char* ToString(%(name)s v);
|
||||
IfcParse_EXPORT %(name)s FromString(const std::string& s);
|
||||
}
|
||||
"""
|
||||
|
||||
|
||||
@@ -1294,9 +1294,7 @@ std::pair<std::string, double> IfcGeom::Kernel::initializeUnits(IfcSchema::IfcUn
|
||||
Logger::Message(Logger::LOG_ERROR, "No unit information found");
|
||||
} else {
|
||||
for (IfcEntityList::it it = units->begin(); it != units->end(); ++it) {
|
||||
std::string current_unit_name = "";
|
||||
IfcUtil::IfcBaseClass* base = *it;
|
||||
IfcSchema::IfcSIUnit* unit = 0;
|
||||
if (base->is(IfcSchema::Type::IfcNamedUnit)) {
|
||||
IfcSchema::IfcNamedUnit* named_unit = base->as<IfcSchema::IfcNamedUnit>();
|
||||
if (named_unit->UnitType() == IfcSchema::IfcUnitEnum::IfcUnit_LENGTHUNIT ||
|
||||
@@ -1387,7 +1385,7 @@ bool IfcGeom::Kernel::convert_layerset(const IfcSchema::IfcProduct* product, std
|
||||
double u1, u2;
|
||||
Handle_Geom_Curve axis_curve = BRep_Tool::Curve(axis_edge, u1, u2);
|
||||
|
||||
if (true) {
|
||||
if (true) { /**< @todo Why always true? */
|
||||
if (axis_curve->DynamicType() == STANDARD_TYPE(Geom_Line)) {
|
||||
Handle_Geom_Line axis_line = Handle_Geom_Line::DownCast(axis_curve);
|
||||
reference_surface = new Geom_Plane(axis_line->Lin().Location(), axis_line->Lin().Direction() ^ gp::DZ());
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
#include <algorithm>
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/regex.hpp>
|
||||
|
||||
#include <gp_Mat.hxx>
|
||||
#include <gp_Mat2d.hxx>
|
||||
@@ -308,7 +309,7 @@ namespace IfcGeom {
|
||||
{
|
||||
names_to_include_or_exclude.clear();
|
||||
foreach(const std::string &name, names)
|
||||
names_to_include_or_exclude.insert(IfcUtil::wildcard_string_to_regex(name));
|
||||
names_to_include_or_exclude.insert(wildcard_string_to_regex(name));
|
||||
include_entities_in_processing = true;
|
||||
}
|
||||
|
||||
@@ -317,10 +318,24 @@ namespace IfcGeom {
|
||||
{
|
||||
names_to_include_or_exclude.clear();
|
||||
foreach(const std::string &name, names)
|
||||
names_to_include_or_exclude.insert(IfcUtil::wildcard_string_to_regex(name));
|
||||
names_to_include_or_exclude.insert(wildcard_string_to_regex(name));
|
||||
include_entities_in_processing = false;
|
||||
}
|
||||
|
||||
static boost::regex wildcard_string_to_regex(std::string str)
|
||||
{
|
||||
// Escape all non-"*?" regex special chars
|
||||
std::string special_chars = "\\^.$|()[]+/";
|
||||
foreach(char c, special_chars) {
|
||||
std::string char_str(1, c);
|
||||
boost::replace_all(str, char_str, "\\" + char_str);
|
||||
}
|
||||
// Convert "*?" to their regex equivalents
|
||||
boost::replace_all(str, "?", ".");
|
||||
boost::replace_all(str, "*", ".*");
|
||||
return boost::regex(str);
|
||||
}
|
||||
|
||||
const gp_XYZ& bounds_min() const { return bounds_min_; }
|
||||
const gp_XYZ& bounds_max() const { return bounds_max_; }
|
||||
|
||||
|
||||
@@ -17,12 +17,14 @@
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file has been generated from IFC2X3_TC1.exp. Do not make modifications *
|
||||
* but instead modify the python script that has been used to generate this. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
/********************************************************************************************
|
||||
* *
|
||||
* This file has been generated from *
|
||||
* http://www.buildingsmart-tech.org/downloads/ifc/ifc2x3tc/IFC2X3_TC1_EXPRESS_longform.zip *
|
||||
* Do not make modifications but instead modify the Python script that has been *
|
||||
* used to generate this. *
|
||||
* *
|
||||
********************************************************************************************/
|
||||
|
||||
#ifndef USE_IFC4
|
||||
|
||||
|
||||
@@ -17,35 +17,38 @@
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file has been generated from IFC2X3_TC1.exp. Do not make modifications *
|
||||
* but instead modify the python script that has been used to generate this. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
/********************************************************************************************
|
||||
* *
|
||||
* This file has been generated from *
|
||||
* http://www.buildingsmart-tech.org/downloads/ifc/ifc2x3tc/IFC2X3_TC1_EXPRESS_longform.zip *
|
||||
* Do not make modifications but instead modify the Python script that has been *
|
||||
* used to generate this. *
|
||||
* *
|
||||
********************************************************************************************/
|
||||
|
||||
#ifndef IFC2X3RT_H
|
||||
#define IFC2X3RT_H
|
||||
|
||||
#define IfcSchema Ifc2x3
|
||||
|
||||
#include "../ifcparse/IfcParse_Export.h"
|
||||
#include "../ifcparse/IfcUtil.h"
|
||||
#include "../ifcparse/IfcEntityDescriptor.h"
|
||||
#include "../ifcparse/IfcWritableEntity.h"
|
||||
|
||||
namespace Ifc2x3 {
|
||||
namespace Type {
|
||||
int GetAttributeCount(Enum t);
|
||||
int GetAttributeIndex(Enum t, const std::string& a);
|
||||
IfcUtil::ArgumentType GetAttributeType(Enum t, unsigned char a);
|
||||
Enum GetAttributeEntity(Enum t, unsigned char a);
|
||||
const std::string& GetAttributeName(Enum t, unsigned char a);
|
||||
bool GetAttributeOptional(Enum t, unsigned char a);
|
||||
bool GetAttributeDerived(Enum t, unsigned char a);
|
||||
std::pair<const char*, int> GetEnumerationIndex(Enum t, const std::string& a);
|
||||
std::pair<Enum, unsigned> GetInverseAttribute(Enum t, const std::string& a);
|
||||
std::set<std::string> GetInverseAttributeNames(Enum t);
|
||||
void PopulateDerivedFields(IfcWrite::IfcWritableEntity* e);
|
||||
IfcParse_EXPORT int GetAttributeCount(Enum t);
|
||||
IfcParse_EXPORT int GetAttributeIndex(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT IfcUtil::ArgumentType GetAttributeType(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT Enum GetAttributeEntity(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT const std::string& GetAttributeName(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT bool GetAttributeOptional(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT bool GetAttributeDerived(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT std::pair<const char*, int> GetEnumerationIndex(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT std::pair<Enum, unsigned> GetInverseAttribute(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT std::set<std::string> GetInverseAttributeNames(Enum t);
|
||||
IfcParse_EXPORT void PopulateDerivedFields(IfcWrite::IfcWritableEntity* e);
|
||||
}}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -17,12 +17,14 @@
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file has been generated from IFC2X3_TC1.exp. Do not make modifications *
|
||||
* but instead modify the python script that has been used to generate this. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
/********************************************************************************************
|
||||
* *
|
||||
* This file has been generated from *
|
||||
* http://www.buildingsmart-tech.org/downloads/ifc/ifc2x3tc/IFC2X3_TC1_EXPRESS_longform.zip *
|
||||
* Do not make modifications but instead modify the Python script that has been *
|
||||
* used to generate this. *
|
||||
* *
|
||||
********************************************************************************************/
|
||||
|
||||
#ifndef USE_IFC4
|
||||
|
||||
|
||||
+336
-334
File diff suppressed because it is too large
Load Diff
@@ -17,12 +17,14 @@
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file has been generated from IFC2X3_TC1.exp. Do not make modifications *
|
||||
* but instead modify the python script that has been used to generate this. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
/********************************************************************************************
|
||||
* *
|
||||
* This file has been generated from *
|
||||
* http://www.buildingsmart-tech.org/downloads/ifc/ifc2x3tc/IFC2X3_TC1_EXPRESS_longform.zip *
|
||||
* Do not make modifications but instead modify the Python script that has been *
|
||||
* used to generate this. *
|
||||
* *
|
||||
********************************************************************************************/
|
||||
|
||||
#ifndef IFC2X3ENUM_H
|
||||
#define IFC2X3ENUM_H
|
||||
|
||||
@@ -19,8 +19,10 @@
|
||||
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file has been generated from IFC4.exp. Do not make modifications *
|
||||
* but instead modify the python script that has been used to generate this. *
|
||||
* This file has been generated from *
|
||||
* http://www.buildingsmart-tech.org/ifc/IFC4/Add1/IFC4_ADD1.exp *
|
||||
* Do not make modifications but instead modify the Python script that has been *
|
||||
* used to generate this. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
@@ -272,6 +274,8 @@ void InitDescriptorMap() {
|
||||
current->add("wrappedValue",false,IfcUtil::Argument_DOUBLE);
|
||||
current = entity_descriptor_map[Type::IfcSpecularRoughness] = new IfcEntityDescriptor(Type::IfcSpecularRoughness,0);
|
||||
current->add("wrappedValue",false,IfcUtil::Argument_DOUBLE);
|
||||
current = entity_descriptor_map[Type::IfcStrippedOptional] = new IfcEntityDescriptor(Type::IfcStrippedOptional,0);
|
||||
current->add("wrappedValue",false,IfcUtil::Argument_BOOL);
|
||||
current = entity_descriptor_map[Type::IfcTemperatureGradientMeasure] = new IfcEntityDescriptor(Type::IfcTemperatureGradientMeasure,0);
|
||||
current->add("wrappedValue",false,IfcUtil::Argument_DOUBLE);
|
||||
current = entity_descriptor_map[Type::IfcTemperatureRateOfChangeMeasure] = new IfcEntityDescriptor(Type::IfcTemperatureRateOfChangeMeasure,0);
|
||||
@@ -474,7 +478,7 @@ void InitDescriptorMap() {
|
||||
current->add("Name",true,IfcUtil::Argument_STRING,Type::IfcLabel);
|
||||
current->add("Description",true,IfcUtil::Argument_STRING,Type::IfcText);
|
||||
current->add("Category",true,IfcUtil::Argument_STRING,Type::IfcLabel);
|
||||
current->add("Priority",true,IfcUtil::Argument_DOUBLE,Type::IfcNormalisedRatioMeasure);
|
||||
current->add("Priority",true,IfcUtil::Argument_INT,Type::IfcInteger);
|
||||
current = entity_descriptor_map[Type::IfcMaterialLayerSet] = new IfcEntityDescriptor(Type::IfcMaterialLayerSet,entity_descriptor_map.find(Type::IfcMaterialDefinition)->second);
|
||||
current->add("MaterialLayers",false,IfcUtil::Argument_AGGREGATE_OF_ENTITY_INSTANCE,Type::IfcMaterialLayer);
|
||||
current->add("LayerSetName",true,IfcUtil::Argument_STRING,Type::IfcLabel);
|
||||
@@ -489,7 +493,7 @@ void InitDescriptorMap() {
|
||||
current->add("Description",true,IfcUtil::Argument_STRING,Type::IfcText);
|
||||
current->add("Material",true,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcMaterial);
|
||||
current->add("Profile",false,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcProfileDef);
|
||||
current->add("Priority",true,IfcUtil::Argument_DOUBLE,Type::IfcNormalisedRatioMeasure);
|
||||
current->add("Priority",true,IfcUtil::Argument_INT,Type::IfcInteger);
|
||||
current->add("Category",true,IfcUtil::Argument_STRING,Type::IfcLabel);
|
||||
current = entity_descriptor_map[Type::IfcMaterialProfileSet] = new IfcEntityDescriptor(Type::IfcMaterialProfileSet,entity_descriptor_map.find(Type::IfcMaterialDefinition)->second);
|
||||
current->add("Name",true,IfcUtil::Argument_STRING,Type::IfcLabel);
|
||||
@@ -705,6 +709,7 @@ void InitDescriptorMap() {
|
||||
current->add("DispersionFactor",true,IfcUtil::Argument_DOUBLE,Type::IfcReal);
|
||||
current = entity_descriptor_map[Type::IfcSurfaceStyleShading] = new IfcEntityDescriptor(Type::IfcSurfaceStyleShading,entity_descriptor_map.find(Type::IfcPresentationItem)->second);
|
||||
current->add("SurfaceColour",false,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcColourRgb);
|
||||
current->add("Transparency",true,IfcUtil::Argument_DOUBLE,Type::IfcNormalisedRatioMeasure);
|
||||
current = entity_descriptor_map[Type::IfcSurfaceStyleWithTextures] = new IfcEntityDescriptor(Type::IfcSurfaceStyleWithTextures,entity_descriptor_map.find(Type::IfcPresentationItem)->second);
|
||||
current->add("Textures",false,IfcUtil::Argument_AGGREGATE_OF_ENTITY_INSTANCE,Type::IfcSurfaceTexture);
|
||||
current = entity_descriptor_map[Type::IfcSurfaceTexture] = new IfcEntityDescriptor(Type::IfcSurfaceTexture,entity_descriptor_map.find(Type::IfcPresentationItem)->second);
|
||||
@@ -973,7 +978,7 @@ void InitDescriptorMap() {
|
||||
current->add("URLReference",false,IfcUtil::Argument_STRING,Type::IfcURIReference);
|
||||
current = entity_descriptor_map[Type::IfcIndexedColourMap] = new IfcEntityDescriptor(Type::IfcIndexedColourMap,entity_descriptor_map.find(Type::IfcPresentationItem)->second);
|
||||
current->add("MappedTo",false,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcTessellatedFaceSet);
|
||||
current->add("Overrides",true,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcSurfaceStyleShading);
|
||||
current->add("Opacity",true,IfcUtil::Argument_DOUBLE,Type::IfcNormalisedRatioMeasure);
|
||||
current->add("Colours",false,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcColourRgbList);
|
||||
current->add("ColourIndex",false,IfcUtil::Argument_AGGREGATE_OF_INT,Type::IfcPositiveInteger);
|
||||
current = entity_descriptor_map[Type::IfcIndexedTextureMap] = new IfcEntityDescriptor(Type::IfcIndexedTextureMap,entity_descriptor_map.find(Type::IfcTextureCoordinate)->second);
|
||||
@@ -1224,7 +1229,6 @@ void InitDescriptorMap() {
|
||||
current = entity_descriptor_map[Type::IfcSurface] = new IfcEntityDescriptor(Type::IfcSurface,entity_descriptor_map.find(Type::IfcGeometricRepresentationItem)->second);
|
||||
|
||||
current = entity_descriptor_map[Type::IfcSurfaceStyleRendering] = new IfcEntityDescriptor(Type::IfcSurfaceStyleRendering,entity_descriptor_map.find(Type::IfcSurfaceStyleShading)->second);
|
||||
current->add("Transparency",true,IfcUtil::Argument_DOUBLE,Type::IfcNormalisedRatioMeasure);
|
||||
current->add("DiffuseColour",true,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcColourOrFactor);
|
||||
current->add("TransmissionColour",true,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcColourOrFactor);
|
||||
current->add("DiffuseTransmissionColour",true,IfcUtil::Argument_ENTITY_INSTANCE,Type::IfcColourOrFactor);
|
||||
|
||||
@@ -19,8 +19,10 @@
|
||||
|
||||
/********************************************************************************
|
||||
* *
|
||||
* This file has been generated from IFC4.exp. Do not make modifications *
|
||||
* but instead modify the python script that has been used to generate this. *
|
||||
* This file has been generated from *
|
||||
* http://www.buildingsmart-tech.org/ifc/IFC4/Add1/IFC4_ADD1.exp *
|
||||
* Do not make modifications but instead modify the Python script that has been *
|
||||
* used to generate this. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
@@ -29,23 +31,24 @@
|
||||
|
||||
#define IfcSchema Ifc4
|
||||
|
||||
#include "../ifcparse/IfcParse_Export.h"
|
||||
#include "../ifcparse/IfcUtil.h"
|
||||
#include "../ifcparse/IfcEntityDescriptor.h"
|
||||
#include "../ifcparse/IfcWritableEntity.h"
|
||||
|
||||
namespace Ifc4 {
|
||||
namespace Type {
|
||||
int GetAttributeCount(Enum t);
|
||||
int GetAttributeIndex(Enum t, const std::string& a);
|
||||
IfcUtil::ArgumentType GetAttributeType(Enum t, unsigned char a);
|
||||
Enum GetAttributeEntity(Enum t, unsigned char a);
|
||||
const std::string& GetAttributeName(Enum t, unsigned char a);
|
||||
bool GetAttributeOptional(Enum t, unsigned char a);
|
||||
bool GetAttributeDerived(Enum t, unsigned char a);
|
||||
std::pair<const char*, int> GetEnumerationIndex(Enum t, const std::string& a);
|
||||
std::pair<Enum, unsigned> GetInverseAttribute(Enum t, const std::string& a);
|
||||
std::set<std::string> GetInverseAttributeNames(Enum t);
|
||||
void PopulateDerivedFields(IfcWrite::IfcWritableEntity* e);
|
||||
IfcParse_EXPORT int GetAttributeCount(Enum t);
|
||||
IfcParse_EXPORT int GetAttributeIndex(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT IfcUtil::ArgumentType GetAttributeType(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT Enum GetAttributeEntity(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT const std::string& GetAttributeName(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT bool GetAttributeOptional(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT bool GetAttributeDerived(Enum t, unsigned char a);
|
||||
IfcParse_EXPORT std::pair<const char*, int> GetEnumerationIndex(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT std::pair<Enum, unsigned> GetInverseAttribute(Enum t, const std::string& a);
|
||||
IfcParse_EXPORT std::set<std::string> GetInverseAttributeNames(Enum t);
|
||||
IfcParse_EXPORT void PopulateDerivedFields(IfcWrite::IfcWritableEntity* e);
|
||||
}}
|
||||
|
||||
#endif
|
||||
|
||||
+35
-21
File diff suppressed because one or more lines are too long
+461
-449
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -40,7 +40,7 @@ typedef unsigned int UChar32;
|
||||
|
||||
namespace IfcParse {
|
||||
|
||||
class IfcCharacterDecoder {
|
||||
class IfcParse_EXPORT IfcCharacterDecoder {
|
||||
private:
|
||||
IfcParse::IfcSpfStream* file;
|
||||
#ifdef HAVE_ICU
|
||||
@@ -75,7 +75,7 @@ namespace IfcParse {
|
||||
|
||||
namespace IfcWrite {
|
||||
|
||||
class IfcCharacterEncoder {
|
||||
class IfcParse_EXPORT IfcCharacterEncoder {
|
||||
private:
|
||||
std::string str;
|
||||
#ifdef HAVE_ICU
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
namespace IfcUtil {
|
||||
|
||||
class IfcEnumerationDescriptor {
|
||||
class IfcParse_EXPORT IfcEnumerationDescriptor {
|
||||
private:
|
||||
IfcSchema::Type::Enum type;
|
||||
std::vector<std::string> values;
|
||||
@@ -62,7 +62,7 @@ namespace IfcUtil {
|
||||
}
|
||||
};
|
||||
|
||||
class IfcEntityDescriptor {
|
||||
class IfcParse_EXPORT IfcEntityDescriptor {
|
||||
public:
|
||||
class IfcArgumentDescriptor
|
||||
{
|
||||
|
||||
@@ -20,23 +20,32 @@
|
||||
#ifndef IFCEXCEPTION_H
|
||||
#define IFCEXCEPTION_H
|
||||
|
||||
#include "IfcParse_Export.h"
|
||||
|
||||
#include <exception>
|
||||
#include <string>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
// "C4275 can be ignored in Visual C++ if you are deriving from a type in the Standard C++ Library",
|
||||
// https://msdn.microsoft.com/en-us/library/3tdb471s.aspx
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4275)
|
||||
#endif
|
||||
|
||||
namespace IfcParse {
|
||||
class IfcException : public std::exception {
|
||||
class IfcParse_EXPORT IfcException : public std::exception {
|
||||
private:
|
||||
std::string message;
|
||||
public:
|
||||
IfcException(const std::string& m)
|
||||
: message(m) {}
|
||||
~IfcException () throw () {}
|
||||
const char* what() const throw() {
|
||||
virtual ~IfcException () throw () {}
|
||||
virtual const char* what() const throw() {
|
||||
return message.c_str();
|
||||
}
|
||||
};
|
||||
|
||||
class IfcAttributeOutOfRangeException : public IfcException {
|
||||
class IfcParse_EXPORT IfcAttributeOutOfRangeException : public IfcException {
|
||||
public:
|
||||
IfcAttributeOutOfRangeException(const std::string& e)
|
||||
: IfcException(e) {}
|
||||
@@ -44,4 +53,8 @@ namespace IfcParse {
|
||||
};
|
||||
}
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -34,8 +34,9 @@
|
||||
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
#include "IfcParse_Export.h"
|
||||
|
||||
class Logger {
|
||||
class IfcParse_EXPORT Logger {
|
||||
public:
|
||||
typedef enum { LOG_NOTICE, LOG_WARNING, LOG_ERROR } Severity;
|
||||
private:
|
||||
@@ -59,4 +60,4 @@ public:
|
||||
static std::string GetLog();
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1,22 +1,37 @@
|
||||
/********************************************************************************
|
||||
* *
|
||||
* 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/>. *
|
||||
* *
|
||||
********************************************************************************/
|
||||
|
||||
#ifndef IfcParse_EXPORT_H
|
||||
#define IfcParse_EXPORT_H
|
||||
|
||||
#ifdef IFCPARSE_STATIC_DEFINE
|
||||
#define IfcParse_EXPORT
|
||||
#else
|
||||
#ifdef _WIN32
|
||||
#ifndef IfcParse_EXPORT
|
||||
#ifdef IfcParse_EXPORTS
|
||||
#define IfcParse_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define IfcParse_EXPORT __declspec(dllimport)
|
||||
#endif
|
||||
#ifdef BUILD_SHARED_LIBS
|
||||
#ifdef _MSC_VER
|
||||
#ifdef IfcParse_EXPORTS
|
||||
#define IfcParse_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define IfcParse_EXPORT __declspec(dllimport)
|
||||
#endif
|
||||
#elif __linux__
|
||||
#else // simply assume GCC-like
|
||||
#define IfcParse_EXPORT __attribute__((visibility("default")))
|
||||
#else
|
||||
#define IfcParse_EXPORT
|
||||
#endif
|
||||
#else
|
||||
#define IfcParse_EXPORT
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
#define IFCSIPREFIX
|
||||
|
||||
#include "../ifcparse/IfcParse.h"
|
||||
#include "IfcParse_Export.h"
|
||||
|
||||
namespace IfcParse {
|
||||
double IfcSIPrefixToValue(IfcSchema::IfcSIPrefix::IfcSIPrefix);
|
||||
|
||||
double get_SI_equivalent(IfcSchema::IfcNamedUnit*);
|
||||
IfcParse_EXPORT double IfcSIPrefixToValue(IfcSchema::IfcSIPrefix::IfcSIPrefix);
|
||||
IfcParse_EXPORT double get_SI_equivalent(IfcSchema::IfcNamedUnit*);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -111,22 +111,6 @@ bool IfcUtil::valid_binary_string(const std::string& s) {
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifndef IFCPARSE_NO_REGEX
|
||||
boost::regex IfcUtil::wildcard_string_to_regex(std::string str)
|
||||
{
|
||||
// Escape all non-"*?" regex special chars
|
||||
std::string special_chars = "\\^.$|()[]+/";
|
||||
foreach(char c, special_chars) {
|
||||
std::string char_str(1, c);
|
||||
boost::replace_all(str, char_str, "\\"+ char_str);
|
||||
}
|
||||
// Convert "*?" to their regex equivalents
|
||||
boost::replace_all(str, "?", ".");
|
||||
boost::replace_all(str, "*", ".*");
|
||||
return boost::regex(str);
|
||||
}
|
||||
#endif
|
||||
|
||||
void IfcUtil::sanitate_material_name(std::string &str)
|
||||
{
|
||||
// Spaces in material names have been observed to cause problems with obj and dae importers.
|
||||
|
||||
+5
-13
@@ -36,9 +36,6 @@
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <boost/dynamic_bitset.hpp>
|
||||
#ifndef IFCPARSE_NO_REGEX //allow builds without boost.regex
|
||||
#include <boost/regex.hpp>
|
||||
#endif
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
#define foreach BOOST_FOREACH
|
||||
@@ -77,7 +74,7 @@ namespace IfcUtil {
|
||||
Argument_UNKNOWN
|
||||
};
|
||||
|
||||
const char* ArgumentTypeToString(ArgumentType argument_type);
|
||||
IfcParse_EXPORT const char* ArgumentTypeToString(ArgumentType argument_type);
|
||||
|
||||
class IfcParse_EXPORT IfcBaseClass {
|
||||
public:
|
||||
@@ -118,16 +115,11 @@ namespace IfcUtil {
|
||||
IfcSchema::Type::Enum getArgumentEntity(unsigned int /*i*/) const { return IfcSchema::Type::UNDEFINED; }
|
||||
};
|
||||
|
||||
bool valid_binary_string(const std::string& s);
|
||||
|
||||
#ifndef IFCPARSE_NO_REGEX
|
||||
boost::regex wildcard_string_to_regex(std::string str);
|
||||
#endif
|
||||
|
||||
IfcParse_EXPORT bool valid_binary_string(const std::string& s);
|
||||
/// Replaces spaces and potentially other problem causing characters with underscores.
|
||||
void sanitate_material_name(std::string &str);
|
||||
void escape_xml(std::string &str);
|
||||
void unescape_xml(std::string &str);
|
||||
IfcParse_EXPORT void sanitate_material_name(std::string &str);
|
||||
IfcParse_EXPORT void escape_xml(std::string &str);
|
||||
IfcParse_EXPORT void unescape_xml(std::string &str);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
|
||||
@@ -146,7 +146,7 @@ namespace IfcWrite {
|
||||
|
||||
// Accumulates all schema instances created from constructors
|
||||
// This way they can be added in a single batch to the IfcFile
|
||||
class EntityBuffer {
|
||||
class IfcParse_EXPORT EntityBuffer {
|
||||
private:
|
||||
IfcEntityList::ptr buffer;
|
||||
static EntityBuffer* i;
|
||||
|
||||
@@ -22,11 +22,11 @@
|
||||
@echo off
|
||||
set TARGET_ARCH=%1
|
||||
if "%TARGET_ARCH%"=="" set TARGET_ARCH=x64
|
||||
if not exist BuildDepsCache-%TARGET_ARCH%.txt. (
|
||||
echo BuildDepsCache-%TARGET_ARCH%.txt does not exist
|
||||
if not exist %~dp0BuildDepsCache-%TARGET_ARCH%.txt. (
|
||||
echo %~dp0BuildDepsCache-%TARGET_ARCH%.txt does not exist
|
||||
goto :EOF
|
||||
)
|
||||
for /f "delims== tokens=1,2" %%G in (BuildDepsCache-%TARGET_ARCH%.txt) do set %%G=%%H
|
||||
for /f "delims== tokens=1,2" %%G in (%~dp0BuildDepsCache-%TARGET_ARCH%.txt) do set %%G=%%H
|
||||
if not defined PYTHONHOME (
|
||||
echo PYTHONHOME PYTHONHOME not defined
|
||||
goto :EOF
|
||||
|
||||
Reference in New Issue
Block a user