godot/core
Viktor Ferenczi c5bd0c37ce Running builder (content generator) functions in subprocesses on Windows
- Refactored all builder (make_*) functions into separate Python modules along to the build tree
- Introduced utility function to wrap all invocations on Windows, but does not change it elsewhere
- Introduced stub to use the builders module as a stand alone script and invoke a selected function

There is a problem with file handles related to writing generated content (*.gen.h and *.gen.cpp)
on Windows, which randomly causes a SHARING VIOLATION error to the compiler resulting in flaky
builds. Running all such content generators in a new subprocess instead of directly inside the
build script works around the issue.

Yes, I tried the multiprocessing module. It did not work due to conflict with SCons on cPickle.
Suggested workaround did not fully work either.

Using the run_in_subprocess wrapper on osx and x11 platforms as well for consistency. In case of
running a cross-compilation on Windows they would still be used, but likely it will not happen
in practice. What counts is that the build itself is running on which platform, not the target
platform.

Some generated files are written directly in an SConstruct or SCsub file, before the parallel build starts. They don't need to be written in a subprocess, apparently, so I left them as is.
2018-07-27 21:37:55 +02:00
..
bind Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
helper
io doc: Sync classref with current source 2018-07-26 11:56:21 +02:00
math Merge pull request #18955 from tagcup/fix_set_scale 2018-07-26 10:37:03 +02:00
os Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
allocators.h
array.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
array.h
class_db.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
class_db.h -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios 2018-07-02 15:08:35 -03:00
color_names.inc Style: Apply clang-format (5.0) to some missed files 2018-05-31 09:00:37 +02:00
color.cpp [Core] 64-bit int Color methods 2018-07-25 15:34:24 -05:00
color.h [Core] 64-bit int Color methods 2018-07-25 15:34:24 -05:00
command_queue_mt.cpp
command_queue_mt.h Added ability for SSAO to affect AO textures too 2018-07-02 16:50:52 -03:00
compressed_translation.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
compressed_translation.h
core_builders.py Running builder (content generator) functions in subprocesses on Windows 2018-07-27 21:37:55 +02:00
core_string_names.cpp
core_string_names.h
cowdata.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
dictionary.cpp Add Dictionary::erase_checked(key) method 2018-07-18 23:07:31 +02:00
dictionary.h Add Dictionary::erase_checked(key) method 2018-07-18 23:07:31 +02:00
dvector.cpp
dvector.h Style: Format code with clang-format 6.0.1 2018-07-18 16:27:03 +02:00
engine.cpp GDScript access to copyright, license, author and donor information. 2018-05-19 00:40:16 +01:00
engine.h GDScript access to copyright, license, author and donor information. 2018-05-19 00:40:16 +01:00
error_list.h
error_macros.cpp
error_macros.h Style: Apply clang-format (5.0) to some missed files 2018-05-31 09:00:37 +02:00
func_ref.cpp
func_ref.h
global_constants.cpp Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
global_constants.h
hash_map.h
hashfuncs.h -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios 2018-07-02 15:08:35 -03:00
image.cpp Merge pull request #19313 from RandomShaper/improve-image 2018-07-23 16:21:45 -03:00
image.h Merge pull request #19313 from RandomShaper/improve-image 2018-07-23 16:21:45 -03:00
input_map.cpp
input_map.h
int_types.h
list.h
make_binders.py Running builder (content generator) functions in subprocesses on Windows 2018-07-27 21:37:55 +02:00
map.h
message_queue.cpp -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
message_queue.h
method_bind.cpp
method_bind.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
method_ptrcall.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
node_path.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
node_path.h -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios 2018-07-02 15:08:35 -03:00
oa_hash_map.h
object.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
object.h -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios 2018-07-02 15:08:35 -03:00
ordered_hash_map.h
packed_data_container.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
packed_data_container.h
pair.h
path_remap.cpp
path_remap.h
pool_allocator.cpp Fix PoolAllocator::resize for too large p_new_size 2018-05-17 00:35:47 +02:00
pool_allocator.h
print_string.cpp
print_string.h
project_settings.cpp Fix main scene file filter 2018-07-26 11:48:12 +02:00
project_settings.h Fix build issues and typos after c69de2ba4 2018-07-20 08:37:10 +02:00
ref_ptr.cpp
ref_ptr.h
reference.cpp
reference.h
register_core_types.cpp -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
register_core_types.h
resource.cpp -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios 2018-07-02 15:08:35 -03:00
resource.h
rid.cpp
rid.h
ring_buffer.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
safe_refcount.cpp reduce clang warning spam 2018-07-24 12:13:05 +02:00
safe_refcount.h reduce clang warning spam 2018-07-24 12:13:05 +02:00
script_debugger_local.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
script_debugger_local.h Local debugger fixes and extensions 2018-05-07 23:17:06 -04:00
script_debugger_remote.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
script_debugger_remote.h Fix debugger focus stealing 2018-05-28 21:49:48 +02:00
script_language.cpp Global class names (and GDScript support for it) 2018-07-15 19:29:00 -03:00
script_language.h Add editor highlight for type-safe lines 2018-07-20 21:55:18 -03:00
SCsub Running builder (content generator) functions in subprocesses on Windows 2018-07-27 21:37:55 +02:00
self_list.h
set.h
simple_type.h
sort.h
string_buffer.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
string_builder.cpp
string_builder.h
string_db.cpp
string_db.h -Fixes to how hashing happened, now StringName and NodePath use default hasher, this was leading to some severe slowdown in scenarios 2018-07-02 15:08:35 -03:00
translation.cpp Removed unnecessary assignments 2018-07-24 09:51:03 +02:00
translation.h
type_info.h State machine animation node 2018-06-25 16:22:41 -03:00
typedefs.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
ucaps.h
undo_redo.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
undo_redo.h Add a message when there is nothing to Undo or Redo 2018-05-27 12:53:52 -03:00
ustring.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
ustring.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
variant_call.cpp Merge pull request #18282 from aaronfranke/better-mathf 2018-07-26 10:48:47 +02:00
variant_construct_string.cpp
variant_op.cpp Hacked around duplication bug. I think duplicate needs to be even smarter, maybe pass two bools? (containers and/or resources) 2018-07-03 08:34:06 -03:00
variant_parser.cpp
variant_parser.h
variant.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
variant.h State machine animation node 2018-06-25 16:22:41 -03:00
vector.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
version.h
vmap.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
vset.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00