| #!/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 |
| # |
| # If editing these flags, make sure `local-build-bazel.sh` flags are updated. |
| 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 |
| |
| # User-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)" |
| elif [ "$(uname)" == "Linux" ]; then |
| cmake --build . -- "-j$(nproc)" |
| else |
| cmake --build . |
| fi |