Revision: 77716
http://sourceforge.net/p/brlcad/code/77716
Author: starseeker
Date: 2020-11-10 14:31:00 +0000 (Tue, 10 Nov 2020)
Log Message:
-----------
Revert the stepcode simplification and related converter logic changes. Didn't
change the functional issue seen with Windows+Ninja, and Sean is correct that
this rework moves us significantly further from upstream. I hate to do it in
some ways - unless this refactor did in fact clash with the ISO standard, I
think it did clean things up - but the better long term answer is to try and
achieve something similar in the upstream code. NOTE: when I tried the
upsteam stepcode, it did not work. Not sure yet why.
Modified Paths:
--------------
brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake
brlcad/branches/extbuild/src/conv/step/STEPWrapper.h
brlcad/branches/extbuild/src/conv/step/ap203e2-g/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/ap214-g/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/ap242-g/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/g-ap203e2/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/g-ap214/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/g-ap242/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/g-step/AP203.h
brlcad/branches/extbuild/src/conv/step/g-step/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/g-step/g-step.cpp
brlcad/branches/extbuild/src/conv/step/ifc-g/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/step-g/ApplicationContext.h
brlcad/branches/extbuild/src/conv/step/step-g/ApplicationContextElement.h
brlcad/branches/extbuild/src/conv/step/step-g/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/step-g/CharacterizedDefinition.h
brlcad/branches/extbuild/src/conv/step/step-g/CharacterizedProductDefinition.h
brlcad/branches/extbuild/src/conv/step/step-g/ContextDependentShapeRepresentation.h
brlcad/branches/extbuild/src/conv/step/step-g/GeometricSetSelect.h
brlcad/branches/extbuild/src/conv/step/step-g/ItemDefinedTransformation.h
brlcad/branches/extbuild/src/conv/step/step-g/OpenNurbsInterfaces.cpp
brlcad/branches/extbuild/src/conv/step/step-g/Product.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductCategory.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinition.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionContextAssociation.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionContextRole.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionFormation.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionFormationWithSpecifiedSource.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionRelationship.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionShape.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionWithAssociatedDocuments.h
brlcad/branches/extbuild/src/conv/step/step-g/ProductRelatedProductCategory.h
brlcad/branches/extbuild/src/conv/step/step-g/PropertyDefinition.h
brlcad/branches/extbuild/src/conv/step/step-g/PropertyDefinitionRepresentation.h
brlcad/branches/extbuild/src/conv/step/step-g/RepresentationItem.h
brlcad/branches/extbuild/src/conv/step/step-g/RepresentationRelationship.h
brlcad/branches/extbuild/src/conv/step/step-g/RepresentationRelationshipWithTransformation.h
brlcad/branches/extbuild/src/conv/step/step-g/ShapeAspect.h
brlcad/branches/extbuild/src/conv/step/step-g/ShapeAspectRelationship.h
brlcad/branches/extbuild/src/conv/step/step-g/ShapeDefinition.h
brlcad/branches/extbuild/src/conv/step/step-g/ShapeDefinitionRepresentation.h
brlcad/branches/extbuild/src/conv/step/step-g/ShapeRepresentationRelationship.h
brlcad/branches/extbuild/src/conv/step/step-g/step-g.cpp
brlcad/branches/extbuild/src/conv/step/util/CMakeLists.txt
brlcad/branches/extbuild/src/conv/step/util/list_elements.cpp
brlcad/branches/extbuild/src/other/ext/CMake/FindSTEPCODE.cmake
brlcad/branches/extbuild/src/other/ext/stepcode/AUTHORS
brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt
brlcad/branches/extbuild/src/other/ext/stepcode/COPYING
brlcad/branches/extbuild/src/other/ext/stepcode/README
brlcad/branches/extbuild/src/other/ext/stepcode/data/CMakeLists.txt
brlcad/branches/extbuild/src/other/ext/stepcode/data/README
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/CMakeLists.txt
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/classes.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/classes.h
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/classes_misc.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/classes_wrapper.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/collect.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/complexSupport.h
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/complexlist.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/entlist.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/entnode.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/expressbuild.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/match-ors.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/multlist.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/multpass.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/non-ors.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/orlist.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/print.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/selects.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/trynext.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/write.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/CMakeLists.txt
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/alg.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/caseitem.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/dict.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/entity.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/error.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/expr.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/express.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/expscan.l
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/expscan.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/hash.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/lexact.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/linklist.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/memory.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/object.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/ordered_attrs.cc
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/resolve.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/schema.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/scope.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/stmt.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/symbol.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/type.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/variable.c
brlcad/branches/extbuild/src/other/ext/stepcode.cmake
brlcad/branches/extbuild/src/other/ext/stepcode.dist
Added Paths:
-----------
brlcad/branches/extbuild/src/other/ext/stepcode/CTestConfig.cmake
brlcad/branches/extbuild/src/other/ext/stepcode/ChangeLog
brlcad/branches/extbuild/src/other/ext/stepcode/INSTALL
brlcad/branches/extbuild/src/other/ext/stepcode/NEWS
brlcad/branches/extbuild/src/other/ext/stepcode/SC_VERSION.txt
brlcad/branches/extbuild/src/other/ext/stepcode/TODO
brlcad/branches/extbuild/src/other/ext/stepcode/cmake/
brlcad/branches/extbuild/src/other/ext/stepcode/ctest_matrix.cmake
brlcad/branches/extbuild/src/other/ext/stepcode/data/ISO15926/
brlcad/branches/extbuild/src/other/ext/stepcode/data/STEPTools_merged_schema/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap210e2/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap214e3/as1-oc-214.stp
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap214e3/dm1-id-214.stp
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap214e3/io1-cm-214.stp
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap214e3/s1-c5-214/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap214e3/sg1-c5-214.stp
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap219/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap227/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap235/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap238/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap239/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ap240/
brlcad/branches/extbuild/src/other/ext/stepcode/data/cd209/
brlcad/branches/extbuild/src/other/ext/stepcode/data/cd242/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ifc2x3/
brlcad/branches/extbuild/src/other/ext/stepcode/data/ifc4/
brlcad/branches/extbuild/src/other/ext/stepcode/data/pdm/
brlcad/branches/extbuild/src/other/ext/stepcode/data/wip210e3/
brlcad/branches/extbuild/src/other/ext/stepcode/doc/
brlcad/branches/extbuild/src/other/ext/stepcode/include/CMakeLists.txt
brlcad/branches/extbuild/src/other/ext/stepcode/include/exppp/
brlcad/branches/extbuild/src/other/ext/stepcode/include/express/
brlcad/branches/extbuild/src/other/ext/stepcode/include/ordered_attrs.h
brlcad/branches/extbuild/src/other/ext/stepcode/include/sc_cf_cmake.h.in
brlcad/branches/extbuild/src/other/ext/stepcode/include/sc_export.h
brlcad/branches/extbuild/src/other/ext/stepcode/include/sc_stdbool.h
brlcad/branches/extbuild/src/other/ext/stepcode/lcov.cmake
brlcad/branches/extbuild/src/other/ext/stepcode/misc/
brlcad/branches/extbuild/src/other/ext/stepcode/run_ctest.cmake
brlcad/branches/extbuild/src/other/ext/stepcode/src/base/
brlcad/branches/extbuild/src/other/ext/stepcode/src/clSchemas/
brlcad/branches/extbuild/src/other/ext/stepcode/src/cldai/
brlcad/branches/extbuild/src/other/ext/stepcode/src/cleditor/
brlcad/branches/extbuild/src/other/ext/stepcode/src/cllazyfile/
brlcad/branches/extbuild/src/other/ext/stepcode/src/clprobe-ui/
brlcad/branches/extbuild/src/other/ext/stepcode/src/clstepcore/
brlcad/branches/extbuild/src/other/ext/stepcode/src/clutils/
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/fedex_main.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2python/
brlcad/branches/extbuild/src/other/ext/stepcode/src/exppp/
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/fedex.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/inithook.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/test/
brlcad/branches/extbuild/src/other/ext/stepcode/src/test/
brlcad/branches/extbuild/src/other/ext/stepcode/test/
Removed Paths:
-------------
brlcad/branches/extbuild/src/other/ext/stepcode/CMake/
brlcad/branches/extbuild/src/other/ext/stepcode/include/stepcode/
brlcad/branches/extbuild/src/other/ext/stepcode/src/CMakeLists.txt
brlcad/branches/extbuild/src/other/ext/stepcode/src/core/
brlcad/branches/extbuild/src/other/ext/stepcode/src/dai/
brlcad/branches/extbuild/src/other/ext/stepcode/src/editor/
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/main.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/sc_getopt.cpp
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/sc_mkdir.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/exppp.c
brlcad/branches/extbuild/src/other/ext/stepcode/src/utils/
Modified: brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/misc/CMake/FindSTEPCODE.cmake 2020-11-10
14:31:00 UTC (rev 77716)
@@ -46,8 +46,25 @@
# module where to look.
# =============================================================================
+# Check that each of the libraries has an expected header,
+# as well as the toplevel defined headers. (TODO - are the
+# latter needed beyond the stepcode build itself? Trim this
+# to the minimum actually needed...)
+set(STEPCODE_HDRS
+ base/sc_benchmark.h
+ cldai/sdaiObject.h
+ cleditor/STEPfile.h
+ clstepcore/sdai.h
+ clutils/gennodearray.h
+ exppp/exppp.h
+ express/express.h
+ sc_cf.h
+ )
+
set(STEPCODE_LIBS
+ base
express
+ exppp
stepcore
stepeditor
stepdai
@@ -56,6 +73,7 @@
set(STEPCODE_EXEC
exp2cxx
+ exppp
)
# Search STEPCODE_ROOT first if it is set.
@@ -67,12 +85,22 @@
# Try each search configuration.
foreach(search ${_STEPCODE_SEARCHES})
- find_path(STEPCODE_INCLUDE_DIR NAMES stepcode/core/sdai.h ${${search}}
PATH_SUFFIXES include)
+ find_path(STEPCODE_BASE_DIR NAMES sc_benchmark.h ${${search}} PATH_SUFFIXES
include include/stepcode/base)
+ find_path(STEPCODE_DAI_DIR NAMES sdaiObject.h ${${search}} PATH_SUFFIXES
include include/stepcode/cldai)
+ find_path(STEPCODE_EDITOR_DIR NAMES STEPfile.h ${${search}} PATH_SUFFIXES
include include/stepcode/cleditor)
+ find_path(STEPCODE_STEPCORE_DIR NAMES sdai.h ${${search}} PATH_SUFFIXES
include include/stepcode/clstepcore)
+ find_path(STEPCODE_UTILS_DIR NAMES gennodearray.h ${${search}} PATH_SUFFIXES
include include/stepcode/clutils)
+ find_path(STEPCODE_EXPPP_DIR NAMES exppp.h ${${search}} PATH_SUFFIXES
include include/stepcode/exppp)
+ find_path(STEPCODE_EXPRESS_DIR NAMES express.h ${${search}} PATH_SUFFIXES
include include/stepcode/express)
+ find_path(STEPCODE_INCLUDE_DIR NAMES sc_cf.h ${${search}} PATH_SUFFIXES
include include/stepcode)
+ #TODO - should be an all-or-nothing for the set...
endforeach()
# Allow STEPCODE_LIBRARY to be set manually, as the location of the netpbm
library
foreach(search ${_STEPCODE_SEARCHES})
+ find_library(STEPCODE_BASE_LIBRARY NAMES base NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
find_library(STEPCODE_EXPRESS_LIBRARY NAMES express NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
+ find_library(STEPCODE_EXPPP_LIBRARY NAMES exppp NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
find_library(STEPCODE_CORE_LIBRARY NAMES stepcore NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
find_library(STEPCODE_EDITOR_LIBRARY NAMES stepeditor NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
find_library(STEPCODE_DAI_LIBRARY NAMES stepdai NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
@@ -83,26 +111,44 @@
# Allow STEPCODE_LIBRARY to be set manually, as the location of the netpbm
library
foreach(search ${_STEPCODE_SEARCHES})
find_program(EXP2CXX_EXECUTABLE exp2cxx ${${search}} PATH_SUFFIXES bin)
+ find_program(EXPPP_EXECUTABLE exppp ${${search}} PATH_SUFFIXES bin)
#TODO - should be an all-or-nothing for the set...
endforeach()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(STEPCODE DEFAULT_MSG
+ STEPCODE_BASE_DIR
+ STEPCODE_DAI_DIR
+ STEPCODE_EDITOR_DIR
+ STEPCODE_STEPCORE_DIR
+ STEPCODE_UTILS_DIR
+ STEPCODE_EXPPP_DIR
+ STEPCODE_EXPRESS_DIR
STEPCODE_INCLUDE_DIR
+ STEPCODE_BASE_LIBRARY
STEPCODE_EXPRESS_LIBRARY
+ STEPCODE_EXPPP_LIBRARY
STEPCODE_CORE_LIBRARY
STEPCODE_EDITOR_LIBRARY
STEPCODE_DAI_LIBRARY
STEPCODE_UTILS_LIBRARY
EXP2CXX_EXECUTABLE
+ EXPPP_EXECUTABLE
)
if (STEPCODE_FOUND)
set(STEPCODE_INCLUDE_DIRS
${STEPCODE_INCLUDE_DIR}
+ ${STEPCODE_BASE_DIR}
+ ${STEPCODE_STEPCORE_DIR}
+ ${STEPCODE_EDITOR_DIR}
+ ${STEPCODE_UTILS_DIR}
+ ${STEPCODE_DAI_DIR}
)
set(STEPCODE_LIBRARIES
+ ${STEPCODE_BASE_LIBRARY}
${STEPCODE_EXPRESS_LIBRARY}
+ ${STEPCODE_EXPPP_LIBRARY}
${STEPCODE_CORE_LIBRARY}
${STEPCODE_EDITOR_LIBRARY}
${STEPCODE_DAI_LIBRARY}
Modified: brlcad/branches/extbuild/src/conv/step/STEPWrapper.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/STEPWrapper.h 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/STEPWrapper.h 2020-11-10
14:31:00 UTC (rev 77716)
@@ -41,11 +41,11 @@
#include <vector>
/* interface headers */
-#include "stepcode/core/sdai.h"
+#include <sdai.h>
-#include "stepcode/core/STEPattribute.h"
-#include "stepcode/core/STEPcomplex.h"
-#include "stepcode/editor/STEPfile.h"
+#include <STEPattribute.h>
+#include <STEPcomplex.h>
+#include <STEPfile.h>
#include <BRLCADWrapper.h>
Modified: brlcad/branches/extbuild/src/conv/step/ap203e2-g/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/ap203e2-g/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/ap203e2-g/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -246,10 +246,10 @@
BU_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND ap203e2g_IMPORTS ${ap203e2g_IMPORTS})
set_property(TARGET step-g APPEND PROPERTY COMPILE_DEFINITIONS
"${ap203e2g_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/ap214-g/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/ap214-g/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/ap214-g/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -248,10 +248,10 @@
BU_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND ap214g_IMPORTS ${ap214g_IMPORTS})
set_property(TARGET step-g APPEND PROPERTY COMPILE_DEFINITIONS
"${ap214g_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/ap242-g/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/ap242-g/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/ap242-g/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -247,10 +247,10 @@
BU_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND ap242g_IMPORTS ${ap242g_IMPORTS})
set_property(TARGET step-g APPEND PROPERTY COMPILE_DEFINITIONS
"${ap242g_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/g-ap203e2/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/g-ap203e2/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/g-ap203e2/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -55,10 +55,10 @@
BN_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND gap203e2_IMPORTS ${gap203e2_IMPORTS})
set_property(TARGET g-step APPEND PROPERTY COMPILE_DEFINITIONS
"${gap203e2_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/g-ap214/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/g-ap214/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/g-ap214/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -56,10 +56,10 @@
BN_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND gap214_IMPORTS ${gap214_IMPORTS})
set_property(TARGET g-ap214 APPEND PROPERTY COMPILE_DEFINITIONS
"${gap214_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/g-ap242/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/g-ap242/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/g-ap242/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -52,10 +52,10 @@
BN_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND gap242_IMPORTS ${gap242_IMPORTS})
set_property(TARGET g-ap242 APPEND PROPERTY COMPILE_DEFINITIONS
"${gap242_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/g-step/AP203.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/g-step/AP203.h 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/g-step/AP203.h 2020-11-10
14:31:00 UTC (rev 77716)
@@ -30,10 +30,10 @@
#include "BRLCADWrapper.h"
#include "STEPWrapper.h"
-#include "stepcode/editor/STEPfile.h"
-#include "stepcode/core/sdai.h"
-#include "stepcode/core/STEPcomplex.h"
-#include "stepcode/core/STEPattribute.h"
+#include "STEPfile.h"
+#include "sdai.h"
+#include "STEPcomplex.h"
+#include "STEPattribute.h"
#include <sstream>
#include <map>
Modified: brlcad/branches/extbuild/src/conv/step/g-step/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/g-step/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/g-step/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -55,10 +55,10 @@
BN_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND gstep_IMPORTS ${gstep_IMPORTS})
set_property(TARGET g-step APPEND PROPERTY COMPILE_DEFINITIONS
"${gstep_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/g-step/g-step.cpp
===================================================================
--- brlcad/branches/extbuild/src/conv/step/g-step/g-step.cpp 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/g-step/g-step.cpp 2020-11-10
14:31:00 UTC (rev 77716)
@@ -36,7 +36,7 @@
#include <iostream>
// step-g related headers
-#include "stepcode/editor/SdaiHeaderSchema.h"
+#include "SdaiHeaderSchema.h"
#include "schema.h"
#include "G_Objects.h"
Modified: brlcad/branches/extbuild/src/conv/step/ifc-g/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/ifc-g/CMakeLists.txt 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/ifc-g/CMakeLists.txt 2020-11-10
14:31:00 UTC (rev 77716)
@@ -40,10 +40,10 @@
BU_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND ifcg_IMPORTS ${ifcg_IMPORTS})
set_property(TARGET ifc-g APPEND PROPERTY COMPILE_DEFINITIONS
"${ifcg_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/step-g/ApplicationContext.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ApplicationContext.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ApplicationContext.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ApplicationContextElement.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ApplicationContextElement.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ApplicationContextElement.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified: brlcad/branches/extbuild/src/conv/step/step-g/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -474,7 +474,7 @@
set_property(TARGET step-g APPEND PROPERTY INCLUDE_DIRECTORIES
"${stepg_SCHEMA_OUT_DIR}")
if(HIDE_INTERNAL_SYMBOLS)
- set(SCIMPORTS STEPCODE_CORE_DLL_IMPORTS STEPCODE_DAI_DLL_IMPORTS
STEPCODE_EDITOR_DLL_IMPORTS STEPCODE_UTILS_DLL_IMPORTS ON_DLL_IMPORTS)
+ set(SCIMPORTS SC_CORE_DLL_IMPORTS SC_DAI_DLL_IMPORTS SC_EDITOR_DLL_IMPORTS
SC_UTILS_DLL_IMPORTS ON_DLL_IMPORTS)
foreach(scp ${SCIMPORTS})
set_property(TARGET step-g APPEND PROPERTY COMPILE_DEFINITIONS "${scp}")
endforeach(scp ${SCIMPORTS})
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/CharacterizedDefinition.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/CharacterizedDefinition.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/CharacterizedDefinition.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
class CharacterizedProductDefinition;
class ProductDefinition;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/CharacterizedProductDefinition.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/CharacterizedProductDefinition.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/CharacterizedProductDefinition.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
class ProductDefinition;
class ProductDefinitionRelationship;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ContextDependentShapeRepresentation.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ContextDependentShapeRepresentation.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ContextDependentShapeRepresentation.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified: brlcad/branches/extbuild/src/conv/step/step-g/GeometricSetSelect.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/GeometricSetSelect.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/GeometricSetSelect.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
class Point;
class Curve;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ItemDefinedTransformation.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ItemDefinedTransformation.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ItemDefinedTransformation.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
#include "Transformation.h"
// forward declaration of class
Modified: brlcad/branches/extbuild/src/conv/step/step-g/OpenNurbsInterfaces.cpp
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/OpenNurbsInterfaces.cpp
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/OpenNurbsInterfaces.cpp
2020-11-10 14:31:00 UTC (rev 77716)
@@ -45,7 +45,7 @@
# pragma clang diagnostic pop
#endif
-#include "core/sdai.h"
+#include "sdai.h"
class SDAI_Application_instance;
/* must come after nist step headers */
Modified: brlcad/branches/extbuild/src/conv/step/step-g/Product.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/Product.h 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/Product.h 2020-11-10
14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified: brlcad/branches/extbuild/src/conv/step/step-g/ProductCategory.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ProductCategory.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ProductCategory.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified: brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinition.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinition.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinition.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionContextAssociation.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionContextAssociation.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionContextAssociation.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionContextRole.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionContextRole.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionContextRole.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionFormation.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionFormation.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionFormation.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionFormationWithSpecifiedSource.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionFormationWithSpecifiedSource.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionFormationWithSpecifiedSource.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
#include "ProductDefinitionFormation.h"
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionRelationship.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionRelationship.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionRelationship.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified: brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionShape.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionShape.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionShape.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
#include "PropertyDefinition.h"
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionWithAssociatedDocuments.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionWithAssociatedDocuments.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ProductDefinitionWithAssociatedDocuments.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
#include "ProductDefinition.h"
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ProductRelatedProductCategory.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ProductRelatedProductCategory.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ProductRelatedProductCategory.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
#include "ProductCategory.h"
Modified: brlcad/branches/extbuild/src/conv/step/step-g/PropertyDefinition.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/PropertyDefinition.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/PropertyDefinition.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/PropertyDefinitionRepresentation.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/PropertyDefinitionRepresentation.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/PropertyDefinitionRepresentation.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified: brlcad/branches/extbuild/src/conv/step/step-g/RepresentationItem.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/RepresentationItem.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/RepresentationItem.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
class ON_Brep;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/RepresentationRelationship.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/RepresentationRelationship.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/RepresentationRelationship.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ON_Brep;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/RepresentationRelationshipWithTransformation.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/RepresentationRelationshipWithTransformation.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/RepresentationRelationshipWithTransformation.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
#include "RepresentationRelationship.h"
// forward declaration of class
Modified: brlcad/branches/extbuild/src/conv/step/step-g/ShapeAspect.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ShapeAspect.h 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ShapeAspect.h 2020-11-10
14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ProductDefinitionShape;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ShapeAspectRelationship.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ShapeAspectRelationship.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ShapeAspectRelationship.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
// forward declaration of class
class ShapeAspect;
Modified: brlcad/branches/extbuild/src/conv/step/step-g/ShapeDefinition.h
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/ShapeDefinition.h
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/ShapeDefinition.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
class ProductDefinitionShape;
class ShapeAspect;
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ShapeDefinitionRepresentation.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ShapeDefinitionRepresentation.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ShapeDefinitionRepresentation.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
#include "PropertyDefinitionRepresentation.h"
// forward declaration of class
Modified:
brlcad/branches/extbuild/src/conv/step/step-g/ShapeRepresentationRelationship.h
===================================================================
---
brlcad/branches/extbuild/src/conv/step/step-g/ShapeRepresentationRelationship.h
2020-11-10 13:55:19 UTC (rev 77715)
+++
brlcad/branches/extbuild/src/conv/step/step-g/ShapeRepresentationRelationship.h
2020-11-10 14:31:00 UTC (rev 77716)
@@ -29,7 +29,7 @@
#include "STEPEntity.h"
-#include "core/sdai.h"
+#include "sdai.h"
#include "RepresentationRelationship.h"
// forward declaration of class
Modified: brlcad/branches/extbuild/src/conv/step/step-g/step-g.cpp
===================================================================
--- brlcad/branches/extbuild/src/conv/step/step-g/step-g.cpp 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/step-g/step-g.cpp 2020-11-10
14:31:00 UTC (rev 77716)
@@ -43,8 +43,8 @@
//
// include NIST step related headers
//
-#include "core/sdai.h"
-#include "editor/STEPfile.h"
+#include <sdai.h>
+#include <STEPfile.h>
#include "Factory.h"
#include "schema.h"
Modified: brlcad/branches/extbuild/src/conv/step/util/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/conv/step/util/CMakeLists.txt 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/util/CMakeLists.txt 2020-11-10
14:31:00 UTC (rev 77716)
@@ -35,10 +35,10 @@
BN_DLL_IMPORTS
RT_DLL_IMPORTS
WDB_DLL_IMPORTS
- STEPCODE_CORE_DLL_IMPORTS
- STEPCODE_DAI_DLL_IMPORTS
- STEPCODE_EDITOR_DLL_IMPORTS
- STEPCODE_UTILS_DLL_IMPORTS
+ SC_CORE_DLL_IMPORTS
+ SC_DAI_DLL_IMPORTS
+ SC_EDITOR_DLL_IMPORTS
+ SC_UTILS_DLL_IMPORTS
)
list(APPEND list_elements_IMPORTS ${list_elements_IMPORTS})
set_property(TARGET list_elements APPEND PROPERTY COMPILE_DEFINITIONS
"${list_elements_IMPORTS}")
Modified: brlcad/branches/extbuild/src/conv/step/util/list_elements.cpp
===================================================================
--- brlcad/branches/extbuild/src/conv/step/util/list_elements.cpp
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/conv/step/util/list_elements.cpp
2020-11-10 14:31:00 UTC (rev 77716)
@@ -18,12 +18,12 @@
#include <iostream>
/* General SCL stuff */
-#include "stepcode/core/ExpDict.h"
-#include "stepcode/editor/STEPfile.h"
-#include "stepcode/core/STEPattribute.h"
-#include "stepcode/core/STEPcomplex.h"
-#include "stepcode/editor/SdaiHeaderSchema.h"
-#include "stepcode/core/sdai.h"
+#include <ExpDict.h>
+#include <STEPfile.h>
+#include <STEPattribute.h>
+#include <STEPcomplex.h>
+#include <SdaiHeaderSchema.h>
+#include <sdai.h>
#include "schema.h"
#include "ap_schema.h"
Modified: brlcad/branches/extbuild/src/other/ext/CMake/FindSTEPCODE.cmake
===================================================================
--- brlcad/branches/extbuild/src/other/ext/CMake/FindSTEPCODE.cmake
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/other/ext/CMake/FindSTEPCODE.cmake
2020-11-10 14:31:00 UTC (rev 77716)
@@ -1,4 +1,4 @@
-# F I N D S T E P C O D E . C M A K E
+# F I N D V D S . C M A K E
# BRL-CAD
#
# Copyright (c) 2013-2020 United States Government as represented by
@@ -35,79 +35,24 @@
###
# - Find STEPCODE
#
+# TODO - this is a stub. Doing this correctly means looking for
+# multiple libraries and headers
+
# The following variables are set:
#
-# STEPCODE_INCLUDE_DIRS - where to find stepcode headers
-# STEPCODE_LIBRARIES - List of libraries when using stepcode.
-# STEPCODE_FOUND - True if stepcode found.
+# STEPCODE_INCLUDE_DIRS - where to find vds.h, etc.
+# STEPCODE_LIBRARIES - List of libraries when using vds.
+# STEPCODE_FOUND - True if vds found.
+find_path(STEPCODE_INCLUDE_DIR stepcode.h)
+find_library(STEPCODE_LIBRARY NAMES stepcode)
-# A user may set ``STEPCODE_ROOT`` to a stepcode installation root to tell this
-# module where to look.
-# =============================================================================
-
-set(STEPCODE_LIBS
- express
- stepcore
- stepeditor
- stepdai
- steputils
- )
-
-set(STEPCODE_EXEC
- exp2cxx
- )
-
-# Search STEPCODE_ROOT first if it is set.
-set(_STEPCODE_SEARCHES)
-if(STEPCODE_ROOT)
- set(_STEPCODE_SEARCH_ROOT PATHS ${STEPCODE_ROOT} NO_DEFAULT_PATH)
- list(APPEND _STEPCODE_SEARCHES _STEPCODE_SEARCH_ROOT)
-endif()
-
-# Try each search configuration.
-foreach(search ${_STEPCODE_SEARCHES})
- find_path(STEPCODE_INCLUDE_DIR NAMES stepcode/core/sdai.h ${${search}}
PATH_SUFFIXES include)
-endforeach()
-
-# Allow STEPCODE_LIBRARY to be set manually, as the location of the netpbm
library
-foreach(search ${_STEPCODE_SEARCHES})
- find_library(STEPCODE_EXPRESS_LIBRARY NAMES express NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
- find_library(STEPCODE_CORE_LIBRARY NAMES stepcore NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
- find_library(STEPCODE_EDITOR_LIBRARY NAMES stepeditor NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
- find_library(STEPCODE_DAI_LIBRARY NAMES stepdai NAMES_PER_DIR ${${search}}
PATH_SUFFIXES lib)
- find_library(STEPCODE_UTILS_LIBRARY NAMES steputils NAMES_PER_DIR
${${search}} PATH_SUFFIXES lib)
- #TODO - should be an all-or-nothing for the set...
-endforeach()
-
-# Allow STEPCODE_LIBRARY to be set manually, as the location of the netpbm
library
-foreach(search ${_STEPCODE_SEARCHES})
- find_program(EXP2CXX_EXECUTABLE exp2cxx ${${search}} PATH_SUFFIXES bin)
- #TODO - should be an all-or-nothing for the set...
-endforeach()
-
include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(STEPCODE DEFAULT_MSG
- STEPCODE_INCLUDE_DIR
- STEPCODE_EXPRESS_LIBRARY
- STEPCODE_CORE_LIBRARY
- STEPCODE_EDITOR_LIBRARY
- STEPCODE_DAI_LIBRARY
- STEPCODE_UTILS_LIBRARY
- EXP2CXX_EXECUTABLE
- )
+find_package_handle_standard_args(STEPCODE DEFAULT_MSG STEPCODE_LIBRARY
STEPCODE_INCLUDE_DIR)
if (STEPCODE_FOUND)
- set(STEPCODE_INCLUDE_DIRS
- ${STEPCODE_INCLUDE_DIR}
- )
- set(STEPCODE_LIBRARIES
- ${STEPCODE_EXPRESS_LIBRARY}
- ${STEPCODE_CORE_LIBRARY}
- ${STEPCODE_EDITOR_LIBRARY}
- ${STEPCODE_DAI_LIBRARY}
- ${STEPCODE_UTILS_LIBRARY}
- )
+ set(STEPCODE_INCLUDE_DIRS ${STEPCODE_INCLUDE_DIR})
+ set(STEPCODE_LIBRARIES ${STEPCODE_LIBRARY})
endif()
# Local Variables:
Modified: brlcad/branches/extbuild/src/other/ext/stepcode/AUTHORS
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/AUTHORS 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/AUTHORS 2020-11-10
14:31:00 UTC (rev 77716)
@@ -1,6 +1,6 @@
-Various authors have contributed to STEPCODE since 2009. Their work is
available at
-https://github.com/stepcode/stepcode
-https://github.com/mpictor/StepClassLibrary
+Various authors have contributed to SCL since 2009. Their work is available at
+https://github.com/mpictor/StepClassLibrary and/or
+http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/step/?view=log
In alphabetical order:
Bertucat, Roch (rbertucat)
Modified: brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt
2020-11-10 13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt
2020-11-10 14:31:00 UTC (rev 77716)
@@ -1,6 +1,8 @@
-# Copyright (c) 2010-2016 United States Government as represented by
-# the U.S. Army Research Laboratory.
+# C M A K E L I S T S . T X T F O R S C L
#
+# This file is Copyright (c) 2010 United States Government as
+# represented by the U.S. Army Research Laboratory.
+#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
@@ -29,73 +31,433 @@
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# ******************************************************************
-# *** stepcode CMakeLists.txt ***
-# ******************************************************************
+# *******************************************************************
+# *** SC's CMakeLists.txt ***
+# *******************************************************************
+# This file contains the top level CMakeLists.txt logic for the
+# SC software package.
+
+project(SC)
+
+# Minimum required version of CMake
cmake_minimum_required(VERSION 3.12)
-project(STEPCODE)
+# install(CODE) uses generator expressions - requires 3.14 or newer.
+# We want it to be on, but until we can bump our minimum requirement
+# set it to OLD to make sure we don't break anything.
+if (POLICY CMP0087)
+ cmake_policy(SET CMP0087 OLD)
+endif (POLICY CMP0087)
-# STEPCODE version
-set(STEPCODE_VERSION_MAJOR 0)
-set(STEPCODE_VERSION_MINOR 8-dev)
-set(STEPCODE_VERSION ${STEPCODE_VERSION_MAJOR}.${STEPCODE_VERSION_MINOR})
+# SC version
+SET(SC_VERSION_MAJOR 0)
+if(NOT SC_IS_SUBBUILD)
+ SET(SC_VERSION_MINOR 7-dev)
+else(NOT SC_IS_SUBBUILD)
+ SET(SC_VERSION_MINOR 7)
+endif(NOT SC_IS_SUBBUILD)
+SET(SC_VERSION ${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-# STEPCODE ABI version. STEPCODE_ABI_SOVERSION should be incremented
+# SC ABI version. SC_ABI_SOVERSION should be incremented
# for each release introducing API incompatibilities
-set(STEPCODE_ABI_SOVERSION 3)
-set(STEPCODE_ABI_VERSION ${STEPCODE_ABI_SOVERSION}.0.0)
+SET(SC_ABI_SOVERSION 2)
+SET(SC_ABI_VERSION ${SC_ABI_SOVERSION}.0.0)
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
+IF( NOT DEFINED INCLUDE_INSTALL_DIR )
+ SET( INCLUDE_INSTALL_DIR include )
+ENDIF( NOT DEFINED INCLUDE_INSTALL_DIR )
-include(Path_Setup)
+IF( NOT DEFINED LIB_INSTALL_DIR )
+ SET( LIB_INSTALL_DIR lib )
+ENDIF( NOT DEFINED LIB_INSTALL_DIR )
-# Require C/C++11
-set(CMAKE_C_EXTENSIONS OFF)
-set(CMAKE_C_STANDARD 11)
-set(CMAKE_C_STANDARD_REQUIRED ON)
-set(CMAKE_CXX_EXTENSIONS OFF)
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
+IF( NOT DEFINED BIN_INSTALL_DIR )
+ SET( BIN_INSTALL_DIR bin )
+ENDIF( NOT DEFINED BIN_INSTALL_DIR )
-include(CheckIncludeFiles)
-check_include_files(ndir.h HAVE_NDIR_H)
-check_include_files(stdarg.h HAVE_STDARG_H)
-check_include_files(sys/stat.h HAVE_SYS_STAT_H)
-check_include_files(sys/param.h HAVE_SYS_PARAM_H)
-check_include_files(sysent.h HAVE_SYSENT_H)
-check_include_files(unistd.h HAVE_UNISTD_H)
-check_include_files(dirent.h HAVE_DIRENT_H)
-check_include_files(stdbool.h HAVE_STDBOOL_H)
-check_include_files(process.h HAVE_PROCESS_H)
-check_include_files(io.h HAVE_IO_H)
+if(NOT DEFINED BIN_DIR)
+ set(BIN_DIR bin)
+endif(NOT DEFINED BIN_DIR)
-include(CheckSymbolExists)
-check_symbol_exists(abs "stdlib.h" HAVE_ABS)
-check_symbol_exists(memcpy "string.h" HAVE_MEMCPY)
-check_symbol_exists(memmove "string.h" HAVE_MEMMOVE)
-check_symbol_exists(getopt "getopt.h" HAVE_GETOPT)
-check_symbol_exists(snprintf "stdio.h" HAVE_SNPRINTF)
-check_symbol_exists(vsnprintf "stdio.h" HAVE_VSNPRINTF)
+if(NOT DEFINED LIB_DIR)
+ set(LIB_DIR lib)
+endif(NOT DEFINED LIB_DIR)
-include(CheckTypeSize)
-check_type_size("ssize_t" SSIZE_T)
+if(NOT DEFINED DATA_DIR)
+ set(DATA_DIR share)
+endif(NOT DEFINED DATA_DIR)
-configure_file(include/stepcode/config.h.in
${CMAKE_CURRENT_BINARY_DIR}/include/stepcode/config.h)
+# Because the STEPcode headers are used in BRL-CAD, we have added some decl
code
+# to the headers for strict c89/c++98. Don't use it for the stepcode build
itself
+add_definitions(-DHAVE_DECL_FSEEKO)
-# Common to all libraries/executables
+IF( NOT DEFINED SC_BUILD_TYPE )
+ SET( SC_BUILD_TYPE "Debug" CACHE STRING "Build type" ) # By default set
debug build
+ENDIF( NOT DEFINED SC_BUILD_TYPE )
+IF(NOT SC_IS_SUBBUILD)
+ SET(CMAKE_BUILD_TYPE ${SC_BUILD_TYPE} CACHE INTERNAL "Build type, immutable"
FORCE )
+ELSE(NOT SC_IS_SUBBUILD)
+ SET(CMAKE_BUILD_TYPE ${SC_BUILD_TYPE} )
+ENDIF(NOT SC_IS_SUBBUILD)
+
+# build shared libs by default
+OPTION(SC_BUILD_SHARED_LIBS "Build shared libs" ON)
+
+# don't build static libs by default
+OPTION(SC_BUILD_STATIC_LIBS "Build static libs" OFF)
+
+OPTION(SC_PYTHON_GENERATOR "Compile exp2python" ON)
+OPTION(SC_CPP_GENERATOR "Compile exp2cxx" ON)
+
+OPTION(SC_MEMMGR_ENABLE_CHECKS "Enable sc_memmgr's memory leak detection" OFF)
+OPTION(SC_TRACE_FPRINTF "Enable extra comments in generated code so the code's
source in exp2cxx may be located" OFF)
+
+if(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS )
+ set( SC_SDAI_ADDITIONAL_EXES_SRCS "" CACHE STRING "Source files for
additional executables to be linked with SDAI libs" )
+endif(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS )
+
+if( NOT DEFINED SC_BUILD_SCHEMAS )
+ message( "** CMake variable SC_BUILD_SCHEMAS not set. Defaults to building
ALL schemas. This will take a while; see
http://stepcode.org/mw/index.php?title=STEPcode_CMake_variables#SC_BUILD_SCHEMAS"
)
+ #this makes SC_BUILD_SCHEMAS show up in cmake-gui
+ SET(SC_BUILD_SCHEMAS "ALL" CACHE string "Semicolon-separated list of paths
to EXPRESS schemas to be built" )
+endif( NOT DEFINED SC_BUILD_SCHEMAS )
+
+# CMake derives much of its functionality from modules, typically
+# stored in one directory - let CMake know where to find them.
+SET(SC_CMAKE_DIR "${SC_SOURCE_DIR}/cmake")
+if(NOT IS_SUBBUILD)
+ SET(CMAKE_MODULE_PATH "${SC_CMAKE_DIR};${CMAKE_MODULE_PATH}")
+else(NOT IS_SUBBUILD)
+ SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${SC_CMAKE_DIR}")
+endif(NOT IS_SUBBUILD)
+
+INCLUDE(${SC_CMAKE_DIR}/SC_Utils.cmake)
+
+# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set
them
+# to "C" so things like date output are as expected
+SET(_orig_lc_all $ENV{LC_ALL})
+SET(_orig_lc_messages $ENV{LC_MESSAGES})
+SET(_orig_lang $ENV{LANG})
+IF(_orig_lc_all)
+ SET(ENV{LC_ALL} C)
+ENDIF(_orig_lc_all)
+IF(_orig_lc_messages)
+ SET(ENV{LC_MESSAGES} C)
+ENDIF(_orig_lc_messages)
+IF(_orig_lang)
+ SET(ENV{LANG} C)
+ENDIF(_orig_lang)
+
+
+#---------------------------------------------------------------------
+# Coverage option
+OPTION( SC_ENABLE_COVERAGE "Enable code coverage test" OFF )
+IF(SC_ENABLE_COVERAGE)
+ SET(SC_ENABLE_TESTING ON CACHE BOOL "Testing enabled by coverage option"
FORCE)
+ # build static libs, better coverage report
+ SET(SC_BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE )
+ SET(SC_BUILD_STATIC_LIBS ON CACHE BOOL "Build static libs" FORCE )
+ SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE
STRING "Extra compile flags required by code coverage" FORCE)
+ SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING
"Extra compile flags required by code coverage" FORCE)
+ SET(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage" CACHE
STRING "Extra linker flags required by code coverage" FORCE)
+ SET(SC_BUILD_TYPE "Debug" CACHE STRING "Build type required by testing
framework" FORCE)
+ SET( SC_PYTHON_GENERATOR OFF ) #won't build with static libs
+ENDIF(SC_ENABLE_COVERAGE)
+
+#---------------------------------------------------------------------
+# Testing option
+OPTION( SC_ENABLE_TESTING "Enable unittesting framework" OFF )
+IF(SC_ENABLE_TESTING)
+ if( NOT DEFINED SC_BUILD_SCHEMAS )
+ set( SC_BUILD_SCHEMAS "ALL" ) #test all schemas, unless otherwise specified
+ endif()
+ INCLUDE(CTest)
+ ENABLE_TESTING()
+ENDIF(SC_ENABLE_TESTING)
+
+#-----------------------------------------------------------------------------
+# Output directories.
+IF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL
"Single output directory for building all libraries.")
+ENDIF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+IF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
+ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL
"Single output directory for building all archives.")
+ENDIF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
+IF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/bin CACHE INTERNAL
"Single output directory for building all executables.")
+ENDIF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+
+FOREACH(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
+ STRING(TOUPPER "${CFG_TYPE}" CFG_TYPE)
+ IF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE})
+ SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib
CACHE INTERNAL "Single output directory for building all libraries.")
+ ENDIF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE})
+ IF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE})
+ SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib
CACHE INTERNAL "Single output directory for building all archives.")
+ ENDIF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE})
+ IF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE})
+ SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/bin
CACHE INTERNAL "Single output directory for building all executables.")
+ ENDIF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE})
+ENDFOREACH()
+
+
+#-----------------------------------------------------------------------------
+# Configure install locations.
+
+# The location in which to install SC. Need a good Debug location
+# for Windows. Only do this if CMAKE_INSTALL_PREFIX hasn't been set
+# already, to try and allow parent builds (if any) some control.
+if(NOT SC_IS_SUBBUILD)
+ IF(NOT WIN32)
+ IF (${CMAKE_BUILD_TYPE} MATCHES "Debug")
+ SET(SC_INSTALL_PREFIX "${SC_SOURCE_DIR}/../sc-install")
+ ELSE()
+ SET(SC_INSTALL_PREFIX "/usr/local")
+ ENDIF()
+ ENDIF(NOT WIN32)
+ SET( SC_INSTALL_PREFIX ${SC_INSTALL_PREFIX} CACHE
+ PATH "Install prefix prepended to target to create install location" )
+ SET( CMAKE_INSTALL_PREFIX ${SC_INSTALL_PREFIX} CACHE INTERNAL "Prefix
prepended to install directories if target destination is not absolute,
immutable" FORCE )
+endif(NOT SC_IS_SUBBUILD)
+
+if(SC_SKIP_EXEC_INSTALL)
+ set(SC_EXEC_NOINSTALL "NO_INSTALL")
+endif(SC_SKIP_EXEC_INSTALL)
+
+OPTION(SC_BUILD_EXPRESS_ONLY "Only build express parser." OFF)
+MARK_AS_ADVANCED(SC_BUILD_EXPRESS_ONLY)
+
+# Take the sc config file template as the starting point for
+# sc_cf.h.in - scripts may need to append to the template, so
+# it is read into memory initially.
+SET(CONFIG_H_FILE ${SC_BINARY_DIR}/include/sc_cf.h.in)
+set_source_files_properties(${CONFIG_H_FILE} PROPERTIES GENERATED TRUE)
+set(CMAKE_CURRENT_PROJECT SC)
+define_property(GLOBAL PROPERTY SC_CONFIG_H_CONTENTS BRIEF_DOCS "config.h.in
contents" FULL_DOCS "config.h.in contents for SC project")
+if(NOT COMMAND CONFIG_H_APPEND)
+ macro(CONFIG_H_APPEND PROJECT_NAME NEW_CONTENTS)
+ if(PROJECT_NAME)
+ get_property(${PROJECT_NAME}_CONFIG_H_CONTENTS GLOBAL PROPERTY
${PROJECT_NAME}_CONFIG_H_CONTENTS)
+ set(${PROJECT_NAME}_CONFIG_H_FILE_CONTENTS
"${${PROJECT_NAME}_CONFIG_H_CONTENTS}${NEW_CONTENTS}")
+ set_property(GLOBAL PROPERTY ${PROJECT_NAME}_CONFIG_H_CONTENTS
"${${PROJECT_NAME}_CONFIG_H_FILE_CONTENTS}")
+ endif(PROJECT_NAME)
+ endmacro(CONFIG_H_APPEND NEW_CONTENTS)
+endif(NOT COMMAND CONFIG_H_APPEND)
+file(READ ${SC_SOURCE_DIR}/include/sc_cf_cmake.h.in CONFIG_H_FILE_CONTENTS)
+CONFIG_H_APPEND(SC "${CONFIG_H_FILE_CONTENTS}")
+
+# The Express parser uses the tools Perplex, RE2C and Lemon to generate code
+# from higher level inputs. Depending on available tools and options, the
+# SC build can either re-generate code as part of the build, or use cached
+# files that are ready for compilation.
+#
+# SC_GENERATE_LEXER_PARSER is the "high level" control a user sets to determine
+# how the SC build will interact (or not) with these tools. AUTO (the
+# default) means it will search for the necessary tools, and use them only if
+# everything is found. If not, it will fall back to the cached versions. If
+# this option is set to ON and the necessary tools are not found, the
+# configure step will fail. If it is set to OFF, SC will not even try to use
+# the generators and will instead use the cached sources.
+if(NOT SC_GENERATE_LEXER_PARSER)
+ set(SC_GENERATE_LEXER_PARSER "AUTO" CACHE STRING "Use Perplex, RE2C and
Lemon to generate C source code.")
+else(NOT SC_GENERATE_LEXER_PARSER)
+ string(TOUPPER "${SC_GENERATE_LEXER_PARSER}" SC_GENERATE_LEXER_PARSER)
+endif(NOT SC_GENERATE_LEXER_PARSER)
+set_property(CACHE SC_GENERATE_LEXER_PARSER PROPERTY STRINGS AUTO ON OFF)
+if (NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "AUTO" AND NOT
"${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON" AND NOT
"${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
+ message(WARNING "Unknown value ${SC_GENERATE_LEXER_PARSER} supplied for
BRLCAD_WORD_SIZE - defaulting to AUTO")
+ message(WARNING "Valid options are AUTO, ON and OFF")
+ set(SC_GENERATE_LEXER_PARSER "AUTO" CACHE STRING "Use Perplex, RE2C and
Lemon to generate C source code.")
+endif (NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "AUTO" AND NOT
"${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON" AND NOT
"${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
+
+# If the generators have not been turned off, we need to check for them
+if(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
+ find_package(LEMON)
+ find_package(RE2C)
+ find_package(PERPLEX)
+ if(LEMON_EXECUTABLE AND LEMON_TEMPLATE AND PERPLEX_EXECUTABLE AND
PERPLEX_TEMPLATE AND RE2C_EXECUTABLE)
+ # Templates may be anywhere - make sure we have a stable path
if a relative
+ # path was specified at CMake time
+ get_filename_component(lemon_template_fpath "${LEMON_TEMPLATE}"
ABSOLUTE)
+ if(NOT "${lemon_template_fpath}" STREQUAL "${LEMON_TEMPLATE}")
+ get_filename_component(LEMON_TEMPLATE
"${CMAKE_BINARY_DIR}/${LEMON_TEMPLATE}" ABSOLUTE)
+ endif(NOT "${lemon_template_fpath}" STREQUAL
"${LEMON_TEMPLATE}")
+ get_filename_component(perplex_template_fpath
"${PERPLEX_TEMPLATE}" ABSOLUTE)
+ if(NOT "${perplex_template_fpath}" STREQUAL
"${PERPLEX_TEMPLATE}")
+ get_filename_component(PERPLEX_TEMPLATE
"${CMAKE_BINARY_DIR}/${PERPLEX_TEMPLATE}" ABSOLUTE)
+ endif(NOT "${perplex_template_fpath}" STREQUAL
"${PERPLEX_TEMPLATE}")
+
+ set(SC_GENERATE_LP_SOURCES 1)
+ else(LEMON_EXECUTABLE AND LEMON_TEMPLATE AND PERPLEX_EXECUTABLE AND
PERPLEX_TEMPLATE AND RE2C_EXECUTABLE)
+ if("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
+ message(FATAL_ERROR "\nSC_GENERATE_LEXER_PARSER set to
ON, but one or more components of the Perplex/RE2C/Lemon toolchain were not
found.\n")
+ else("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
+ set(SC_GENERATE_LP_SOURCES 0)
+ endif("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
+ endif(LEMON_EXECUTABLE AND LEMON_TEMPLATE AND PERPLEX_EXECUTABLE AND
PERPLEX_TEMPLATE AND RE2C_EXECUTABLE)
+else(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
+ set(SC_GENERATE_LP_SOURCES 0)
+endif(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
+
+INCLUDE(CheckLibraryExists)
+INCLUDE(CheckIncludeFile)
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckTypeSize)
+INCLUDE(CMakePushCheckState)
+INCLUDE(CheckCXXSourceRuns)
+
+CHECK_INCLUDE_FILE(ndir.h HAVE_NDIR_H)
+CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
+CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
+CHECK_INCLUDE_FILE(sys/param.h HAVE_SYS_PARAM_H)
+CHECK_INCLUDE_FILE(sysent.h HAVE_SYSENT_H)
+CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
+CHECK_INCLUDE_FILE(stdbool.h HAVE_STDBOOL_H)
+CHECK_INCLUDE_FILE(process.h HAVE_PROCESS_H)
+CHECK_INCLUDE_FILE(io.h HAVE_IO_H)
+
+CHECK_FUNCTION_EXISTS(abs HAVE_ABS)
+CHECK_FUNCTION_EXISTS(memcpy HAVE_MEMCPY)
+CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
+CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT)
+
+CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
+
+set( TEST_STD_THREAD "
+#include <iostream>
+#include <thread>
+void do_work() {
+ std::cout << \"thread\" << std::endl;
+}
+int main() {
+ std::thread t(do_work);
+ t.join();
+}
+" )
+cmake_push_check_state()
+ if( UNIX )
+ set( CMAKE_REQUIRED_FLAGS "-pthread -std=c++0x" )
+ else( UNIX )
+ # vars probably need set for MSVC11, embarcadero, etc
+ endif( UNIX )
+ CHECK_CXX_SOURCE_RUNS( "${TEST_STD_THREAD}" HAVE_STD_THREAD ) #quotes are
*required*!
+cmake_pop_check_state()
+
+# Now that all the tests are done, configure the sc_cf.h file:
+get_property(CONFIG_H_FILE_CONTENTS GLOBAL PROPERTY SC_CONFIG_H_CONTENTS)
+file(WRITE ${CONFIG_H_FILE} "${CONFIG_H_FILE_CONTENTS}")
+configure_file(${CONFIG_H_FILE}
${SC_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_cf.h)
+
+if(NOT SC_IS_SUBBUILD)
+ ################ create sc_version_string.h,
http://stackoverflow.com/questions/3780667
+ # Using 'ver_string' instead of 'sc_version_string.h' is a trick to force the
+ # command to always execute when the custom target is built. It works because
+ # a file by that name never exists.
+ configure_file(${SC_CMAKE_DIR}/sc_version_string.cmake
${SC_BINARY_DIR}/sc_version_string.cmake @ONLY)
+ add_custom_target(version_string ALL DEPENDS ver_string )
+ # creates sc_version_string.h using cmake script
+ add_custom_command(OUTPUT ver_string
${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h
+ COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${SC_SOURCE_DIR}
+ -DBINARY_DIR=${SC_BINARY_DIR}
+ -P ${SC_BINARY_DIR}/sc_version_string.cmake)
+ # sc_version_string.h is a generated file
+
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h
+ PROPERTIES GENERATED TRUE
+ HEADER_FILE_ONLY TRUE )
+ ################
+else(NOT SC_IS_SUBBUILD)
+ set(vstring "
+//sc_version_string.h - written by cmake. Changes will be lost!\n
+#ifndef SC_VERSION_STRING\n
+#define SC_VERSION_STRING\n\n
+const char* sc_version() {\n
+return \"${SC_VERSION}\";\n
+}\n\n
+#endif\n"
+ )
+
+file(WRITE
+ ${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h.tmp
+ "${vstring}")
+execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h.tmp
+ ${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h)
+execute_process(COMMAND ${CMAKE_COMMAND} -E remove
+ ${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h.tmp)
+
+endif(NOT SC_IS_SUBBUILD)
+
+if(MSVC)
+ # add_definitions( -Wall )
+ add_definitions( -D__MSVC__ -D__WIN32__ )
+ # Disable warning for preferred usage of secure functions (example strcpy
should be strcpy_s, ...)
+ add_definitions( -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS )
+elseif(BORLAND)
+ add_definitions( -D__BORLAND__ -D__WIN32__ )
+else()
+ add_definitions( -pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline
-Wno-long-long )
+endif()
+
include_directories(
- ${CMAKE_CURRENT_SOURCE_DIR}/include/stepcode
- ${CMAKE_CURRENT_BINARY_DIR}/include/stepcode
+ ${SC_SOURCE_DIR}/include
+ ${SC_BINARY_DIR}/include
)
-add_subdirectory(src)
+ADD_SUBDIRECTORY(src/base)
+ADD_SUBDIRECTORY(src/express)
+ADD_SUBDIRECTORY(src/exppp)
+ADD_SUBDIRECTORY(src/exp2cxx)
+ADD_SUBDIRECTORY(src/exp2python)
+ADD_SUBDIRECTORY(src/clstepcore)
+ADD_SUBDIRECTORY(src/cleditor)
+ADD_SUBDIRECTORY(src/cldai)
+ADD_SUBDIRECTORY(src/clutils)
+#if( NOT WIN32 ) # don't build cllazyfile on windows until export/import
macros are in place
+# ADD_SUBDIRECTORY( src/cllazyfile )
+#endif( NOT WIN32 )
+ADD_SUBDIRECTORY(include)
+ADD_SUBDIRECTORY(data)
+IF(SC_ENABLE_TESTING)
+ ADD_SUBDIRECTORY( test )
+ENDIF(SC_ENABLE_TESTING)
+ADD_SUBDIRECTORY(doc)
-# Get install rules for headers and data files
-add_subdirectory(include/stepcode)
-add_subdirectory(data)
+# this is for testing - 'make core' builds everything that isn't generated
+add_custom_target( core )
+add_dependencies( core stepdai check-express stepeditor exp2cxx )
+if(NOT SC_IS_SUBBUILD)
+
###############################################################################
+ # SC Packaging
#
+ # $make package
#
+
###############################################################################
+
+ SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "STEPcode")
+ SET(CPACK_SET_DESTDIR "ON")
+
+ SET(CPACK_PACKAGE_VERSION_MAJOR ${SC_VERSION_MAJOR})
+ SET(CPACK_PACKAGE_VERSION_MINOR ${SC_VERSION_MINOR})
+ SET(CPACK_PACKAGE_NAME SC )
+
+ SET(CPACK_PACKAGE_CONTACT "SC Developers <[email protected]>")
+ INCLUDE(CPack)
+
+
########################################################################################
+ # Uninstall code
#
+ # From
http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
#
+ #
######################################################################################
+ configure_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+ IMMEDIATE @ONLY)
+
+ add_custom_target(uninstall
+ COMMAND ${CMAKE_COMMAND} -P
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
+
+endif(NOT SC_IS_SUBBUILD)
+
# Local Variables:
# tab-width: 8
# mode: cmake
Modified: brlcad/branches/extbuild/src/other/ext/stepcode/COPYING
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/COPYING 2020-11-10
13:55:19 UTC (rev 77715)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/COPYING 2020-11-10
14:31:00 UTC (rev 77716)
@@ -1,12 +1,12 @@
-Modifications to the original NIST code are (C)opyright by their
+Modifications to the original NIST code are (C)opyright by their
respective authors. Unless otherwise specified, they are copyright
-on the date those changes were committed to whichever repository
-they were committed to first (i.e. BRL-CAD on SourceForge.net,
+on the date those changes were committed to whichever repository
+they were committed to first (i.e. BRL-CAD on SourceForge.net,
mpictor/StepClassLibrary or stepcode/stepcode on github).
-Modifications which were first committed to the repository on github
+Modifications which were first commited to the repository on github
are licensed under the 3-clause BSD license below. Changes committed
-to BRL-CAD either contain license information mentioning BRL-CAD
+to BRL-CAD either contain license information mentioning BRL-CAD
near the top of the file, or are licensed under the same terms that
NIST used.
@@ -44,23 +44,23 @@
ORIGINAL NIST TEXT FOLLOWS
********************************************************************
-This software was produced by the National Institute of Standards and
-Technology (NIST), an agency of the U.S. government, and by statute is
-not subject to copyright in the United States. Recipients of this
-software assume all responsibility associated with its operation,
+This software was produced by the National Institute of Standards and
+Technology (NIST), an agency of the U.S. government, and by statute is
+not subject to copyright in the United States. Recipients of this
+software assume all responsibility associated with its operation,
modification, maintenance, and subsequent redistribution.
Acknowledgements:
-The STEP Class Library (SCL) was developed by the Manufacturing
-Systems Integration Division at NIST to support testing of the
-Standard for the Exchange of Product Model Data (a.k.a STEP) and
-validation of STEP's emerging implementation specifications. Funding
-for the project has come from the Department of Commerce and the
-Department of Defense agencies including the Office of the Defense
-CALS (Continuous Acquisition and Life-Cycle Support) Executive and
-the Defense Advanced Research Projects Agency (DARPA). Recent
-enhancements were sponsored by the National Information Infrastructure
-Protocols Consortium and NIST's Systems Integration for Manufacturing
+The STEP Class Library (SCL) was developed by the Manufacturing
+Systems Integration Division at NIST to support testing of the
+Standard for the Exchange of Product Model Data (a.k.a STEP) and
+validation of STEP's emerging implementation specifications. Funding
+for the project has come from the Department of Commerce and the
+Department of Defense agencies including the Office of the Defense
+CALS (Continuous Acquisition and Life-Cycle Support) Executive and
+the Defense Advanced Research Projects Agency (DARPA). Recent
+enhancements were sponsored by the National Information Infrastructure
+Protocols Consortium and NIST's Systems Integration for Manufacturing
Applications (SIMA) program.
@@ -67,26 +67,26 @@
/* ********************************************************************
* D I S C L A I M E R
* (February 6, 1992)
- *
+ *
* There is no warranty for the NIST PDES Toolkit.
* If the NIST PDES Toolkit
* is modified by someone else and passed on, NIST wants
* the Toolkit's recipients to know that what they have is not what NIST
* distributed.
- *
+ *
* Policies
- *
- * 1. Anyone may copy and distribute verbatim copies of the NIST PDES Toolkit
+ *
+ * 1. Anyone may copy and distribute verbatim copies of the NIST PDES Toolkit
* source code as received in any medium.
- *
+ *
* 2. Anyone may modify your copy or copies of the NIST PDES Toolkit source
* code or any portion of it, and copy and distribute such modifications
* provided that all modifications are clearly associated with the entity
* that performs the modifications.
- *
+ *
* NO WARRANTY
* ===========
- *
+ *
* NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST PDES TOOLKIT
* IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@@ -94,7 +94,7 @@
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
* WITH YOU. SHOULD ANY PORTION OF THE NIST PDES TOOLKIT PROVE DEFECTIVE,
* YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
- *
+ *
* IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES,
* INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
Copied: brlcad/branches/extbuild/src/other/ext/stepcode/CTestConfig.cmake (from
rev 77700, brlcad/branches/extbuild/src/other/ext/stepcode/CTestConfig.cmake)
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/CTestConfig.cmake
(rev 0)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/CTestConfig.cmake
2020-11-10 14:31:00 UTC (rev 77716)
@@ -0,0 +1,10 @@
+set(CTEST_CUSTOM_WARNING_MATCH ${CTEST_CUSTOM_WARNING_MATCH} "{standard
input}:[0-9][0-9]*: WARNING: ")
+set(CTEST_CUSTOM_ERROR_MATCH ${CTEST_CUSTOM_ERROR_MATCH} "{standard
input}:[0-9][0-9]*: ERROR : ")
+
+set(CTEST_PROJECT_NAME "StepClassLibrary")
+set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
+
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "my.cdash.org")
+set(CTEST_DROP_LOCATION "/submit.php?project=StepClassLibrary")
+set(CTEST_DROP_SITE_CDASH TRUE)
Copied: brlcad/branches/extbuild/src/other/ext/stepcode/ChangeLog (from rev
77700, brlcad/branches/extbuild/src/other/ext/stepcode/ChangeLog)
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/ChangeLog
(rev 0)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/ChangeLog 2020-11-10
14:31:00 UTC (rev 77716)
@@ -0,0 +1,20 @@
+Recent changes are recorded in the publicly available repository:
+http://github.com/stepcode/stepcode
+
+This repo was moved and renamed in May 2012. Previously, it was at
+http://github.com/mpictor/StepClassLibrary
+
+Some are duplicates of changes recorded in the BRL-CAD repo:
+http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/step/?view=log
+
+Pre-BRL-CAD changes:
+************************************************************************
+ Updates from http://www.statik.tu-cottbus.de/fileadmin/project_dth/scl/
+ Jan 2005 - Mar 2006
+************************************************************************
+ STEP Class Library Release 3.2 February 1998
+************************************************************************
+ STEP Class Library Release 3.1 October 1997
+************************************************************************
+ STEP Class Library and Data Probe release 2.1 June 1995
+************************************************************************
Copied: brlcad/branches/extbuild/src/other/ext/stepcode/INSTALL (from rev
77700, brlcad/branches/extbuild/src/other/ext/stepcode/INSTALL)
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/INSTALL
(rev 0)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/INSTALL 2020-11-10
14:31:00 UTC (rev 77716)
@@ -0,0 +1,69 @@
+INSTALL
+
+This file is contains installation instructions for STEPcode.
+
+These installation requires that you have the following software
+available:
+
+- C and C++ compilers (Tested with GCC, MSVC, Embarcadero)
+- CMake (v2.8.7 or greater)
+- mingw (only on Windows)
+- a lexer and parser (i.e. flex, bison) are NOT necessary anymore
+ -if you modify the lexer or parser, you will need LEMON, RE2C, PERPLEX from
BRL-CAD
+
+--------------------
+Installation
+--------------------
+
+* Known to work on Linux, OSX, and Windows
+
+* Build system uses CMake now: configure, Makefile, and all
+ autotools files have been removed, as has mkProbe.
+
+* Building SC from the command prompt:
+ - cd sc
+ - mkdir build
+ - cd build
+ - cmake ..
+ - make
+ - make install # optional
+
+* Building SC from the GUI:
+ - Run cmake-gui, set it to build in sc/build
+ - Select the correct build file generator
+ - Press Configure
+ - Change options as necessary, configuring again afterwards
+ - If there are errors, some options may not be visible until the error
is resolved
+ - Press Generate
+ - Open the main build file using your preferred build tool
+
+* Build options (append to the 'cmake ..' line):
+ -DSC_BUILD_SCHEMAS="path/to/schema.exp;path/to/schema2.exp"
+ - this generates c++ for the schema, and compiles it into a
+ library. Also works with directories, as long as each dir only
+ has one express file.
+ - multiple files/directories are separated by semicolons
+ - this also builds a 'p21read' program, which reads one step file
+ and writes another. It may change whitespace or remove comments;
+ otherwise, the input and output files should be identical. If
+ they are not identical, either the file does not match the
+ schema, or SC generated incorrect source code.
+ -DSC_BUILD_SCHEMAS=ALL
+ - Added to make use of ctest easier. If SC_BUILD_SCHEMAS == ALL,
+ then CMake adds each *.exp file found in data/.
+ -DSC_BUILD_TYPE=Release
+ - this causes binaries to be built without debugging information
+ - without this, cmake defaults to a Debug build
+
+* Using CTest to test SC:
+ - Read the comments in run_ctest.cmake
+ - (OPTIONAL) Create sc/../.SC_CTEST_PREFS.cmake, and set variables
+ in it (this file is required for CDash submission to be enabled)
+ - Run tests with `ctest -S run_ctest.cmake`
+
+* Using CTest to regenerate the schema matrix on the github SC wiki:
+ - Requires:
+ - git
+ - python
+ - a clone of the git repo for the wiki at sc/../wiki-sc
+ - run `ctest -S ctest_matrix.cmake`
Copied: brlcad/branches/extbuild/src/other/ext/stepcode/NEWS (from rev 77700,
brlcad/branches/extbuild/src/other/ext/stepcode/NEWS)
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/NEWS
(rev 0)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/NEWS 2020-11-10
14:31:00 UTC (rev 77716)
@@ -0,0 +1,1060 @@
+STEPcode -- http://github.com/stepcode/stepcode -- http://stepcode.org
+************************************************************************
+Release 0.7 (April, 2013)
+
+New since v0.6:
+* Requires CMake 2.8.7 or later
+* Replace *ALL* references to SCL with SC - CMake, source, filenames.
+* Lazy loading code (src/cllazyfile)
+ * greatly reduces memory requirements and loading time when not all
+ instances are needed
+ * doesn't work with complex instances yet
+ * doesn't work on windows or 32-bit platforms yet
+* Merged all BRL-CAD changes; now, we can work on the same repo.
+ * Eliminate compile-time dependency on a lexer and parser
+ * When lexer/parser changes, use LEMON/RE2C/Perplex (in BRL-CAD repo)
+* Fixed several bugs in the class libraries that cause segfaults
+* update AP209, 210e3, 242, IFC2
+* Fixes for MSVC, Embarcadero (there are still problems with both:
+ see comments on #178 & #190, also import/export macros)
+* Fixed NIST test executables
+************************************************************************
+Release 0.6 (May, 2012)
+
+New since v0.5:
+* Renamed from STEP Class Library to STEPcode, moved to
github.com/stepcode/stepcode
+* Advances in
[Python](http://github.com/stepcode/stepcode/wiki/python-generator) support
(#185)
+* ABI versioning
+* Implement memory manager with reporting of memory that isn't freed,
+ fix many memory leaks (#148, #160, #162, #168)
+* MSVC fixes (> 128 nested if...else - #152), etc
+* Add AP219, AP238, PDM schema, AP203a1, syntax highlighting files
+* Improvements to CMake files, mostly from Cliff @ BRL-CAD (#143, #163, #181)
+* Allow runtime bounds for aggregates (discovered with AP209e2) (#166)
+* exp2cxx fprintf's can be traced with -DSCL_TRACE_FPRINTF=ON (#176)
+************************************************************************
+Release 0.5 (Feb 23, 2012)
+
+New since v0.4:
+* MSVC and Embarcadero support, along with many warning fixes
+* Experimental Python support
+* Now handles most features of EXPRESS - all included schemas,
+ with the exception of AP209 CD, are parsed without error. Enums are
+ now in their own dictionary. Allow indexing on aggregates, generics,
+ and binaries.
+* Changes to exp2cxx that improve the generated c++ - use a
+ namespace, break up large static strings, make EXPRESS multiple
+ inheritance work by not printing multiple copies of inherited members.
+ All schemas now compile without error, but there are numerous warnings.
+* Exchange files: handle all comments, fill in some missing attributes.
+* More cleanup of source code, more documentation in scl/doc
+* Special thanks to @davyw and @tpaviot for their large contributions
+ (MSVC and Python, respectively)
+************************************************************************
+Release 0.4 (Nov 13, 2011)
+
+New since v0.3:
+* Improve p21read performance by ~30%
+* Improve exp2cxx performance by ~4300% (!)
+* A variable defined in a LOCAL is not required to have a type label
+ (affected ap242,210e3,209)
+* Enums and entities are allowed to have the same names
+ (affected ap242,210e3,209)
+* Remove the SCLP23 macro
+http://github.com/stepcode/stepcode/wiki/changelog-v0.4
+************************************************************************
+
+Release 0.3 (Oct 29, 2011)
+
+What's new since v0.2?
+
+* Start using CTest
+* Add a number of schemas, update IFC2X4 to RC3, update AP235 to TC
+* Update the exchange file header schema to edition two; drop support
+ for N279 files
+* In p21read, check that the schema name for the file and library match
+* Fix bug with exchange files that contain strings ending in 'S'
+************************************************************************
+
+Release 0.2 (Oct 1, 2011)
+
+What's new since v0.1?
+
+* Retrieve aggregate type from the underlying type (issue #4)
+* Fix aggregate select types naming convention in exp2cxx (issue #59)
+* Fix several segfaults and double free's in p21read (issue #63)
+* Fix several file read/write bugs in p21read, including
+ * don't write '$' for empty string
+ * 'abc\S\'def' is a valid string (issue #57)
+* Improve p21read execution time
+* Cleanup many files and delete src/clivfasd (but much more to do!) (issue #66)
+* Add BNF files, schemas, and CAX-IF Part 21 files
+
+For a detailed list of changes, see
+https://github.com/stepcode/stepcode/wiki/changelog-v0.2
+
+For a list of closed issues, see
+https://github.com/stepcode/stepcode/issues?state=closed&milestone=2
+
+************************************************************************
+
+Release 0.1 (Sept 2011)
+
+What's new since the SCL 3.2 release in 1998?
+===========
+* CMake build system replaces the configure script, Makefiles, and bash
+ scripts that were used by NIST. CMake is far easier to maintain and is
+ cross-platform.
+* Support for formats that are no longer in the STEP standard
+ (ObjectStore, CORBA) has been disabled.
+* Fix some bugs that were found when testing SCL with modern schemas,
+ including spaces inserted into function names and use of outdated
+ functions
+* Bring SCL closer to alignment with modern coding standards - replace
+ String class with std::string, fix all GCC warnings
+* Builds on Linux, OSX, and Windows; requires mingw on Windows.
+* Add debugging option -d 9 -l nnn -u nnn to exp2cxx. This limits
+ parser debug output to a specified range of lines in the schema.
+
+For a detailed list of changes, see
+https://github.com/stepcode/stepcode/wiki/changelog-v0.1
+
+For a list of closed issues, see
+https://github.com/stepcode/stepcode/issues?state=closed&milestone=1
+
+Pre-BRL-CAD changes:
+* Patches from http://www.statik.tu-cottbus.de/fileadmin/project_dth/scl/
+ Jan 2005 - Mar 2006
+* STEP Class Library Release 3.2 February 1998
+* STEP Class Library Release 3.1 October 1997
+* STEP Class Library and Data Probe release 2.1 June 1995
+
+
+************************************************************************
+************************************************************************
+ --Original NEWS file follows--
+************************************************************************
+************************************************************************
+ Updates from http://www.statik.tu-cottbus.de/fileadmin/project_dth/scl/
+ Jan 2005 - Mar 2006
+
+The original SCL source distribution could not be cleanly un-archived
+on case-insensitive file systems like Windows' NTFS because of a name
+conflict.
+
+SCL is mainly written in C++, but it also contains C sources, lex and
+yacc sources (compatible to flex and bison) and csh and sh scripts.
+The C++ sources, written in the 1990s, are not fully compliant to
+ANSI/ISO C++. Updates have been made to base parts of SCL to ANSI/ISO
+C++ (only the SPF interface, not the complete database system
+interfaces or the dataprobe GUI). Some problems were also addresses
+with newer UNIX-like systems.
+
+There were also some issues with the configure script and some
+makefiles which are addressed, as well as a new macro that is at
+least required for gcc.
+
+Remaing problem: The p21 file scanner of SCL currently
+does not allow for comments within the parameter list of
+data records. Only comments outside of data records are
+accepted.
+
+ DISCLAIMER: Use at your own risk. These patches are
+ incomplete, may be incorrect, and are not endorsed
+ by NIST.
+
+************************************************************************
+
+ What's New in the STEP Class Library Release 3.2
+ February 1998
+
+
+mkProbe now prints a usage message showing allowable command line
+arguments when it is run without arguments.
+
+Extended the EXPRESS Pretty Printer:
+
+- added command line options -a and -A to the exppp executable to
+specify that the output should be alphabetized. Without the -a option
+the order of the TYPEs and entities in the original EXPRESS is
+preserved when pretty printing an EXPRESS file.
+
+- Fixed a bug in the exppp toolkit where it would crash when handling
+PROCEDUREs in EXPRESS.
+
+- Extended the NIST Pretty Printer Toolkit to provide string and
+buffer representations for EXPRESS USE and REFERENCE statements, and
+for providing access to the EXPRESS SUPERTYPE statements.
+
+Extended the STEP Class Library Toolkit capabilities including:
+
+- adding additional dictionary constructs for representing EXPRESS:
+SUPERTYPE statements, WHERE rules within entities, USE FROM clauses,
+REFERENCE FROM clauses, global rules, PROCEDUREs, and
+FUNCTIONS. Information about these objects is available but validation
+based on it is not performed.
+
+- enhanced exp2cxx C++ code generator to generate the necessary
+dictionary objects for the above EXPRESS constructs for a particular
+schema. Also enhanced schema dictionary code generation to add
+information necessary to generate an EXPRESS schema (i.e. which
+entities, types, global rules, USE and REFERENCE statements, etc are
+associated with which EXPRESS schema dictionary object).
+
+- added capability to generate EXPRESS from the above dictionary
+constructs (e.g. USE, REFERENCE, global rules, functions, procedures,
+etc.) and the existing dictionary constructs for EXPRESS schemas,
+types, entities, and attributes.
+
+- Fixed a bug in the casting functions for the classes handling
+instances of SELECT TYPEs in EXPRESS.
+e.g.
+SdaiMeasure_value::operator SDAI_Real)(
+{
+// was missing stmts such as these...
+ if( CurrentUnderlyingType () == config_control_designt_area_measure )
+ return _real;
+ if( CurrentUnderlyingType () ==
config_control_designt_context_dependent_measure )
+ return _real;
+}
+
+- Fixed an aggregate element TypeDescriptor (TD) pointer problem in
+the dictionary. The TD pointer in the aggregate dictionary entry is
+supposed to point at the TD representing the element type for the
+aggregate. It pointed at the underlying or base type's TD (e.g. the TD
+for STRING) instead of for the type which was specified in the EXPRESS.
+For example where it should have pointed at a TD for a TYPE label -
+where label is defined as TYPE label = STRING; END_TYPE - it pointed
+at the TD for STRING. The TD for the aggregate element now points at
+the TD for label.
+
+- Fixed the casting operator for the class representing EXPRESS
+enumeration types. It was returning the last element of the enum type
+as the the default when the enum was unset. This choice predated enums
+having an unset enum value. It now returns <enum_name>_unset as the
+default when the enum is unset.
+
+- cleaned up a bit of leaked memory. The memory leaked was mostly
+handles to static memory.
+
+- sdaiString not reading a value '' properly.
+
+- sdaiString copy constructor mixing up undefined and unset values.
+
+- dictionary objects handling and writing WHERE rule and UNIQUE rule
+comments in EXPRESS. Added a data member
+
+ SCLstring _comment; // Comment contained in the EXPRESS.
+
+to classes Where_rule and Uniqueness_rule. Also they have functions:
+
+ SCLstring comment_() const { return _comment; }
+ void comment_(const char* c) { _comment = c; }
+
+to manipulate them. When writing EXPRESS for entities and types the
+keywords WHERE and UNIQUE are only written if there are actual
+rules. If there are only comments the keywords are written as a
+comment.
+
+**********************************************************************
+
+ What's New in the STEP Class Library Release 3.1
+ October 1997
+
+The following is a list of enhancements which are found in the version
+3.1 release of the SCL and Data Probe. It assumes you are familiar
+with EXPRESS (ISO 10303-11). Familiarity with version 2.1 or higher
+is a big plus.
+
+-------------------
+Easier Installation
+-------------------
+
+We created a script called configure using gnu's autoconf software.
+The configure script is used to install the SCL release. Configure
+automates the editing of multiple SCL files based on site-specific
+information needed for installation. It performs checks against the
+software and operating system environment to create a header file used
+by SCL to handle commonly known software porting problem areas.
+Finally, it builds all the SCL executables, scripts, and libraries.
+
+Configure requires one command line argument specifying a name which
+is used to create a directory. Configure installs the architecture and
+environment specific SCL executables, scripts, libraries, and object
+code is under this directory.
+
+Configure accepts optional command line arguments to install the SCL
+for use with optional software packages (like Orbix and/or
+ObjectStore) and for use with different compilers on different
+operating systems and/or machine architectures. Configure may be
+executed several times to create several SCL builds under separate
+architecture/environment specific directories. Each of these
+directories is based on the same source code directory to minimize
+space requirements. This is possible because the SCL source code was
+created with preprocessor switches which allows the same source code
+to be built for different purposes. Separate builds are also necessary
+to use SCL with different C++ compilers since C++ object code is not
+compatible between C++ compilers.
+
+-----------------------------------------------------
+Alignment with the C++ Binding (ISO 10303-23) to the Standard Data
+Access Interface (SDAI, ISO 10303-22)
+-----------------------------------------------------
+
+SCL has been better aligned with the C++ binding (ISO 10303-23,
+a.k.a. STEP Part 23) to SDAI. This has involved several name changes
+for classes implementing base EXPRESS types and application-schema
+defined EXPRESS types. The name changes were possible since these
+types and classes have been moved to be encapsulated by a namespace
+implemented via a struct definition. The namespace has been defined in
+a way that offers great flexibility in avoiding name conflict with
+other software packages (like X Windows, CORBA implementations, etc)
+and your application code. The namespace name is easily changed if
+necessary. As a result of adding a namespace a noticeable difference
+in SCL use has occurred.
+
+Use of underlying SCL classes and types are now wrapped in macros that
+are defined in the file sclprefixes.h. This file is installed under
+the arch directory which allows it to be adjusted as necessary for
+each SCL software installation. For example, if a compiler or software
+package has a problem handling the namespace mechanism via a struct
+definition alternate macros can be used from the sclprefixes.h file
+bypassing the namespace altogether. If a name conflict occurs when the
+namespace is turned off macros can be used that add a name prefix to
+SCL types and classes. Use of the macros when using SCL types and
+classes is what allows for the flexibility in dealing with problem
+areas when using SCL with other software.
+
+An example of a name change and macro use: sdaiString has now become
+SDAI_String which could translate to SDAI::String or SDAI_String
+(depending on whether you use the SDAI namespace or not) or any other
+namespace or prefix as is necessary. To change the SDAI namespace name
+or prefix name the macro definition for SDAI_ could be changed in
+the sclprefixes.h file.
+
+The early bound access functions that are generated by exp2cxx from
+EXPRESS defined entities have been updated to the latest version of
+Part 23's C++ binding to SDAI. A previous early bound function defined
+as "const SdaiLabel Name()" would now be defined according to Part 23 as
+"const SdaiLabel name_()". *notice* that application schema defined
+types are not yet defined in a namespace. Compatibility with previous
+versions of SCL early bound functions has been maintained via the -a
+exp2cxx option.
+
+-----------------------------------------------------
+SDAI Session Schema objects implemented (model_contents, extents, etc)
+-----------------------------------------------------
+
+Several classes and types defined as part of SDAI Part 23's Session
+Schema have been implemented (where before they mostly had stub
+functions). These have been implemented for use with or without the
+ObjectStore object oriented database. Model_contents_<schema_name> is
+now being generated by exp2cxx allowing Entity_extents to be
+maintained for entities as desired.
+
+-----------------------------------------------------
+Object Oriented Database Capability Using ObjectStore
+-----------------------------------------------------
+
+SCL has been enhanced to optionally use the object oriented database
+ObjectStore from ODI. The INSTALL file describes how to build the SCL
+libraries for use with ObjectStore. The SCL libraries built for use
+with ObjectStore may then be used to create persistent or transient
+SCL objects. The transient objects use the ObjectStore transient
+database.
+
+The SCL application, fedex_os, uses an application schema written in
+EXPRESS to generate additional code needed for use with ObjectStore.
+Fedex_os is used in conjunction with exp2cxx for generating the C++
+necessary to implement your application schema.
+
+Although building SCL libraries for use with ObjectStore is
+documented, instructions for building your application with SCL
+libraries and ObjectStore is as of yet undocumented. The undocumented
+steps for building an SCL/ObjectStore application are the steps
+required to build any ObjectStore application. A person familiar with
+building ObjectStore applications should be able to create a Makefile
+able to perform these necessary steps.
+
+A good starting point for creating a Makefile suitable for building an
+SCL/ObjectStore application would be the Makefile generated using the
+mkProbe script. The configure script (executed with the ObjectStore
+options) generates a make_rules file which contains the necessary
+Makefile macros for using ObjectStore. The mkProbe generated Makefile
+already includes this make_rules file. The Makefile is set up to build
+a simple application which uses the appropriate SCL and ObjectStore
+libraries. The Makefile rules for building this application could be
+used as a starting point for creating Makefile rules to build your own
+SCL/ObjectStore application. (The example application code is not set
+up to use ObjectStore.) Additional steps would need to be added to run
+the ObjectStore schema generator (ossg), link with the additional
+application-specific ObjectStore object files, run os_postlink, etc.
+
+-------------------------------------------------------
+Use of Orbix with SCL for Developing CORBA Applications
+-------------------------------------------------------
+
+SCL has been enhanced to be able to use Orbix for developing SCL
+applications for use within the Common Object Request Broker
+Architecture (CORBA). CORBA is used to provide an architecture for use
+of objects within a distributed environment. Distributed communication
+occurs by client applications communicating with servers through
+Object Request Brokers (ORBs). Clients may be written to use any
+number of programming languages provided the CORBA software vendor
+(Orbix in this case) supports the language. We have only tested
+clients written using C++. We may soon test JAVA clients.
+
+The SCL application, fedex_idl, is used to create an Interface
+Definition Language (IDL) schema from your application's EXPRESS
+schema. The generation of IDL schemas by fedex_idl is according to
+STEP's Part 26 Interface Definition Language binding to the SDAI. The
+Orbix IDL compiler is then used to generate the client and server code
+necessary for communication through an Orbix ORB. The SCL application,
+exp2cxx, would then be run with the -c option on your application's
+EXPRESS schema to generate the server implementation objects required
+to build an Orbix server (it uses the TIE approach). You would be
+required to write the C++ main() function for the server code.
+
+Although building SCL libraries for use with Orbix is documented,
+instructions for building your application with SCL libraries and
+Orbix is as of yet undocumented. The undocumented steps for building
+an SCL/Orbix application are the steps required to build any Orbix
+application. A person familiar with building Orbix applications should
+be able to create a Makefile able to perform these necessary steps.
+
+A good starting point for creating a Makefile suitable for building an
+SCL/Orbix application would be the Makefile generated using the
+mkProbe script. The configure script (executed with the Orbix options)
+generates a make_rules file which contains the necessary Makefile
+macros for using Orbix. The mkProbe generated Makefile already
+includes this make_rules file. The Makefile is set up to build a
+simple application which uses the appropriate SCL and Orbix
+libraries. The Makefile rules for building this application could be
+used as a starting point for creating Makefile rules to build your own
+SCL/Orbix application. (The example application code is not set up to
+use Orbix.) Additional steps would need to be added to build the
+additional server code you would need to write, register the server
+with Orbix, build and link with the IDL compiler generated code, etc.
+
+-----------------------------------------------------
+Use of Orbix and ObjectStore with SCL
+-----------------------------------------------------
+
+SCL has been enhanced to be able to be used with Orbix and ObjectStore
+providing a persistent server for use within a distributed CORBA
+environment. We have used SCL in this way for two NIST projects: the
+National Industrial Information Infrastructure Protocols project and
+the National Advanced Manufacturing Testbed Framework project.
+
+Once again, although building the SCL libraries for use with Orbix and
+ObjectStore is documented (via installation using the configure
+script), instructions for building your application to use Orbix and
+ObjectStore is as of yet undocumented. See the previous two sections.
+
+-----------------------
+MULTIPLE SCHEMA SUPPORT
+-----------------------
+
+A library and Data Probe can now be generated for an EXPRESS file
+containing multiple schemas. This is done primarily by dividing the
+source code generated by exp2cxx into separate files. Separate
+files are generated for each schema contained in the EXPRESS file. In
+addition, often schemas are dependent on one another. This will be
+the case if the schemas use and reference entities and types from each
+other. If, for example, entity X in schema A is a subtype of entity Y
+in schema B, X will not be processed until B in schema Y is processed.
+Other such cases of interdependence occur if an entity in schema A
+contains as an attribute an enumeration or select type defined in
+another schema. To address such cases, exp2cxx may process a
+schema in multiple passes. At each pass, only the objects in the
+schema which are not dependent on not-yet-processed objects in other
+schemas are processed. At each successive pass through the schemas as
+more and more objects are processed, more and more dependent entities
+will become processable. Certain schemas may require three passes or
+more in cases of chains of dependence (such as A being a supertype of
+B which is a supertype of C, etc.).
+
+For an EXPRESS file with multiple dependent schemas, it is advisable
+to organize the file with bottom-up design. Schemas containing the
+simpler, building block types and entities should appear first. By
+doing so, when exp2cxx begins processing the more complex schemas,
+there will be fewer cases in which the parser will encounter not-yet-
+defined objects from other schemas. (The objects which are referenced
+the most will have already been defined.) This will minimize the
+number of times exp2cxx is required to divide output files.
+
+One known case of interdependence which exp2cxx is not able to
+support occurs if say select A has select B as an item, and select B
+has select A as an item. (This is unsupported even if A and B are in
+the same schema.) exp2cxx has no way in which it can generate
+compilable source code for the selects because each is dependent on
+the other. In addition, this would cause the parser to fall into an
+endless loop, so we strongly discourage it. ;-)
+
+------------------------------
+USE / REFERENCE CLAUSE SUPPORT
+------------------------------
+
+The SCL also partially supports the EXPRESS concepts of USE and
+REFERENCE. According to the rules of EXPRESS, schema A may reference
+objects from schema B by way of a USE or REFERENCE clause (U/R). Any
+object which is not U/R'ed from schema A to B, directly or indirectly,
+is not visible to B. The SCL does not support the hiding of objects
+between schemas. Basically, an object defined anywhere in the SCL is
+visible everywhere else. What is supported is renamings of objects
+between schemas. Say schema B uses entity X from schema A and renames
+it to Y (i.e., "USE from A (X as Y);"). If a Part 21 file is read in
+or written out using the SCL or the Data Probe, if the "current"
+schema is defined to be B, the renamings defined by B's U/R statements
+will be used. The "current" schema is set according to the first
+schema listed in the FILE_SCHEMA section of the Part 21 file's header
+section. (It is assumed that I/O is being done with the SCL's
+STEPfile object.) If no current schema is defined, all possible
+entity and type names are recognized in file reading, and the original
+names only are used in writing.
+
+As mentioned above, the SCL does not support the hiding of objects of
+say, schema A, which are not U/R'ed by schema B. Thus, it's possible
+to use the SCL or Data Probe to read or write a Part 21 file in which
+A is the current schema and which contains instances of entities which
+are not U/R'ed by A. This will not be flagged as an error.
+
+The U/R clause is more poorly supported by the Data Probe. When the
+Probe displays instances of entities, only their original names are
+displayed. (This also applies when an entity has a select attribute
+and the current choice of the select is being displayed by name. For
+example, if a select is set to HEIGHT(35), the original name of
+`HEIGHT' is displayed even if we're in schema B which renames HEIGHT
+to LENGTH.) When a user is using a <<step entity editor window>> to
+create an instance of an entity, all possible names for a type are
+recognized. This includes the original object name plus all names
+given to it by other U/R'ing schemas, regardless of the current
+schema.
+
+Another shortcoming with the U/R support is related to the fact that
+the SCL does not allow objects of the same name in different schemas.
+For this reason, U/R support is also limited to cases where the new
+name is unique within the entire EXPRESS file.
+
+Lastly, the U/R support is unable to deal with aggregate types of
+two or more dimensions. Say we were attempting to instantiate a 2D
+aggregate of selects. Type names will appear in the inner select
+instantiations, and they should be set according to the current
+schema. However, since the SCL currently does not fully support
+higher-dimension aggregates (it uses the SCLundefined class and
+considers the entire instantiation a string), it's impossible to
+verify the values within the aggregate instance.
+
+----------------------
+COMPLEX ENTITY SUPPORT
+----------------------
+
+By complex entity, I mean ones which require external mapping (see Part 21,
+section 11.2.5).
+
+New Features
+------------
+(I really think the structures and functions I used to support this
+are a recursive work of art. Too bad it's all invisible to the user.)
+
+1. The primary enhancement now included is the checking of the
+legality of complex entities. If a user attempts to initialize a
+complex entity (class STEPcomplex), the SCL will determine, based on
+the supertype and subtype information of the EXPRESS, if the entity
+represents a legal combination of entities. If not, an error message
+will be issued, and a complex entity will not be created. Formerly,
+the SCL would only check if the entity names themselves were valid and
+not worry about the combination.
+
+2. Non-independent entities cannot be instantiated. These are
+entities which cannot be created without external mapping. Say we
+have,
+
+ENTITY A SUPERTYPE OF (B AND C);
+
+The SCL would not accept an instantiation statement such as,
+
+#11=C(xx,yy,...);
+
+C requires external mapping since it can only exist together with B,
+in a statement such as,
+
+#11=(A(...)B(...)C(...));
+
+If a user attempts to create a C with internal mapping using the
+STEPfile object (the class which handles all reading and writing of
+Part 21 files within the SCL), an entity will not be created and an
+error message will be issued. The SCL behaves similarly if a user
+attempts to create an instance of an abstract supertype.
+
+The above behavior is also reflected in the Data Probe. All entities
+which are abstract supertypes are marked with an `*' (as in SCL vn.
+2.1). Entities which cannot be instatiated without external mapping
+are marked with a `%'. Neither can be created using the Data Probe.
+(The Probe does not have the capability of creating complex entities,
+see below, next section.)
+
+(Note: A user can instantiate an entity such as C from the STEPentity
+level, bypassing STEPfile. STEPentity will allow the initialization
+but will place a warning in its errorDesc field.)
+
+3. exp2cxx may be compiled with the flag COMPLEX_INFO. If this
+flag is turned on, exp2cxx prints out (to `cout') a large amount of
+detail on the complex entities it finds and their overall structure.
+This is useful to see how fedex interpreted the complex information of
+an EXPRESS file, and to get a simple graphical view of the supertype-
+subtype hierarchy of the file.
+
+exp2cxx's makefile contains the commented-out line,
+
+#USER_DEFS = -DCOMPLEX_INFO
+
+If this line is uncommented, a exp2cxx executable will be built
+which prints such information.
+
+Limitations
+-----------
+
+1. As in multi-schema support (above), complex entity (CE) support is
+not completely reflected in the Data Probe. This may be seen in a
+number of instances (you can skip this if you don't intend to use the
+Probe):
+
+(a) It's impossible to create an instance of a CE using the Data
+Probe. (See point #2 under "Complex Entity Support").
+
+(b) The Data Probe is able to correctly read a CE from a Part 21 file,
+and place a copy of it in the Entity Instance List Window. It also
+allows the user to edit the values of the entity's attributes by
+selecting the entity (from the Ent Instance List Win) and creating a
+STEP Entity Editor Window. The Data Probe, however, does not accu-
+rately display the type information of the CE (in the Type Information
+Window). What it does do is takes the name of the 1st entity in the
+list (CE entity names are displayed alphabetically) and shows the type
+info for that entity.
+
+2. The SCL does not read partial complex instances. Generally, if a
+single entity-member of a complex entity has an error, the entire rest
+of the complex entity will be skipped.
+
+3. If entity members of a complex entity have been renamed (through
+the EXPRESS USE/REF clause - see previous section), they are read and
+written properly. However, the SCL may not write the members of the
+CE in alphabetical order (as required by Part 21, sect 11.2.5.3). The
+individual entities are sorted according to their original names. If
+the renaming of an individual entity places it out of order, the nodes
+will be printed out of order.
+
+4. "Diamond inheritance" is not handled automatically and must be
+fixed by hand in the code generated by exp2cxx. (See
+whatsnew.2-1.txt, section "Multiple Inheritance".)
+
+5. Selects between aggregates: A select containing two aggregate
+choices of the same type (e.g., ARRAY and ARRAY, as opposed to ARRAY
+and SET) will cause exp2cxx to generate code which cannot be
+compiled.
+
+6. Problem with sparcworks compiler version 4.0(?) - operator int() =
+op enum(). This happens in the following case... Both functions,
+however, are required by Part 23. We fixed this by removing enough
+functions for it to build. We were not sure if this error is the fault
+of the sparcworks compiler or is a problem with the standard.
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!DISCLAIMERS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Names of companies and products are provided in order to adequately
+specify procedures and equipment used. In no case does such
+identification imply recommendation or endorsement by the National
+Institute of Standards and Technology, nor does it imply that the
+products are necessarily the best available for the purpose.
+
+NO WARRANTY
+===========
+
+NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST STEP TOOLKIT
+IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
+WITH YOU. SHOULD ANY PORTION OF THE NIST STEP TOOLKIT PROVE DEFECTIVE,
+YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
+
+IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES, INCLUDING ANY LOST
+PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE (INCLUDING BUT NOT
+LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE, OR LOSSES
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits