@@ -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+
5062Function Build-Configuration-Information {
5163 $output = @"
5264Visual 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
615619Function 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 ) "
0 commit comments