distributable:
  url: https://github.com/google/snappy/archive/refs/tags/{{version}}.tar.gz
  strip-components: 1

versions:
  github: google/snappy/tags

build:
  dependencies:
    freedesktop.org/pkg-config: '*'
    cmake.org: '*'
    gnu.org/patch: '*'
  script:
    # disable -Werror (because there are warnings lol)
    # disable no-rtti, since it messes up folly
    - sed -i -e 's/ -Werror//g' -e '/# Disable RTTI./{N;N;d;}' CMakeLists.txt
    - cmake . $ARGS
    - make install
    - make clean
    - cmake . -DBUILD_SHARED_LIBS=ON $ARGS
    - make install
  env:
    ARGS:
      - -DCMAKE_INSTALL_PREFIX={{prefix}}
      - -DCMAKE_BUILD_TYPE=Release
      - -DSNAPPY_BUILD_TESTS=OFF
      - -DSNAPPY_BUILD_BENCHMARKS=OFF

test:
  fixture: |
    #include <assert.h>
    #include <snappy.h>
    #include <string>
    using namespace std;
    using namespace snappy;
    int main() {
      string source = "Hello World!";
      string compressed, decompressed;
      Compress(source.data(), source.size(), &compressed);
      Uncompress(compressed.data(), compressed.size(), &decompressed);
      assert(source == decompressed);
      return 0;
    }
  script: |
    mv $FIXTURE fixture.cpp
    c++ fixture.cpp -lsnappy -std=c++11
    ./a.out
