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

Reply via email to