Skip to content

Commit c0006ff

Browse files
committed
Generate GDExtension interface header and loader from JSON
1 parent 4ae2669 commit c0006ff

38 files changed

+10346
-3998
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ default_language_version:
44
exclude: |
55
(?x)^(
66
gdextension/extension_api\.json|
7-
gdextension/gdextension_interface\.h
7+
gdextension/gdextension_interface\.json
88
)$
99
1010
repos:

binding_generator.py

Lines changed: 227 additions & 55 deletions
Large diffs are not rendered by default.

cmake/GodotCPPModule.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ missing. ]]
8686
function(
8787
binding_generator_generate_bindings
8888
API_FILE
89+
INTERFACE_FILE
8990
USE_TEMPLATE_GET_NODE
9091
BITS
9192
PRECISION
@@ -96,6 +97,7 @@ function(
9697
"from binding_generator import generate_bindings"
9798
"generate_bindings(
9899
api_filepath='${API_FILE}',
100+
interface_filepath='${INTERFACE_FILE}',
99101
use_template_get_node='${USE_TEMPLATE_GET_NODE}',
100102
bits='${BITS}',
101103
precision='${PRECISION}',

cmake/common_compiler_flags.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@ function(common_compiler_flags)
170170
$<${IS_MSVC}:$<${DISABLE_EXCEPTIONS}:_HAS_EXCEPTIONS=0>>
171171

172172
$<${THREADS_ENABLED}:THREADS_ENABLED>
173+
174+
$<$<NOT:$<BOOL:${GODOTCPP_DEPRECATED}>>:DISABLE_DEPRECATED>
173175
)
174176

175177
target_link_options(

cmake/godotcpp.cmake

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ function(godotcpp_options)
155155

156156
#TODO optimize
157157

158+
option(GODOTCPP_DEPRECATED "Enable compatibility code for deprecated and removed features" ON)
158159
option(GODOTCPP_DEV_BUILD "Developer build with dev-only debugging code (DEV_ENABLED)" OFF)
159160

160161
#[[ debug_symbols
@@ -248,6 +249,9 @@ function(godotcpp_generate)
248249
set(GODOTCPP_GDEXTENSION_API_FILE "${GODOTCPP_CUSTOM_API_FILE}")
249250
endif()
250251

252+
# Interface json file.
253+
set(GODOTCPP_GDEXTENSION_INTERFACE_FILE "${GODOTCPP_GDEXTENSION_DIR}/gdextension_interface.json")
254+
251255
# Build Profile
252256
if(GODOTCPP_BUILD_PROFILE)
253257
message(STATUS "Using build profile to trim api file")
@@ -262,6 +266,7 @@ function(godotcpp_generate)
262266
endif()
263267

264268
message(STATUS "GODOTCPP_GDEXTENSION_API_FILE = '${GODOTCPP_GDEXTENSION_API_FILE}'")
269+
message(STATUS "GODOTCPP_GDEXTENSION_INTERFACE_FILE = '${GODOTCPP_GDEXTENSION_INTERFACE_FILE}'")
265270

266271
# generate the file list to use
267272
binding_generator_get_file_list( GENERATED_FILES_LIST
@@ -271,6 +276,7 @@ function(godotcpp_generate)
271276

272277
binding_generator_generate_bindings(
273278
"${GODOTCPP_GDEXTENSION_API_FILE}"
279+
"${GODOTCPP_GDEXTENSION_INTERFACE_FILE}"
274280
"${USE_TEMPLATE_GET_NODE}"
275281
"${BITS}"
276282
"${GODOTCPP_PRECISION}"
@@ -351,7 +357,7 @@ function(godotcpp_generate)
351357
target_include_directories(
352358
godot-cpp
353359
${GODOTCPP_SYSTEM_HEADERS_ATTRIBUTE}
354-
PUBLIC include ${CMAKE_CURRENT_BINARY_DIR}/gen/include ${GODOTCPP_GDEXTENSION_DIR}
360+
PUBLIC include ${CMAKE_CURRENT_BINARY_DIR}/gen/include
355361
)
356362

357363
# gersemi: off

doc_source_generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def generate_doc_source(dst, source):
4040
g.write("\n")
4141

4242
g.write(
43-
"static godot::internal::DocDataRegistration _doc_data_registration(_doc_data_hash, _doc_data_uncompressed_size, _doc_data_compressed_size, _doc_data_compressed);\n"
43+
"static ::godot::internal::DocDataRegistration _doc_data_registration(_doc_data_hash, _doc_data_uncompressed_size, _doc_data_compressed_size, _doc_data_compressed);\n"
4444
)
4545
g.write("\n")
4646

gdextension/gdextension_interface.h

Lines changed: 0 additions & 3239 deletions
This file was deleted.

0 commit comments

Comments
 (0)