summaryrefslogtreecommitdiff
path: root/modules/gdnative/SCsub
AgeCommit message (Collapse)Author
2020-11-26[Complex Text Layouts] Implement GDNative interface for TextServer.bruvzg
2020-11-25Core: Always enable ptrcall, remove PTRCALL_ENABLED defineRémi Verschelde
ptrcall is now also used to optimize calls in GDScript, on top of the existing use by the GDNative and Mono modules. It no longer makes sense to make it optional.
2020-07-28SCons: Refactor running commands through buildersAndrii Doroshenko (Xrayez)
A new `env.Run` method is added which allows to control the verbosity of builders output automatically depending on whether the "verbose" option is set. It also allows to optionally run any SCons commands in a subprocess using the existing `run_in_subprocess` method, unifying the interface. `Action` objects wrap all builder functions to include a short build message associated with any action. Notably, this removes quite verbose output generated by `make_doc_header` and `make_editor_icons_action` builders.
2020-04-09Renaming all ARVR nodes to XRBastiaan Olij
2020-03-30SCons: Format buildsystem files with psf/blackRémi Verschelde
Configured for a max line length of 120 characters. psf/black is very opinionated and purposely doesn't leave much room for configuration. The output is mostly OK so that should be fine for us, but some things worth noting: - Manually wrapped strings will be reflowed, so by using a line length of 120 for the sake of preserving readability for our long command calls, it also means that some manually wrapped strings are back on the same line and should be manually merged again. - Code generators using string concatenation extensively look awful, since black puts each operand on a single line. We need to refactor these generators to use more pythonic string formatting, for which many options are available (`%`, `format` or f-strings). - CI checks and a pre-commit hook will be added to ensure that future buildsystem changes are well-formatted.
2020-01-31Remove deprecated GDNative wrapper codeEmmanuel Leblond
2019-04-30SCons: Always use env.Prepend for CPPPATHRémi Verschelde
Include paths are processed from left to right, so we use Prepend to ensure that paths to bundled thirdparty files will have precedence over system paths (e.g. `/usr/include` should have lowest priority).
2018-12-13Added interface for GDNative Videodecoder.Anish
Interface and callback api added for Videodecoder support. Should be able to construct any format videodecoder using only the given interface. GSoC 2018 project.
2018-09-28SCons: Build thirdparty code in own env, disable warningsRémi Verschelde
Also remove unnecessary `Export('env')` in other SCsubs, Export should only be used when exporting *new* objects.
2018-07-27Running builder (content generator) functions in subprocesses on WindowsViktor Ferenczi
- Refactored all builder (make_*) functions into separate Python modules along to the build tree - Introduced utility function to wrap all invocations on Windows, but does not change it elsewhere - Introduced stub to use the builders module as a stand alone script and invoke a selected function There is a problem with file handles related to writing generated content (*.gen.h and *.gen.cpp) on Windows, which randomly causes a SHARING VIOLATION error to the compiler resulting in flaky builds. Running all such content generators in a new subprocess instead of directly inside the build script works around the issue. Yes, I tried the multiprocessing module. It did not work due to conflict with SCons on cPickle. Suggested workaround did not fully work either. Using the run_in_subprocess wrapper on osx and x11 platforms as well for consistency. In case of running a cross-compilation on Windows they would still be used, but likely it will not happen in practice. What counts is that the build itself is running on which platform, not the target platform. Some generated files are written directly in an SConstruct or SCsub file, before the parallel build starts. They don't need to be written in a subprocess, apparently, so I left them as is.
2018-06-29Merge pull request #19757 from Faless/gdnet_prThomas Herzog
Network bindings for GDNative
2018-06-27Add [Packet/Stream/Multiplayer]PeerGDNativeFabio Alessandrelli
They provide an interface to implement PacketPeer, StreamPeer, and NetworkedMultiplayerPeer via GDNative.
2018-06-21add NoCache wrapper to CommandRhody Lugo
2018-06-19Add access for GDNative modules to some platform dependent internals on AndroidBastiaan Olij
2018-05-10changed GDNative API json formatkarroffel
2018-04-30Fix lto builds on clang compilersHein-Pieter van Braam
The --no-lto option only works on GCC compilers. This breaks LTO builds on MacOS and iPhone when building the gdnative wrappers. -fno-lto works on both brands of compilers.
2018-02-10Merge pull request #16539 from eska014/gdnative-macwarnThomas Herzog
Fix GDNATIVE_API_INIT() warning about sign mismatch
2018-02-10Fix GDNATIVE_API_INIT() warning about sign mismatchLeon Krause
2018-02-09generate proper API structs for GDNative extension extensionskarroffel
The GDNative C API gets passed to libraries in a struct of function pointers. To provide stable binary compatibility, each extension not part of the core API is separated into its own sub-struct. These structs aren't meant to be changed in order to keep binary compatibility. In case of an API extension, the structs include a `next` pointer which can point to a new struct with additional function pointers. Godot's build system generates the API structs automatically at build time, but so far there has no support for the mentioned `next` pointers. This commit changes the API struct generation in such a way that code that used previous headers will compile without problem with the new headers. The new extension-extensions (weird name, but that's what it is) get generated recursively and include the version in the struct-name.
2018-01-04Disable lto for gdnative wrapperEmmanuel Leblond
2017-12-18Add plugin to edit GDNativeLibrarygeequlim
Rename GDNativeLibraryEditor to GDNativeLibrarySingletonEditor
2017-11-28disable caching for targets using helper functionsRhody Lugo
2017-11-28use the same cache for all branches for appveyorRhody Lugo
2017-11-25[GDNative] disable -fPIC flag with msvc compilerEmmanuel Leblond
2017-11-21Fix&prettify gdnative_api_struct.gen.h GDNATIVE_API_INIT macro generationEmmanuel Leblond
2017-11-20[GDNative] loading error and version error procsKarroffel
2017-11-16[GDNative] fix wrapper code generationKarroffel
2017-11-13fix auto-generated GDN API header for C compilers (#12891)Evrey
* fix auto-generated GDN API header for C compilers
2017-11-10[GDNative] rename nativearvr extension to arvrKarroffel
2017-11-10[GDNative] better API struct versioningKarroffel
2017-11-09[GDNative] refactored API struct into core and extensionsKarroffel
2017-10-17[GDnative] add pluginscript \o/Emmanuel Leblond
2017-10-14Redoing the ARVR GDNative interface as module and tighter implementationBastiaanOlij
2017-10-08[GDnatvie] improve wrapper code generationEmmanuel Leblond
2017-10-07Store GDNative API in array instead of dictionarysheepandshepherd
2017-10-04Merge pull request #11806 from touilleMan/gdnative-version-fieldThomas Herzog
[GDnative] add api version field to godot_gdnative_api_struct
2017-10-04[GDnative] add future-proof next field to godot_gdnative_api_struct (a la ↵Emmanuel Leblond
Vulkan)
2017-10-03[GDNative] added API struct wrapper generatorKarroffel
Previously functions of the GDNative API were accessed by letting the loader at load-time resolve the symbols. This causes troubles on Windows (...sigh...), so now the GDNative API isn't exported anymore. This means, that a library that wants to call a GDNative function needs to access it via a struct of pointers that's passed to it at right after the library was loaded. To make the usage easier, those function pointers in the struct can be wrapped in actual function in the global scope. This commit adds a generator for that wrapper code.
2017-10-03[GDnative] add api version field to godot_gdnative_api_structEmmanuel Leblond
2017-10-03[GDnative] replace gdnative_api_struct.h by a json-based autogenerated systemEmmanuel Leblond
2017-09-26Enhance iOS exportRuslan Mustakov
- The export process now builds complete .ipa on macOS, instead of just creating XCode project. - The project includes Capabilities games usually require: Game Center, Push Notifications, In-App Purchase. - Icons and launch screens can be specified in export preset.
2017-09-03merged gdnative and nativescript moduleKarroffel
2017-08-02[GDNative/NativeScript] fix -rdynamic and removed _init callKarroffel
The _init call was buggy anyway and in the end shouldn't be a thing that's called via ClassDB, it should be something that's language specific, so we leave this out for the bindings. In the commit 66a7763 the SCsub file for GDNative was changed to use a cloned environment, that bricked -rdynamic which needs to be passed down to the linker, which didn't happen with the new env.
2017-08-02[GDNative] better header include pathsKarroffel
The old include paths caused some problems on some compilers, for example including "string.h" was ambiguous.
2017-04-09renamed dlscript module to gdnativeKarroffel