1{ stdenv, fetchFromGitHub, cmake, boost, cryptopp, opencl-headers, opencl-info,
2 openmpi, ocl-icd, mesa, gbenchmark, gtest }:
3
4stdenv.mkDerivation rec {
5 pname = "ethash";
6 version = "0.4.4";
7
8 src =
9 fetchFromGitHub {
10 owner = "chfast";
11 repo = "ethash";
12 rev = "v${version}";
13 sha256 = "1gfs8s4nv2ikkn3rhzifr0dx5m0c1kpnhmzf8x6zlwhw3qwlc98w";
14 };
15
16 nativeBuildInputs = [
17 cmake
18 ];
19
20 buildInputs = [
21 boost
22 cryptopp
23 opencl-headers
24 opencl-info
25 openmpi
26 ocl-icd
27 mesa
28 ];
29
30 checkInputs = [
31 gbenchmark
32 gtest
33 ];
34
35 #preConfigure = ''
36 # sed -i 's/GTest::main//' test/unittests/CMakeLists.txt
37 # cat test/unittests/CMakeLists.txt
38 # ln -sfv ${gtest.src}/googletest gtest
39 #'';
40
41 # NOTE: disabling tests due to gtest issue
42 cmakeFlags = [
43 "-DHUNTER_ENABLED=OFF"
44 "-DETHASH_BUILD_TESTS=OFF"
45 #"-Dbenchmark_DIR=${gbenchmark}/lib/cmake/benchmark"
46 #"-DGTest_DIR=${gtest.dev}/lib/cmake/GTest"
47 #"-DGTest_DIR=${gtest.src}/googletest"
48 #"-DCMAKE_PREFIX_PATH=${gtest.dev}/lib/cmake"
49 ];
50
51 meta = with stdenv.lib; {
52 description = "PoW algorithm for Ethereum 1.0 based on Dagger-Hashimoto";
53 homepage = https://github.com/ethereum/ethash;
54 platforms = [ "x86_64-linux" ];
55 maintainers = with maintainers; [ nand0p ];
56 license = licenses.asl20;
57 };
58}