Commit Graph

1494 Commits (fa3dfa0e3ca2a797c793c2744e10e3e11111d05f)

Author SHA1 Message Date
David Snopek fa3dfa0e3c
Merge pull request #1591 from dsnopek/variant-object-instance-id
Directly get object instance ID from `Variant` and implement `Variant::get_validated_object()`
2024-10-29 13:10:12 -05:00
David Snopek 7fca545885
Merge pull request #1574 from dsnopek/unicode-class-names
Allow unicode class names
2024-10-29 13:09:45 -05:00
David Snopek dfdc047459
Merge pull request #1630 from dsnopek/sync-quaternion
Sync `Quaternion` with the version in Godot
2024-10-29 08:36:28 -05:00
David Snopek 2004af63a0 Sync `Quaternion` with the version in Godot 2024-10-28 15:37:45 -05:00
David Snopek 0602c32986 Directly get object instance ID from `Variant` and implement `Variant::get_validated_object()` 2024-10-17 09:58:52 -05:00
David Snopek a98d41f62b
Merge pull request #1590 from dsnopek/reload-instance-bindings
Correctly set instance bindings on reload
2024-10-17 16:05:02 +02:00
David Snopek 96675a814b
Merge pull request #1625 from Flarkk/looking_at
Add `p_use_model_front` to `Basis::looking_at()`
2024-10-17 16:02:02 +02:00
David Snopek 291147e21b
Merge pull request #1611 from Repiteo/library-no-cache
SCons: Don't cache libraries
2024-10-15 14:42:20 +02:00
Florent Guiocheau 02fd535454 Add p_use_model_front to Basis::looking_at() 2024-10-14 21:50:12 +02:00
David Snopek 6facde3c29
Merge pull request #1602 from Faless/build/use_clang_cl_is_use_llvm
[SCons] Remove use_clang_cl windows flag in favor of generic use_llvm
2024-10-03 08:35:35 -05:00
David Snopek 709bad01d1
Merge pull request #1595 from enetheru/restructure
Re-Structure cmake solution to be closer to the scons solution.
2024-10-03 08:34:54 -05:00
Thaddeus Crews 83c0f15ab9
SCons: Don't cache librarys 2024-09-30 11:26:06 -05:00
David Snopek 96565e1de5
Merge pull request #1600 from enetheru/vsproj-ci-config
VSProj Configure type on build command - to resolve #1582
2024-09-26 06:03:56 -07:00
David Snopek 78f5d99fd9
Merge pull request #1599 from enetheru/gitignore
Update .gitignore to add .idea for the Jetbrains CLion IDE
2024-09-24 05:37:41 -05:00
Samuel Nicholas 9f5daa2d90 update .gitignore to add .idea for the Jetbrains CLion IDE
and also the default cmake build directory when building in clion cmake-build-*
2024-09-24 16:28:58 +09:30
Samuel Nicholas 2402a044eb Re-Structure cmake solution to be closer to the scons solution.
This is just a single step, re-arranging the code without actually changing its functionality.

new docs/cmake.md
moved the block of comments from the start of the CMakeLists.txt into the cmake.md file and converted content to markdown.

new cmake/godotcpp.cmake
Moved all exposed options into a new function godotcpp_options()
Moved configuration and generation code into godotcpp_generate()

To get all the options into the godotcpp_options() I changed the logic of GODOT_USE_HOT_RELOAD which I believe is a closer match to scons, that if the options is not set, and the build type is not release, then it defaults to ON.

I msvc builds require the default flags to be modified or it will throw errors. I have added the links to articles in the commit, but its about removing the runtime error checks /RTC1 from the CMAKE_CXX_FLAGS_DEBUG variable. This needs to happen before the files are included.
https://stackoverflow.com/questions/74426638/how-to-remove-rtc1-from-specific-target-or-file-in-cmake
https://discourse.cmake.org/t/how-do-i-remove-compile-options-from-target/5965

Renamed GodotCompilerWarnings.cmake to common_compiler_flags.cmake to match scons

Included files explicitly by path, as we dont need to append to the CMAKE_MODULES_PATH which effects the whole build tree.

This prevents consumers of the library from clobbering the names of the cmake include files and breaking the build.
2024-09-24 16:27:28 +09:30
David Snopek 64221facda
Merge pull request #1603 from Faless/build/fix_wasm_bigint
[SCons] Enable WASM_BIGINT in web builds
2024-09-23 10:45:56 -05:00
Fabio Alessandrelli 78498da7c3 [SCons] Enable WASM_BIGINT in web builds
Required since Godot 4.3, which is also the first Godot version with
wide WASM gdnative support (previous versions were Chrome-only, and very
brittle).
2024-09-23 13:29:49 +02:00
Fabio Alessandrelli 4717a78144 [SCons] Remove use_clang_cl windows flag in favor of generic use_llvm
This is consistent with Godot upstream.
2024-09-22 13:39:06 +02:00
Samuel Nicholas 07704f8f48 VSProj Configure type on build command - to resolve #1582
Visual Studio projects are multi-config projects like Ninja-MultiConfig which means you can't set the configuration at configure time as there are multiple, it always chooses the first one by default when not specified in the build command.

Instead of this:
cmake -DCMAKE_BUILD_TYPE=Release -G"Visual Studio 17 2022" .
cmake --build . --verbose

It should be this
cmake -G"Visual Studio 17 2022" .
cmake --build . --verbose --config Release

Update ci.yml

Because the current build system doesnt use generator expressions for multi config builds, both the CMAKE_BUILD_TYPE and the build --config options need to be set
2024-09-21 22:38:07 +09:30
David Snopek 57bd88ad99
Merge pull request #1162 from Repiteo/typed-dictionary
Implement typed dictionaries
2024-09-19 13:46:07 -05:00
David Snopek 536ea8561e Allow unicode class names 2024-09-18 13:24:56 -05:00
David Snopek b93d6e887e
Merge pull request #1583 from enetheru/variable-rename2
Updated all variable names to use GODOT_ prefix
2024-09-17 21:00:36 -05:00
Thaddeus Crews 2ffff669f5
Implement typed dictionaries 2024-09-17 15:05:16 -05:00
David Snopek 730ccaae39
Merge pull request #1593 from Repiteo/4.4.dev2-bindings
Update bindings to 4.4.dev2
2024-09-17 14:38:47 -05:00
Thaddeus Crews 9b98b19913
Update bindings to 4.4.dev2 2024-09-17 12:45:21 -05:00
David Snopek cb543c192a Correctly set instance bindings on reload 2024-09-17 09:18:08 -05:00
Samuel Nicholas 390a9a5590 Updated all variable names to use GODOT_ prefix
changed cache type for api file and api dir to FILEPATH and PATH respectively.
Minor whitespace.
docstring parity
2024-09-14 09:04:01 +09:30
David Snopek 4131b7f95f
Merge pull request #1579 from enetheru/visibility-hidden
add SYMBOL_VISIBILITY cache variable to match scons interface.
2024-09-13 17:49:28 -05:00
Samuel Nicholas 02bdc6665a Add GODOT_SYMBOL_VISIBILITY cache variable to match scons interface. 2024-09-14 07:47:29 +09:30
David Snopek aed9b5c7df
Merge pull request #1563 from APokorny/visibility-hidden
Add visibility-hidden to CMake build
2024-09-11 10:29:12 -05:00
David Snopek 4d8c05f405
Merge pull request #1535 from bruvzg/llvm-mingw-arm64
Add support for LLVM/MinGW and ARM64 Windows builds.
2024-09-10 15:48:22 -05:00
David Snopek f4d3817d99
Merge pull request #1548 from ytnuf/hot_reload
Add hot reload support when building with GCC and CMake
2024-09-10 15:47:53 -05:00
David Snopek d477589104
Merge pull request #1520 from dsnopek/test-library-path-absolute
Add a test to ensure that library path is absolute
2024-08-27 17:45:23 -05:00
ytnuf 05571971cc Add hot reload support when building with GCC and CMake 2024-08-26 19:54:55 +01:00
David Snopek aac0164b7a
Merge pull request #1561 from Spartan322/gcc-14-Wtemplate-id-cdtor-warning
Fix GCC 14 -Wtemplate-id-cdtor warning
2024-08-26 12:35:48 -05:00
David Snopek fd8f196008
Merge pull request #1560 from Faless/fix/build_web_cppflags_is_ccflags
[Web/SCons] Use CCFLAGS for SIDE_MODULE option
2024-08-26 10:34:55 -05:00
David Snopek 16bc0a0fff
Merge pull request #1558 from aaronfranke/fix-typed-packed-array-bind
Fix missing MAKE_TYPED_ARRAY_INFO for Packed*Arrays
2024-08-26 10:34:33 -05:00
Andreas Pokorny d18fa929fb Add visibility-hidden
This should make all symbols that are not marked otherwise have hidden
visibility. There still may be exposed symbols if marked with respective
attributes.
2024-08-26 13:20:51 +02:00
George L. Albany 7b31f39bea
Fix GCC 14 -Wtemplate-id-cdtor warning
As was fixed with godotengine/godot#91208
2024-08-25 07:55:58 +00:00
Fabio Alessandrelli f36acd8e31 [Web/SCons] Use CCFLAGS for SIDE_MODULE option
Was using CPPFLAGS, but should use the explicit scons CCFLAGS which
makes it clear they are applied to both the C and C++ compiler.

CPPFLAGS was also fine (they are preprocessor flags, also applied to
both C and C++), but we should try to stay consistent with what we do
in Godot.
2024-08-24 12:02:36 +02:00
Aaron Franke 10c3d1bc5f
Fix missing MAKE_TYPED_ARRAY_INFO for Packed*Arrays 2024-08-22 21:02:48 -07:00
David Snopek 19c83a8837
Merge pull request #1554 from raulsntos/char-metadata
Correct type for `char16` and `char32` meta
2024-08-22 19:17:59 -05:00
Raul Santos 9a89d226c7
Correct type for `char16` and `char32` meta 2024-08-23 00:33:11 +02:00
David Snopek 265412cc53
Merge pull request #1557 from mihe/cpp-operators
Fix incorrect generation of some C++ operators
2024-08-22 16:45:18 -05:00
David Snopek 92ace04989 Add a test to ensure that library path is absolute 2024-08-22 16:31:35 -05:00
David Snopek 62305943a7
Merge pull request #1555 from raulsntos/fix-r1722784216
Avoid hardcoded type conversion for metadata
2024-08-22 16:30:17 -05:00
Mikael Hermansson 9949d09f3e Fix incorrect generation of some C++ operators 2024-08-21 20:37:52 +02:00
David Snopek 8b80d9146b
Merge pull request #1528 from AThousandShips/style_fix_2
Make generated code mostly style compliant
2024-08-21 07:12:59 -05:00
Raul Santos 4829199081
Avoid hardcoded type conversion for metadata
The engine uses the names `int` and `float` to refer to the 64-bit types, so in the bindings generator we have a hardcoded conversion for those types.

But this type conversion should not be used for metadata. Even though the underlying type should still be 64-bit for interop, metadata is meant to specify the correct type to expose. So if metadata says `float` it means the type is really meant to be a 32-bit `float` and not `double`. Other hardcoded type conversions (`int` and `Nil`) won't ever be metadata.

This change corrects the `float` type, to use the right type in the generated C++ code. Before we were always using `double` due to this type conversion.
2024-08-20 14:53:22 +02:00