diff options
author | Jan Holesovsky <kendy@suse.cz> | 2012-07-24 17:29:28 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2012-07-24 17:30:50 +0200 |
commit | e8ddf693e69ea768e4cb1bd4c0445990149af07d (patch) | |
tree | 4fef5c2096ca114332c9aba05ab0426a7c79f268 /solenv | |
parent | 2e5fcf43328cefc099b6766d9d06169756d25761 (diff) |
Cross-compiling-msi-related changes; not finished.
Change-Id: Ib0d3d43a291f01c4c0d9c5adb0055c180b3ab40a
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/bin/make_installer.pl | 2 | ||||
-rw-r--r-- | solenv/bin/modules/installer/control.pm | 16 | ||||
-rw-r--r-- | solenv/bin/modules/installer/globals.pm | 2 | ||||
-rw-r--r-- | solenv/bin/modules/installer/windows/msiglobal.pm | 2 |
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 |"; |