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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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
SCsub Running builder (content generator) functions in subprocesses on Windows 2018-07-27 21:37:55 +02:00
allocators.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
array.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
array.h Duplicate Arrays and Dictionaries when instancing scene in editor 2018-03-13 17:18:08 +02:00
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.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
color_names.inc Style: Apply clang-format (5.0) to some missed files 2018-05-31 09:00:37 +02:00
command_queue_mt.cpp Fix several in-class initialization clang warning 2018-03-22 00:17:18 -03:00
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 Fix typos with codespell 2018-02-21 19:46:06 +01:00
core_builders.py Running builder (content generator) functions in subprocesses on Windows 2018-07-27 21:37:55 +02:00
core_string_names.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
core_string_names.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
error_macros.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
error_macros.h Style: Apply clang-format (5.0) to some missed files 2018-05-31 09:00:37 +02:00
func_ref.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
func_ref.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
global_constants.cpp Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
global_constants.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
hash_map.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 Added method to clear input events of an action 2018-05-03 00:26:49 +02:00
input_map.h Added method to clear input events of an action 2018-05-03 00:26:49 +02:00
int_types.h Update copyright statements to 2018 2018-01-01 14:40:47 +01:00
list.h Fix typos in code and docs with codespell 2018-01-18 22:01:42 +01:00
make_binders.py Running builder (content generator) functions in subprocesses on Windows 2018-07-27 21:37:55 +02:00
map.h Fix typos with codespell 2018-02-21 19:46:06 +01:00
message_queue.cpp -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
message_queue.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
method_bind.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 updated OAHashMap to use robinhood hashing 2018-05-03 17:00:21 +02:00
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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
pair.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
path_remap.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
path_remap.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
pool_allocator.cpp Fix PoolAllocator::resize for too large p_new_size 2018-05-17 00:35:47 +02:00
pool_allocator.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
print_string.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
print_string.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
ref_ptr.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
reference.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
reference.h Fix several in-class initialization clang warning 2018-03-22 00:17:18 -03:00
register_core_types.cpp -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
register_core_types.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
rid.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
rid.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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
self_list.h Fixes incorrect adding to last in self_list 2018-04-11 19:59:41 +08:00
set.h Fix typos with codespell 2018-02-21 19:46:06 +01:00
simple_type.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
sort.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
string_buffer.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
string_builder.cpp fixed crash with StringBuilder 2018-01-20 15:26:58 +01:00
string_builder.h Fix several in-class initialization clang warning 2018-03-22 00:17:18 -03:00
string_db.cpp Fix some Coverity warnings in String API 2018-04-18 22:20:39 +02:00
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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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.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
variant_call.cpp Merge pull request #18282 from aaronfranke/better-mathf 2018-07-26 10:48:47 +02:00
variant_construct_string.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
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 add template argument for size in StringBuffer 2018-01-20 20:03:17 +01:00
variant_parser.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
vector.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
version.h Refactor version macros and fix related bugs 2018-02-23 20:15:29 +01:00
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