nix-build: + xo-object + use clang 18 [WIP]
This commit is contained in:
parent
dedb0aaa1b
commit
1322a97a8b
2 changed files with 84 additions and 26 deletions
61
default.nix
61
default.nix
|
|
@ -84,13 +84,19 @@ let
|
|||
# };
|
||||
|
||||
# Problem: builds *everything* with llvm18 toolchain, exposes too many compiler nits
|
||||
llvm-overlay = self: super: {
|
||||
llvm-overlay = self: super:
|
||||
# use 'super' when you want to override the terms of a package.
|
||||
# use 'self' when pointing to an existing package
|
||||
#
|
||||
|
||||
llvmPackages = super.llvmPackages_18;
|
||||
};
|
||||
let
|
||||
llvmPackages = super.llvmPackages_18;
|
||||
in let
|
||||
clangStdenv = super.overrideCC super.stdenv super.llvmPackages_18.clang;
|
||||
in let
|
||||
jitStdenv = if super.stdenv.isDarwin then clangStdenv else super.stdenv;
|
||||
in
|
||||
{ inherit llvmPackages clangStdenv jitStdenv; };
|
||||
|
||||
# tests excruciatingly slow
|
||||
mailutils-overlay = self: super: {
|
||||
|
|
@ -133,30 +139,31 @@ let
|
|||
|
||||
in
|
||||
{
|
||||
xo-cmake = self.callPackage pkgs/xo-cmake.nix {};
|
||||
xo-indentlog = self.callPackage pkgs/xo-indentlog.nix { buildDocs = true; buildExamples = true; };
|
||||
xo-subsys = self.callPackage pkgs/xo-subsys.nix {};
|
||||
xo-randomgen = self.callPackage pkgs/xo-randomgen.nix { buildExamples = true; };
|
||||
xo-reflectutil = self.callPackage pkgs/xo-reflectutil.nix {};
|
||||
xo-arena = self.callPackage pkgs/xo-arena.nix { buildDocs = true; };
|
||||
xo-facet = self.callPackage pkgs/xo-facet.nix {};
|
||||
xo-allocutil = self.callPackage pkgs/xo-allocutil.nix {};
|
||||
xo-alloc = self.callPackage pkgs/xo-alloc.nix { buildDocs = true; };
|
||||
xo-alloc2 = self.callPackage pkgs/xo-alloc2.nix { buildDocs = true; };
|
||||
xo-gc = self.callPackage pkgs/xo-gc.nix { buildDocs = true; };
|
||||
xo-refcnt = self.callPackage pkgs/xo-refcnt.nix {};
|
||||
xo-ordinaltree = self.callPackage pkgs/xo-ordinaltree.nix {};
|
||||
xo-flatstring = self.callPackage pkgs/xo-flatstring.nix { buildDocs = true; buildExamples = true; };
|
||||
xo-pyutil = self.callPackage pkgs/xo-pyutil.nix {};
|
||||
xo-reflect = self.callPackage pkgs/xo-reflect.nix {};
|
||||
xo-pyreflect = self.callPackage pkgs/xo-pyreflect.nix {};
|
||||
xo-ratio = self.callPackage pkgs/xo-ratio.nix { buildDocs = true; buildExamples = true; };
|
||||
xo-unit = self.callPackage pkgs/xo-unit.nix { buildDocs = true; buildExamples = true; };
|
||||
xo-pyunit = self.callPackage pkgs/xo-pyunit.nix {};
|
||||
xo-cmake = self.callPackage pkgs/xo-cmake.nix { stdenv = jitStdenv; };
|
||||
xo-indentlog = self.callPackage pkgs/xo-indentlog.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; };
|
||||
xo-subsys = self.callPackage pkgs/xo-subsys.nix { stdenv = jitStdenv; };
|
||||
xo-randomgen = self.callPackage pkgs/xo-randomgen.nix { stdenv = jitStdenv; buildExamples = true; };
|
||||
xo-reflectutil = self.callPackage pkgs/xo-reflectutil.nix { stdenv = jitStdenv; };
|
||||
xo-flatstring = self.callPackage pkgs/xo-flatstring.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; };
|
||||
xo-arena = self.callPackage pkgs/xo-arena.nix { stdenv = jitStdenv; buildDocs = true; };
|
||||
xo-facet = self.callPackage pkgs/xo-facet.nix { stdenv = jitStdenv; };
|
||||
xo-allocutil = self.callPackage pkgs/xo-allocutil.nix { stdenv = jitStdenv; };
|
||||
xo-alloc = self.callPackage pkgs/xo-alloc.nix { stdenv = jitStdenv; buildDocs = true; };
|
||||
xo-alloc2 = self.callPackage pkgs/xo-alloc2.nix { stdenv = jitStdenv; buildDocs = true; };
|
||||
xo-gc = self.callPackage pkgs/xo-gc.nix { stdenv = jitStdenv; buildDocs = true; };
|
||||
xo-object = self.callPackage pkgs/xo-object.nix { stdenv = jitStdenv; };
|
||||
xo-refcnt = self.callPackage pkgs/xo-refcnt.nix { stdenv = jitStdenv; };
|
||||
xo-ordinaltree = self.callPackage pkgs/xo-ordinaltree.nix { stdenv = jitStdenv; };
|
||||
xo-pyutil = self.callPackage pkgs/xo-pyutil.nix { stdenv = jitStdenv; };
|
||||
xo-reflect = self.callPackage pkgs/xo-reflect.nix { stdenv = jitStdenv; };
|
||||
xo-pyreflect = self.callPackage pkgs/xo-pyreflect.nix { stdenv = jitStdenv; };
|
||||
xo-ratio = self.callPackage pkgs/xo-ratio.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; };
|
||||
xo-unit = self.callPackage pkgs/xo-unit.nix { stdenv = jitStdenv; buildDocs = true; buildExamples = true; };
|
||||
xo-pyunit = self.callPackage pkgs/xo-pyunit.nix { stdenv = jitStdenv; };
|
||||
#
|
||||
xo-callback = self.callPackage pkgs/xo-callback.nix {};
|
||||
xo-printable2 = self.callPackage pkgs/xo-printable2.nix {};
|
||||
xo-webutil = self.callPackage pkgs/xo-webutil.nix {};
|
||||
xo-callback = self.callPackage pkgs/xo-callback.nix { stdenv = jitStdenv; };
|
||||
xo-printable2 = self.callPackage pkgs/xo-printable2.nix { stdenv = jitStdenv; };
|
||||
xo-webutil = self.callPackage pkgs/xo-webutil.nix { stdenv = jitStdenv; };
|
||||
xo-pywebutil = self.callPackage pkgs/xo-pywebutil.nix {};
|
||||
xo-printjson = self.callPackage pkgs/xo-printjson.nix {};
|
||||
xo-pyprintjson = self.callPackage pkgs/xo-pyprintjson.nix {};
|
||||
|
|
@ -493,6 +500,7 @@ in
|
|||
alloc = pkgs.xo-alloc;
|
||||
alloc2 = pkgs.xo-alloc2;
|
||||
gc = pkgs.xo-gc;
|
||||
object = pkgs.xo-object;
|
||||
ordinaltree = pkgs.xo-ordinaltree;
|
||||
flatstring = pkgs.xo-flatstring;
|
||||
pyutil = pkgs.xo-pyutil;
|
||||
|
|
@ -741,6 +749,7 @@ in
|
|||
# 1 - get this to work as standalone copy of shell4-assembly
|
||||
# 2 - merge to look like shell4-wsl / shell4-nvidia
|
||||
#
|
||||
#shell4-osx = pkgs.mkShell.override { stdenv = pkgs.jitStdenv; } { .. } # very high attack surface area
|
||||
shell4-osx = pkgs.mkShell {
|
||||
buildInputs = docutils ++ xodeps ++ devutils ++ ideutils ++ x11utils ++ gldeps ++ vkdeps ++ imguideps;
|
||||
|
||||
|
|
|
|||
49
pkgs/xo-object.nix
Normal file
49
pkgs/xo-object.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
# nixpkgs dependencies
|
||||
lib, stdenv, cmake, catch2,
|
||||
|
||||
# xo dependencies
|
||||
# xo-reflect,
|
||||
# xo-webutil,
|
||||
xo-callback,
|
||||
xo-unit,
|
||||
xo-refcnt,
|
||||
xo-reflectutil,
|
||||
xo-alloc,
|
||||
xo-randomgen,
|
||||
xo-cmake,
|
||||
# xo-printjson,
|
||||
# xo-ordinaltree,
|
||||
xo-indentlog,
|
||||
doCheck ? true,
|
||||
} :
|
||||
|
||||
stdenv.mkDerivation (finalattrs:
|
||||
{
|
||||
name = "xo-object";
|
||||
|
||||
src = ../xo-object;
|
||||
|
||||
cmakeFlags = ["-DCMAKE_MODULE_PATH=${xo-cmake}/share/cmake"]
|
||||
++ lib.optionals doCheck ["-DENABLE_TESTING=1"];
|
||||
|
||||
inherit doCheck;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake catch2
|
||||
xo-randomgen
|
||||
xo-cmake
|
||||
];
|
||||
propagatedBuildInputs = [
|
||||
xo-callback
|
||||
xo-unit
|
||||
xo-refcnt
|
||||
# xo-reflect
|
||||
# xo-webutil
|
||||
# xo-printjson
|
||||
# xo-ordinaltree
|
||||
xo-alloc
|
||||
xo-reflectutil
|
||||
xo-indentlog
|
||||
];
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue