distributable:
  url: https://github.com/fmtlib/fmt/archive/{{version}}.tar.gz
  strip-components: 1

versions:
  github: fmtlib/fmt

build:
  dependencies:
    cmake.org: ^3
  script:
    - cmake . -B build $ARGS -DBUILD_SHARED_LIBS=ON
    - run: make --jobs {{ hw.concurrency }} install
      working-directory: build
    - cmake . -B build-static $ARGS -DBUILD_SHARED_LIBS=OFF
    - run: make --jobs {{ hw.concurrency }} install
      working-directory: build-static
  env:
    ARGS:
      - -DCMAKE_INSTALL_PREFIX="{{prefix}}"
      - -DCMAKE_BUILD_TYPE=Release
    linux/aarch64:
      ARGS:
        - -DCMAKE_C_FLAGS=-fPIC
        - -DCMAKE_CXX_FLAGS=-fPIC
        - -DCMAKE_EXE_LINKER_FLAGS=-pie

test:
  - run: c++ $FIXTURE -lfmt -std=c++11
    fixture:
      extname: cc
      content: |
        #include <iostream>
        #include <string>
        #include <fmt/format.h>
        int main()
        {
          std::string str = fmt::format("The answer is {}", 42);
          std::cout << str;
          return 0;
        }
  - test "$(./a.out)" = "The answer is 42"
