pantry/projects/facebook.com/folly/package.yml
Max Howell 4c2bb1dc95
changes for tea 1.0.0 (#3023)
I removed some tea --prefix usage, but decided in the end to keep it in tea/cli for now.
2023-08-23 10:28:14 -04:00

83 lines
2.3 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
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 -S xyz.tea.srcs -B .
- make --jobs {{hw.concurrency}} install
- 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