use strict; my @RESOURCES = ("01_dejavusans.ttf", "02_droidsans-fallback.ttf", "03_jomolhari-id-a3d.ttf", "04_padauk.ttf", "05_khmeros.ttf", "06_code2000.ttf", "basic.skn", "symbols_24.png", "classificator.txt", "drawing_rules.bin", "fonts_blacklist.txt", "fonts_whitelist.txt", "unicode_blocks.txt", "languages.txt", "maps.update", "countries.txt", "welcome.html", "about-travelguide-desktop.html", "eula.html", "dictionary.slf"); my @QT_LIBS = ("QtCore4.dll", "QtGui4.dll", "QtOpenGL4.dll", "QtNetwork4.dll", "QtWebkit4.dll"); my $QT_PATH = "..\\..\\..\\SDK\\Desktop\\Qt\\4.7.3\\msvc2010\\bin\\"; my $BINARY_PATH = "..\\..\\..\\omim-build-msvc2010\\out\\release\\"; my $DATA_PATH = "..\\..\\data\\"; my $MERGE_MODULE_PATH = "\\Program Files (x86)\\Common Files\\Merge Modules\\Microsoft_VC100_CRT_x86.msm"; my $MERGE_MODULE_TITLE = "Visual C++ 10.0 Runtime"; # read guids from file my $GUIDS_FILE="guids.txt"; my %GUIDS; open(IN, "<$GUIDS_FILE") or die "Couldn't open $GUIDS_FILE: $!"; while () { chomp; $_ =~ m/([0-9a-zA-Z-]*) (.*$)/; $GUIDS{$2} = $1; } close IN; # generate mwm data file components list sub GenComponents(\@$) { my @files = @{(shift)}; my $SOURCE_PATH = shift; my $COMPONENTS = ""; my $REFS = ""; foreach (@files) { $_ =~ /([a-zA-Z- _\.0-9]*)$/; my $nameOnly = $1; # fix id to be in valid wix format my $id = "_" . $nameOnly; $id =~ s/-/_/g; if (exists($GUIDS{$nameOnly})) { $COMPONENTS = $COMPONENTS . " \n" . " \n" . " \n"; $REFS = $REFS . " \n"; } else { # do nothing print "ERROR: missing file: $nameOnly\n"; } } chomp($COMPONENTS); return ($COMPONENTS, $REFS); } my @files = <../../data/*.mwm>; my @DATA_COMPONENTS = GenComponents(@files, $DATA_PATH); my @RESOURCE_COMPONENTS = GenComponents(@RESOURCES, $DATA_PATH); my @QT_COMPONENTS = GenComponents(@QT_LIBS, $QT_PATH); print < $QT_COMPONENTS[0] $DATA_COMPONENTS[0] $RESOURCE_COMPONENTS[0] $QT_COMPONENTS[1] $DATA_COMPONENTS[1] $RESOURCE_COMPONENTS[1] RAWTEXT