separate builds
This commit is contained in:
72
ExampleApps.nix
Normal file
72
ExampleApps.nix
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
{ inputs, pkgs, ... }: {
|
||||||
|
|
||||||
|
MinimalApp = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "Archimedes";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
/*buildInputs = with pkgs; [
|
||||||
|
];*/
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
src/example_apps/MinimalApp/MinimalApp.cpp \
|
||||||
|
-I src -I include \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
ImguiEmbed = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "Archimedes";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
imgui = inputs.imgui;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
glfw
|
||||||
|
glew
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
src/example_apps/ImguiEmbed/*.cpp \
|
||||||
|
modules/GUImodules/TestImgui/src/*.cpp \
|
||||||
|
$imgui/backends/imgui_impl_glfw.cpp \
|
||||||
|
$imgui/backends/imgui_impl_opengl3.cpp \
|
||||||
|
$imgui/*.cpp \
|
||||||
|
-DRENDERER_OPENGL \
|
||||||
|
-DWINDOW_GLFW \
|
||||||
|
-DGUIMODULE \
|
||||||
|
-DTESTIMGUI_STATIC \
|
||||||
|
-I src -I include -I $imgui -I . \
|
||||||
|
-lGL -lglfw -lGLEW \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
177
ExampleModules.nix
Normal file
177
ExampleModules.nix
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
{ inputs, pkgs, ... }: {
|
||||||
|
|
||||||
|
TestMenu = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "TestMenu";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/TestMenu/src/*.cpp \
|
||||||
|
-fpic -shared \
|
||||||
|
-I src \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
Print = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "Print";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/Print/src/*.cpp \
|
||||||
|
-fpic -shared \
|
||||||
|
-I src -I include \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
DependsOnPrint = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "DependsOnPrint";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/DependsOnPrint/src/*.cpp \
|
||||||
|
-fpic -shared \
|
||||||
|
-I src -I include \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
DependsOnPrintStatic = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "DependsOnPrintStatic";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/DependsOnPrintStatic/src/*.cpp \
|
||||||
|
modules/Print/src/*.cpp \
|
||||||
|
-fpic -shared \
|
||||||
|
-I src -I include -I . \
|
||||||
|
-DPRINT_STATIC \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
TestImgui = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "TestImgui";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
imgui = inputs.imgui;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
glfw
|
||||||
|
glew
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/GUImodules/TestImgui/src/*.cpp \
|
||||||
|
$imgui/backends/imgui_impl_glfw.cpp \
|
||||||
|
$imgui/backends/imgui_impl_opengl3.cpp \
|
||||||
|
$imgui/*.cpp \
|
||||||
|
-DRENDERER_OPENGL \
|
||||||
|
-DWINDOW_GLFW \
|
||||||
|
-fpic -shared \
|
||||||
|
-I src -I include -I $imgui \
|
||||||
|
-lGL -lglfw -lGLEW \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
TestClay = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
|
name = "TestClay";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
|
||||||
|
clay = inputs.clay;
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [
|
||||||
|
clang
|
||||||
|
];
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
clang++ \
|
||||||
|
modules/TestClay/src/*.cpp \
|
||||||
|
-fpic -shared \
|
||||||
|
-I src -I include \
|
||||||
|
-DRENDERER_OPENGL \
|
||||||
|
-DWINDOW_GLFW \
|
||||||
|
-Wall \
|
||||||
|
-o $name
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp $name $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
251
flake.nix
251
flake.nix
@@ -13,189 +13,17 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, imgui, clay }: let
|
outputs = { self, nixpkgs, imgui, clay }@inputs: let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
in {
|
in {
|
||||||
|
|
||||||
Archimedes = {
|
Archimedes = {
|
||||||
examples = {
|
examples = import ./ExampleApps.nix { inherit inputs; inherit pkgs; };
|
||||||
MinimalApp = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "Archimedes";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
/*buildInputs = with pkgs; [
|
|
||||||
];*/
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
src/example_apps/MinimalApp/MinimalApp.cpp \
|
|
||||||
-I src -I include \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ImguiEmbed = pkgs.stdenvNoCC.mkDerivation {
|
Modules = {
|
||||||
|
examples = import ./ExampleModules.nix { inherit inputs; inherit pkgs; };
|
||||||
name = "Archimedes";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
inherit imgui;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
glfw
|
|
||||||
glew
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
src/example_apps/ImguiEmbed/*.cpp \
|
|
||||||
modules/GUImodules/TestImgui/src/*.cpp \
|
|
||||||
$imgui/backends/imgui_impl_glfw.cpp \
|
|
||||||
$imgui/backends/imgui_impl_opengl3.cpp \
|
|
||||||
$imgui/*.cpp \
|
|
||||||
-DRENDERER_OPENGL \
|
|
||||||
-DWINDOW_GLFW \
|
|
||||||
-DGUIMODULE \
|
|
||||||
-DTESTIMGUI_STATIC \
|
|
||||||
-I src -I include -I $imgui -I . \
|
|
||||||
-lGL -lglfw -lGLEW \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
TestMenu = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "TestMenu";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/TestMenu/src/*.cpp \
|
|
||||||
-fpic -shared \
|
|
||||||
-I src \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
Print = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "Print";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/Print/src/*.cpp \
|
|
||||||
-fpic -shared \
|
|
||||||
-I src -I include \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
DependsOnPrint = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "DependsOnPrint";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/DependsOnPrint/src/*.cpp \
|
|
||||||
-fpic -shared \
|
|
||||||
-I src -I include \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
DependsOnPrintStatic = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "DependsOnPrintStatic";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/DependsOnPrintStatic/src/*.cpp \
|
|
||||||
modules/Print/src/*.cpp \
|
|
||||||
-fpic -shared \
|
|
||||||
-I src -I include -I . \
|
|
||||||
-DPRINT_STATIC \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
WindowModule = pkgs.stdenvNoCC.mkDerivation {
|
WindowModule = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
@@ -231,75 +59,6 @@
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
TestImgui = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "TestImgui";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
inherit imgui;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
glfw
|
|
||||||
glew
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/GUImodules/TestImgui/src/*.cpp \
|
|
||||||
$imgui/backends/imgui_impl_glfw.cpp \
|
|
||||||
$imgui/backends/imgui_impl_opengl3.cpp \
|
|
||||||
$imgui/*.cpp \
|
|
||||||
-DRENDERER_OPENGL \
|
|
||||||
-DWINDOW_GLFW \
|
|
||||||
-fpic -shared \
|
|
||||||
-I src -I include -I $imgui \
|
|
||||||
-lGL -lglfw -lGLEW \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
TestClay = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
|
|
||||||
name = "TestClay";
|
|
||||||
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
inherit clay;
|
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
|
||||||
clang
|
|
||||||
];
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
clang++ \
|
|
||||||
modules/TestClay/src/*.cpp \
|
|
||||||
-fpic -shared \
|
|
||||||
-I src -I include \
|
|
||||||
-DRENDERER_OPENGL \
|
|
||||||
-DWINDOW_GLFW \
|
|
||||||
-Wall \
|
|
||||||
-o $name
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/bin
|
|
||||||
cp $name $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
MainGUI = pkgs.stdenvNoCC.mkDerivation {
|
MainGUI = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
|
||||||
name = "MainGUI";
|
name = "MainGUI";
|
||||||
@@ -327,6 +86,8 @@
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
packages.${system}.default = self.Archimedes;
|
packages.${system}.default = self.Archimedes;
|
||||||
|
|||||||
@@ -2,7 +2,10 @@
|
|||||||
#undef GUIMODULE
|
#undef GUIMODULE
|
||||||
|
|
||||||
#include "utils/Module/Module.h"
|
#include "utils/Module/Module.h"
|
||||||
|
|
||||||
|
#define WINDOWMODULE_STATIC
|
||||||
#include "modules/WindowModule/src/WindowModule.h"
|
#include "modules/WindowModule/src/WindowModule.h"
|
||||||
|
#include "modules/WindowModule/src/WindowModule.cpp"
|
||||||
|
|
||||||
namespace Archimedes {
|
namespace Archimedes {
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class WindowModule : public Archimedes::Module {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#ifndef WINDOW_STATIC
|
#ifndef WINDOWMODULE_STATIC
|
||||||
#define MODULE_TYPE WindowModule
|
#define MODULE_TYPE WindowModule
|
||||||
#include "endModule.h"
|
#include "endModule.h"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user