pantry/projects/facebook.com/folly/package.yml
Joe DeCapo 572fa511cb
+wangle (#1858)
* +wangle

* fix cmake files

* [wip] Add test

* whole bunch of fixes

* Darwin folly deps

* Kills can fail

* skip cleanup (breaks testing)

* this is thorny

* nevermind

---------

Co-authored-by: Jacob Heider <jacob@tea.xyz>
2023-09-07 21:24:33 -04:00

92 lines
2.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

distributable:
url: https://github.com/facebook/folly/releases/download/{{version.tag}}/folly-{{version.tag}}.tar.gz
strip-components: 0
versions:
github: facebook/folly
dependencies:
boost.org: '*'
gflags.github.io: '*'
google.com/glog: '*'
libevent.org: '*'
lz4.org: 1
openssl.org: ^1.1
tukaani.org/xz: 5
facebook.com/zstd: 1
gnu.org/coreutils: 9
google.github.io/snappy: '*'
google.com/double-conversion: ^3
fmt.dev: ^9
darwin:
sourceware.org/bzip2: '*'
zlib.net: '*'
build:
dependencies:
tea.xyz/gx/cc: c99
tea.xyz/gx/make: '*'
cmake.org: ^3.0.2
freedesktop.org/pkg-config: ^0.29
working-directory:
/tmp/xyz.tea.folly
# ^^ facebook use a shitty custom regex function to remove sources that
# shouldnt be compiled from the library target. They start with *all sources*
# our default build directory has a `+` in it which breaks facebooks
# piss awful code.
#TODO dont use exotic characters in our build directories
script:
- test -d xyz.tea.srcs && rm -rf xyz.tea.srcs
- mv $SRCROOT xyz.tea.srcs
- cmake $ARGS -DBUILD_SHARED_LIBS=ON -S xyz.tea.srcs -B shared
- cmake --build shared
- cmake --install shared
- cmake $ARGS -DBUILD_SHARED_LIBS=OFF -S xyz.tea.srcs -B static
- cmake --build static
- run: cp /tmp/xyz.tea.folly/static/libfolly.a libfollybenchmark.a
working-directory: ${{prefix}}/static/folly
- run: |
sed -E -i.bak \
-e "s:{{tea.prefix}}:\$\{_IMPORT_PREFIX\}/../../..:g" \
-e '/^ INTERFACE_INCLUDE_DIRECTORIES/ s|/v([0-9]+)(\.[0-9]+)*[a-z]?/include|/v\1/include|g' \
-e '/^ INTERFACE_LINK_LIBRARIES/ s|/v([0-9]+)(\.[0-9]+)*[a-z]?/lib|/v\1/lib|g' \
folly-targets.cmake
rm folly-targets.cmake.bak
working-directory: ${{prefix}}/lib/cmake/folly
- run: |
sed -i.bak -e 's/-I[^ ]* *//g' libfolly.pc
rm libfolly.pc.bak
working-directory: ${{prefix}}/lib/pkgconfig
env:
ARGS:
- -DCMAKE_INSTALL_PREFIX={{prefix}}
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_TESTING=OFF
- -DCMAKE_VERBOSE_MAKEFILE=ON
linux/aarch64:
ARGS:
- -DCMAKE_C_FLAGS=-fPIC
- -DCMAKE_CXX_FLAGS=-fPIC
- -DCMAKE_EXE_LINKER_FLAGS=-pie
test:
dependencies:
tea.xyz/gx/cc: c99
fixture: |
#include <folly/FBVector.h>
int main() {
folly::fbvector<int> numbers({0, 1, 2, 3});
numbers.reserve(10);
for (int i = 4; i < 10; i++) {
numbers.push_back(i * 2);
}
assert(numbers[6] == 12);
return 0;
}
script: |
mv $FIXTURE b.cc
c++ -std=c++17 b.cc -lfolly -ldl -lfmt -lglog
./a.out