Commit:    5e9d6016834e7cad14af3768a2de66fc7ec3e54c
Author:    Anatol Belski <[email protected]>         Mon, 16 Sep 2013 08:48:43 +0200
Parents:   459e538f4cea2407c5b510dacd4d838085e8a750
Branches:  master

Link:       
http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=5e9d6016834e7cad14af3768a2de66fc7ec3e54c

Log:
added an extra config for oci8 and implemented a way

to override the ext configure option through the config

Changed paths:
  M  client/data/config/pecl/exts.ini
  M  client/include/PeclExt.php


Diff:
diff --git a/client/data/config/pecl/exts.ini b/client/data/config/pecl/exts.ini
index 5b5ad88..d4a795d 100644
--- a/client/data/config/pecl/exts.ini
+++ b/client/data/config/pecl/exts.ini
@@ -227,3 +227,10 @@ libs[]=pdflib
 exts[]=
 opts[]=
 
+[oci8]
+type=with
+libs[]=
+exts[]=
+opts[]=--with-oci8=C:\pecl-dep-libs\oracle\instantclient_10_2\sdk,shared
+opts[]=--with-oci8-11g=C:\pecl-dep-libs\oracle\instantclient_11_2\sdk,shared
+
diff --git a/client/include/PeclExt.php b/client/include/PeclExt.php
index bc0ff9b..ed761a4 100644
--- a/client/include/PeclExt.php
+++ b/client/include/PeclExt.php
@@ -236,13 +236,34 @@ class PeclExt
        protected function buildConfigureLine(array $data)
        {
                $ret = '';
+               $ignore_main_opt = false;
 
                if (!isset($data['type'])
                        || !in_array($data['type'], array('with', 'enable'))) {
                        throw new \Exception("Unknown extention configure type, 
expected enable/with");
                }
 
-               $ret = ' "--' . $data['type'] . '-' . str_replace('_', '-', 
$this->name) . '=shared" ';
+               $main_opt = '--' . $data['type'] . '-' . str_replace('_', '-', 
$this->name);
+
+               if (isset($data['opts']) && $data['opts']) {
+                       $data['opts'] = !is_array($data['opts']) ? 
array($data['opts']) : $data['opts'];
+                       foreach($data['opts'] as $opt) {
+                               if ($opt) {
+                                       /* XXX simple check for opt syntax */
+                                       $ret .= ' "' . $opt . '" ';
+                               }
+                               /* the main enable/with option was overridden 
in the ini */
+                               if (strstr($opt, "$main_opt=") !== false) {
+                                       $ignore_main_opt = true;
+                               }
+                       }
+               } else {
+                       $data['opts'] = array();
+               }
+
+               if (!$ignore_main_opt) {
+                       $ret .=  ' "' . $main_opt . '=shared" ';
+               }
 
                if (isset($data['libs']) && $data['libs']) {
                        $data['libs'] = !is_array($data['libs']) ? 
array($data['libs']) : $data['libs'];
@@ -282,18 +303,6 @@ class PeclExt
                        $data['libs'] = array();
                }
 
-               if (isset($data['opts']) && $data['opts']) {
-                       $data['opts'] = !is_array($data['opts']) ? 
array($data['opts']) : $data['opts'];
-                       foreach($data['opts'] as $opt) {
-                               if ($opt) {
-                                       /* XXX simple check for opt syntax */
-                                       $ret .= ' "' . $opt . '" ';
-                               }
-                       }
-               } else {
-                       $data['opts'] = array();
-               }
-
                if (isset($data['exts']) && $data['exts']) {
                        if (empty($this->non_core_ext_deps)) {
                                 $this->setupNonCoreExtDeps();


--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to