Revision: 77885
          http://sourceforge.net/p/brlcad/code/77885
Author:   starseeker
Date:     2020-12-03 03:32:53 +0000 (Thu, 03 Dec 2020)
Log Message:
-----------
Back to vanilla

Modified Paths:
--------------
    brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt
    
brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_CXX_schema_macros.cmake
    brlcad/branches/extbuild/src/other/ext/stepcode/src/base/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode/src/cldai/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode/src/cleditor/CMakeLists.txt
    
brlcad/branches/extbuild/src/other/ext/stepcode/src/cllazyfile/CMakeLists.txt
    
brlcad/branches/extbuild/src/other/ext/stepcode/src/clstepcore/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode/src/clutils/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/CMakeLists.txt
    
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2python/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode/src/exppp/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode/src/express/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode.dist

Added Paths:
-----------
    brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_Targets.cmake
    
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/CMakeLists.txt

Modified: brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt      
2020-12-03 02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt      
2020-12-03 03:32:53 UTC (rev 77885)
@@ -69,6 +69,9 @@
 # testing and compilation options, build output dirs, install dirs, uninstall, 
package creation, etc
 include(${SC_CMAKE_DIR}/SC_Build_opts.cmake)
 
+# SC_ADDEXEC and SC_ADDLIB macros, dllimport/export, etc
+include(${SC_CMAKE_DIR}/SC_Targets.cmake)
+
 # Macros related to paths
 include(${SC_CMAKE_DIR}/SC_Paths.cmake)
 

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_CXX_schema_macros.cmake
===================================================================
--- 
brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_CXX_schema_macros.cmake
    2020-12-03 02:57:23 UTC (rev 77884)
+++ 
brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_CXX_schema_macros.cmake
    2020-12-03 03:32:53 UTC (rev 77885)
@@ -27,18 +27,20 @@
 # create p21read_sdai_*, lazy_sdai_*, any exes listed in 
SC_SDAI_ADDITIONAL_EXES_SRCS
 macro(SCHEMA_EXES)
   RELATIVE_PATH_TO_TOPLEVEL(${CMAKE_CURRENT_SOURCE_DIR} 
RELATIVE_PATH_COMPONENT)
-  add_executable(p21read_${PROJECT_NAME} 
"${RELATIVE_PATH_COMPONENT}/src/test/p21read/p21read.cc")
-  target_link_libraries(p21read_${PROJECT_NAME} ${PROJECT_NAME} stepdai 
stepcore stepeditor steputils base)
+  SC_ADDEXEC(p21read_${PROJECT_NAME} SOURCES 
"${RELATIVE_PATH_COMPONENT}/src/test/p21read/p21read.cc" LINK_LIBRARIES 
${PROJECT_NAME} stepdai stepcore stepeditor steputils base TESTABLE)
+  #add_dependencies(p21read_${PROJECT_NAME} version_string)
   if(NOT WIN32)
-    add_executable(lazy_${PROJECT_NAME} 
"${RELATIVE_PATH_COMPONENT}/src/cllazyfile/lazy_test.cc")
-    target_link_libraries(lazy_${PROJECT_NAME} ${PROJECT_NAME} steplazyfile 
stepdai stepcore stepeditor steputils base)
+    SC_ADDEXEC(lazy_${PROJECT_NAME} SOURCES 
"${RELATIVE_PATH_COMPONENT}/src/cllazyfile/lazy_test.cc" LINK_LIBRARIES 
${PROJECT_NAME} steplazyfile stepdai stepcore stepeditor steputils base 
TESTABLE)
+    #add_dependencies(lazy_${PROJECT_NAME} version_string)
   endif(NOT WIN32)
 
   #add user-defined executables
   foreach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
     get_filename_component(name ${src} NAME_WE)
-    add_executable(${name}_${PROJECT_NAME} "${src}")
-    target_link_libraries(${name}_${PROJECT_NAME} ${PROJECT_NAME} stepdai 
stepcore stepeditor steputils base)
+    get_filename_component(path ${src} ABSOLUTE)
+    SC_ADDEXEC(${name}_${PROJECT_NAME} SOURCES ${src} LINK_LIBRARIES 
${PROJECT_NAME} stepdai stepcore stepeditor steputils base TESTABLE)
+    add_dependencies(${name}_${PROJECT_NAME} version_string)
+    #set_target_properties(${name}_${PROJECT_NAME} PROPERTIES COMPILE_FLAGS 
"${${PROJECT_NAME}_COMPILE_FLAGS} -I${path}")
   endforeach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
 ENDMACRO(SCHEMA_EXES)
 
@@ -94,50 +96,27 @@
     ${SC_SOURCE_DIR}/src/base/judy/src
   )
   # if testing is enabled, "TESTABLE" sets property EXCLUDE_FROM_ALL and 
prevents installation
-  add_library(${PROJECT_NAME} SHARED ${sourceFiles})
-  set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
-  add_dependencies(${PROJECT_NAME} base)
-  target_link_libraries(${PROJECT_NAME} stepdai stepcore stepeditor steputils 
base)
-  if(OPENBSD)
-    set_target_properties(${PROJECT_NAME} PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-  else(OPENBSD)
-    set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${SC_VERSION} 
SOVERSION ${SC_VERSION_MAJOR})
-  endif(OPENBSD)
-  if(APPLE)
-    set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY LINK_FLAGS 
"-flat_namespace -undefined suppress")
-  endif(APPLE)
-  if(MSVC)
-    target_compile_options("${PROJECT_NAME}" PRIVATE "/bigobj")
-    set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_SCHEMA_DLL_EXPORTS")
-    set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY 
INTERFACE_COMPILE_DEFINITIONS "SC_SCHEMA_DLL_IMPORTS")
-  endif(MSVC)
-  add_dependencies(${PROJECT_NAME} generate_cpp_${PROJECT_NAME})
-  if(NOT SC_ENABLE_TESTING)
-    set_target_properties(${PROJECT_NAME} PROPERTIES EXCLUDE_FROM_ALL ON)
-  else(NOT SC_ENABLE_TESTING)
-    install(TARGETS ${PROJECT_NAME}
-      RUNTIME DESTINATION ${BIN_DIR}
-      LIBRARY DESTINATION ${LIB_DIR}
-      ARCHIVE DESTINATION ${LIB_DIR})
-  endif(NOT SC_ENABLE_TESTING)
+  if($CACHE{SC_BUILD_SHARED_LIBS})
+    SC_ADDLIB(${PROJECT_NAME} SHARED SOURCES ${sourceFiles} LINK_LIBRARIES 
stepdai stepcore stepeditor steputils base TESTABLE)
+    add_dependencies(${PROJECT_NAME} generate_cpp_${PROJECT_NAME})
+    if(WIN32)
+      target_compile_definitions("${PROJECT_NAME}" PRIVATE 
SC_SCHEMA_DLL_EXPORTS)
+      if(MSVC)
+        target_compile_options("${PROJECT_NAME}" PRIVATE "/bigobj")
+      endif()
+    endif()
+  endif()
 
-  if (BUILD_STATIC_LIBS)
-    add_library(${PROJECT_NAME}-static STATIC ${sourceFiles})
+  if($CACHE{SC_BUILD_STATIC_LIBS})
+    SC_ADDLIB(${PROJECT_NAME}-static STATIC SOURCES ${sourceFiles} 
LINK_LIBRARIES stepdai-static stepcore-static stepeditor-static 
steputils-static base-static TESTABLE)
+    add_dependencies(${PROJECT_NAME}-static generate_cpp_${PROJECT_NAME})
     target_compile_defines("${PROJECT_NAME}-static" PRIVATE SC_STATIC)
     if(MSVC)
       target_compile_options("${PROJECT_NAME}-static" PRIVATE "/bigobj")
     endif()
-    if(NOT SC_ENABLE_TESTING)
-      set_target_properties(${PROJECT_NAME}-static PROPERTIES EXCLUDE_FROM_ALL 
ON)
-    else(NOT SC_ENABLE_TESTING)
-      install(TARGETS ${PROJECT_NAME}-static
-       RUNTIME DESTINATION ${BIN_DIR}
-       LIBRARY DESTINATION ${LIB_DIR}
-       ARCHIVE DESTINATION ${LIB_DIR})
-    endif(NOT SC_ENABLE_TESTING)
-    add_dependencies(${PROJECT_NAME}-static generate_cpp_${PROJECT_NAME})
-  endif (BUILD_STATIC_LIBS)
+  endif()
 
+
   SCHEMA_EXES()
   SCHEMA_TESTS()
   P21_TESTS(${expFile})

Added: brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_Targets.cmake
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_Targets.cmake      
                        (rev 0)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_Targets.cmake      
2020-12-03 03:32:53 UTC (rev 77885)
@@ -0,0 +1,91 @@
+macro(SC_ADDEXEC execname)
+  set(_addexec_opts NO_INSTALL TESTABLE)
+  set(_addexec_multikw SOURCES LINK_LIBRARIES)
+  string(TOUPPER "SC_ADDEXEC_${execname}_ARG" _arg_prefix)
+  cmake_parse_arguments(${_arg_prefix} "${_addexec_opts}" "" 
"${_addexec_multikw}" ${ARGN})
+
+  if(NOT DEFINED "${_arg_prefix}_SOURCES")
+    message(SEND_ERROR "SC_ADDEXEC usage error!")
+  endif()
+
+  add_executable(${execname} ${${_arg_prefix}_SOURCES})
+
+  if(DEFINED "${_arg_prefix}_LINK_LIBRARIES")
+    foreach(_lib ${${_arg_prefix}_LINK_LIBRARIES})
+        if($CACHE{SC_STATIC_UTILS})
+            if(NOT $<TARGET_PROPERTY:${_lib},TYPE> STREQUAL "STATIC_LIBRARY")
+                message(SEND_ERROR "SC_ADDEXEC usage error - expected STATIC 
LINK_LIBRARIES targets (${_lib})")
+            endif()
+        endif()
+        target_link_libraries(${execname} ${_lib})
+    endforeach()
+  endif()
+
+  if(NOT ${_arg_prefix}_NO_INSTALL AND NOT ${_arg_prefix}_TESTABLE)
+    install(TARGETS ${execname}
+      RUNTIME DESTINATION ${BIN_DIR}
+      LIBRARY DESTINATION ${LIB_DIR}
+      ARCHIVE DESTINATION ${LIB_DIR}   
+     )
+  endif()
+
+  if(NOT SC_ENABLE_TESTING AND ${_arg_prefix}_TESTABLE)
+    set_target_properties(${execname} PROPERTIES EXCLUDE_FROM_ALL ON)
+  endif()
+endmacro()
+
+macro(SC_ADDLIB _addlib_target)
+  set(_addlib_opts SHARED STATIC NO_INSTALL TESTABLE)
+  set(_addlib_multikw SOURCES LINK_LIBRARIES)
+  string(TOUPPER "SC_ADDLIB_${libname}_ARG" _arg_prefix)
+  cmake_parse_arguments(${_arg_prefix} "${_addlib_opts}" "" 
"${_addlib_multikw}" ${ARGN})
+
+  if(NOT DEFINED ${_arg_prefix}_SOURCES)
+    message(SEND_ERROR "SC_ADDLIB usage error!")
+  endif()
+
+  if(${_arg_prefix}_SHARED)
+    add_library(${_addlib_target} SHARED ${${_arg_prefix}_SOURCES})
+    if(OPENBSD)
+      set_target_properties(${_addlib_target} PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
+    else(OPENBSD)
+      set_target_properties(${_addlib_target} PROPERTIES VERSION ${SC_VERSION} 
SOVERSION ${SC_VERSION_MAJOR})
+    endif(OPENBSD)
+    if(APPLE)
+      set_target_properties(${_addlib_target} PROPERTIES LINK_FLAGS 
"-flat_namespace -undefined suppress")
+    endif(APPLE)
+  elseif(${_arg_prefix}_STATIC)
+    add_library(${_addlib_target} STATIC ${${_arg_prefix}_SOURCES})
+    target_compile_definitions(${_addlib_target} PRIVATE SC_STATIC)
+  else()
+    message(SEND_ERROR "SC_ADDLIB usage error!")
+  endif()
+
+  if(DEFINED ${_arg_prefix}_LINK_LIBRARIES)
+    foreach(_lib ${${_arg_prefix}_LINK_LIBRARIES})
+        if(${_arg_prefix}_STATIC AND TARGET ${_lib})
+         get_property(_libtype TARGET ${_lib} PROPERTY TYPE)
+         if(NOT ${_libtype} STREQUAL "STATIC_LIBRARY")
+             message(SEND_ERROR "SC_ADDLIB usage error - expected (static) 
LINK_LIBRARIES targets (${_lib})")
+            endif()
+        endif()
+        target_link_libraries(${_addlib_target} ${_lib})
+    endforeach()
+  endif()
+
+  if(NOT ${_arg_prefix}_NO_INSTALL AND NOT ${_arg_prefix}_TESTABLE)
+    install(TARGETS ${_addlib_target}
+      RUNTIME DESTINATION ${BIN_DIR}
+      LIBRARY DESTINATION ${LIB_DIR}
+      ARCHIVE DESTINATION ${LIB_DIR}   
+    )
+  endif()
+endmacro()
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8
+


Property changes on: 
brlcad/branches/extbuild/src/other/ext/stepcode/cmake/SC_Targets.cmake
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/base/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/src/base/CMakeLists.txt     
2020-12-03 02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/src/base/CMakeLists.txt     
2020-12-03 03:32:53 UTC (rev 77885)
@@ -1,4 +1,5 @@
-set(BASE_SOURCES
+
+set(SC_BASE_SOURCES
   sc_memmgr.cc
   sc_trace_fprintf.c
   sc_getopt.cc
@@ -8,7 +9,7 @@
   judy/src/judy.c
  )
 
-set(BASE_HDRS
+set(SC_BASE_HDRS
   sc_benchmark.h
   sc_memmgr.h
   sc_getopt.h
@@ -32,37 +33,19 @@
   add_definitions(-DSC_MEMMGR_ENABLE_CHECKS)
 endif()
 
-add_library(base-obj OBJECT ${BASE_SOURCES} ${BASE_HDRS})
-set_property(TARGET base-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(MSVC)
-  set_property(TARGET base-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_BASE_DLL_EXPORTS")
-endif(MSVC)
+if($CACHE{SC_BUILD_SHARED_LIBS})
+  SC_ADDLIB(base SHARED SOURCES ${SC_BASE_SOURCES})
+  if(WIN32)
+    target_link_libraries(base psapi)
+    target_compile_definitions(base PRIVATE SC_BASE_DLL_EXPORTS)
+  endif()
+endif()
 
-add_library(base SHARED $<TARGET_OBJECTS:base-obj>)
-if(OPENBSD)
-  set_target_properties(base PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-else(OPENBSD)
-  set_target_properties(base PROPERTIES VERSION ${SC_VERSION} SOVERSION 
${SC_VERSION_MAJOR})
-endif(OPENBSD)
-if(APPLE)
-  set_property(TARGET base APPEND PROPERTY LINK_FLAGS "-flat_namespace 
-undefined suppress")
-endif(APPLE)
-if(MSVC)
-  target_link_libraries(base psapi)
-  set_property(TARGET base APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_BASE_DLL_EXPORTS")
-  set_property(TARGET base APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS 
"SC_BASE_DLL_IMPORTS")
-endif(MSVC)
-install(TARGETS base
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
-
-if(BUILD_STATIC_LIBS)
-  add_library(base-static STATIC $<TARGET_OBJECTS:base-obj>)
-  install(TARGETS base-static
-    RUNTIME DESTINATION ${BIN_DIR}
-    LIBRARY DESTINATION ${LIB_DIR}
-    ARCHIVE DESTINATION ${LIB_DIR})
+if($CACHE{SC_BUILD_STATIC_LIBS})
+  SC_ADDLIB(base-static STATIC SOURCES ${SC_BASE_SOURCES})
+  if(WIN32)
+    target_link_libraries(base-static psapi)
+  endif()
 endif()
 
 if(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/judy/src")
@@ -78,7 +61,7 @@
   message("Judy array source code extracted.")
 endif(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/judy/src")
 
-install(FILES ${BASE_HDRS}
+install(FILES ${SC_BASE_HDRS}
   DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/base)
 
 # Local Variables:

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/cldai/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/src/cldai/CMakeLists.txt    
2020-12-03 02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/src/cldai/CMakeLists.txt    
2020-12-03 03:32:53 UTC (rev 77885)
@@ -1,4 +1,5 @@
-set(STEPDAI_SRCS
+
+set(LIBSTEPDAI_SRCS
   sdaiApplication_instance_set.cc
   sdaiBinary.cc
   sdaiDaObject.cc
@@ -12,7 +13,7 @@
   sdaiString.cc
   )
 
-SET(STEPDAI_HDRS
+SET(SC_CLDAI_HDRS
   sdaiApplication_instance_set.h
   sdaiBinary.h
   sdaiDaObject.h
@@ -33,41 +34,20 @@
   ${SC_SOURCE_DIR}/src/clutils
   )
 
-add_library(stepdai-obj OBJECT ${STEPDAI_SRCS})
-set_property(TARGET stepdai-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-add_dependencies(stepdai-obj base)
-if(MSVC)
-  set_property(TARGET stepdai-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_DAI_DLL_EXPORTS")
-endif(MSVC)
+set(_libdeps steputils base)
 
-add_library(stepdai SHARED $<TARGET_OBJECTS:stepdai-obj>)
-target_link_libraries(stepdai steputils base)
-if(OPENBSD)
-  set_target_properties(stepdai PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-else(OPENBSD)
-  set_target_properties(stepdai PROPERTIES VERSION ${SC_VERSION} SOVERSION 
${SC_VERSION_MAJOR})
-endif(OPENBSD)
-if(APPLE)
-  set_property(TARGET stepdai APPEND PROPERTY LINK_FLAGS "-flat_namespace 
-undefined suppress")
-endif(APPLE)
-if(MSVC)
-  set_property(TARGET stepdai APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_DAI_DLL_EXPORTS")
-  set_property(TARGET stepdai APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS 
"SC_DAI_DLL_IMPORTS")
-endif(MSVC)
-install(TARGETS stepdai
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
+if($CACHE{SC_BUILD_SHARED_LIBS})
+  SC_ADDLIB(stepdai SHARED SOURCES ${LIBSTEPDAI_SRCS} LINK_LIBRARIES 
${_libdeps})
+  if(WIN32)
+    target_compile_definitions(stepdai PRIVATE SC_DAI_DLL_EXPORTS)
+  endif()
+endif()
 
-if (BUILD_STATIC_LIBS)
-  add_library(stepdai-static STATIC $<TARGET_OBJECTS:stepdai-obj>)
-  install(TARGETS stepdai-static
-    RUNTIME DESTINATION ${BIN_DIR}
-    LIBRARY DESTINATION ${LIB_DIR}
-    ARCHIVE DESTINATION ${LIB_DIR})
-endif (BUILD_STATIC_LIBS)
+if($CACHE{SC_BUILD_STATIC_LIBS})
+  SC_ADDLIB(stepdai-static STATIC SOURCES ${LIBSTEPDAI_SRCS} LINK_LIBRARIES 
$<JOIN:${_libdeps},-static >-static)
+endif()
 
-install(FILES ${STEPDAI_HDRS}
+install(FILES ${SC_CLDAI_HDRS}
   DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/cldai)
 
 # Local Variables:

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/cleditor/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/src/cleditor/CMakeLists.txt 
2020-12-03 02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/src/cleditor/CMakeLists.txt 
2020-12-03 03:32:53 UTC (rev 77885)
@@ -1,5 +1,5 @@
 
-set(STEPEDITOR_SRCS
+set(LIBSTEPEDITOR_SRCS
   STEPfile.cc
   STEPfile.inline.cc
   cmdmgr.cc
@@ -9,7 +9,7 @@
   SdaiSchemaInit.cc
   )
 
-SET(STEPEDITOR_HDRS
+SET(SC_CLEDITOR_HDRS
   STEPfile.h
   cmdmgr.h
   editordefines.h
@@ -27,41 +27,18 @@
   ${SC_SOURCE_DIR}/src/clutils
   )
 
-add_library(stepeditor-obj OBJECT ${STEPEDITOR_SRCS})
-set_property(TARGET stepeditor-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-add_dependencies(stepeditor-obj base)
-if(MSVC)
-  set_property(TARGET stepeditor-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_EDITOR_DLL_EXPORTS")
-endif(MSVC)
+if($CACHE{SC_BUILD_SHARED_LIBS})
+  SC_ADDLIB(stepeditor SHARED SOURCES ${LIBSTEPEDITOR_SRCS} LINK_LIBRARIES 
stepcore stepdai steputils base)
+  if(WIN32)
+    target_compile_definitions(stepeditor PRIVATE SC_EDITOR_DLL_EXPORTS)
+  endif()
+endif()
 
-add_library(stepeditor SHARED $<TARGET_OBJECTS:stepeditor-obj>)
-target_link_libraries(stepeditor steputils stepdai base)
-if(OPENBSD)
-  set_target_properties(stepeditor PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-else(OPENBSD)
-  set_target_properties(stepeditor PROPERTIES VERSION ${SC_VERSION} SOVERSION 
${SC_VERSION_MAJOR})
-endif(OPENBSD)
-if(APPLE)
-  set_property(TARGET stepeditor APPEND PROPERTY LINK_FLAGS "-flat_namespace 
-undefined suppress")
-endif(APPLE)
-if(MSVC)
-  set_property(TARGET stepeditor APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_EDITOR_DLL_EXPORTS")
-  set_property(TARGET stepeditor APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS 
"SC_EDITOR_DLL_IMPORTS")
-endif(MSVC)
-install(TARGETS stepeditor
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
+if($CACHE{SC_BUILD_STATIC_LIBS})
+  SC_ADDLIB(stepeditor-static STATIC SOURCES ${LIBSTEPEDITOR_SRCS} 
LINK_LIBRARIES stepcore-static stepdai-static steputils-static base-static)
+endif()
 
-if (BUILD_STATIC_LIBS)
-  add_library(stepeditor-static STATIC $<TARGET_OBJECTS:stepeditor-obj>)
-  install(TARGETS stepeditor-static
-    RUNTIME DESTINATION ${BIN_DIR}
-    LIBRARY DESTINATION ${LIB_DIR}
-    ARCHIVE DESTINATION ${LIB_DIR})
-endif (BUILD_STATIC_LIBS)
-
-install(FILES ${STEPEDITOR_HDRS}
+install(FILES ${SC_CLEDITOR_HDRS}
   DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/cleditor)
 
 # Local Variables:

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/cllazyfile/CMakeLists.txt
===================================================================
--- 
brlcad/branches/extbuild/src/other/ext/stepcode/src/cllazyfile/CMakeLists.txt   
    2020-12-03 02:57:23 UTC (rev 77884)
+++ 
brlcad/branches/extbuild/src/other/ext/stepcode/src/cllazyfile/CMakeLists.txt   
    2020-12-03 03:32:53 UTC (rev 77885)
@@ -1,5 +1,5 @@
 
-set(clLazyFile_SRCS
+set( clLazyFile_SRCS
   lazyDataSectionReader.cc
   lazyFileReader.cc
   lazyInstMgr.cc
@@ -8,7 +8,7 @@
   lazyP21DataSectionReader.cc
   )
 
-set(clLazyFile_HDRS
+set( SC_CLLAZYFILE_HDRS
   headerSectionReader.h
   lazyFileReader.h
   lazyP21DataSectionReader.h
@@ -30,41 +30,23 @@
   ${SC_SOURCE_DIR}/src/base/judy/src
   )
 
-add_library(steplazyfile-obj OBJECT ${clLazyFile_SRCS})
-set_property(TARGET steplazyfile-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-add_dependencies(steplazyfile-obj base)
-if(MSVC)
-  set_property(TARGET steplazyfile-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_LAZYFILE_DLL_EXPORTS")
-endif(MSVC)
+set(_libdeps stepcore stepdai steputils base stepeditor)
 
-add_library(steplazyfile SHARED $<TARGET_OBJECTS:steplazyfile-obj>)
-target_link_libraries(steplazyfile stepcore stepdai steputils base stepeditor)
-if(OPENBSD)
-  set_target_properties(steplazyfile PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-else(OPENBSD)
-  set_target_properties(steplazyfile PROPERTIES VERSION ${SC_VERSION} 
SOVERSION ${SC_VERSION_MAJOR})
-endif(OPENBSD)
-if(APPLE)
-  set_property(TARGET steplazyfile APPEND PROPERTY LINK_FLAGS "-flat_namespace 
-undefined suppress")
-endif(APPLE)
-if(MSVC)
-  set_property(TARGET steplazyfile APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_LAZYFILE_DLL_EXPORTS")
-  set_property(TARGET steplazyfile APPEND PROPERTY 
INTERFACE_COMPILE_DEFINITIONS "SC_LAZYFILE_DLL_IMPORTS")
-endif(MSVC)
-install(TARGETS steplazyfile
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
+if($CACHE{SC_BUILD_SHARED_LIBS})
+  SC_ADDLIB(steplazyfile SHARED SOURCES ${clLazyFile_SRCS} LINK_LIBRARIES 
${_libdeps})
+  if(WIN32)
+    target_compile_definitions(steplazyfile PRIVATE SC_LAZYFILE_DLL_EXPORTS)
+  endif()
+endif()
 
-if (BUILD_STATIC_LIBS)
-  add_library(steplazyfile-static STATIC $<TARGET_OBJECTS:steplazyfile-obj>)
-  install(TARGETS steplazyfile-static
-    RUNTIME DESTINATION ${BIN_DIR}
-    LIBRARY DESTINATION ${LIB_DIR}
-    ARCHIVE DESTINATION ${LIB_DIR})
-endif (BUILD_STATIC_LIBS)
+if($CACHE{SC_BUILD_STATIC_LIBS})
+  SC_ADDLIB(steplazyfile-static STATIC SOURCES ${clLazyFile_SRCS} 
LINK_LIBRARIES $<JOIN:${_libdeps},-static >-static)
+endif()
 
-install(FILES ${clLazyFile_HDRS}
+SC_ADDEXEC(lazy_test SOURCES lazy_test.cc LINK_LIBRARIES steplazyfile 
stepeditor NO_INSTALL)
+target_compile_definitions(lazy_test PRIVATE NO_REGISTRY)
+
+install(FILES ${SC_CLLAZYFILE_HDRS}
   DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/cllazyfile)
 
 # Local Variables:

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/clstepcore/CMakeLists.txt
===================================================================
--- 
brlcad/branches/extbuild/src/other/ext/stepcode/src/clstepcore/CMakeLists.txt   
    2020-12-03 02:57:23 UTC (rev 77884)
+++ 
brlcad/branches/extbuild/src/other/ext/stepcode/src/clstepcore/CMakeLists.txt   
    2020-12-03 03:32:53 UTC (rev 77885)
@@ -1,4 +1,5 @@
-set(STEPCORE_SRCS
+
+set(LIBSTEPCORE_SRCS
   aggrTypeDescriptor.cc
   attrDescriptor.cc
   attrDescriptorList.cc
@@ -61,7 +62,7 @@
   whereRule.cc
 )
 
-set(STEPCORE_HDRS
+set(SC_CLSTEPCORE_HDRS
   aggrTypeDescriptor.h
   attrDescriptor.h
   attrDescriptorList.h
@@ -130,41 +131,20 @@
   ${SC_SOURCE_DIR}/src/clutils
   )
 
-add_library(stepcore-obj OBJECT ${STEPCORE_SRCS})
-set_property(TARGET stepcore-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-add_dependencies(stepcore-obj base)
-if(MSVC)
-  set_property(TARGET stepcore-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_CORE_DLL_EXPORTS")
-endif(MSVC)
+set(_libdeps steputils stepdai base)
 
-add_library(stepcore SHARED $<TARGET_OBJECTS:stepcore-obj>)
-target_link_libraries(stepcore steputils stepdai base)
-if(OPENBSD)
-  set_target_properties(stepcore PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-else(OPENBSD)
-  set_target_properties(stepcore PROPERTIES VERSION ${SC_VERSION} SOVERSION 
${SC_VERSION_MAJOR})
-endif(OPENBSD)
-if(APPLE)
-  set_property(TARGET stepcore APPEND PROPERTY LINK_FLAGS "-flat_namespace 
-undefined suppress")
-endif(APPLE)
-if(MSVC)
-  set_property(TARGET stepcore APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_CORE_DLL_EXPORTS")
-  set_property(TARGET stepcore APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS 
"SC_CORE_DLL_IMPORTS")
-endif(MSVC)
-install(TARGETS stepcore
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
+if($CACHE{SC_BUILD_SHARED_LIBS})
+  SC_ADDLIB(stepcore SHARED SOURCES ${LIBSTEPCORE_SRCS} LINK_LIBRARIES 
${_libdeps})
+  if(WIN32)
+    target_compile_definitions(stepcore PRIVATE SC_CORE_DLL_EXPORTS)
+  endif()
+endif()
 
-if (BUILD_STATIC_LIBS)
-  add_library(stepcore-static STATIC $<TARGET_OBJECTS:stepcore-obj>)
-  install(TARGETS stepcore-static
-    RUNTIME DESTINATION ${BIN_DIR}
-    LIBRARY DESTINATION ${LIB_DIR}
-    ARCHIVE DESTINATION ${LIB_DIR})
-endif (BUILD_STATIC_LIBS)
+if($CACHE{SC_BUILD_STATIC_LIBS})
+  SC_ADDLIB(stepcore-static STATIC SOURCES ${LIBSTEPCORE_SRCS} LINK_LIBRARIES 
$<JOIN:${_libdeps},-static>-static)
+endif()
 
-install(FILES ${STEPCORE_HDRS}
+install(FILES ${SC_CLSTEPCORE_HDRS}
   DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/clstepcore)
 
 if(SC_ENABLE_TESTING)

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/clutils/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/src/clutils/CMakeLists.txt  
2020-12-03 02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/src/clutils/CMakeLists.txt  
2020-12-03 03:32:53 UTC (rev 77885)
@@ -1,4 +1,5 @@
-set(STEPUTILS_SRCS
+
+set(LIBSTEPUTILS_SRCS
   Str.cc
   dirobj.cc
   gennode.cc
@@ -8,7 +9,7 @@
   errordesc.cc
   )
 
-set(STEPUTILS_HDRS
+set(SC_CLUTILS_HDRS
   dirobj.h
   errordesc.h
   gennodearray.h
@@ -24,42 +25,22 @@
   ${CMAKE_CURRENT_SOURCE_DIR}
   )
 
-add_library(steputils-obj OBJECT ${STEPUTILS_SRCS})
-set_property(TARGET steputils-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-add_dependencies(steputils-obj base)
-if(MSVC)
-  set_property(TARGET steputils-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_UTILS_DLL_EXPORTS")
-endif(MSVC)
+if($CACHE{SC_BUILD_SHARED_LIBS})
+  SC_ADDLIB(steputils SHARED SOURCES ${LIBSTEPUTILS_SRCS} LINK_LIBRARIES base)
+  if(WIN32)
+    target_compile_definitions(steputils PRIVATE SC_UTILS_DLL_EXPORTS)
+    target_link_libraries(steputils shlwapi)
+  endif()
+endif()
 
-add_library(steputils SHARED $<TARGET_OBJECTS:steputils-obj>)
-target_link_libraries(steputils base)
-if(OPENBSD)
-  set_target_properties(steputils PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-else(OPENBSD)
-  set_target_properties(steputils PROPERTIES VERSION ${SC_VERSION} SOVERSION 
${SC_VERSION_MAJOR})
-endif(OPENBSD)
-if(APPLE)
-  set_property(TARGET steputils APPEND PROPERTY LINK_FLAGS "-flat_namespace 
-undefined suppress")
-endif(APPLE)
-if(MSVC)
-  target_link_libraries(steputils shlwapi)
-  set_property(TARGET steputils APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_UTILS_DLL_EXPORTS")
-  set_property(TARGET steputils APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS 
"SC_UTILS_DLL_IMPORTS")
-endif(MSVC)
-install(TARGETS steputils
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
+if($CACHE{SC_BUILD_STATIC_LIBS})
+  SC_ADDLIB(steputils-static STATIC SOURCES ${LIBSTEPUTILS_SRCS} 
LINK_LIBRARIES base-static)
+  if(WIN32)
+    target_link_libraries(steputils-static shlwapi)
+  endif()
+endif()
 
-if (BUILD_STATIC_LIBS)
-  add_library(steputils-static STATIC $<TARGET_OBJECTS:steputils-obj>)
-  install(TARGETS steputils-static
-    RUNTIME DESTINATION ${BIN_DIR}
-    LIBRARY DESTINATION ${LIB_DIR}
-    ARCHIVE DESTINATION ${LIB_DIR})
-endif (BUILD_STATIC_LIBS)
-
-install(FILES ${STEPUTILS_HDRS}
+install(FILES ${SC_CLUTILS_HDRS}
   DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/clutils)
 
 # Local Variables:

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/CMakeLists.txt  
2020-12-03 02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2cxx/CMakeLists.txt  
2020-12-03 03:32:53 UTC (rev 77885)
@@ -37,12 +37,7 @@
   ${SC_SOURCE_DIR}/src/base
   )
 
-add_executable(exp2cxx ${exp2cxx_SOURCES})
-target_link_libraries(exp2cxx libexppp express base)
-install(TARGETS exp2cxx
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
+SC_ADDEXEC(exp2cxx SOURCES ${exp2cxx_SOURCES} LINK_LIBRARIES libexppp express 
base)
 
 if(SC_ENABLE_TESTING)
   add_subdirectory(test)

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2python/CMakeLists.txt
===================================================================
--- 
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2python/CMakeLists.txt   
    2020-12-03 02:57:23 UTC (rev 77884)
+++ 
brlcad/branches/extbuild/src/other/ext/stepcode/src/exp2python/CMakeLists.txt   
    2020-12-03 03:32:53 UTC (rev 77885)
@@ -29,14 +29,8 @@
     ../exp2cxx/write.cc
     ../exp2cxx/print.cc
    )
+ SC_ADDEXEC(exp2python SOURCES ${exp2python_SOURCES} LINK_LIBRARIES express 
base)
 
- add_executable(exp2python ${exp2python_SOURCES})
- target_link_libraries(exp2python express base)
- install(TARGETS exp2python
-   RUNTIME DESTINATION ${BIN_DIR}
-   LIBRARY DESTINATION ${LIB_DIR}
-   ARCHIVE DESTINATION ${LIB_DIR})
-
 endif(SC_PYTHON_GENERATOR)
 
 # Local Variables:

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/exppp/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/src/exppp/CMakeLists.txt    
2020-12-03 02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/src/exppp/CMakeLists.txt    
2020-12-03 03:32:53 UTC (rev 77885)
@@ -18,7 +18,7 @@
   pretty_where.c
  )
 
-set(EXPPP_SOURCES
+SET(EXPPP_SOURCES
   ../express/fedex.c
   exppp-main.c
  )
@@ -30,49 +30,20 @@
   ${SC_SOURCE_DIR}/src/express
  )
 
-add_library(libexppp-obj OBJECT ${LIBEXPPP_SOURCES})
-set_target_properties(libexppp-obj PROPERTIES PREFIX "")
-set_property(TARGET libexppp-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-add_dependencies(libexppp-obj base)
-if(MSVC)
-  set_property(TARGET libexppp-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_EXPPP_DLL_EXPORTS")
-endif(MSVC)
+if($CACHE{SC_BUILD_SHARED_LIBS})
+  SC_ADDLIB(libexppp SHARED SOURCES ${LIBEXPPP_SOURCES} LINK_LIBRARIES express 
base)
+  set_target_properties(libexppp PROPERTIES PREFIX "")
+  if(WIN32)
+    target_compile_definitions(libexppp PRIVATE SC_EXPPP_DLL_EXPORTS)
+  endif()
+endif()
 
-add_library(libexppp SHARED $<TARGET_OBJECTS:libexppp-obj>)
-target_link_libraries(libexppp base)
-set_target_properties(libexppp PROPERTIES PREFIX "")
-if(OPENBSD)
-  set_target_properties(libexppp PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-else(OPENBSD)
-  set_target_properties(libexppp PROPERTIES VERSION ${SC_VERSION} SOVERSION 
${SC_VERSION_MAJOR})
-endif(OPENBSD)
-if(APPLE)
-  set_property(TARGET libexppp APPEND PROPERTY LINK_FLAGS "-flat_namespace 
-undefined suppress")
-endif(APPLE)
-if(MSVC)
-  set_property(TARGET libexppp APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_EXPPP_DLL_EXPORTS")
-  set_property(TARGET libexppp APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS 
"SC_EXPPP_DLL_IMPORTS")
-endif(MSVC)
-install(TARGETS libexppp
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
-
-if (BUILD_STATIC_LIBS)
-  add_library(libexppp-static STATIC $<TARGET_OBJECTS:libexppp-obj>)
+if($CACHE{SC_BUILD_STATIC_LIBS})
+  SC_ADDLIB(libexppp-static STATIC SOURCES ${LIBEXPPP_SOURCES} LINK_LIBRARIES 
express-static base-static)
   set_target_properties(libexppp-static PROPERTIES PREFIX "")
-  install(TARGETS libexppp-static
-    RUNTIME DESTINATION ${BIN_DIR}
-    LIBRARY DESTINATION ${LIB_DIR}
-    ARCHIVE DESTINATION ${LIB_DIR})
-endif (BUILD_STATIC_LIBS)
+endif()
 
-add_executable(exppp ${EXPPP_SOURCES})
-target_link_libraries(exppp libexppp express base)
-install(TARGETS exppp
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
+SC_ADDEXEC(exppp SOURCES ${EXPPP_SOURCES} LINK_LIBRARIES libexppp express base)
 
 if(SC_ENABLE_TESTING)
   add_subdirectory(test)

Modified: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/CMakeLists.txt
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode/src/express/CMakeLists.txt  
2020-12-03 02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/src/express/CMakeLists.txt  
2020-12-03 03:32:53 UTC (rev 77885)
@@ -10,23 +10,19 @@
   LEMON_TARGET(ExpParser expparse.y)
   PERPLEX_TARGET(ExpScanner expscan.l)
   ADD_PERPLEX_LEMON_DEPENDENCY(ExpScanner ExpParser)
-  include_directories(
-    ${LEMON_ExpParser_INCLUDE_DIR}
-    ${PERPLEX_ExpScanner_INCLUDE_DIR}
-    )
+
+  add_library(objlib_expscan_c OBJECT ${PERPLEX_ExpScanner_SRC})
+  set_property(TARGET objlib_expscan_c PROPERTY POSITION_INDEPENDENT_CODE ON)
+
+  add_library(objlib_expparse_c OBJECT ${LEMON_ExpParser_SRC})
+  set_property(TARGET objlib_expparse_c PROPERTY POSITION_INDEPENDENT_CODE ON)
+
 else(SC_GENERATE_LP_SOURCES)
-  set(LEMON_ExpParser_SRC ${CMAKE_CURRENT_SOURCE_DIR}/generated/expparse.c)
-  set(LEMON_ExpParser_HDR ${CMAKE_CURRENT_SOURCE_DIR}/generated/expparse.h)
-  set(PERPLEX_ExpScanner_SRC ${CMAKE_CURRENT_SOURCE_DIR}/generated/expscan.c)
-  set(PERPLEX_ExpScanner_HDR ${CMAKE_CURRENT_SOURCE_DIR}/generated/expscan.h)
+  add_subdirectory(generated)
   include_directories(generated)
 endif(SC_GENERATE_LP_SOURCES)
 
 set(EXPRESS_SOURCES
-  ${LEMON_ExpParser_HDR}
-  ${LEMON_ExpParser_SRC}
-  ${PERPLEX_ExpScanner_HDR}
-  ${PERPLEX_ExpScanner_SRC}
   symbol.c
   type.c
   variable.c
@@ -51,42 +47,31 @@
   ordered_attrs.cc
   info.c
   factory.c
-  )
+ )
 
-add_library(express-obj OBJECT ${EXPRESS_SOURCES})
-add_dependencies(express-obj base)
-set_property(TARGET express-obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-if(MSVC)
-  set_property(TARGET express-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_EXPRESS_DLL_EXPORTS")
-endif(MSVC)
+set(EXPRESS_OBJS)
+foreach(_src ${EXPRESS_SOURCES})
+    string(REPLACE "." "_" _suffix ${_src})
+    set(_objlib "objlib_${_suffix}")
+    add_library(${_objlib} OBJECT ${_src})
+    # TODO: probably PIC should be used everywhere...
+    set_property(TARGET ${_objlib} PROPERTY POSITION_INDEPENDENT_CODE ON)
+    list(APPEND EXPRESS_OBJS $<TARGET_OBJECTS:${_objlib}>)
+endforeach()
 
-add_library(express SHARED $<TARGET_OBJECTS:express-obj>)
-target_link_libraries(express base)
-if(OPENBSD)
-  set_target_properties(express PROPERTIES VERSION 
${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
-else(OPENBSD)
-  set_target_properties(express PROPERTIES VERSION ${SC_VERSION} SOVERSION 
${SC_VERSION_MAJOR})
-endif(OPENBSD)
-if(APPLE)
-  set_property(TARGET express APPEND PROPERTY LINK_FLAGS "-flat_namespace 
-undefined suppress")
-endif(APPLE)
-if(MSVC)
-  set_property(TARGET express APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_EXPRESS_DLL_EXPORTS")
-  set_property(TARGET express APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS 
"SC_EXPRESS_DLL_IMPORTS")
-endif(MSVC)
-install(TARGETS express
-  RUNTIME DESTINATION ${BIN_DIR}
-  LIBRARY DESTINATION ${LIB_DIR}
-  ARCHIVE DESTINATION ${LIB_DIR})
+list(APPEND EXPRESS_OBJS $<TARGET_OBJECTS:objlib_expscan_c>)
+list(APPEND EXPRESS_OBJS $<TARGET_OBJECTS:objlib_expparse_c>)
 
-if (BUILD_STATIC_LIBS)
-  add_library(express-static STATIC $<TARGET_OBJECTS:express-obj>)
-  install(TARGETS express-static
-    RUNTIME DESTINATION ${BIN_DIR}
-    LIBRARY DESTINATION ${LIB_DIR}
-    ARCHIVE DESTINATION ${LIB_DIR})
-endif (BUILD_STATIC_LIBS)
 
+if(SC_GENERATE_LP_SOURCES)
+  set_property(TARGET objlib_expparse_c objlib_express_c objlib_lexact_c 
+              APPEND PROPERTY INCLUDE_DIRECTORIES 
"${PERPLEX_ExpScanner_INCLUDE_DIR}")
+  set_property(TARGET objlib_expscan_c objlib_express_c objlib_lexact_c
+               APPEND PROPERTY INCLUDE_DIRECTORIES 
"${LEMON_ExpParser_INCLUDE_DIR}")
+  # OBJECT libraries are not targets, and so an explicit dependency is required
+  set_source_files_properties(express.c lexact.c PROPERTIES OBJECT_DEPENDS 
"${PERPLEX_ExpScanner_HDR};${LEMON_ExpParser_HDR}")
+endif()
+
 # TODO
 # Currently, fedex.c provides the main() for multiple programs. These programs
 # provide custom behavior by defining EXPRESSinit_init (called by fedex.c's
@@ -100,9 +85,36 @@
   fedex.c
   inithook.c
  )
-add_executable(check-express ${CHECK_EXPRESS_SOURCES})
-target_link_libraries(check-express express base)
 
+SET(EXPRESS_PRIVATE_HDRS
+  exptoks.h
+  stack.h
+  )
+
+variable_watch(SC_ADDLIB_EXPRESS_ARG_LINK_LIBRARIES)
+variable_watch(SC_ADDLIB_EXPRESS-STATIC_ARG_LINK_LIBRARIES)
+
+if($CACHE{SC_BUILD_SHARED_LIBS})
+  SC_ADDLIB(express SHARED SOURCES "dummy.c" ${EXPRESS_OBJS} LINK_LIBRARIES 
base)
+  if(WIN32)
+    target_compile_definitions(express PRIVATE SC_EXPRESS_DLL_EXPORTS)
+  endif()
+
+  if(NOT SC_IS_SUBBUILD AND SC_GIT_VERSION)
+    add_dependencies(express version_string)
+  endif()
+endif()
+
+if($CACHE{SC_BUILD_STATIC_LIBS})
+  SC_ADDLIB(express-static STATIC SOURCES "dummy.c" ${EXPRESS_OBJS} 
LINK_LIBRARIES base-static)
+ 
+  if(NOT SC_IS_SUBBUILD AND SC_GIT_VERSION)
+    add_dependencies(express-static version_string)
+  endif()
+endif()
+
+SC_ADDEXEC(check-express SOURCES ${CHECK_EXPRESS_SOURCES} LINK_LIBRARIES 
express base ${SC_EXEC_NOINSTALL})
+
 if(SC_ENABLE_TESTING)
   add_subdirectory(test)
 endif(SC_ENABLE_TESTING)

Added: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/CMakeLists.txt
===================================================================
--- 
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/CMakeLists.txt
                                (rev 0)
+++ 
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/CMakeLists.txt
        2020-12-03 03:32:53 UTC (rev 77885)
@@ -0,0 +1,8 @@
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+add_library(objlib_expscan_c OBJECT expscan.c)
+set_property(TARGET objlib_expscan_c PROPERTY POSITION_INDEPENDENT_CODE ON)
+
+add_library(objlib_expparse_c OBJECT expparse.c)
+set_property(TARGET objlib_expparse_c PROPERTY POSITION_INDEPENDENT_CODE ON)
+


Property changes on: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/CMakeLists.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Modified: brlcad/branches/extbuild/src/other/ext/stepcode.dist
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode.dist        2020-12-03 
02:57:23 UTC (rev 77884)
+++ brlcad/branches/extbuild/src/other/ext/stepcode.dist        2020-12-03 
03:32:53 UTC (rev 77885)
@@ -22,6 +22,7 @@
 cmake/SC_Paths.cmake
 cmake/SC_Regenerate.cmake
 cmake/SC_Run_exp2cxx.cmake
+cmake/SC_Targets.cmake
 cmake/cmake_uninstall.cmake.in
 cmake/schema_scanner/CMakeLists.txt
 cmake/schema_scanner/README
@@ -564,6 +565,7 @@
 src/express/expscan.l
 src/express/factory.c
 src/express/fedex.c
+src/express/generated/CMakeLists.txt
 src/express/generated/README
 src/express/generated/expparse.c
 src/express/generated/expparse.h
@@ -678,4 +680,3 @@
   CMAKEFILES_IN_DIR(stepcode_ignore_files stepcode)
 endif (COMMAND CMAKEFILES_IN_DIR)
 
-

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