Revision: 77410
http://sourceforge.net/p/brlcad/code/77410
Author: starseeker
Date: 2020-10-13 15:30:02 +0000 (Tue, 13 Oct 2020)
Log Message:
-----------
Checkpoint. Using this approach the isystem marking for external includes
won't work - we need to list external dirs explicitly somehow so that mechanism
is less fragile. Also, still have some ordering issue where openNURBS is
getting system zlib instead of local zlib sometimes.
Modified Paths:
--------------
brlcad/branches/thirdparty_rework/misc/CMake/FindSTEPCODE.cmake
brlcad/branches/thirdparty_rework/src/conv/step/CMakeLists.txt
brlcad/branches/thirdparty_rework/src/conv/step/g-step/CMakeLists.txt
brlcad/branches/thirdparty_rework/src/conv/step/step-g/CMakeLists.txt
brlcad/branches/thirdparty_rework/src/conv/step/util/CMakeLists.txt
brlcad/branches/thirdparty_rework/src/superbuild/stepcode.cmake
Modified: brlcad/branches/thirdparty_rework/misc/CMake/FindSTEPCODE.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/misc/CMake/FindSTEPCODE.cmake
2020-10-13 13:21:12 UTC (rev 77409)
+++ brlcad/branches/thirdparty_rework/misc/CMake/FindSTEPCODE.cmake
2020-10-13 15:30:02 UTC (rev 77410)
@@ -1,4 +1,4 @@
-# F I N D V D S . C M A K E
+# F I N D S T E P C O D E . C M A K E
# BRL-CAD
#
# Copyright (c) 2013-2020 United States Government as represented by
@@ -35,24 +35,127 @@
###
# - 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 vds.h, etc.
-# STEPCODE_LIBRARIES - List of libraries when using vds.
-# STEPCODE_FOUND - True if vds found.
+# STEPCODE_INCLUDE_DIRS - where to find stepcode headers
+# STEPCODE_LIBRARIES - List of libraries when using stepcode.
+# STEPCODE_FOUND - True if stepcode 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.
+# =============================================================================
+
+# 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
+ steputils
+ )
+
+set(STEPCODE_EXEC
+ exp2cxx
+ exppp
+ )
+
+# 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_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)
+ 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)
+ 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_LIBRARY
STEPCODE_INCLUDE_DIR)
+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})
- set(STEPCODE_LIBRARIES ${STEPCODE_LIBRARY})
+ set(STEPCODE_INCLUDE_DIRS
+ ${STEPCODE_BASE_DIR}
+ ${STEPCODE_DAI_DIR}
+ ${STEPCODE_EDITOR_DIR}
+ ${STEPCODE_STEPCORE_DIR}
+ ${STEPCODE_UTILS_DIR}
+ ${STEPCODE_EXPPP_DIR}
+ ${STEPCODE_EXPRESS_DIR}
+ ${STEPCODE_INCLUDE_DIR}
+ )
+ set(STEPCODE_LIBRARIES
+ ${STEPCODE_BASE_LIBRARY}
+ ${STEPCODE_EXPRESS_LIBRARY}
+ ${STEPCODE_EXPPP_LIBRARY}
+ ${STEPCODE_CORE_LIBRARY}
+ ${STEPCODE_EDITOR_LIBRARY}
+ ${STEPCODE_DAI_LIBRARY}
+ ${STEPCODE_UTILS_LIBRARY}
+ )
endif()
# Local Variables:
Modified: brlcad/branches/thirdparty_rework/src/conv/step/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/conv/step/CMakeLists.txt
2020-10-13 13:21:12 UTC (rev 77409)
+++ brlcad/branches/thirdparty_rework/src/conv/step/CMakeLists.txt
2020-10-13 15:30:02 UTC (rev 77410)
@@ -15,8 +15,8 @@
# Also quell a GCC warning for similar reasons.
CHECK_CXX_FLAG("Wno-ignored-qualifiers")
+find_package(STEPCODE)
-set(STEPCODE_DIR ${BRLCAD_SOURCE_DIR}/src/superbuild/stepcode)
set(STEP_INCLUDE_DIRS
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
@@ -23,14 +23,7 @@
${BU_INCLUDE_DIRS}
${RT_INCLUDE_DIRS}
${WDB_INCLUDE_DIRS}
- ${STEPCODE_DIR}/include
- ${STEPCODE_DIR}/src/base
- ${STEPCODE_DIR}/src/clstepcore
- ${STEPCODE_DIR}/src/cleditor
- ${STEPCODE_DIR}/src/clutils
- ${STEPCODE_DIR}/src/cldai
- ${STEPCODE_DIR}/src/test
- ${CMAKE_BINARY_DIR}/src/other/stepcode/include
+ ${STEPCODE_INCLUDE_DIRS}
${BRLCAD_SOURCE_DIR}/src/libbrep #Temporary until headers reworked
)
BRLCAD_INCLUDE_DIRS(STEP_INCLUDE_DIRS)
@@ -72,7 +65,7 @@
)
add_custom_command(OUTPUT ${EXPRESS_OUTPUT}
${SCHEMA_OUT_DIR}/step_express_${SCHEMA_NAME}.done
- COMMAND ${EXP2CXX_EXEC} ARGS ${SCHEMA_FILE} >
${SCHEMA_OUT_DIR}/step_express_${SCHEMA_NAME}.log 2>&1
+ COMMAND ${EXP2CXX_EXECUTABLE} ARGS ${SCHEMA_FILE} >
${SCHEMA_OUT_DIR}/step_express_${SCHEMA_NAME}.log 2>&1
COMMAND ${CMAKE_COMMAND} -E touch
${SCHEMA_OUT_DIR}/step_express_${SCHEMA_NAME}.done
DEPENDS ${SCHEMA_FILE} ${EXP2CXX_EXECUTABLE_TARGET}
WORKING_DIRECTORY ${SCHEMA_OUT_DIR}
Modified: brlcad/branches/thirdparty_rework/src/conv/step/g-step/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/conv/step/g-step/CMakeLists.txt
2020-10-13 13:21:12 UTC (rev 77409)
+++ brlcad/branches/thirdparty_rework/src/conv/step/g-step/CMakeLists.txt
2020-10-13 15:30:02 UTC (rev 77410)
@@ -2,12 +2,12 @@
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
- ${BRLCAD_BINARY_DIR}/${INCLUDE_DIR}/stepcode
+ ${STEPCODE_INCLUDE_DIRS}
)
link_directories(${CMAKE_BINARY_DIR}/${LIB_DIR})
-set(STEP_SCHEMA_FILE ${STEPCODE_DIR}/data/ap203/ap203.exp)
+set(STEP_SCHEMA_FILE
${CMAKE_SOURCE_DIR}/src/superbuild/stepcode/data/ap203/ap203.exp)
add_definitions(-DAP203)
GENERATE_SCHEMA_INPUTS(${STEP_SCHEMA_FILE} gstep)
Modified: brlcad/branches/thirdparty_rework/src/conv/step/step-g/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/conv/step/step-g/CMakeLists.txt
2020-10-13 13:21:12 UTC (rev 77409)
+++ brlcad/branches/thirdparty_rework/src/conv/step/step-g/CMakeLists.txt
2020-10-13 15:30:02 UTC (rev 77410)
@@ -1,7 +1,7 @@
set(AP203_INCLUDE_DIRS
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
- ${BRLCAD_BINARY_DIR}/${INCLUDE_DIR}/stepcode
+ ${STEPCODE_INCLUDE_DIRS}
${OPENNURBS_INCLUDE_DIRS}
)
BRLCAD_INCLUDE_DIRS(AP203_INCLUDE_DIRS)
@@ -8,7 +8,7 @@
link_directories(${CMAKE_BINARY_DIR}/${LIB_DIR})
-set(STEP_SCHEMA_FILE ${STEPCODE_DIR}/data/ap203/ap203.exp)
+set(STEP_SCHEMA_FILE
${CMAKE_SOURCE_DIR}/src/superbuild/stepcode/data/ap203/ap203.exp)
add_definitions(-DAP203)
#set(STEP_SCHEMA_FILE ${STEPCODE_DIR}/data/ap203e2/ap203e2_mim_lf.exp)
#add_definitions(-DAP203e2)
Modified: brlcad/branches/thirdparty_rework/src/conv/step/util/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/conv/step/util/CMakeLists.txt
2020-10-13 13:21:12 UTC (rev 77409)
+++ brlcad/branches/thirdparty_rework/src/conv/step/util/CMakeLists.txt
2020-10-13 15:30:02 UTC (rev 77410)
@@ -1,12 +1,12 @@
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
- ${BRLCAD_BINARY_DIR}/${INCLUDE_DIR}/stepcode
+ ${STEPCODE_INCLUDE_DIRS}
)
link_directories(${CMAKE_BINARY_DIR}/${LIB_DIR})
-set(STEP_SCHEMA_FILE ${STEPCODE_DIR}/data/ap203/ap203.exp)
+set(STEP_SCHEMA_FILE
${CMAKE_SOURCE_DIR}/src/superbuild/stepcode/data/ap203/ap203.exp)
add_definitions(-DAP203)
GENERATE_SCHEMA_INPUTS(${STEP_SCHEMA_FILE} list_elements)
Modified: brlcad/branches/thirdparty_rework/src/superbuild/stepcode.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/src/superbuild/stepcode.cmake
2020-10-13 13:21:12 UTC (rev 77409)
+++ brlcad/branches/thirdparty_rework/src/superbuild/stepcode.cmake
2020-10-13 15:30:02 UTC (rev 77410)
@@ -147,6 +147,49 @@
clstepcore/complexSupport.h
)
+ set(STEPCODE_BASE_DIR
${CMAKE_BINARY_DIR}/$<CONFIG>/${INCLUDE_DIR}/stepcode/base CACHE STRING
"Building bundled STEPCODE" FORCE)
+ set(STEPCODE_DAI_DIR
${CMAKE_BINARY_DIR}/$<CONFIG>/${INCLUDE_DIR}/stepcode/cldai CACHE STRING
"Building bundled STEPCODE" FORCE)
+ set(STEPCODE_EDITOR_DIR
${CMAKE_BINARY_DIR}/$<CONFIG>/${INCLUDE_DIR}/stepcode/cleditor CACHE STRING
"Building bundled STEPCODE" FORCE)
+ set(STEPCODE_STEPCORE_DIR
${CMAKE_BINARY_DIR}/$<CONFIG>/${INCLUDE_DIR}/stepcode/clstepcore CACHE STRING
"Building bundled STEPCODE" FORCE)
+ set(STEPCODE_UTILS_DIR
${CMAKE_BINARY_DIR}/$<CONFIG>/${INCLUDE_DIR}/stepcode/clutils CACHE STRING
"Building bundled STEPCODE" FORCE)
+ set(STEPCODE_EXPPP_DIR
${CMAKE_BINARY_DIR}/$<CONFIG>/${INCLUDE_DIR}/stepcode/exppp CACHE STRING
"Building bundled STEPCODE" FORCE)
+ set(STEPCODE_EXPRESS_DIR
${CMAKE_BINARY_DIR}/$<CONFIG>/${INCLUDE_DIR}/stepcode/express CACHE STRING
"Building bundled STEPCODE" FORCE)
+ set(STEPCODE_INCLUDE_DIR
${CMAKE_BINARY_DIR}/$<CONFIG>/${INCLUDE_DIR}/stepcode CACHE STRING "Building
bundled STEPCODE" FORCE)
+
+ set(STEPCODE_BASE_LIBRARY libbase CACHE STRING "Building bundled STEPCODE"
FORCE)
+ set(STEPCODE_EXPRESS_LIBRARY libexpress CACHE STRING "Building bundled
STEPCODE" FORCE)
+ set(STEPCODE_EXPPP_LIBRARY libexppp CACHE STRING "Building bundled STEPCODE"
FORCE)
+ set(STEPCODE_CORE_LIBRARY libstepcore CACHE STRING "Building bundled
STEPCODE" FORCE)
+ set(STEPCODE_EDITOR_LIBRARY libstepeditor CACHE STRING "Building bundled
STEPCODE" FORCE)
+ set(STEPCODE_DAI_LIBRARY libstepdai CACHE STRING "Building bundled STEPCODE"
FORCE)
+ set(STEPCODE_UTILS_LIBRARY libsteputils CACHE STRING "Building bundled
STEPCODE" FORCE)
+
+ set(EXP2CXX_EXECUTABLE exp2cxx_exe CACHE STRING "Building bundled STEPCODE"
FORCE)
+ set(EXPPP_EXECUTABLE exppp_exe CACHE STRING "Building bundled STEPCODE"
FORCE)
+
+ set(STEPCODE_INCLUDE_DIRS
+ ${STEPCODE_BASE_DIR}
+ ${STEPCODE_DAI_DIR}
+ ${STEPCODE_EDITOR_DIR}
+ ${STEPCODE_STEPCORE_DIR}
+ ${STEPCODE_UTILS_DIR}
+ ${STEPCODE_EXPPP_DIR}
+ ${STEPCODE_EXPRESS_DIR}
+ ${STEPCODE_DIR}
+ CACHE STRING "Directories containing STEPCODE headers." FORCE)
+
+ set(STEPCODE_LIBRARIES
+ ${STEPCODE_BASE_LIBRARY}
+ ${STEPCODE_EXPRESS_LIBRARY}
+ ${STEPCODE_EXPPP_LIBRARY}
+ ${STEPCODE_CORE_LIBRARY}
+ ${STEPCODE_EDITOR_LIBRARY}
+ ${STEPCODE_DAI_LIBRARY}
+ ${STEPCODE_UTILS_LIBRARY}
+ CACHE STRING "Directories containing STEPCODE headers." FORCE)
+
+ set(STEPCODE_DIR ${CMAKE_BINARY_DIR}/$<CONFIG>/stepcode CACHE STRING
"Building bundled STEPCODE" FORCE)
+
SetTargetFolder(STEPCODE_BLD "Third Party Libraries")
SetTargetFolder(stepcode "Third Party Libraries")
endif(BRLCAD_SC_BUILD)
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