summaryrefslogtreecommitdiffstats
path: root/modules/websocket/SCsub
Commit message (Collapse)AuthorAgeFilesLines
* SCons: Add unobtrusive type hints in SCons filesThaddeus Crews2024-09-251-0/+1
|
* UWP: Remove platform port, needs to be redone from scratch for 4.xRémi Verschelde2023-09-071-1/+1
| | | | | | | | | | | The UWP platform port was never ported to the Godot 4.0+ API, and it's now accumulating bitrot as it doesn't compile, and thus we no longer propagate platform changes in it. So we finally remove to acknowledge this state. There's still some interest in reviving the UWP port eventually, especially as support for Direct3D 12 will soon be merged, but when that happens it will be easiest to redo it from scratch.
* SCons: Unify tools/target build type configurationRémi Verschelde2022-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements https://github.com/godotengine/godot-proposals/issues/3371. New `target` presets ==================== The `tools` option is removed and `target` changes to use three new presets, which match the builds users are familiar with. These targets control the default optimization level and enable editor-specific and debugging code: - `editor`: Replaces `tools=yes target=release_debug`. * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2` - `template_debug`: Replaces `tools=no target=release_debug`. * Defines: `DEBUG_ENABLED`, `-O2`/`/O2` - `template_release`: Replaces `tools=no target=release`. * Defines: `-O3`/`/O2` New `dev_build` option ====================== The previous `target=debug` is now replaced by a separate `dev_build=yes` option, which can be used in combination with either of the three targets, and changes the following: - `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`), enables generating debug symbols, does not define `NDEBUG` so `assert()` works in thirdparty libraries, adds a `.dev` suffix to the binary name. Note: Unlike previously, `dev_build` defaults to off so that users who compile Godot from source get an optimized and small build by default. Engine contributors should now set `dev_build=yes` in their build scripts or IDE configuration manually. Changed binary names ==================== The name of generated binaries and object files are changed too, to follow this format: `godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]` For example: - `godot.linuxbsd.editor.dev.arm64` - `godot.windows.template_release.double.x86_64.mono.exe` Be sure to update your links/scripts/IDE config accordingly. More flexible `optimize` and `debug_symbols` options ==================================================== The optimization level and whether to generate debug symbols can be further specified with the `optimize` and `debug_symbols` options. So the default values listed above for the various `target` and `dev_build` combinations are indicative and can be replaced when compiling, e.g.: `scons p=linuxbsd target=template_debug dev_build=yes optimize=debug` will make a "debug" export template with dev-only code enabled, `-Og` optimization level for GCC/Clang, and debug symbols. Perfect for debugging complex crashes at runtime in an exported project.
* [Web] Rename JavaScript platform to Web.Fabio Alessandrelli2022-08-291-1/+1
| | | | Also rename export name from "HTML5" to "Web".
* Modules: Don't build editor-specific classes in templatesRémi Verschelde2022-03-281-0/+2
| | | | | They're moved to an `editor` subfolder so that we can easily handle them separately.
* wslay: Sync with upstream 45d22583bRémi Verschelde2021-11-191-2/+1
| | | | | | | https://github.com/tatsuhiro-t/wslay/commit/45d22583b488f79d5a4e598cc7675c191c5ab53f Mostly style changes, a couple new methods and fixes. Tweak file structure a bit.
* SCons: Add explicit dependencies on thirdparty code in cloned envRémi Verschelde2020-12-181-8/+24
| | | | | | | | | | | | | | Since we clone the environments to build thirdparty code, we don't get an explicit dependency on the build objects produced by that environment. So when we update thirdparty code, Godot code using it is not necessarily rebuilt (I think it is for changed headers, but not for changed .c/.cpp files), which can lead to an invalid compilation output (linking old Godot .o files with a newer, potentially ABI breaking version of thirdparty code). This was only seen as really problematic with bullet updates (leading to crashes when rebuilding Godot after a bullet update without cleaning .o files), but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.
* [HTML5] Port JavaScript inline code to libraries.Fabio Alessandrelli2020-11-101-3/+5
| | | | | | | | | The API is implemented in javascript, and generates C functions that can be called from godot. This allows much cleaner code replacing all `EM_ASM` calls in our C++ code with plain C function calls. This also gets rid of few hacks and comes with few optimizations (e.g. custom cursor shapes should be much faster now).
* SCons: Format buildsystem files with psf/blackRémi Verschelde2020-03-301-3/+3
| | | | | | | | | | | | | | | | | | | | | 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.
* Remove libwebsocket. No longer used, yay!Fabio Alessandrelli2019-07-041-86/+4
|
* WebSocket module now uses wslay library.Fabio Alessandrelli2019-07-041-2/+21
| | | | | | | | | | Both client and server are supported on native builds (as usual). SSL server is still not supported, but will soon be possible with this new library. The API stays the same, we just need to work out potential issues due to this big library switch.
* SCons: Use CPPDEFINES instead of CPPFLAGS for pre-processor definesRémi Verschelde2019-07-031-1/+1
| | | | | | | | It's the recommended way to set those, and is more portable (automatically prepends -D for GCC/Clang and /D for MSVC). We still use CPPFLAGS for some pre-processor flags which are not defines.
* Revert "Update libwebsockets to 3.1 (plus UWP patch)"Fabio Alessandrelli2019-05-011-61/+56
| | | | This reverts commit 90210c48627692d281554d6185b5db17a86c852a.
* SCons: Always use env.Prepend for CPPPATHRémi Verschelde2019-04-301-3/+3
| | | | | | 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).
* SCons: Review uses of CCFLAGS, CXXFLAGS and CPPFLAGSRémi Verschelde2019-04-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Many contributors (me included) did not fully understand what CCFLAGS, CXXFLAGS and CPPFLAGS refer to exactly, and were thus not using them in the way they are intended to be. As per the SCons manual: https://www.scons.org/doc/HTML/scons-user/apa.html - CCFLAGS: General options that are passed to the C and C++ compilers. - CFLAGS: General options that are passed to the C compiler (C only; not C++). - CXXFLAGS: General options that are passed to the C++ compiler. By default, this includes the value of $CCFLAGS, so that setting $CCFLAGS affects both C and C++ compilation. - CPPFLAGS: User-specified C preprocessor options. These will be included in any command that uses the C preprocessor, including not just compilation of C and C++ source files [...], but also [...] Fortran [...] and [...] assembly language source file[s]. TL;DR: Compiler options go to CCFLAGS, unless they must be restricted to either C (CFLAGS) or C++ (CXXFLAGS). Preprocessor defines go to CPPFLAGS.
* Update libwebsockets to 3.1 (plus UWP patch)Fabio Alessandrelli2019-03-061-56/+61
|
* SCons: Build thirdparty code in own env, disable warningsRémi Verschelde2018-09-281-18/+17
| | | | | Also remove unnecessary `Export('env')` in other SCsubs, Export should only be used when exporting *new* objects.
* Rebase patches for fixing haiku build.Adrien Destugues2018-08-111-82/+83
|
* Bump libwebsockets to version 3.0.0Fabio Alessandrelli2018-06-071-34/+44
|
* Thirdparty: Fill copyright for lws, miniupnpc, clipperRémi Verschelde2018-06-071-2/+2
| | | | | | Rename `lws` to `libwebsockets` which is its library name. Add missing license file for mbedtls.
* Remove unneeded and problematic minilex.c from lws.Fabio Alessandrelli2018-03-011-1/+0
| | | | We don't need it, it's used upstream to test the lexical parser
* Use Prepend instead of Append for mbedTLS includeFabio Alessandrelli2018-02-281-2/+2
| | | | Fixes build on FreeBSD when system-wide mbedTLS and/or openSSL are installed
* Websocket module properly recognize UWP (by @vnen)George Marques2018-02-201-2/+5
|
* Allow building with system wide mbedtls on X11Fabio Alessandrelli2018-02-141-2/+3
| | | | | Using builtin_mbedtls=yes is still the default as many distributions do not ship with mbedtls included.
* lws module now uses mbedtls as OpenSSL replacementFabio Alessandrelli2018-02-141-3/+13
|
* Add websocket module.Fabio Alessandrelli2018-02-061-0/+70
Webassembly is client-only for obvious reasons. Other platforms support both client and server using libwebsockets.