diff --git a/CMakeLists.txt b/CMakeLists.txt index eebda35e9..87d0b6154 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,7 +63,12 @@ endif() # third-party/folly is only validated to work on Linux and Windows for now. # So only turn it on there by default. if(CMAKE_SYSTEM_NAME MATCHES "Linux" OR CMAKE_SYSTEM_NAME MATCHES "Windows") - option(WITH_FOLLY_DISTRIBUTED_MUTEX "build with folly::DistributedMutex" ON) + if(MSVC AND MSVC_VERSION LESS 1910) + # Folly does not compile with MSVC older than VS2017 + option(WITH_FOLLY_DISTRIBUTED_MUTEX "build with folly::DistributedMutex" OFF) + else() + option(WITH_FOLLY_DISTRIBUTED_MUTEX "build with folly::DistributedMutex" ON) + endif() else() option(WITH_FOLLY_DISTRIBUTED_MUTEX "build with folly::DistributedMutex" OFF) endif() diff --git a/appveyor.yml b/appveyor.yml index 7b271dd9f..416b6550d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -17,6 +17,13 @@ environment: ZSTD_INCLUDE: $(ZSTD_HOME)\lib;$(ZSTD_HOME)\lib\dictBuilder ZSTD_LIB_DEBUG: $(ZSTD_HOME)\build\VS2010\bin\x64_Debug\libzstd_static.lib ZSTD_LIB_RELEASE: $(ZSTD_HOME)\build\VS2010\bin\x64_Release\libzstd_static.lib + matrix: + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + CMAKE_GENERATOR: Visual Studio 14 Win64 + DEV_ENV: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + CMAKE_GENERATOR: Visual Studio 15 Win64 + DEV_ENV: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.com install: - md %THIRDPARTY_HOME% @@ -27,7 +34,7 @@ install: - cd snappy-1.1.7 - mkdir build - cd build - - cmake -DCMAKE_GENERATOR_PLATFORM=x64 .. + - cmake -G "%CMAKE_GENERATOR%" .. - msbuild Snappy.sln /p:Configuration=Debug /p:Platform=x64 - msbuild Snappy.sln /p:Configuration=Release /p:Platform=x64 - echo "Building LZ4 dependency..." @@ -35,7 +42,7 @@ install: - curl --fail --silent --show-error --output lz4-1.8.3.zip --location https://github.com/lz4/lz4/archive/v1.8.3.zip - unzip lz4-1.8.3.zip - cd lz4-1.8.3\visual\VS2010 - - ps: $CMD="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.com"; & $CMD lz4.sln /upgrade + - ps: $CMD="$Env:DEV_ENV"; & $CMD lz4.sln /upgrade - msbuild lz4.sln /p:Configuration=Debug /p:Platform=x64 - msbuild lz4.sln /p:Configuration=Release /p:Platform=x64 - echo "Building ZStd dependency..." @@ -43,15 +50,16 @@ install: - curl --fail --silent --show-error --output zstd-1.4.0.zip --location https://github.com/facebook/zstd/archive/v1.4.0.zip - unzip zstd-1.4.0.zip - cd zstd-1.4.0\build\VS2010 - - ps: $CMD="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.com"; & $CMD zstd.sln /upgrade + - ps: $CMD="$Env:DEV_ENV"; & $CMD zstd.sln /upgrade - msbuild zstd.sln /p:Configuration=Debug /p:Platform=x64 - msbuild zstd.sln /p:Configuration=Release /p:Platform=x64 before_build: - md %APPVEYOR_BUILD_FOLDER%\build - cd %APPVEYOR_BUILD_FOLDER%\build - - cmake -G "Visual Studio 15 Win64" -DCMAKE_BUILD_TYPE=Debug -DOPTDBG=1 -DPORTABLE=1 -DSNAPPY=1 -DLZ4=1 -DZSTD=1 -DXPRESS=1 -DJNI=1 .. + - cmake -G "%CMAKE_GENERATOR%" -DCMAKE_BUILD_TYPE=Debug -DOPTDBG=1 -DPORTABLE=1 -DSNAPPY=1 -DLZ4=1 -DZSTD=1 -DXPRESS=1 -DJNI=1 .. - cd .. + build: project: build\rocksdb.sln parallel: true