diff --git a/about/faq.rst b/about/faq.rst index cb80a4ab8..a37fbc913 100644 --- a/about/faq.rst +++ b/about/faq.rst @@ -478,6 +478,35 @@ This custom UI toolkit :ref:`can't be used as a library `. +.. _doc_faq_why_scons: + +Why does Godot use the SCons build system? +------------------------------------------ + +Godot uses the `SCons `__ 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 `). 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. diff --git a/contributing/development/compiling/introduction_to_the_buildsystem.rst b/contributing/development/compiling/introduction_to_the_buildsystem.rst index 8e6a623e3..cdc8802d2 100644 --- a/contributing/development/compiling/introduction_to_the_buildsystem.rst +++ b/contributing/development/compiling/introduction_to_the_buildsystem.rst @@ -5,45 +5,20 @@ Introduction to the buildsystem .. highlight:: shell -SCons ------ - -Godot uses `SCons `__ 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. ` +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 ------------------