forked from rarias/jungle
		
	Add clsparse
This commit is contained in:
		
							parent
							
								
									019826d09e
								
							
						
					
					
						commit
						8aa336f990
					
				| @ -17,6 +17,7 @@ let | ||||
|     clangOmpss2NodesOmpv = callPackage ./pkgs/llvm-ompss2/default.nix { ompss2rt = final.nodes; openmp = final.openmpv; }; | ||||
|     clangOmpss2Unwrapped = callPackage ./pkgs/llvm-ompss2/clang.nix { }; | ||||
|     cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { }; | ||||
|     clsparse = callPackage ./pkgs/clsparse/package.nix { }; | ||||
|     #extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated | ||||
|     gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; | ||||
|     intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; | ||||
|  | ||||
							
								
								
									
										53
									
								
								pkgs/clsparse/install_target.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								pkgs/clsparse/install_target.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | ||||
| diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||||
| index 3d139ed..15ffc14 100644
 | ||||
| --- a/CMakeLists.txt
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -176,32 +179,22 @@ if( BUILD_clSPARSE OR BUILD_SAMPLES )
 | ||||
|    if( BUILD_clSPARSE ) | ||||
|      message( STATUS "Setting up clSPARSE external..." ) | ||||
|   | ||||
| -    if ( BUILD_SAMPLES )
 | ||||
| -      # If the user elects to build samples, then we must build and install clSPARSE
 | ||||
| -      # The install location is set as a subdirectory of the SuperBuild
 | ||||
| -      ExternalProject_Add(
 | ||||
| -        clSPARSE
 | ||||
| -        DEPENDS ${clSPARSE.Dependencies}
 | ||||
| -        SOURCE_DIR ${PROJECT_SOURCE_DIR}/src
 | ||||
| -        BINARY_DIR clSPARSE-build
 | ||||
| -        INSTALL_DIR clSPARSE-package
 | ||||
| -        CMAKE_ARGS ${clSPARSE.Cmake.Args} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
 | ||||
| -        -DBUILD_CLVERSION=${BUILD_CLVERSION} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
 | ||||
| -        -DUSE_SYSTEM_CL2HPP:BOOL=${USE_SYSTEM_CL2HPP}
 | ||||
| -      )
 | ||||
| -    else( )
 | ||||
| -      # If the user does not want to build samples, then build clSPARSE but don't automatically
 | ||||
| -      # install it
 | ||||
| -      ExternalProject_Add(
 | ||||
| -        clSPARSE
 | ||||
| -        DEPENDS ${clSPARSE.Dependencies}
 | ||||
| -        SOURCE_DIR ${PROJECT_SOURCE_DIR}/src
 | ||||
| -        BINARY_DIR clSPARSE-build
 | ||||
| -        CMAKE_ARGS ${clSPARSE.Cmake.Args} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
 | ||||
| -        -DBUILD_CLVERSION=${BUILD_CLVERSION} -DUSE_SYSTEM_CL2HPP:BOOL=${USE_SYSTEM_CL2HPP}
 | ||||
| -        INSTALL_COMMAND ""
 | ||||
| -      )
 | ||||
| -    endif( )
 | ||||
| +    ExternalProject_Add(
 | ||||
| +      clSPARSE
 | ||||
| +      DEPENDS ${clSPARSE.Dependencies}
 | ||||
| +      SOURCE_DIR ${PROJECT_SOURCE_DIR}/src
 | ||||
| +      BINARY_DIR clSPARSE-build
 | ||||
| +      INSTALL_DIR clSPARSE-package
 | ||||
| +      CMAKE_ARGS ${clSPARSE.Cmake.Args} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
 | ||||
| +      -DBUILD_CLVERSION=${BUILD_CLVERSION} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
 | ||||
| +      -DUSE_SYSTEM_CL2HPP:BOOL=${USE_SYSTEM_CL2HPP}
 | ||||
| +    )
 | ||||
| +
 | ||||
| +    install(
 | ||||
| +      DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/clSPARSE-package/
 | ||||
| +      DESTINATION ${CMAKE_INSTALL_PREFIX}
 | ||||
| +      USE_SOURCE_PERMISSIONS
 | ||||
| +    )
 | ||||
|   | ||||
|    endif( ) | ||||
|   | ||||
							
								
								
									
										70
									
								
								pkgs/clsparse/package.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								pkgs/clsparse/package.nix
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,70 @@ | ||||
| { | ||||
|   lib, | ||||
|   stdenv, | ||||
|   fetchFromGitHub, | ||||
|   fetchpatch, | ||||
|   boost, | ||||
|   gtest, | ||||
|   ocl-icd, | ||||
|   opencl-headers, | ||||
|   opencl-clhpp, | ||||
|   cmake, | ||||
| }: | ||||
| 
 | ||||
| stdenv.mkDerivation rec { | ||||
|   pname = "clsparse"; | ||||
|   version = "0.10.2.0"; | ||||
| 
 | ||||
|   src = fetchFromGitHub { | ||||
|     owner = "clMathLibraries"; | ||||
|     repo = "clSPARSE"; | ||||
|     rev = "v${version}"; | ||||
|     hash = "sha256-jIauCtUyPEIx7pFI3qH0WagV+t/fvro0OsGgONBJm0s="; | ||||
|   }; | ||||
| 
 | ||||
|   patches = [ | ||||
|     ./pass_include_dir.patch | ||||
|     ./install_target.patch | ||||
|     (fetchpatch { | ||||
|       name = "remove-gettypecode.patch"; | ||||
|       url = "https://patch-diff.githubusercontent.com/raw/clMathLibraries/clSPARSE/pull/210.patch"; | ||||
|       hash = "sha256-9Q+tk7RMdWE4MCnbvWlsI0MIgBYKIWR2jIC1bICtIjU="; | ||||
|     }) | ||||
|   ]; | ||||
| 
 | ||||
|   postInstallPhase = '' | ||||
|     mv $installDir/lib64 lib | ||||
|     ln -s lib/ lib64 | ||||
|   ''; | ||||
| 
 | ||||
|   env.NIX_CFLAGS_COMPILE = "-std=c++17"; | ||||
| 
 | ||||
|   nativeBuildInputs = [ | ||||
|     cmake | ||||
|   ]; | ||||
| 
 | ||||
|   buildInputs = [ | ||||
|     boost | ||||
|     ocl-icd | ||||
|     opencl-headers | ||||
|     opencl-clhpp | ||||
|   ]; | ||||
| 
 | ||||
|   cmakeFlags = [ | ||||
|     "-DBUILD_Boost=OFF" | ||||
|     "-DBUILD_gMock=OFF" | ||||
|     "-DBUILD_MTX=OFF" | ||||
|     "-DBUILD_SAMPLES=OFF" | ||||
|     "-DUSE_SYSTEM_CL2HPP=ON" | ||||
|     "-DGMOCK_ROOT=${gtest}" | ||||
|     "-DGTEST_INCLUDE_DIR=${gtest.src}/googletest/include" | ||||
|   ]; | ||||
| 
 | ||||
|   meta = { | ||||
|     description = "A software library containing Sparse functions written in OpenCL"; | ||||
|     homepage = "https://github.com/clMathLibraries/clSPARSE"; | ||||
|     license = lib.licenses.asl20; | ||||
|     maintainers = with lib.maintainers; [ leixb ]; | ||||
|     platforms = lib.platforms.all; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										14
									
								
								pkgs/clsparse/pass_include_dir.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								pkgs/clsparse/pass_include_dir.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||||
| index 3d139ed..b7ea2d3 100644
 | ||||
| --- a/CMakeLists.txt
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -132,6 +132,9 @@ else( )
 | ||||
|        set( GMOCK_ROOT "$ENV{GMOCK_ROOT}" ) | ||||
|      endif( ) | ||||
|      list( APPEND clSPARSE.Cmake.Args -DGTEST_ROOT=${GMOCK_ROOT} ) | ||||
| +    if( DEFINED GTEST_INCLUDE_DIR )
 | ||||
| +      list( APPEND clSPARSE.Cmake.Args -DGTEST_INCLUDE_DIR=${GTEST_INCLUDE_DIR} )
 | ||||
| +    endif( )
 | ||||
|    endif( ) | ||||
|  endif( ) | ||||
|   | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user