Revision: 77880
          http://sourceforge.net/p/brlcad/code/77880
Author:   starseeker
Date:     2020-12-02 21:30:01 +0000 (Wed, 02 Dec 2020)
Log Message:
-----------
experiment with a simplification of the express build logic

Modified Paths:
--------------
    brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode/src/express/CMakeLists.txt
    brlcad/branches/extbuild/src/other/ext/stepcode.dist

Removed Paths:
-------------
    
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-02 20:57:41 UTC (rev 77879)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/CMakeLists.txt      
2020-12-02 21:30:01 UTC (rev 77880)
@@ -49,6 +49,7 @@
 
 # Minimum required version of CMake
 cmake_minimum_required(VERSION 3.12)
+cmake_policy(SET CMP0077 OLD)
 
 # CMake derives much of its functionality from modules, typically
 # stored in one directory - let CMake know where to find them.

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-02 20:57:41 UTC (rev 77879)
+++ brlcad/branches/extbuild/src/other/ext/stepcode/src/express/CMakeLists.txt  
2020-12-02 21:30:01 UTC (rev 77880)
@@ -10,21 +10,23 @@
   LEMON_TARGET(ExpParser expparse.y)
   PERPLEX_TARGET(ExpScanner expscan.l)
   ADD_PERPLEX_LEMON_DEPENDENCY(ExpScanner ExpParser)
-
-  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)
-
-  set_source_files_properties(${PERPLEX_ExpScanner_SRC} ${LEMON_ExpParser_SRC} 
PROPERTIES OBJECT_DEPENDS "${PERPLEX_ExpScanner_HDR};${LEMON_ExpParser_HDR}")
-
+  include_directories(
+    ${LEMON_ExpParser_INCLUDE_DIR}
+    ${PERPLEX_ExpScanner_INCLUDE_DIR}
+    )
 else(SC_GENERATE_LP_SOURCES)
-  add_subdirectory(generated)
+  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)
   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
@@ -57,29 +59,47 @@
   "${SC_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h"
   )
 
-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-obj OBJECT ${EXPRESS_SOURCES})
+add_dependencies(express-obj base)
+if(MSVC)
+  set_property(TARGET express-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"SC_EXPRESS_DLL_EXPORTS")
+endif(MSVC)
 
-list(APPEND EXPRESS_OBJS $<TARGET_OBJECTS:objlib_expscan_c>)
-list(APPEND EXPRESS_OBJS $<TARGET_OBJECTS:objlib_expparse_c>)
 
+add_library(express SHARED ${EXPRESS_SOURCES})
+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)
+install(TARGETS express
+  RUNTIME DESTINATION ${BIN_DIR}
+  LIBRARY DESTINATION ${LIB_DIR}
+  ARCHIVE DESTINATION ${LIB_DIR})
 
-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 parse_data.h PROPERTIES 
OBJECT_DEPENDS "${PERPLEX_ExpScanner_HDR};${LEMON_ExpParser_HDR}")
-endif()
+if(TARGET version_string)
+  add_dependencies(express version_string)
+endif(TARGET version_string)
+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)
 
+if (BUILD_STATIC_LIBS)
+  add_library(express-static STATIC ${EXPRESS_SOURCES})
+  if(TARGET version_string)
+    add_dependencies(express-static version_string)
+  endif(TARGET version_string)
+  install(TARGETS express-static
+    RUNTIME DESTINATION ${BIN_DIR}
+    LIBRARY DESTINATION ${LIB_DIR}
+    ARCHIVE DESTINATION ${LIB_DIR})
+endif (BUILD_STATIC_LIBS)
+
 # TODO
 # Currently, fedex.c provides the main() for multiple programs. These programs
 # provide custom behavior by defining EXPRESSinit_init (called by fedex.c's
@@ -93,36 +113,9 @@
   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)

Deleted: 
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/CMakeLists.txt
===================================================================
--- 
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/CMakeLists.txt
        2020-12-02 20:57:41 UTC (rev 77879)
+++ 
brlcad/branches/extbuild/src/other/ext/stepcode/src/express/generated/CMakeLists.txt
        2020-12-02 21:30:01 UTC (rev 77880)
@@ -1,8 +0,0 @@
-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)
-

Modified: brlcad/branches/extbuild/src/other/ext/stepcode.dist
===================================================================
--- brlcad/branches/extbuild/src/other/ext/stepcode.dist        2020-12-02 
20:57:41 UTC (rev 77879)
+++ brlcad/branches/extbuild/src/other/ext/stepcode.dist        2020-12-02 
21:30:01 UTC (rev 77880)
@@ -566,7 +566,6 @@
 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

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