From 9f1142f0cdd5a5f8ca68740d475435b51be85ca1 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 3 Apr 2015 15:07:27 +0200 Subject: [PATCH] build system: target for updating the GUI's Qt project file --- Rakefile | 30 +++++++++++++++++-- .../qtcreator/mkvtoolnix-gui.pro | 8 ++--- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/Rakefile b/Rakefile index fc6b1fd2b..15d94c427 100755 --- a/Rakefile +++ b/Rakefile @@ -68,6 +68,8 @@ def setup_globals $all_headers = $source_directories.collect { |dir| FileList[ "#{dir}/**/*.h", ].to_a }.flatten.sort $all_objects = $all_sources.collect { |file| file.ext('o') } + $gui_ui_files = FileList["src/mkvtoolnix-gui/forms/**/*.ui"].to_a if $build_mkvtoolnix_gui + $top_srcdir = c(:top_srcdir) $dependency_dir = "#{$top_srcdir}/rake.d/dependency.d" $dependency_tmp_dir = "#{$dependency_dir}/tmp" @@ -488,6 +490,29 @@ namespace :dev do formatter.width = 9999999 formatter.write doc, File.open(qrc, "w") end + + desc "Update Qt project file" + task "update-qt-project" do + project_file = "src/mkvtoolnix-gui/qtcreator/mkvtoolnix-gui.pro" + content = [] + skipping = false + IO.readlines(project_file).collect { |line| line.chomp }.each do |line| + content << line unless skipping + + if /^FORMS\b/.match line + skipping = true + content += $gui_ui_files.collect { |ui| ui.gsub!(/.*forms\//, '../forms/'); " #{ui} \\" }.sort + + elsif skipping && /^\s*$/.match(line) + skipping = false + content << line + end + end + + File.open(project_file, "w") do |file| + file.puts content.join("\n") + end + end end desc "Create source code tarball from current version in .." @@ -778,8 +803,7 @@ end # if $build_mkvtoolnix_gui - ui_files = FileList["src/mkvtoolnix-gui/forms/**/*.ui"].to_a - ui_h_files = ui_files.collect { |ui| ui.ext 'h' } + ui_h_files = $gui_ui_files.collect { |ui| ui.ext 'h' } cpp_files = FileList['src/mkvtoolnix-gui/**/*.cpp'].to_a h_files = FileList['src/mkvtoolnix-gui/**/*.h'].to_a - ui_h_files cpp_content = read_files cpp_files @@ -803,7 +827,7 @@ if $build_mkvtoolnix_gui description("Build the mkvtoolnix-gui executable"). aliases("mkvtoolnix-gui"). sources(qobject_h_files.collect { |h| h.ext 'moc' }). - sources(cpp_files, ui_files, 'src/mkvtoolnix-gui/qt_resources.cpp'). + sources(cpp_files, $gui_ui_files, 'src/mkvtoolnix-gui/qt_resources.cpp'). sources("src/mkvtoolnix-gui/resources.o", :if => c?(:MINGW)). libraries($common_libs, :qt). libraries("-mwindows", :if => c?(:MINGW)). diff --git a/src/mkvtoolnix-gui/qtcreator/mkvtoolnix-gui.pro b/src/mkvtoolnix-gui/qtcreator/mkvtoolnix-gui.pro index e82a09cfa..a9d02bdb6 100644 --- a/src/mkvtoolnix-gui/qtcreator/mkvtoolnix-gui.pro +++ b/src/mkvtoolnix-gui/qtcreator/mkvtoolnix-gui.pro @@ -14,19 +14,19 @@ SOURCES += HEADERS += FORMS += \ + ../forms/available_update_info_dialog.ui \ ../forms/header_editor/tab.ui \ ../forms/header_editor/tool.ui \ - ../forms/job_widget.ui \ + ../forms/jobs/tool.ui \ ../forms/main_window.ui \ ../forms/merge/ask_scan_for_playlists_dialog.ui \ - ../forms/merge/available_update_info_dialog.ui \ ../forms/merge/command_line_dialog.ui \ ../forms/merge/select_playlist_dialog.ui \ ../forms/merge/tool.ui \ ../forms/preview_warning_dialog.ui \ ../forms/status_bar_progress_widget.ui \ - ../forms/watch_job_container_widget.ui \ - ../forms/watch_job_widget.ui + ../forms/watch_jobs/tab.ui \ + ../forms/watch_jobs/tool.ui \ RESOURCES += \ ../qt_resources.qrc