rewrite flake.nix
This commit is contained in:
102
flake.nix
102
flake.nix
@@ -1,103 +1,35 @@
|
|||||||
{
|
{
|
||||||
description = "Build Project Engine";
|
description = "Build Project X-001";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
imgui.url = "github:ocornut/imgui?ref=docking";
|
imgui = {
|
||||||
imgui.flake = false;
|
url = "github:ocornut/imgui?ref=docking";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, imgui }@inputs:
|
outputs = { self, nixpkgs, imgui }@inputs: let
|
||||||
let
|
|
||||||
|
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
|
|
||||||
renderer = "vulkan";
|
|
||||||
|
|
||||||
window = "sdl2";
|
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
packages.${system}.default = pkgs.stdenv.mkDerivation {
|
packages.${system}.default = pkgs.stdenv.mkDerivation {
|
||||||
|
|
||||||
name = "Engine";
|
name = "Engine";
|
||||||
|
|
||||||
inherit system;
|
src = ./src;
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
imgui = inputs.imgui;
|
imgui = inputs.imgui;
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
|
||||||
buildInputs = with pkgs; if renderer == "vulkan" && window == "sdl2" then [
|
|
||||||
tinyobjloader
|
|
||||||
stb
|
|
||||||
glm
|
|
||||||
shaderc
|
|
||||||
SDL2
|
|
||||||
vulkan-headers
|
vulkan-headers
|
||||||
vulkan-loader
|
vulkan-loader
|
||||||
] else if renderer == "vulkan" && window == "glfw" then [
|
];
|
||||||
stb
|
|
||||||
glm
|
|
||||||
shaderc
|
|
||||||
glfw
|
|
||||||
vulkan-headers
|
|
||||||
vulkan-loader
|
|
||||||
] else if renderer == "opengl3" && window == "sdl2" then [
|
|
||||||
stb
|
|
||||||
glm
|
|
||||||
SDL2
|
|
||||||
|
|
||||||
] else if renderer == "opengl3" && window == "glfw" then [
|
buildPhase = ''
|
||||||
stb
|
g++ *.cpp -o $name
|
||||||
glm
|
'';
|
||||||
glfw
|
|
||||||
] else [];
|
|
||||||
|
|
||||||
buildPhase = if renderer == "vulkan" && window == "sdl2" then
|
|
||||||
''
|
|
||||||
glslc shaders/*.vert -o vert.spv
|
|
||||||
glslc shaders/*.frag -o frag.spv
|
|
||||||
g++ src/*.cpp renderer/vulkanRenderer.cpp window/sdl2Window.cpp layers/*.cpp events/*.cpp \
|
|
||||||
-I src -I renderer -I window -I layers -I events \
|
|
||||||
-I $imgui -I $imgui/backends -I ${pkgs.stb}/include/stb $(sdl2-config --cflags) \
|
|
||||||
$imgui/*.cpp $imgui/backends/*sdl2.cpp $imgui/backends/*vulkan.cpp \
|
|
||||||
-lSDL2 -lvulkan -o $name -DIMGUI_ENABLE -DSHDR_PATH=$out/bin
|
|
||||||
''
|
|
||||||
else if renderer == "vulkan" && window == "glfw" then
|
|
||||||
''
|
|
||||||
glslc shaders/*.vert -o vert.spv
|
|
||||||
glslc shaders/*.frag -o frag.spv
|
|
||||||
g++ src/*.cpp renderer/vulkanRenderer.cpp window/sdl2Window.cpp layers/*.cpp events/*.cpp \
|
|
||||||
-I src -I renderer -I window -I layers -I events \
|
|
||||||
-I $imgui -I $imgui/backends -I ${pkgs.stb}/include/stb $(sdl2-config --cflags) \
|
|
||||||
$imgui/*.cpp $imgui/backends/*sdl2.cpp $imgui/backends/*vulkan.cpp \
|
|
||||||
-lSDL2 -lvulkan -o $name -DIMGUI_ENABLE -DSHDR_PATH=$out/bin
|
|
||||||
''
|
|
||||||
else if renderer == "opengl3" && window == "sdl2" then
|
|
||||||
''
|
|
||||||
glslc shaders/*.vert -o vert.spv
|
|
||||||
glslc shaders/*.frag -o frag.spv
|
|
||||||
g++ src/*.cpp renderer/vulkanRenderer.cpp window/sdl2Window.cpp layers/*.cpp events/*.cpp \
|
|
||||||
-I src -I renderer -I window -I layers -I events \
|
|
||||||
-I $imgui -I $imgui/backends -I ${pkgs.stb}/include/stb $(sdl2-config --cflags) \
|
|
||||||
$imgui/*.cpp $imgui/backends/*sdl2.cpp $imgui/backends/*vulkan.cpp \
|
|
||||||
-lSDL2 -lvulkan -o $name -DIMGUI_ENABLE -DSHDR_PATH=$out/bin
|
|
||||||
''
|
|
||||||
else if renderer == "opengl3" && window == "glfw" then
|
|
||||||
''
|
|
||||||
glslc shaders/*.vert -o vert.spv
|
|
||||||
glslc shaders/*.frag -o frag.spv
|
|
||||||
g++ src/*.cpp renderer/vulkanRenderer.cpp window/sdl2Window.cpp layers/*.cpp events/*.cpp \
|
|
||||||
-I src -I renderer -I window -I layers -I events \
|
|
||||||
-I $imgui -I $imgui/backends -I ${pkgs.stb}/include/stb $(sdl2-config --cflags) \
|
|
||||||
$imgui/*.cpp $imgui/backends/*sdl2.cpp $imgui/backends/*vulkan.cpp \
|
|
||||||
-lSDL2 -lvulkan -o $name -DIMGUI_ENABLE -DSHDR_PATH=$out/bin
|
|
||||||
'' else '''';
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
@@ -111,17 +43,15 @@
|
|||||||
|
|
||||||
name = "Engine";
|
name = "Engine";
|
||||||
|
|
||||||
inherit system;
|
src = ./modules/shaders;
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
shaderc
|
shaderc
|
||||||
];
|
];
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
glslc shaders/*.vert -o vert.spv
|
glslc *.vert -o vert.spv
|
||||||
glslc shaders/*.frag -o frag.spv
|
glslc *.frag -o frag.spv
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user