Browse Source

Merge pull request #7102 from Calinou/improve-introduction-buildsystem-2

Move rationale about Godot using SCons to Frequently asked questions
Max Hilbrunner 2 years ago
parent
commit
e1c2bfce77
2 changed files with 39 additions and 35 deletions
  1. 30 1
      about/faq.rst
  2. 9 34
      contributing/development/compiling/introduction_to_the_buildsystem.rst

+ 30 - 1
about/faq.rst

@@ -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.
 

+ 9 - 34
contributing/development/compiling/introduction_to_the_buildsystem.rst

@@ -5,45 +5,20 @@ Introduction to the buildsystem
 
 .. highlight:: shell
 
-SCons
------
-
-Godot uses `SCons <https://www.scons.org/>`__ to build. We love it, we are not
-changing it for anything else. We constantly get requests to move the build
-system to CMake, or Visual Studio, but this is not going to happen. 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 (plugins). 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 it if
-you are planning to build Godot yourself.
 
 Setup
 -----
 
-Please refer to the documentation for :ref:`doc_compiling_for_android`,
-:ref:`doc_compiling_for_ios`,  :ref:`doc_compiling_for_linuxbsd`,
-:ref:`doc_compiling_for_macos`, :ref:`doc_compiling_for_uwp`,
-:ref:`doc_compiling_for_web`, and :ref:`doc_compiling_for_windows`.
+:ref:`Godot uses the SCons build system. <doc_faq_why_scons>`
+Please refer to the documentation for:
 
-Note that for **Windows/Visual Studio**, you need to use ``x86_x64 Cross Tools
-Command Prompt for VS 2017`` or similar, depending on your install, instead of
-the standard Windows command prompt to enter the commands below.
+- :ref:`doc_compiling_for_android`
+- :ref:`doc_compiling_for_ios`
+- :ref:`doc_compiling_for_linuxbsd`
+- :ref:`doc_compiling_for_macos`
+- :ref:`doc_compiling_for_uwp`
+- :ref:`doc_compiling_for_web`
+- :ref:`doc_compiling_for_windows`
 
 Platform selection
 ------------------