Skip to content

Commit

Permalink
Allow unicode class names
Browse files Browse the repository at this point in the history
  • Loading branch information
dsnopek committed Sep 18, 2024
1 parent d477589 commit 536ea85
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 7 deletions.
15 changes: 9 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ env:
GODOT_BASE_BRANCH: master
# Used to select the version of Godot to run the tests with.
GODOT_TEST_VERSION: master
# Use UTF-8 on Linux.
LANG: en_US.UTF-8
LC_ALL: en_US.UTF-8

concurrency:
group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}
Expand All @@ -20,15 +23,15 @@ jobs:
matrix:
include:
- name: 🐧 Linux (GCC)
os: ubuntu-20.04
os: ubuntu-22.04
platform: linux
artifact-name: godot-cpp-linux-glibc2.27-x86_64-release
artifact-path: bin/libgodot-cpp.linux.template_release.x86_64.a
run-tests: true
cache-name: linux-x86_64

- name: 🐧 Linux (GCC, Double Precision)
os: ubuntu-20.04
os: ubuntu-22.04
platform: linux
artifact-name: godot-cpp-linux-glibc2.27-x86_64-double-release
artifact-path: bin/libgodot-cpp.linux.template_release.double.x86_64.a
Expand Down Expand Up @@ -63,7 +66,7 @@ jobs:
cache-name: macos-universal

- name: 🤖 Android (arm64)
os: ubuntu-20.04
os: ubuntu-22.04
platform: android
artifact-name: godot-cpp-android-arm64-release
artifact-path: bin/libgodot-cpp.android.template_release.arm64.a
Expand All @@ -81,7 +84,7 @@ jobs:
cache-name: ios-arm64

- name: 🌐 Web (wasm32)
os: ubuntu-20.04
os: ubuntu-22.04
platform: web
artifact-name: godot-cpp-web-wasm32-release
artifact-path: bin/libgodot-cpp.web.template_release.wasm32.a
Expand Down Expand Up @@ -206,7 +209,7 @@ jobs:

linux-cmake:
name: 🐧 Build (Linux, GCC, CMake)
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -230,7 +233,7 @@ jobs:
linux-cmake-ninja:
name: 🐧 Build (Linux, GCC, CMake Ninja)
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion include/godot_cpp/classes/wrapped.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ public:
} \
\
static const ::godot::StringName &get_class_static() { \
static const ::godot::StringName string_name = ::godot::StringName(#m_class); \
static const ::godot::StringName string_name = ::godot::StringName(U## #m_class); \
return string_name; \
} \
\
Expand Down
1 change: 1 addition & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# using Visual Studio C++
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} /WX") # /GF /MP
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} /DTYPED_METHOD_BIND")
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} /utf-8")

if(CMAKE_BUILD_TYPE MATCHES Debug)
set(GODOT_COMPILE_FLAGS "${GODOT_COMPILE_FLAGS} /MDd") # /Od /RTC1 /Zi
Expand Down
4 changes: 4 additions & 0 deletions test/project/main.gd
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,10 @@ func _ready():
assert_equal(library_path, ProjectSettings.globalize_path(library_path))
assert_equal(FileAccess.file_exists(library_path), true)

# Test a class with a unicode name.
var przykład = ExamplePrzykład.new()
assert_equal(przykład.get_the_word(), "słowo to przykład")

exit_with_status()

func _on_Example_custom_signal(signal_name, value):
Expand Down
8 changes: 8 additions & 0 deletions test/src/example.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -736,3 +736,11 @@ ExampleRuntime::ExampleRuntime() {

ExampleRuntime::~ExampleRuntime() {
}

void ExamplePrzykład::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_the_word"), &ExamplePrzykład::get_the_word);
}

String ExamplePrzykład::get_the_word() const {
return U"słowo to przykład";
}
10 changes: 10 additions & 0 deletions test/src/example.h
Original file line number Diff line number Diff line change
Expand Up @@ -273,4 +273,14 @@ class ExampleRuntime : public Node {
~ExampleRuntime();
};

class ExamplePrzykład : public RefCounted {
GDCLASS(ExamplePrzykład, RefCounted);

protected:
static void _bind_methods();

public:
String get_the_word() const;
};

#endif // EXAMPLE_CLASS_H
1 change: 1 addition & 0 deletions test/src/register_types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ void initialize_example_module(ModuleInitializationLevel p_level) {
GDREGISTER_CLASS(ExampleBase);
GDREGISTER_CLASS(ExampleChild);
GDREGISTER_RUNTIME_CLASS(ExampleRuntime);
GDREGISTER_CLASS(ExamplePrzykład);
}

void uninitialize_example_module(ModuleInitializationLevel p_level) {
Expand Down

0 comments on commit 536ea85

Please sign in to comment.