cleaned up nix code dramatically
This commit is contained in:
193
flake.nix
193
flake.nix
@@ -29,97 +29,25 @@
|
||||
############################## LET BINDINGS ##############################
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
wasmToolchain = fenix.packages.${system}.combine [
|
||||
fenix.packages.${system}.targets.wasm32-unknown-unknown.stable.toolchain
|
||||
fenix.packages.${system}.stable.toolchain
|
||||
];
|
||||
wasmCrane = (crane.mkLib pkgs).overrideToolchain wasmToolchain;
|
||||
|
||||
|
||||
#os
|
||||
osToolchain = fenix.packages.${system}.latest.toolchain;
|
||||
|
||||
osCrane = (crane.mkLib pkgs).overrideToolchain osToolchain;
|
||||
|
||||
#winToolchain = fenix.packages.${system}.combine [
|
||||
#fenix.packages.${system}.targets.x86_64-pc-windows-gnu.latest.toolchain
|
||||
#fenix.packages.${system}.latest.toolchain
|
||||
#];
|
||||
winToolchain = with fenix.packages.${system};
|
||||
combine [
|
||||
minimal.rustc
|
||||
minimal.cargo
|
||||
targets.x86_64-pc-windows-gnu.latest.rust-std
|
||||
];
|
||||
winCrane = (crane.mkLib pkgs).overrideToolchain winToolchain;
|
||||
|
||||
wasmArtifacts = wasmCrane.buildDepsOnly ({
|
||||
src = self;
|
||||
doCheck = false; # tests does not work in wasm
|
||||
CARGO_BUILD_TARGET = "wasm32-unknown-unknown";
|
||||
cargoExtraArgs = "--features target-wasm --no-default-features";
|
||||
RUSTFLAGS="-C linker=wasm-ld";
|
||||
buildInputs = with pkgs; [ cargo-binutils lld ];
|
||||
});
|
||||
|
||||
defaultMizeConfig = {
|
||||
# mize build time config
|
||||
mizeBuildConfig = {
|
||||
config = {
|
||||
namespace = "mize.buildtime.ns";
|
||||
module_url = "c2vi.dev";
|
||||
module_url = "parts.mize.works";
|
||||
};
|
||||
};
|
||||
|
||||
#systems = [ "aarch64-linux" "x86_64-linux" "x86_64-pc-windows-gnu" "wasm32-unknown-none-unknown" "x86_64-apple-darwin" "aarch64-apple-darwin" ];
|
||||
systems = [ "aarch64-unknown-linux-gnu" "x86_64-unknown-linux-gnu" "x86_64-pc-windows-gnu" "wasm32-unknown-none-unknown" ];
|
||||
|
||||
mizeLib = import ./lib.nix {
|
||||
inherit inputs nixpkgs pkgs self osCrane defaultMizeConfig mize_modules;
|
||||
inherit rust-overlay crane fenix;
|
||||
buildSystem = system;
|
||||
stdenv = pkgs.stdenv;
|
||||
};
|
||||
|
||||
in {
|
||||
############################## PACKAGES ##############################
|
||||
|
||||
packages = rec {
|
||||
|
||||
inherit osCrane;
|
||||
#test = mizeLib.buildMizeForSystem "wasm32-unknown-none-unknown";
|
||||
test = mizeLib.buildMizeForSystem "aarch64-linux";
|
||||
#test = mizeLib.buildMizeForSystem "x86_64-pc-windows-gnu";
|
||||
|
||||
mizeFor = let
|
||||
mizes = map mizeLib.buildMizeForSystem systems;
|
||||
in builtins.listToAttrs ( map ( mize: { name = mize.system.name; value = mize; } ) mizes );
|
||||
|
||||
dist = mizeLib.dist systems;
|
||||
|
||||
random = mizeLib.random systems;
|
||||
|
||||
inherit mizeLib;
|
||||
|
||||
|
||||
#pkgsCross = import nixpkgs { buildSystem = system; crossSystem = { config = "x86_64-pc-windows-gnu"; }; overlays = [ rust-overlay.overlays.default ]; };
|
||||
|
||||
pkgsTest = pkgs;
|
||||
|
||||
#pkgsCross = import nixpkgs { buildSystem = system; crossSystem = { config = "x86_64-w64-windows-mingw"; }; overlays = [ rust-overlay.overlays.default ]; };
|
||||
pkgsCross = import nixpkgs { buildSystem = system; crossSystem = { config = "x86_64-unknown-linux-gnu"; }; overlays = [ rust-overlay.overlays.default ]; };
|
||||
craneLib = (crane.mkLib pkgsCross).overrideToolchain (p: p.rust-bin.stable.latest.default);
|
||||
|
||||
|
||||
one = craneLib.buildPackage {
|
||||
src = "${self}";
|
||||
#cargoExtraArgs = "--bin mize --features target-os";
|
||||
cargoExtraArgs = "--bin mize";
|
||||
doCheck = false; # tests does not work in wasm
|
||||
CARGO_BUILD_TARGET = "x86_64-pc-windows-gnu";
|
||||
MIZE_BUILD_CONFIG = pkgs.writeTextFile {
|
||||
name = "mize-build-config";
|
||||
text = builtins.toJSON (defaultMizeConfig // {
|
||||
mize_version = one.version;
|
||||
});
|
||||
};
|
||||
};
|
||||
fileSetForCrate =
|
||||
crate:
|
||||
pkgs.lib.fileset.toSource {
|
||||
@@ -127,15 +55,16 @@ in {
|
||||
fileset = pkgs.lib.fileset.unions [
|
||||
./Cargo.toml
|
||||
./Cargo.lock
|
||||
(craneLib.fileset.commonCargoSources ./packages/marts)
|
||||
(craneLib.fileset.commonCargoSources ./packages/mize)
|
||||
(craneLib.fileset.commonCargoSources ./packages/ppc/spacetimedb)
|
||||
(craneLib.fileset.commonCargoSources ./packages/mme)
|
||||
(craneLib.fileset.commonCargoSources ./packages/vic)
|
||||
(craneLib.fileset.commonCargoSources ./packages/ac_mize_macros)
|
||||
(craneLib.fileset.commonCargoSources crate)
|
||||
(osCrane.fileset.commonCargoSources ./packages/marts)
|
||||
(osCrane.fileset.commonCargoSources ./packages/mize)
|
||||
(osCrane.fileset.commonCargoSources ./packages/ppc/spacetimedb)
|
||||
(osCrane.fileset.commonCargoSources ./packages/mme)
|
||||
(osCrane.fileset.commonCargoSources ./packages/vic)
|
||||
(osCrane.fileset.commonCargoSources ./packages/ac_mize_macros)
|
||||
(osCrane.fileset.commonCargoSources crate)
|
||||
];
|
||||
};
|
||||
|
||||
ppc = osCrane.buildPackage {
|
||||
src = fileSetForCrate ./packages/ppc;
|
||||
cargoExtraArgs = "-p ppc";
|
||||
@@ -180,104 +109,18 @@ in {
|
||||
libsoup_3
|
||||
];
|
||||
};
|
||||
#SPACETIMEDB_NIX_BUILD_GIT_COMMIT =
|
||||
|
||||
wasm = wasmCrane.buildPackage {
|
||||
src = "${self}";
|
||||
CARGO_BUILD_TARGET = "wasm32-unknown-unknown";
|
||||
cargoExtraArgs = "--bin mize --features target-wasm ";
|
||||
doCheck = false;
|
||||
};
|
||||
inherit wasmArtifacts;
|
||||
|
||||
# Thanks to:
|
||||
# - https://github.com/dl-solarity/hardhat-diamond-tools/blob/e5b8bc9624fbf89eda83a8ce4f6b6672ea83f550/flake.nix#L103
|
||||
# - https://github.com/ipetkov/crane/issues/362#issuecomment-1683220603
|
||||
npmPackage = wasmCrane.mkCargoDerivation {
|
||||
name = "mize-npm-package";
|
||||
|
||||
# i can't use CARGO_BUILD_TARGET to set the target
|
||||
# because then the cargo install run by wasm-pack tries to build the wasm-bindgen-cli for a wasm target...
|
||||
|
||||
|
||||
src = self;
|
||||
|
||||
cargoArtifacts = wasmArtifacts;
|
||||
doCheck = false;
|
||||
|
||||
buildPhaseCargoCommand = ''
|
||||
echo build hiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
|
||||
mkdir -p $out/pkg
|
||||
|
||||
export HOME=$(mktemp -d fake-homeXXXX)
|
||||
wasm-pack build --out-dir $out/pkg --scope=c2vi -- --no-default-features --features target-wasm
|
||||
'';
|
||||
|
||||
buildInputs = with pkgs; [ wasm-bindgen-cli binaryen wasm-pack wasmToolchain ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
############################## DEV SHELLS ##############################
|
||||
devShells = {
|
||||
|
||||
modules = mizeLib.moduleShells system;
|
||||
|
||||
modulesCross = pkgs.lib.genAttrs systems (system: mizeLib.moduleShells system);
|
||||
|
||||
one = pkgs.stdenv.mkDerivation {
|
||||
name = "hiiiiiiii";
|
||||
nativeBuildInputs = [
|
||||
(fenix.packages.${system}.combine [
|
||||
fenix.packages.${system}.targets.wasm32-unknown-unknown.latest.toolchain
|
||||
fenix.packages.${system}.latest.toolchain
|
||||
fenix.packages.${system}.latest.rust-src
|
||||
])
|
||||
];
|
||||
};
|
||||
|
||||
win = winCrane.buildPackage {
|
||||
#src = winCrane.cleanCargoSource ./testing;
|
||||
#pname = "testing";
|
||||
src = ./testing;
|
||||
|
||||
strictDeps = true;
|
||||
doCheck = false;
|
||||
|
||||
CARGO_BUILD_TARGET = "x86_64-pc-windows-gnu";
|
||||
|
||||
# fixes issues related to libring
|
||||
TARGET_CC = "${pkgs.pkgsCross.mingwW64.stdenv.cc}/bin/${pkgs.pkgsCross.mingwW64.stdenv.cc.targetPrefix}cc";
|
||||
|
||||
#fixes issues related to openssl
|
||||
OPENSSL_DIR = "${pkgs.openssl.dev}";
|
||||
OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib";
|
||||
OPENSSL_INCLUDE_DIR = "${pkgs.openssl.dev}/include/";
|
||||
|
||||
depsBuildBuild = with pkgs; [
|
||||
pkgsCross.mingwW64.stdenv.cc
|
||||
pkgsCross.mingwW64.windows.pthreads
|
||||
];
|
||||
shellHook = ''
|
||||
export MIZE_CONFIG_FILE=${self}/test-config.toml
|
||||
'';
|
||||
MIZE_BUILD_CONFIG = pkgs.writeTextFile {
|
||||
name = "vic-build-config";
|
||||
text = builtins.toJSON defaultMizeConfig;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
#default = (mizeLib.buildMizeForSystem system).modules.mize.devShell;
|
||||
# shell without spacetime and other dev commands. just all needed to build mize or ppc
|
||||
buildShell = pkgs.mkShell {
|
||||
|
||||
MIZE_BUILD_CONFIG = let
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
in settingsFormat.generate "mize-build-config.toml" {
|
||||
config = {
|
||||
namespace = "mize.buildtime.ns";
|
||||
module_url = "c2vi.dev";
|
||||
};
|
||||
config = mizeBuildConfig;
|
||||
};
|
||||
shellHook = ''
|
||||
mize_project_root=$(${pkgs.lib.getExe pkgs.git} rev-parse --show-toplevel)
|
||||
@@ -349,10 +192,7 @@ in {
|
||||
MIZE_BUILD_CONFIG = let
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
in settingsFormat.generate "mize-build-config.toml" {
|
||||
config = {
|
||||
namespace = "mize.buildtime.ns";
|
||||
module_url = "c2vi.dev";
|
||||
};
|
||||
config = mizeBuildConfig;
|
||||
};
|
||||
shellHook = ''
|
||||
mize_project_root=$(${pkgs.lib.getExe pkgs.git} rev-parse --show-toplevel)
|
||||
@@ -429,6 +269,5 @@ in {
|
||||
|
||||
############################## SOME GLOBAL OUTPUTS ##############################
|
||||
inherit inputs self;
|
||||
rustPkgs = import nixpkgs { overlays = [rust-overlay.overlays.default]; system = "x86_64-linux"; };
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user