diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL index 754bebb67b3..f37fbc53f19 100644 --- a/ports/folly/CONTROL +++ b/ports/folly/CONTROL @@ -1,4 +1,4 @@ Source: folly -Version: v2017.05.08.00 +Version: v2017.05.08.00-1 Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows Build-Depends: zlib, openssl, boost, libevent, double-conversion, glog, gflags, lz4, liblzma, snappy diff --git a/ports/folly/fix-cmakelists.patch b/ports/folly/fix-cmakelists.patch index 9f5700dbb8d..3d3e3ddaeed 100644 --- a/ports/folly/fix-cmakelists.patch +++ b/ports/folly/fix-cmakelists.patch @@ -1,23 +1,8 @@ -diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake -index 211c6fbf..988225a2 100755 ---- a/CMake/folly-deps.cmake -+++ b/CMake/folly-deps.cmake -@@ -11,8 +11,8 @@ find_package(Boost 1.55.0 MODULE - REQUIRED - ) - find_package(DoubleConversion MODULE REQUIRED) --find_package(GFlags MODULE REQUIRED) --find_package(GLog MODULE REQUIRED) -+find_package(gflags CONFIG REQUIRED) -+find_package(glog CONFIG REQUIRED) - find_package(LibEvent MODULE REQUIRED) - find_package(OpenSSL MODULE REQUIRED) - find_package(PThread MODULE) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 38886d65..4c796eac 100755 +index 38886d65..00e5307c 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,15 +1,8 @@ +@@ -1,15 +1,14 @@ cmake_minimum_required(VERSION 3.4.0 FATAL_ERROR) -# Unfortunately, CMake doesn't easily provide us a way to merge static @@ -25,14 +10,35 @@ index 38886d65..4c796eac 100755 -# we do a bit of a workaround here to inject a property into the generated -# project files that will only get enabled for the folly target. Ugly, but -# the alternatives are far, far worse. - if ("${CMAKE_GENERATOR}" MATCHES "Visual Studio 15( 2017)? Win64") +-if ("${CMAKE_GENERATOR}" MATCHES "Visual Studio 15( 2017)? Win64") - set(CMAKE_GENERATOR_TOOLSET "v141truev141") ++project(${PACKAGE_NAME} CXX) ++ ++if (NOT ${MSVC_CXX_ARCHITECTURE_ID} STREQUAL "x64") ++ message(FATAL_ERROR "This build script only supports building Folly on 64-bit Windows.") ++endif() ++ ++if (MSVC_VERSION EQUAL 1910) set(MSVC_IS_2017 ON) - elseif ("${CMAKE_GENERATOR}" STREQUAL "Visual Studio 14 2015 Win64") +-elseif ("${CMAKE_GENERATOR}" STREQUAL "Visual Studio 14 2015 Win64") - set(CMAKE_GENERATOR_TOOLSET "v140truev140") ++elseif (MSVC_VERSION EQUAL 1900) set(MSVC_IS_2017 OFF) else() message(FATAL_ERROR "This build script only supports building Folly on 64-bit Windows with Visual Studio 2015 or Visual Studio 2017.") +@@ -29,12 +28,6 @@ set(PACKAGE_BUGREPORT "https://github.com/facebook/folly/issues") + # 150+ tests in the root folder anyone? No? I didn't think so. + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +-project(${PACKAGE_NAME} CXX) +- +-# Check architecture OS +-if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8) +- message(FATAL_ERROR "Folly requires a 64bit OS") +-endif() + if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") + message(FATAL_ERROR "You should only be using CMake to build Folly if you are on Windows!") + endif() @@ -122,7 +115,8 @@ add_library(folly_base STATIC ) auto_source_group(folly ${FOLLY_DIR} ${files} ${hfiles}) diff --git a/ports/folly/fix-deps.patch b/ports/folly/fix-deps.patch new file mode 100644 index 00000000000..00870154966 --- /dev/null +++ b/ports/folly/fix-deps.patch @@ -0,0 +1,15 @@ +diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake +index 211c6fbf..801e9ba6 100755 +--- a/CMake/folly-deps.cmake ++++ b/CMake/folly-deps.cmake +@@ -11,8 +11,8 @@ find_package(Boost 1.55.0 MODULE + REQUIRED + ) + find_package(DoubleConversion MODULE REQUIRED) +-find_package(GFlags MODULE REQUIRED) +-find_package(GLog MODULE REQUIRED) ++find_package(gflags CONFIG REQUIRED) ++find_package(glog CONFIG REQUIRED) + find_package(LibEvent MODULE REQUIRED) + find_package(OpenSSL MODULE REQUIRED) + find_package(PThread MODULE) diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake index 8f36fb16086..3c79dfc0919 100644 --- a/ports/folly/portfile.cmake +++ b/ports/folly/portfile.cmake @@ -20,6 +20,7 @@ vcpkg_from_github( vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch" + PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-deps.patch" ) if(VCPKG_CRT_LINKAGE STREQUAL static) @@ -30,6 +31,7 @@ endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DMSVC_USE_STATIC_RUNTIME=${MSVC_USE_STATIC_RUNTIME} )