Commit Graph

1572 Commits (master)

Author SHA1 Message Date
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
Samuel Nicholas 35469fd839 Turn python_callouts.cmake into GodotCPPModule.cmake
Move the find_package for python into it.
Recommend adding godot-cpp/cmake to CMAKE_MODULE_PATH and using include( GodotCPPModule ) to use functions.
Add target_doc_sources function to simplify the addition of documentation to a binary.
2025-02-15 09:04:12 +10:30
Samuel Nicholas 9d9099adcd Simplified architecture naming to reduce confusion 2025-02-09 18:08:53 +10:30
David Snopek f398ebb8ce gdextension: Sync with upstream commit 06acfccf89ad6b900ae694a4d58ceade1967a85f (4.4-beta3) 2025-02-08 15:02:31 -06:00
David Snopek 560f786599
Merge pull request #1698 from enetheru/threads
CMake: Implement 'threads' Option
2025-02-07 12:07:33 -06:00
Samuel Nicholas 91f81f51e1 CMake: Implement 'threads' Option
Add the GODOT_THREADS option and related supporting code
Includes naming cleanups
2025-02-04 09:08:35 +10:30
David Snopek ee2a895ea4
Merge pull request #1335 from godotengine/dependabot/github_actions/actions/upload-artifact-4
Bump actions/upload-artifact from 3 to 4
2025-02-03 11:18:23 -06:00
David Snopek f06af65c87 gdextension: Sync with upstream commit a013481b0911e59cc3f3dea7ebb732450c3e1460 (4.4-beta2) 2025-02-02 08:41:18 -06:00
David Snopek 3c55ca7a14
Merge pull request #1691 from enetheru/fix1690
CMake: Fix #1690 - DEBUG_FEATURES generator expression
2025-01-29 11:14:51 -06:00
Samuel Nicholas 9ce7a71cbf CMake: Fix #1690 - DEBUG_FEATURES generator expression
As described in issue #1690 the expression needs to depend on TARGET_ALIAS not TARGET_NAME.

This was introduced when I was solving the naming conflict issues and I missed this usage.
2025-01-23 14:36:48 +10:30
David Snopek 13cd2d921c
Merge pull request #1628 from IvanInventor/typed_dict_regression_fix
fix typed_dictionary compile-time regression
2025-01-21 11:15:42 -06:00
David Snopek b86cf321d0
Merge pull request #1687 from bgie/enum_size
Fix buffer overrun with enums pointers cast to int64_t* when enum is only 32-bit
2025-01-21 06:28:58 -06:00
David Snopek faf6facffc
Merge pull request #1686 from bgie/readme_precommit
Update README.md with new pre-commit instructions
2025-01-21 06:27:40 -06:00
David Snopek dfc51960f9 gdextension: Sync with upstream commit d33da79d3f8fe84be2521d25b9ba8e440cf25a88 (4.4-beta1) 2025-01-20 15:23:58 -06:00
Brecht Kuppens 7576dc5930 Fix buffer overrun with enums pointers cast to int64_t* when enum is only 32-bit 2025-01-20 10:29:16 +01:00
Brecht Kuppens bd3cf478c6 Update README.md with new pre-commit instructions 2025-01-20 09:25:59 +01:00
David Snopek befe3ee2f2
Merge pull request #1682 from enetheru/gdext-docs-cmake
CMake: Support for XML documentation
2025-01-13 09:06:59 -06:00
Samuel Nicholas 8814ac51ac CMake: Support for XML documentation
Add new function generate_doc_source to python_callouts.cmake
Update Test extension to use generate_doc_source function and include generated file in the build.

Cleanup:
Fix godotcpp.py imports after rebase
Pre-Commit hook sorted python imports in doc_source_generator.py
- replace ${CMAKE_CURRENT_SOURCE_DIR} with ${godot-cpp_SOURCE_DIR} when referencing current working directory and script locations when invoking python scripts.

Co-authored-by: David Snopek <dsnopek@gmail.com>
2025-01-13 08:28:42 +10:30
David Snopek 94a1f4f2fb
Merge pull request #1670 from enetheru/build_profile
CMake: Support for using build_profile.json
2025-01-12 05:29:29 -06:00
David Snopek 65046d00a5
Merge pull request #1676 from dsnopek/gdextension-virtual-method-compat
Update for virtual method compatibility system
2025-01-12 05:28:38 -06:00
David Snopek 5c9529fc84 Update for virtual method compatibility system 2025-01-11 16:36:59 -06:00
Samuel Nicholas ae198fe860 CMake: Support using build_profile.json
Add python_callouts.py to hold functions which call python utilities
- generate trimmed API
- generate file list
- generate bindings

if GODOT_BUILD_PROFILE is specified, a trimmed API file is created in the CMAKE_CURRENT_BINARY_DIR and used as the source for binding generation

Simplify Code Generation Variables
- use generator expressions
- use math for bits
- simplify if statements
2025-01-11 12:22:22 +10:30
David Snopek 012b8ffc3a
Merge pull request #1658 from enetheru/name_clash
CMake: Alleviate target name clashes, visibility, and grouping.
2025-01-10 09:05:54 -06:00
David Snopek 7d3870bc87
Merge pull request #1680 from Faless/build/profile_strip_json
[Bindings] Build profile now strips methods and skip files
2025-01-07 14:42:20 -06:00
Fabio Alessandrelli 0cfe01eff2 [CI] Re-add generated files consistency check 2025-01-07 20:33:12 +01:00
Fabio Alessandrelli c4f1abe3f9 [Bindings] Build profile now strips methods and skip files
This allows removing dependencies that are not explicitly unused by the
gdextension being built and is implemented using an intermediate json
API file with the methods and classes stripped (i.e. without touching
the file generators).
2025-01-07 20:33:12 +01:00
Samuel Nicholas 6f7293cef4 Alleviate CMake target name clashes, visibility, and grouping.
Simplify <platform>_generate cmake function signature, as TARGET_ALIAS and TARGET_NAME are still in scope and do not need to be passed.
Add USE_FOLDERS, and FOLDER properties to group targets in VS and XCode
Guard test target with GODOT_ENABLE_TESTING
Generate all three variants in the form godot-cpp.test.<target> to remove the -DTEST_TARGET option clutter.
Update the docs/cmake.rst with information about the testing target
Update the Github CI
2024-12-29 09:54:55 +10:30
David Snopek 47f11bc5c7
Merge pull request #1666 from raulsntos/set_class_icon
Add a method to set the class icon
2024-12-21 17:17:50 -06:00
Raul Santos 2fd3a80505
Add icon path to class creation info 2024-12-18 01:44:22 +01:00
David Snopek 27ffd8c6be
Merge pull request #1668 from dsnopek/print-verbose-conflict
Fix `print_verbose()` macro conflicting with `UtilityFunctions::print_verbose()`
2024-12-10 08:57:32 -06:00
David Snopek 47d9cb9bed Fix `print_verbose()` macro conflicting with `UtilityFunctions::print_verbose()` 2024-12-09 11:33:57 -06:00
David Snopek 97c16d3379
Merge pull request #1656 from Ivorforce/gh-action-setup-godot-cpp
Add a separate setup-godot-cpp github action.
2024-12-09 10:39:57 -06:00
Lukas Tenbrink 9943675dcb Add a separate setup-godot-cpp github action. 2024-12-09 16:13:43 +01:00
David Snopek 38056d1086
Merge pull request #1651 from enetheru/clang-cl
CMake: Enable using clang-cl on windows
2024-12-09 08:30:20 -06:00
Samuel Nicholas ef9778a392 CMake: Enable using clang-cl on windows
detect clang with MSVC frontend using CMAKE_CXX_COMPILER_FRONTEND_VARIANT
2024-12-09 11:58:40 +10:30
David Snopek ce66e6bb39
Merge pull request #1648 from enetheru/dev_tag
CMake: Handle GODOT_DEV_BUILD flag
2024-12-08 08:18:07 -06:00
Samuel Nicholas 542ab19a21 CMake: Handle GODOT_DEV_BUILD flag correctly
.dev is added to output artifacts
Warn users for specifying dev_build and Release build config
Update documentation with deviations to SCons
Update debug_symbols handling, its rolled into build config
Cleanup helper variables and comments
2024-12-07 09:50:59 +10:30
David Snopek 163189fba9
Merge pull request #1660 from enetheru/exclude_typo
CMake: Replace empty ${EXCLUDE} variable with EXCLUDE_FROM_ALL
2024-12-06 16:08:27 -06:00
David Snopek 4eaef4ca9a
Merge pull request #1663 from enetheru/fix_crt_debug
CMake: Fix selection of MSVC Runtime compile flags
2024-12-06 16:08:19 -06:00
David Snopek 72aeb35691
Merge pull request #1655 from Ivorforce/variant-internal
Add variant_internal.hpp.
2024-12-06 16:08:04 -06:00
Samuel Nicholas 9df3a66a88 Replace empty EXCLUDE variable with EXCLUDE_FROM_ALL
This was a mistake left over from the modernise PR
2024-12-05 09:16:11 +10:30
Samuel Nicholas 732df06a81 CMake: Fix selection of MSVC Runtime compile flags
My last attempt at solving this was not correct. I have left lots of comments in the source detailing the issue as it will effect consumers.
2024-12-05 09:15:40 +10:30
David Snopek bb567060f4
Merge pull request #1616 from dsnopek/ptrtoarg-no-error-for-null-ref
Don't print an error when decoding a null Ref<T>
2024-12-02 12:54:26 -06:00
Lukas Tenbrink daef7d48ea Add variant_internal.hpp.
This module contains VariantInternalType, VariantInternal, VariantGetInternalPtr, VariantInternalAccessor and VariantDefaultInitializer, allowing to access and manipulate Variant's internal values.
2024-11-28 15:15:03 +01:00
David Snopek 5255034fb0
Merge pull request #1653 from aaronfranke/print
Add `print_line` for compatibility with engine modules
2024-11-28 07:31:06 -06:00
David Snopek b378d8c21f
Merge pull request #1654 from Ivorforce/gdextension-interface-update
Update gdextension_interface.h. Add metadata to GetTypeInfo of char16_t and char32_t.
2024-11-28 06:59:21 -06:00
David Snopek af4eaa76d7
Merge pull request #1649 from enetheru/fix-backward-break
CMake: fix break for build prior to modernisation PR
2024-11-28 06:58:57 -06:00