Move rationale about Godot using SCons to Frequently asked questions

This also removes an obsolete bit about the command prompt to use
when compiling using Visual Studio (automatic detection has been
implemented for years).
This commit is contained in:
Hugo Locurcio
2023-03-31 19:29:08 +02:00
parent 973e8f3b3e
commit f4efa2fd8a
2 changed files with 39 additions and 35 deletions

View File

@@ -478,6 +478,35 @@ This custom UI toolkit :ref:`can't be used as a library <doc_faq_use_godot_as_li
but you can still
:ref:`use Godot to create non-game applications by using the editor <doc_faq_non_game_applications>`.
.. _doc_faq_why_scons:
Why does Godot use the SCons build system?
------------------------------------------
Godot uses the `SCons <https://www.scons.org/>`__ build system. There are no
plans to switch to a different build system in the near future. There are many
reasons why we have chosen SCons over other alternatives. For example:
- Godot can be compiled for a dozen different platforms: all PC
platforms, all mobile platforms, many consoles, and WebAssembly.
- Developers often need to compile for several of the platforms **at
the same time**, or even different targets of the same platform. They
can't afford reconfiguring and rebuilding the project each time.
SCons can do this with no sweat, without breaking the builds.
- SCons will *never* break a build no matter how many changes,
configurations, additions, removals etc.
- Godot's build process is not simple. Several files are generated by
code (binders), others are parsed (shaders), and others need to offer
customization (:ref:`modules <doc_custom_modules_in_cpp>`). This requires
complex logic which is easier to write in an actual programming language (like Python)
rather than using a mostly macro-based language only meant for building.
- Godot build process makes heavy use of cross-compiling tools. Each
platform has a specific detection process, and all these must be
handled as specific cases with special code written for each.
Please try to keep an open mind and get at least a little familiar with SCons if
you are planning to build Godot yourself.
.. _doc_faq_why_not_stl:
Why does Godot not use STL (Standard Template Library)?
@@ -547,7 +576,7 @@ such a case, you should consider a different approach to optimization.
The vast majority of games do not need this and Godot provides handy helpers
to do the job for most cases when you do.
If a game needs to process such a large amount of objects, our recommendation
If a game needs to process such a large amount of objects, our recommendation
is to use C++ and GDExtensions for performance-heavy tasks and GDScript (or C#)
for the rest of the game.