summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix107
1 files changed, 64 insertions, 43 deletions
diff --git a/flake.nix b/flake.nix
index 8caf0fa..fc793c4 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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" ];