diff --git a/default.nix b/default.nix index 2b1a763..59758ae 100644 --- a/default.nix +++ b/default.nix @@ -1,32 +1,34 @@ { - nixPkgsVersion ? "3e52e76b70d5508f3cec70b882a29199f4d1ee85" + nixPkgsVersion ? "f606c027310f06df398875960e04038db1f0129f", # release 23.0 # "3e52e76b70d5508f3cec70b882a29199f4d1ee85", # unstable + currentSystem }: let getNixPkgs = args: import (builtins.fetchGit { name = "nixpkg-serene-${nixPkgsVersion}"; url = "https://github.com/nixos/nixpkgs/"; - # Commit hash for nixos-unstable as of 2018-09-12 # `git ls-remote https://github.com/nixos/nixpkgs nixos-unstable` - ref = "refs/heads/nixos-unstable"; + ref = "refs/heads/release-23.05"; # refs/heads/nixos-unstable rev = nixPkgsVersion; }) args; - nixpkgs = getNixPkgs {}; - system = import ./system.nix { pkgs = nixpkgs; }; - staticMuslPkgs = getNixPkgs system; - llvm = staticMuslPkgs.llvmPackages_16.override { stdenv = staticMuslPkgs.llvmPackages_16.libcxxClang; }; - SereneOverlay = final: prev: - { - sereneToolchain = llvm.libcxxClang; - }; + nixpkgs = getNixPkgs { system = currentSystem; }; + system = import ./system.nix { + pkgs = nixpkgs; + inherit currentSystem; + }; + # staticMuslPkgs = getNixPkgs system; + # llvm = staticMuslPkgs.llvmPackages_16.override { stdenv = staticMuslPkgs.llvmPackages_16.libcxxStdenv; }; + + replaceStdenv = { pkgs }: + let + llvm = pkgs.llvmPackages_16.override { stdenv = pkgs.llvmPackages_16.libcxxStdenv; }; + in + llvm.libcxxStdenv; + + createPkgSet = _: + getNixPkgs (system // { config = { inherit replaceStdenv; }; }); - createPkgSet = _: # It has to be the nixpkgs instance - getNixPkgs (system // { overlays = [ SereneOverlay ]; }); - #pkgs = getNixPkgs nixVersion (system // { overlays = [ libcxxClangOverlay ]; }); in { - inherit SereneOverlay createPkgSet; - # setupToolchain = nixpkgs: - - #pkgs.stdenv.override { stdenv = llvm.libcxxClang; }; + inherit createPkgSet; } diff --git a/flake.nix b/flake.nix index 10a3cdf..1ab6a1a 100644 --- a/flake.nix +++ b/flake.nix @@ -4,10 +4,19 @@ outputs = inputs: let - toolchain = import ./.; + toolchain = import /home/lxsameer/src/toolchain/test-stdenv.nix {}; + nixpkgs = import /home/lxsameer/src/nixpkgs {}; + myenv = toolchain.createPkgSet; in - { - inherit toolchain; - }; - + { + testClang = myenv.stdenv.mkDerivation { + name = "testClang"; + unpackPhase = "echo AA $CC; echo '--'; env; NIX_DEBUG=1 $CC -v; echo '--'; exit 1"; + }; + testGcc = nixpkgs.stdenv.mkDerivation { + name = "testGcc"; + unpackPhase = "NIX_DEBUG=1 $CC --version; echo $CC; $CC -v; exit 1"; + }; + inherit myenv; + }; } diff --git a/system.nix b/system.nix index 45a7f1d..dff53c5 100644 --- a/system.nix +++ b/system.nix @@ -1,11 +1,11 @@ -{ pkgs }: +{ pkgs, currentSystem }: let - parsedSystem = builtins.split "-" builtins.currentSystem; + parsedSystem = builtins.split "-" currentSystem; arch = builtins.head (parsedSystem); os = builtins.elemAt (parsedSystem) 2; system = pkgs.lib.systems.elaborate { - system = builtins.currentSystem; + system = currentSystem; config = "${arch}-unknown-linux-musl"; isStatic = true; useLLVM = true; diff --git a/test-stdenv.nix b/test-stdenv.nix new file mode 100644 index 0000000..c634d43 --- /dev/null +++ b/test-stdenv.nix @@ -0,0 +1,22 @@ +{}: +let + currentSystem = "x86_64-linux"; + getNixPkgs = args: import ../nixpkgs args; + + nixpkgs = getNixPkgs { system = currentSystem; }; + system = import ./system.nix { + pkgs = nixpkgs; + inherit currentSystem; + }; + + # replaceStdenv = { pkgs }: + # let + # llvm = pkgs.llvmPackages_16.override { stdenv = pkgs.llvmPackages_16.libcxxStdenv; }; + # in + # llvm.libcxxStdenv; + + createPkgSet = getNixPkgs system; + +in { + inherit createPkgSet; +}