Commit Graph

342 Commits

Author SHA1 Message Date
Rémi Verschelde 7d392cd6f4 SCons: Allow unbundling libwebsockets and miniupnpc 2018-06-07 10:42:30 +02:00
Fabio Alessandrelli b4c65093d7
Merge pull request #18780 from mhilbrunner/upnp
Add UPnP support (port forwarding, querying external IP)
2018-06-07 02:10:48 +02:00
mhilbrunner c21da40de5 Add UPnP support (port forwarding, querying external IP) 2018-06-07 01:52:04 +02:00
Rémi Verschelde 3334209a73 SCons: Pass env to modules can_build method
This allows to disable modules based on the environment,
in particular `env[tools]` which tells us if we are
building the editor or not.
2018-05-30 19:11:36 +02:00
Leon Krause d8d9eea722 Refactor JavaScript platform build script 2018-03-26 19:46:56 +02:00
Rémi Verschelde 955397dfd5
Merge pull request #17194 from garyo/scons_find_msvc
Enable SCons to autodetect Windows MSVC compiler
2018-03-14 21:27:00 +01:00
Rémi Verschelde a44f9ca545 SCons: Fix running 'scons' without platform argument
The cache and progress logic assumed the 'env' to be defined,
but it is only when the selected platform is in the supported list.

Fixes #17497.
2018-03-14 15:25:59 +01:00
Gary Oberbrunner d1318ee12c Enable SCons to autodetect Windows MSVC compiler
SCons has good compiler detection logic for MSVC compilers. Up to now,
Godot hasn't used it; it depends on passed-in OS environment vars from
a specific Visual Studio cmd.exe windows. This makes it harder to
build from a msys or cygwin shell.

This change allows SCons to autodetect Visual Studio unless it sees
VCINSTALLDIR in the os.environ. It also adds a 'msvc_version' arg for
manual specification of compiler version, and uses the existing 'bits'
arg to specify the target architecture. More detail could be added as
desired. It also adds 'use_mingw' to always use mingw, even if Visual
Studio is installed. That uses the existing mingw setup logic.

If people are used to building Godot in a Visual Studio cmd window,
this should not change the behavior in that case, since VCINSTALLDIR
will be set in those windows. (However, note that you could now unset
that var and build with any other MSVC version or target arch, even in
that window.)

I refactored much of platform/windows/detect.py during this, to
simplify and clarify the logic. I also cleaned up a bunch of env var
settings in windows/detect.py and SConstruct to use modern SCons
idioms and simplify things.

I suspect this will also enable using the Intel compiler on Windows,
though that hasn't been tested.
2018-03-13 09:51:05 -04:00
Viktor Ferenczi f0b4921695 Avoid confusing traceback on attempting build without platform option
A traceback is printed on invoking scons without the compulsory
platform option. This is confusing, since the problem is not in
the code. Fix is to explicitly exit from the build right after
printing the error message, so the missing env variable cannot
cause the traceback later.

Fixes #17414
2018-03-10 15:13:01 +01:00
Rhody Lugo 29e6ec6594 prune cache only at the start and end of build 2018-03-02 01:24:33 -04:00
karroffel ccc6897215 fix accidental SConstruct reverts
as introduced by 29215b2
2018-03-01 17:04:48 +01:00
karroffel eac4c984df add GLES 2 renderer for 2D
This commit adds a new rendering backend, GLES2, and adds a
project setting to enable it.

Currently this backend can only be used on the X11 platform,
but integrating into other platforms is planned.
2018-03-01 15:12:30 +01:00
bruvzg 5ec09455ed
Abort compilation on missing return values (CGG/clang) 2018-02-22 11:23:05 +02:00
Rémi Verschelde 1602e0cdb9 SCons: Remove references to obsolete "fat" bits 2018-02-19 23:39:56 +01:00
Fabio Alessandrelli 8699f643c9 Disable GLES builders and source from server compilation 2018-02-15 07:34:11 -08:00
Michael Alexsander Silva Dias b92c5669de Fixed small typos in the SConstruct file. 2018-02-14 12:20:58 -02:00
Fabio Alessandrelli bd3c27ba78 Allow building with system wide mbedtls on X11
Using builtin_mbedtls=yes is still the default as many distributions
do not ship with mbedtls included.
2018-02-14 01:34:25 +01:00
Fabio Alessandrelli 6fcc8b7e1f Deleting OpenSSL module and library 2018-02-14 01:26:34 +01:00
Will Nations a025ca5fc6 Include .hpp files in VS scons builds. Fixed Typo. 2018-01-18 22:16:11 -06:00
Ariel Manzur 9d98e6d2e4 adding option to split modules library 2018-01-18 21:27:57 -03:00
Hugo Locurcio bf32d36230
Disable colored output and progress bar when building outside of a TTY
This makes the output more readable if it is written to a file,
and more compact in continuous integration environments, keeping
the log sizes low.

This commit also adds myself to .mailmap.
2018-01-13 17:56:41 +01:00
Rémi Verschelde e141845bfb SCons: Allow unbundling bullet on Linux (only 2.87+) 2018-01-13 15:16:22 +01:00
Rémi Verschelde db49f35ab8 SCons: Fix usage of LD when we meant LINK
Also made LINK and CXXFLAGS configurable as command line options.
Note that LINK currently expects the *compiler* that will be used
for linking and will call its configured linker behind the scenes
(so g++, clang++, etc., not ld.gold). See #15364 for details.
2018-01-05 20:37:45 +01:00
Juan Linietsky 021f3c924b -Removed OpenMP support, replaced by a custom class.
-Disabled Opus, implementation is wrong.
2017-12-24 09:32:12 -03:00
Andreas Haas 63658fecfc
Scons: Use module suffix only for final binary.
Only append the module suffixes to the resulting binary instead of all object files.
That means we can keep most of our build artifacts when toggling modules like mono.
2017-12-21 18:52:17 +01:00
Rhody Lugo b40259096c sort by the most recently accessed files 2017-12-18 22:17:38 -04:00
Juan Linietsky cf84ee22a9 Added custom editor splash (including sponsor logo). 2017-12-16 16:11:13 -03:00
bruvzg 0571a36152
MacPorts clang version selection, and OpenMP linking fix. 2017-12-14 20:41:50 +02:00
bruvzg f8303ec6fb
Adds `macports_clang` build flag to build using clang-5.0 form MacPorts (with OpenMP support). 2017-12-14 16:44:45 +02:00
Juan Linietsky f3ad14224e -Add lightmapper
-Fixes to unwrapper (remove degenerates), makes Thekla not crash
-Added optional cancel button in EditorProgress
-Added function to force processing of events (needed for cancel button)
2017-12-14 09:01:27 -03:00
Hein-Pieter van Braam bf05309af7 Import thekla_atlas
As requested by reduz, an import of thekla_atlas into thirdparty/
2017-12-08 15:47:15 +01:00
Rhody Lugo a65c0939fd disable caching for targets using helper functions 2017-11-28 23:24:12 -04:00
Rhody Lugo a4a222d62d use the same cache for all branches for appveyor 2017-11-28 03:23:33 -04:00
Rhody Lugo 1272497fec prune scons shared cache 2017-11-27 01:43:10 -04:00
Rhody Lugo 428b6a308e add support for scons cache and enable it for appveyor 2017-11-25 22:15:22 -04:00
Matthias Hoelzl c6cfbad47a Add explicit exception model flag for Visual C++ 2017-11-21 19:06:43 +01:00
Matthias Hoelzl 589976321c Add cpp.hint file to improve IntelliSense 2017-11-19 21:01:05 +01:00
Rémi Verschelde 992a40a50d
Merge pull request #12961 from eska014/platform-doc
Facilitate documenting platform-exclusive classes
2017-11-19 16:19:47 +01:00
Leon Krause 63b1a096eb Facilitate exposing platform-exclusive interfaces to all platforms
This makes the interfaces available, without implementation, in other
platforms and the editor, which facilitates documenting platform-exclusive
classes.

Platform-exclusive APIs must be set up in platform/<platform>/api/api.cpp.
Provide noop method-implementations where necessary.

Also setup and document the HTML5 platform's JavaScript singleton.
2017-11-18 03:54:21 +01:00
Roy Berube b361f371f1 Cleanup of Visual Studio project generation (#12929)
Visual studio project file creation had some problems. Files with c extension were listed with cpp extension. Some include files that did not exist were added to the project.
This change ensures a file exists before adding it to the project.
2017-11-16 16:37:02 +01:00
Rémi Verschelde ed2b66f023 Improve code style of generated headers 2017-11-15 21:29:34 +01:00
George Marques f6232efed9
Remove leading newline in SConstruct
Some editors don't recognize the shebang if it's not on the first line.
2017-11-13 02:04:18 -02:00
Rémi Verschelde cefdb34f6c SCons: make use_lto a global option and opt-in for iphone
Supersedes #12553, see discussion in #12552.
2017-11-02 09:11:50 +01:00
Juan Linietsky 79f81b77e2 -Modules can now add custom version info (added it for Mono)
-Version string takes this version info
-Ability to download templates from the interweb (listing does not work yet)
2017-11-01 23:13:27 -03:00
Ramesh Ravone a4cee286e6
flatDir support [Android] 2017-10-07 15:10:17 +05:30
Ignacio Etcheverry d5caf71c3f Fix SConstruct check for config.is_enabled() 2017-10-03 00:01:30 +02:00
Andreas Haas 31c14432b8 Merge pull request #11753 from Listwon/Intellisense
Fix IntelliSense
2017-10-02 22:28:37 +02:00
neogaston eaa965d5ef Indentation Error
TabError: inconsistent use of tabs and spaces in indentation

was fixed
2017-10-02 00:04:11 -05:00
Bartłomiej T. Listwon 936f63a2dd Fix IntelliSense
Fix the CPPPATH passed to MSVSProject. Uses SCons Dir() function to convert "#" paths http://www.scons.org/doc/0.97/HTML/scons-user/a3414.html#CV-CPPPATH
2017-10-01 17:08:21 +02:00
Juan Linietsky d3345121cc Ability to set a module enabled/disabled by default by adding is_enabled() to config.py 2017-10-01 08:52:11 -03:00
Elliott Sales de Andrade 5be675eb03 Use BoolVariable for module options. 2017-09-25 14:36:30 -04:00
Elliott Sales de Andrade 45a9a680a3 Use BoolVariable for third-party options. 2017-09-25 14:36:30 -04:00
Elliott Sales de Andrade ffab67b8da Use BoolVariable in target/component/advanced options. 2017-09-25 14:36:02 -04:00
Elliott Sales de Andrade f9e463bce2 Use EnumVariable for choice-based build options. 2017-09-25 14:36:01 -04:00
Elliott Sales de Andrade ba0dcbbdc3 Bump required scons version to 0.98.1.
* Environment.AddPostAction() and the global AlwaysBuild() were added in
  0.93, so requiring 0.14 is broken.
* Environment.Decider and Glob were added in some intermediate 0.97
  release.
* The Variables object was added in 0.98.1.
2017-09-24 22:39:35 -04:00
Elliott Sales de Andrade a408388623 Enable building against system zstd. 2017-09-23 23:46:47 -04:00
Matthias Hoelzl f3745a23be Fix errors in Python 3 build 2017-09-16 04:18:14 +02:00
Rémi Verschelde cc7c892bca Merge pull request #11160 from marcelofg55/drive_funcs_x11
Implemented DirAccess get_drive and get_drive_count for Linux
2017-09-13 20:04:54 +02:00
Rémi Verschelde 27ae3c839d Merge pull request #7908 from SaracenOne/recast
In-editor navmesh generation.
2017-09-13 19:22:29 +02:00
Juan Linietsky 4f929a0fdf Changed the doc class generation to individual files per class. It is also possible to save module files in module directories and the build system will
recognize them.
2017-09-12 17:45:41 -03:00
Marcelo Fernandez 8f133e2c4d Added check_c_headers to SCons env to check for the existence of headers 2017-09-12 12:00:14 -03:00
Saracen 92e77d5ff2 Recast integration. 2017-09-04 21:41:57 +01:00
Rémi Verschelde 0cee288c11 Merge pull request #10148 from leezh/pcre2
Replacement of internal RegEx with PCRE2
2017-08-31 11:56:19 +02:00
Matthias Hoelzl cecff2dc74 Generate project files for VS2017 2017-08-29 16:53:46 +02:00
Matthias Hoelzl b6e1e47e3a Make build scripts Python3 compatible
- The Windows, UWP, Android (on Windows) and Linux builds are
  tested with Scons 3.0 alpha using Python 3.
- OSX and iOS should hopefully work but are not tested since
  I don't have a Mac.
- Builds using SCons 2.5 and Python 2 should not be impacted.
2017-08-27 23:05:39 +02:00
Zher Huei Lee e3e2f06324 Replacement of internal RegEx with PCRE2
The pattern and replacement matching behaviour has been changed purely
due to the nature of switching to a standards-compliant library.

One mistake in the previous behaviour was that named groups didn't have
a number. This has been corrected.

As names are actually just an alias of numbered groups,
RegExMatch::get_name_dict() is now get_names() and is a dict
referring to the group number it represents.

Duplicate names are enabled and the with the first matching instance
used.

Due the lack of a suitable equivalent in PCRE2, RegExMatch::expand() was
removed.
2017-08-19 19:29:14 +08:00
Marcelo Fernandez 6adeeeb848 Fix scons failing when not building sources 2017-08-03 11:53:16 -03:00
Brent Taylor 7121228818 BUGFIX: Check for "VCINSTALLDIR" environment variable instead of "VSINSTALLDIR". 2017-07-27 21:39:49 -07:00
L. Krause b0e387a012 Fix building HTML5 when cmd.exe is set up for MSVC 2017-07-22 15:57:40 +02:00
Juan Linietsky 2e73be99d8 Lots of work on Audio & Physics engine:
-Added new 3D stream player node
-Added ability for Area to capture sound from streams
-Added small features in physics to be able to properly guess distance to areas for sound
-Fixed 3D CollisionObject so shapes are added the same as in 2D, directly from children
-Fixed KinematicBody API to make it the same as 2D.
2017-07-15 08:32:34 -03:00
Timo Schwarzer f93bb4f458 Add options for more human-friendly build output 2017-07-11 19:46:23 +02:00
George Marques 79815a48da
Increase SCons rebuild speed 2017-07-07 13:00:27 -03:00
Poommetee Ketson e3998528e0 BuildSystem: generated files have .gen.extension 2017-06-25 07:55:01 +07:00
Pedro J. Estébanez d46e246d0f Rework warning levels
Now you have: extra, all (the default), moderate, no.
The old 'yes' option is still supported, but a warning will be printed and 'all' will be assumed.

The different options will translate to the following:

MSVC:
extra -> /Wall (implies /W4)
all -> /W3 + disable non-essential (*)
moderate -> /W2 + disable non-essential (*)
no -> /w

GCC/Clang:
extra -> -Wall -Wextra
all -> -Wall
moderate -> -Wall -Wno-unused
no -> -w

* = Truncations, narrowing conversions...: /wd4267 /wd4244 /wd4305 /wd4800
2017-05-27 02:30:27 +02:00
Juan Linietsky fccf2816d4 -Fix eternal black screen on Windows
-Disabled warnings on windows, need to properly set up warnings
2017-04-09 17:59:17 -03:00
Rémi Verschelde d8f32637be SCons: Add option to toggle warnings (on by default)
All the warnings are factored out of the platform-specific files and moved to
SConstruct. Will have to check that it does not introduce regressions on some
platforms/compilers.

(cherry picked from commit 31107daa1a)
2017-03-26 21:58:37 +02:00
Rémi Verschelde debeee56f7 Fix typos in source code using codespell
From https://github.com/lucasdemarchi/codespell
2017-03-24 21:45:31 +01:00
Ramesh Mani Maran 27c7d253aa android: adding classpath and gradle plugins 2017-03-18 10:27:30 +01:00
Rémi Verschelde 49c065d29c Refactoring: rename tools/editor/ to editor/
The other subfolders of tools/ had already been moved to either
editor/, misc/ or thirdparty/, so the hiding the editor code that
deep was no longer meaningful.
2017-03-05 14:21:25 +01:00
Rémi Verschelde b87a232668 Reorder the folders in tools to prepare moving tools/editor
- `certs` and `editor_fonts` go to `thirdparty`
- `dist` and `scripts` go to a new `misc` folder
- `collada` and `doc` go to `tools/editor`

The next step will be to rename `tools/editor` to `editor` directly,
but this will be done at the right time to avoid breaking too many PRs.
2017-02-09 00:08:27 +01:00
Rémi Verschelde 41821ba11d Remove libmpcdec bundled lib, no longer used
Musepack support was removed in 857c50db70.
2017-01-11 22:40:51 +01:00
Rémi Verschelde 790f629e5e Move core engine tests to core/ 2017-01-08 14:08:18 +01:00
Rémi Verschelde 2a38a5eaa8 Remove bundled glew, obsoleted by glad
Also make Haiku load the glad header for GLES3 too,
though I haven't test it.
2017-01-06 22:56:51 +01:00
Rémi Verschelde 3f3f5a5359 Merge remote-tracking branch 'origin/gles3' into gles3-on-master
Various merge conflicts have been fixed manually and some mistakes
might have been made - time will tell :)
2017-01-02 21:52:26 +01:00
Rémi Verschelde cc95d4448c scons: Reorder options for clarity
Also prefix all thirdparty-related toggles with `builtin`.
2016-11-03 07:45:08 +01:00
Rémi Verschelde f34151ff0f style: Various other PEP8 fixes in Python files
Done with `autopep8 --select=E7`, fixes:

- E701 - Put colon-separated compound statement on separate lines.
- E702 - Put semicolon-separated compound statement on separate lines.
- E703 - Put semicolon-separated compound statement on separate lines.
- E711 - Fix comparison with None.
- E712 - Fix (trivial case of) comparison with boolean.
- E713 - Fix (trivial case of) non-membership check.
- E721 - Fix various deprecated code (via lib2to3).
2016-11-01 00:35:16 +01:00
Rémi Verschelde 817dd7ccbb style: Fix PEP8 blank lines issues in Python files
Done with `autopep8 --select=E3,W3`, fixes:

- E301 - Add missing blank line.
- E302 - Add missing 2 blank lines.
- E303 - Remove extra blank lines.
- E304 - Remove blank line following function decorator.
- E309 - Add missing blank line.
- W391 - Remove trailing blank lines.
2016-11-01 00:35:16 +01:00
Rémi Verschelde d4c17700aa style: Fix PEP8 whitespace issues in Python files
Done with `autopep8 --select=E2,W2`, fixes:

- E201 - Remove extraneous whitespace.
- E202 - Remove extraneous whitespace.
- E203 - Remove extraneous whitespace.
- E211 - Remove extraneous whitespace.
- E221 - Fix extraneous whitespace around keywords.
- E222 - Fix extraneous whitespace around keywords.
- E223 - Fix extraneous whitespace around keywords.
- E224 - Remove extraneous whitespace around operator.
- E225 - Fix missing whitespace around operator.
- E226 - Fix missing whitespace around operator.
- E227 - Fix missing whitespace around operator.
- E228 - Fix missing whitespace around operator.
- E231 - Add missing whitespace.
- E231 - Fix various deprecated code (via lib2to3).
- E241 - Fix extraneous whitespace around keywords.
- E242 - Remove extraneous whitespace around operator.
- E251 - Remove whitespace around parameter '=' sign.
- E261 - Fix spacing after comment hash.
- E262 - Fix spacing after comment hash.
- E265 - Format block comments.
- E271 - Fix extraneous whitespace around keywords.
- E272 - Fix extraneous whitespace around keywords.
- E273 - Fix extraneous whitespace around keywords.
- E274 - Fix extraneous whitespace around keywords.
- W291 - Remove trailing whitespace.
- W293 - Remove trailing whitespace.
2016-11-01 00:35:16 +01:00
Rémi Verschelde 97c8508f5e style: Start applying PEP8 to Python files, indentation issues
Done with `autopep8 --select=E1`, fixes:

- E101 - Reindent all lines.
- E112 - Fix under-indented comments.
- E113 - Fix over-indented comments.
- E115 - Fix under-indented comments.
- E116 - Fix over-indented comments.
- E121 - Fix a badly indented line.
- E122 - Fix a badly indented line.
- E123 - Fix a badly indented line.
- E124 - Fix a badly indented line.
- E125 - Fix indentation undistinguish from the next logical line.
- E126 - Fix a badly indented line.
- E127 - Fix a badly indented line.
- E128 - Fix a badly indented line.
- E129 - Fix a badly indented line.
2016-11-01 00:33:51 +01:00
Rémi Verschelde c6c13eb8fc Merge pull request #6490 from zaps166/webm-pr
Add WebM support
2016-10-30 18:12:00 +01:00
Rémi Verschelde 1944635ac4 Merge pull request #6959 from RandomShaper/fix-big-libs
Adopt simpler strategy for big libs on Windows
2016-10-30 17:35:37 +01:00
Rémi Verschelde e34a5324c8 scons: Move lib splitting method to methods.py
Apparently it might still be necessary for some console ports.
2016-10-30 17:04:07 +01:00
yg2f f7773d499d fix bug introduced by #6501
( @Akien : this PR is for current HEAD only, not to be cherry-picked for 2.1.1 )

this is manual revertion of #6501 which introduced a bug that prevented
scons from detecting Mingw under Windows when MSVC was installed.
(thanks to @vnen for finding this)

AND
it fixes the actual bug that prevented scons from detecting MSVC standalone
compiler ( a confusions between ``VSINSTALLDIR`` and ``VCINSTALLDIR`` )

The freeware Standalone MSVC C++ Build Tools are available here :
http://landinghub.visualstudio.com/visual-cpp-build-tools
2016-10-26 19:29:30 +02:00
Błażej Szczygieł d710b265f8 Add WebM module
Use already existing libraries: libvorbis and libopus. Also use newly
added libraries: libvpx, libwebm, libsimplewebm.
2016-10-23 02:46:06 +02:00
Błażej Szczygieł ace18d28d2 "CCFLAGS" are for C and C++ compiler 2016-10-22 17:28:10 +02:00
Rémi Verschelde ad07b31353 Merge pull request #6881 from vnen/msvc-project-output
Fix output binary paths for VS project generation
2016-10-22 13:07:37 +02:00
Rémi Verschelde ee6c5c5c23 Merge pull request #6858 from zaps166/gcc-color-output
SCons: Use colored output if available, change "colored"->"verbose"
2016-10-22 12:59:45 +02:00
Rémi Verschelde 3dd405c517 Merge pull request #6857 from zaps166/disable-asserts-in-release
Disable asserts in release mode
2016-10-22 12:55:21 +02:00
George Marques c8093678a0
Fix output binary paths for VS project generation 2016-10-20 19:02:10 -02:00
Rémi Verschelde c23e8797f1 Merge pull request #6855 from vnen/xaudio2-driver
Isolate XAudio2 driver
2016-10-18 07:22:10 +02:00
George Marques f3102160a1
Isolate XAudio2 driver
Now it's possible to compile for Windows platform if wanted. It's
supported only for Windows 8 or later, so it's not enabled by default.
2016-10-17 20:42:12 -02:00
Błażej Szczygieł 2bf4553fe0 SCons: Use colored output if available, change "colored"->"verbose" 2016-10-17 22:40:14 +02:00
Błażej Szczygieł 639ea563e0 Disable asserts in release mode 2016-10-17 20:31:01 +02:00
Rémi Verschelde e96c49f849 Merge pull request #6850 from akien-mga/pr-scsub-shebang
SCsub: Add python shebang as a hint for syntax highlighting
2016-10-17 20:13:18 +02:00
Rémi Verschelde fc8ccd5b8c SCsub: Add python shebang as a hint for syntax highlighting
Also switch existing shebangs to "better" /usr/bin/env python.
2016-10-17 20:10:46 +02:00
Błażej Szczygieł 4ffa8f224d Theora: Don't compile unnecessary files, rename "x86_opt_*" 2016-10-16 22:31:27 +02:00
Rémi Verschelde edbc0c0d0b freetype: Make it a module and split thirdparty library
Comment out the weird workaround for building on Windows at it might
not be needed anymore. Testing needed to confirm.
2016-10-15 18:10:17 +02:00
Rémi Verschelde cbf52606f4 zlib: Split thirdparty files, simplify scons option 2016-10-15 12:20:47 +02:00
Rémi Verschelde 36738ddda4 glew: Split thirdparty files and isolate env
Not fully happy about the way this one interacts with the various
platforms. Maybe the platform_config.h should be generated by the
SCsub instead of passing a define just to know where is the header.
2016-10-15 12:01:28 +02:00
Rémi Verschelde 8311a78df5 squish: Move to a module and split thirdparty lib 2016-10-15 12:01:28 +02:00
Rémi Verschelde 5c12c9e69b mpc: Move to a module and split thirdparty libmpcdec 2016-10-15 11:50:42 +02:00
Rémi Verschelde cfcc8a20e8 theora: Move to a module and split thirdparty lib
Same rationale as the previous commits.
2016-10-15 11:50:41 +02:00
Rémi Verschelde 422196759f openssl: Move to a module and split thirdparty lib
Same rationale as the previous commits.
2016-10-15 11:50:41 +02:00
Rémi Verschelde d9a291f641 ogg/vorbis/opus: Make them modules and unbundle thirdparty libs
Took the opportunity to undo the Godot changed made to the
opus source. The opus module should eventually be built in its
own environment to avoid polluting others with too many include
dirs and defines.

TODO: Fix the platform/ stuff for opus.
2016-10-15 11:50:40 +02:00
Rémi Verschelde ee3cf211c6 webp: Make it a module and unbundle libwebp thirdparty files
Note that there are two Godot-specific changes made to libwebp
for the javascript/HTML5 platform. They are documented in the
README.md.
2016-10-15 11:50:39 +02:00
Rémi Verschelde b1e8889d96 dds/etc1/pbm/pvr: Make those modules and split thirdparty files
They are not particularly packaged in Linux distros so we do not
facilitate unbundling via SCons. There could be done if/when there
is interest.

Also s/pnm/pbm/, long-lived typo :)
2016-10-15 11:50:39 +02:00
Rémi Verschelde c31ad71f10 enet: Split enet thirdparty files and allow unbundling
Building against shared libraries only implemented for Linux X11 so far.
TODO: Document Godot's modifications of upstream enet.
2016-10-15 11:50:39 +02:00
Rémi Verschelde 16ba665db6 jpg: Make it a module and split jpgd thirdparty files
Similar rationale as in previous commit.
2016-10-15 11:50:39 +02:00
Rémi Verschelde 5fef84a135 png: Split library to thirdparty dir and allow unbundling
Uses the new structure agreed upon in #6157, but the thirdparty/ folder
does not behave following a logic similar to that of modules/ yet.

The png driver can't be moved to a module as discussed in #6157, as it's
required by core together with a few other ImageLoader implementations
(see drivers/register_driver_types.cpp:register_core_driver_types())

Dropped the possibility to disable PNG support, it's a core component
of Godot.
2016-10-15 11:50:39 +02:00
Rémi Verschelde d3d0507c05 Remove speex support, it is obsoleted by opus
As mentioned by upstream, Xiph.Org [0]:
> The Speex codec has been obsoleted by Opus. It will continue to be
> available, but since Opus is better than Speex in all aspects,
> users are encouraged to switch.

[0] http://www.speex.org/
2016-10-13 18:58:56 +02:00
George Marques 4bdbafabce
Fix Android build detection on Windows 2016-10-09 16:23:27 -03:00
Juan Linietsky 22d83bc9f6 Begining of GLES3 renderer:
-Most 2D drawing is implemented
-Missing shaders
-Missing all 3D
-Editor needs to be set on update always to be used, otherwise it does not refresh
-Large parts of editor not working
2016-10-03 21:35:16 +02:00
Rémi Verschelde 9fce85f9d7 Merge pull request #6501 from SuperUserNameMan/windows_compile_with_standalone_msvc
scons detects standalone MSVC on Windows
2016-10-03 11:36:44 +02:00
Emmanuel Leblond cfd17de230 Add CC parameter to allow use of custom C compiler 2016-09-25 11:58:54 +02:00
yg2f 663d4ee7de scons detects standalone MSVC on Windows
Under Windows, Scons is now capable of detecting and compiling with
standalone MSVC compilers (aka "Visual C++ Build Tools").
http://landinghub.visualstudio.com/visual-cpp-build-tools

Tried with version 2015, and native x86 and x64 compilers under
Windows 10 pro 64 and Windows 8.1 64, with the default Win8 SDK
provided by the "Visual C++ Build Tools" web-installer.

Follow the same compiling instructions than for compiling with Visual
Studio, except that Visual Studio is no more required.

KNOWN ISSUES :
- ``methods.detect_visual_c_compiler_version()`` will emit a warning message
on computers where the ``VSINSTALLDIR`` environement variable is not present.
But it should compile just fine and still automatically detects the 32 or
64 bits according to the compiler you picked.

TODO :
- eventually, update ``platform/winrt/dectet.py`` with function
``methods.msvc_is_detected()`` and try to compile winrt/UWP with
these standalone compilers (if you did not select Win10 SDK when
installing the standalone tools, you can run it again).
- update doc to make users aware of "Visual C++ Build Tools" aka
"stadalone MSVC".
- eventually, update ``methods.detect_visual_c_compiler_version()``
2016-09-16 11:17:57 +02:00
volzhs 40d3234304 Add android_add_default_config for config.py
usage : env.android_add_default_config("applicationId 'com.godot.game'")
2016-07-07 04:03:50 +09:00
Juan Linietsky 5065e46381 Change method of storing folding, solves problems with inheritance, closes #3395 2016-06-28 13:10:15 -03:00
Juan Linietsky fb9d1498bf Cleaner way to enable ptrcall 2016-06-26 11:59:25 -03:00
Ariel Manzur 10c512e46d added "arch" parameter, made iphone use it to build isim 2016-06-23 07:41:54 +02:00
Juan Linietsky 94a6ff3d7a -make freetype build for all platforms the same, default as builtin except on x11.
closes #5119
2016-06-09 21:28:07 -03:00
Pedro J. Estébanez ad0af9d273 Keep the default environment variables as set by SCons 2016-06-06 13:49:28 +02:00
Aleksandar Danilovic ca876191e5 Fix MS Visual Studio build settings
NMake was not setup by the vsproj=yes compilation
parameter. After attempting other possible options,
this is the best fix for our current requirements.
Compiling via NMake is implementing an alternative
to SCons, so this fix escapes out of NMake
environment while also supporting different target
builds and IDE error list integration.

Also sets -j setting to 2 so that it's easy for
people to change it to a propper value and speed it
up a bit for those that do not.

Adds two missing .gitignore Visual Studio temp files
present in Visual Studio's .gitignore.
2016-05-28 17:15:12 +02:00
marcelofg55 eeb83982e2 Added 'fat' option for bits param on scons for osx, this will produce a fat binary that contains both 32 bits and 64 bits binaries 2016-05-20 17:31:30 -03:00
Ariel Manzur baaa74f215 cloning env for builtin_openssl _and_ openssl :) 2016-05-06 22:43:22 -03:00
Rémi Verschelde f938793e78 Ignore invalid folders in `platform`
Fixes #4479
2016-04-29 18:58:37 +02:00
Rémi Verschelde 0a5472e697 Remove trailing spaces 2016-04-02 20:26:12 +02:00
Maxwell Huang-Hobbs 32391ffd73 inherit PKG_CONFIG_PATH from environment 2016-03-30 10:44:58 -04:00
Juan Linietsky caddcca4f4 -Many fixes to windows build system with Mingw on Windows. Fixes #2690 2016-01-25 00:21:04 -03:00
Juan Linietsky 401622cc22 -Removed ANT build system for Android, as it was deprecated by Google
-Added new Gradle build system, as it is the required build system
2016-01-08 13:36:44 -03:00
Juan Linietsky eff81965af Merge pull request #2956 from est31/add_system_wide_export_path
Add way to look for templates at system wide level too
2015-12-08 17:04:24 -03:00
Juan Linietsky da113fe40d -Upgraded webp to a MUCH newer version. Hoping it fixes some bugs in the process. Keeping old version just in case for now.
-Added ability to convert xml and tscn scenes to binary on export, makes loading of larger scenes faster
2015-12-04 10:18:28 -03:00
est31 e1d02e4831 Make the setting unix-only.
For this, put the detection into the OS class and its subclass.
2015-11-30 02:35:59 +01:00
est31 15f6d3cebf Add way to look for templates at system wide level too
Useful for everybody wanting to package godot.
Fixes #1026.

-> Retain the old behaviour: path in error msg only when exporting.
-> User templates override system templates
2015-11-30 01:36:08 +01:00
Juan Linietsky b987d2113b 0theora compilation fixes 2015-11-25 00:28:03 -03:00
Juan Linietsky ccd40f76e8 -work in progress resourceparser and .tscn parser. Still non-functional
-fixed theora so it can compile theoralib but not theora
-fixed generation of windows icon in .rc, which didn't previously work in 32 bits
2015-11-24 10:42:05 -03:00
Juan Linietsky dd09215c90 Revert "libao audio driver" 2015-11-19 20:05:26 -03:00
Juan Linietsky 43ce972ddb Merge pull request #903 from a12n/libao
libao audio driver
2015-11-19 19:31:56 -03:00
Anton Yabchinskiy 3b9868d2e4 Merge branch 'master' of github.com:okamstudio/godot 2015-11-02 20:25:01 +03:00
Rémi Verschelde 399b1b0474 Cosmetic fixes to SCons buildsystem
- Removed trailing spaces
- Made sure all indentation is done using tabs (fixes #39)
- Potentially fixed an identation issue for openssl check
2015-11-01 20:53:26 +01:00
George Marques 6e87314d83
Add support for Opus audio format 2015-10-02 14:25:38 -03:00
Juan Linietsky 700fdf5c0c fix build issue with ssl, closes #2384 2015-08-23 20:54:13 -03:00
Anton Yabchinskiy dc8df8a91a Merge branch 'master' of github.com:okamstudio/godot 2015-07-29 23:01:36 +03:00
PeaceSells 9983ceecf2 Fixes compile bug for Android template on Windows. 2015-07-24 13:12:23 -06:00
Peace Sells 6edbab0a9f Setting build vs properties in scons. 2015-06-21 14:21:24 -06:00
Antony Jones 2a4da03f10 Added Visual Studio project generation. Use "vsproj=yes" in command line. This does not set up NMAKE properly. 2015-05-03 15:18:56 -06:00
Juan Linietsky b135cdbf05 Merge pull request #1531 from vkbsb/h5_canvas_polygon_fix
H5 canvas polygon fix
2015-04-07 20:22:58 -03:00
yg2f 7ea3482c38 add scons extra suffix option
makes it possible to add a custom extra suffix to the base filename of
all generated binary files.

example :
scons p=windows extra_suffix=yourBranchName
or
scons p=windows bits=32 extra_suffix=v20150401_1642
or
scons p=windows extra_suffix=msvc2010_git20150401
2015-04-01 17:04:41 +02:00
V.VamsiKrishna beab10ab9b Revert "Revert "Missed some things in prev commit.""
This reverts commit 2e59788aa9.
2015-03-20 11:48:21 +05:30
V.VamsiKrishna eb3c88b3dd Revert "Revert "Removing etc1 from build for javascript platform.""
This reverts commit 9965e93f7e.
2015-03-20 11:47:56 +05:30
V.VamsiKrishna 2e59788aa9 Revert "Missed some things in prev commit."
This reverts commit d3280f91a1.
2015-03-20 11:12:59 +05:30
V.VamsiKrishna 9965e93f7e Revert "Removing etc1 from build for javascript platform."
This reverts commit 41b729ccff.
2015-03-20 11:12:13 +05:30
V.VamsiKrishna d3280f91a1 Missed some things in prev commit. 2015-03-20 11:06:28 +05:30
V.VamsiKrishna 41b729ccff Removing etc1 from build for javascript platform.
Based on inputs from reduz
1) Made etc1 optional driver and default yes.
2) Reverted the hack in rg_etc1.cpp
3) Disabled etc1 for javascript plaform.
2015-03-20 10:18:13 +05:30
Anton Yabchinskiy 43713810de Merge branch 'master' of https://github.com/okamstudio/godot 2015-03-10 11:44:40 +03:00
Juan Linietsky 4d2198110b merges from okam repo 2015-03-03 14:39:13 -03:00
Anton Yabchinskiy fa38e9b838 Merge branch 'master' of github.com:okamstudio/godot 2015-01-17 18:27:08 +03:00
hurikhan f9a4e6890b SCons: colored compilation 2015-01-12 12:54:17 +08:00
Anton Yabchinskiy a7875c586a Merge branch 'master' of github.com:okamstudio/godot 2015-01-05 23:56:24 +03:00
Juan Linietsky 6b5b95bb4e -added new code completion guess locations, closes #1032
-moved commandline fix to mingw-only, should fix #1064
2015-01-03 13:03:13 -03:00
Lee Zher Huei 645a038568 Fix for MinGW compilation 2014-12-27 16:42:37 +00:00
Anton Yabchinskiy d45be7d9f4 Merge branch 'master' of http://github.com/okamstudio/godot 2014-12-04 16:35:00 +03:00
Thomas Sigurdsen c981f5409f Remove multiprocessing from imports in SConstruct
Rationale: unused import, also prevented scons from building on my
setup.
2014-12-03 17:36:29 +01:00
Anton Yabchinskiy 05f6c73020 Add 'ao' build option 2014-11-22 13:37:40 +03:00
Juan Linietsky e82dc40205 -Much improvement to baked light baker
-Fixed many bugs in stretch mode
-Fixes to camera project and unproject as consequence of the above
-added setget to script (documented in script doc)
-more fixes to collada exporter for blender
2014-10-27 22:54:32 -03:00
Juan Linietsky 0fa94a9690 Build System Changes
-=-=-=-=-=-=-=-=-=-=

Build System:
-Big clean up of SCons, changed how builds are done to a much cleaner method (check the Github Wiki for instructions).
-Deactivated BlackBerry10 (sorry), if no mantainer found (or BlackBerry does not send us a Passort ;), platform will be removed as we have no longer devices to test.

Engine:
-Removed deprecated object and scene format (was in there just for compatibility, not in use since a long time).
-Added ability to open scenes even if a node type was removed (will try to guess the closest type).
-Removed deprecated node types.
2014-10-07 01:31:49 -03:00
Juan Linietsky 1a2cb755e2 3D Physics and Other Stuff
-=-=-=-=-=-=-=-=-=-=-=-=-=

-New Vehicle (Based on Bullet's RaycastVehicle) - Vehiclebody/VehicleWheel. Demo will come soon, old vehicle (CarBody) will go away soon too.
-A lot of fixes to the 3D physics engine
-Added KinematicBody with demo
-Fixed the space query API for 2D (demo will come soon). 3D is WIP.
-Fixed long-standing bug with body_enter/body_exit for Area and Area2D
-Performance variables now includes physics (active bodies, collision pairs and islands)
-Ability to see what's inside of instanced scenes!
-Fixed Blend Shapes (no bs+skeleton yet)
-Added an Android JavaClassWrapper singleton for using Android native classes directly from GDScript. This is very Alpha!
2014-09-02 23:13:40 -03:00
Juan Linietsky 678948068b Small Issues & Maintenance
-=-=-=-=-=-=-=-=-=-=-=-=-=

-Begin work on Navigation Meshes (simple pathfinding for now, will improve soon)
-More doc on theme overriding
-Upgraded OpenSSL to version without bugs
-Misc bugfixes
2014-08-01 22:10:38 -03:00
Juan Linietsky 9b8696d3dd Light Baker!
-=-=-=-=-=-=

-Support for lightmap baker, have fun figuring out how it works before tutorial is published.
2014-06-11 10:41:03 -03:00
Juan Linietsky 6572d51288 -Fixes to OpenSSL compilation (more)
-Fix bug in GDScript, now static functions can call static functions.
2014-05-01 11:34:10 -03:00
Juan Linietsky 87f37bc5a3 -Added OpenSSL and HTTPS support
-Built-in version of the library for Windows, Android and iOS (other OSs use system one)
-Small fixes all around
2014-04-28 21:56:43 -03:00
marynate 7ca064c3d1 Set multi-jobs build option defaul to no 2014-03-17 11:43:43 +08:00
Moritz Wundke f1b1a38af9 Do not set number of jobs if already specified 2014-03-08 18:50:24 +01:00
Moritz Wundke 1fd08ad1ac Fixed typo 2014-03-07 20:31:17 +01:00
Moritz Wundke 12a3989cd7 Speed build time up by 6 using multiple jobs
Adding aggresive build mode that spawns num_core+1 jobs. This speeds up
build time by 6. On my 8 core machine I'm down from 6m:16s to 1m:34s.
2014-03-07 20:20:06 +01:00
okamstudio a9aae3000f Merge pull request #133 from vinzenz/master
More fixes to the build system
2014-02-26 11:18:44 -02:00
C4NCER 942f14747b Switch from using deprecated Options class to Variables 2014-02-25 19:33:09 +13:00
Juan Linietsky 4b07eb8deb -moved script to modules 2014-02-24 09:53:33 -03:00
Vinzenz Feenstra 8706fc85ef Fix handling for CFLAGS and LINKFLAGS like for CCFLAGS
Previously CFLAGS and LINKFLAGS were passed as a single
quoted argument to the compiler or linker. This patch splits the
paramters.

Signed-off-by: Vinzenz Feenstra <evilissimo@gmail.com>
2014-02-22 13:34:40 +01:00
Juan Linietsky f2a068984c -run script in editor
-add search docs dialog that returns places string was found
-added flash
2014-02-20 23:01:44 -03:00
Juan Linietsky 51c55b237b wtf 2014-02-19 18:09:52 -03:00
Vinzenz Feenstra 8b3fecb43d Fix CCFLAGS handling
Signed-off-by: Vinzenz Feenstra <evilissimo@gmail.com>
2014-02-13 22:15:18 +01:00
Juan Linietsky 0b806ee0fc GODOT IS OPEN SOURCE 2014-02-09 22:10:30 -03:00