flake parts
This commit is contained in:
@@ -1,36 +1,5 @@
|
|||||||
{ inputs, pkgs, ... }: {
|
{ inputs, pkgs, ... }: {
|
||||||
|
|
||||||
MinimalApp = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "Archimedes";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
src/example_apps/MinimalApp/MinimalApp.cpp \
|
|
||||||
-I include \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
|
|
||||||
mkdir -p $dev/include/modules
|
|
||||||
cp -r include/* $dev/include
|
|
||||||
cp -r modules $dev/include/modules
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
TriangleEmbed = pkgs.stdenvNoCC.mkDerivation {
|
TriangleEmbed = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
name = "Archimedes";
|
name = "Archimedes";
|
||||||
@@ -75,54 +44,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
ImguiEmbed = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "Archimedes";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
imgui = inputs.imgui;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
glfw
|
|
||||||
glew
|
|
||||||
|
|
||||||
glm
|
|
||||||
nlohmann_json
|
|
||||||
curl
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
src/example_apps/ImguiEmbed/*.cpp \
|
|
||||||
modules/MainGUI/*.cpp \
|
|
||||||
modules/WindowModule/*.cpp \
|
|
||||||
modules/ImguiModule/*.cpp \
|
|
||||||
$imgui/backends/imgui_impl_glfw.cpp \
|
|
||||||
$imgui/backends/imgui_impl_opengl3.cpp \
|
|
||||||
$imgui/misc/cpp/*.cpp \
|
|
||||||
$imgui/*.cpp \
|
|
||||||
-DRENDERER_OPENGL=1 \
|
|
||||||
-DWINDOW_GLFW=1 \
|
|
||||||
-I include -I $imgui -I . \
|
|
||||||
-lEGL -lGL -lglfw -lGLEW \
|
|
||||||
$(curl-config --cflags) \
|
|
||||||
$(curl-config --libs) \
|
|
||||||
-Wall \
|
|
||||||
-o $name -DIMGUI_IMPL_GLFW_DISABLE_X11
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
TerminalEmbed = pkgs.stdenvNoCC.mkDerivation {
|
TerminalEmbed = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
name = "Archimedes";
|
name = "Archimedes";
|
||||||
|
|||||||
6
dev/overlays.nix
Normal file
6
dev/overlays.nix
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
|
||||||
|
flake.overlays.glfw-old = (final: prev: let
|
||||||
|
pkgs-old = import inputs.nixpkgs-old { system = prev.stdenv.hostPlatform.system; };
|
||||||
|
in { glfw = pkgs-old.glfw; });
|
||||||
|
}
|
||||||
29
dev/shells.nix
Normal file
29
dev/shells.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{ ... }: {
|
||||||
|
|
||||||
|
perSystem = { config, system, pkgs, self', inputs', ... }: {
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShellNoCC {
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
clang
|
||||||
|
|
||||||
|
glfw
|
||||||
|
glew
|
||||||
|
|
||||||
|
sdl3
|
||||||
|
|
||||||
|
curl
|
||||||
|
glm
|
||||||
|
nlohmann_json
|
||||||
|
stb
|
||||||
|
|
||||||
|
gamenetworkingsockets
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
6
dev/systems.nix
Normal file
6
dev/systems.nix
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{ ... }: {
|
||||||
|
|
||||||
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
];
|
||||||
|
}
|
||||||
62
flake.lock
generated
62
flake.lock
generated
@@ -16,14 +16,32 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769996383,
|
||||||
|
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"imgui": {
|
"imgui": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769795052,
|
"lastModified": 1770923283,
|
||||||
"narHash": "sha256-JRA4E/aFcEEoB9FYHcLcEs4tgcX41ix2VjMV61PVQeA=",
|
"narHash": "sha256-EOhlmnhoJRNjU7o7aCXnRrOw7JM0nq0VWDVnUJ6A6Xo=",
|
||||||
"owner": "ocornut",
|
"owner": "ocornut",
|
||||||
"repo": "imgui",
|
"repo": "imgui",
|
||||||
"rev": "913a3c60561bb07e8fd410ec7d4a8f6f485defd6",
|
"rev": "3fb22b836ba968c62d280d9de079ec5ed7fcd1b5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -33,13 +51,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"import-tree": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1771045967,
|
||||||
|
"narHash": "sha256-oYO4poyw0Sb/db2PigqugMlDwsvwLg6CSpFrMUWxA3Q=",
|
||||||
|
"owner": "vic",
|
||||||
|
"repo": "import-tree",
|
||||||
|
"rev": "c968d3b54d12cf5d9c13f16f7c545a06c9d1fde6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "vic",
|
||||||
|
"repo": "import-tree",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770136044,
|
"lastModified": 1770770419,
|
||||||
"narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=",
|
"narHash": "sha256-iKZMkr6Cm9JzWlRYW/VPoL0A9jVKtZYiU4zSrVeetIs=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e",
|
"rev": "6c5e707c6b5339359a9a9e215c5e66d6d802fd7a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -49,6 +82,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-lib": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769909678,
|
||||||
|
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "72716169fe93074c333e8d0173151350670b824c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs-old": {
|
"nixpkgs-old": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1720535198,
|
"lastModified": 1720535198,
|
||||||
@@ -68,7 +116,9 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"clay": "clay",
|
"clay": "clay",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
"imgui": "imgui",
|
"imgui": "imgui",
|
||||||
|
"import-tree": "import-tree",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-old": "nixpkgs-old"
|
"nixpkgs-old": "nixpkgs-old"
|
||||||
}
|
}
|
||||||
|
|||||||
485
flake.nix
485
flake.nix
@@ -12,286 +12,261 @@
|
|||||||
url = "github:nicbarker/clay";
|
url = "github:nicbarker/clay";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
|
||||||
|
import-tree.url = "github:vic/import-tree";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, imgui, clay, ... }@inputs: let
|
outputs = { self, flake-parts, import-tree, ... } @ inputs:
|
||||||
system = "x86_64-linux";
|
flake-parts.lib.mkFlake {
|
||||||
pkgs-old = import inputs.nixpkgs-old { inherit system; };
|
inputs = inputs // {
|
||||||
viewport-overlay = final: prev: { glfw = pkgs-old.glfw; };
|
|
||||||
pkgs = import nixpkgs { inherit system; overlays = [ viewport-overlay ]; };
|
|
||||||
in {
|
|
||||||
|
|
||||||
Archimedes = {
|
|
||||||
examples = import ./ExampleApps.nix { inherit inputs pkgs; };
|
|
||||||
};
|
|
||||||
|
|
||||||
Modules = {
|
|
||||||
examples = import ./ExampleModules.nix { inherit inputs pkgs; };
|
|
||||||
|
|
||||||
ServerModule = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "ServerModule";
|
|
||||||
|
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
gamenetworkingsockets
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/ServerModule/*.cpp \
|
|
||||||
-fpic -shared \
|
|
||||||
-I include \
|
|
||||||
-I ${pkgs.gamenetworkingsockets}/include/GameNetworkingSockets \
|
|
||||||
-lGameNetworkingSockets \
|
|
||||||
-DSERVERMODULE_DYNAMIC \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
ClientModule = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "ClientModule";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
gamenetworkingsockets
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/ClientModule/*.cpp \
|
|
||||||
-fpic -shared \
|
|
||||||
-I include \
|
|
||||||
-I ${pkgs.gamenetworkingsockets}/include/GameNetworkingSockets \
|
|
||||||
-lGameNetworkingSockets \
|
|
||||||
-DCLIENTMODULE_DYNAMIC \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
WindowModule = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "WindowModule";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
glfw
|
|
||||||
glew
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/WindowModule/*.cpp \
|
|
||||||
-fpic -shared \
|
|
||||||
-I include \
|
|
||||||
-DRENDERER=1 \
|
|
||||||
-DWINDOW=1 \
|
|
||||||
-DWINDOWMODULE_DYNAMIC \
|
|
||||||
-lGL -lglfw -lGLEW \
|
|
||||||
-Wall \
|
|
||||||
-o $name -DIMGUI_IMPL_GLFW_DISABLE_X11
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
ImguiModule = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "ImguiModule";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
imgui = inputs.imgui;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
glfw
|
|
||||||
glew
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/ImguiModule/*.cpp \
|
|
||||||
modules/WindowModule/*.cpp \
|
|
||||||
$imgui/backends/imgui_impl_glfw.cpp \
|
|
||||||
$imgui/backends/imgui_impl_opengl3.cpp \
|
|
||||||
$imgui/misc/cpp/*.cpp \
|
|
||||||
$imgui/*.cpp \
|
|
||||||
-DRENDERER=1 \
|
|
||||||
-DWINDOW=1 \
|
|
||||||
-DIMGUIMODULE_DYNAMIC \
|
|
||||||
-DCUSTOMFONT=${pkgs.fira-code}/share/fonts/truetype/FiraCode-VF.ttf \
|
|
||||||
-fpic -shared \
|
|
||||||
-I include -I $imgui -I . \
|
|
||||||
-lGL -lglfw -lGLEW \
|
|
||||||
-Wall \
|
|
||||||
-o $name -DIMGUI_IMPL_GLFW_DISABLE_X11
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
MainGUIsdl = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "MainGUI";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
inherit imgui;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
sdl3
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/MainGUI/*.cpp \
|
|
||||||
modules/ImguiModule/*.cpp \
|
|
||||||
modules/WindowModule/*.cpp \
|
|
||||||
$imgui/backends/imgui_impl_sdl3.cpp \
|
|
||||||
$imgui/backends/imgui_impl_sdlrenderer3.cpp \
|
|
||||||
$imgui/misc/cpp/*.cpp \
|
|
||||||
$imgui/*.cpp \
|
|
||||||
-DRENDERER=2 \
|
|
||||||
-DWINDOW=2 \
|
|
||||||
-DMAINGUI_DYNAMIC \
|
|
||||||
-fpic -shared \
|
|
||||||
-I include -I $imgui -I . \
|
|
||||||
-lSDL3 \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
} (import-tree [ ./modules ./src ./dev ]);
|
||||||
|
|
||||||
|
|
||||||
MainGUI = pkgs.stdenvNoCC.mkDerivation {
|
/*
|
||||||
|
Modules = {
|
||||||
|
examples = import ./ExampleModules.nix { inherit inputs pkgs; };
|
||||||
|
|
||||||
name = "MainGUI";
|
ServerModule = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
src = ./.;
|
name = "ServerModule";
|
||||||
|
|
||||||
inherit imgui;
|
src = ./.;
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
clang
|
clang
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
glfw
|
gamenetworkingsockets
|
||||||
glew
|
];
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
clang++ \
|
clang++ \
|
||||||
modules/MainGUI/*.cpp \
|
modules/ServerModule/*.cpp \
|
||||||
modules/ImguiModule/*.cpp \
|
-fpic -shared \
|
||||||
modules/WindowModule/*.cpp \
|
-I include \
|
||||||
$imgui/backends/imgui_impl_glfw.cpp \
|
-I ${pkgs.gamenetworkingsockets}/include/GameNetworkingSockets \
|
||||||
$imgui/backends/imgui_impl_opengl3.cpp \
|
-lGameNetworkingSockets \
|
||||||
$imgui/misc/cpp/*.cpp \
|
-DSERVERMODULE_DYNAMIC \
|
||||||
$imgui/*.cpp \
|
-Wall \
|
||||||
-DRENDERER=1 \
|
-o $name
|
||||||
-DWINDOW=1 \
|
'';
|
||||||
-DMAINGUI_DYNAMIC \
|
|
||||||
-fpic -shared \
|
|
||||||
-I include -I $imgui -I . \
|
|
||||||
-lGL -lglfw -lGLEW \
|
|
||||||
-Wall \
|
|
||||||
-o $name -DIMGUI_IMPL_GLFW_DISABLE_X11
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
cp $name $out/bin
|
cp $name $out/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
ClientModule = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
packages.${system}.default = self.Archimedes.examples.MinimalApp;
|
name = "ClientModule";
|
||||||
|
|
||||||
apps.${system}.default = {
|
src = ./.;
|
||||||
type = "app";
|
|
||||||
program = "${self.Archimedes.examples.MinimalApp}/bin/Archimedes";
|
|
||||||
};
|
|
||||||
|
|
||||||
devShells.${system} = {
|
nativeBuildInputs = with pkgs; [
|
||||||
default = pkgs.mkShellNoCC {
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
packages = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
clang
|
gamenetworkingsockets
|
||||||
|
];
|
||||||
|
|
||||||
glfw
|
buildPhase = ''
|
||||||
glew
|
clang++ \
|
||||||
|
modules/ClientModule/*.cpp \
|
||||||
|
-fpic -shared \
|
||||||
|
-I include \
|
||||||
|
-I ${pkgs.gamenetworkingsockets}/include/GameNetworkingSockets \
|
||||||
|
-lGameNetworkingSockets \
|
||||||
|
-DCLIENTMODULE_DYNAMIC \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
sdl3
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
curl
|
};
|
||||||
glm
|
|
||||||
nlohmann_json
|
|
||||||
stb
|
|
||||||
|
|
||||||
gamenetworkingsockets
|
WindowModule = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
];
|
name = "WindowModule";
|
||||||
|
|
||||||
shellHook = ''
|
src = ./.;
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
nativeBuildInputs = with pkgs; [
|
||||||
};
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
};
|
buildInputs = with pkgs; [
|
||||||
|
glfw
|
||||||
|
glew
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/WindowModule/*.cpp \
|
||||||
|
-fpic -shared \
|
||||||
|
-I include \
|
||||||
|
-DRENDERER=1 \
|
||||||
|
-DWINDOW=1 \
|
||||||
|
-DWINDOWMODULE_DYNAMIC \
|
||||||
|
-lGL -lglfw -lGLEW \
|
||||||
|
-Wall \
|
||||||
|
-o $name -DIMGUI_IMPL_GLFW_DISABLE_X11
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
ImguiModule = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "ImguiModule";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
imgui = inputs.imgui;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
glfw
|
||||||
|
glew
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/ImguiModule/*.cpp \
|
||||||
|
modules/WindowModule/*.cpp \
|
||||||
|
$imgui/backends/imgui_impl_glfw.cpp \
|
||||||
|
$imgui/backends/imgui_impl_opengl3.cpp \
|
||||||
|
$imgui/misc/cpp/*.cpp \
|
||||||
|
$imgui/*.cpp \
|
||||||
|
-DRENDERER=1 \
|
||||||
|
-DWINDOW=1 \
|
||||||
|
-DIMGUIMODULE_DYNAMIC \
|
||||||
|
-DCUSTOMFONT=${pkgs.fira-code}/share/fonts/truetype/FiraCode-VF.ttf \
|
||||||
|
-fpic -shared \
|
||||||
|
-I include -I $imgui -I . \
|
||||||
|
-lGL -lglfw -lGLEW \
|
||||||
|
-Wall \
|
||||||
|
-o $name -DIMGUI_IMPL_GLFW_DISABLE_X11
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
MainGUIsdl = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "MainGUI";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
inherit imgui;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
sdl3
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/MainGUI/*.cpp \
|
||||||
|
modules/ImguiModule/*.cpp \
|
||||||
|
modules/WindowModule/*.cpp \
|
||||||
|
$imgui/backends/imgui_impl_sdl3.cpp \
|
||||||
|
$imgui/backends/imgui_impl_sdlrenderer3.cpp \
|
||||||
|
$imgui/misc/cpp/*.cpp \
|
||||||
|
$imgui/*.cpp \
|
||||||
|
-DRENDERER=2 \
|
||||||
|
-DWINDOW=2 \
|
||||||
|
-DMAINGUI_DYNAMIC \
|
||||||
|
-fpic -shared \
|
||||||
|
-I include -I $imgui -I . \
|
||||||
|
-lSDL3 \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
MainGUI = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "MainGUI";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
inherit imgui;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
glfw
|
||||||
|
glew
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/MainGUI/*.cpp \
|
||||||
|
modules/ImguiModule/*.cpp \
|
||||||
|
modules/WindowModule/*.cpp \
|
||||||
|
$imgui/backends/imgui_impl_glfw.cpp \
|
||||||
|
$imgui/backends/imgui_impl_opengl3.cpp \
|
||||||
|
$imgui/misc/cpp/*.cpp \
|
||||||
|
$imgui/*.cpp \
|
||||||
|
-DRENDERER=1 \
|
||||||
|
-DWINDOW=1 \
|
||||||
|
-DMAINGUI_DYNAMIC \
|
||||||
|
-fpic -shared \
|
||||||
|
-I include -I $imgui -I . \
|
||||||
|
-lGL -lglfw -lGLEW \
|
||||||
|
-Wall \
|
||||||
|
-o $name -DIMGUI_IMPL_GLFW_DISABLE_X11
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
packages.${system}.default = self.Archimedes.examples.MinimalApp;
|
||||||
|
|
||||||
|
apps.${system}.default = {
|
||||||
|
type = "app";
|
||||||
|
program = "${self.Archimedes.examples.MinimalApp}/bin/Archimedes";
|
||||||
|
};
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|||||||
53
src/example_apps/ImguiEmbed/default.nix
Normal file
53
src/example_apps/ImguiEmbed/default.nix
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
|
||||||
|
perSystem = { system, pkgs, self', ... }: {
|
||||||
|
packages.exampleApps_ImguiEmbed = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "Archimedes";
|
||||||
|
|
||||||
|
src = inputs.src;
|
||||||
|
|
||||||
|
imgui = inputs.imgui;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
glfw
|
||||||
|
glew
|
||||||
|
|
||||||
|
glm
|
||||||
|
nlohmann_json
|
||||||
|
curl
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
$src/src/example_apps/ImguiEmbed/*.cpp \
|
||||||
|
$src/modules/MainGUI/*.cpp \
|
||||||
|
$src/modules/WindowModule/*.cpp \
|
||||||
|
$src/modules/ImguiModule/*.cpp \
|
||||||
|
$imgui/backends/imgui_impl_glfw.cpp \
|
||||||
|
$imgui/backends/imgui_impl_opengl3.cpp \
|
||||||
|
$imgui/misc/cpp/*.cpp \
|
||||||
|
$imgui/*.cpp \
|
||||||
|
-DRENDERER_OPENGL=1 \
|
||||||
|
-DWINDOW_GLFW=1 \
|
||||||
|
-I $src/include -I $imgui -I $src \
|
||||||
|
-lEGL -lGL -lglfw -lGLEW \
|
||||||
|
$(curl-config --cflags) \
|
||||||
|
$(curl-config --libs) \
|
||||||
|
-Wall \
|
||||||
|
-o $name -DIMGUI_IMPL_GLFW_DISABLE_X11
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
38
src/example_apps/MinimalApp/default.nix
Normal file
38
src/example_apps/MinimalApp/default.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
|
||||||
|
|
||||||
|
perSystem = { system, pkgs, self', ... }: {
|
||||||
|
packages.exampleApps_MinimalApp = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "Archimedes";
|
||||||
|
|
||||||
|
src = inputs.src;
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
$src/src/example_apps/MinimalApp/MinimalApp.cpp \
|
||||||
|
-I $src/include \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
|
||||||
|
mkdir -p $dev/include/modules
|
||||||
|
cp -r include/* $dev/include
|
||||||
|
cp -r modules $dev/include/modules
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
38
src/example_apps/TerminalEmbed/default.nix
Normal file
38
src/example_apps/TerminalEmbed/default.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
|
||||||
|
|
||||||
|
perSystem = { system, pkgs, self', ... }: {
|
||||||
|
packages.exampleApps_MinimalApp = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "Archimedes";
|
||||||
|
|
||||||
|
src = inputs.src;
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
$src/src/example_apps/MinimalApp/MinimalApp.cpp \
|
||||||
|
-I $src/include \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
|
||||||
|
mkdir -p $dev/include/modules
|
||||||
|
cp -r include/* $dev/include
|
||||||
|
cp -r modules $dev/include/modules
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
38
src/example_apps/TriangleEmbed/default.nix
Normal file
38
src/example_apps/TriangleEmbed/default.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{ inputs, ... }: {
|
||||||
|
|
||||||
|
|
||||||
|
perSystem = { system, pkgs, self', ... }: {
|
||||||
|
packages.exampleApps_MinimalApp = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "Archimedes";
|
||||||
|
|
||||||
|
src = inputs.src;
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
$src/src/example_apps/MinimalApp/MinimalApp.cpp \
|
||||||
|
-I $src/include \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
|
||||||
|
mkdir -p $dev/include/modules
|
||||||
|
cp -r include/* $dev/include
|
||||||
|
cp -r modules $dev/include/modules
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user