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

versions:
  github: google/highway/tags

build:
  dependencies:
    cmake.org: '*'
  script:
    - cmake -S . -B builddir $ARGS
    - cmake --build builddir
    - cmake --install builddir

    - mkdir -p {{prefix}}/share/hwy/examples
    - cp -R hwy/examples {{prefix}}/share/hwy/
  env:
    ARGS:
      - -DBUILD_SHARED_LIBS=ON
      - -DCMAKE_INSTALL_PREFIX={{prefix}}
      - -DHWY_ENABLE_TESTS=OFF
      - -DHWY_ENABLE_EXAMPLES=OFF
      - -DCMAKE_BUILD_TYPE=Release
    linux/x86-64:
      ARGS:
        # ld.lld: error: undefined reference due to --no-allow-shlib-undefined: __extendhfsf2
        - -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined

test:
  env:
    linux/x86-64:
      # ld.lld: error: undefined reference due to --no-allow-shlib-undefined: __extendhfsf2
      CXXFLAGS: $CXXFLAGS -Wl,--allow-shlib-undefined
  script:
    - mkdir -p hwy
    - cp -R {{prefix}}/share/hwy/examples hwy/
    - c++ -std=c++11 -lhwy -I. hwy/examples/profiler_example.cc $CXXFLAGS
    - ./a.out
    # ^^ the -I. is because bizarely profiler_example.cc configures other headers to
    # include itself but only on intel…
