com web/rmtools: fix for aspecific build variant: client/include/PeclExt.php client/script/pecl.php
| From: | Anatol Belski | Date: | Thu, 10 Oct 2013 11:42:33 +0000 |
| Subject: | com web/rmtools: fix for aspecific build variant: client/include/PeclExt.php client/script/pecl.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-19124@lists.php.net to get a copy of this message | ||
Commit: 3ac31f849f448a5542ad6695ca482276bacf0b4e
Author: Anatol Belski <ab@php.net> Thu, 10 Oct 2013 13:42:33 +0200
Parents: 6d256fbd447d0ba4472fbe314f5d969df0ed2b58
Branches: master
Link: http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=3ac31f849f448a5542ad6695ca482276bacf0b4e
Log:
fix for aspecific build variant
conditions:
- config.w32 contains multiple EXTENSION definitions
- the main configure option isn't enabled
- another option enables a dll with another name from config.w32
Changed paths:
M client/include/PeclExt.php
M client/script/pecl.php
Diff:
diff --git a/client/include/PeclExt.php b/client/include/PeclExt.php
index 8f08745..f492885 100644
--- a/client/include/PeclExt.php
+++ b/client/include/PeclExt.php
@@ -655,13 +655,8 @@ if (!function_exists('rmtools\combinations')) {
return $ret;
}
- public function preparePackage()
+ public function getMultiExtensionNames()
{
- $sub = $this->build->thread_safe ? 'Release_TS' : 'Release';
- $base = $this->build->getObjDir() . DIRECTORY_SEPARATOR . $sub;
- $target = TMP_DIR . DIRECTORY_SEPARATOR . $this->getPackageName();
- $files_to_zip = array();
-
$ext_names = array($this->name);
/* config.w32 can contain multiple EXTENTION definitions, which would lead to
@@ -676,6 +671,18 @@ if (!function_exists('rmtools\combinations')) {
}
}
+ return $ext_names;
+ }
+
+ public function preparePackage()
+ {
+ $sub = $this->build->thread_safe ? 'Release_TS' : 'Release';
+ $base = $this->build->getObjDir() . DIRECTORY_SEPARATOR . $sub;
+ $target = TMP_DIR . DIRECTORY_SEPARATOR . $this->getPackageName();
+ $files_to_zip = array();
+
+ $ext_names = $this->getMultiExtensionNames();
+
$ext_dll_found = false;
foreach ($ext_names as $ext_name) {
$dll_name = 'php_' . $ext_name . '.dll';
diff --git a/client/script/pecl.php b/client/script/pecl.php
index e26f476..0c68e15 100644
--- a/client/script/pecl.php
+++ b/client/script/pecl.php
@@ -256,7 +256,14 @@ foreach ($builds as $build_name) {
$build->configure($ext_conf_line);
}
- if (!preg_match(',^\|\s+' . preg_quote($ext->getName()) .
'\s+\|\s+shared\s+\|,Sm', $build->log_configure)) {
+ $multiext_enabled = 0;
+ foreach ($ext->getMultiExtensionNames() as $one_ext_name) {
+ $multiext_enabled += preg_match(
+ ',^\|\s+' . preg_quote($one_ext_name) . '\s+\|\s+shared\s+\|,Sm',
+ $build->log_configure
+ );
+ }
+ if ($multiext_enabled < 1) {
throw new Exception($ext->getName() . ' is not enabled, skip make phase');
}