Skip to content

Commit 5a33e19

Browse files
authored
Merge pull request #266 from riptano/CPP-792
CPP-792/CPP-804 - Add CI support for Visual Studio 2019 and remove 32-bit builds
2 parents fb222ad + 971f6f0 commit 5a33e19

3 files changed

Lines changed: 53 additions & 40 deletions

File tree

appveyor.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ cache:
2626
- C:\projects\dependencies\bin -> cpp-driver\appveyor.ps1
2727
- C:\projects\dependencies\libs -> appveyor.yml
2828
platform:
29-
- x86
3029
- x64
3130
hosts:
3231
cpp-driver.hostname.: 127.254.254.254
@@ -37,7 +36,6 @@ environment:
3736
secure: PLLc0JCL9I7y8zw8p9meQhxXGAbyWCjyWO17xKOsyxE=
3837
ARTIFACTORY_PASSWORD:
3938
secure: h28bN22Py3CZPqrWoZWEjIFnpes+kslusCKP1mRYdUqBEf+OO1kFEQTZ9DGD7tuCSIIRDI3Mf9LX8zgUdmdlZA==
40-
APPVEYOR_BUILD_WORKER_CLOUD: gce
4139
APPVEYOR_IGNORE_COMMIT_FILTERING_ON_TAG: true
4240
DRIVER_TYPE: DSE
4341
BOOST_VERSION: 1.69.0
@@ -87,6 +85,16 @@ environment:
8785
# OPENSSL_MAJOR_MINOR: 1.1
8886
# VISUAL_STUDIO_INTERNAL_VERSION: 141
8987
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
88+
- CMAKE_GENERATOR: Visual Studio 16 2019
89+
OPENSSL_MAJOR_MINOR: 1.0
90+
VISUAL_STUDIO_INTERNAL_VERSION: 142
91+
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
92+
BOOST_VERSION: 1.70.0
93+
# - CMAKE_GENERATOR: Visual Studio 16 2019
94+
# OPENSSL_MAJOR_MINOR: 1.1
95+
# VISUAL_STUDIO_INTERNAL_VERSION: 142
96+
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
97+
# BOOST_VERSION: 1.70.0
9098
#init:
9199
# - ps: iex ((New-Object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
92100
install:

cpp-driver/appveyor.ps1

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,18 @@ Function Perl-Version-Information {
4747
}
4848
}
4949

50+
Function CMake-Version-Information {
51+
If (Get-Command "cmake" -ErrorAction SilentlyContinue) {
52+
$temporary_file = New-TemporaryFile
53+
Start-Process -FilePath cmake -ArgumentList "--version" -RedirectStandardOutput $($temporary_file) -Wait -NoNewWindow
54+
$output = Get-Content "$($temporary_file)" -Raw
55+
Write-Host "$($output.Trim())" -BackgroundColor DarkBlue
56+
Remove-Item $temporary_file
57+
} Else {
58+
Write-Host "CMake is not available" -BackgroundColor DarkRed
59+
}
60+
}
61+
5062
Function Build-Configuration-Information {
5163
$output = @"
5264
Visual Studio: $($Env:CMAKE_GENERATOR.Split(" ")[-2]) [$($Env:CMAKE_GENERATOR.Split(" ")[-1])]
@@ -111,12 +123,9 @@ Function Initialize-Build-Environment {
111123
$perl_version = "5.26.2.1"
112124

113125
# Determine the platform and create associate environment variables
114-
$architecture = "32"
115-
If ($Env:Platform -Like "x64") {
116-
$architecture = "64"
117-
}
118-
$lib_architecture = "lib$($architecture)"
119-
$windows_architecture = "win$($architecture)"
126+
$Env:CMAKE_PLATFORM = $Env:Platform
127+
$lib_architecture = "lib64"
128+
$windows_architecture = "win64"
120129

121130
# Determine which header file to use for determine driver version
122131
$driver_header_file = "cassandra.h"
@@ -157,9 +166,9 @@ Function Initialize-Build-Environment {
157166
$Env:DRIVER_ARTIFACTS_LOGS_DIR = "$($Env:DRIVER_ARTIFACTS_DIR)/logs"
158167

159168
# Generate the environment variables for the third party archives
160-
$Env:LIBUV_ARTIFACT_ARCHIVE = "libuv-$($libuv_version)-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
161-
$Env:OPENSSL_ARTIFACT_ARCHIVE = "openssl-$($openssl_version)-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
162-
$Env:ZLIB_ARTIFACT_ARCHIVE = "zlib-$($zlib_version)-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
169+
$Env:LIBUV_ARTIFACT_ARCHIVE = "libuv-$($libuv_version)-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
170+
$Env:OPENSSL_ARTIFACT_ARCHIVE = "openssl-$($openssl_version)-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
171+
$Env:ZLIB_ARTIFACT_ARCHIVE = "zlib-$($zlib_version)-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
163172

164173
# Generate DataStax Enterprise specific environment variables
165174
If ($Env:DRIVER_TYPE -Like "dse") {
@@ -189,15 +198,15 @@ Function Initialize-Build-Environment {
189198
# Generate the archive name for the driver test and examples artifacts
190199
$build_version = "$($Env:APPVEYOR_BUILD_NUMBER)-$($Env:APPVEYOR_REPO_BRANCH)"
191200
# TODO: Re-enable OpenSSL version appending if multiple OpenSSL versions are enabled
192-
#$Env:DRIVER_ARTIFACT_EXAMPLES_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-examples-openssl-$($Env:OPENSSL_MAJOR_MINOR)-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
193-
#$Env:DRIVER_ARTIFACT_TESTS_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-tests-openssl-$($Env:OPENSSL_MAJOR_MINOR)-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
194-
$Env:DRIVER_ARTIFACT_EXAMPLES_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-examples-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
195-
$Env:DRIVER_ARTIFACT_TESTS_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-tests-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
201+
#$Env:DRIVER_ARTIFACT_EXAMPLES_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-examples-openssl-$($Env:OPENSSL_MAJOR_MINOR)-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
202+
#$Env:DRIVER_ARTIFACT_TESTS_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-tests-openssl-$($Env:OPENSSL_MAJOR_MINOR)-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
203+
$Env:DRIVER_ARTIFACT_EXAMPLES_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-examples-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
204+
$Env:DRIVER_ARTIFACT_TESTS_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-tests-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
196205

197206
# Generate the archive name for the driver packaging
198207
# TODO: Re-enable OpenSSL version appending if multiple OpenSSL versions are enabled
199-
#$Env:DRIVER_ARTIFACT_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-openssl-$($Env:OPENSSL_MAJOR_MINOR)-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
200-
$Env:DRIVER_ARTIFACT_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-win$($architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
208+
#$Env:DRIVER_ARTIFACT_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-openssl-$($Env:OPENSSL_MAJOR_MINOR)-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
209+
$Env:DRIVER_ARTIFACT_ARCHIVE = "$($driver_archive_prefix)-cpp-driver-$($Env:DRIVER_VERSION)-$($windows_architecture)-msvc$($Env:VISUAL_STUDIO_INTERNAL_VERSION).zip"
201210

202211
# Generate additional download/install environments for third party build requirements
203212
$Env:BISON_BINARIES_ARCHIVE = "bison-$($bison_version)-bin.zip"
@@ -308,8 +317,9 @@ Function Install-Driver-Environment {
308317
}
309318
}
310319

311-
# Display the Perl version information
320+
# Display the Perl and CMake version information
312321
Perl-Version-Information
322+
CMake-Version-Information
313323

314324
# Determine the location of the CMake modules (external projects)
315325
$cmake_modules_dir = "$($Env:APPVEYOR_BUILD_FOLDER -Replace `"\\`", `"/`")/"
@@ -318,12 +328,6 @@ Function Install-Driver-Environment {
318328
}
319329
$cmake_modules_dir += "cmake/modules"
320330

321-
# Determine the CMake generator to utilize
322-
$cmake_generator = $Env:CMAKE_GENERATOR
323-
If ($Env:Platform -Like "x64") {
324-
$cmake_generator += " Win64"
325-
}
326-
327331
# Build and install the dependencies (if needed; cached)
328332
$dependencies_build_location_prefix = "C:/projects/dependencies/build/"
329333
If (-Not (Test-Path -Path "$($Env:LIBUV_ROOT_DIR)/lib")) { # lib directory checked due to external project being CMake (automatically creates root directory)
@@ -346,7 +350,7 @@ add_dependencies(`${PROJECT_NAME} `${LIBUV_LIBRARY_NAME})
346350
$cmakelists_contents | Out-File -FilePath "CMakeLists.txt" -Encoding Utf8 -Force
347351

348352
Write-Host "Configuring libuv"
349-
cmake -G "$($cmake_generator)" -DBUILD_SHARED_LIBS=On "-DLIBUV_VERSION=$($Env:LIBUV_VERSION)" "-DLIBUV_INSTALL_PREFIX=$($Env:LIBUV_ROOT_DIR)" .
353+
cmake -G "$($Env:CMAKE_GENERATOR)" -A $Env:CMAKE_PLATFORM -DBUILD_SHARED_LIBS=On "-DLIBUV_VERSION=$($Env:LIBUV_VERSION)" "-DLIBUV_INSTALL_PREFIX=$($Env:LIBUV_ROOT_DIR)" .
350354
If ($LastExitCode -ne 0) {
351355
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
352356
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "libuv Output Log"
@@ -399,7 +403,7 @@ add_dependencies(`${PROJECT_NAME} `${OPENSSL_LIBRARY_NAME})
399403
if ("$_" -Like "shared") {
400404
$shared_libs = "On"
401405
}
402-
cmake -G "$($cmake_generator)" "-DBUILD_SHARED_LIBS=$($shared_libs)" "-DOPENSSL_VERSION=$($Env:OPENSSL_VERSION)" "-DOPENSSL_INSTALL_PREFIX=$($Env:OPENSSL_BASE_DIR)/$_" .
406+
cmake -G "$($Env:CMAKE_GENERATOR)" -A $Env:CMAKE_PLATFORM "-DBUILD_SHARED_LIBS=$($shared_libs)" "-DOPENSSL_VERSION=$($Env:OPENSSL_VERSION)" "-DOPENSSL_INSTALL_PREFIX=$($Env:OPENSSL_BASE_DIR)/$_" .
403407
If ($LastExitCode -ne 0) {
404408
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
405409
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "OpenSSL Output Log"
@@ -447,7 +451,7 @@ add_dependencies(`${PROJECT_NAME} `${ZLIB_LIBRARY_NAME})
447451
$cmakelists_contents | Out-File -FilePath "CMakeLists.txt" -Encoding Utf8 -Force
448452

449453
Write-Host "Configuring zlib"
450-
cmake -G "$($cmake_generator)" -DBUILD_SHARED_LIBS=On "-DZLIB_VERSION=$($Env:ZLIB_VERSION)" "-DZLIB_INSTALL_PREFIX=$($Env:ZLIB_ROOT_DIR)" .
454+
cmake -G "$($Env:CMAKE_GENERATOR)" -A $Env:CMAKE_PLATFORM -DBUILD_SHARED_LIBS=On "-DZLIB_VERSION=$($Env:ZLIB_VERSION)" "-DZLIB_INSTALL_PREFIX=$($Env:ZLIB_ROOT_DIR)" .
451455
If ($LastExitCode -ne 0) {
452456
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
453457
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "zlib Output Log"
@@ -527,7 +531,7 @@ add_dependencies(`${PROJECT_NAME} `${BOOST_LIBRARY_NAME})
527531
$cmakelists_contents | Out-File -FilePath "CMakeLists.txt" -Encoding Utf8 -Force
528532

529533
Write-Host "Configuring Boost"
530-
cmake -G "$($cmake_generator)" "-DBOOST_VERSION=$($Env:BOOST_VERSION)" "-DBOOST_INSTALL_PREFIX=$($Env:BOOST_ROOT)" .
534+
cmake -G "$($Env:CMAKE_GENERATOR)" -A $Env:CMAKE_PLATFORM "-DBOOST_VERSION=$($Env:BOOST_VERSION)" "-DBOOST_INSTALL_PREFIX=$($Env:BOOST_ROOT)" .
531535
If ($LastExitCode -ne 0) {
532536
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
533537
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "Boost Output Log"
@@ -575,7 +579,7 @@ add_dependencies(`${PROJECT_NAME} `${LIBSSH2_LIBRARY_NAME})
575579
$cmakelists_contents | Out-File -FilePath "CMakeLists.txt" -Encoding Utf8 -Force
576580

577581
Write-Host "Configuring libssh2"
578-
cmake -G "$($cmake_generator)" "-DLIBSSH2_VERSION=$($Env:LIBSSH2_VERSION)" "-DLIBSSH2_INSTALL_PREFIX=$($Env:LIBSSH2_ROOT_DIR)" .
582+
cmake -G "$($Env:CMAKE_GENERATOR)" -A $Env:CMAKE_PLATFORM "-DLIBSSH2_VERSION=$($Env:LIBSSH2_VERSION)" "-DLIBSSH2_INSTALL_PREFIX=$($Env:LIBSSH2_ROOT_DIR)" .
579583
If ($LastExitCode -ne 0) {
580584
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
581585
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "libssh2 Output Log"
@@ -613,16 +617,9 @@ add_dependencies(`${PROJECT_NAME} `${LIBSSH2_LIBRARY_NAME})
613617
}
614618

615619
Function Build-Driver {
616-
# Determine the CMake generator to utilize
617-
$cmake_generator = $Env:CMAKE_GENERATOR
618-
If ($Env:Platform -Like "x64") {
619-
$cmake_generator += " Win64"
620-
}
621-
622620
# Ensure Boost atomic is used for Visual Studio 2010 (increased performance)
623621
$use_boost_atomic = "Off"
624-
If ($Env:VISUAL_STUDIO_INTERNAL_VERSION -Like "100" -Or
625-
($Env:VISUAL_STUDIO_INTERNAL_VERSION -Like "110" -And $Env:Platform -Like "x86")) {
622+
If ($Env:VISUAL_STUDIO_INTERNAL_VERSION -Like "100") {
626623
$use_boost_atomic = "On" # Enable Boost atomic usage
627624
}
628625

@@ -634,7 +631,7 @@ Function Build-Driver {
634631
New-Item -ItemType Directory -Force -Path "$($Env:APPVEYOR_BUILD_FOLDER)/build"
635632
Push-Location "$($Env:APPVEYOR_BUILD_FOLDER)/build"
636633
Write-Host "Configuring DataStax C/C++ $($driver_type) Driver"
637-
cmake -G "$($cmake_generator)" "-D$($Env:DRIVER_TYPE)_MULTICORE_COMPILATION=On" "-D$($Env:DRIVER_TYPE)_USE_OPENSSL=On" "-D$($Env:DRIVER_TYPE)_USE_ZLIB=On" "-D$($Env:DRIVER_TYPE)_USE_BOOST_ATOMIC=$($use_boost_atomic)" "-D$($Env:DRIVER_TYPE)_BUILD_EXAMPLES=On" "-D$($Env:DRIVER_TYPE)_BUILD_TESTS=On" "-D$($Env:DRIVER_TYPE)_USE_LIBSSH2=On" "-DCMAKE_INSTALL_PREFIX=`"$($Env:DRIVER_INSTALL_DIR)`"" ..
634+
cmake -G "$($Env:CMAKE_GENERATOR)" -A $Env:CMAKE_PLATFORM "-D$($Env:DRIVER_TYPE)_MULTICORE_COMPILATION=On" "-D$($Env:DRIVER_TYPE)_USE_OPENSSL=On" "-D$($Env:DRIVER_TYPE)_USE_ZLIB=On" "-D$($Env:DRIVER_TYPE)_USE_BOOST_ATOMIC=$($use_boost_atomic)" "-D$($Env:DRIVER_TYPE)_BUILD_EXAMPLES=On" "-D$($Env:DRIVER_TYPE)_BUILD_TESTS=On" "-D$($Env:DRIVER_TYPE)_USE_LIBSSH2=On" "-DCMAKE_INSTALL_PREFIX=`"$($Env:DRIVER_INSTALL_DIR)`"" ..
638635
If ($LastExitCode -ne 0) {
639636
Pop-Location
640637
Throw "Failed to configure DataStax C/C++ $($driver_type) Driver for MSVC $($Env:VISUAL_STUDIO_INTERNAL_VERSION)-$($Env:Platform)"

cpp-driver/appveyor.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ cache:
2525
- C:\projects\dependencies\bin -> appveyor.ps1
2626
- C:\projects\dependencies\libs -> appveyor.yml
2727
platform:
28-
- x86
2928
- x64
3029
hosts:
3130
cpp-driver.hostname.: 127.254.254.254
@@ -36,7 +35,6 @@ environment:
3635
secure: PLLc0JCL9I7y8zw8p9meQhxXGAbyWCjyWO17xKOsyxE=
3736
ARTIFACTORY_PASSWORD:
3837
secure: h28bN22Py3CZPqrWoZWEjIFnpes+kslusCKP1mRYdUqBEf+OO1kFEQTZ9DGD7tuCSIIRDI3Mf9LX8zgUdmdlZA==
39-
APPVEYOR_BUILD_WORKER_CLOUD: gce
4038
APPVEYOR_IGNORE_COMMIT_FILTERING_ON_TAG: true
4139
DRIVER_TYPE: CASS
4240
BOOST_VERSION: 1.69.0
@@ -86,6 +84,16 @@ environment:
8684
# OPENSSL_MAJOR_MINOR: 1.1
8785
# VISUAL_STUDIO_INTERNAL_VERSION: 141
8886
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
87+
- CMAKE_GENERATOR: Visual Studio 16 2019
88+
OPENSSL_MAJOR_MINOR: 1.0
89+
VISUAL_STUDIO_INTERNAL_VERSION: 142
90+
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
91+
BOOST_VERSION: 1.70.0
92+
# - CMAKE_GENERATOR: Visual Studio 16 2019
93+
# OPENSSL_MAJOR_MINOR: 1.1
94+
# VISUAL_STUDIO_INTERNAL_VERSION: 142
95+
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
96+
# BOOST_VERSION: 1.70.0
8997
#init:
9098
# - ps: iex ((New-Object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
9199
install:

0 commit comments

Comments
 (0)