Revision: 77240
          http://sourceforge.net/p/brlcad/code/77240
Author:   starseeker
Date:     2020-09-26 01:20:57 +0000 (Sat, 26 Sep 2020)
Log Message:
-----------
First steps towards having the superbuild build something.

Modified Paths:
--------------
    brlcad/branches/thirdparty_rework/misc/CMake/ExternalProject_Target.cmake
    brlcad/branches/thirdparty_rework/misc/CMake/ThirdParty.cmake
    brlcad/branches/thirdparty_rework/src/other/libz/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/other/openNURBS/CMakeLists.txt
    brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt

Modified: 
brlcad/branches/thirdparty_rework/misc/CMake/ExternalProject_Target.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/misc/CMake/ExternalProject_Target.cmake   
2020-09-25 20:22:18 UTC (rev 77239)
+++ brlcad/branches/thirdparty_rework/misc/CMake/ExternalProject_Target.cmake   
2020-09-26 01:20:57 UTC (rev 77240)
@@ -17,10 +17,6 @@
 # to be ready.  The key variable CMAKE_BUILD_RPATH comes from running the
 # function cmake_set_rpath, which must be available.
 
-# Sophisticated argument parsing is needed (TODO - remove this line after
-# we require >3.4 CMake - after that it is built in
-include(CMakeParseArguments)
-
 # Custom patch utility to replace the build directory path with the install
 # directory path in text files - make sure CMAKE_BINARY_DIR and
 # CMAKE_INSTALL_PREFIX are finalized before generating this file!

Modified: brlcad/branches/thirdparty_rework/misc/CMake/ThirdParty.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/misc/CMake/ThirdParty.cmake       
2020-09-25 20:22:18 UTC (rev 77239)
+++ brlcad/branches/thirdparty_rework/misc/CMake/ThirdParty.cmake       
2020-09-26 01:20:57 UTC (rev 77240)
@@ -79,11 +79,11 @@
   # 0. Whether or not we're building the sources, we are tracking the files
   # that are supposed to be in the directory
   get_filename_component(DIR_NAME "${dir}" NAME)
-  if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${DIR_NAME}.dist")
-    message(FATAL_ERROR "Third party component ${DIR_NAME} does not have a 
dist file at \"${CMAKE_CURRENT_SOURCE_DIR}/${DIR_NAME}.dist\"")
-  endif(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${DIR_NAME}.dist")
-  include("${CMAKE_CURRENT_SOURCE_DIR}/${DIR_NAME}.dist")
-  CMAKEFILES_IN_DIR(${DIR_NAME}_ignore_files ${dir})
+  #if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${DIR_NAME}.dist")
+  #  message(FATAL_ERROR "Third party component ${DIR_NAME} does not have a 
dist file at \"${CMAKE_CURRENT_SOURCE_DIR}/${DIR_NAME}.dist\"")
+  #endif(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${DIR_NAME}.dist")
+  #include("${CMAKE_CURRENT_SOURCE_DIR}/${DIR_NAME}.dist")
+  #CMAKEFILES_IN_DIR(${DIR_NAME}_ignore_files ${dir})
 
   # 1. If any of the required flags are off, this extension is a no-go.
   set(DISABLE_STR "")

Modified: brlcad/branches/thirdparty_rework/src/other/libz/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/other/libz/CMakeLists.txt     
2020-09-25 20:22:18 UTC (rev 77239)
+++ brlcad/branches/thirdparty_rework/src/other/libz/CMakeLists.txt     
2020-09-26 01:20:57 UTC (rev 77240)
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.4.4)
+cmake_minimum_required(VERSION 3.12)
 set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
 
 project(zlib C)

Modified: brlcad/branches/thirdparty_rework/src/other/openNURBS/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/other/openNURBS/CMakeLists.txt        
2020-09-25 20:22:18 UTC (rev 77239)
+++ brlcad/branches/thirdparty_rework/src/other/openNURBS/CMakeLists.txt        
2020-09-26 01:20:57 UTC (rev 77240)
@@ -29,7 +29,7 @@
 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 # Minimum required version of CMake
-cmake_minimum_required(VERSION 3.1.3)
+cmake_minimum_required(VERSION 3.12)
 
 project(OPENNURBS)
 

Modified: brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt     
2020-09-25 20:22:18 UTC (rev 77239)
+++ brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt     
2020-09-26 01:20:57 UTC (rev 77240)
@@ -1,4 +1,259 @@
+# If targets are built, we want to group them in build tools that support
+# doing so.
+function(SetTargetFolder targetname folder)
+  if(TARGET ${targetname})
+    set_target_properties(${targetname} PROPERTIES FOLDER "${folder}")
+  endif(TARGET ${targetname})
+endfunction(SetTargetFolder)
+
+# Debugging flag for ExternalProject tools
+set(EXTPROJ_VERBOSE 0)
+
+# Load some CMake macros to handle the special case of third party libraries.
+include(ThirdParty)
+
+# Superbuilds use ExternalProject_Add, and BRL-CAD defines some additional
+# targets for managing them.
 include(ExternalProject)
+include(ExternalProject_Target)
+
+set(BRLCAD_DEPS)
+
+###############################################################################
+#                 zlib compression/decompression library
+###############################################################################
+
+set (zlib_DESCRIPTION "
+Option for enabling and disabling compilation of the zlib library
+provided with BRL-CAD's source distribution.  Default is AUTO,
+responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
+first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
+")
+
+THIRD_PARTY(libz ZLIB zlib zlib_DESCRIPTION ALIASES ENABLE_ZLIB ENABLE_LIBZ)
+
+if (${CMAKE_PROJECT_NAME}_ZLIB_BUILD)
+
+  set(ZLIB_VERSION 1.2.11)
+
+  set(Z_PREFIX_STR "brl_")
+  add_definitions(-DZ_PREFIX)
+  add_definitions(-DZ_PREFIX_STR=${Z_PREFIX_STR})
+  set(Z_PREFIX_STR "${Z_PREFIX_STR}" CACHE STRING "prefix for zlib functions" 
FORCE)
+
+  ExternalProject_Add(ZLIB_BLD
+    SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../other/libz"
+    BUILD_ALWAYS ${EXTERNAL_BUILD_UPDATE} ${LOG_OPTS}
+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} -DLIB_DIR=${LIB_DIR} 
-DBIN_DIR=${BIN_DIR}
+    -DCMAKE_INSTALL_RPATH=${CMAKE_BUILD_RPATH} 
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
+    -DZ_PREFIX_STR=${Z_PREFIX_STR}
+    )
+  if (NOT MSVC)
+    ExternalProject_Target(zlib ZLIB_BLD
+      OUTPUT_FILE libz${CMAKE_SHARED_LIBRARY_SUFFIX}.${ZLIB_VERSION}
+      STATIC_OUTPUT_FILE libz${CMAKE_STATIC_LIBRARY_SUFFIX}
+      SYMLINKS 
"libz${CMAKE_SHARED_LIBRARY_SUFFIX};libz${CMAKE_SHARED_LIBRARY_SUFFIX}.1"
+      LINK_TARGET "libz${CMAKE_SHARED_LIBRARY_SUFFIX}"
+      RPATH
+      )
+  else (NOT MSVC)
+    ExternalProject_Target(zlib ZLIB_BLD
+      OUTPUT_FILE zlib${CMAKE_SHARED_LIBRARY_SUFFIX}
+      STATIC_OUTPUT_FILE zlibstatic${CMAKE_STATIC_LIBRARY_SUFFIX}
+      LINK_TARGET_DEBUG "zlibd${CMAKE_SHARED_LIBRARY_SUFFIX}"
+      STATIC_LINK_TARGET_DEBUG "zlibstaticd${CMAKE_STATIC_LIBRARY_SUFFIX}"
+      )
+  endif (NOT MSVC)
+
+  ExternalProject_ByProducts(ZLIB_BLD ${INCLUDE_DIR}
+    zconf.h
+    zlib.h
+    )
+
+  list(APPEND BRLCAD_DEPS ZLIB_BLD)
+
+  set(ZLIB_LIBRARIES zlib CACHE STRING "Building bundled zlib" FORCE)
+  set(ZLIB_INCLUDE_DIRS "${CMAKE_BINARY_DIR}/${INCLUDE_DIR}" CACHE STRING 
"Directory containing zlib headers." FORCE)
+
+  SetTargetFolder(ZLIB_BLD "Third Party Libraries")
+  SetTargetFolder(zlib "Third Party Libraries")
+
+else (${CMAKE_PROJECT_NAME}_ZLIB_BUILD)
+
+  set(Z_PREFIX_STR "" CACHE STRING "clear prefix for zlib functions" FORCE)
+  set(Z_PREFIX_STR)
+  set(ZLIB_LIBRARIES ${ZLIB_LIBRARY_RELEASE} CACHE STRING "ZLIB_LIBRARIES" 
FORCE)
+  set(ZLIB_INCLUDE_DIRS "${ZLIB_INCLUDE_DIR}" CACHE STRING "ZLIB include 
directory" FORCE)
+
+endif (${CMAKE_PROJECT_NAME}_ZLIB_BUILD)
+
+###############################################################################
+#           openNURBS - Non-Uniform Rational B-Spline support
+###############################################################################
+
+set(opennurbs_DESCRIPTION "
+Option for enabling and disabling compilation of the openNURBS library
+provided with BRL-CAD's source code.  Default is AUTO, responsive to
+the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
+version if BRLCAD_BUNDLED_LIBS is also AUTO.
+")
+THIRD_PARTY(openNURBS OPENNURBS openNURBS opennurbs_DESCRIPTION ALIASES 
ENABLE_OPENNURBS FLAGS NOSYS)
+
+if (${CMAKE_PROJECT_NAME}_OPENNURBS_BUILD)
+
+
+  set(OPENNURBS_MAJOR_VERSION 2012)
+  set(OPENNURBS_MINOR_VERSION 10)
+  set(OPENNURBS_PATCH_VERSION 245)
+  set(OPENNURBS_VERSION 
${OPENNURBS_MAJOR_VERSION}.${OPENNURBS_MINOR_VERSION}.${OPENNURBS_PATCH_VERSION})
+
+  # Because we use a custom name for zlib, we need to conditionally use a
+  # generator expression to set its location for FindZLIB.  So far, haven't
+  # found a less verbose way to make this work...
+  if (TARGET zlib)
+    ExternalProject_Add(OPENNURBS_BLD
+      SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../other/openNURBS"
+      BUILD_ALWAYS ${EXTERNAL_BUILD_UPDATE} ${LOG_OPTS}
+      CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} 
-DLIB_DIR=${LIB_DIR} -DBIN_DIR=${BIN_DIR}
+      -DCMAKE_INSTALL_RPATH=${CMAKE_BUILD_RPATH} 
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
+      -DZLIB_ROOT=${CMAKE_BINARY_DIR} 
-DZLIB_LIBRARY=$<TARGET_LINKER_FILE_DIR:zlib>/$<TARGET_LINKER_FILE_PREFIX:zlib>z_brl$<TARGET_LINKER_FILE_SUFFIX:zlib>
+      DEPENDS ${ZLIB_TARGET}
+      )
+  else (TARGET zlib)
+    ExternalProject_Add(OPENNURBS_BLD
+      SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../other/openNURBS"
+      BUILD_ALWAYS ${EXTERNAL_BUILD_UPDATE} ${LOG_OPTS}
+      CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR} 
-DLIB_DIR=${LIB_DIR} -DBIN_DIR=${BIN_DIR}
+      -DCMAKE_INSTALL_RPATH=${CMAKE_BUILD_RPATH} 
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
+      DEPENDS ${ZLIB_TARGET}
+      )
+  endif (TARGET zlib)
+
+  ExternalProject_Target(openNURBS OPENNURBS_BLD
+    OUTPUT_FILE libopenNURBS${CMAKE_SHARED_LIBRARY_SUFFIX}.${OPENNURBS_VERSION}
+    STATIC_OUTPUT_FILE libopenNURBS${CMAKE_STATIC_LIBRARY_SUFFIX}
+    SYMLINKS 
"libopenNURBS${CMAKE_SHARED_LIBRARY_SUFFIX};libopenNURBS${CMAKE_SHARED_LIBRARY_SUFFIX}.${OPENNURBS_MAJOR_VERSION}"
+    LINK_TARGET "libopenNURBS${CMAKE_SHARED_LIBRARY_SUFFIX}"
+    STATIC_LINK_TARGET "libopenNURBS${CMAKE_STATIC_LIBRARY_SUFFIX}"
+    RPATH
+    )
+
+  ExternalProject_ByProducts(OPENNURBS_BLD ${INCLUDE_DIR}
+    openNURBS/opennurbs.h
+    openNURBS/opennurbs_3dm.h
+    openNURBS/opennurbs_3dm_attributes.h
+    openNURBS/opennurbs_3dm_properties.h
+    openNURBS/opennurbs_3dm_settings.h
+    openNURBS/opennurbs_annotation.h
+    openNURBS/opennurbs_annotation2.h
+    openNURBS/opennurbs_arc.h
+    openNURBS/opennurbs_arccurve.h
+    openNURBS/opennurbs_archive.h
+    openNURBS/opennurbs_array.h
+    openNURBS/opennurbs_array_defs.h
+    openNURBS/opennurbs_base32.h
+    openNURBS/opennurbs_base64.h
+    openNURBS/opennurbs_beam.h
+    openNURBS/opennurbs_bezier.h
+    openNURBS/opennurbs_bitmap.h
+    openNURBS/opennurbs_bounding_box.h
+    openNURBS/opennurbs_box.h
+    openNURBS/opennurbs_brep.h
+    openNURBS/opennurbs_circle.h
+    openNURBS/opennurbs_color.h
+    openNURBS/opennurbs_compress.h
+    openNURBS/opennurbs_cone.h
+    openNURBS/opennurbs_crc.h
+    openNURBS/opennurbs_curve.h
+    openNURBS/opennurbs_curveonsurface.h
+    openNURBS/opennurbs_curveproxy.h
+    openNURBS/opennurbs_cylinder.h
+    openNURBS/opennurbs_defines.h
+    openNURBS/opennurbs_detail.h
+    openNURBS/opennurbs_dimstyle.h
+    openNURBS/opennurbs_dll_resource.h
+    openNURBS/opennurbs_ellipse.h
+    openNURBS/opennurbs_error.h
+    openNURBS/opennurbs_evaluate_nurbs.h
+    openNURBS/opennurbs_extensions.h
+    openNURBS/opennurbs_font.h
+    openNURBS/opennurbs_fpoint.h
+    openNURBS/opennurbs_fsp.h
+    openNURBS/opennurbs_fsp_defs.h
+    openNURBS/opennurbs_geometry.h
+    openNURBS/opennurbs_group.h
+    openNURBS/opennurbs_hatch.h
+    openNURBS/opennurbs_hsort_template.h
+    openNURBS/opennurbs_instance.h
+    openNURBS/opennurbs_intersect.h
+    openNURBS/opennurbs_knot.h
+    openNURBS/opennurbs_layer.h
+    openNURBS/opennurbs_light.h
+    openNURBS/opennurbs_line.h
+    openNURBS/opennurbs_linecurve.h
+    openNURBS/opennurbs_linestyle.h
+    openNURBS/opennurbs_linetype.h
+    openNURBS/opennurbs_lookup.h
+    openNURBS/opennurbs_mapchan.h
+    openNURBS/opennurbs_massprop.h
+    openNURBS/opennurbs_material.h
+    openNURBS/opennurbs_math.h
+    openNURBS/opennurbs_matrix.h
+    openNURBS/opennurbs_memory.h
+    openNURBS/opennurbs_mesh.h
+    openNURBS/opennurbs_nurbscurve.h
+    openNURBS/opennurbs_nurbssurface.h
+    openNURBS/opennurbs_object.h
+    openNURBS/opennurbs_object_history.h
+    openNURBS/opennurbs_objref.h
+    openNURBS/opennurbs_offsetsurface.h
+    openNURBS/opennurbs_optimize.h
+    openNURBS/opennurbs_plane.h
+    openNURBS/opennurbs_planesurface.h
+    openNURBS/opennurbs_pluginlist.h
+    openNURBS/opennurbs_point.h
+    openNURBS/opennurbs_pointcloud.h
+    openNURBS/opennurbs_pointgeometry.h
+    openNURBS/opennurbs_pointgrid.h
+    openNURBS/opennurbs_polycurve.h
+    openNURBS/opennurbs_polyedgecurve.h
+    openNURBS/opennurbs_polyline.h
+    openNURBS/opennurbs_polylinecurve.h
+    openNURBS/opennurbs_qsort_template.h
+    openNURBS/opennurbs_rand.h
+    openNURBS/opennurbs_rendering.h
+    openNURBS/opennurbs_revsurface.h
+    openNURBS/opennurbs_rtree.h
+    openNURBS/opennurbs_sphere.h
+    openNURBS/opennurbs_string.h
+    openNURBS/opennurbs_sumsurface.h
+    openNURBS/opennurbs_surface.h
+    openNURBS/opennurbs_surfaceproxy.h
+    openNURBS/opennurbs_system.h
+    openNURBS/opennurbs_textlog.h
+    openNURBS/opennurbs_texture.h
+    openNURBS/opennurbs_texture_mapping.h
+    openNURBS/opennurbs_torus.h
+    openNURBS/opennurbs_unicode.h
+    openNURBS/opennurbs_userdata.h
+    openNURBS/opennurbs_uuid.h
+    openNURBS/opennurbs_version.h
+    openNURBS/opennurbs_viewport.h
+    openNURBS/opennurbs_workspace.h
+    openNURBS/opennurbs_x.h
+    openNURBS/opennurbs_xform.h
+    openNURBS/opennurbs_zlib.h
+    )
+
+  list(APPEND BRLCAD_DEPS OPENNURBS_BLD)
+
+endif (${CMAKE_PROJECT_NAME}_OPENNURBS_BUILD)
+
+###############################################################################
+#                    Primary BRL-CAD Compilation
+###############################################################################
+
+# We've built everything we needed to build - now we can build BRL-CAD itself
 ExternalProject_Add(BRLCAD_BLD
   SOURCE_DIR "${BRLCAD_SOURCE_DIR}"
   PREFIX ${BRLCAD_BINARY_DIR}/brlcad
@@ -6,6 +261,7 @@
   CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} 
-DLIB_DIR=${LIB_DIR} -DBIN_DIR=${BIN_DIR}
   -DCMAKE_INSTALL_RPATH=${CMAKE_BUILD_RPATH} 
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
   -DSUBBUILD=ON
+  DEPENDS ${BRLCAD_DEPS}
   )
 
 # Local Variables:

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