Skip to content

Commit c99ffac

Browse files
author
Michael Fero
committed
CPP-792 - Add CI support for Visual Studio 2019
- Printing CMake version and forcing Boost v1.70.0 for Visual Studio 2019 - Removing default cloud provided - Visual Studio 2019 image is not available on GCE
1 parent fb222ad commit c99ffac

3 files changed

Lines changed: 43 additions & 21 deletions

File tree

appveyor.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ environment:
3737
secure: PLLc0JCL9I7y8zw8p9meQhxXGAbyWCjyWO17xKOsyxE=
3838
ARTIFACTORY_PASSWORD:
3939
secure: h28bN22Py3CZPqrWoZWEjIFnpes+kslusCKP1mRYdUqBEf+OO1kFEQTZ9DGD7tuCSIIRDI3Mf9LX8zgUdmdlZA==
40-
APPVEYOR_BUILD_WORKER_CLOUD: gce
4140
APPVEYOR_IGNORE_COMMIT_FILTERING_ON_TAG: true
4241
DRIVER_TYPE: DSE
4342
BOOST_VERSION: 1.69.0
@@ -87,6 +86,16 @@ environment:
8786
# OPENSSL_MAJOR_MINOR: 1.1
8887
# VISUAL_STUDIO_INTERNAL_VERSION: 141
8988
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
89+
- CMAKE_GENERATOR: Visual Studio 16 2019
90+
OPENSSL_MAJOR_MINOR: 1.0
91+
VISUAL_STUDIO_INTERNAL_VERSION: 142
92+
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
93+
BOOST_VERSION: 1.70.0
94+
# - CMAKE_GENERATOR: Visual Studio 16 2019
95+
# OPENSSL_MAJOR_MINOR: 1.1
96+
# VISUAL_STUDIO_INTERNAL_VERSION: 142
97+
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
98+
# BOOST_VERSION: 1.70.0
9099
#init:
91100
# - ps: iex ((New-Object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
92101
install:

cpp-driver/appveyor.ps1

Lines changed: 23 additions & 19 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])]
@@ -112,8 +124,11 @@ Function Initialize-Build-Environment {
112124

113125
# Determine the platform and create associate environment variables
114126
$architecture = "32"
127+
$Env:CMAKE_PLATFORM = $Env:Platform
115128
If ($Env:Platform -Like "x64") {
116129
$architecture = "64"
130+
} Else {
131+
$Env:CMAKE_PLATFORM = "Win32"
117132
}
118133
$lib_architecture = "lib$($architecture)"
119134
$windows_architecture = "win$($architecture)"
@@ -308,8 +323,9 @@ Function Install-Driver-Environment {
308323
}
309324
}
310325

311-
# Display the Perl version information
326+
# Display the Perl and CMake version information
312327
Perl-Version-Information
328+
CMake-Version-Information
313329

314330
# Determine the location of the CMake modules (external projects)
315331
$cmake_modules_dir = "$($Env:APPVEYOR_BUILD_FOLDER -Replace `"\\`", `"/`")/"
@@ -318,12 +334,6 @@ Function Install-Driver-Environment {
318334
}
319335
$cmake_modules_dir += "cmake/modules"
320336

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-
327337
# Build and install the dependencies (if needed; cached)
328338
$dependencies_build_location_prefix = "C:/projects/dependencies/build/"
329339
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 +356,7 @@ add_dependencies(`${PROJECT_NAME} `${LIBUV_LIBRARY_NAME})
346356
$cmakelists_contents | Out-File -FilePath "CMakeLists.txt" -Encoding Utf8 -Force
347357

348358
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)" .
359+
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)" .
350360
If ($LastExitCode -ne 0) {
351361
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
352362
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "libuv Output Log"
@@ -399,7 +409,7 @@ add_dependencies(`${PROJECT_NAME} `${OPENSSL_LIBRARY_NAME})
399409
if ("$_" -Like "shared") {
400410
$shared_libs = "On"
401411
}
402-
cmake -G "$($cmake_generator)" "-DBUILD_SHARED_LIBS=$($shared_libs)" "-DOPENSSL_VERSION=$($Env:OPENSSL_VERSION)" "-DOPENSSL_INSTALL_PREFIX=$($Env:OPENSSL_BASE_DIR)/$_" .
412+
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)/$_" .
403413
If ($LastExitCode -ne 0) {
404414
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
405415
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "OpenSSL Output Log"
@@ -447,7 +457,7 @@ add_dependencies(`${PROJECT_NAME} `${ZLIB_LIBRARY_NAME})
447457
$cmakelists_contents | Out-File -FilePath "CMakeLists.txt" -Encoding Utf8 -Force
448458

449459
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)" .
460+
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)" .
451461
If ($LastExitCode -ne 0) {
452462
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
453463
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "zlib Output Log"
@@ -527,7 +537,7 @@ add_dependencies(`${PROJECT_NAME} `${BOOST_LIBRARY_NAME})
527537
$cmakelists_contents | Out-File -FilePath "CMakeLists.txt" -Encoding Utf8 -Force
528538

529539
Write-Host "Configuring Boost"
530-
cmake -G "$($cmake_generator)" "-DBOOST_VERSION=$($Env:BOOST_VERSION)" "-DBOOST_INSTALL_PREFIX=$($Env:BOOST_ROOT)" .
540+
cmake -G "$($Env:CMAKE_GENERATOR)" -A $Env:CMAKE_PLATFORM "-DBOOST_VERSION=$($Env:BOOST_VERSION)" "-DBOOST_INSTALL_PREFIX=$($Env:BOOST_ROOT)" .
531541
If ($LastExitCode -ne 0) {
532542
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
533543
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "Boost Output Log"
@@ -575,7 +585,7 @@ add_dependencies(`${PROJECT_NAME} `${LIBSSH2_LIBRARY_NAME})
575585
$cmakelists_contents | Out-File -FilePath "CMakeLists.txt" -Encoding Utf8 -Force
576586

577587
Write-Host "Configuring libssh2"
578-
cmake -G "$($cmake_generator)" "-DLIBSSH2_VERSION=$($Env:LIBSSH2_VERSION)" "-DLIBSSH2_INSTALL_PREFIX=$($Env:LIBSSH2_ROOT_DIR)" .
588+
cmake -G "$($Env:CMAKE_GENERATOR)" -A $Env:CMAKE_PLATFORM "-DLIBSSH2_VERSION=$($Env:LIBSSH2_VERSION)" "-DLIBSSH2_INSTALL_PREFIX=$($Env:LIBSSH2_ROOT_DIR)" .
579589
If ($LastExitCode -ne 0) {
580590
If (Test-Path -Path "build/CMakeFiles/CMakeOutput.log") {
581591
Push-AppveyorArtifact "build/CMakeFiles/CMakeOutput.log" -DeploymentName "libssh2 Output Log"
@@ -613,12 +623,6 @@ add_dependencies(`${PROJECT_NAME} `${LIBSSH2_LIBRARY_NAME})
613623
}
614624

615625
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-
622626
# Ensure Boost atomic is used for Visual Studio 2010 (increased performance)
623627
$use_boost_atomic = "Off"
624628
If ($Env:VISUAL_STUDIO_INTERNAL_VERSION -Like "100" -Or
@@ -634,7 +638,7 @@ Function Build-Driver {
634638
New-Item -ItemType Directory -Force -Path "$($Env:APPVEYOR_BUILD_FOLDER)/build"
635639
Push-Location "$($Env:APPVEYOR_BUILD_FOLDER)/build"
636640
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)`"" ..
641+
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)`"" ..
638642
If ($LastExitCode -ne 0) {
639643
Pop-Location
640644
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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ environment:
3636
secure: PLLc0JCL9I7y8zw8p9meQhxXGAbyWCjyWO17xKOsyxE=
3737
ARTIFACTORY_PASSWORD:
3838
secure: h28bN22Py3CZPqrWoZWEjIFnpes+kslusCKP1mRYdUqBEf+OO1kFEQTZ9DGD7tuCSIIRDI3Mf9LX8zgUdmdlZA==
39-
APPVEYOR_BUILD_WORKER_CLOUD: gce
4039
APPVEYOR_IGNORE_COMMIT_FILTERING_ON_TAG: true
4140
DRIVER_TYPE: CASS
4241
BOOST_VERSION: 1.69.0
@@ -86,6 +85,16 @@ environment:
8685
# OPENSSL_MAJOR_MINOR: 1.1
8786
# VISUAL_STUDIO_INTERNAL_VERSION: 141
8887
# 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
8998
#init:
9099
# - ps: iex ((New-Object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
91100
install:

0 commit comments

Comments
 (0)