1*2b54f0dbSXin Li#!/usr/bin/env bash 2*2b54f0dbSXin Li# 3*2b54f0dbSXin Li# Copyright (c) Facebook, Inc. and its affiliates. 4*2b54f0dbSXin Li# All rights reserved. 5*2b54f0dbSXin Li# 6*2b54f0dbSXin Li# This source code is licensed under the BSD-style license found in the 7*2b54f0dbSXin Li# LICENSE file in the root directory of this source tree. 8*2b54f0dbSXin Li 9*2b54f0dbSXin Liset -e 10*2b54f0dbSXin Li 11*2b54f0dbSXin Limkdir -p build/local 12*2b54f0dbSXin Li 13*2b54f0dbSXin LiCMAKE_ARGS=() 14*2b54f0dbSXin Li 15*2b54f0dbSXin Li# CMake-level configuration 16*2b54f0dbSXin LiCMAKE_ARGS+=("-DCMAKE_BUILD_TYPE=Release") 17*2b54f0dbSXin LiCMAKE_ARGS+=("-DCMAKE_POSITION_INDEPENDENT_CODE=ON") 18*2b54f0dbSXin Li 19*2b54f0dbSXin Li# If Ninja is installed, prefer it to Make 20*2b54f0dbSXin Liif [ -x "$(command -v ninja)" ] 21*2b54f0dbSXin Lithen 22*2b54f0dbSXin Li CMAKE_ARGS+=("-GNinja") 23*2b54f0dbSXin Lifi 24*2b54f0dbSXin Li 25*2b54f0dbSXin Li# Use-specified CMake arguments go last to allow overridding defaults 26*2b54f0dbSXin LiCMAKE_ARGS+=($@) 27*2b54f0dbSXin Li 28*2b54f0dbSXin Licd build/local && cmake ../.. \ 29*2b54f0dbSXin Li "${CMAKE_ARGS[@]}" 30*2b54f0dbSXin Li 31*2b54f0dbSXin Li# Cross-platform parallel build 32*2b54f0dbSXin Liif [ "$(uname)" == "Darwin" ]; then 33*2b54f0dbSXin Li cmake --build . -- "-j$(sysctl -n hw.ncpu)" 34*2b54f0dbSXin Lielif [ "$(uname)" == "Linux" ]; then 35*2b54f0dbSXin Li cmake --build . -- "-j$(nproc)" 36*2b54f0dbSXin Lielse 37*2b54f0dbSXin Li cmake --build . 38*2b54f0dbSXin Lifi 39