summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2012-07-24 17:29:28 +0200
committerJan Holesovsky <kendy@suse.cz>2012-07-24 17:30:50 +0200
commite8ddf693e69ea768e4cb1bd4c0445990149af07d (patch)
tree4fef5c2096ca114332c9aba05ab0426a7c79f268 /solenv
parent2e5fcf43328cefc099b6766d9d06169756d25761 (diff)
Cross-compiling-msi-related changes; not finished.
Change-Id: Ib0d3d43a291f01c4c0d9c5adb0055c180b3ab40a
Diffstat (limited to 'solenv')
-rw-r--r--solenv/bin/make_installer.pl2
-rw-r--r--solenv/bin/modules/installer/control.pm16
-rw-r--r--solenv/bin/modules/installer/globals.pm2
-rw-r--r--solenv/bin/modules/installer/windows/msiglobal.pm2
4 files changed, 18 insertions, 4 deletions
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl
index e58bd4d138f5..1a7dd57c9dc4 100644
--- a/solenv/bin/make_installer.pl
+++ b/solenv/bin/make_installer.pl
@@ -261,7 +261,7 @@ if (!($installer::globals::is_copy_only_project)) { installer::ziplist::set_manu
# Checking version of makecab.exe
##############################################
-if ( $installer::globals::iswindowsbuild && (!defined($ENV{'CROSS_COMPILING'}) || $ENV{'CROSS_COMPILING'} ne 'YES' || $ENV{'PKGFORMAT'} eq 'msi')) { installer::control::check_makecab_version(); }
+if ( $installer::globals::iswindowsbuild && (!defined($ENV{'CROSS_COMPILING'}) || $ENV{'CROSS_COMPILING'} ne 'YES' || $installer::globals::packageformat eq 'msi')) { installer::control::check_makecab_version(); }
##########################################################
# Getting the include path from the settings in zip list
diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm
index efc633135b71..57659a1f268c 100644
--- a/solenv/bin/modules/installer/control.pm
+++ b/solenv/bin/modules/installer/control.pm
@@ -79,6 +79,12 @@ sub check_system_path
# All platforms: zip
# Windows only: "msiinfo.exe", "msidb.exe", "uuidgen.exe", "makecab.exe", "msitran.exe", "expand.exe" for msi database and packaging
+ if ($ENV{'CROSS_COMPILING'} eq 'YES')
+ {
+ # we build our own msi* etc. tools when cross-compiling
+ $ENV{'PATH'} .= $installer::globals::pathseparator . $ENV{'OUTDIR_FOR_BUILD'} . '/bin';
+ }
+
my $onefile;
my $error = 0;
my $pathvariable = $ENV{'PATH'};
@@ -103,7 +109,11 @@ sub check_system_path
if (($installer::globals::iswin) && ($installer::globals::iswindowsbuild))
{
- @needed_files_in_path = ("zip.exe", "msiinfo.exe", "msidb.exe", "uuidgen.exe", "makecab.exe", "msitran.exe", "expand.exe");
+ @needed_files_in_path = ("zip.exe", "msiinfo.exe", "msidb.exe", "uuidgen", "makecab.exe", "msitran.exe", "expand.exe");
+ }
+ elsif ($installer::globals::isunix && $installer::globals::packageformat eq 'msi')
+ {
+ @needed_files_in_path = ("zip", "msiinfo.exe", "msidb.exe", "uuidgen", "makecab.exe", "msitran.exe", "cabextract");
}
elsif ($installer::globals::iswin)
{
@@ -168,6 +178,10 @@ sub get_makecab_version
my $makecabversion = -1;
my $systemcall = "makecab.exe |";
+ if ( $installer::globals::isunix )
+ {
+ $systemcall = "$ENV{'OUTDIR_FOR_BUILD'}/bin/makecab.exe |";
+ }
my @makecaboutput = ();
open (CAB, $systemcall);
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index ddc2e2176939..09b3b2d14f3a 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -462,7 +462,7 @@ BEGIN
$libextension = "\.dll";
$isunix = 0;
$iswin = 1;
- $archiveformat = ".zip";
+ $archiveformat = ".zip";
%savedmapping = ();
%savedrevmapping = ();
%savedrev83mapping = ();
diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm
index 93cc78c8cbfe..e9bd828b46f3 100644
--- a/solenv/bin/modules/installer/windows/msiglobal.pm
+++ b/solenv/bin/modules/installer/windows/msiglobal.pm
@@ -1272,7 +1272,7 @@ sub get_guid_list
# "-c" for uppercase output
my $systemcall = "$uuidgen -n$number |";
- if ( $ENV{'CROSS_COMPILING'} eq 'YES' )
+ if ( $installer::globals::isunix )
{
# -n is not present in the non-windows uuidgen
$systemcall = "for I in `seq 1 $number` ; do uuidgen ; done |";