X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=blobdiff_plain;f=CMakeLists.txt;h=371529741739aa888d0abd38d3f02b7efe7d60d2;hp=deb87fd41495849daf76dd25ad5ca4847f6f3337;hb=b58cbabb9fb82908107b46de0847cbbd70079c4c;hpb=dc2c2837d095c9d3a5407e939a88b982ba37858a diff --git a/CMakeLists.txt b/CMakeLists.txt index deb87fd4..37152974 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,12 +16,12 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) project(${PACKAGE_NAME} CXX) -if (MSVC_VERSION EQUAL 1910 OR MSVC_VERSION EQUAL 1911) +if (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920) set(MSVC_IS_2017 ON) elseif (MSVC_VERSION EQUAL 1900) set(MSVC_IS_2017 OFF) else() - message(FATAL_ERROR "This build script only supports building '${MSVC_VERSION}' Folly on 64-bit Windows with Visual Studio 2015 or Visual Studio 2017.") + message(FATAL_ERROR "This build script only supports building Folly on 64-bit Windows with Visual Studio 2015 or Visual Studio 2017. MSVC version '${MSVC_VERSION}' is not supported.") endif() # Check architecture OS @@ -81,15 +81,18 @@ REMOVE_MATCHES_FROM_LISTS(files hfiles "/experimental/exception_tracer/" "/experimental/hazptr/bench/" "/experimental/hazptr/example/" + "/experimental/logging/example/" "/experimental/symbolizer/" "/futures/exercises/" "/test/" + "/tools/" "Benchmark.cpp$" "Test.cpp$" IGNORE_MATCHES "/Benchmark.cpp$" ) list(REMOVE_ITEM files + ${FOLLY_DIR}/Poly.cpp ${FOLLY_DIR}/Subprocess.cpp ${FOLLY_DIR}/SingletonStackTrace.cpp ${FOLLY_DIR}/experimental/JSONSchemaTester.cpp @@ -100,11 +103,17 @@ list(REMOVE_ITEM files ) list(REMOVE_ITEM hfiles ${FOLLY_DIR}/Fingerprint.h + ${FOLLY_DIR}/Poly.h + ${FOLLY_DIR}/Poly-inl.h + ${FOLLY_DIR}/detail/PolyDetail.h + ${FOLLY_DIR}/detail/TypeList.h ${FOLLY_DIR}/detail/SlowFingerprint.h ${FOLLY_DIR}/detail/FingerprintPolynomial.h ${FOLLY_DIR}/experimental/RCURefCount.h ${FOLLY_DIR}/experimental/RCUUtils.h ${FOLLY_DIR}/experimental/io/AsyncIO.h + ${FOLLY_DIR}/poly/Nullable.h + ${FOLLY_DIR}/poly/Regular.h ) add_library(folly_base OBJECT @@ -143,6 +152,7 @@ set(FOLLY_LINK_LIBRARIES ${LIBEVENT_LIB} ${LIBGFLAGS_LIBRARY} ${LIBGLOG_LIBRARY} + Iphlpapi.lib Ws2_32.lib ${FOLLY_SHINY_DEPENDENCIES} @@ -242,6 +252,7 @@ file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/folly-deps.cmake "\ninclude(folly-target install(FILES ${CMAKE_CURRENT_BINARY_DIR}/folly-deps.cmake DESTINATION share/folly RENAME folly-config.cmake) option(BUILD_TESTS "If enabled, compile the tests." OFF) +option(BUILD_BROKEN_TESTS "If enabled, compile tests that are known to be broken." OFF) option(BUILD_HANGING_TESTS "If enabled, compile tests that are known to hang." OFF) option(BUILD_SLOW_TESTS "If enabled, compile tests that take a while to run in debug mode." OFF) if (BUILD_TESTS) @@ -253,6 +264,9 @@ if (BUILD_TESTS) ${FOLLY_DIR}/test/SingletonTestStructs.cpp ${FOLLY_DIR}/test/SocketAddressTestHelper.cpp ${FOLLY_DIR}/test/SocketAddressTestHelper.h + ${FOLLY_DIR}/experimental/logging/test/TestLogHandler.h + ${FOLLY_DIR}/futures/test/TestExecutor.cpp + ${FOLLY_DIR}/futures/test/TestExecutor.h ${FOLLY_DIR}/io/async/test/BlockingSocket.h ${FOLLY_DIR}/io/async/test/MockAsyncServerSocket.h ${FOLLY_DIR}/io/async/test/MockAsyncSocket.h @@ -288,6 +302,33 @@ if (BUILD_TESTS) apply_folly_compile_options_to_target(folly_test_support) folly_define_tests( + DIRECTORY compression/test/ + TEST compression_test SOURCES CompressionTest.cpp + + DIRECTORY container/test/ + TEST array_test SOURCES ArrayTest.cpp + TEST enumerate_test SOURCES EnumerateTest.cpp + TEST evicting_cache_map_test SOURCES EvictingCacheMapTest.cpp + TEST foreach_test SOURCES ForeachTest.cpp + TEST merge_test SOURCES MergeTest.cpp + TEST sparse_byte_set_test SOURCES SparseByteSetTest.cpp + + DIRECTORY concurrency/test/ + TEST cache_locality_test SOURCES CacheLocalityTest.cpp + + DIRECTORY executors/test/ + TEST async_helpers_test SOURCES AsyncTest.cpp + TEST codel_test SOURCES CodelTest.cpp + TEST executor_test SOURCES ExecutorTest.cpp + TEST fiber_io_executor_test SOURCES FiberIOExecutorTest.cpp + TEST global_executor_test SOURCES GlobalExecutorTest.cpp + TEST serial_executor_test SOURCES SerialExecutorTest.cpp + TEST thread_pool_executor_test SOURCES ThreadPoolExecutorTest.cpp + TEST threaded_executor_test SOURCES ThreadedExecutorTest.cpp + + DIRECTORY executors/task_queue/test/ + TEST unbounded_blocking_queue_test SOURCES UnboundedBlockingQueueTest.cpp + DIRECTORY experimental/test/ TEST autotimer_test SOURCES AutoTimerTest.cpp TEST bits_test_2 SOURCES BitsTest.cpp @@ -314,58 +355,74 @@ if (BUILD_TESTS) TEST fs_util_test SOURCES FsUtilTest.cpp DIRECTORY experimental/logging/test/ - TEST logging-test + TEST async_file_writer_test SOURCES AsyncFileWriterTest.cpp + TEST glog_formatter_test SOURCES GlogFormatterTest.cpp + TEST immediate_file_writer_test SOURCES ImmediateFileWriterTest.cpp + TEST log_category_test SOURCES LogCategoryTest.cpp + TEST logger_db_test SOURCES LoggerDBTest.cpp + TEST logger_test SOURCES LoggerTest.cpp + TEST log_level_test SOURCES LogLevelTest.cpp + TEST log_message_test SOURCES LogMessageTest.cpp + TEST log_name_test SOURCES LogNameTest.cpp + TEST log_stream_test SOURCES LogStreamTest.cpp + TEST printf_test SOURCES PrintfTest.cpp + TEST rate_limiter_test SOURCES RateLimiterTest.cpp + TEST standard_log_handler_test SOURCES StandardLogHandlerTest.cpp + TEST xlog_test HEADERS - TestLogHandler.h + XlogHeader1.h + XlogHeader2.h SOURCES - LogCategoryTest.cpp - LoggerDBTest.cpp - LoggerTest.cpp - LogLevelTest.cpp - LogMessageTest.cpp - LogNameTest.cpp - LogStreamTest.cpp + XlogFile1.cpp + XlogFile2.cpp + XlogTest.cpp DIRECTORY fibers/test/ TEST fibers_test SOURCES FibersTest.cpp + DIRECTORY functional/test/ + TEST apply_tuple_test SOURCES ApplyTupleTest.cpp + TEST partial_test SOURCES PartialTest.cpp + DIRECTORY futures/test/ - TEST futures-test + TEST barrier_test SOURCES BarrierTest.cpp + TEST callback_lifetime_test SOURCES CallbackLifetimeTest.cpp + TEST collect_test SOURCES CollectTest.cpp + TEST context_test SOURCES ContextTest.cpp + TEST core_test SOURCES CoreTest.cpp + TEST ensure_test SOURCES EnsureTest.cpp + TEST fsm_test SOURCES FSMTest.cpp + TEST filter_test SOURCES FilterTest.cpp + TEST future_splitter_test SOURCES FutureSplitterTest.cpp + # MSVC SFINAE bug + #TEST future_test SOURCES FutureTest.cpp + TEST header_compile_test SOURCES HeaderCompileTest.cpp + TEST interrupt_test SOURCES InterruptTest.cpp + TEST map_test SOURCES MapTest.cpp + TEST non_copyable_lambda_test SOURCES NonCopyableLambdaTest.cpp + TEST poll_test SOURCES PollTest.cpp + TEST promise_test SOURCES PromiseTest.cpp + TEST reduce_test SOURCES ReduceTest.cpp + # MSVC SFINAE bug + #TEST retrying_test SOURCES RetryingTest.cpp + TEST self_destruct_test SOURCES SelfDestructTest.cpp + TEST shared_promise_test SOURCES SharedPromiseTest.cpp + TEST test_executor_test SOURCES TestExecutorTest.cpp + TEST then_compile_test HEADERS ThenCompileTest.h SOURCES - BarrierTest.cpp - CollectTest.cpp - ContextTest.cpp - CoreTest.cpp - EnsureTest.cpp - ExecutorTest.cpp - FSMTest.cpp - FilterTest.cpp - # MSVC SFINAE bug - #FutureTest.cpp - HeaderCompileTest.cpp - InterruptTest.cpp - MapTest.cpp - NonCopyableLambdaTest.cpp - PollTest.cpp - PromiseTest.cpp - ReduceTest.cpp - # MSVC SFINAE bug - #RetryingTest.cpp - SelfDestructTest.cpp - SharedPromiseTest.cpp ThenCompileTest.cpp - ThenTest.cpp - TimekeeperTest.cpp - TimesTest.cpp - UnwrapTest.cpp - ViaTest.cpp - WaitTest.cpp - WhenTest.cpp - WhileDoTest.cpp - WillEqualTest.cpp - WindowTest.cpp + TEST then_test SOURCES ThenTest.cpp + TEST timekeeper_test SOURCES TimekeeperTest.cpp + TEST times_test SOURCES TimesTest.cpp + TEST unwrap_test SOURCES UnwrapTest.cpp + TEST via_test SOURCES ViaTest.cpp + TEST wait_test SOURCES WaitTest.cpp + TEST when_test SOURCES WhenTest.cpp + TEST while_do_test SOURCES WhileDoTest.cpp + TEST will_equal_test SOURCES WillEqualTest.cpp + TEST window_test SOURCES WindowTest.cpp DIRECTORY gen/test/ # MSVC bug can't resolve initializer_list constructor properly @@ -374,8 +431,13 @@ if (BUILD_TESTS) TEST parallel_map_test SOURCES ParallelMapTest.cpp TEST parallel_test SOURCES ParallelTest.cpp + DIRECTORY hash/test/ + TEST checksum_test SOURCES ChecksumTest.cpp + TEST hash_test SOURCES HashTest.cpp + TEST spooky_hash_v1_test SOURCES SpookyHashV1Test.cpp + TEST spooky_hash_v2_test SOURCES SpookyHashV2Test.cpp + DIRECTORY io/test/ - TEST compression_test SOURCES CompressionTest.cpp TEST iobuf_test SOURCES IOBufTest.cpp TEST iobuf_cursor_test SOURCES IOBufCursorTest.cpp TEST iobuf_queue_test SOURCES IOBufQueueTest.cpp @@ -401,6 +463,8 @@ if (BUILD_TESTS) # This is disabled because it depends on things that don't exist # on Windows. #EventHandlerTest.cpp + # The async signal handler is not supported on Windows. + #AsyncSignalHandlerTest.cpp TEST async_timeout_test SOURCES AsyncTimeoutTest.cpp TEST AsyncUDPSocketTest SOURCES AsyncUDPSocketTest.cpp TEST DelayedDestructionTest SOURCES DelayedDestructionTest.cpp @@ -420,20 +484,39 @@ if (BUILD_TESTS) DIRECTORY io/async/ssl/test/ TEST ssl_errors_test SOURCES SSLErrorsTest.cpp + DIRECTORY memory/test/ + TEST arena_test SOURCES ArenaTest.cpp + TEST thread_cached_arena_test SOURCES ThreadCachedArenaTest.cpp + TEST mallctl_helper_test SOURCES MallctlHelperTest.cpp + DIRECTORY portability/test/ TEST constexpr_test SOURCES ConstexprTest.cpp TEST libgen-test SOURCES LibgenTest.cpp + TEST openssl_portability_test SOURCES OpenSSLPortabilityTest.cpp TEST time-test SOURCES TimeTest.cpp DIRECTORY ssl/test/ TEST openssl_hash_test SOURCES OpenSSLHashTest.cpp + DIRECTORY stats/test/ + TEST histogram_test SOURCES HistogramTest.cpp + TEST timeseries_histogram_test SOURCES TimeseriesHistogramTest.cpp + TEST timeseries_test SOURCES TimeseriesTest.cpp + + DIRECTORY synchronization/test/ + TEST call_once_test SOURCES CallOnceTest.cpp + TEST lifo_sem_test SOURCES LifoSemTests.cpp + + DIRECTORY system/test/ + TEST memory_mapping_test SOURCES MemoryMappingTest.cpp + TEST shell_test SOURCES ShellTest.cpp + #TEST subprocess_test SOURCES SubprocessTest.cpp + TEST thread_id_test SOURCES ThreadIdTest.cpp + TEST thread_name_test SOURCES ThreadNameTest.cpp + DIRECTORY test/ TEST ahm_int_stress_test SOURCES AHMIntStressTest.cpp - TEST apply_tuple_test SOURCES ApplyTupleTest.cpp - TEST arena_test SOURCES ArenaTest.cpp TEST arena_smartptr_test SOURCES ArenaSmartPtrTest.cpp - TEST array_test SOURCES ArrayTest.cpp TEST ascii_check_test SOURCES AsciiCaseInsensitiveTest.cpp TEST atomic_bit_set_test SOURCES AtomicBitSetTest.cpp TEST atomic_hash_array_test SOURCES AtomicHashArrayTest.cpp @@ -445,10 +528,7 @@ if (BUILD_TESTS) TEST baton_test SOURCES BatonTest.cpp TEST bit_iterator_test SOURCES BitIteratorTest.cpp TEST bits_test SOURCES BitsTest.cpp - TEST cache_locality_test SOURCES CacheLocalityTest.cpp TEST cacheline_padded_test SOURCES CachelinePaddedTest.cpp - TEST call_once_test SOURCES CallOnceTest.cpp - TEST checksum_test SOURCES ChecksumTest.cpp TEST clock_gettime_wrappers_test SOURCES ClockGettimeWrappersTest.cpp TEST concurrent_skip_list_test SOURCES ConcurrentSkipListTest.cpp TEST container_traits_test SOURCES ContainerTraitsTest.cpp @@ -461,8 +541,6 @@ if (BUILD_TESTS) TEST dynamic_converter_test SOURCES DynamicConverterTest.cpp TEST dynamic_other_test SOURCES DynamicOtherTest.cpp TEST endian_test SOURCES EndianTest.cpp - TEST enumerate_test SOURCES EnumerateTest.cpp - TEST evicting_cache_map_test SOURCES EvictingCacheMapTest.cpp TEST exception_test SOURCES ExceptionTest.cpp TEST exception_wrapper_test SOURCES ExceptionWrapperTest.cpp TEST expected_test SOURCES ExpectedTest.cpp @@ -472,20 +550,19 @@ if (BUILD_TESTS) TEST file_util_test HANGING SOURCES FileUtilTest.cpp TEST fingerprint_test SOURCES FingerprintTest.cpp - TEST foreach_test SOURCES ForeachTest.cpp TEST format_other_test SOURCES FormatOtherTest.cpp TEST format_test SOURCES FormatTest.cpp TEST function_scheduler_test SOURCES FunctionSchedulerTest.cpp - TEST function_test SOURCES FunctionTest.cpp + TEST function_test BROKEN + SOURCES FunctionTest.cpp TEST function_ref_test SOURCES FunctionRefTest.cpp TEST futex_test SOURCES FutexTest.cpp TEST group_varint_test SOURCES GroupVarintTest.cpp TEST group_varint_test_ssse3 SOURCES GroupVarintTest.cpp TEST has_member_fn_traits_test SOURCES HasMemberFnTraitsTest.cpp - TEST hash_test SOURCES HashTest.cpp - TEST histogram_test SOURCES HistogramTest.cpp TEST indestructible_test SOURCES IndestructibleTest.cpp - TEST indexed_mem_pool_test SOURCES IndexedMemPoolTest.cpp + TEST indexed_mem_pool_test BROKEN + SOURCES IndexedMemPoolTest.cpp # MSVC Preprocessor stringizing raw string literals bug #TEST json_test SOURCES JsonTest.cpp TEST json_other_test @@ -493,18 +570,14 @@ if (BUILD_TESTS) SOURCES JsonOtherTest.cpp TEST lazy_test SOURCES LazyTest.cpp - TEST lifosem_test SOURCES LifoSemTests.cpp TEST lock_traits_test SOURCES LockTraitsTest.cpp TEST locks_test SOURCES SmallLocksTest.cpp SpinLockTest.cpp TEST logging_test SOURCES LoggingTest.cpp - TEST mallctl_helper_test SOURCES MallctlHelperTest.cpp TEST math_test SOURCES MathTest.cpp TEST map_util_test SOURCES MapUtilTest.cpp TEST memcpy_test SOURCES MemcpyTest.cpp TEST memory_idler_test SOURCES MemoryIdlerTest.cpp - TEST memory_mapping_test SOURCES MemoryMappingTest.cpp TEST memory_test SOURCES MemoryTest.cpp - TEST merge SOURCES MergeTest.cpp TEST move_wrapper_test SOURCES MoveWrapperTest.cpp TEST mpmc_pipeline_test SOURCES MPMCPipelineTest.cpp TEST mpmc_queue_test SLOW @@ -518,7 +591,7 @@ if (BUILD_TESTS) TEST packed_sync_ptr_test HANGING SOURCES PackedSyncPtrTest.cpp TEST padded_test SOURCES PaddedTest.cpp - TEST partial_test SOURCES PartialTest.cpp + #TEST poly_test SOURCES PolyTest.cpp TEST portability_test SOURCES PortabilityTest.cpp TEST producer_consumer_queue_test SLOW SOURCES ProducerConsumerQueueTest.cpp @@ -529,27 +602,17 @@ if (BUILD_TESTS) TEST scope_guard_test SOURCES ScopeGuardTest.cpp # Heavily dependent on drand and srand48 #TEST shared_mutex_test SOURCES SharedMutexTest.cpp - TEST shell_test SOURCES ShellTest.cpp TEST singleton_test SOURCES SingletonTest.cpp TEST singleton_test_global SOURCES SingletonTestGlobal.cpp TEST singleton_thread_local_test SOURCES SingletonThreadLocalTest.cpp TEST singletonvault_c_test SOURCES SingletonVaultCTest.cpp TEST small_vector_test SOURCES small_vector_test.cpp TEST sorted_vector_types_test SOURCES sorted_vector_test.cpp - TEST sparse_byte_set_test SOURCES SparseByteSetTest.cpp - TEST spooky_hash_v1_test SOURCES SpookyHashV1Test.cpp - TEST spooky_hash_v2_test SOURCES SpookyHashV2Test.cpp TEST string_test SOURCES StringTest.cpp - #TEST subprocess_test SOURCES SubprocessTest.cpp TEST synchronized_test SOURCES SynchronizedTest.cpp - TEST thread_cached_arena_test SOURCES ThreadCachedArenaTest.cpp TEST thread_cached_int_test SOURCES ThreadCachedIntTest.cpp - TEST thread_id_test SOURCES ThreadIdTest.cpp TEST thread_local_test SOURCES ThreadLocalTest.cpp - TEST thread_name_test SOURCES ThreadNameTest.cpp TEST timeout_queue_test SOURCES TimeoutQueueTest.cpp - TEST timeseries_histogram_test SOURCES TimeseriesHistogramTest.cpp - TEST timeseries_test SOURCES TimeseriesTest.cpp TEST token_bucket_test SOURCES TokenBucketTest.cpp TEST traits_test SOURCES TraitsTest.cpp TEST try_test SOURCES TryTest.cpp