Building Python package with scikit-build-core and CMake dependencies (die-python)

I was able to solve it by disabling the CMake setup hook phases and passing CMAKE_ARGS instead of cmakeFlags. For the last step I had to eclare setuptools as a propagated runtime dependency.

  die_library_src = pkgs.fetchFromGitHub {
    owner = "horsicq";
    repo = "die_library";
    rev = "09df9ccafe48a0531987ad1e605402ed79d4c3f6";
    sha256 = "sha256-0PyhS+GYtzHlT64nImIY3u2eTHvMn9mM33EXAESaXTk=";
    fetchSubmodules = true;
  };

  die-python = pkgs.python3Packages.buildPythonPackage {
    pname = "die-python";
    version = "0.4.0";
    format = "pyproject";

    src = pkgs.fetchFromGitHub {
      owner = "elastic";
      repo = "die-python";
      rev = "v0.4.0";
      sha256 = "sha256-fGcNqPaX6SBlFyCBouTFRbD91pqbMvwItLqko7EbpcM=";
    };

    nativeBuildInputs = with pkgs; [
      cmake
      ninja
      git
      qt6.wrapQtAppsNoGuiHook
      python3Packages.scikit-build-core
      python3Packages.nanobind
    ];

    propagatedBuildInputs = with pkgs.python3Packages; [
      setuptools
    ];

    buildInputs = with pkgs; [
      qt6.qtbase
      qt6.qtdeclarative
    ];

    dontUseCmakeConfigure = true;
    dontUseCmakeBuild = true;
    dontUseCmakeInstall = true;
    
    CMAKE_ARGS = pkgs.lib.concatStringsSep " " [
      "-DFETCHCONTENT_FULLY_DISCONNECTED=ON"
      "-DFETCHCONTENT_SOURCE_DIR_DIELIBRARY=${die_library_src}"
    ];

    doCheck = false;
  };
1 Like