summaryrefslogtreecommitdiff
path: root/qpid/cpp/bld-winsdk.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/bld-winsdk.ps1')
-rw-r--r--qpid/cpp/bld-winsdk.ps1278
1 files changed, 145 insertions, 133 deletions
diff --git a/qpid/cpp/bld-winsdk.ps1 b/qpid/cpp/bld-winsdk.ps1
index 8618160259..7aa6df81cd 100644
--- a/qpid/cpp/bld-winsdk.ps1
+++ b/qpid/cpp/bld-winsdk.ps1
@@ -1,133 +1,145 @@
-#
-# 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 requires cmake, and 7z to be already on the path devenv should be on the path as
-# a result of installing Visual Studio
-
-Set-PSDebug -strict
-$ErrorActionPreference='Stop'
-
-if ($args.length -lt 1) {
- Write-Host 'Need to specify location of qpid src tree'
- exit
-}
-
-$qpid_src=$args[0]
-$ver=$args[1]
-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
-}
-
-$randomness=[System.IO.Path]::GetRandomFileName()
-
-$qpid_cpp_src="$qpid_src\cpp"
-$install_dir="install_$randomness"
-$preserve_dir="preserve_$randomness"
-$zipfile="qpid-cpp-$ver.zip"
-
-# This assumes Visual Studio 2008
-cmake -G "Visual Studio 9 2008" "-DCMAKE_INSTALL_PREFIX=$install_dir" $qpid_cpp_src
-
-# Need to build doxygen api docs separately as nothing depends on them
-devenv qpid-cpp.sln /build "Release|Win32" /project docs-user-api
-
-# Build both debug and release so we can ship both sets of libs
-# (Do release after debug so that the release executables overwrite the
-# debug executables)
-devenv qpid-cpp.sln /build "Debug|Win32" /project INSTALL
-devenv qpid-cpp.sln /build "Release|Win32" /project INSTALL
-
-# This would be kludgy if we have only one entry as the array declaration syntax
-# can't cope with just one nested array
-# 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/qmfengine*.*', 'bin/qpidxarm*.*',
- 'bin/boost_regex*.*',
- 'bin/boost',
- 'conf',
- 'examples/direct',
- 'examples/failover',
- 'examples/fanout',
- 'examples/pub-sub',
- 'examples/qmf-console',
- 'examples/request-response',
- 'examples/tradedemo',
- 'examples/old-examples.sln',
- 'examples/README.*',
- 'examples/verify*',
- '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
-
-# It would be very good to cut down on the shipped boost include files too, ideally by
-# starting with the qpid files and recursively noting all boost headers actually needed
-
-# Create a new zip
-if (Test-Path $zipfile) {Remove-Item $zipfile}
-&'7z' a $zipfile ".\$install_dir\*"
-
-# Remove temporary install area
-# Remove-Item -recurse $install_dir
+#
+# 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 requires cmake, and 7z to be already on the path devenv should be on the path as
+# a result of installing Visual Studio
+
+Set-PSDebug -strict
+$ErrorActionPreference='Stop'
+
+if ($args.length -lt 1) {
+ Write-Host 'Need to specify location of qpid src tree'
+ exit
+}
+
+$qpid_src=$args[0]
+$ver=$args[1]
+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
+}
+
+$randomness=[System.IO.Path]::GetRandomFileName()
+
+$qpid_cpp_src="$qpid_src\cpp"
+$install_dir="install_$randomness"
+$preserve_dir="preserve_$randomness"
+$zipfile="qpid-cpp-$ver.zip"
+
+# This assumes Visual Studio 2008
+cmake -G "Visual Studio 9 2008" "-DCMAKE_INSTALL_PREFIX=$install_dir" $qpid_cpp_src
+
+# Need to build doxygen api docs separately as nothing depends on them
+devenv qpid-cpp.sln /build "Release|Win32" /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 "Debug|Win32" /project INSTALL
+devenv qpid-cpp.sln /build "RelWithDebInfo|Win32" /project INSTALL
+
+# This would be kludgy if we have only one entry as the array declaration syntax
+# can't cope with just one nested array
+# 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',
+ 'examples/old-examples.sln',
+ 'examples/README.*',
+ 'examples/verify*',
+ '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
+
+# Zip the /bin PDB files into two zip files.
+# we previously arranged that the Debug pdbs go in the DebugPDB subdirectory
+# and the Release pdbs go in the ReleasePDB subdirectory
+&'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"
+
+# It would be very good to cut down on the shipped boost include files too, ideally by
+# starting with the qpid files and recursively noting all boost headers actually needed
+
+
+# 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
+
+# Remove temporary install area
+# Remove-Item -recurse $install_dir