eedb/cmake/install_deps.sh
2019-01-04 09:56:52 +01:00

134 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
CMAKE_COMMAND=$1
CMAKE_GENERATOR=$2
CMAKE_CXX_COMPILER=$3
CMAKE_C_COMPILER=$4
CMAKE_PREFIX_PATH=$5
CMAKE_RPATH=$6
CMAKE_INSTALL_PREFIX=$7
CMAKE_BUILD_TYPE=$8
echo "CMAKE prefix path in script: ${CMAKE_PREFIX_PATH}"
if [ ! -d ${CMAKE_INSTALL_PREFIX} ]; then
mkdir -p ${CMAKE_INSTALL_PREFIX}
fi
# clone all
if [ ! -d sqlpp11/.git ]; then
git clone -b develop --depth=1 https://github.com/rbock/sqlpp11.git
else
cd sqlpp11; git pull; cd ../
fi
if [ ! -d sqlpp11-connector-postgresql/.git ]; then
git clone -b develop --depth=1 https://github.com/matthijs/sqlpp11-connector-postgresql.git
else
cd sqlpp11-connector-postgresql; git pull; cd ../
fi
if [ ! -d wt/.git ]; then
git clone --depth=1 https://github.com/emweb/wt.git
else
cd wt; git pull; cd ../
fi
if [ ! -d ChaiScript/.git ]; then
git clone -b develop --depth=1 https://github.com/ChaiScript/ChaiScript.git
else
cd ChaiScript; git pull; cd ../
fi
# install all
echo "building sqlpp11"
mkdir sqlpp11-build -p; cd sqlpp11-build
${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../sqlpp11\
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}\
-DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}"\
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}"\
-DENABLE_TESTS=FALSE
${CMAKE_COMMAND} --build . --target install
cd ../
echo "building sqlpp11-connector-postgresql"
mkdir sqlpp11-connector-postgresql-build -p; cd sqlpp11-connector-postgresql-build
${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../sqlpp11-connector-postgresql\
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}\
-DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}"\
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}"\
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"\
-DENABLE_TESTS=FALSE
${CMAKE_COMMAND} --build . --target install -- -j$(nproc)
cd ../
echo "building wt"
echo "fixing boost library names"
(
cd "${CMAKE_RPATH}"
files="libboost_*.so.*"
regex="libboost_([a-z_]*-mt(-d)?).*.so*"
for f in $files # unquoted in order to allow the glob to expand
do
if [[ $f =~ $regex ]]
then
libname="${BASH_REMATCH[1]}"
linkname="libboost_${libname}.so"
if [ ! -e ${linkname} ]; then
echo "Linking ${f} as libboost_${libname}.so"
ln -s "${f}" "libboost_${libname}.so" # same thing stored in a variable
fi
else
echo "$f doesn't match" >&2 # this could get noisy if there are a lot of non-matching files
fi
done
)
mkdir wt-build -p; cd wt-build
${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" \
../wt\
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}\
-DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}"\
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"\
-DCMAKE_INSTALL_RPATH="${CMAKE_RPATH}"\
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}"\
-DBUILD_EXAMPLES=OFF\
-DINSTALL_RESOURCES=ON\
-DENABLE_SSL=OFF\
-DENABLE_HARU=OFF\
-DENABLE_PANGO=OFF\
-DENABLE_SQLITE=OFF\
-DENABLE_POSTGRES=OFF\
-DENABLE_FIREBIRD=OFF\
-DENABLE_MYSQL=OFF\
-DENABLE_MSSQLSERVER=OFF\
-DENABLE_LIBWTDBO=TRUE\
-DENABLE_QT4=OFF\
-DENABLE_OPENGL=OFF\
-DENABLE_UNWIND=OFF\
-DCONNECTOR_FCGI=OFF
${CMAKE_COMMAND} --build . --target install -- -j$(nproc)
cd ../
echo "building ChaiScript"
mkdir ChaiScript-build -p; cd ChaiScript-build
${CMAKE_COMMAND} -G"${CMAKE_GENERATOR}" ../ChaiScript\
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}\
-DCMAKE_INSTALL_PREFIX="${CMAKE_INSTALL_PREFIX}"\
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"\
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}"\
-DMULTITHREAD_SUPPORT_ENABLED=TRUE\
-DDYNLOAD_ENABLED=FALSE\
-DBUILD_MODULES=TRUE\
-DBUILD_SAMPLES=FALSE\
-DRUN_FUZZY_TESTS=FALSE\
-DUSE_STD_MAKE_SHARED=TRUE\
-DRUN_PERFORMANCE_TESTS=FALSE
${CMAKE_COMMAND} --build . --target install -- -j$(expr $(nproc) / 2)
cd ../