Skip to content

Commit

Permalink
Merge pull request #172 from dpc/24-09-27-update-inputs-2
Browse files Browse the repository at this point in the history
chore: update inputs
  • Loading branch information
dpc authored Sep 27, 2024
2 parents 292eec6 + 0f7b47a commit ee39d59
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 121 deletions.
34 changes: 17 additions & 17 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 8 additions & 9 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description = "Toolkit for building Nix Flake development environments for Rust projects";

inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";

systems.url = "github:nix-systems/default";
flake-utils.url = "github:numtide/flake-utils";
Expand All @@ -19,18 +19,17 @@
};

android-nixpkgs = {
url = "github:tadfisher/android-nixpkgs?rev=7fa1348249564e43185d3053f579f9fa923d46cc"; # stable channel https://github.com/tadfisher/android-nixpkgs/tree/stable
url = "github:tadfisher/android-nixpkgs?rev=522d86121cbd413aff922c54f38106ecf8740107"; # stable channel https://github.com/tadfisher/android-nixpkgs/tree/stable
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
flake-utils,
nixpkgs,
crane,
fenix,
android-nixpkgs,
...
{ flake-utils
, nixpkgs
, crane
, fenix
, android-nixpkgs
, ...
}:
let
mkLib =
Expand Down
52 changes: 26 additions & 26 deletions lib/mkAndroidTarget.nix
Original file line number Diff line number Diff line change
@@ -1,37 +1,35 @@
{
lib,
pkgs,
system,
android-nixpkgs,
mkTarget,
{ lib
, pkgs
, system
, android-nixpkgs
, mkTarget
,
}:
let
defaultAndroidSdk = android-nixpkgs.sdk."${system}" (
sdkPkgs: with sdkPkgs; [
cmdline-tools-latest
build-tools-32-0-0
platform-tools
platforms-android-31
platforms-android-32
emulator
ndk-bundle
ndk-25-2-9519653
]
);
in
{
target,
androidTarget ? target,
arch,
androidVer ? 31,
...
{ target
, androidTarget ? target
, arch
, androidVer ? 32
, ...
}:
let
defaultAndroidVer = androidVer;
in
{
extraRustFlags ? "",
androidVer ? defaultAndroidVer,
androidSdk ? defaultAndroidSdk,
...
{ extraRustFlags ? ""
, androidVer ? defaultAndroidVer
, androidSdk ? defaultAndroidSdk
, ...
}@mkTargetArgs:
let
target_underscores = lib.strings.replaceStrings [ "-" ] [ "_" ] target;
Expand All @@ -44,12 +42,12 @@ let
'';
androidSdkPrebuilt =
if system == "x86_64-linux" then
"${androidSdk}/share/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64"
"${androidSdk}/share/android-sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/linux-x86_64"
else if system == "x86_64-darwin" then
"${androidSdk}/share/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64"
"${androidSdk}/share/android-sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64"
else if system == "aarch64-darwin" then
# uses the x86_64 binaries, as aarch64 are not available (yet?)
"${androidSdk}/share/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64"
# uses the x86_64 binaries, as aarch64 are not available (yet?)
"${androidSdk}/share/android-sdk/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64"
else
throw "Missing mapping for ${target} toolchain on ${system}, PRs welcome";

Expand All @@ -71,9 +69,10 @@ let
# ${androidSdkPrebuilt}/bin/llvm-config --ldflags > $out
# '');
# but in practice it doesn't
ldflags = "--sysroot ${androidSdkPrebuilt}/sysroot -L ${androidSdkPrebuilt}/sysroot/usr/lib/${androidTarget}/${toString androidVer}/ -L ${androidSdkPrebuilt}/sysroot/usr/lib/${androidTarget} -L ${androidSdkPrebuilt}/lib64/clang/12.0.5/lib/linux/${arch}/";
ldflags = "--sysroot ${androidSdkPrebuilt}/sysroot -L ${androidSdkPrebuilt}/sysroot/usr/lib/${androidTarget}/${toString androidVer}/ -L ${androidSdkPrebuilt}/sysroot/usr/lib/${androidTarget} -L ${androidSdkPrebuilt}/lib64/clang/14.0.7/lib/linux/${arch}/";
in
mkTarget {
mkTarget
{
inherit target;
canUseMold = false;
args = {
Expand All @@ -96,4 +95,5 @@ mkTarget {
ANDROID_SDK_ROOT = "${androidSdk}/share/android-sdk/";
ANDROID_HOME = "${androidSdk}/share/android-sdk/";
};
} mkTargetArgs
}
mkTargetArgs
140 changes: 71 additions & 69 deletions lib/mkStdTargets.nix
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
pkgs,
system,
config,
fenix,
lib,
mkAndroidTarget,
mkIOSTarget,
targetLlvmConfigWrapper,
mkClangTarget,
mkNativeTarget,
mkTarget,
android-nixpkgs,
{ pkgs
, system
, config
, fenix
, lib
, mkAndroidTarget
, mkIOSTarget
, targetLlvmConfigWrapper
, mkClangTarget
, mkNativeTarget
, mkTarget
, android-nixpkgs
,
}:
{ ... }@mkStdTargetsArgs:
{
Expand Down Expand Up @@ -93,63 +93,65 @@
// {
wasm32-unknown =
{ extraRustFlags, ... }@args:
mkTarget {
target = "wasm32-unknown-unknown";
# mold doesn't work for wasm at all
canUseMold = false;
args = (
let
target_underscores_upper = "WASM32_UNKNOWN_UNKNOWN";
in
{
CC_wasm32_unknown_unknown = "${pkgs.llvmPackages_15.clang-unwrapped}/bin/clang-15";
# -Wno-macro-redefined fixes ring building
CFLAGS_wasm32_unknown_unknown = "-I ${pkgs.llvmPackages_15.libclang.lib}/lib/clang/15.0.7/include/ -Wno-macro-redefined";
# leave these as defaults
"CARGO_TARGET_${target_underscores_upper}_LINKER" = null;
"CARGO_TARGET_${target_underscores_upper}_RUSTFLAGS" = "${extraRustFlags}";
}
// lib.optionalAttrs pkgs.stdenv.isDarwin {
AR_wasm32_unknown_unknown = "${pkgs.llvmPackages_15.llvm}/bin/llvm-ar";
}
);
} args;
mkTarget
{
target = "wasm32-unknown-unknown";
# mold doesn't work for wasm at all
canUseMold = false;
args = (
let
target_underscores_upper = "WASM32_UNKNOWN_UNKNOWN";
in
{
CC_wasm32_unknown_unknown = "${pkgs.llvmPackages_15.clang-unwrapped}/bin/clang-15";
# -Wno-macro-redefined fixes ring building
CFLAGS_wasm32_unknown_unknown = "-I ${pkgs.llvmPackages_15.libclang.lib}/lib/clang/15.0.7/include/ -Wno-macro-redefined";
# leave these as defaults
"CARGO_TARGET_${target_underscores_upper}_LINKER" = null;
"CARGO_TARGET_${target_underscores_upper}_RUSTFLAGS" = "${extraRustFlags}";
}
// lib.optionalAttrs pkgs.stdenv.isDarwin {
AR_wasm32_unknown_unknown = "${pkgs.llvmPackages_15.llvm}/bin/llvm-ar";
}
);
}
args;
}
//
lib.optionalAttrs ((mkStdTargetsArgs ? androidSdk) || (builtins.hasAttr system android-nixpkgs.sdk))
{
aarch64-android = mkAndroidTarget {
arch = "aarch64";
androidVer = 31;
target = "aarch64-linux-android";
};

arm-android = mkAndroidTarget {
arch = "arm";
androidVer = 31;
target = "arm-linux-androideabi";
};

armv7-android = mkAndroidTarget {
arch = "arm";
androidVer = 31;
target = "armv7-linux-androideabi";
androidTarget = "arm-linux-androideabi";
};

x86_64-android = mkAndroidTarget {
arch = "x86_64";
androidVer = 31;
target = "x86_64-linux-android";
};

i686-android = mkAndroidTarget {
arch = "i386";
androidVer = 31;
target = "i686-linux-android";
};

}
lib.optionalAttrs ((mkStdTargetsArgs ? androidSdk) || (builtins.hasAttr system android-nixpkgs.sdk))
{
aarch64-android = mkAndroidTarget {
arch = "aarch64";
androidVer = 32;
target = "aarch64-linux-android";
};

arm-android = mkAndroidTarget {
arch = "arm";
androidVer = 32;
target = "arm-linux-androideabi";
};

armv7-android = mkAndroidTarget {
arch = "arm";
androidVer = 32;
target = "armv7-linux-androideabi";
androidTarget = "arm-linux-androideabi";
};

x86_64-android = mkAndroidTarget {
arch = "x86_64";
androidVer = 32;
target = "x86_64-linux-android";
};

i686-android = mkAndroidTarget {
arch = "i386";
androidVer = 32;
target = "i686-linux-android";
};

}
// lib.optionalAttrs (pkgs.stdenv.buildPlatform.config == "aarch64-apple-darwin") {
aarch64-darwin = mkClangTarget {
target = "aarch64-apple-darwin";
Expand Down Expand Up @@ -187,7 +189,7 @@
};
};
}
// lib.optionalAttrs (pkgs.stdenv.isDarwin) {
// lib.optionalAttrs (pkgs.stdenv.isDarwin) {
aarch64-ios = mkIOSTarget ({
target = "aarch64-apple-ios";
});
Expand Down

0 comments on commit ee39d59

Please sign in to comment.