mirror of
https://github.com/kittywitch/gw2buttplug-rs.git
synced 2026-02-09 09:19:17 -08:00
ops: ci
This commit is contained in:
parent
ceec8edd33
commit
b9d61ddee9
10 changed files with 515 additions and 0 deletions
1
.direnv/flake-profile
Symbolic link
1
.direnv/flake-profile
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
flake-profile-1-link
|
||||||
1
.direnv/flake-profile-1-link
Symbolic link
1
.direnv/flake-profile-1-link
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
/nix/store/92nlyr8jm4zk2rwdz2pvm2jwa5hj6za1-nix-shell-x86_64-w64-mingw32-env
|
||||||
1
.envrc
Normal file
1
.envrc
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
use flake
|
||||||
112
.github/workflows/gw2buttplug-rs.yml
vendored
Normal file
112
.github/workflows/gw2buttplug-rs.yml
vendored
Normal file
|
|
@ -0,0 +1,112 @@
|
||||||
|
env:
|
||||||
|
CI_ALLOW_ROOT: '1'
|
||||||
|
CI_CONFIG: ./ci.nix
|
||||||
|
CI_PLATFORM: gh-actions
|
||||||
|
jobs:
|
||||||
|
ci-check:
|
||||||
|
name: gw2buttplug-rs check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- id: checkout
|
||||||
|
name: git clone
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- id: nix-install
|
||||||
|
name: nix install
|
||||||
|
uses: arcnmx/ci/actions/nix/install@v0.7
|
||||||
|
- id: ci-action-build
|
||||||
|
name: nix build ci.gh-actions.configFile
|
||||||
|
uses: arcnmx/ci/actions/nix/build@v0.7
|
||||||
|
with:
|
||||||
|
attrs: ci.gh-actions.configFile
|
||||||
|
out-link: .ci/workflow.yml
|
||||||
|
- id: ci-action-compare
|
||||||
|
name: gh-actions compare
|
||||||
|
uses: arcnmx/ci/actions/nix/run@v0.7
|
||||||
|
with:
|
||||||
|
args: -u .github/workflows/gw2buttplug-rs.yml .ci/workflow.yml
|
||||||
|
attrs: nixpkgs.diffutils
|
||||||
|
command: diff
|
||||||
|
main:
|
||||||
|
name: gw2buttplug-rs-main
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- id: checkout
|
||||||
|
name: git clone
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
- id: nix-install
|
||||||
|
name: nix install
|
||||||
|
uses: arcnmx/ci/actions/nix/install@v0.7
|
||||||
|
- id: ci-setup
|
||||||
|
name: nix setup
|
||||||
|
uses: arcnmx/ci/actions/nix/run@v0.7
|
||||||
|
with:
|
||||||
|
attrs: ci.job.main.run.bootstrap
|
||||||
|
quiet: false
|
||||||
|
- id: ci-dirty
|
||||||
|
name: nix test dirty
|
||||||
|
uses: arcnmx/ci/actions/nix/run@v0.7
|
||||||
|
with:
|
||||||
|
attrs: ci.job.main.run.test
|
||||||
|
command: ci-build-dirty
|
||||||
|
quiet: false
|
||||||
|
stdout: ${{ runner.temp }}/ci.build.dirty
|
||||||
|
- id: ci-test
|
||||||
|
name: nix test build
|
||||||
|
uses: arcnmx/ci/actions/nix/run@v0.7
|
||||||
|
with:
|
||||||
|
attrs: ci.job.main.run.test
|
||||||
|
command: ci-build-realise
|
||||||
|
ignore-exit-code: true
|
||||||
|
quiet: false
|
||||||
|
stdin: ${{ runner.temp }}/ci.build.dirty
|
||||||
|
- env:
|
||||||
|
CI_EXIT_CODE: ${{ steps.ci-test.outputs.exit-code }}
|
||||||
|
id: ci-summary
|
||||||
|
name: nix test results
|
||||||
|
uses: arcnmx/ci/actions/nix/run@v0.7
|
||||||
|
with:
|
||||||
|
attrs: ci.job.main.run.test
|
||||||
|
command: ci-build-summarise
|
||||||
|
quiet: false
|
||||||
|
stdin: ${{ runner.temp }}/ci.build.dirty
|
||||||
|
stdout: ${{ runner.temp }}/ci.build.cache
|
||||||
|
- env:
|
||||||
|
CACHIX_SIGNING_KEY: ${{ secrets.CACHIX_SIGNING_KEY }}
|
||||||
|
id: ci-cache
|
||||||
|
if: always()
|
||||||
|
name: nix test cache
|
||||||
|
uses: arcnmx/ci/actions/nix/run@v0.7
|
||||||
|
with:
|
||||||
|
attrs: ci.job.main.run.test
|
||||||
|
command: ci-build-cache
|
||||||
|
quiet: false
|
||||||
|
stdin: ${{ runner.temp }}/ci.build.cache
|
||||||
|
- id: artifact-build
|
||||||
|
name: artifact build
|
||||||
|
uses: arcnmx/ci/actions/nix/build@v0.7
|
||||||
|
with:
|
||||||
|
attrs: config.jobs.main.artifactPackage
|
||||||
|
file: <ci>
|
||||||
|
out-link: .ci/artifacts
|
||||||
|
- id: artifact-upload
|
||||||
|
name: artifact upload
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: gw2buttplug-rs
|
||||||
|
path: .ci/artifacts/lib/gw2buttplug-rs*.dll
|
||||||
|
- id: release-upload
|
||||||
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
|
name: release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
with:
|
||||||
|
files: .ci/artifacts/lib/gw2buttplug-rs.dll
|
||||||
|
name: gw2buttplug-rs
|
||||||
|
'on':
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
102
ci.nix
Normal file
102
ci.nix
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
{ config, pkgs, lib, ... }: with pkgs; with lib; let
|
||||||
|
self = import ./.;
|
||||||
|
packages = self.packages.${pkgs.system};
|
||||||
|
artifactRoot = ".ci/artifacts";
|
||||||
|
artifacts = "${artifactRoot}/lib/gw2buttplug-rs*.dll";
|
||||||
|
release = "${artifactRoot}/lib/gw2buttplug-rs.dll";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
name = "gw2buttplug-rs";
|
||||||
|
ci.gh-actions = {
|
||||||
|
enable = true;
|
||||||
|
export = true;
|
||||||
|
};
|
||||||
|
# TODO: add cachix
|
||||||
|
cache.cachix.example = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
channels = {
|
||||||
|
nixpkgs = {
|
||||||
|
# see https://github.com/arcnmx/nixexprs-rust/issues/10
|
||||||
|
args.config.checkMetaRecursively = false;
|
||||||
|
version = "22.11";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tasks = {
|
||||||
|
build.inputs = with packages; [ example ];
|
||||||
|
cache.inputs = with packages; [ example example.cargoArtifacts ];
|
||||||
|
};
|
||||||
|
jobs = {
|
||||||
|
main = {
|
||||||
|
tasks = {
|
||||||
|
build-windows.inputs = singleton packages.example;
|
||||||
|
build-windows-space.inputs = singleton packages.example;
|
||||||
|
};
|
||||||
|
artifactPackages = {
|
||||||
|
main = packages.example;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# XXX: symlinks are not followed, see https://github.com/softprops/action-gh-release/issues/182
|
||||||
|
#artifactPackage = config.artifactPackages.win64;
|
||||||
|
artifactPackage = runCommand "example-artifacts" { } (''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
cp ${config.artifactPackages.main}/lib/gw2buttplug-rs.dll $out/lib/
|
||||||
|
'' + concatStringsSep "\n" (mapAttrsToList (key: addonPath: ''
|
||||||
|
cp ${addonPath}/lib/gw2buttplug-rs.dll $out/lib/nexus_example_addon-${key}.dll
|
||||||
|
'') config.artifactPackages));
|
||||||
|
|
||||||
|
gh-actions = {
|
||||||
|
jobs = mkIf (config.id != "ci") {
|
||||||
|
${config.id} = {
|
||||||
|
permissions = {
|
||||||
|
contents = "write";
|
||||||
|
};
|
||||||
|
step = {
|
||||||
|
artifact-build = {
|
||||||
|
order = 1100;
|
||||||
|
name = "artifact build";
|
||||||
|
uses = {
|
||||||
|
# XXX: a very hacky way of getting the runner
|
||||||
|
inherit (config.gh-actions.jobs.${config.id}.step.ci-setup.uses) owner repo version;
|
||||||
|
path = "actions/nix/build";
|
||||||
|
};
|
||||||
|
"with" = {
|
||||||
|
file = "<ci>";
|
||||||
|
attrs = "config.jobs.${config.jobId}.artifactPackage";
|
||||||
|
out-link = artifactRoot;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
artifact-upload = {
|
||||||
|
order = 1110;
|
||||||
|
name = "artifact upload";
|
||||||
|
uses.path = "actions/upload-artifact@v4";
|
||||||
|
"with" = {
|
||||||
|
name = "gw2buttplug-rs";
|
||||||
|
path = artifacts;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
release-upload = {
|
||||||
|
order = 1111;
|
||||||
|
name = "release";
|
||||||
|
"if" = "startsWith(github.ref, 'refs/tags/')";
|
||||||
|
uses.path = "softprops/action-gh-release@v1";
|
||||||
|
"with".files = release;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
options = {
|
||||||
|
artifactPackage = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
};
|
||||||
|
artifactPackages = mkOption {
|
||||||
|
type = with types; attrsOf package;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
11
default.nix
Normal file
11
default.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
let
|
||||||
|
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||||
|
flakeCompat = fetchTarball {
|
||||||
|
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
||||||
|
sha256 = lock.nodes.flake-compat.locked.narHash;
|
||||||
|
};
|
||||||
|
exampleAddon = import flakeCompat {
|
||||||
|
src = ./.;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
exampleAddon.defaultNix
|
||||||
133
flake.lock
generated
Normal file
133
flake.lock
generated
Normal file
|
|
@ -0,0 +1,133 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"crane": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751562746,
|
||||||
|
"narHash": "sha256-smpugNIkmDeicNz301Ll1bD7nFOty97T79m4GUMUczA=",
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"rev": "aed2020fd3dc26e1e857d4107a5a67a33ab6c1fd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fenix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751870679,
|
||||||
|
"narHash": "sha256-aP4korVsN5Yy+PB9zjjm8Qbo3a69/m8vlFXS5mdVXtk=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"rev": "95606d64662a730da5d3031ed798dd6315d35f33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "fenix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1747046372,
|
||||||
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751852175,
|
||||||
|
"narHash": "sha256-+MLlfTCCOvz4K6AcSPbaPiFM9MYi7fA2Wr1ibmRwIlM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "2defa37146df235ef62f566cde69930a86f14df1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"crane": "crane",
|
||||||
|
"fenix": "fenix",
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-analyzer-src": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751792916,
|
||||||
|
"narHash": "sha256-YjyurHKMrUYKjnujSqjpFtHGYFCGr2Xpo1Xc1AYT1+M=",
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"rev": "0ac65592a833bf40238831dd10e15283d63c46d5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rust-lang",
|
||||||
|
"ref": "nightly",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
65
flake.nix
Normal file
65
flake.nix
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
{
|
||||||
|
description = "nexus-rs addon fo yo hole";
|
||||||
|
inputs = {
|
||||||
|
flake-compat = {
|
||||||
|
url = "github:edolstra/flake-compat";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
fenix = {
|
||||||
|
url = "github:nix-community/fenix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
flake-utils = {
|
||||||
|
url = "github:numtide/flake-utils";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
crane.url = "github:ipetkov/crane";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, fenix, flake-utils, crane, nixpkgs, ... }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = (import nixpkgs) {
|
||||||
|
inherit system;
|
||||||
|
crossSystem.config = "x86_64-w64-mingw32";
|
||||||
|
};
|
||||||
|
|
||||||
|
packageToolchain = with fenix.packages.${system};
|
||||||
|
combine [
|
||||||
|
minimal.rustc
|
||||||
|
minimal.cargo
|
||||||
|
targets.x86_64-pc-windows-gnu.latest.rust-std
|
||||||
|
];
|
||||||
|
|
||||||
|
packageCraneLib = (crane.mkLib pkgs).overrideToolchain (p: packageToolchain);
|
||||||
|
|
||||||
|
example = pkgs.callPackage ./package.nix {
|
||||||
|
craneLib = packageCraneLib;
|
||||||
|
};
|
||||||
|
|
||||||
|
shellToolchain = with fenix.packages.${system};
|
||||||
|
combine [
|
||||||
|
complete
|
||||||
|
rust-analyzer
|
||||||
|
targets.x86_64-pc-windows-gnu.latest.rust-std
|
||||||
|
];
|
||||||
|
|
||||||
|
shellCraneLib = (crane.mkLib pkgs).overrideToolchain (p: shellToolchain);
|
||||||
|
|
||||||
|
exampleShell = import ./shell.nix {
|
||||||
|
inherit fenix pkgs system;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
rec {
|
||||||
|
defaultPackage = packages.x86_64-pc-windows-gnu;
|
||||||
|
inherit pkgs;
|
||||||
|
devShells.default = exampleShell;
|
||||||
|
|
||||||
|
packages = {
|
||||||
|
inherit example;
|
||||||
|
default = example;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
43
package.nix
Normal file
43
package.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
{ lib, buildPackages, craneLib, stdenv, windows, pkg-config, features ? []}:
|
||||||
|
|
||||||
|
craneLib.buildPackage rec {
|
||||||
|
src = ./.;
|
||||||
|
strictDeps = true;
|
||||||
|
cargoExtraArgs = if features != [] then lib.escapeShellArgs (["--features"] ++ features) else "";
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
stdenv.cc
|
||||||
|
windows.pthreads
|
||||||
|
];
|
||||||
|
|
||||||
|
depsBuildBuild = [
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
# libgit2 stuff is given as an example of how to provide libraries to the build process
|
||||||
|
#LD_LIBRARY_PATH="${lib.makeLibraryPath [buildPackages.buildPackages.libgit2]}";
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
buildPackages.stdenv.cc
|
||||||
|
#libgit2
|
||||||
|
];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
LIBGIT2_NO_VENDOR = 1;
|
||||||
|
|
||||||
|
# Tells Cargo that we're building for Windows.
|
||||||
|
# (https://doc.rust-lang.org/cargo/reference/config.html#buildtarget)
|
||||||
|
CARGO_BUILD_TARGET = "x86_64-pc-windows-gnu";
|
||||||
|
|
||||||
|
#TARGET_CC = "${pkgsCross.stdenv.cc}/bin/${pkgsCross.stdenv.cc.targetPrefix}cc";
|
||||||
|
TARGET_CC = "${stdenv.cc.targetPrefix}cc";
|
||||||
|
|
||||||
|
# Build without a dependency not provided by wine
|
||||||
|
CXXFLAGS_x86_64_pc_windows_gnu = "-Oz -shared -fno-threadsafe-statics";
|
||||||
|
PROFILE="release";
|
||||||
|
CARGO_BUILD_RUSTFLAGS = [
|
||||||
|
"-C"
|
||||||
|
"linker=${TARGET_CC}"
|
||||||
|
];
|
||||||
|
}
|
||||||
46
shell.nix
Normal file
46
shell.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
{ fenix ? (import (builtins.fetchTarball "https://github.com/nix-community/fenix/archive/main.tar.gz") { })
|
||||||
|
, pkgs ? (import <nixpkgs> {
|
||||||
|
crossSystem = {
|
||||||
|
config = "x86_64-w64-mingw32";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
, system ? builtins.currentSystem
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
fenix' = fenix.packages.${system};
|
||||||
|
in
|
||||||
|
pkgs.callPackage
|
||||||
|
({ mkShell, lib, buildPackages, stdenv, windows, libgit2, pkg-config }: mkShell rec {
|
||||||
|
buildInputs = [
|
||||||
|
stdenv.cc
|
||||||
|
windows.pthreads
|
||||||
|
];
|
||||||
|
|
||||||
|
depsBuildBuild = [
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
LD_LIBRARY_PATH="${lib.makeLibraryPath [buildPackages.buildPackages.libgit2]}";
|
||||||
|
nativeBuildInputs = [
|
||||||
|
buildPackages.stdenv.cc
|
||||||
|
libgit2
|
||||||
|
(fenix'.combine [
|
||||||
|
(fenix'.complete.withComponents [
|
||||||
|
"cargo"
|
||||||
|
"rust-src"
|
||||||
|
"clippy"
|
||||||
|
"rustc"
|
||||||
|
])
|
||||||
|
fenix'.rust-analyzer
|
||||||
|
fenix'.latest.rustfmt
|
||||||
|
fenix'.targets.x86_64-pc-windows-gnu.latest.rust-std
|
||||||
|
])
|
||||||
|
];
|
||||||
|
|
||||||
|
LIBGIT2_NO_VENDOR=1;
|
||||||
|
CARGO_BUILD_TARGET = "x86_64-pc-windows-gnu";
|
||||||
|
TARGET_CC = "${stdenv.cc.targetPrefix}cc";
|
||||||
|
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER = TARGET_CC;
|
||||||
|
CXXFLAGS_x86_64_pc_windows_gnu = "-Oz -shared -fno-threadsafe-statics";
|
||||||
|
})
|
||||||
|
{ }
|
||||||
Loading…
Add table
Add a link
Reference in a new issue