From 650e381659f631da4a7811a4d53dbdb763a0c35c Mon Sep 17 00:00:00 2001 From: Serhii Snitsaruk Date: Wed, 7 Aug 2024 15:15:59 +0200 Subject: [PATCH] update setup_gdextension.sh to work with new GDExtension project structure --- gdextension/setup_gdextension.sh | 79 +++++++++----------------------- 1 file changed, 22 insertions(+), 57 deletions(-) diff --git a/gdextension/setup_gdextension.sh b/gdextension/setup_gdextension.sh index 4329e29..86550e0 100755 --- a/gdextension/setup_gdextension.sh +++ b/gdextension/setup_gdextension.sh @@ -1,27 +1,24 @@ #!/bin/bash -## This script creates project structure needed for LimboAI development using GDExtension. -## Works only on Unix-likes. You can still use the directory layout below, if you are on Windows. +## This script sets up limboai project for development with GDExtension. +## It adds missing files to the demo project for development with GDExtension, and downloads godot-cpp. +## Tested only on Unix-likes. You can perform similar steps manually, if you are on Windows. Check Overview below. ## ## Instructions: -## 1) Create the project root directory, name doesn't matter. -## 2) Inside the project root directory, clone the limboai repository: +## 1) Clone the limboai repository: ## git clone https://github.com/limbonaut/limboai -## 3) From the project root directory, run: -## bash ./limboai/gdextension/setup_gdextension.sh +## 2) From the limboai root directory, run: +## bash ./gdextension/setup_gdextension.sh ## -## Directory layout: -## project/ -- call this script from here, directory name doesn't matter. -## project/limboai/ -- LimboAI repository should be here after you clone it. -## project/godot-cpp/ -- will be created by this script, unless cloned manually. -## project/demo/ -- symbolic link (leads to limboai/demo). -## project/demo/addons/limboai/limboai.gdextension -- symbolid link (leads to limboai/gdextension/limboai.gdextension). -## project/demo/addons/limboai/icons/ -- symbolic link (leads to icons/). -## project/SConstruct -- symbolic link (leads to limboai/gdextension/SContruct). +## Overview: +## limboai/ -- LimboAI repository after you clone it - call this script from here. +## limboai/godot-cpp/ -- git repo that will be cloned by this script, unless already exists. +## limboai/demo/addons/limboai/limboai.gdextension -- symbolic link created (leads to limboai/gdextension/limboai.gdextension). +## limboai/demo/addons/limboai/icons/ -- symbolic link created (leads to limboai/icons/). ## -## Note: Symbolic links will be created by this script. +## Note: Script creates symbolic links unless --copy-all is set, in which case it copies the files. ## -## Dependencies: bash, git, python3. +## Dependencies: bash, git, python3, trash (optional). # Script Settings GODOT_CPP_VERSION=4.2 @@ -32,16 +29,16 @@ HIGHLIGHT_COLOR='\033[1;36m' # Light Cyan NC='\033[0m' # No Color ERROR_COLOR="\033[0;31m" # Red -usage() { echo "Usage: $0 [--copy-demo] [--copy-all] [--trash-old]"; } +usage() { echo "Usage: $0 [--copy-all] [--trash-old]"; } msg () { echo -e "$@"; } highlight() { echo -e "${HIGHLIGHT_COLOR}$@${NC}"; } error () { echo -e "${ERROR_COLOR}$@${NC}" >&2; } -if [ ! -d "${PWD}/limboai/" ]; then - error Aborting: \"limboai\" subdirectory is not found. - msg Tip: Run this script from the project root directory with limboai repository cloned into \"limboai\" subdirectory. - msg Command: bash ./limboai/gdextension/setup_gdextension.sh +if [ ! -d "${PWD}/demo/" ]; then + error Aborting: \"demo\" subdirectory is not found. + msg Tip: Run this script from the limboai root directory. + msg Command: bash ./gdextension/setup_gdextension.sh exit 1 fi @@ -50,7 +47,6 @@ trap exit SIGINT set -e -copy_demo=0 copy_all=0 trash_old=0 @@ -58,10 +54,6 @@ trash_old=0 for i in "$@" do case "${i}" in - --copy-demo) - copy_demo=1 - shift - ;; --copy-all) copy_demo=1 copy_all=1 @@ -80,7 +72,7 @@ done highlight Setup started. -${PYTHON} limboai/gdextension/update_icons.py --silent +${PYTHON} gdextension/update_icons.py --silent highlight -- Icon declarations updated. transfer="ln -s" @@ -95,7 +87,7 @@ if [ ${trash_old} == 1 ]; then error trash command not available. Aborting. exit 1 fi - trash SConstruct limboai/demo/addons demo || /bin/true + trash demo/addons/limboai || /bin/true highlight -- Trashed old setup. fi @@ -107,33 +99,10 @@ else highlight -- Skipping \"godot-cpp\". Directory already exists! fi -if [ ! -f "${PWD}/SConstruct" ]; then - ${transfer} limboai/gdextension/SConstruct SConstruct - highlight -- ${transfer_word} SConstruct. -else - highlight -- Skipping \"SConstruct\". File already exists! -fi - -if [ ! -e "${PWD}/demo" ]; then - if [ ${copy_demo} == 1 ]; then - cp -R limboai/demo demo - highlight -- Copied demo. - else - ln -s limboai/demo demo - highlight -- Linked demo project. - fi -else - highlight -- Skipping \"demo\". File already exists! -fi - if [ ! -e "${PWD}/demo/addons/limboai/bin/limboai.gdextension" ]; then mkdir -p ./demo/addons/limboai/bin/ cd ./demo/addons/limboai/bin/ - if [ -f "../../../../gdextension/limboai.gdextension" ]; then - ${transfer} ../../../../gdextension/limboai.gdextension limboai.gdextension - else - ${transfer} ../../../../limboai/gdextension/limboai.gdextension limboai.gdextension - fi + ${transfer} ../../../../gdextension/limboai.gdextension limboai.gdextension cd - highlight -- ${transfer_word} limboai.gdextension. else @@ -142,11 +111,7 @@ fi if [ ! -e "${PWD}/demo/addons/limboai/icons/" ]; then cd ./demo/addons/limboai/ - if [ -d "../../../icons" ]; then - ${transfer} ../../../icons icons - else - ${transfer} ../../../limboai/icons icons - fi + ${transfer} ../../../icons icons cd - highlight -- ${transfer_word} icons. else