From 05685218794b5c6a2a7fc72f1fb26834ba510458 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Fri, 16 Aug 2024 18:27:22 +0300 Subject: [PATCH] Add project-creation script --- package/bin/psemek-create-project | 93 +++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 package/bin/psemek-create-project diff --git a/package/bin/psemek-create-project b/package/bin/psemek-create-project new file mode 100755 index 00000000..adc84ff5 --- /dev/null +++ b/package/bin/psemek-create-project @@ -0,0 +1,93 @@ +#!/usr/bin/env bash + +set -e + +if [ "$#" -ne 1 ]; then + echo "Usage: psemek-create-project " + exit 0 +fi + +#git init . +#git submodule add git@bitbucket.org:lisyarus/psemek.git +#git submodule update --init --recursive + +mkdir -p source include/${1} + +cat > .gitignore << EOF +.gitignore +build +package +CMakeLists.txt.user +EOF + +cat > CMakeLists.txt << EOF +cmake_minimum_required(VERSION 3.16) +project(${1}) + +set(CMAKE_CXX_STANDARD 20) +set(PSEMEK_EXAMPLES OFF) + +set(PSEMEK_PACKAGE_OUTPUT_PATH package) +set(PSEMEK_GRAPHICS_API OPENGL) + +add_subdirectory(psemek) + +file(GLOB_RECURSE ${1^^}_SOURCES LIST_DIRECTORIES FALSE "\${CMAKE_CURRENT_SOURCE_DIR}/source/*") +file(GLOB_RECURSE ${1^^}_HEADERS LIST_DIRECTORIES FALSE "\${CMAKE_CURRENT_SOURCE_DIR}/include/*") + +psemek_add_application(${1} \${${1^^}_SOURCES} \${${1^^}_HEADERS}) +EOF + +cat > source/application.cpp << EOF +#include + +namespace ${1} +{ + + using namespace psemek; + + struct application + : app::application + { + application(options const &, context const &) + { + + } + + bool running() const override + { + return running_; + } + + void stop() override + { + running_ = false; + } + + void update() override + {} + + void present() override + {} + + private: + bool running_ = true; + }; + +} + +namespace psemek::app +{ + + std::unique_ptr make_application_factory() + { + application::options options + { + .name = "${1^}", + }; + + return default_application_factory<${1}::application>(options); + } + +} +EOF