Provide patches provided by consumers of draco. (#32281)
This commit is contained in:
		 Kelly (KT) Thompson
					Kelly (KT) Thompson
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							00b244853e
						
					
				
				
					commit
					1c61f0420a
				
			| @@ -0,0 +1,56 @@ | |||||||
|  | From ce2d856a516a592cf6c123d2862e9bbdaa4d6926 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Howard Pritchard <hppritcha@gmail.com> | ||||||
|  | Date: Mon, 7 Dec 2020 13:53:45 -0700 | ||||||
|  | Subject: [PATCH] CMAKE: add option to not use QT | ||||||
|  |  | ||||||
|  | Signed-off-by: Howard Pritchard <hppritcha@gmail.com> | ||||||
|  |  | ||||||
|  | diff --git a/config/vendor_libraries.cmake b/config/vendor_libraries.cmake | ||||||
|  | index 5a3e9d0c..8782170d 100644 | ||||||
|  | --- a/config/vendor_libraries.cmake | ||||||
|  | +++ b/config/vendor_libraries.cmake | ||||||
|  | @@ -318,22 +318,27 @@ endmacro() | ||||||
|  |  macro( setupQt ) | ||||||
|  |    message( STATUS "Looking for Qt SDK...." ) | ||||||
|  |   | ||||||
|  | -  # Find the QtWidgets library | ||||||
|  | -  find_package(Qt5 COMPONENTS Widgets QUIET) | ||||||
|  | +  option (USE_QT "Build QT support for Draco" ON) | ||||||
|  |   | ||||||
|  | -  if( Qt5Core_DIR ) | ||||||
|  | -    mark_as_advanced( Qt5Core_DIR Qt5Gui_DIR Qt5Gui_EGL_LIBRARY | ||||||
|  | -      Qt5Widgets_DIR QTDIR) | ||||||
|  | -    message( STATUS "Looking for Qt SDK....found ${Qt5Core_DIR}" ) | ||||||
|  | -  else() | ||||||
|  | -    message( STATUS "Looking for Qt SDK....not found." ) | ||||||
|  | -  endif() | ||||||
|  | +  if( USE_QT ) | ||||||
|  | +    # Find the QtWidgets library | ||||||
|  | +    find_package(Qt5 COMPONENTS Widgets QUIET) | ||||||
|  |   | ||||||
|  | -  set_package_properties( Qt PROPERTIES | ||||||
|  | -    URL "http://qt.io" | ||||||
|  | -    DESCRIPTION "Qt is a comprehensive cross-platform C++ application framework." | ||||||
|  | -    TYPE OPTIONAL | ||||||
|  | -    PURPOSE "Only needed to demo qt version of draco_diagnostics." ) | ||||||
|  | +    if( Qt5Core_DIR ) | ||||||
|  | +      mark_as_advanced( Qt5Core_DIR Qt5Gui_DIR Qt5Gui_EGL_LIBRARY | ||||||
|  | +        Qt5Widgets_DIR QTDIR) | ||||||
|  | +      message( STATUS "Looking for Qt SDK....found ${Qt5Core_DIR}" ) | ||||||
|  | +    else() | ||||||
|  | +      message( STATUS "Looking for Qt SDK....not found." ) | ||||||
|  | +    endif() | ||||||
|  | + | ||||||
|  | +    set_package_properties( Qt PROPERTIES | ||||||
|  | +      URL "http://qt.io" | ||||||
|  | +      DESCRIPTION "Qt is a comprehensive cross-platform C++ application framework." | ||||||
|  | +      TYPE OPTIONAL | ||||||
|  | +      PURPOSE "Only needed to demo qt version of draco_diagnostics." ) | ||||||
|  | + | ||||||
|  | +  endif() | ||||||
|  |   | ||||||
|  |  endmacro() | ||||||
|  |   | ||||||
|  | --  | ||||||
|  | 2.26.2 | ||||||
|  |  | ||||||
							
								
								
									
										25
									
								
								var/spack/repos/builtin/packages/draco/d750-intel17.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								var/spack/repos/builtin/packages/draco/d750-intel17.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | Allow Draco-7_5_0 to compile with intel-17.0.4 by removing components experimental and cdi_CPEloss. | ||||||
|  | This bug is tracked at https://github.com/kokkos/mdspan/issues/16 | ||||||
|  |  | ||||||
|  | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt | ||||||
|  | index d1aec250..9ebbf8de 100755 | ||||||
|  | --- a/src/CMakeLists.txt | ||||||
|  | +++ b/src/CMakeLists.txt | ||||||
|  | @@ -52,7 +52,7 @@ add_dir_if_exists( c4 )           # needs ds++ | ||||||
|  |  add_dir_if_exists( cdi )          # needs ds++ | ||||||
|  |  add_dir_if_exists( compton )      # needs ds++, CSK | ||||||
|  |  add_dir_if_exists( device )       # needs ds++ | ||||||
|  | -add_dir_if_exists( experimental ) # only the tests need ds++ | ||||||
|  | +#add_dir_if_exists( experimental ) # only the tests need ds++ | ||||||
|  |  add_dir_if_exists( lapack_wrap )  # needs ds++ | ||||||
|  |  add_dir_if_exists( linear )       # needs ds++ | ||||||
|  |  add_dir_if_exists( memory )       # needs ds++ | ||||||
|  | @@ -66,7 +66,7 @@ add_dir_if_exists( viz )          # needs ds++ | ||||||
|  |  # Level 3 | ||||||
|  |  message(" ") | ||||||
|  |  message( STATUS "Configuring Level 3 packages --" ) | ||||||
|  | -add_dir_if_exists( cdi_CPEloss )  # needs cdi, units | ||||||
|  | +#add_dir_if_exists( cdi_CPEloss )  # needs cdi, units | ||||||
|  |  add_dir_if_exists( cdi_ipcress )  # needs cdi | ||||||
|  |  add_dir_if_exists( cdi_ndi )      # needs ds++, rng, cdi | ||||||
|  |  add_dir_if_exists( diagnostics )  # needs c4 | ||||||
| @@ -0,0 +1,77 @@ | |||||||
|  | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||||||
|  | index f7a69c95..e44d3496 100644 | ||||||
|  | --- a/CMakeLists.txt | ||||||
|  | +++ b/CMakeLists.txt | ||||||
|  | @@ -72,7 +72,6 @@ dbsConfigInfo() | ||||||
|  |  # Platform Checks: Is HOST_NAME_MAX defined?  Is WinSock2.h available?  Is | ||||||
|  |  # gethostname() available? | ||||||
|  |  include( platform_checks ) | ||||||
|  | -query_craype() | ||||||
|  |  set_draco_uname() | ||||||
|  |  query_have_gethostname() | ||||||
|  |  query_have_maxpathlen() | ||||||
|  | diff --git a/config/platform_checks.cmake b/config/platform_checks.cmake | ||||||
|  | index 3ddcdab3..e66fd5e8 100644 | ||||||
|  | --- a/config/platform_checks.cmake | ||||||
|  | +++ b/config/platform_checks.cmake | ||||||
|  | @@ -64,48 +64,6 @@ Platform Checks... | ||||||
|  |  ") | ||||||
|  |  dbs_set_sitename() | ||||||
|  |   | ||||||
|  | -#------------------------------------------------------------------------------# | ||||||
|  | -# Sanity checks for Cray Programming Environments | ||||||
|  | -# | ||||||
|  | -# - Ensure CMAKE_EXE_LINKER_FLAGS contains "-dynamic" | ||||||
|  | -# - Ensure that the compilers given to cmake are actually Cray compiler | ||||||
|  | -#   wrappers. | ||||||
|  | -#------------------------------------------------------------------------------# | ||||||
|  | -macro( query_craype ) | ||||||
|  | - | ||||||
|  | -  # We expect developers to use the Cray compiler wrappers. See also | ||||||
|  | -  # https://cmake.org/cmake/help/latest/module/FindMPI.html | ||||||
|  | -  # | ||||||
|  | -  # Skip this check if building from within spack. | ||||||
|  | -  if( CMAKE_CXX_COMPILER_WRAPPER STREQUAL CrayPrgEnv AND | ||||||
|  | -      NOT "$ENV{CXX}" MATCHES "$ENV{SPACK_ROOT}/lib/spack/env/" ) | ||||||
|  | -    if( NOT "$ENV{CXX}" MATCHES "CC$" OR | ||||||
|  | -        NOT "$ENV{CC}" MATCHES "cc$" OR | ||||||
|  | -        NOT "$ENV{FC}" MATCHES "ftn$" OR | ||||||
|  | -        NOT "$ENV{CRAYPE_LINK_TYPE}" MATCHES "dynamic$" ) | ||||||
|  | -      message( FATAL_ERROR | ||||||
|  | -        "The build system requires that the Cray compiler wrappers (CC, cc, " | ||||||
|  | -        "ftn) be used when configuring this product on a Cray system " | ||||||
|  | -        "(CMAKE_CXX_COMPILER_WRAPPER = ${CMAKE_CXX_COMPILER_WRAPPER}). The " | ||||||
|  | -        "development environment must also support dynamic linking.  The " | ||||||
|  | -        "build system thinks you are trying to use:\n" | ||||||
|  | -        "  CMAKE_CXX_COMPILER     = ${CMAKE_CXX_COMPILER}\n" | ||||||
|  | -        "  CMAKE_C_COMPILER       = ${CMAKE_C_COMPILER}\n" | ||||||
|  | -        "  CMAKE_Fortran_COMPILER = ${CMAKE_Fortran_COMPILER}\n" | ||||||
|  | -        "  CRAYPE_LINK_TYPE       = $ENV{CRAYPE_LINK_TYPE}\n" | ||||||
|  | -        "If you are working on a system that runs the Cray Programming " | ||||||
|  | -        "Environment, try setting the following variables and rerunning cmake " | ||||||
|  | -        "from a clean build directory:\n" | ||||||
|  | -        "   export CXX=`which CC`\n" | ||||||
|  | -        "   export CC=`which cc`\n" | ||||||
|  | -        "   export FC=`which ftn`\n" | ||||||
|  | -        "   export CRAYPE_LINK_TYPE=dynamic\n" | ||||||
|  | -        "Otherwise please email this error message and other related " | ||||||
|  | -        "information to draco@lanl.gov.\n" ) | ||||||
|  | -    endif() | ||||||
|  | -  endif() | ||||||
|  | -endmacro() | ||||||
|  | - | ||||||
|  |  ##---------------------------------------------------------------------------## | ||||||
|  |  ## Determine System Type and System Names | ||||||
|  |  ## | ||||||
|  | diff --git a/config/vendor_libraries.cmake b/config/vendor_libraries.cmake | ||||||
|  | index 7112e786..55596abe 100644 | ||||||
|  | --- a/config/vendor_libraries.cmake | ||||||
|  | +++ b/config/vendor_libraries.cmake | ||||||
|  | @@ -786,7 +786,6 @@ Looking for Draco...\") | ||||||
|  |   | ||||||
|  |    # CMake macros that check the system for features like 'gethostname', etc. | ||||||
|  |    include( platform_checks ) | ||||||
|  | -  query_craype() | ||||||
|  |   | ||||||
|  |    # Set compiler options | ||||||
|  |    include( compilerEnv ) | ||||||
| @@ -49,6 +49,7 @@ class Draco(CMakePackage): | |||||||
|     variant("caliper", default=False, description="Enable caliper timers support") |     variant("caliper", default=False, description="Enable caliper timers support") | ||||||
|     variant("cuda", default=False, description="Enable Cuda/GPU support") |     variant("cuda", default=False, description="Enable Cuda/GPU support") | ||||||
|     variant("eospac", default=True, description="Enable EOSPAC support") |     variant("eospac", default=True, description="Enable EOSPAC support") | ||||||
|  |     variant("fast_fma", default=False, description="Enable fast FMA operations") | ||||||
|     variant("lapack", default=True, description="Enable LAPACK wrapper") |     variant("lapack", default=True, description="Enable LAPACK wrapper") | ||||||
|     variant("libquo", default=True, description="Enable Quo wrapper") |     variant("libquo", default=True, description="Enable Quo wrapper") | ||||||
|     variant("parmetis", default=True, description="Enable Parmetis support") |     variant("parmetis", default=True, description="Enable Parmetis support") | ||||||
| @@ -90,8 +91,12 @@ class Draco(CMakePackage): | |||||||
|     patch("d710-python2.patch", when="@7.1.0^python@2.7:2") |     patch("d710-python2.patch", when="@7.1.0^python@2.7:2") | ||||||
|     patch("d730.patch", when="@7.3.0:7.3") |     patch("d730.patch", when="@7.3.0:7.3") | ||||||
|     patch("d740.patch", when="@7.4.0:7.4") |     patch("d740.patch", when="@7.4.0:7.4") | ||||||
|  |     patch("d750-intel17.patch", when="@7.5.0:7.6.99%intel@17.0.0:18.0.0") | ||||||
|     patch("d760-cray.patch", when="@7.6.0") |     patch("d760-cray.patch", when="@7.6.0") | ||||||
|     patch("d770-nocuda.patch", when="@7.7.0") |     patch("d770-nocuda.patch", when="@7.7.0") | ||||||
|  |     patch("d770-query_craype.patch", when="@7.7.0") | ||||||
|  |     patch("smpi.patch", when="@:7.6.99") | ||||||
|  |     patch("CMAKE-add-option-to-not-use-QT.patch", when="@7.8.0") | ||||||
| 
 | 
 | ||||||
|     def url_for_version(self, version): |     def url_for_version(self, version): | ||||||
|         url = "https://github.com/lanl/Draco/archive/draco-{0}.zip" |         url = "https://github.com/lanl/Draco/archive/draco-{0}.zip" | ||||||
| @@ -107,6 +112,14 @@ def cmake_args(self): | |||||||
|                 "-DUSE_QT={0}".format("ON" if "+qt" in self.spec else "OFF"), |                 "-DUSE_QT={0}".format("ON" if "+qt" in self.spec else "OFF"), | ||||||
|             ] |             ] | ||||||
|         ) |         ) | ||||||
|  |         if "+fast_fma" in self.spec: | ||||||
|  |             options.extend( | ||||||
|  |                 [ | ||||||
|  |                     "-DDRACO_ROUNDOFF_MODE={0}".format( | ||||||
|  |                         "FAST" if "build_type=Release" in self.spec else "ACCURATE" | ||||||
|  |                     ) | ||||||
|  |                 ] | ||||||
|  |             ) | ||||||
|         return options |         return options | ||||||
| 
 | 
 | ||||||
|     def check(self): |     def check(self): | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								var/spack/repos/builtin/packages/draco/smpi.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								var/spack/repos/builtin/packages/draco/smpi.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | The LANL Darwin platform calls the IBM Spectrum modules "smpi". | ||||||
|  | diff -up config/setupMPI.cmake.smpi config/setupMPI.cmake | ||||||
|  | --- a/config/setupMPI.cmake.smpi	2020-05-28 11:54:17.851957957 -0600 | ||||||
|  | +++ b/config/setupMPI.cmake	2020-05-28 11:55:35.018332601 -0600 | ||||||
|  | @@ -46,6 +46,7 @@ function( setMPIflavorVer ) | ||||||
|  |    elseif( "${MPIEXEC_EXECUTABLE}" MATCHES "mvapich2") | ||||||
|  |      set( MPI_FLAVOR "mvapich2" ) | ||||||
|  |    elseif( "${MPIEXEC_EXECUTABLE}" MATCHES "spectrum-mpi" OR | ||||||
|  | +      "${MPIEXEC_EXECUTABLE}" MATCHES "smpi" OR | ||||||
|  |        "${MPIEXEC_EXECUTABLE}" MATCHES "jsrun" ) | ||||||
|  |      set( MPI_FLAVOR "spectrum") | ||||||
|  |    endif() | ||||||
		Reference in New Issue
	
	Block a user