Run script test
parent
c55ef5adcf
commit
279d63d6c5
|
@ -21,6 +21,8 @@ jobs:
|
||||||
sudo apt-get update -qq
|
sudo apt-get update -qq
|
||||||
sudo apt-get install -qqq build-essential pkg-config
|
sudo apt-get install -qqq build-essential pkg-config
|
||||||
python -m pip install scons
|
python -m pip install scons
|
||||||
|
curl -LO https://downloads.tuxfamily.org/godotengine/3.2.3/Godot_v3.2.3-stable_linux_server.64.zip
|
||||||
|
unzip Godot_v3.2.3-stable_linux_server.64.zip
|
||||||
|
|
||||||
- name: Build godot-cpp
|
- name: Build godot-cpp
|
||||||
run: |
|
run: |
|
||||||
|
@ -35,7 +37,11 @@ jobs:
|
||||||
|
|
||||||
- name: Build test GDNative library
|
- name: Build test GDNative library
|
||||||
run: |
|
run: |
|
||||||
scons target=release platform=linux bits=64 -j $(nproc) -C test;
|
scons target=release platform=linux bits=64 -j $(nproc) -C test
|
||||||
|
|
||||||
|
- name: Run test GDNative library
|
||||||
|
run: |
|
||||||
|
./Godot_v3.2.3-stable_linux_server.64 --path test -s script.gd
|
||||||
|
|
||||||
windows-msvc:
|
windows-msvc:
|
||||||
name: Build (Windows, MSVC)
|
name: Build (Windows, MSVC)
|
||||||
|
@ -117,6 +123,8 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install scons
|
python -m pip install scons
|
||||||
|
curl -LO https://downloads.tuxfamily.org/godotengine/3.2.3/Godot_v3.2.3-stable_osx.64.zip
|
||||||
|
unzip Godot_v3.2.3-stable_osx.64.zip
|
||||||
|
|
||||||
- name: Build godot-cpp
|
- name: Build godot-cpp
|
||||||
run: |
|
run: |
|
||||||
|
@ -131,7 +139,11 @@ jobs:
|
||||||
|
|
||||||
- name: Build test GDNative library
|
- name: Build test GDNative library
|
||||||
run: |
|
run: |
|
||||||
scons target=release platform=osx bits=64 -j $(sysctl -n hw.logicalcpu) -C test;
|
scons target=release platform=osx bits=64 -j $(sysctl -n hw.logicalcpu) -C test
|
||||||
|
|
||||||
|
- name: Run test GDNative library
|
||||||
|
run: |
|
||||||
|
./Godot.app/Contents/MacOS/Godot --path test -s script.gd
|
||||||
|
|
||||||
static-checks:
|
static-checks:
|
||||||
name: Static Checks (clang-format)
|
name: Static Checks (clang-format)
|
||||||
|
|
|
@ -26,7 +26,7 @@ opts.Add(EnumVariable('platform', "Compilation platform", host_platform, ['', 'w
|
||||||
opts.Add(EnumVariable('p', "Compilation target, alias for 'platform'", host_platform, ['', 'windows', 'x11', 'linux', 'osx']))
|
opts.Add(EnumVariable('p', "Compilation target, alias for 'platform'", host_platform, ['', 'windows', 'x11', 'linux', 'osx']))
|
||||||
opts.Add(EnumVariable('bits', 'Target platform bits', '64', ('32', '64')))
|
opts.Add(EnumVariable('bits', 'Target platform bits', '64', ('32', '64')))
|
||||||
opts.Add(BoolVariable('use_llvm', "Use the LLVM / Clang compiler", 'no'))
|
opts.Add(BoolVariable('use_llvm', "Use the LLVM / Clang compiler", 'no'))
|
||||||
opts.Add(PathVariable('target_path', 'The path where the lib is installed.', 'demo/bin/', PathVariable.PathAccept))
|
opts.Add(PathVariable('target_path', 'The path where the lib is installed.', 'bin/', PathVariable.PathAccept))
|
||||||
opts.Add(PathVariable('target_name', 'The library name.', 'libgdexample', PathVariable.PathAccept))
|
opts.Add(PathVariable('target_name', 'The library name.', 'libgdexample', PathVariable.PathAccept))
|
||||||
|
|
||||||
# Local dependency paths, adapt them to your setup
|
# Local dependency paths, adapt them to your setup
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
*
|
|
||||||
!.gitignore
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
[general]
|
||||||
|
|
||||||
|
singleton=false
|
||||||
|
load_once=true
|
||||||
|
symbol_prefix="godot_"
|
||||||
|
reloadable=false
|
||||||
|
|
||||||
|
[entry]
|
||||||
|
|
||||||
|
X11.64="res://bin/x11/libgdexample.so"
|
||||||
|
Server.64="res://bin/x11/libgdexample.so"
|
||||||
|
Windows.64="res://bin/win64/libgdexample.dll"
|
||||||
|
OSX.64="res://bin/osx/libgdexample.dylib"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
|
||||||
|
X11.64=[]
|
||||||
|
Server.64=[]
|
||||||
|
Windows.64=[]
|
||||||
|
OSX.64=[]
|
|
@ -0,0 +1,9 @@
|
||||||
|
[gd_resource type="NativeScript" load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://gdexample.gdnlib" type="GDNativeLibrary" id=1]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
|
||||||
|
resource_name = "gdexample"
|
||||||
|
class_name = "SimpleClass"
|
||||||
|
library = ExtResource( 1 )
|
|
@ -0,0 +1,19 @@
|
||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=4
|
||||||
|
|
||||||
|
_global_script_classes=[ ]
|
||||||
|
_global_script_class_icons={
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="Test CI project"
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
extends MainLoop
|
||||||
|
|
||||||
|
func _initialize():
|
||||||
|
OS.exit_code = 1
|
||||||
|
var native_script = load("res://gdexample.gdns")
|
||||||
|
print("Native Script ", native_script)
|
||||||
|
if native_script == null || !is_instance_valid(native_script):
|
||||||
|
return
|
||||||
|
print("Library ", native_script.library)
|
||||||
|
if native_script.library == null || !is_instance_valid(native_script.library):
|
||||||
|
return
|
||||||
|
var ref = native_script.new()
|
||||||
|
print("Reference ", ref)
|
||||||
|
if ref == null || !is_instance_valid(ref):
|
||||||
|
return
|
||||||
|
print("Reference name ", ref.name)
|
||||||
|
if ref.name != "SimpleClass":
|
||||||
|
return
|
||||||
|
print("Reference value ", ref.value)
|
||||||
|
if ref.value != 0:
|
||||||
|
return
|
||||||
|
print("Call method ", ref.method(1))
|
||||||
|
if ref.method(1) != 1:
|
||||||
|
return
|
||||||
|
OS.exit_code = 0
|
||||||
|
|
||||||
|
func _idle(_delta):
|
||||||
|
return true
|
||||||
|
|
|
@ -10,7 +10,10 @@ public:
|
||||||
SimpleClass() {}
|
SimpleClass() {}
|
||||||
|
|
||||||
/** `_init` must exist as it is called by Godot. */
|
/** `_init` must exist as it is called by Godot. */
|
||||||
void _init() {}
|
void _init() {
|
||||||
|
_name = String("SimpleClass");
|
||||||
|
_value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void test_void_method() {
|
void test_void_method() {
|
||||||
Godot::print("This is test");
|
Godot::print("This is test");
|
||||||
|
@ -30,10 +33,10 @@ public:
|
||||||
* The line below is equivalent to the following GDScript export:
|
* The line below is equivalent to the following GDScript export:
|
||||||
* export var _name = "SimpleClass"
|
* export var _name = "SimpleClass"
|
||||||
**/
|
**/
|
||||||
register_property<SimpleClass, String>("base/name", &SimpleClass::_name, String("SimpleClass"));
|
register_property<SimpleClass, String>("name", &SimpleClass::_name, String("SimpleClass"));
|
||||||
|
|
||||||
/** Alternatively, with getter and setter methods: */
|
/** Alternatively, with getter and setter methods: */
|
||||||
register_property<SimpleClass, int>("base/value", &SimpleClass::set_value, &SimpleClass::get_value, 0);
|
register_property<SimpleClass, int>("value", &SimpleClass::set_value, &SimpleClass::get_value, 0);
|
||||||
|
|
||||||
/** Registering a signal: **/
|
/** Registering a signal: **/
|
||||||
register_signal<SimpleClass>("signal_name0"); // windows: error C2668: 'godot::register_signal': ambiguous call to overloaded function
|
register_signal<SimpleClass>("signal_name0"); // windows: error C2668: 'godot::register_signal': ambiguous call to overloaded function
|
||||||
|
|
Loading…
Reference in New Issue