diff --git a/generator.py b/generator.py index d2c9bdaf8..f5b3216ef 100755 --- a/generator.py +++ b/generator.py @@ -66,29 +66,38 @@ def build_gir_if_needed(updated_submodule): return False return True +def regen_crates(path, level=0): + for entry in listdir(path): + entry_file = join(path, entry) + if isdir(entry_file): + if level < 2 and not regen_crates(entry_file, level + 1): + return False + elif entry == 'Gir.toml': + print('==> Regenerating "{}"...'.format(entry_file)) -def regen_crates(): - for entry in [f for f in listdir('.') if isfile(join('.', f))]: - if entry.startswith('Gir_Gst') and entry.endswith('.toml'): - print('==> Regenerating "{}"...'.format(entry)) + args = ['./gir/target/release/gir', '-c', entry_file, '-o', path, '-d', 'gir-files'] + if level > 1: + args.append('-m') + args.append('sys') + error = False try: - run_command(['./gir/target/release/gir', '-c', entry]) + error = run_command(args) is False except Exception as err: print('The following error occurred: {}'.format(err)) + error = True + if error is True: line = input('Do you want to continue? [y/N] ').strip().lower() if line != 'y': - sys.exit(1) + return False print('<== Done!') - + return True def main(): - if def_check_submodule("gir-files") == FAILURE: - return 1 if not build_gir_if_needed(def_check_submodule("gir")): return 1 print('=> Regenerating crates...') - if not regen_crates(): + if not regen_crates("."): return 1 if not run_command(['cargo', 'fmt']): return 1 diff --git a/Gir_GstApp.toml b/gstreamer-app/Gir.toml similarity index 98% rename from Gir_GstApp.toml rename to gstreamer-app/Gir.toml index fdf93563c..819a7160a 100644 --- a/Gir_GstApp.toml +++ b/gstreamer-app/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstApp" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-app" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstAudio.toml b/gstreamer-audio/Gir.toml similarity index 98% rename from Gir_GstAudio.toml rename to gstreamer-audio/Gir.toml index 5cec5b2aa..8f59404c3 100644 --- a/Gir_GstAudio.toml +++ b/gstreamer-audio/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstAudio" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-audio" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstBase.toml b/gstreamer-base/Gir.toml similarity index 99% rename from Gir_GstBase.toml rename to gstreamer-base/Gir.toml index b3ad494f0..76329c3e1 100644 --- a/Gir_GstBase.toml +++ b/gstreamer-base/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstBase" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-base" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstCheck.toml b/gstreamer-check/Gir.toml similarity index 91% rename from Gir_GstCheck.toml rename to gstreamer-check/Gir.toml index 281fda760..111459701 100644 --- a/Gir_GstCheck.toml +++ b/gstreamer-check/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstCheck" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-check" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstController.toml b/gstreamer-controller/Gir.toml similarity index 94% rename from Gir_GstController.toml rename to gstreamer-controller/Gir.toml index bcd6d5fd3..15b608d50 100644 --- a/Gir_GstController.toml +++ b/gstreamer-controller/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstController" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-controller" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstEditingServices.toml b/gstreamer-editing-services/Gir.toml similarity index 99% rename from Gir_GstEditingServices.toml rename to gstreamer-editing-services/Gir.toml index 482e64b7d..7325d7139 100644 --- a/Gir_GstEditingServices.toml +++ b/gstreamer-editing-services/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GES" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-editing-services" +target_path = "." work_mode = "normal" generate_safety_asserts = true single_version_file = true diff --git a/Gir_GstGL.toml b/gstreamer-gl/Gir.toml similarity index 99% rename from Gir_GstGL.toml rename to gstreamer-gl/Gir.toml index 0a5bf061e..96a030a77 100644 --- a/Gir_GstGL.toml +++ b/gstreamer-gl/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstGL" version = "1.0" min_cfg_version = "1.14" -target_path = "gstreamer-gl" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstNet.toml b/gstreamer-net/Gir.toml similarity index 95% rename from Gir_GstNet.toml rename to gstreamer-net/Gir.toml index c4cdc7c4f..ddd577771 100644 --- a/Gir_GstNet.toml +++ b/gstreamer-net/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstNet" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-net" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstPbutils.toml b/gstreamer-pbutils/Gir.toml similarity index 99% rename from Gir_GstPbutils.toml rename to gstreamer-pbutils/Gir.toml index aa5a20932..64282be2c 100644 --- a/Gir_GstPbutils.toml +++ b/gstreamer-pbutils/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstPbutils" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-pbutils" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstPlayer.toml b/gstreamer-player/Gir.toml similarity index 98% rename from Gir_GstPlayer.toml rename to gstreamer-player/Gir.toml index a950cb92c..cf8fa50be 100644 --- a/Gir_GstPlayer.toml +++ b/gstreamer-player/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstPlayer" version = "1.0" min_cfg_version = "1.12" -target_path = "gstreamer-player" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstRtp.toml b/gstreamer-rtp/Gir.toml similarity index 95% rename from Gir_GstRtp.toml rename to gstreamer-rtp/Gir.toml index 46d1b685d..ba2874520 100644 --- a/Gir_GstRtp.toml +++ b/gstreamer-rtp/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstRtp" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-rtp" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstRtspServer.toml b/gstreamer-rtsp-server/Gir.toml similarity index 99% rename from Gir_GstRtspServer.toml rename to gstreamer-rtsp-server/Gir.toml index 55c254ca3..44f02384b 100644 --- a/Gir_GstRtspServer.toml +++ b/gstreamer-rtsp-server/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstRtspServer" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-rtsp-server" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstRtsp.toml b/gstreamer-rtsp/Gir.toml similarity index 96% rename from Gir_GstRtsp.toml rename to gstreamer-rtsp/Gir.toml index a4b59ab8e..cfc489688 100644 --- a/Gir_GstRtsp.toml +++ b/gstreamer-rtsp/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstRtsp" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-rtsp" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstSdp.toml b/gstreamer-sdp/Gir.toml similarity index 88% rename from Gir_GstSdp.toml rename to gstreamer-sdp/Gir.toml index d69dadac2..5e48ed319 100644 --- a/Gir_GstSdp.toml +++ b/gstreamer-sdp/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstSdp" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-sdp" +target_path = "." work_mode = "normal" concurrency = "send" generate_safety_asserts = true diff --git a/Gir_GstVideo.toml b/gstreamer-video/Gir.toml similarity index 99% rename from Gir_GstVideo.toml rename to gstreamer-video/Gir.toml index a25daef02..09936f5e6 100644 --- a/Gir_GstVideo.toml +++ b/gstreamer-video/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstVideo" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer-video" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_GstWebRTC.toml b/gstreamer-webrtc/Gir.toml similarity index 97% rename from Gir_GstWebRTC.toml rename to gstreamer-webrtc/Gir.toml index 4d1174ae8..3a2bcc078 100644 --- a/Gir_GstWebRTC.toml +++ b/gstreamer-webrtc/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "GstWebRTC" version = "1.0" min_cfg_version = "1.14" -target_path = "gstreamer-webrtc" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true diff --git a/Gir_Gst.toml b/gstreamer/Gir.toml similarity index 99% rename from Gir_Gst.toml rename to gstreamer/Gir.toml index c3d5f60f4..8e96fcd5b 100644 --- a/Gir_Gst.toml +++ b/gstreamer/Gir.toml @@ -1,9 +1,9 @@ [options] -girs_dir = "gir-files" +girs_dir = "../gir-files" library = "Gst" version = "1.0" min_cfg_version = "1.8" -target_path = "gstreamer" +target_path = "." work_mode = "normal" concurrency = "send+sync" generate_safety_asserts = true