summaryrefslogtreecommitdiff
path: root/cpp/bld-winsdk.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bld-winsdk.ps1')
-rw-r--r--cpp/bld-winsdk.ps1327
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