Skip to content

Commit 4040878

Browse files
committed
Add support for ibm_db2
1 parent 3f13765 commit 4040878

File tree

6 files changed

+51
-7
lines changed

6 files changed

+51
-7
lines changed

extension/BuildPhpExtension/BuildPhpExtension.psd1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
# NestedModules = @()
6161

6262
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
63-
FunctionsToExport = 'Invoke-PhpBuildExtension', 'Add-BuildRequirements', 'Add-Path', 'Get-PhpSdk', 'Add-Dependencies', 'Add-PhpDependencies', 'Get-VsVersion', 'Add-Extension', 'Get-Extension', 'Get-BuildDirectory', 'Get-ExtensionSource', 'Add-ExtensionDependencies', 'Add-BuildTools', 'Add-OciSdk', 'Get-ExtensionConfig', 'Add-Extensions', 'Get-PhpBuild', 'Invoke-Build', 'Invoke-Tests', 'Add-Package', 'Get-PhpDevelBuild', 'Get-OlderVsVersion', 'Get-PeclLibraryZip'
63+
FunctionsToExport = 'Invoke-PhpBuildExtension', 'Add-BuildRequirements', 'Add-Path', 'Get-PhpSdk', 'Add-Dependencies', 'Add-PhpDependencies', 'Get-VsVersion', 'Add-Extension', 'Get-Extension', 'Get-BuildDirectory', 'Get-ExtensionSource', 'Add-ExtensionDependencies', 'Add-BuildTools', 'Add-OciSdk', 'Add-OdbcCli', 'Get-ExtensionConfig', 'Add-Extensions', 'Get-PhpBuild', 'Invoke-Build', 'Invoke-Tests', 'Add-Package', 'Get-PhpDevelBuild', 'Get-OlderVsVersion', 'Get-PeclLibraryZip'
6464

6565
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
6666
CmdletsToExport = '*'
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"require": {
3+
"odbc_cli": "*"
4+
},
5+
"php-ext": {
6+
"configure-options": [
7+
{
8+
"name": "with-ibm_db2=../deps"
9+
}
10+
]
11+
}
12+
}

extension/BuildPhpExtension/private/Add-ExtensionDependencies.ps1

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ Function Add-ExtensionDependencies {
1919
instantclient {
2020
Add-OciSdk -Config $Config
2121
}
22+
odbc_cli {
23+
Add-OdbcCli -Config $Config
24+
}
2225
Default {
2326
$url = "https://downloads.php.net/~windows/pecl/deps/$_"
2427
Invoke-WebRequest -Uri $url -OutFile $_ -UseBasicParsing
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Function Add-OdbcCli {
2+
<#
3+
.SYNOPSIS
4+
Add sdk for DB2 extension.
5+
.PARAMETER Config
6+
Configuration for the extension.
7+
#>
8+
[OutputType()]
9+
param(
10+
[Parameter(Mandatory = $true, Position=0, HelpMessage='Configuration for the extension')]
11+
[PSCustomObject] $Config
12+
)
13+
begin {
14+
}
15+
process {
16+
$prefix = if ($Config.arch -eq "x64") {"ntx64"} else {"nt32"}
17+
$url = "https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/${prefix}_odbc_cli.zip"
18+
Invoke-WebRequest $url -OutFile "odbc_cli.zip"
19+
Expand-Archive -Path "odbc_cli.zip" -DestinationPath "../deps"
20+
Copy-Item ../deps/clidriver/* -Destination "../deps" -Recurse -Force
21+
}
22+
end {
23+
}
24+
}

extension/BuildPhpExtension/private/Add-Package.ps1

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,19 @@ function Add-Package {
1515
process {
1616
$currentDirectory = (Get-Location).Path
1717
New-Item -Path $currentDirectory\artifacts -ItemType Directory -Force | Out-Null
18-
if(Test-Path ..\deps) {
19-
Get-ChildItem -Path ..\deps -Recurse -Filter "LICENSE*" | ForEach-Object {
20-
Copy-Item -Path $_.FullName -Destination artifacts -Force
21-
}
22-
}
2318
$docsFiles = @("LICENSE", "COPYRIGHT", "COPYING")
2419
$docsFiles | ForEach-Object {
2520
if(Test-Path -Path $_) {
2621
Copy-Item -Path $_ -Destination artifacts -Force
2722
}
2823
}
24+
if(Test-Path ..\deps) {
25+
Get-ChildItem -Path ..\deps -Recurse -Filter "LICENSE*" | ForEach-Object {
26+
if(Test-Path -Path $_ -PathType Leaf) {
27+
Copy-Item -Path $_.FullName -Destination artifacts -Force
28+
}
29+
}
30+
}
2931
$Config.docs | ForEach-Object {
3032
if($null -ne $_) {
3133
$directoryPath = [System.IO.Path]::GetDirectoryName($_)

extension/BuildPhpExtension/private/Get-ExtensionConfig.ps1

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,11 @@ Function Get-ExtensionConfig {
127127
$extensionSeries = Invoke-WebRequest -Uri "https://downloads.php.net/~windows/pecl/deps"
128128
$extensionArchivesSeries = Invoke-WebRequest -Uri "https://downloads.php.net/~windows/pecl/deps/archives"
129129
}
130+
$thirdPartyLibraries = @("instantclient", "odbc_cli")
130131
$Libraries | Select-Object -Unique | ForEach-Object {
131-
if($null -ne $_ -and -not([string]::IsNullOrWhiteSpace($_))) {
132+
if($thirdPartyLibraries.Contains($_)) {
133+
$config.extension_libraries += $_
134+
} elseif($null -ne $_ -and -not([string]::IsNullOrWhiteSpace($_))) {
132135
if ($phpSeries.Content.ToLower().Contains($_) -and -not($config.php_libraries.Contains($_))) {
133136
$config.php_libraries += $_
134137
} elseif (($extensionSeries.Content + $extensionArchivesSeries.Content).ToLower().Contains($_.ToLower()) -and -not($config.extension_libraries.Contains($_))) {

0 commit comments

Comments
 (0)