From c18746942dd004c28d0653301f74a3da60ecf254 Mon Sep 17 00:00:00 2001 From: Johannes Hendrik Gerard van der Weide Date: Tue, 10 Oct 2023 21:10:52 +0200 Subject: [PATCH] cmake usable? --- flake.nix | 14 +++++++------- main.cpp | 5 ----- src/CMakeLists.txt | 19 +++++++++++++++++++ src/main.cpp | 22 ++++++++++++++++++++++ 4 files changed, 48 insertions(+), 12 deletions(-) delete mode 100644 main.cpp create mode 100644 src/CMakeLists.txt create mode 100644 src/main.cpp diff --git a/flake.nix b/flake.nix index 0cb00f9..2a85ddf 100644 --- a/flake.nix +++ b/flake.nix @@ -26,9 +26,9 @@ default = pkgs.mkShell { # The Nix packages provided in the environment packages = with pkgs; [ - boost + sfml + cmake gcc - poco ]; }; }); @@ -36,18 +36,18 @@ packages = forAllSystems ({ pkgs }: { default = let - binName = "SFML_Game"; + binName = "SFMLtest"; cppDependencies = with pkgs; [ - boost + sfml + cmake gcc - poco ]; in pkgs.stdenv.mkDerivation { - name = "SFML_Game"; + name = "SFMLtest"; src = self; buildInputs = cppDependencies; - buildPhase = "c++ -std=c++17 -o ${binName} ${./main.cpp} -lPocoFoundation -lboost_system"; + buildPhase = "c++ -std=c++17 -o ${binName} ${./src/main.cpp} -lPocoFoundation -lboost_system"; installPhase = '' mkdir -p $out/bin cp ${binName} $out/bin/ diff --git a/main.cpp b/main.cpp deleted file mode 100644 index e5e23e6..0000000 --- a/main.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include - -int main() { - std::cout << "Hello from Nix + C++!\n"; -} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..92df126 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.17) + +project(SFMLtest) + +set(CMAKE_CXX_STANDARD 20) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/") + +find_package(SFML 2.5.1 COMPONENTS system graphics audio REQUIRED) + +file(GLOB_RECURSE + SOURCE + "${CMAKE_SOURCE_DIR}/src/**.cpp") + +add_executable(SFMLtest ${SOURCE}) + +target_link_libraries(SFMLtest sfml-system sfml-window sfml-graphics sfml-audio) + + diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..8bf611b --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,22 @@ +#include + +int main() +{ + sf::RenderWindow window(sf::VideoMode(640, 480), "SFML Application"); + sf::CircleShape shape; + shape.setRadius(40.f); + shape.setPosition(100.f, 100.f); + shape.setFillColor(sf::Color::Cyan); + while (window.isOpen()) + { + sf::Event event; + while (window.pollEvent(event)) + { + if (event.type == sf::Event::Closed) + window.close(); + } + window.clear(); + window.draw(shape); + window.display(); + } +} \ No newline at end of file