@@ -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 ]) ]
@@ -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
615625Function 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 ) "
0 commit comments