diff --git a/.gitmodules b/.gitmodules index 87938ad..dce4514 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,8 @@ [submodule "addons/godot_xterm/godot-cpp"] - path = addons/godot_xterm/godot-cpp - url = https://github.com/lihop/godot-cpp + path = addons/godot_xterm/native/modules/godot-cpp + url = https://github.com/godotengine/godot-cpp [submodule "addons/godot_xterm/libtsm"] - path = addons/godot_xterm/libtsm + path = addons/godot_xterm/native/modules/libtsm url = https://github.com/Aetf/libtsm +[submodule "godot-cpp/"] + url = https://github.com/godotengine/godot-cpp diff --git a/.travis.yml b/.travis.yml index 722f934..6062dd6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,11 +5,11 @@ services: jobs: include: - - name: "Build on Arch Linux" + - name: "Build native libs on Arch Linux" env: SERVICE=build-archlinux - - name: "Build on NixOS" + - name: "Build native libs on NixOS" env: SERVICE=build-nixos - - name: "Build on Ubuntu" + - name: "Build native libs on Ubuntu" env: SERVICE=build-ubuntu script: docker-compose run $SERVICE diff --git a/README.md b/README.md index 77fd191..3b73c53 100644 --- a/README.md +++ b/README.md @@ -26,4 +26,4 @@ You are also implicitly verifying that all code is your original work, or unorig Copyright (c) 2020 Leroy Hopson (MIT License) The fonts used in this project are published under a seperate license. -See: [addons/godot_xterm/fonts/LICENSE.txt](addons/godot_xterm/fonts/LICENSE.txt). +See the various license files in the [subdirectories](addons/godot_xterm/themes/fonts/) for each font. diff --git a/addons/godot_xterm/LICENSE b/addons/godot_xterm/LICENSE deleted file mode 120000 index 7a694c9..0000000 --- a/addons/godot_xterm/LICENSE +++ /dev/null @@ -1 +0,0 @@ -LICENSE \ No newline at end of file diff --git a/addons/godot_xterm/LICENSE b/addons/godot_xterm/LICENSE new file mode 100644 index 0000000..7d0079b --- /dev/null +++ b/addons/godot_xterm/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 The GodotXterm authors (https://github.com/lihop/godot-xterm/contributors) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/addons/godot_xterm/godotxtermnative.gdnlib b/addons/godot_xterm/godotxtermnative.gdnlib deleted file mode 100644 index 2b32ce5..0000000 --- a/addons/godot_xterm/godotxtermnative.gdnlib +++ /dev/null @@ -1,16 +0,0 @@ -[general] - -singleton=false -load_once=true -symbol_prefix="godot_" -reloadable=true - -[entry] - -X11.64="res://addons/godot_xterm/bin/x11/libgodotxtermnative.so" -Server.64="res://addons/godot_xterm/bin/x11/libgodotxtermnative.so" - -[dependencies] - -X11.64=[ ] -Server.64=[ ] diff --git a/addons/godot_xterm/import_plugins/cast_import_plugin.gd b/addons/godot_xterm/import_plugins/cast_import_plugin.gd new file mode 100644 index 0000000..1eccaec --- /dev/null +++ b/addons/godot_xterm/import_plugins/cast_import_plugin.gd @@ -0,0 +1,16 @@ +extends Node + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/addons/godot_xterm/SConstruct b/addons/godot_xterm/native/SConstruct similarity index 96% rename from addons/godot_xterm/SConstruct rename to addons/godot_xterm/native/SConstruct index f25e2da..49e8462 100644 --- a/addons/godot_xterm/SConstruct +++ b/addons/godot_xterm/native/SConstruct @@ -18,10 +18,10 @@ opts.Add(PathVariable('target_path', 'The path where the lib is installed.', 'bi opts.Add(PathVariable('target_name', 'The library name.', 'libgodotxtermnative', PathVariable.PathAccept)) # Local dependency paths, adapt them to your setup -godot_headers_path = "godot-cpp/godot_headers/" -cpp_bindings_path = "godot-cpp/" +godot_headers_path = "modules/godot-cpp/godot_headers/" +cpp_bindings_path = "modules/godot-cpp/" cpp_library = "libgodot-cpp" -libtsm_path = "libtsm/" +libtsm_path = "modules/libtsm/" # only support 64 at this time.. bits = 64 diff --git a/addons/godot_xterm/bin/.gitignore b/addons/godot_xterm/native/bin/.gitignore similarity index 100% rename from addons/godot_xterm/bin/.gitignore rename to addons/godot_xterm/native/bin/.gitignore diff --git a/addons/godot_xterm/build.sh b/addons/godot_xterm/native/build.sh similarity index 72% rename from addons/godot_xterm/build.sh rename to addons/godot_xterm/native/build.sh index d51ba09..2a63e96 100755 --- a/addons/godot_xterm/build.sh +++ b/addons/godot_xterm/native/build.sh @@ -1,26 +1,27 @@ #! /usr/bin/env nix-shell #! nix-shell -i bash --pure -p binutils.bintools cmake scons +set -e # Make sure we are in the addons/godot_xterm directory cd ${BASH_SOURCE%/*} # Initialize godot-cpp -if [ ! -d "godot-cpp/bin" ] +if [ ! -d "modules/godot-cpp/bin" ] then - cd godot-cpp + cd modules/godot-cpp scons platform=linux generate_bindings=yes -j12 - cd .. + cd ../.. fi # Build libtsm -if [ ! -f "libtsm/build/src/tsm/libtsm.a" ] +if [ ! -f "modules/libtsm/build/src/tsm/libtsm.a" ] then - cd libtsm + cd modules/libtsm mkdir -p build cd build cmake -DBUILD_SHARED_LIBS=n .. make - cd ../.. + cd ../../.. fi # Build godotxtermnative diff --git a/addons/godot_xterm/native/godotxtermnative.gdnlib b/addons/godot_xterm/native/godotxtermnative.gdnlib new file mode 100644 index 0000000..73b7bd4 --- /dev/null +++ b/addons/godot_xterm/native/godotxtermnative.gdnlib @@ -0,0 +1,16 @@ +[general] + +singleton=false +load_once=true +symbol_prefix="godot_" +reloadable=true + +[entry] + +X11.64="res://addons/godot_xterm/native/bin/x11/libgodotxtermnative.so" +Server.64="res://addons/godot_xterm/native/bin/x11/libgodotxtermnative.so" + +[dependencies] + +X11.64=[ ] +Server.64=[ ] diff --git a/addons/godot_xterm/Dockerfile b/addons/godot_xterm/native/modules/.gdignore similarity index 100% rename from addons/godot_xterm/Dockerfile rename to addons/godot_xterm/native/modules/.gdignore diff --git a/addons/godot_xterm/godot-cpp b/addons/godot_xterm/native/modules/godot-cpp similarity index 100% rename from addons/godot_xterm/godot-cpp rename to addons/godot_xterm/native/modules/godot-cpp diff --git a/addons/godot_xterm/libtsm b/addons/godot_xterm/native/modules/libtsm similarity index 100% rename from addons/godot_xterm/libtsm rename to addons/godot_xterm/native/modules/libtsm diff --git a/addons/godot_xterm/src/libgodotxtermnative.cpp b/addons/godot_xterm/native/src/libgodotxtermnative.cpp similarity index 100% rename from addons/godot_xterm/src/libgodotxtermnative.cpp rename to addons/godot_xterm/native/src/libgodotxtermnative.cpp diff --git a/addons/godot_xterm/src/pseudoterminal.cpp b/addons/godot_xterm/native/src/pseudoterminal.cpp similarity index 100% rename from addons/godot_xterm/src/pseudoterminal.cpp rename to addons/godot_xterm/native/src/pseudoterminal.cpp diff --git a/addons/godot_xterm/src/pseudoterminal.h b/addons/godot_xterm/native/src/pseudoterminal.h similarity index 100% rename from addons/godot_xterm/src/pseudoterminal.h rename to addons/godot_xterm/native/src/pseudoterminal.h diff --git a/addons/godot_xterm/src/terminal.cpp b/addons/godot_xterm/native/src/terminal.cpp similarity index 100% rename from addons/godot_xterm/src/terminal.cpp rename to addons/godot_xterm/native/src/terminal.cpp diff --git a/addons/godot_xterm/src/terminal.h b/addons/godot_xterm/native/src/terminal.h similarity index 100% rename from addons/godot_xterm/src/terminal.h rename to addons/godot_xterm/native/src/terminal.h diff --git a/addons/godot_xterm/pseudoterminal.gdns b/addons/godot_xterm/nodes/pseudoterminal/pseudoterminal.gdns similarity index 59% rename from addons/godot_xterm/pseudoterminal.gdns rename to addons/godot_xterm/nodes/pseudoterminal/pseudoterminal.gdns index 19c7ba2..a56d402 100644 --- a/addons/godot_xterm/pseudoterminal.gdns +++ b/addons/godot_xterm/nodes/pseudoterminal/pseudoterminal.gdns @@ -1,6 +1,6 @@ [gd_resource type="NativeScript" load_steps=2 format=2] -[ext_resource path="res://addons/godot_xterm/godotxtermnative.gdnlib" type="GDNativeLibrary" id=1] +[ext_resource path="res://addons/godot_xterm/native/godotxtermnative.gdnlib" type="GDNativeLibrary" id=1] [resource] resource_name = "Terminal" diff --git a/addons/godot_xterm/pseudoterminal_icon.svg b/addons/godot_xterm/nodes/pseudoterminal/pseudoterminal_icon.svg similarity index 100% rename from addons/godot_xterm/pseudoterminal_icon.svg rename to addons/godot_xterm/nodes/pseudoterminal/pseudoterminal_icon.svg diff --git a/addons/godot_xterm/pseudoterminal_icon.svg.import b/addons/godot_xterm/nodes/pseudoterminal/pseudoterminal_icon.svg.import similarity index 64% rename from addons/godot_xterm/pseudoterminal_icon.svg.import rename to addons/godot_xterm/nodes/pseudoterminal/pseudoterminal_icon.svg.import index d351d90..7634b78 100644 --- a/addons/godot_xterm/pseudoterminal_icon.svg.import +++ b/addons/godot_xterm/nodes/pseudoterminal/pseudoterminal_icon.svg.import @@ -2,15 +2,15 @@ importer="texture" type="StreamTexture" -path="res://.import/pseudoterminal_icon.svg-50ba2514dae785a6b48b0da604cf3a09.stex" +path="res://.import/pseudoterminal_icon.svg-0b26aed87c28626d61aa92bd9e34d5a9.stex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/godot_xterm/pseudoterminal_icon.svg" -dest_files=[ "res://.import/pseudoterminal_icon.svg-50ba2514dae785a6b48b0da604cf3a09.stex" ] +source_file="res://addons/godot_xterm/nodes/pseudoterminal/pseudoterminal_icon.svg" +dest_files=[ "res://.import/pseudoterminal_icon.svg-0b26aed87c28626d61aa92bd9e34d5a9.stex" ] [params] diff --git a/addons/godot_xterm/terminal.gdns b/addons/godot_xterm/nodes/terminal/terminal.gdns similarity index 58% rename from addons/godot_xterm/terminal.gdns rename to addons/godot_xterm/nodes/terminal/terminal.gdns index 334e2d6..9bc5488 100644 --- a/addons/godot_xterm/terminal.gdns +++ b/addons/godot_xterm/nodes/terminal/terminal.gdns @@ -1,6 +1,6 @@ [gd_resource type="NativeScript" load_steps=2 format=2] -[ext_resource path="res://addons/godot_xterm/godotxtermnative.gdnlib" type="GDNativeLibrary" id=1] +[ext_resource path="res://addons/godot_xterm/native/godotxtermnative.gdnlib" type="GDNativeLibrary" id=1] [resource] resource_name = "Terminal" diff --git a/addons/godot_xterm/terminal_icon.svg b/addons/godot_xterm/nodes/terminal/terminal_icon.svg similarity index 100% rename from addons/godot_xterm/terminal_icon.svg rename to addons/godot_xterm/nodes/terminal/terminal_icon.svg diff --git a/addons/godot_xterm/terminal_icon.svg.import b/addons/godot_xterm/nodes/terminal/terminal_icon.svg.import similarity index 66% rename from addons/godot_xterm/terminal_icon.svg.import rename to addons/godot_xterm/nodes/terminal/terminal_icon.svg.import index d8ea732..0e96ff9 100644 --- a/addons/godot_xterm/terminal_icon.svg.import +++ b/addons/godot_xterm/nodes/terminal/terminal_icon.svg.import @@ -2,15 +2,15 @@ importer="texture" type="StreamTexture" -path="res://.import/terminal_icon.svg-33ee6ad8b86db2f37e5d8d61a6b1b8db.stex" +path="res://.import/terminal_icon.svg-a0706fd47bb880823b1242c224120d4f.stex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/godot_xterm/terminal_icon.svg" -dest_files=[ "res://.import/terminal_icon.svg-33ee6ad8b86db2f37e5d8d61a6b1b8db.stex" ] +source_file="res://addons/godot_xterm/nodes/terminal/terminal_icon.svg" +dest_files=[ "res://.import/terminal_icon.svg-a0706fd47bb880823b1242c224120d4f.stex" ] [params] diff --git a/addons/godot_xterm/plugin.gd b/addons/godot_xterm/plugin.gd index 48f5e24..57a118b 100644 --- a/addons/godot_xterm/plugin.gd +++ b/addons/godot_xterm/plugin.gd @@ -3,12 +3,12 @@ extends EditorPlugin func _enter_tree(): - var terminal_script = preload("res://addons/godot_xterm/terminal.gdns") - var terminal_icon = preload("res://addons/godot_xterm/terminal_icon.svg") + var terminal_script = preload("res://addons/godot_xterm/nodes/terminal/terminal.gdns") + var terminal_icon = preload("res://addons/godot_xterm/nodes/terminal/terminal_icon.svg") add_custom_type("Terminal", "Control", terminal_script, terminal_icon) - var pseudoterminal_script = preload("res://addons/godot_xterm/pseudoterminal.gdns") - var pseudoterminal_icon = preload("res://addons/godot_xterm/pseudoterminal_icon.svg") + var pseudoterminal_script = preload("res://addons/godot_xterm/nodes/pseudoterminal/pseudoterminal.gdns") + var pseudoterminal_icon = preload("res://addons/godot_xterm/nodes/pseudoterminal/pseudoterminal_icon.svg") add_custom_type("Pseudoterminal", "Node", pseudoterminal_script, pseudoterminal_icon) diff --git a/addons/godot_xterm/themes/default.theme b/addons/godot_xterm/themes/default.theme index 6f200ea..14178da 100644 Binary files a/addons/godot_xterm/themes/default.theme and b/addons/godot_xterm/themes/default.theme differ diff --git a/addons/godot_xterm/fonts/Cousine-Bold.ttf b/addons/godot_xterm/themes/fonts/cousine/Cousine-Bold.ttf similarity index 100% rename from addons/godot_xterm/fonts/Cousine-Bold.ttf rename to addons/godot_xterm/themes/fonts/cousine/Cousine-Bold.ttf diff --git a/addons/godot_xterm/fonts/Cousine-BoldItalic.ttf b/addons/godot_xterm/themes/fonts/cousine/Cousine-BoldItalic.ttf similarity index 100% rename from addons/godot_xterm/fonts/Cousine-BoldItalic.ttf rename to addons/godot_xterm/themes/fonts/cousine/Cousine-BoldItalic.ttf diff --git a/addons/godot_xterm/fonts/Cousine-Italic.ttf b/addons/godot_xterm/themes/fonts/cousine/Cousine-Italic.ttf similarity index 100% rename from addons/godot_xterm/fonts/Cousine-Italic.ttf rename to addons/godot_xterm/themes/fonts/cousine/Cousine-Italic.ttf diff --git a/addons/godot_xterm/fonts/Cousine-Regular.ttf b/addons/godot_xterm/themes/fonts/cousine/Cousine-Regular.ttf similarity index 100% rename from addons/godot_xterm/fonts/Cousine-Regular.ttf rename to addons/godot_xterm/themes/fonts/cousine/Cousine-Regular.ttf diff --git a/addons/godot_xterm/fonts/LICENSE.txt b/addons/godot_xterm/themes/fonts/cousine/LICENSE.txt similarity index 100% rename from addons/godot_xterm/fonts/LICENSE.txt rename to addons/godot_xterm/themes/fonts/cousine/LICENSE.txt diff --git a/docker-compose.yml b/docker-compose.yml index e2312e6..c060d05 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,14 +4,14 @@ services: build: context: . dockerfile: ./dockerfiles/archlinux - command: bash /src/addons/godot_xterm/build.sh + command: bash /src/addons/godot_xterm/native/build.sh build-nixos: build: context: . dockerfile: ./dockerfiles/nixos - command: /src/addons/godot_xterm/build.sh + command: /src/addons/godot_xterm/native/build.sh build-ubuntu: build: context: . dockerfile: ./dockerfiles/ubuntu - command: bash /src/addons/godot_xterm/build.sh + command: bash /src/addons/godot_xterm/native/build.sh diff --git a/examples/terminal/Terminal.tscn b/examples/terminal/Terminal.tscn index 42e0583..46fbd06 100644 --- a/examples/terminal/Terminal.tscn +++ b/examples/terminal/Terminal.tscn @@ -1,8 +1,8 @@ [gd_scene load_steps=5 format=2] -[ext_resource path="res://addons/godot_xterm/terminal.gdns" type="Script" id=1] +[ext_resource path="res://addons/godot_xterm/nodes/terminal/terminal.gdns" type="Script" id=1] [ext_resource path="res://addons/godot_xterm/themes/default.theme" type="Theme" id=2] -[ext_resource path="res://addons/godot_xterm/pseudoterminal.gdns" type="Script" id=3] +[ext_resource path="res://addons/godot_xterm/nodes/pseudoterminal/pseudoterminal.gdns" type="Script" id=3] [ext_resource path="res://examples/terminal/container.gd" type="Script" id=4] [node name="Container" type="Container"]