godot/editor
Rémi Verschelde 39facb35a0 SCons: Unify tools/target build type configuration
Implements https://github.com/godotengine/godot-proposals/issues/3371.

New `target` presets
====================

The `tools` option is removed and `target` changes to use three new presets,
which match the builds users are familiar with. These targets control the
default optimization level and enable editor-specific and debugging code:

- `editor`: Replaces `tools=yes target=release_debug`.
  * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_debug`: Replaces `tools=no target=release_debug`.
  * Defines: `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_release`: Replaces `tools=no target=release`.
  * Defines: `-O3`/`/O2`

New `dev_build` option
======================

The previous `target=debug` is now replaced by a separate `dev_build=yes`
option, which can be used in combination with either of the three targets,
and changes the following:

- `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`),
  enables generating debug symbols, does not define `NDEBUG` so `assert()`
  works in thirdparty libraries, adds a `.dev` suffix to the binary name.

Note: Unlike previously, `dev_build` defaults to off so that users who
compile Godot from source get an optimized and small build by default.
Engine contributors should now set `dev_build=yes` in their build scripts or
IDE configuration manually.

Changed binary names
====================

The name of generated binaries and object files are changed too, to follow
this format:

`godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]`

For example:
- `godot.linuxbsd.editor.dev.arm64`
- `godot.windows.template_release.double.x86_64.mono.exe`

Be sure to update your links/scripts/IDE config accordingly.

More flexible `optimize` and `debug_symbols` options
====================================================

The optimization level and whether to generate debug symbols can be further
specified with the `optimize` and `debug_symbols` options. So the default
values listed above for the various `target` and `dev_build` combinations
are indicative and can be replaced when compiling, e.g.:

`scons p=linuxbsd target=template_debug dev_build=yes optimize=debug`
will make a "debug" export template with dev-only code enabled, `-Og`
optimization level for GCC/Clang, and debug symbols. Perfect for debugging
complex crashes at runtime in an exported project.
2022-09-26 16:31:46 +02:00
..
debugger Style: Cleanup header guards for consistency 2022-09-26 13:51:17 +02:00
export Fix sub-scene root nodes not getting the correct inheritance chain when exporting 2022-09-23 18:34:07 +08:00
fileserver Add a new HashSet template 2022-05-20 22:40:38 +02:00
icons Show method override icon in script editor gutter 2022-09-21 01:49:54 +02:00
import Remove unused includes & move some includes to top of file 2022-09-23 19:06:31 -04:00
plugins Merge pull request #66382 from MewPurPur/replace-in-files-forever 2022-09-26 15:51:01 +02:00
translations i18n: Sync editor translations with Weblate (3.5 branch) 2022-09-09 14:52:16 +02:00
action_map_editor.cpp Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
action_map_editor.h Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
animation_bezier_editor.cpp Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
animation_bezier_editor.h Merge pull request #64647 from TokageItLab/auto-tangent 2022-08-23 18:17:15 +02:00
animation_track_editor_plugins.cpp Rename CanvasItem.update() to queue_redraw() 2022-08-29 14:59:47 +02:00
animation_track_editor_plugins.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
animation_track_editor.cpp Merge pull request #44143 from KoBeWi/callable_multiplayer 2022-09-18 13:47:04 +02:00
animation_track_editor.h Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
array_property_edit.cpp Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
array_property_edit.h
audio_stream_preview.cpp Remove Signal connect binds 2022-07-29 16:26:13 +02:00
audio_stream_preview.h Implement BPM support 2022-07-23 07:31:17 +02:00
code_editor.cpp Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
code_editor.h Adding shader preprocessor support 2022-07-22 22:51:57 +02:00
connections_dialog.cpp Remember advanced state of connection dialog 2022-09-25 20:22:44 +02:00
connections_dialog.h Remember advanced state of connection dialog 2022-09-25 20:22:44 +02:00
create_dialog.cpp Add ability to flag classes as experimental or deprecated. 2022-09-11 00:11:33 +01:00
create_dialog.h simplify title of create/change node dialog 2022-09-07 21:44:33 -05:00
dependency_editor.cpp Add ability to open multiple scenes in the Dependency Editor 2022-09-25 22:20:16 +02:00
dependency_editor.h Show dependency warning when removing remaps and fallback if translation 2022-08-03 12:31:29 +02:00
dictionary_property_edit.cpp Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
dictionary_property_edit.h
doc_tools.cpp 2D and 3D Skeleton modification docs, and small fixes. 2022-09-14 15:07:45 -07:00
doc_tools.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
editor_about.cpp Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED" 2022-08-29 11:11:29 +02:00
editor_about.h Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED" 2022-08-29 11:11:29 +02:00
editor_asset_installer.cpp Rename TreeItem's set_tooltip to set_tooltip_text 2022-08-30 11:16:23 +02:00
editor_asset_installer.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
editor_atlas_packer.cpp Refactor BitMap and add tests 2022-09-01 18:39:17 +02:00
editor_atlas_packer.h
editor_audio_buses.cpp Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
editor_audio_buses.h Add the button pressed to some signals in Tree 2022-05-21 17:16:52 +02:00
editor_autoload_settings.cpp Add String.to_{camel,pascal,snake}_case methods 2022-08-30 12:36:24 +03:00
editor_autoload_settings.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
editor_build_profile.cpp Add Text Server related options to the build profiles editor. 2022-08-03 15:06:43 +03:00
editor_build_profile.h Add Text Server related options to the build profiles editor. 2022-08-03 15:06:43 +03:00
editor_builders.py [Editor build] Use smaller .mo files instead of .po, if gettext is available. 2022-03-24 21:17:32 +02:00
editor_command_palette.cpp Command Palette shortcut_text: font color 2022-09-16 17:35:57 +02:00
editor_command_palette.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
editor_data.cpp Merge pull request #58617 from KoBeWi/custom_something 2022-09-07 17:54:17 +02:00
editor_data.h Improve handling of custom types 2022-09-05 23:08:28 +02:00
editor_dir_dialog.cpp Improve naming of theme properties throughout GUI code 2022-09-06 22:53:17 +03:00
editor_dir_dialog.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_feature_profile.cpp Fix various -Wmaybe-uninitialized warnings from GCC 12.2.1 2022-09-22 11:29:48 +02:00
editor_feature_profile.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_file_dialog.cpp Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
editor_file_dialog.h Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
editor_file_system.cpp Remove unused abort_scan variable 2022-09-15 14:23:38 -05:00
editor_file_system.h Remove unused abort_scan variable 2022-09-15 14:23:38 -05:00
editor_folding.cpp Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
editor_folding.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
editor_fonts.cpp Do not use horizontal hinting for the editor monospace font. 2022-09-14 11:05:09 +03:00
editor_fonts.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
editor_help_search.cpp Fix possible crash in editor help 2022-09-19 13:26:50 +02:00
editor_help_search.h Add ability to flag classes as experimental or deprecated. 2022-09-11 00:11:33 +01:00
editor_help.cpp Add ability to flag classes as experimental or deprecated. 2022-09-11 00:11:33 +01:00
editor_help.h Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED" 2022-08-29 11:11:29 +02:00
editor_inspector.cpp Fix EditorInspectorCategory minimum size calculation 2022-09-21 19:56:19 +08:00
editor_inspector.h Expose EditorProperty._set_read_only virtual method 2022-09-19 11:56:49 +01:00
editor_layouts_dialog.cpp
editor_layouts_dialog.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_locale_dialog.cpp Rename hint_tooltip to tooltip_text & setget 2022-08-27 01:35:01 +02:00
editor_locale_dialog.h Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
editor_log.cpp Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
editor_log.h Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED" 2022-08-29 11:11:29 +02:00
editor_native_shader_source_visualizer.cpp Make TabBar/Container default their alignments to the left instead of center 2022-03-17 18:12:23 -03:00
editor_native_shader_source_visualizer.h
editor_node.cpp Rename editor run/pause/stop shortcuts and tooltips for consistency 2022-09-25 20:17:58 +02:00
editor_node.h [macOS extend-to-title] Add scene/project name to the editor title, fix incorrect window button position/order when system primary language is RTL. 2022-09-22 23:09:56 +03:00
editor_path.cpp Improvements to multi-node editing 2022-09-05 18:36:03 -05:00
editor_path.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_paths.cpp Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
editor_paths.h Move editor paths into the EditorPaths class 2022-07-29 11:07:30 -05:00
editor_plugin_settings.cpp Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
editor_plugin_settings.h Extract EditorResourceConversionPlugin into its own source files and clean up editor includes 2022-07-31 21:14:15 +03:00
editor_plugin.cpp Merge pull request #64465 from TokageItLab/bind-after-gui-input 2022-09-10 20:01:48 +02:00
editor_plugin.h Merge pull request #64465 from TokageItLab/bind-after-gui-input 2022-09-10 20:01:48 +02:00
editor_properties_array_dict.cpp Add read-only mode to inspector array and dictionary viewer. 2022-09-06 18:02:03 +01:00
editor_properties_array_dict.h Fix various uninitialized member pointers 2022-09-06 11:20:27 +02:00
editor_properties.cpp Merge pull request #62903 from Rindbee/fix-property-link-not-work-in-MultiNodeEdit 2022-09-15 20:12:12 +02:00
editor_properties.h [macOS export] Simplify code signing options, add support for rcodesign tool for signing and notarization. 2022-08-26 14:23:31 +03:00
editor_property_name_processor.cpp [macOS export] Simplify code signing options, add support for rcodesign tool for signing and notarization. 2022-08-26 14:23:31 +03:00
editor_property_name_processor.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_quick_open.cpp Enable QuickOpen to see scripted resources. 2022-09-17 20:35:58 -05:00
editor_quick_open.h QuickOpen: Disable loading resources for now, too slow 2022-09-21 17:02:43 +02:00
editor_resource_picker.cpp Script-class-aware Inspector & related controls. 2022-09-17 18:34:57 -05:00
editor_resource_picker.h Script-class-aware Inspector & related controls. 2022-09-17 18:34:57 -05:00
editor_resource_preview.cpp Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
editor_resource_preview.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
editor_run_native.cpp Rename hint_tooltip to tooltip_text & setget 2022-08-27 01:35:01 +02:00
editor_run_native.h Add readable export errors. 2022-06-08 17:55:46 +03:00
editor_run_script.cpp
editor_run_script.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
editor_run.cpp Allow to change the Stop shortcut used at runtime 2022-08-30 14:14:15 +02:00
editor_run.h Implement Running Godot as Movie Writer 2022-06-21 11:28:47 +02:00
editor_scale.cpp
editor_scale.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
editor_sectioned_inspector.cpp Fix property revert logic in the sectioned inspector 2022-09-02 21:15:04 +03:00
editor_sectioned_inspector.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
editor_settings_dialog.cpp Merge pull request #65290 from requizm/fix/65081/cannot_set_escape 2022-09-25 11:06:18 +02:00
editor_settings_dialog.h Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
editor_settings.cpp Merge pull request #65241 from bruvzg/no_keymap_ambiguity 2022-09-08 09:24:24 +02:00
editor_settings.h Change Array arguments to TypedArray 2022-09-01 13:13:19 +02:00
editor_spin_slider.cpp Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
editor_spin_slider.h Implement Quaternion Editor 2022-08-24 22:04:49 +09:00
editor_themes.cpp Improve icon generation in the editor theme 2022-09-16 23:34:01 +03:00
editor_themes.h Improve icon generation in the editor theme 2022-09-16 23:34:01 +03:00
editor_title_bar.cpp [macOS] Extend editor contents to the window titlebar for better space usage. 2022-08-26 15:12:43 +03:00
editor_title_bar.h [macOS] Extend editor contents to the window titlebar for better space usage. 2022-08-26 15:12:43 +03:00
editor_toaster.cpp Add set_default_margin_all/individual to StyleBox 2022-09-07 16:37:36 +03:00
editor_toaster.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
editor_translation_parser.cpp Change Array arguments to TypedArray 2022-09-01 13:13:19 +02:00
editor_translation_parser.h Change Array arguments to TypedArray 2022-09-01 13:13:19 +02:00
editor_translation.cpp Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
editor_translation.h
editor_undo_redo_manager.cpp Change UndoRedo to use Callables 2022-09-18 23:52:50 +02:00
editor_undo_redo_manager.h Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
editor_vcs_interface.cpp Change Array arguments to TypedArray 2022-09-01 13:13:19 +02:00
editor_vcs_interface.h Change Array arguments to TypedArray 2022-09-01 13:13:19 +02:00
editor_zoom_widget.cpp Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
editor_zoom_widget.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
filesystem_dock.cpp Tree recursive folding 2022-09-21 13:28:29 +02:00
filesystem_dock.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
find_in_files.cpp Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
find_in_files.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
groups_editor.cpp Rename TreeItem's set_tooltip to set_tooltip_text 2022-08-30 11:16:23 +02:00
groups_editor.h Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
import_defaults_editor.cpp Extract EditorResourceConversionPlugin into its own source files and clean up editor includes 2022-07-31 21:14:15 +03:00
import_defaults_editor.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
import_dock.cpp Fix Import dock being too wide 2022-08-29 14:28:01 +02:00
import_dock.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
inspector_dock.cpp Improvements to multi-node editing 2022-09-05 18:36:03 -05:00
inspector_dock.h Disable editing properties in foreign resources 2022-08-23 23:16:13 +01:00
localization_editor.cpp Rename TreeItem's set_tooltip to set_tooltip_text 2022-08-30 11:16:23 +02:00
localization_editor.h Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
multi_node_edit.cpp Improvements to multi-node editing 2022-09-05 18:36:03 -05:00
multi_node_edit.h Improvements to multi-node editing 2022-09-05 18:36:03 -05:00
node_dock.cpp Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED" 2022-08-29 11:11:29 +02:00
node_dock.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
plugin_config_dialog.cpp Rename String plus_file to path_join 2022-08-29 19:38:13 -05:00
plugin_config_dialog.h Improve plugin dialog UX 2022-05-07 23:19:55 +02:00
pot_generator.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
pot_generator.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
progress_dialog.cpp Merge pull request #60108 from KoBeWi/arise_to_top 2022-09-08 09:23:31 +02:00
progress_dialog.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
project_converter_3_to_4.cpp Merge pull request #66233 from DorianSzlachcic/3-to-4-converter-issue 2022-09-25 17:05:47 +02:00
project_converter_3_to_4.h Replace File/Directory with FileAccess/DirAccess 2022-09-19 11:03:31 +02:00
project_manager.cpp Split rendering driver project setting into renderer_name and rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer). 2022-09-19 10:26:10 -07:00
project_manager.h Project Manager: Clarify text in project conversion dialogs 2022-09-15 01:38:26 +02:00
project_settings_editor.cpp Fix key mapping changes when moving from macOS to other platform 2022-09-07 18:45:35 +02:00
project_settings_editor.h Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED" 2022-08-29 11:11:29 +02:00
property_selector.cpp Remove excessive editor/property_editor.h includes 2022-08-01 17:19:11 +03:00
property_selector.h Remove excessive editor/property_editor.h includes 2022-08-01 17:19:11 +03:00
register_exporters.h Code quality: Fix header guards consistency 2022-07-25 11:17:40 +02:00
rename_dialog.cpp Add String.to_{camel,pascal,snake}_case methods 2022-08-30 12:36:24 +03:00
rename_dialog.h Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
reparent_dialog.cpp Add ok_button_text to AcceptDialog and cancel_button_text to ConfirmationDialog 2022-07-09 10:47:08 -05:00
reparent_dialog.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
scene_create_dialog.cpp Fixed root name invalid at scene creation. 2022-09-22 17:02:07 +07:00
scene_create_dialog.h Rework scene creation dialog 2022-06-21 15:42:56 +02:00
scene_tree_dock.cpp Tree recursive folding 2022-09-21 13:28:29 +02:00
scene_tree_dock.h Merge pull request #65933 from Mickeon/remove-scene-tree-dock-unused 2022-09-21 18:55:39 +02:00
scene_tree_editor.cpp SceneTreeDialog: focus search bar by default 2022-09-23 18:04:48 +02:00
scene_tree_editor.h Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
script_create_dialog.cpp Merge pull request #58617 from KoBeWi/custom_something 2022-09-07 17:54:17 +02:00
script_create_dialog.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
SCsub SCons: Unify tools/target build type configuration 2022-09-26 16:31:46 +02:00
shader_create_dialog.cpp Improve naming of theme properties throughout GUI code 2022-09-06 22:53:17 +03:00
shader_create_dialog.h Revert "Remove NOTIFICATION_ENTER_TREE when paired with NOTIFICATION_THEME_CHANGED" 2022-08-29 11:11:29 +02:00
shader_globals_editor.cpp Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
shader_globals_editor.h Add per-scene UndoRedo 2022-08-22 18:05:10 +02:00
template_builders.py