| #!/usr/bin/env bash |
| # |
| # Copyright (c) Facebook, Inc. and its affiliates. |
| # All rights reserved. |
| # |
| # This source code is licensed under the BSD-style license found in the |
| # LICENSE file in the root directory of this source tree. |
| |
| set -e |
| |
| mkdir -p build/local |
| |
| CMAKE_ARGS=() |
| |
| # CMake-level configuration |
| CMAKE_ARGS+=("-DCMAKE_BUILD_TYPE=Release") |
| CMAKE_ARGS+=("-DCMAKE_POSITION_INDEPENDENT_CODE=ON") |
| |
| # If Ninja is installed, prefer it to Make |
| if [ -x "$(command -v ninja)" ] |
| then |
| CMAKE_ARGS+=("-GNinja") |
| fi |
| |
| CMAKE_ARGS+=("-DXNNPACK_LIBRARY_TYPE=static") |
| |
| CMAKE_ARGS+=("-DXNNPACK_BUILD_BENCHMARKS=ON") |
| CMAKE_ARGS+=("-DXNNPACK_BUILD_TESTS=ON") |
| |
| # Use-specified CMake arguments go last to allow overridding defaults |
| CMAKE_ARGS+=($@) |
| |
| cd build/local && cmake ../.. \ |
| "${CMAKE_ARGS[@]}" |
| |
| # Cross-platform parallel build |
| if [ "$(uname)" == "Darwin" ] |
| then |
| cmake --build . -- "-j$(sysctl -n hw.ncpu)" |
| else |
| cmake --build . -- "-j$(nproc)" |
| fi |