diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 107 |
1 files changed, 64 insertions, 43 deletions
@@ -69,7 +69,9 @@ function (import (nixpkgs.legacyPackages.${system}.applyPatches { src = nixpkgs; name = "nixpkgs-camu"; - patches = [ ]; + patches = [ + ./env/nixpkgs-patches/539430.diff + ]; }) { inherit system; inherit overlays; @@ -227,7 +229,22 @@ ''; }); - devShells = forAllDevSystems (pkgs: rec { + devShells = forAllDevSystems (pkgs: let + mingw-deps = crossPkgs: with crossPkgs; [ + ((buildWithFlags zlib "-Os").override { shared = false; }) + ((buildWithFlags bzip2 "-Os").override { enableStatic = true; enableShared = false; }) + ((buildWithFlags soxr "-Os").overrideAttrs (oldAttrs: { + cmakeFlags = oldAttrs.cmakeFlags ++ [ "-DBUILD_STATIC_LIBS=ON" "-DBUILD_SHARED_LIBS=OFF" ]; + })) + ((buildWithFlags dav1d "-Os").overrideAttrs (oldAttrs: { + mesonFlags = oldAttrs.mesonFlags ++ [ "--default-library=static" ]; + })) + ((buildWithFlags openssl "-Os").override { static = true; }) + (buildWithFlags xxhash "-Os") + ((buildWithFlags libiconv "-Os").override { enableStatic = true; enableShared = false; }) + vulkan-headers + ]; + in rec { default = with pkgs; mkShell rec { NIX_HARDENING_ENABLE = ""; nativeBuildInputs = packages.${stdenv.hostPlatform.system}.default.nativeBuildInputs ++ [ @@ -245,7 +262,8 @@ #pandoc #emscripten #makemkv - mesa-demos + #mesa-demos + vulkan-validation-layers # mesa build #buildPackages.mesa.cross_tools #mesa.depsBuildBuild @@ -325,20 +343,22 @@ }; mingw64 = with pkgs; let - gcc = pkgsCross.ucrt64.buildPackages.wrapCCWith { - cc = (pkgsCross.ucrt64.buildPackages.gcc.cc.override ({ + crossPkgs = pkgsCross.ucrt64; + gcc = crossPkgs.buildPackages.wrapCCWith { + cc = (crossPkgs.buildPackages.gcc.cc.override ({ + # @TODO: gcc 16 native tls. + # https://github.com/msys2/MINGW-packages/issues/29272 threadsCross = { model = "win32"; package = null; }; })); }; - gccWin32Stdenv = overrideCC pkgsCross.ucrt64.stdenv gcc; - in mkShell.override { stdenv = gccWin32Stdenv; } { + gccWin32Stdenv = overrideCC crossPkgs.stdenv gcc; + in crossPkgs.mkShell.override { stdenv = gccWin32Stdenv; } { # Note that `cc` has to invoke a native compiler not a cross compiler. # If meson complains that a compiler for the "build machine" is not found, # it may be due to NIX_COMPILE_FLAGS, or NIX_LDFLAGS. NIX_HARDENING_ENABLE = ""; nativeBuildInputs = [ git - buildPackages.gcc nasm pkg-config autoconf @@ -374,41 +394,53 @@ # vkd3d-proton build glslang ]; - buildInputs = with pkgsCross.ucrt64; [ - (zlib.override { shared = false; }) - (bzip2.override { enableStatic = true; enableShared = false; }) - (soxr.overrideAttrs (oldAttrs: { - cmakeFlags = oldAttrs.cmakeFlags ++ [ "-DBUILD_STATIC_LIBS=ON" "-DBUILD_SHARED_LIBS=OFF" ]; - })) - (dav1d.overrideAttrs (oldAttrs: { - mesonFlags = oldAttrs.mesonFlags ++ [ "--default-library=static" ]; - })) - (openssl.override { static = true; }) - xxhash - (libiconv.override { enableStatic = true; enableShared = false; }) - vulkan-headers - #(shaderc.overrideAttrs (oldAttrs: { - # cmakeFlags = oldAttrs.cmakeFlags ++ [ "-DBUILD_STATIC_LIBS=ON" "-DBUILD_SHARED_LIBS=OFF" ]; - #})) - ]; + buildInputs = mingw-deps pkgsStatic.pkgsCross.ucrt64; # https://old.reddit.com/r/NixOS/comments/1c4lc1n/how_to_run_this_minimal_python_script_with/kzpao62/ shellHook = '' export SHELL="${pkgs.bashInteractive}/bin/bash" - # For native compiler. - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.stdenv.cc.cc.lib}/lib" export XDG_DATA_DIRS="${pkgs.mesa}/share:$XDG_DATA_DIRS" # Using x86_64-w64-mingw32-ar (as opposed to x86_64-w64-mingw32-gcc-ar) breaks lto. unset AR NM #alias wine="${pkgs.nixgl.nixGLIntel}/bin/nixGLIntel wine" # Silence Wine logging and enable Esync by default. export WINEDEBUG=-all - export WINEESYNC=1 export NIX_BUILD_SHELL=$SHELL export NIX_SHELL="camu-mingw64" export PS1="(\$NIX_SHELL)"$PS1 ''; }; + mingw64-clang = with pkgs; let + crossPkgs = pkgsCross.ucrt64.pkgsLLVM; + clang = crossPkgs.buildPackages.wrapCCWith { + cc = crossPkgs.buildPackages.llvmPackages.clang; + bintools = crossPkgs.buildPackages.llvmPackages.bintools; + libcxx = crossPkgs.llvmPackages.libcxx; + }; + clangWin32Stdenv = overrideCC crossPkgs.llvmPackages.libcxxStdenv clang; + #clang = crossPkgs.buildPackages.wrapCCWith { + # cc = crossPkgs.buildPackages.llvmPackages.clangUseLLVM; + # bintools = crossPkgs.buildPackages.llvmPackages.bintools; + # libc = crossPkgs.buildPackages.llvmPackages.bintools.libc; + # libcxx = crossPkgs.buildPackages.llvmPackages.libcxx; + #}; + #clangWin32Stdenv = crossPkgs.overrideCC (crossPkgs.llvmPackages.libcxxStdenv.override { + # targetPlatform.useLLVM = true; + #}) clang; + in crossPkgs.mkShell.override { stdenv = clangWin32Stdenv; } { + nativeBuildInputs = mingw64.nativeBuildInputs; + buildInputs = mingw-deps pkgsStatic.pkgsCross.ucrt64; + shellHook = '' + export SHELL="${pkgs.bashInteractive}/bin/bash" + unset AR NM + alias wine="${pkgs.nixgl.nixGLIntel}/bin/nixGLIntel wine" + export WINEDEBUG=-all + export NIX_BUILD_SHELL=$SHELL + export NIX_SHELL="camu-mingw64-clang" + export PS1="(\$NIX_SHELL)"$PS1 + ''; + }; + mingw32 = with pkgs; let gcc = pkgsCross.mingw32.buildPackages.wrapCCWith { cc = (pkgsCross.mingw32.buildPackages.gcc-unwrapped.override (old: { @@ -419,23 +451,12 @@ in mkShell.override { stdenv = gccWin32Stdenv; } { NIX_HARDENING_ENABLE = ""; nativeBuildInputs = mingw64.nativeBuildInputs; - buildInputs = with pkgsCross.mingw32; [ - (buildWithFlags (zlib.override { shared = false; }) "-Os") - ((buildWithFlags bzip2 "-Os").override { enableStatic = true; enableShared = false; }) - ((buildWithFlags soxr "-Os").overrideAttrs (oldAttrs: { - cmakeFlags = oldAttrs.cmakeFlags ++ [ "-DBUILD_STATIC_LIBS=ON" "-DBUILD_SHARED_LIBS=OFF" ]; - })) - ((buildWithFlags openssl "-Os").override { static = true; }) - (buildWithFlags xxhash "-Os") - ((buildWithFlags libiconv "-Os").override { enableStatic = true; enableShared = false; }) - vulkan-headers - ]; + buildInputs = mingw-deps pkgsStatic.pkgsCross.mingw32; shellHook = '' export SHELL="${pkgs.bashInteractive}/bin/bash" - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.stdenv.cc.cc.lib}/lib" + unset AR NM alias wine="${pkgs.nixgl.nixGLIntel}/bin/nixGLIntel wine" export WINEDEBUG=-all - export WINEESYNC=1 export NIX_BUILD_SHELL=$SHELL export NIX_SHELL="camu-mingw32" export PS1="(\$NIX_SHELL)"$PS1 @@ -447,7 +468,7 @@ androidComposition = androidenv.composeAndroidPackages { cmdLineToolsVersion = "19.0"; toolsVersion = "26.1.1"; - platformToolsVersion = "36.0.2"; + platformToolsVersion = "37.0.1"; buildToolsVersions = [ "36.1.0" ]; includeEmulator = false; emulatorVersion = "35.2.5"; @@ -459,7 +480,7 @@ cmakeVersions = [ cmakeVersion ]; includeNDK = true; # latest = 28.0.13004108, _counted_by conflict. - ndkVersion = "23.2.8568313"; + ndkVersion = "29.0.14206865"; useGoogleAPIs = false; useGoogleTVAddOns = false; includeExtras = [ "extras;google;gcm" ]; |