git-subtree-dir: third_party/mason git-subtree-split: c7a967003a7113a17faafe3b41082ad1ae3f1c2f
94 lines
2.9 KiB
Bash
94 lines
2.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
MASON_NAME=or-tools
|
|
MASON_VERSION=5.1
|
|
MASON_LIB_FILE=lib/libortools.${MASON_DYNLIB_SUFFIX}
|
|
|
|
. ${MASON_DIR}/mason.sh
|
|
|
|
function mason_load_source {
|
|
mason_download \
|
|
https://github.com/google/or-tools/archive/v${MASON_VERSION}.tar.gz \
|
|
3d30004e60acfb27776fc7a8d135adb2e1924dde
|
|
|
|
mason_extract_tar_gz
|
|
|
|
export MASON_BUILD_PATH=${MASON_ROOT}/.build/or-tools-${MASON_VERSION}
|
|
}
|
|
|
|
function mason_prepare_compile {
|
|
${MASON_DIR}/mason install gflags 2.1.2
|
|
MASON_GFLAGS=$(${MASON_DIR}/mason prefix gflags 2.1.2)
|
|
${MASON_DIR}/mason install protobuf 3.0.0
|
|
MASON_PROTOBUF=$(${MASON_DIR}/mason prefix protobuf 3.0.0)
|
|
${MASON_DIR}/mason install sparsehash 2.0.2
|
|
MASON_SPARSEHASH=$(${MASON_DIR}/mason prefix sparsehash 2.0.2)
|
|
}
|
|
|
|
function mason_cflags {
|
|
echo "-I${MASON_PREFIX}/include"
|
|
}
|
|
|
|
function mason_ldflags {
|
|
echo "-L${MASON_PREFIX}/lib -lortools -lz"
|
|
}
|
|
|
|
function mason_compile {
|
|
|
|
# The following patch to the build script disables some of the more useless
|
|
# and heavyweight parts of the build, like building the automake and autoconf
|
|
# .info docs with TeXinfo.
|
|
patch -N -p1 < ${MASON_DIR}/scripts/${MASON_NAME}/${MASON_VERSION}/patch.diff
|
|
|
|
export CXXFLAGS="${CXXFLAGS} -fpermissive"
|
|
export CXX="${MASON_CCACHE} ${CXX}"
|
|
export CC="${MASON_CCACHE} ${CC}"
|
|
export CFLAGS="${CFLAGS} -fpermissive"
|
|
|
|
make missing_directories
|
|
mkdir -p $(pwd)/dependencies/install/lib
|
|
mkdir -p $(pwd)/dependencies/install/bin
|
|
mkdir -p $(pwd)/dependencies/install/include/google
|
|
# includes
|
|
ln -s ${MASON_GFLAGS}/include/gflags $(pwd)/dependencies/install/include/gflags
|
|
ln -s ${MASON_PROTOBUF}/include/google/protobuf $(pwd)/dependencies/install/include/google/protobuf
|
|
cp -r ${MASON_SPARSEHASH}/include/google/* $(pwd)/dependencies/install/include/google/
|
|
cp -r ${MASON_SPARSEHASH}/include/sparsehash $(pwd)/dependencies/install/include/
|
|
# programs
|
|
ln -s ${MASON_PROTOBUF}/bin/protoc $(pwd)/dependencies/install/bin/protoc
|
|
# libraries
|
|
ln -s ${MASON_GFLAGS}/lib/libgflags.a $(pwd)/dependencies/install/lib/libgflags.a
|
|
ln -s ${MASON_PROTOBUF}/lib/libprotobuf.a $(pwd)/dependencies/install/lib/libprotobuf.a
|
|
|
|
make ortoolslibs -j${MASON_CONCURRENCY}
|
|
|
|
if [[ $(uname -s) == "Darwin" ]] ; then
|
|
install_name_tool -id @loader_path/libortools.dylib lib/libortools.dylib
|
|
fi
|
|
|
|
mkdir -p ${MASON_PREFIX}/lib/
|
|
cp -r lib/libortools* ${MASON_PREFIX}/lib/
|
|
|
|
mkdir -p "${MASON_PREFIX}/include/or-tools/"
|
|
|
|
for i in {algorithms,base,bop,constraint_solver,glop,graph,linear_solver,sat,util}; do
|
|
cp -r src/$i ${MASON_PREFIX}/include/or-tools/
|
|
done
|
|
|
|
for i in {algorithms,base,bop,constraint_solver,glop,graph,linear_solver,sat,util}; do
|
|
if [[ -d src/gen/$i ]]; then
|
|
cp -r src/gen/$i/*h ${MASON_PREFIX}/include/or-tools/$i/ || true
|
|
fi
|
|
done
|
|
|
|
}
|
|
|
|
function mason_static_libs {
|
|
:
|
|
}
|
|
|
|
|
|
echo $DIR
|
|
|
|
mason_run "$@"
|