summaryrefslogtreecommitdiff
path: root/SConstruct
Commit message (Collapse)AuthorAgeFilesLines
* Allow building using a custom godot-cpp verisonFabio Alessandrelli2024-04-131-3/+30
| | | | | | | | | | You can use it with: scons godot_cpp=/path/to/godot-cpp This commit also forces the new "disable_exceptions" godot cpp option to false since exceptions are needed by libdatachannel, and makes sure to always compile/link with dynamic runtime when using MSVC.
* [Linux] Add arm32/arm64 linux builds supportFabio Alessandrelli2024-02-151-5/+13
| | | | | | | | | Fix arch detection in GDNative builds (3.x) and add a small patch to avoid warnings spam on ARM. Make CMake march flags explicit for Linux arm32/arm64. Add new platforms to CI.
* [Windows/MinGW] Only export extension init symbolFabio Alessandrelli2023-12-221-3/+5
| | | | | | When building for Windows using MinGW GCC we need to apply the same workaround we use on Linux to only export the necessary symbols so we can safely statically link libstdc++
* [Linux] Only export extension init symbolFabio Alessandrelli2023-12-221-12/+19
| | | | | | | Since we link with static libstdc++ we need to tell gcc to only export the necessary symbols. Using "-fvisibility=hidden" will not work, since libstdc++ explicitly exports its symbols.
* [MacOS] Use framekwork to package GDExtensionFabio Alessandrelli2023-12-201-1/+13
| | | | | This allows it to be code-signed as a bundle so gatekeeper won't complain when loaded by the editor.
* Support building for Godot 4.1 (new default).Fabio Alessandrelli2023-06-301-6/+16
|
* Statically link libgcc and libstdc++ on Linux.Fabio Alessandrelli2023-06-291-0/+12
| | | | More compatibility at the cost of bigger binaries.
* Better normalize the GDNative build environment.Fabio Alessandrelli2023-06-291-0/+4
| | | | | | | | The "ios_min_version" is missing from godot-cpp-3.x, and the macos CC variable is not explicitely set to "clang". Since the values are passed to cmake, they used to cause unnecessary rebuilds of libdatchannel when compiling both version 3 and 4.
* Linux ARM32/ARM64, better toolchains support.Fabio Alessandrelli2023-06-211-2/+6
| | | | | | | | | Needs updated godot-cpp to build library with custom toolchains. Make the OpenSSL and CMake tools more customizable letting the user override the default platform flags via build options. Improve dependency handling.
* [SCons] Refactor build system.Fabio Alessandrelli2023-06-171-53/+31
| | | | | | | | | | | | Update ssl tool (now renamed openssl). Move universal library "lipo" action to openssl tool, and add universal builds support to cmake tool. Add support for MSVC builds (requires nasm and perl in PATH, tested with Strawberry Perl, VS 2019 and VS 2022). Add support for building "macos" via OSXCross.
* [SCons] Move platform configuration to cmake tool.Fabio Alessandrelli2023-05-251-1/+8
|
* [CI] Fix python black formatting.Fabio Alessandrelli2023-05-251-14/+25
|
* [macOS] Add support for universal builds.Fabio Alessandrelli2023-05-241-14/+44
| | | | | | Since the OpenSSL build system does not support macOS universal binaries, we first need to build the two libraries separately, then we join them together using lipo.
* Workaround incorrect CC for 3.x mingw builds.Fabio Alessandrelli2023-02-061-0/+8
|
* Update to Godot 4.0-beta11, libdatachannel v0.18.1Fabio Alessandrelli2023-01-121-5/+0
| | | | Also update godot-cpp-3.x for better cache support.
* [SCons] Refactor build tools.Fabio Alessandrelli2022-12-301-28/+6
| | | | Split dependency builders into separate tools, optimize OpenSSL builds.
* Bump godot-cpp to beta8, libdatachannel to v0.18.0Fabio Alessandrelli2022-12-101-1/+1
| | | | | | | | | libdatachannel and libjuice are now released under MPL 2.0. Dependencies has been refactored under a `thirdparty` folder similar to what we have in Godot, with a dedicated `thirdparty/README.md` containing details information on dependencies upstreams, versions, and licenses.
* [SCons] Fix caching and path detection.Fabio Alessandrelli2022-11-281-5/+15
| | | | | | | | | | | Add version file depenencies to SSL and RTC targets. Disable OpenSSL caching since it causes issues as it doesn't properly cache generated header files. Add hack to prepend PATH and few other vars (should probably be added to upstream godot-cpp), and clone scons envs when building ssl/rtc (so that PATHs are properly setup).
* [Upstream] Update to Godot beta 3.Fabio Alessandrelli2022-10-171-13/+23
| | | | | | | Update build targets. Move release script out of CI yaml. Disable debug CI builds for Godot 3.x since they are mostly used for debugging the extension itself.
* [CI] Update actions, add cache for faster builds.Fabio Alessandrelli2022-10-161-0/+5
|
* Update sources to alpha16Fabio Alessandrelli2022-09-111-0/+7
|
* Bump godot-cpp to alpha11.Fabio Alessandrelli2022-07-061-6/+2
|
* [Windows] Fix windows build with mingw.Fabio Alessandrelli2022-06-181-0/+4
| | | | | | | | Forces ".dll" extension for library when building with mingw. Override GDN_EXPORT which is incorrectly defined in the upstream gdnative headers (3.x) and godot-cpp include (4.0) when building for windows with mingw.
* Use libdatachannel library, add Godot 4 support.Fabio Alessandrelli2022-06-151-344/+90
|
* Add OSX arm64 build.Fabio Alessandrelli2021-07-111-2/+10
| | | | | Needs a more recent revision of godot-cpp, but can still use godot-headers from 3.2 . See CI script update for details.
* run black -l 120 on SConstruct.Fabio Alessandrelli2021-07-091-181/+206
|
* Fix osx, android optimization flags.Fabio Alessandrelli2021-07-021-2/+12
| | | | Will need to be also fixed in upstream godot-cpp.
* Bump webrtc to branch-heads/4472.Fabio Alessandrelli2021-07-021-2/+2
|
* Update godot-cpp to tip of 3.2 branch.Fabio Alessandrelli2021-07-021-1/+1
|
* Add mac and ios platforms. Fix GDNLibrary.Fabio Alessandrelli2021-07-011-5/+85
|
* Merge pull request #24 from rondao/add_android_build_supportFabio Alessandrelli2021-07-011-5/+92
|\ | | | | Add build support for Android
| * Add build support for AndroidRafael Rondao2020-11-071-5/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | To build for Android, use platform=android. ANDROID_NDK_ROOT env variable needs to be defined. By default, it builds for armv7 with Api 18. To build for arm64v8 (or x86, x86_64), use android_arch=arm64v8. 64 bits requires at least Api level 21. If needed, you can change it with android_api_level=XX. Signed-off-by: Rafael Rondao <rafael.rondao@gmail.com>
* | Fix gdns generation with python3.Fabio Alessandrelli2021-05-051-1/+1
|/ | | | Python2 has reached end-of-life.
* Simplify webrtc lib folder structureFabio Alessandrelli2020-01-031-2/+2
|
* Use submodule for godot-cppFabio Alessandrelli2020-01-031-12/+7
|
* Build script also create gdnlibFabio Alessandrelli2020-01-031-17/+27
|
* Small build system improvementFabio Alessandrelli2019-05-161-1/+12
|
* Better flagsFabio Alessandrelli2019-04-171-2/+8
|
* Refactor SCons build scriptFabio Alessandrelli2019-04-171-16/+28
|
* Better output library nameFabio Alessandrelli2019-04-091-3/+6
|
* Fix name collision, scons file, final touchesFabio Alessandrelli2019-03-081-2/+2
|
* Import GSoC work to WebRTC GDNative implementationBrandon Makin2019-03-081-2/+2
|
* Fix mingw cross-buildFabio Alessandrelli2018-08-121-2/+2
|
* Add scons build fileFabio Alessandrelli2018-08-121-0/+140