Commit Graph

1618 Commits

Author SHA1 Message Date
Marc Gilleron
6182a2728b Use Math::abs to avoid ambiguity with integer abs
(cherry picked from commit 7670de814f)
2025-06-24 15:35:09 -05:00
Samuel Nicholas
5dae002a5d version bump of mozilla-sccache action to 0.0.9
https://github.blog/changelog/2025-03-20-notification-of-upcoming-breaking-changes-in-github-actions/#decommissioned-cache-service-brownouts
(cherry picked from commit bbbcc6adc7)
2025-06-24 15:35:00 -05:00
Grublady
b0399d9782 Fix TypedDictionary binding generation
(cherry picked from commit 26201dd27a)
2025-06-24 15:34:29 -05:00
Tom
b139e2fb76 Synced defs.hpp with godot's typedefs.h
(cherry picked from commit d634a5f8c4)
2025-06-24 15:34:18 -05:00
Marc Gilleron
bdeb1987f6 Use Math::abs to avoid ambiguity with integer abs
(cherry picked from commit 7e6c9c9370)
2025-06-24 15:34:04 -05:00
Samuel Nicholas
2b4512414b Fix compatibility break for CI
(cherry picked from commit 38e517b98b)
2025-06-24 15:33:53 -05:00
Hugo Locurcio
483499c14c Update test project to Godot 4.4
(cherry picked from commit 552a74c96e)
2025-06-24 15:33:43 -05:00
Tom
466a743112 Added initialiser list support to TypedDictionary
(cherry picked from commit 335b490061)
2025-06-24 15:33:33 -05:00
Samuel Nicholas
3963054a14 CMake: Update CI
- Duplicated the ci.yml into ci-scons.yml and ci-cmake.yml
- Replaced some manual shell commands to detect changes with  tj-actions/changed-files@v45
- Conditionally run the CI depending on what files change.
- Add ios toolchain from leetal/ios-cmake
- Added a cmake-minimum of 3.10 to silence errors from ios toolchain

(cherry picked from commit b6c0251296)
2025-06-24 15:33:21 -05:00
Tom
6e6a1ea451 .
(cherry picked from commit 946a693859)
2025-06-24 15:33:04 -05:00
Tom
c435258dde Made the Array's ptr and ptrw methods private
(cherry picked from commit a2c37f8a16)
2025-06-24 15:32:54 -05:00
unvermuthet
863f94de77 Implement use_static_cpp flag for Linux
(cherry picked from commit b0f41909e0)
2025-06-24 15:32:45 -05:00
Aaron Franke
e299bc623d Add missing Projection constructor with 16 real_t values
(cherry picked from commit aa03c32b3e)
2025-06-24 15:32:33 -05:00
Tom
37febead2b Add method_ptrcall header include to type_info to fix compiler errors
(cherry picked from commit 7ffaecce8c)
2025-06-24 15:32:23 -05:00
David Snopek
940fdea07f Fix stack smashing when Godot methods return char32_t, char16_t or wchar_t
(cherry picked from commit 035add9d4f)
2025-06-24 15:32:14 -05:00
Pāvels Nadtočajevs
6917c1ea17 [macOS] Remove unnecessary Cocoa reference.
(cherry picked from commit d239da3221)
2025-06-24 15:32:03 -05:00
David Snopek
0a39efe3d3 Synchronize most shared template code with Godot 4.4
(cherry picked from commit 1edfca295b)
2025-06-24 15:31:53 -05:00
David Snopek
67f6f96a9b Synchronize most shared variant code with Godot 4.4
(cherry picked from commit 075b517d96)
2025-06-24 15:31:38 -05:00
Thaddeus Crews
749d68037e Ignore #pragma once commit
(cherry picked from commit c963321cdd)
2025-06-24 15:31:24 -05:00
Thaddeus Crews
f166d4ed8c Style: Replace header guards with #pragma once
(cherry picked from commit 7056c996dd)
2025-06-24 15:31:15 -05:00
Thaddeus Crews
6fcc184587 Style: Integrate #pragma once in builders/checks
(cherry picked from commit 107cb1da5e)
2025-06-24 15:31:06 -05:00
David Snopek
e4b7c25e72 gdextension: Sync with upstream commit 49a5bc7b616bd04689a2c89e89bda41f50241464 (4.4.1-stable) godot-4.4.1-stable 2025-03-27 07:31:44 -05:00
David Snopek
6388e26dd8 Merge pull request #1745 from dsnopek/4.4-cherrypicks-1
Cherry-picks for the godot-cpp 4.4 branch - 1st batch
2025-03-18 08:08:53 -05:00
Samuel Nicholas
e9a6dbd697 CMake: public/private flags
Made all warnings private.
Warning as error private
Consistency in  generator expressions

(cherry picked from commit 5eb16d0c5b)
2025-03-17 11:27:37 -05:00
zhmt
6b0d2e502c binding_generator.py: Don't error if directory already exists
It should be ok when folders exist. Exception shouldn't be thrown.

Update binding_generator.py

It should be ok when folds exist. It will fail to build without this patch,  in vs code on windows with compiler ( visual studio community 2022 amd 64) .

Co-Authored-By: Chris Cranford <ccranfor@redhat.com>
(cherry picked from commit d79959c79e)
2025-03-17 11:27:27 -05:00
Samuel Nicholas
21fba890d6 CMake: XCode dependency chain fixes - remastered
When attempting to generate XCode projects it would fail due to the target dependency chain not meeting expectations.

This PR, adds the required dependency infomation so that the XCode generator works.

(cherry picked from commit f83f364144)
2025-03-17 11:27:17 -05:00
David Snopek
2d45d08722 Check that precision of extension_api.json matches build options
(cherry picked from commit 0a73df5f53)
2025-03-17 11:27:06 -05:00
Samuel Nicholas
368ec63a24 CMake: Target as configuration option
Add GODOTCPP_TARGET configuration option
Remove loop to generate the godot-cpp.<target> CMake Targets

Rename test bindings target
Update documentation

(cherry picked from commit 89abe15268)
2025-03-17 11:26:56 -05:00
ytnuf
1f477a780e Remove unnecessary forced -fno-exceptions for web builds
The SCons build doesn't do this, so neither should CMake
Excpetions are already handled by DISABLE_EXCEPTIONS option

(cherry picked from commit 43690cb60b)
2025-03-17 11:26:44 -05:00
Samuel Nicholas
5ba2d9c9f6 CMake: default target when godot-cpp is top level
People seem to want to build godot-cpp without any arguments, not even specifying a target.

We have to detect if we are top level though because it conflicts with being consumed.

(cherry picked from commit 8b33e73353)
2025-03-17 11:26:33 -05:00
Samuel Nicholas
4b5d800596 Updating commenting to be consistent
(cherry picked from commit 671e309cfa)
2025-03-17 11:26:21 -05:00
Samuel Nicholas
8bdf9b82a2 add gersemi to pre-commit hooks for CMake formatting like black
(cherry picked from commit 2f6d7f2dad)
2025-03-17 11:26:12 -05:00
David Snopek
714c9e2c16 gdextension: Sync with upstream commit 4c311cbee68c0b66ff8ebb8b0defdd9979dd2a41 (4.4-stable) godot-4.4-stable 2025-03-03 09:30:17 -06:00
David Snopek
06082d7727 Merge pull request #1721 from enetheru/godotcpp
CMake: Rename all GODOT_ to GODOTCPP_
2025-03-01 10:49:38 -06:00
David Snopek
26358b5e3a Merge pull request #1719 from dsnopek/gdvirtual-required-macros
Update `GDVIRTUAL*()` macros to match Godot 4.4
2025-03-01 08:21:53 -06:00
David Snopek
e3816585fe gdextension: Sync with upstream commit 15ff450680a40391aabbffde0a57ead2cd84db56 (4.4-rc3) 2025-02-28 19:24:25 -06:00
Samuel Nicholas
d0dd282d73 CMake: Rename all GODOT_ to GODOTCPP_
This is for discussion primarily at this stage.
2025-03-01 10:50:55 +10:30
David Snopek
c8c25cd312 Merge pull request #1720 from enetheru/generator_target
CMake: Add generate_bindings custom target
2025-02-27 12:57:35 -06:00
David Snopek
4a9409a30f Update GDVIRTUAL*() macros to match Godot 4.4 2025-02-26 12:56:55 -06:00
David Snopek
375c0d1575 gdextension: Sync with upstream commit 01545c995b0612c68f9dfce8f6cc67576c298381 (4.4-rc2) 2025-02-26 07:51:29 -06:00
Samuel Nicholas
e7f07dab87 CMake: Add generate_bindings custom target
I was working on something today and wanted to just generate the bindings separately to compilation.

This PR adds a custom target to do just that.
2025-02-26 23:02:59 +10:30
David Snopek
98ea2f60bb gdextension: Sync with upstream commit 8ed125b42908d0d46d3b8967e3a3bc03f809b3af (4.4-rc1) 2025-02-24 10:35:53 -06:00
David Snopek
48baa0c812 Merge pull request #1713 from Repiteo/style/nodiscard
Style: Replace `_NO_DISCARD_` macro with `[[nodiscard]]`
2025-02-21 14:32:36 -06:00
Thaddeus Crews
89fd27608f Style: Replace _NO_DISCARD_ macro with [[nodiscard]] 2025-02-20 09:23:08 -06:00
David Snopek
5eb6e6bf61 Merge pull request #1709 from enetheru/MinGWMakefiles
CMake: Create destination folder for doc_source.cpp generation
2025-02-17 15:26:44 -06:00
Samuel Nicholas
23c24073f4 CMake: Create destination folder for doc_source.cpp generation
When compiling using 'MinGW Makefiles' the folders aren't created automatically.
2025-02-18 07:11:53 +10:30
David Snopek
79f9bc9600 Merge pull request #1708 from enetheru/arch_confusion
CMake: Fix unknown architecture and simplify OSX_ARCHITECTURES
2025-02-17 11:04:34 -06:00
David Snopek
3f54a86554 Merge pull request #1707 from enetheru/cmake_module
CMake: GodotCPPModule.cmake
2025-02-17 11:04:25 -06:00
David Snopek
847dca4792 Merge pull request #1701 from enetheru/msvc_runtime
CMake: Fix for #1699 msvc runtime selection issues
2025-02-17 11:04:15 -06:00
Samuel Nicholas
18a926e836 CMake: Fix for #1699 msvc runtime selection issues
Previously I eschewed the use of CMAKE_MSVC_RUNTIME_LIBRARY in favour of setting the flags using target_compile_options so that they would propagate to consumers.

However, it has been raised that a dependency( independent to godot-cpp ) that doesn't set any runtime flags, which relies purely on the CMAKE_MSVC_RUNTIME_LIBRARY variable will very likely not have the correct msvc runtime flags set.

Where MSVC documentation states "All modules passed to a given invocation of the linker must have been compiled with the same runtime library compiler option (/MD, /MT, /LD)."

It was also mentioned that message type WARNING is not ideal for notifying consumers.

So I have updated the cmake code to use CMAKE_MSVC_RUNTIME_LIBRARY  over target-compile_options. And set it as a CACHE STRING variable so that it can be overridden if desired. We still message consumers, but as a NOTICE.
2025-02-15 18:28:12 +10:30