summaryrefslogtreecommitdiffstats
path: root/SConstruct
Commit message (Collapse)AuthorAgeFilesLines
* Fix typos with codespellRémi Verschelde2019-05-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using codespell 1.15.0. Method: ``` $ cat > ../godot-word-whitelist.txt << EOF ang curvelinear doubleclick leapyear lod merchantibility nd numer ois ony que seeked synching te uint unselect webp EOF $ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po" $ git diff // undo unwanted changes ```
* Ignore a warning in _get_socket_error (-Wlogical-op).marxin2019-05-021-2/+2
| | | | | | | | | | | | | | drivers/unix/net_socket_posix.cpp: In member function 'NetSocketPosix::NetError NetSocketPosix::_get_socket_error()': drivers/unix/net_socket_posix.cpp:197:22: warning: logical 'or' of equal expressions [-Wlogical-op] 197 | if (errno == EAGAIN || errno == EWOULDBLOCK) | ^ and: modules/mono/utils/string_utils.cpp: In function 'int {anonymous}::sfind(const String&, int)': modules/mono/utils/string_utils.cpp:68:48: error: logical 'or' of collectively exhaustive tests is always true [-Werror=logical-op] found = src[read_pos] == 's' || (c >= '0' || c <= '4'); ~~~~~~~~~^~~~~~~~~~~
* SCons: Always use env.Prepend for CPPPATHRémi Verschelde2019-04-301-1/+1
| | | | | | 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-9/+11
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Android now (optionally) builds the template when exportingJuan Linietsky2019-04-071-28/+0
| | | | | Added new way to create add-ons Removed old way to create add-ons
* Merge pull request #27868 from marxin/add-more-warningsHein-Pieter van Braam2019-04-231-2/+9
|\ | | | | Add more warnings on top of -Wall and -Wextra.
| * Add more warnings on top of -Wall and -Wextra.marxin2019-04-101-2/+9
| |
* | Drop unused thekla_atlas dependencyRémi Verschelde2019-04-191-1/+0
|/ | | | | | | | Since f12cb82 @reduz dropped the use of the thirdparty thekla_atlas library, which is replaced by xatlas. Fixes #28180. Fixes #28182.
* Remove unused importsHendrikto2019-04-061-1/+0
|
* Fix -Wimplicit-fallthrough warnings from GCC 8Rémi Verschelde2019-04-051-3/+4
| | | | | | | | | | | | Adds `FALLTHROUGH` macro to specify when a fallthrough is intentional. Can be replaced by `[[fallthrough]]` if/when we switch to C++17. The warning is now enabled by default for GCC on `extra` warnings level (part of GCC's `-Wextra`). It's not enabled in Clang's `-Wextra` yet, but we could enable it manually once we switch to C++11. There's no equivalent feature in MSVC for now. Fixes #26135.
* SCons: add `methods.using_clang` to check used compilerRémi Verschelde2019-04-051-2/+2
| | | | | Also rename `use_gcc` to `using_gcc` to make it clear that it returns a config but does not alter it.
* Enable warnings=extra on clang and GCC testers.marxin2019-04-021-1/+6
| | | | And remove 2 warnings from warnings=extra.
* Fix -Wsign-compare warnings.marxin2019-02-271-3/+2
| | | | | I decided to modify code in a defensive way. Ideally functions like size() or length() should return an unsigned type.
* Several fixes to make GLES2 on HTML5 work much better.Juan Linietsky2019-02-251-0/+4
| | | | Changed math class error reporting to be a bit less paranoid.
* Merge pull request #26160 from marxin/come-up-with-use_gccHein-Pieter van Braam2019-02-251-1/+1
|\ | | | | Come up with use_gcc.
| * Come up with use_gcc.marxin2019-02-231-1/+1
| | | | | | | | Add new method. Fix wrong version condition for -fpie.
* | Add -Wwrite-strings into all and extra warnings.marxin2019-02-231-3/+4
|/
* Add -Wshadow=local to warnings and fix reported issues.marxin2019-02-201-3/+9
| | | | Fixes #25316.
* Merge pull request #25764 from akien-mga/scons-relative-importRémi Verschelde2019-02-101-10/+11
|\ | | | | SCons: Fix import clash between Godot and system modules
| * SCons: Fix import clash between Godot and system modulesRémi Verschelde2019-02-101-10/+11
| | | | | | | | | | | | | | | | See #24965 for details. `sys.path.insert` is hacky, but should work relatively well for both Python 2 and Python 3. When we eventually deprecate Python 2 support, we could look into using importlib. Fixes #24965.
* | SCons: Make MD5-timestamp decider and implicit_cache debug-onlyRémi Verschelde2019-02-101-7/+10
|/ | | | | | As advised by @bdbaddog in #25403, those options reduce the certainty that all everything will be rebuilt as it should, so they are not advised for release builds.
* Fix possible error in "disable_advanced_gui" flag's descriptionMichael Alexsander Silva Dias2018-12-211-1/+1
|
* Core: Drop unused global_defaults logicRémi Verschelde2018-12-201-4/+0
| | | | | It used to be used for Android and iOS to specify platform-specific project settings overrides, but we now have feature tags for that.
* SCons: Corrects $LIBSUFFIXES environment variable for WindowsErik2018-11-181-2/+7
| | | | | | Maxes only .lib to be recoginzed as a valid input extension for linker on Windows. Closes issue #23769.
* Merge pull request #23279 from marcelofg55/osx_serverRémi Verschelde2018-10-291-1/+4
|\ | | | | Server platform works on OS X too
| * Server platform works on OS X tooMarcelo Fernandez2018-10-291-1/+4
| |
* | Dont use equality operators with None singleton in python fileslupoDharkael2018-10-271-2/+2
|/
* SCons: Add 'werror' opt-in to treat warning as errorsRémi Verschelde2018-10-041-7/+13
| | | | | Also reorder advanced options to a more natural order, and fix MSVC warning when disabling warnings in secondary environment.
* SCons: Set default warnings level to all (-Wall or /W3)Rémi Verschelde2018-10-041-6/+3
|
* Fix some warnings raised by MSVC 2017Rémi Verschelde2018-10-031-2/+2
| | | | | | | | | | | | | | | | | Disabled signed/unsigned warnings like for GCC/Clang (warning C4018: '>=': signed/unsigned mismatch). Fixes the following MSVC 2017 warnings: ``` core\image.cpp(999): warning C4804: '>': unsafe use of type 'bool' in operation core\io\compression.cpp(178): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) editor\doc\doc_dump.cpp(226): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) scene/resources/material.h(289): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) scene/resources/material.h(298): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?) editor\editor_themes.cpp(379): warning C4805: '==': unsafe mix of type 'int' and type 'bool' in operation ```
* Disable forced inline when building in debug.Juan Linietsky2018-10-021-1/+2
|
* SCons: Remove avoidable defines from main env's CPPPATHRémi Verschelde2018-10-011-5/+2
| | | | | | Also finally move freetype to its own env and disable warnings for it. Still needs some work to fix the awkward situation of the freetype and svg modules used in scene/ and editor/ respectively.
* Added xatlas as alternative to thekla, forced it on.Juan Linietsky2018-09-291-0/+1
| | | | Did some hacks to it to avoid it from failing on bad geometry.
* SCons: Build thirdparty code in own env, disable warningsRémi Verschelde2018-09-281-0/+1
| | | | | Also remove unnecessary `Export('env')` in other SCsubs, Export should only be used when exporting *new* objects.
* Fix warnings for comparison between signed and unsigned integers ↵Rémi Verschelde2018-09-271-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [-Wsign-compare] Also turn off -Wsign-compare warnings in the future, we do not consider them important. Fixes the following GCC 5 warnings: ``` core/node_path.cpp:279:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] core/oa_hash_map.h:169:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] core/oa_hash_map.h:314:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] drivers/gles2/shader_gles2.cpp:985:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] drivers/gles3/rasterizer_storage_gles3.cpp:1075:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] drivers/pulseaudio/audio_driver_pulseaudio.cpp:343:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] editor/editor_plugin.cpp:525:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] editor/editor_properties_array_dict.cpp:747:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] editor/plugins/spatial_editor_plugin.cpp:2078:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] editor/plugins/spatial_editor_plugin.cpp:4096:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] editor/plugins/sprite_editor_plugin.cpp:100:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/cvtt/image_compress_cvtt.cpp:122:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/cvtt/image_compress_cvtt.cpp:134:77: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/cvtt/image_compress_cvtt.cpp:339:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/etc/image_etc.cpp:222:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/gdnative/register_types.cpp:242:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/gdnative/register_types.cpp:258:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/opensimplex/simplex_noise.cpp:200:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/opensimplex/simplex_noise.cpp:222:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] modules/opensimplex/simplex_noise.cpp:246:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] platform/android/export/export.cpp:1085:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] platform/android/export/export.cpp:1489:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] platform/android/export/export.cpp:1623:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] platform/iphone/export/export.cpp:206:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] platform/iphone/export/export.cpp:356:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] platform/iphone/export/export.cpp:406:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] platform/iphone/export/export.cpp:493:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] scene/3d/audio_stream_player_3d.cpp:420:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] scene/resources/audio_stream_sample.cpp:565:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] scene/resources/audio_stream_sample.cpp:571:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] servers/audio/audio_rb_resampler.cpp:156:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] ``` The following warnings were not fixed, as they implied casting for no gain: ``` core/io/packet_peer.cpp:228:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] core/io/resource_format_binary.cpp:109:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] drivers/gles2/rasterizer_scene_gles2.cpp:144:57: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] drivers/unix/file_access_unix.cpp:249:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] scene/3d/voxel_light_baker.cpp:889:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] scene/3d/voxel_light_baker.cpp:1020:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] scene/3d/voxel_light_baker.cpp:1154:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] scene/3d/voxel_light_baker.cpp:2255:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] scene/resources/bit_mask.cpp:336:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] servers/audio/audio_stream.cpp:141:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] servers/audio/audio_stream.cpp:150:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] servers/audio/audio_stream.cpp:154:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] servers/audio_server.cpp:86:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] servers/audio_server.cpp:89:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] ```
* Allow system certs file to be used by Editor.Fabio Alessandrelli2018-09-151-0/+1
| | | | | | Note, it will only used by the Editor, not when running the game. This allows package maintainer to compile Godot to use system installed certificates when accessing the AssetLib.
* Bundle SSL certs with the templates.Fabio Alessandrelli2018-09-151-0/+1
| | | | | | If this is undesired it can be avoided by specifying builtin_certs=no . Bundled SSL certs will be used unless you specify an override in: Project Settings -> SSL -> Certificates .
* Make core/ includes absolute, remove subfolders from include pathRémi Verschelde2018-09-121-1/+1
| | | | | | This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
* BuildSystem: Sort input file listsBernhard M. Wiedemann2018-08-291-1/+1
| | | | | | | | | | | | | | | | | so that godot package builds reproducibly in spite of indeterministic filesystem readdir order and http://bugs.python.org/issue30461 See https://reproducible-builds.org/ for why this is good. Sort font input file list, so that builtin_fonts.gen.h is created in a reproducible way Sort list of platforms, so that editor/register_exporters.gen.cpp is created in a reproducible way Sort list of source files, so that .a files and resulting godot binaries are created in a reproducible way
* Running builder (content generator) functions in subprocesses on WindowsViktor Ferenczi2018-07-271-2/+4
| | | | | | | | | | | | | | | | | | | | | - 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.
* SCons: Keep default platform lib extensions in LIBSUFFIXESRémi Verschelde2018-07-231-0/+5
| | | | | | | | We used to fully override the default lib extensions from LIBSUFFIXES, leading to issues such as #20045 where thirdparty libraries could not easily be linked unless they adopted Godot's platform/config suffix. Fixes #20045.
* SCons: Prevent using disable_3d or disable_advanced_gui with tools=yesRémi Verschelde2018-07-211-2/+10
| | | | | | | | Those make no sense for tools build, as the editor uses advanced GUI features heavily, and adding checks for 3D/physics features everywhere in the editor would be cumbersome (and error-prone). Fixes #1701.
* -Fix disable_3d flagJuan Linietsky2018-07-211-0/+1
| | | | -Add extra flag optimize=[size,speed] to be able to prioritize size
* added 'android_add_asset_dir('...') method to Android module gradle build configPatrick Kaster2018-07-051-0/+2
| | | | (cherry picked from commit 9190ae2be7068c8a84f60766a2f7c1da3e0bcd4b)
* add NoCache wrapper to CommandRhody Lugo2018-06-211-0/+1
|
* Tweak some help texts in the build systemHugo Locurcio2018-06-071-61/+33
| | | | | This also removes `unix_global_settings_path` from SConstruct since it is no longer used.
* SCons: Allow unbundling libwebsockets and miniupnpcRémi Verschelde2018-06-071-2/+3
|
* Merge pull request #18780 from mhilbrunner/upnpFabio Alessandrelli2018-06-071-0/+1
|\ | | | | Add UPnP support (port forwarding, querying external IP)
| * Add UPnP support (port forwarding, querying external IP)mhilbrunner2018-06-071-0/+1
| |
* | SCons: Pass env to modules can_build methodRémi Verschelde2018-05-301-1/+11
|/ | | | | | This allows to disable modules based on the environment, in particular `env[tools]` which tells us if we are building the editor or not.