diff --git a/pkgs/development/compilers/coreclr/default.nix b/pkgs/development/compilers/coreclr/default.nix new file mode 100644 index 000000000000..094df5b5b631 --- /dev/null +++ b/pkgs/development/compilers/coreclr/default.nix @@ -0,0 +1,67 @@ +{ stdenv +, fetchFromGitHub +, which +, cmake +, clang_35 +, llvmPackages_36 +, libunwind +, gettext +, openssl +}: + +stdenv.mkDerivation rec { + name = "coreclr-${version}"; + version = "git-" + (builtins.substring 0 10 rev); + rev = "8c70800b5e8dc5535c379dec4a6fb32f7ab5e878"; + + src = fetchFromGitHub { + owner = "dotnet"; + repo = "coreclr"; + inherit rev; + sha256 = "1galskbnr9kdjjxpx5qywh49400swchhq5f54i16kxyr9k4mvq1f"; + }; + + buildInputs = [ + which + cmake + clang_35 + llvmPackages_36.llvm + llvmPackages_36.lldb + libunwind + gettext + openssl + ]; + + configurePhase = '' + # Prevent clang-3.5 (rather than just clang) from being selected as the compiler as that's + # not wrapped + substituteInPlace src/pal/tools/gen-buildsys-clang.sh --replace "which \"clang-" "which \"clang-DoNotFindThisOne" + + # Prevent the -nostdinc++ flag to be passed to clang, which causes a compilation error + substituteInPlace src/CMakeLists.txt --replace "if(NOT CLR_CMAKE_PLATFORM_DARWIN)" "if(FALSE)" + + patchShebangs build.sh + patchShebangs src/pal/tools/gen-buildsys-clang.sh + ''; + + buildPhase = "./build.sh"; + + installPhase = '' + pushd bin/Product/Linux.x64.Debug/ + mkdir -v -p $out/bin + cp -v coreconsole corerun crossgen $out/bin + cp -rv lib $out + cp -v *.so $out/lib + cp -rv inc $out/include + cp -rv gcinfo $out/include + popd + ''; + + meta = { + homepage = http://dotnet.github.io/core/; + description = ".NET is a general purpose development platform."; + platforms = with stdenv.lib.platforms; linux; + maintainers = with stdenv.lib.maintainers; [ obadz ]; + license = stdenv.lib.licenses.mit; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 54e9f416b64b..e7d5caa44718 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10250,6 +10250,8 @@ let comic-relief = callPackage ../data/fonts/comic-relief {}; + coreclr = callPackage ../development/compilers/coreclr { }; + corefonts = callPackage ../data/fonts/corefonts { }; wrapFonts = paths : ((import ../data/fonts/fontWrap) {