about summary refs log tree commit diff
path: root/pkgs/development/compilers/jetbrains-jdk/jcef.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/jetbrains-jdk/jcef.nix')
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/jcef.nix289
1 files changed, 0 insertions, 289 deletions
diff --git a/pkgs/development/compilers/jetbrains-jdk/jcef.nix b/pkgs/development/compilers/jetbrains-jdk/jcef.nix
deleted file mode 100644
index 0ed9c159b128..000000000000
--- a/pkgs/development/compilers/jetbrains-jdk/jcef.nix
+++ /dev/null
@@ -1,289 +0,0 @@
-{ fetchFromGitHub
-, fetchurl
-, fetchzip
-, stdenv
-, cmake
-, python3
-, jdk
-, git
-, libcef
-, rsync
-, lib
-, ant
-, ninja
-, strip-nondeterminism
-, stripJavaArchivesHook
-
-, debugBuild ? false
-
-, glib
-, nss
-, nspr
-, atk
-, at-spi2-atk
-, libdrm
-, libGL
-, expat
-, libxcb
-, libxkbcommon
-, libX11
-, libXcomposite
-, libXdamage
-, libXext
-, libXfixes
-, libXrandr
-, mesa
-, gtk3
-, pango
-, cairo
-, alsa-lib
-, dbus
-, at-spi2-core
-, cups
-, libxshmfence
-, udev
-, boost
-, thrift
-}:
-
-assert !stdenv.isDarwin;
-# I can't test darwin
-
-let
-  rpath = lib.makeLibraryPath [
-    glib
-    nss
-    nspr
-    atk
-    at-spi2-atk
-    libdrm
-    libGL
-    expat
-    libxcb
-    libxkbcommon
-    libX11
-    libXcomposite
-    libXdamage
-    libXext
-    libXfixes
-    libXrandr
-    mesa
-    gtk3
-    pango
-    cairo
-    alsa-lib
-    dbus
-    at-spi2-core
-    cups
-    libxshmfence
-    udev
-  ];
-
-  buildType = if debugBuild then "Debug" else "Release";
-  platform = {
-    "aarch64-linux" = "linuxarm64";
-    "x86_64-linux" = "linux64";
-  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-  arches = {
-    "linuxarm64" = {
-      depsArch = "arm64";
-      projectArch = "arm64";
-      targetArch = "arm64";
-    };
-    "linux64" = {
-      depsArch = "amd64";
-      projectArch = "x86_64";
-      targetArch = "x86_64";
-    };
-  }.${platform};
-  inherit (arches) depsArch projectArch targetArch;
-
-in
-stdenv.mkDerivation rec {
-  pname = "jcef-jetbrains";
-  rev = "34dfd656652c24da31b89c39d0885f284722eeaa";
-  # This is the commit number
-  # Currently from the branch: https://github.com/JetBrains/jcef/tree/242
-  # Run `git rev-list --count HEAD`
-  version = "867";
-
-  nativeBuildInputs = [ cmake python3 jdk git rsync ant ninja strip-nondeterminism stripJavaArchivesHook ];
-  buildInputs = [ boost libX11 libXdamage nss nspr thrift ];
-
-  src = fetchFromGitHub {
-    owner = "jetbrains";
-    repo = "jcef";
-    inherit rev;
-    hash = "sha256-JlTGKqvgdBpBs2xtFMTVJ/ZksT1uME/8a2g7niH2sq8=";
-  };
-  cef-bin =
-    let
-      # `cef_binary_${CEF_VERSION}_linux64_minimal`, where CEF_VERSION is from $src/CMakeLists.txt
-      name = "cef_binary_122.1.9+gd14e051+chromium-122.0.6261.94_${platform}_minimal";
-      hash = {
-        "linuxarm64" = "sha256-wABtvz0JHitlkkB748I7yr02Oxs5lXvqDfrBAQiKWHU=";
-        "linux64" = "sha256-qlutM0IsE1emcMe/3p7kwMIK7ou1rZGvpUkrSMVPnCc=";
-      }.${platform};
-      urlName = builtins.replaceStrings [ "+" ] [ "%2B" ] name;
-    in
-    fetchzip {
-      url = "https://cef-builds.spotifycdn.com/${urlName}.tar.bz2";
-      inherit name hash;
-    };
-  # Find the hash in tools/buildtools/linux64/clang-format.sha1
-  clang-fmt = fetchurl {
-    url = "https://storage.googleapis.com/chromium-clang-format/dd736afb28430c9782750fc0fd5f0ed497399263";
-    hash = "sha256-4H6FVO9jdZtxH40CSfS+4VESAHgYgYxfCBFSMHdT0hE=";
-  };
-
-  configurePhase = ''
-    runHook preConfigure
-
-    patchShebangs .
-
-    cp -r ${cef-bin} third_party/cef/${cef-bin.name}
-    chmod +w -R third_party/cef/${cef-bin.name}
-    patchelf third_party/cef/${cef-bin.name}/${buildType}/libcef.so --set-rpath "${rpath}" --add-needed libudev.so
-    patchelf third_party/cef/${cef-bin.name}/${buildType}/libGLESv2.so --set-rpath "${rpath}" --add-needed libGL.so.1
-    patchelf third_party/cef/${cef-bin.name}/${buildType}/chrome-sandbox --set-interpreter $(cat $NIX_BINTOOLS/nix-support/dynamic-linker)
-    sed 's/-O0/-O2/' -i third_party/cef/${cef-bin.name}/cmake/cef_variables.cmake
-
-    sed \
-      -e 's|os.path.isdir(os.path.join(path, \x27.git\x27))|True|' \
-      -e 's|"%s rev-parse %s" % (git_exe, branch)|"echo '${rev}'"|' \
-      -e 's|"%s config --get remote.origin.url" % git_exe|"echo 'https://github.com/jetbrains/jcef'"|' \
-      -e 's|"%s rev-list --count %s" % (git_exe, branch)|"echo '${version}'"|' \
-      -i tools/git_util.py
-
-    cp ${clang-fmt} tools/buildtools/linux64/clang-format
-    chmod +w tools/buildtools/linux64/clang-format
-
-    sed \
-      -e 's|include(cmake/vcpkg.cmake)||' \
-      -e 's|bring_vcpkg()||' \
-      -e 's|vcpkg_install_package(boost-filesystem boost-interprocess thrift)||' \
-      -i CMakeLists.txt
-
-    sed -e 's|vcpkg_bring_host_thrift()|set(THRIFT_COMPILER_HOST ${thrift}/bin/thrift)|' -i remote/CMakeLists.txt
-
-    mkdir jcef_build
-    cd jcef_build
-
-    cmake -G "Ninja" -DPROJECT_ARCH="${projectArch}" -DCMAKE_BUILD_TYPE=${buildType} ..
-
-    runHook postConfigure
-  '';
-
-  outputs = [ "out" "unpacked" ];
-
-  postBuild = ''
-    export JCEF_ROOT_DIR=$(realpath ..)
-    ../tools/compile.sh ${platform} Release
-  '';
-
-  # N.B. For new versions, manually synchronize the following
-  # definitions with jb/tools/common/create_modules.sh to include
-  # newly added modules
-  installPhase = ''
-    runHook preInstall
-
-    export JCEF_ROOT_DIR=$(realpath ..)
-    export THRIFT_DIR="$JCEF_ROOT_DIR"/third_party/thrift
-    export THRIFT_JAR=libthrift-0.19.0.jar
-    export OUT_NATIVE_DIR=$JCEF_ROOT_DIR/jcef_build/native/${buildType}
-    export JB_TOOLS_DIR=$(realpath ../jb/tools)
-    export JB_TOOLS_OS_DIR=$JB_TOOLS_DIR/linux
-    export OUT_CLS_DIR=$(realpath ../out/${platform})
-    export TARGET_ARCH=${targetArch} DEPS_ARCH=${depsArch}
-    export OS=linux
-    export JOGAMP_DIR="$JCEF_ROOT_DIR"/third_party/jogamp/jar
-
-    mkdir -p $unpacked/{jogl,gluegen,jcef}
-
-    function extract_jar {
-      __jar=$1
-      __dst_dir=$2
-      __content_dir="''${3:-.}"
-      __tmp=.tmp_extract_jar
-      rm -rf "$__tmp" && mkdir "$__tmp"
-      (
-        cd "$__tmp" || exit 1
-        jar -xf "$__jar"
-      )
-      rm -rf "$__tmp/META-INF"
-      rm -rf "$__dst_dir" && mkdir "$__dst_dir"
-      if [ -z "$__content_dir" ]
-      then
-          cp -R "$__tmp"/* "$__dst_dir"
-      else
-          cp -R "$__tmp"/"$__content_dir"/* "$__dst_dir"
-      fi
-      rm -rf $__tmp
-    }
-
-    cd $unpacked/gluegen
-    cp "$JOGAMP_DIR"/gluegen-rt.jar .
-    cp "$JB_TOOLS_DIR"/common/gluegen-module-info.java module-info.java
-    javac --patch-module gluegen.rt=gluegen-rt.jar module-info.java
-    jar uf gluegen-rt.jar module-info.class
-    rm module-info.class module-info.java
-    mkdir lib
-  ''
-  # see https://github.com/JetBrains/jcef/commit/f3b787e3326c1915d663abded7f055c0866f32ec
-  + lib.optionalString (platform != "linuxarm64") ''
-    extract_jar "$JOGAMP_DIR"/gluegen-rt-natives-"$OS"-"$DEPS_ARCH".jar lib natives/"$OS"-"$DEPS_ARCH"
-  '' + ''
-
-    cd ../jogl
-    cp "$JOGAMP_DIR"/gluegen-rt.jar .
-    cp "$JOGAMP_DIR"/jogl-all.jar .
-    cp "$JB_TOOLS_OS_DIR"/jogl-module-info.java module-info.java
-    javac --module-path . --patch-module jogl.all=jogl-all.jar module-info.java
-    jar uf jogl-all.jar module-info.class
-    rm module-info.class module-info.java
-    mkdir lib
-  ''
-  # see https://github.com/JetBrains/jcef/commit/f3b787e3326c1915d663abded7f055c0866f32ec
-  + lib.optionalString (platform != "linuxarm64") ''
-    extract_jar "$JOGAMP_DIR"/jogl-all-natives-"$OS"-"$DEPS_ARCH".jar lib natives/"$OS"-"$DEPS_ARCH"
-  '' + ''
-
-    cd ../jcef
-    cp "$THRIFT_DIR"/"$THRIFT_JAR" .
-    cp "$JB_TOOLS_DIR"/common/thrift-module-info.java module-info.java
-    javac --patch-module org.apache.thrift=$THRIFT_JAR module-info.java
-    jar uf $THRIFT_JAR module-info.class
-    rm module-info.class module-info.java
-    cp "$OUT_CLS_DIR"/jcef.jar .
-    mkdir lib
-    cp -R "$OUT_NATIVE_DIR"/* lib
-
-    mkdir -p $out/jmods
-
-    bash "$JB_TOOLS_DIR"/common/create_version_file.sh $out
-
-    runHook postInstall
-  '';
-
-  dontStrip = debugBuild;
-
-  postFixup = ''
-    cd $unpacked/gluegen
-    jmod create --class-path gluegen-rt.jar --libs lib $out/jmods/gluegen.rt.jmod
-    cd ../jogl
-    jmod create --module-path . --class-path jogl-all.jar --libs lib $out/jmods/jogl.all.jmod
-    cd ../jcef
-    jmod create --module-path . --class-path jcef.jar --libs lib $out/jmods/jcef.jmod
-    jmod create --module-path . --class-path $THRIFT_JAR $out/jmods/org.apache.thrift.jmod
-
-    # stripJavaArchivesHook gets rid of jar file timestamps, but not of jmod file timestamps
-    # We have to manually call strip-nondeterminism to do this for jmod files too
-    find $out -name "*.jmod" -exec strip-nondeterminism --type jmod {} +
-  '';
-
-  meta = {
-    description = "Jetbrains' fork of JCEF";
-    license = lib.licenses.bsd3;
-    homepage = "https://github.com/JetBrains/JCEF";
-  };
-}