# the alternatives are far, far worse.
if ("${CMAKE_GENERATOR}" MATCHES "Visual Studio 15( 2017)? Win64")
set(CMAKE_GENERATOR_TOOLSET "v141</PlatformToolset></PropertyGroup><ItemDefinitionGroup Condition=\"'$(ProjectName)'=='folly'\"><ProjectReference><LinkLibraryDependencies>true</LinkLibraryDependencies></ProjectReference></ItemDefinitionGroup><PropertyGroup><PlatformToolset>v141")
+ set(MSVC_IS_2017 ON)
elseif ("${CMAKE_GENERATOR}" STREQUAL "Visual Studio 14 2015 Win64")
set(CMAKE_GENERATOR_TOOLSET "v140</PlatformToolset></PropertyGroup><ItemDefinitionGroup Condition=\"'$(ProjectName)'=='folly'\"><ProjectReference><LinkLibraryDependencies>true</LinkLibraryDependencies></ProjectReference></ItemDefinitionGroup><PropertyGroup><PlatformToolset>v140")
+ set(MSVC_IS_2017 OFF)
+elseif ("${CMAKE_GENERATOR}" STREQUAL "Ninja")
+ message("Folly is being built with Ninja, so assuming VS 2017 is being used.")
+ set(MSVC_IS_2017 ON)
else()
message(FATAL_ERROR "This build script only supports building Folly on 64-bit Windows with Visual Studio 2015 or Visual Studio 2017.")
endif()
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/folly/build/
COMMENT "Generating the group varint tables..." VERBATIM
)
+
+include(folly-deps) # Find the required packages
+if (LIBPTHREAD_FOUND)
+ set(FOLLY_HAVE_PTHREAD ON)
+endif()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/CMake/folly-config.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/folly/folly-config.h
${CMAKE_CURRENT_BINARY_DIR}/folly/build/GroupVarintTables.cpp
)
-include(folly-deps) # Find the required packages
target_include_directories(folly_base
PUBLIC
${DOUBLE_CONVERSION_INCLUDE_DIR}
${LIBGFLAGS_INCLUDE_DIR}
${LIBGLOG_INCLUDE_DIR}
${LIBEVENT_INCLUDE_DIR}
- ${LIBPTHREAD_INCLUDE_DIRS}
)
target_link_libraries(folly_base
PUBLIC
${LIBEVENT_LIB}
${LIBGFLAGS_LIBRARY}
${LIBGLOG_LIBRARY}
- ${LIBPTHREAD_LIBRARIES}
OpenSSL::SSL
OpenSSL::Crypto
Ws2_32.lib
)
+if (FOLLY_HAVE_PTHREAD)
+ target_include_directories(folly_base PUBLIC ${LIBPTHREAD_INCLUDE_DIRS})
+ target_link_libraries(folly_base PUBLIC ${LIBPTHREAD_LIBRARIES})
+endif()
# Now to generate the fingerprint tables
add_executable(GenerateFingerprintTables
${FOLLY_DIR}/io/async/test/UndelayedDestruction.h
${FOLLY_DIR}/io/async/test/Util.h
)
+ target_compile_definitions(folly_test_support
+ PUBLIC
+ ${LIBGMOCK_DEFINES}
+ )
target_include_directories(folly_test_support
PUBLIC
${LIBGMOCK_INCLUDE_DIR}