godot/editor
Andrii Doroshenko (Xrayez) 133997654c Add custom_modules build option to compile external user modules
This patch adds ability to include external, user-defined C++ modules
to be compiled as part of Godot via `custom_modules` build option
which can be passed to `scons`.

```
scons platform=x11 tools=yes custom_modules="../project/modules"
```

Features:

- detects all available modules under `custom_modules` directory the
same way as it does for built-in modules (not recursive);
- works with both relative and absolute paths on the filesystem;
- multiple search paths can be specified as a comma-separated list.

Module custom documentation and editor icons collection and generation
process is adapted to work with absolute paths needed by such modules.
Also fixed doctool bug mixing absolute and relative paths respectively.

Implementation details:

- `env.module_list` is a dictionary now, which holds both module name as
  key and either a relative or absolute path to a module as a value.
- `methods.detect_modules` is run twice: once for built-in modules, and
  second for external modules, all combined later.
- `methods.detect_modules` was not doing what it says on the tin. It is
  split into `detect_modules` which collects a list of available modules
  and `write_modules` which generates `register_types` sources for each.
- whether a module is built-in or external is distinguished by relative
  or absolute paths respectively. `custom_modules` scons converter
  ensures that the path is absolute even if relative path is supplied,
  including expanding user paths and symbolic links.
- treats the parent directory as if it was Godot's base directory, so
  that there's no need to change include paths in cases where custom
  modules are included as dependencies in other modules.

(cherry picked from commit a96f0e98d7)
2020-05-25 17:08:38 +03:00
..
collada Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
doc DocData: Skip unexposed classes 2020-04-21 14:15:34 +02:00
fileserver Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
icons Add custom_modules build option to compile external user modules 2020-05-25 17:08:38 +03:00
import Tweak the error message displayd when a post-import script fails 2020-05-13 16:12:03 +02:00
plugins Keep mouse inside 3D viewport rotation widget 2020-05-11 11:01:13 +02:00
translations i18n: Sync translations with Weblate 2020-05-05 16:05:12 +02:00
animation_bezier_editor.cpp Remove unused #if 0'ed code 2020-01-21 21:41:54 +01:00
animation_bezier_editor.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
animation_track_editor_plugins.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
animation_track_editor_plugins.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
animation_track_editor.cpp Fix crash when changing time value of multiple animation keys at once via inspector 2020-04-27 10:15:39 +02:00
animation_track_editor.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
array_property_edit.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
array_property_edit.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
audio_stream_preview.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
audio_stream_preview.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
code_editor.cpp replace selected text with empty string bug fixed 2020-04-16 11:58:57 +02:00
code_editor.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
connections_dialog.cpp Don't show a copy of the property's name in the inspector's tooltip if there's no description 2020-03-04 12:40:14 +01:00
connections_dialog.h Fixes crash when pressing enter in ConnectDialog with nothing selected 2020-02-18 14:21:01 +01:00
create_dialog.cpp Add ignoring of disabled recent and favorite classes in create 2020-01-09 08:17:06 +01:00
create_dialog.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
dependency_editor.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
dependency_editor.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
dictionary_property_edit.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
dictionary_property_edit.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_about.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_about.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_asset_installer.cpp Makes more strings translatable 2020-01-04 13:46:38 +08:00
editor_asset_installer.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_atlas_packer.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_atlas_packer.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_audio_buses.cpp fix audio buses editor not save, close #26683 2020-01-19 10:56:00 +08:00
editor_audio_buses.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_autoload_settings.cpp Improve the AutoLoad editor UX 2020-02-14 15:52:50 +01:00
editor_autoload_settings.h Improve the AutoLoad editor UX 2020-02-14 15:52:50 +01:00
editor_builders.py Some small fixes to warnings in python scripts 2019-07-11 22:26:04 +05:30
editor_data.cpp Implement undo-redo feature for Parameter Paste in the Inspector 2020-03-04 12:40:15 +01:00
editor_data.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_dir_dialog.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_dir_dialog.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_export.cpp Implementation of the Godot Android Plugin configuration file 2020-05-16 23:09:45 -07:00
editor_export.h Implementation of the Godot Android Plugin configuration file 2020-05-16 23:09:45 -07:00
editor_feature_profile.cpp Add ignoring of disabled recent and favorite classes in create 2020-01-09 08:17:06 +01:00
editor_feature_profile.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_file_dialog.cpp Fixes leak with drives [3.2] 2020-04-12 14:05:47 +02:00
editor_file_dialog.h Improve UX of drive letters 2020-03-17 14:48:54 +01:00
editor_file_system.cpp Make file system scan more robust 2020-02-14 16:05:36 +01:00
editor_file_system.h Make file system scan more robust 2020-02-14 16:05:36 +01:00
editor_folding.cpp Fix EditorFolding crash when switching scenes 2020-03-06 23:51:26 +01:00
editor_folding.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_fonts.cpp Add rotation widget to 3D viewport 2020-03-09 09:40:10 +01:00
editor_fonts.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_help_search.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_help_search.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_help.cpp Improved go-to definition (Ctrl + Click) 2020-05-11 09:33:21 +05:30
editor_help.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_inspector.cpp Stopped trying to revert to default values when script implementation of property_can_revert exists 2020-05-06 23:29:08 +02:00
editor_inspector.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_layouts_dialog.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_layouts_dialog.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_log.cpp Tweak the editor log selection color to match the current editor theme 2020-05-11 11:39:35 +02:00
editor_log.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_network_profiler.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_network_profiler.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_node.cpp Using command + comma on macOS as default shortcut for editor settings 2020-05-18 16:40:33 +02:00
editor_node.h Rename the editor action "Revert Scene" to "Reload Saved Scene" 2020-05-13 16:09:38 +02:00
editor_path.cpp Clip text in EditorPath button to avoid dock size changes 2020-01-20 14:25:27 -03:00
editor_path.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_plugin_settings.cpp Use checkbox for plugin status instead of option list 2020-03-25 09:38:53 +01:00
editor_plugin_settings.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_plugin.cpp Expose FileSystemDock to the scripting API and fixed signals 2020-03-18 17:57:45 +01:00
editor_plugin.h Expose FileSystemDock to the scripting API and fixed signals 2020-03-18 17:57:45 +01:00
editor_profiler.cpp Use the editor background color for the profiler graph 2020-02-06 13:02:08 +01:00
editor_profiler.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_properties_array_dict.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_properties_array_dict.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_properties.cpp Use int64_t for EditorPropertyInteger and warn when out of double range 2020-01-15 23:39:49 -05:00
editor_properties.h Use int64_t for EditorPropertyInteger and warn when out of double range 2020-01-15 23:39:49 -05:00
editor_resource_preview.cpp Export: Properly disable resource preview thread 2020-01-14 11:34:02 +01:00
editor_resource_preview.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_run_native.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_run_native.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_run_script.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_run_script.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_run.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_run.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_scale.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_scale.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_sectioned_inspector.cpp Improved search in settings dialogs 2020-02-14 15:51:37 +01:00
editor_sectioned_inspector.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_settings.cpp Add editor freelook navigation scheme settings 2020-04-27 10:12:55 +02:00
editor_settings.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_spin_slider.cpp Hide editor_spin_slider grabber when closing Editor's windows 2020-05-16 00:08:37 +02:00
editor_spin_slider.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_sub_scene.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_sub_scene.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_themes.cpp Added missing LinkButton colors in Editor Theme 2020-04-16 12:47:18 +02:00
editor_themes.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_vcs_interface.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
editor_vcs_interface.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
export_template_manager.cpp Re-architecture of the Godot Android plugin. 2020-03-09 10:30:02 +01:00
export_template_manager.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
filesystem_dock.cpp Expose FileSystemDock to the scripting API and fixed signals 2020-03-18 17:57:45 +01:00
filesystem_dock.h Expose FileSystemDock to the scripting API and fixed signals 2020-03-18 17:57:45 +01:00
find_in_files.cpp Add a button to quickly repeat last search in files 2020-03-04 09:52:55 +01:00
find_in_files.h Add a button to quickly repeat last search in files 2020-03-04 09:52:55 +01:00
groups_editor.cpp Fixes add group in Group Editor dialog 2020-02-14 15:58:36 +01:00
groups_editor.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
import_dock.cpp Fix changing the import type of multiple files at once 2020-04-06 18:16:58 +02:00
import_dock.h Fix multiple issues with the "Import" dock 2020-02-18 14:18:09 +01:00
inspector_dock.cpp Implement undo-redo feature for Parameter Paste in the Inspector 2020-03-04 12:40:15 +01:00
inspector_dock.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
multi_node_edit.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
multi_node_edit.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
node_dock.cpp Clip text in NodeDock toolbuttons to prevent dock size changes 2020-01-21 10:23:09 +01:00
node_dock.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
pane_drag.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
pane_drag.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
plugin_config_dialog.cpp Make script made via plugin creation obey syntax settings 2020-01-21 02:05:56 -03:00
plugin_config_dialog.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
progress_dialog.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
progress_dialog.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
project_export.cpp Implementation of the Godot Android Plugin configuration file 2020-05-16 23:09:45 -07:00
project_export.h Implementation of the Godot Android Plugin configuration file 2020-05-16 23:09:45 -07:00
project_manager.cpp Fix rename dialog size in 3.2 2020-05-12 18:34:00 -05:00
project_manager.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
project_settings_editor.cpp prevent joypad button input dropdown going out of dialog 2020-03-25 11:38:53 +01:00
project_settings_editor.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
property_editor.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
property_editor.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
property_selector.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
property_selector.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
pvrtc_compress.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
pvrtc_compress.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
quick_open.cpp Make Quick Open substring match more specific. 2020-05-01 10:56:57 +02:00
quick_open.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
register_exporters.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
rename_dialog.cpp Improve the batch rename dialog 2020-02-14 15:54:22 +01:00
rename_dialog.h Improve the batch rename dialog 2020-02-14 15:54:22 +01:00
reparent_dialog.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
reparent_dialog.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
run_settings_dialog.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
run_settings_dialog.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
scene_tree_dock.cpp Keep "lock" metadata when changing a Node's type, if applicable 2020-05-20 11:43:49 +02:00
scene_tree_dock.h Rename the Clear Script editor action to Detach Script 2020-05-11 11:38:22 +02:00
scene_tree_editor.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
scene_tree_editor.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
script_create_dialog.cpp Warn about built-in script limitations in the script creation dialog 2020-04-16 12:47:18 +02:00
script_create_dialog.h Warn about built-in script limitations in the script creation dialog 2020-04-16 12:47:18 +02:00
script_editor_debugger.cpp Use a different icon for the debugger tab with both warnings and errors 2020-05-11 11:35:07 +02:00
script_editor_debugger.h Add ability to export VRAM usage as CSV 2020-04-24 09:22:36 +02:00
SCsub Add custom_modules build option to compile external user modules 2020-05-25 17:08:38 +03:00
settings_config_dialog.cpp Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
settings_config_dialog.h Update copyright statements to 2020 2020-01-01 11:16:22 +01:00
spatial_editor_gizmos.cpp Merge pull request #37863 from ExpiredPopsicle/culling5 2020-04-30 08:05:11 +02:00
spatial_editor_gizmos.h Update Joint gizmos automatically 2020-04-23 11:07:32 +02:00