diff options
Diffstat (limited to 'cpp/bld-winsdk.ps1')
-rw-r--r-- | cpp/bld-winsdk.ps1 | 327 |
1 files changed, 0 insertions, 327 deletions
diff --git a/cpp/bld-winsdk.ps1 b/cpp/bld-winsdk.ps1 deleted file mode 100644 index bea46da28f..0000000000 --- a/cpp/bld-winsdk.ps1 +++ /dev/null @@ -1,327 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - -# This script builds a WinSDK from a Qpid source checkout that
-# has been cleaned of any SVN artifacts. -# -# On entry: -# 1. Args[0] holds the relative path to Qpid/trunk. -# Directory ".\$args[0]" holds the "cpp" directory and -# file QPID_VERSION.txt. -# 2. Args[1] holds the x86 32-bit BOOST_ROOT. "c:\boost" -# 3. Args[2] holds the x64 64-bit BOOST_ROOT. "c:\boost_x64" -# 4. Args[3] holds the version number. "0.7.946106-99" -# 5. The current directory will receive x86 and x64 subdirs. -# 6. The x86 an x64 dirs are where cmake will run. -# 7. Two Boost installations, 32- and 64-bit, are available. -# 9. Boost directories must not be on the path. -# 9. cmake, 7z, and devenv are already on the path. -# 10. devenv is Visual Studio 2008 -# -# This script creates separate zip kits for 32- and -# for 64-bit variants. -# - -Set-PSDebug -Trace 1 -Set-PSDebug -strict -$ErrorActionPreference='Stop' - -################################ -# -# Global variables -# -[string] $global:bldwinsdkDirectory = Split-Path -parent $MyInvocation.MyCommand.Definition -[string] $global:sourceDirectory = Split-Path -parent $global:bldwinsdkDirectory -[string] $global:currentDirectory = Split-Path -parent $global:sourceDirectory - - -################################ -# -# Unix2Dos -# Change text file to DOS line endings -# -function Unix2Dos -{ - param - ( - [string] $fname - )
-
- $fContent = Get-Content $fname
- $fContent | Set-Content $fname -}
-
- -################################ -# -# BuildAPlatform -# Build a platform, x86 or x64. -# Compiles and packages Debug and RelWithDebInfo configurations. -# -function BuildAPlatform -{ - param - ( - [string] $qpid_cpp_dir, - [string] $platform, - [string] $cmakeGenerator, - [string] $vsTargetDebug, - [string] $vsTargetRelease, - [string] $boostRoot, - [string] $randomness - ) - - [string] $install_dir = "install_$randomness" - [string] $preserve_dir = "preserve_$randomness" - [string] $zipfile = "qpid-cpp-$platform-$ver.zip" - [string] $platform_dir = "$global:currentDirectory/$platform" - [string] $qpid_cpp_src = "$global:currentDirectory/$qpid_cpp_dir" - - # - # Create the platform directory if necessary - # - if (!(Test-Path -path $platform_dir)) - { - New-Item $platform_dir -type Directory | Out-Null - } - - # - # Descend into platform directory - # - Set-Location $platform_dir - - # - # Set environment for this build - # - $env:BOOST_ROOT = "$boostRoot" - $env:QPID_BUILD_ROOT = Get-Location - - # - # Run cmake - # - cmake -G "$cmakeGenerator" "-DCMAKE_INSTALL_PREFIX=$install_dir" $qpid_cpp_src - - # Need to build doxygen api docs separately as nothing depends on them. - # Build for both x86 and x64 or cmake_install fails. - if ("x86" -eq $platform) { - devenv qpid-cpp.sln /build "Release|Win32" /project docs-user-api - } else { - devenv qpid-cpp.sln /build "Release|$platform" /project docs-user-api - } - - # Build both Debug and Release builds so we can ship both sets of libs: - # Make RelWithDebInfo for debuggable release code. - # (Do Release after Debug so that the release executables overwrite the - # debug executables. Don't skip Debug as it creates some needed content.) - devenv qpid-cpp.sln /build "$vsTargetDebug" /project INSTALL - devenv qpid-cpp.sln /build "$vsTargetRelease" /project INSTALL - - # Build the .NET binding - if ("x86" -eq $platform) { - devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` - /build "Debug|Win32" /project org.apache.qpid.messaging - devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` - /build "Debug|$platform" /project org.apache.qpid.messaging.sessionreceiver - devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` - /build "RelWithDebInfo|Win32" /project org.apache.qpid.messaging - devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` - /build "RelWithDebInfo|$platform" /project org.apache.qpid.messaging.sessionreceiver - } else { - devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` - /build "Debug|$platform" /project org.apache.qpid.messaging - devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` - /build "Debug|$platform" /project org.apache.qpid.messaging.sessionreceiver - devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` - /build "RelWithDebInfo|$platform" /project org.apache.qpid.messaging - devenv $qpid_cpp_src\bindings\qpid\dotnet\org.apache.qpid.messaging.sln ` - /build "RelWithDebInfo|$platform" /project org.apache.qpid.messaging.sessionreceiver - } -
- # Define lists of items to be touched in installation tree - # Move target must be a directory - $move=( - ('bin/*.lib','lib'), - ('bin/boost/*.dll','bin') - ) -
- $preserve=( - 'include/qpid/agent', - 'include/qpid/amqp_0_10', - 'include/qpid/management', - 'include/qpid/messaging', - 'include/qpid/sys/IntegerTypes.h', - 'include/qpid/sys/windows/IntegerTypes.h', - 'include/qpid/sys/posix/IntegerTypes.h', - 'include/qpid/types', - 'include/qpid/CommonImportExport.h') -
- $remove=( - 'bin/qpidd.exe', 'bin/qpidbroker*.*', - 'bin/*PDB/qpidd.exe', 'bin/*PDB/qpidbroker*.*', - 'bin/qmfengine*.*', 'bin/qpidxarm*.*', - 'bin/*PDB/qmfengine*.*', 'bin/*PDB/qpidxarm*.*', - 'bin/boost_regex*.*', - 'bin/boost', - 'conf', - 'examples/direct', - 'examples/failover', - 'examples/fanout', - 'examples/pub-sub', - 'examples/qmf-console', - 'examples/request-response', - 'examples/tradedemo', - 'include', - 'plugins') - - # Move some files around in the install tree - foreach ($pattern in $move) { - $target = Join-Path $install_dir $pattern[1] - New-Item -force -type directory $target - Move-Item -force -path "$install_dir/$($pattern[0])" -destination "$install_dir/$($pattern[1])" - } - - # Copy aside the files to preserve - New-Item -path $preserve_dir -type directory - foreach ($pattern in $preserve) { - $target = Join-Path $preserve_dir $pattern - $tparent = Split-Path -parent $target - New-Item -force -type directory $tparent - Move-Item -force -path "$install_dir/$pattern" -destination "$preserve_dir/$pattern" - } - - # Remove everything to remove - foreach ($pattern in $remove) { - Remove-Item -recurse "$install_dir/$pattern" - } - - # Copy back the preserved things - foreach ($pattern in $preserve) { - $target = Join-Path $install_dir $pattern - $tparent = Split-Path -parent $target - New-Item -force -type directory $tparent - Move-Item -force -path "$preserve_dir/$pattern" -destination "$install_dir/$pattern" - } - Remove-Item -recurse $preserve_dir - - # Install the README - Copy-Item -force -path "$qpid_cpp_src/README-winsdk.txt" -destination "$install_dir/README-winsdk.txt" -
- # Set top level info files to DOS line endings
- Unix2Dos "$install_dir/README-winsdk.txt"
- Unix2Dos "$install_dir/LICENSE"
- Unix2Dos "$install_dir/NOTICE"
- - # Install the Debug .NET binding - Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin" -
- # Install the .NET binding examples - New-Item -path $(Join-Path $(Get-Location) $install_dir) -name dotnet_examples -type directory - New-Item -path $(Join-Path $(Get-Location) $install_dir/dotnet_examples) -name examples -type directory - - $src = Resolve-Path "$qpid_cpp_src/bindings/qpid/dotnet/examples" - $dst = Resolve-Path "$install_dir/dotnet_examples" - Copy-Item "$src\" -destination "$dst\" -recurse -force - - $src = Resolve-Path "$qpid_cpp_src/bindings/qpid/dotnet/winsdk_sources" - $dst = Resolve-Path "$install_dir/dotnet_examples" - Copy-Item "$src\*" -destination "$dst\" -recurse -force - - # Zip the /bin PDB files
- &'7z' a -mx9 ".\$install_dir\bin\symbols-debug.zip" ".\$install_dir\bin\DebugPDB\*.pdb" - &'7z' a -mx9 ".\$install_dir\bin\symbols-release.zip" ".\$install_dir\bin\ReleasePDB\*.pdb" - Remove-Item -recurse ".\$install_dir\bin\DebugPDB" - Remove-Item -recurse ".\$install_dir\bin\ReleasePDB" -
- # Zip the dotnet bindings - New-Item -force -type directory "$install_dir/bin/bindingDebug"
- Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin/bindingDebug/" - Copy-Item -force -path "./src/Debug/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/bindingDebug/" - &'7z' a -mx9 ".\$install_dir\bin\dotnet-binding-debug.zip" ".\$install_dir\bin\bindingDebug\*.*" - Remove-Item -recurse ".\$install_dir\bin\bindingDebug" -
- New-Item -force -type directory "$install_dir/bin/bindingRelease"
- Copy-Item -force -path "./src/RelWithDebInfo/org.apache.qpid.messaging*.dll" -destination "$install_dir/bin/bindingRelease/" - Copy-Item -force -path "./src/RelWithDebInfo/org.apache.qpid.messaging*.pdb" -destination "$install_dir/bin/bindingRelease/" - &'7z' a -mx9 ".\$install_dir\bin\dotnet-binding-release.zip" ".\$install_dir\bin\bindingRelease\*.*" - Remove-Item -recurse ".\$install_dir\bin\bindingRelease" - - # Create a new zip for the whole kit. - # Exclude *.pdb so as not include the debug symbols twice - if (Test-Path $zipfile) {Remove-Item $zipfile} - &'7z' a $zipfile ".\$install_dir\*" -xr!*pdb -} - -################################ -# -# Main() -# -# Process the args -# -if ($args.length -lt 3) { - Write-Host 'Usage: bld-winsdk.ps1 qpid_src_dir boost32_dir boost64_dir [version]' - exit -} - -$qpid_src = $args[0] -$boostRoot32 = $args[1] -$boostRoot64 = $args[2] -$ver = $args[3] -if ($ver -eq $null) { - $qpid_version_file="$qpid_src\QPID_VERSION.txt" - - if ( !(Test-Path $qpid_version_file)) { - Write-Host "Path doesn't seem to be a qpid src tree (no QPID_VERSION.txt)" - exit - } - $ver=Get-Content $qpid_version_file -} - -# -# Verify that Boost is not in PATH -# -[string] $oldPath = $env:PATH -$oldPath = $oldPath.ToLower() -if ($oldPath.Contains("boost")) -{ - Write-Host "This script will not work with BOOST defined in the path environment variable." - Exit -} - - -$randomness=[System.IO.Path]::GetRandomFileName() -$qpid_cpp_src="$qpid_src\cpp" - -# -# buid -# -BuildAPlatform $qpid_cpp_src ` - "x64" ` - "Visual Studio 9 2008 Win64" ` - "Debug|x64" ` - "RelWithDebInfo|x64" ` - $boostRoot64 ` - $randomness - -BuildAPlatform $qpid_cpp_src ` - "x86" ` - "Visual Studio 9 2008" ` - "Debug|Win32" ` - "RelWithDebInfo|Win32" ` - $boostRoot32 ` - $randomness |