Programming Languages Research Group: Git - folly.git/atom - CMakeLists.txt history Unnamed repository; edit this file 'description' to name the repository. http://plrg.eecs.uci.edu/git/?p=folly.git Peizhao Ou static/git-favicon.png static/git-logo.png 2018-01-19T17:46:52Z gitweb Add TimedDrivableExecutor to folly. 2018-01-19T17:18:41Z Lee Howes lwh@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-19T17:18:41Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=20808864dfde991fd740e6caefe632d4bf244d69
Add TimedDrivableExecutor to folly.

Summary: Adds a TimedDrivableExecutor implementation of DrivableExecutor that adds a driveUntil method. driveUntil is as drive, except that it takes a timepoint and will stop driving after that time to allow callers to time out more easily.

Reviewed By: yfeldblum

Differential Revision: D6658320

fbshipit-source-id: a75145748e78497ce107ae152f25729547883835
  • [D] CMakeLists.txt
cmake: remove the check preventing cmake on non-Windows platforms 2018-01-19T04:43:24Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-19T04:43:24Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=0eca7c9ffdf87a8a5a11858879b2f726ef9cb64a
cmake: remove the check preventing cmake on non-Windows platforms

Summary:
I believe the CMake build scripts have a similar level of functionality to the
autoconf-based build scripts even on Linux these days.  This lets users use
CMake on Linux and Mac, rather than directing them to autoconf instead.

Reviewed By: meyering

Differential Revision: D6745366

fbshipit-source-id: 0361eecead55ee06269192eee8d2e7286eb182b8
  • [D] CMakeLists.txt
cmake: mark the compression tests as slow 2018-01-19T04:43:21Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-19T04:43:21Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=2e5089d514ad890d04d9243c14db91a7c4814583
cmake: mark the compression tests as slow

Summary:
The compression test code has a large number of parameterized tests that run
with a large number of parameter combinations.  These tests take many minutes
to run.

Reviewed By: meyering

Differential Revision: D6745364

fbshipit-source-id: dac5d5eb4a786da7be453742fac5f92a9740e468
  • [D] CMakeLists.txt
cmake: enable running the tests 2018-01-19T04:43:19Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-19T04:43:19Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=5a4772681d6b4f86b4b92ff90a4ecc464134ddae
cmake: enable running the tests

Summary:
CMake 3.9+ includes built-in support for gtest.  This updates the CMake build
scripts to make use of this if the GoogleTest module is available.

Reviewed By: meyering

Differential Revision: D6745369

fbshipit-source-id: 1ef978874b9a0ef2cc5f48ab1c7a0b55d0f1155e
  • [D] CMakeLists.txt
cmake: build as many source files as possible 2018-01-19T04:43:18Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-19T04:43:18Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=b50a3dd838801676f9f5a3d5f0b9a094a8175d72
cmake: build as many source files as possible

Summary:
The CMakeLists.txt file finds the sources and headers for the main folly
library by finding all *.cpp and *.h files, and then excluding specific ones.

The CMakeLists.txt file was originally written for Windows builds, and it was
hard-coded to exclude a number of files that do not build on Windows.   This
updates the file to properly check for the dependencies, and build these files
if their required third-party dependencies are available.

Reviewed By: meyering

Differential Revision: D6745368

fbshipit-source-id: 3ee04d54147a68c482aab50d30bc9fe2a4134eef
  • [D] CMakeLists.txt
cmake: add more checks for folly-config.h generation 2018-01-19T04:43:15Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-19T04:43:15Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=3e00e4620a8b42641147336cbffdb098850e0cf4
cmake: add more checks for folly-config.h generation

Summary:
Update the CMake build files to perform additional checks to set configuration
macros in folly-config.h

I believe this should largely bring the CMake build on-par with (or even better
than) the autoconf build scripts.  I believe that the CMake build scripts now
perform all of the checks necessary to set macros in folly-config.h correctly.

The autoconf-based configure script also appears to have a number of bugs:
in several places it accidentally uses different macro names than the ones
checked in the source code.  Some of it's checks are also broken, and fail to
detect features correctly due to compilation errors in the check.

Reviewed By: yfeldblum

Differential Revision: D6735699

fbshipit-source-id: 5ce48f1deddd63c9d52fcccd5d5ccf6ca35e9a0d
  • [D] CMakeLists.txt
cmake: fix the test builds 2018-01-17T19:11:01Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-17T19:11:01Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=e96129da65d3ad2b20aae5a2bf2d22d2d72b8feb
cmake: fix the test builds

Summary:
- Fix the locations of some tests that have been moved.
- Remove some tests that have been deleted.
- Comment out some tests that depend on parts of folly that are not currently
  built by the CMake build scripts.
- Fix a build error in CompressionTest.cpp if FOLLY_HAVE_LIBZ is not defined.

Reviewed By: yfeldblum

Differential Revision: D6735700

fbshipit-source-id: 89f60751fa7079b2c609d23d85fbed2a0f317b55
  • [D] CMakeLists.txt
cmake: add checks to generate folly-config.h correctly 2018-01-13T00:03:00Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-13T00:03:00Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=b22d1721ed9c062e22b33936e13b39ed1507391a
cmake: add checks to generate folly-config.h correctly

Summary:
Add proper checks to detect and set the values in folly-config.h correctly.
Previously the code simply hard-coded values that were appropriate for Windows.

This does not yet define all of the settings produced by the autoconf build,
but it lets the CMake-based build largely succeed on Linux systems.

Reviewed By: meyering

Differential Revision: D6710437

fbshipit-source-id: 80490080ee6322995b740ac2a15181d220c6874a
  • [D] CMakeLists.txt
cmake: set compiler flags for non-Windows platforms 2018-01-13T00:02:58Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-13T00:02:58Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=03957924ccf4e32d0fbc4dc3198da3249f57b890
cmake: set compiler flags for non-Windows platforms

Summary:
Update CMakeLists.txt to check the current platform, and to set compiler flags
correctly.  It now uses flags for Microsoft Visual Studio on Windows, and flags
for gcc or clang on all other platforms.  Previously it unconditionally used
MSVC flags.

Reviewed By: meyering

Differential Revision: D6710435

fbshipit-source-id: dbae3097bcadf1ee4a25879dd7770603387c0e4d
  • [D] CMakeLists.txt
cmake: support using a separate build directory 2018-01-13T00:02:57Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-13T00:02:57Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=3d9eb7ffc32c2f5f878bb4aee61d30cb8c62a146
cmake: support using a separate build directory

Summary:
Fix rules in the CMakeLists.txt file that generate source files to first create
their output directory if necessary.  This allows the build to succeed when
building with a separate build output directory, rather than placing build
artifacts in the source tree itself.

Reviewed By: meyering

Differential Revision: D6710436

fbshipit-source-id: 786a65a37a70833e7e4a5affe4df292626dbb591
  • [D] CMakeLists.txt
cmake: fix error message on non-Windows platform 2018-01-12T02:24:07Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-12T02:24:07Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=ab21322d7285494f5c4609b3b549fe707a1c54e7
cmake: fix error message on non-Windows platform

Summary:
Building folly with cmake is only supported on Windows for now.  This fixes
cmake on non-Windows platforms to fail with a helpful message telling people to
use autoconf.  This message was in place before, but was after an MSVC version
check preventing it from appearing.

Reviewed By: meyering

Differential Revision: D6707328

fbshipit-source-id: a28a07ab0da41d605b11d93bba40f33520c5f57e
  • [D] CMakeLists.txt
Move folly/RWSpinLock.h to folly/synchronization/ 2018-01-05T07:08:03Z Yedidya Feldblum yfeldblum@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-05T07:08:03Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=5be3abd7102a288a53125d0e77f8ae06288df78e
Move folly/RWSpinLock.h to folly/synchronization/

Summary: [Folly] Move `folly/RWSpinLock.h` to `folly/synchronization/`.

Reviewed By: elsteveogrande

Differential Revision: D6659265

fbshipit-source-id: 307723e22f42ceb104f26657aed8b34f7e183afb
  • [D] CMakeLists.txt
Move folly/BitIterator.h to folly/container/ 2018-01-05T03:44:07Z Yedidya Feldblum yfeldblum@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-05T03:44:07Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=f6ed4a26c0f3e6ba12788206e54add9db18e4dd6
Move folly/BitIterator.h to folly/container/

Summary: [Folly] Move `folly/BitIterator.h` to `folly/container/`.

Reviewed By: djwatson

Differential Revision: D6648357

fbshipit-source-id: 5617e3210f58435fcbf3ef07fa745da47dbce475
  • [D] CMakeLists.txt
Add ColdClassTest.cpp to oss builds 2018-01-02T00:54:27Z Yedidya Feldblum yfeldblum@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2018-01-02T00:54:27Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=228c05ff964352538798bee101d6bf32d7940897
Add ColdClassTest.cpp to oss builds

Summary: [Folly] Add `ColdClassTest.cpp` to oss builds.

Reviewed By: spalamarchuk

Differential Revision: D6648831

fbshipit-source-id: f8d8a727d63e4e8b83391db454de990027f1bad4
  • [D] CMakeLists.txt
Move folly/Bits.h to folly/lang/ 2017-12-08T08:24:44Z Yedidya Feldblum yfeldblum@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2017-12-08T08:24:44Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=35054c8b8eefa0abaded33ff4150d195c9bf0e80
Move folly/Bits.h to folly/lang/

Summary: [Folly] Move `folly/Bits.h` to `folly/lang/`.

Reviewed By: phoad, Orvid

Differential Revision: D6495547

fbshipit-source-id: a93159321df8277f8a4b4f10a5e4e0fc58cb6022
  • [D] CMakeLists.txt
Move folly/Baton.h to folly/synchronization/ 2017-12-06T06:03:40Z Yedidya Feldblum yfeldblum@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2017-12-06T06:03:40Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=b3dc093ef094d6d97c10755e60392124828c5103
Move folly/Baton.h to folly/synchronization/

Summary: [Folly] Move `folly/Baton.h` to `folly/synchronization/`.

Reviewed By: phoad, Orvid

Differential Revision: D6490282

fbshipit-source-id: 66e2d25ffe3275d576b97b81c1987709000f6649
  • [D] CMakeLists.txt
logging: add LoggerDB::updateConfig() and resetConfig() 2017-11-30T01:35:16Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2017-11-30T01:35:16Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=01d4b7d6db80480e2977fcfa35775506ca5de41f
logging: add LoggerDB::updateConfig() and resetConfig()

Summary: Add methods for applying config changes from a LogConfig object to the LoggerDB.

Reviewed By: bolinfest

Differential Revision: D6200564

fbshipit-source-id: a25eb99e84b2885bf6853e2222db0d7432a6c37b
  • [D] CMakeLists.txt
logging: add a FileHandlerFactory class 2017-11-29T01:44:55Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2017-11-29T01:44:55Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=70230b7a106820807c8d74fcf3d21ebab3442fbb
logging: add a FileHandlerFactory class

Summary:
Add a new LogHandlerFactory interface for creating LogHandler objects from a
LogHandlerConfig.

Also add an initial FileHandlerFactory implementation capable of creating
LogHandler objects that write to a file descriptor.

Reviewed By: bolinfest

Differential Revision: D6200567

fbshipit-source-id: 14b86fc14ad475223aa4b57d45c40638b48c7594
  • [D] CMakeLists.txt
logging: add a LogConfig class and parsing code 2017-11-21T18:44:02Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2017-11-21T18:44:02Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=8af0eef96d6b2a2d3ea4e5bd6cf6ccd841fca14b
logging: add a LogConfig class and parsing code

Summary:
Add a new LogConfig class to represent the current configuration state of the
LoggerDB.  This also includes code to parse config strings in both JSON and a
simpler more human-writable format (intended primarily for use in command line
arguments).

I generally expect the human-writable format to be used mainly to configure log
levels.  It also supports configuring log handler details as well, but the
format for this data is slightly more cumbersome and will probably be harder
for people to easily remember.

The parsing code is intentionally kept as part of the 'init' library rather
than the core 'logging' library so that other libraries that simply wish to log
messages do not need to depend on it.  For instance, this would allow the folly
JSON library to use the logging library without causing a circular dependency.

Reviewed By: bolinfest

Differential Revision: D6200560

fbshipit-source-id: e4e3c7f941808251b6c7bcbbdac0210118675fb0
  • [D] CMakeLists.txt
implement to() conversions for std::chrono to timespec/timeval 2017-11-19T23:14:20Z Adam Simpkins simpkins@fb.com Facebook Github Bot facebook-github-bot@users.noreply.github.com 2017-11-19T23:14:20Z http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff;h=dc91b004d384ba57887b38d4668845bffee0ba08
implement to() conversions for std::chrono to timespec/timeval

Summary:
Add folly::to() conversions to convert between std::chrono::duration or
std::chrono::time_point types and struct timespec or struct timeval types.

To conform to the behavior of the existing arithmetic-to-arithmetic
conversions, this code performs proper overflow checking and throws a
`ConversionError` on overflow.  This unfortunately does make the code rather
complicated compared to a non-checking implementation.

Conversions between some unusual duration types is not implemented yet, and
will fail at compile time if someone tries to use it.  This happens for
durations where neither the numerator nor the denominator of the ratio is 1.
For instance, 7/13ths of a second.

Reviewed By: yfeldblum

Differential Revision: D6356700

fbshipit-source-id: 9dce8ab8f32d8c18089f32c7176a8abf3c3f11f7
  • [D] CMakeLists.txt