Files
core_libraries/resources/packages/mongo/prepare
Timothy Prepscius b308a4c280 flatten 20260225
2026-02-25 13:00:25 -05:00

121 lines
3.4 KiB
Plaintext
Executable File

set -x
mkdir -p sdk/include
mkdir mongo
pushd mongo
#wget https://github.com/mongodb/mongo-c-driver/releases/download/1.4.0/mongo-c-driver-1.4.0.tar.gz
#wget --content-disposition https://codeload.github.com/mongodb/mongo-cxx-driver/tar.gz/r3.0.2
#wget https://github.com/mongodb/mongo-c-driver/archive/refs/tags/debian/1.23.1-1.tar.gz
#mv 1.23.1-1.tar.gz mongo-c-1.23.1-1.tar.gz
wget https://github.com/mongodb/mongo-c-driver/releases/download/1.23.4/mongo-c-driver-1.23.4.tar.gz
wget https://github.com/mongodb/mongo-cxx-driver/releases/download/r3.7.1/mongo-cxx-driver-r3.7.1.tar.gz
tar xf mongo-c-*.tar.gz
tar xf mongo-cxx-*.tar.gz
ln -s mongo-c-*/ mongo-c
ln -s mongo-cxx-*/ mongo-cxx
pushd mongo-c
currentpath=`pwd`
mongo_c_prefix=$currentpath/install
# CFLAGS=-fPIC ./configure --prefix=$mongo_c_prefix --enable-static --enable-sasl=no --enable-ssl=no --enable-shared=no
# ./configure --prefix=$mongo_c_prefix --enable-static --enable-sasl=no --enable-ssl=no --enable-shared=no --with-pic
# make install
cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_INSTALL_PREFIX=$mongo_c_prefix \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DTHREADS_PREFER_PTHREAD_FLAG=ON \
-DENABLE_TESTS=OFF -DENABLE_EXAMPLES=OFF \
-DENABLE_SASL=OFF \
-DENABLE_SSL=OPENSSL \
-DOPENSSL_ROOT_DIR=`pwd`/../../openssl/openssl/install-native/ \
-DENABLE_SHARED=OFF \
-DENABLE_SNAPPY=OFF \
-DENABLE_ZSTD=OFF \
-DCMAKE_BUILD_TYPE=Release
# -DCMAKE_BUILD_TYPE=RelWithDebInfo \
# --debug-output
make -i install
popd
pushd mongo-cxx
currentpath=`pwd`
mongo_cxx_prefix=$currentpath/install
echo "
// TJP fixes build on ubuntu noble
#include <cstdint>
" >> src/mongocxx/config/config.hpp.in
PKG_CONFIG_PATH=$mongo_c_prefix/lib/pkgconfig \
CMAKE_PREFIX_PATH=$mongo_c_prefix \
cmake \
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
-DCMAKE_CXX_STANDARD=17 \
-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_AND_STATIC_LIBS=OFF -DBSONCXX_BUILD_STATIC=ON -DMONGOCXX_BUILD_STATIC=ON \
-DBSONCXX_LINK_WITH_STATIC_MONGOC=ON -DMONGOCXX_LINK_WITH_STATIC_MONGOC=ON \
-DENABLE_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=$mongo_cxx_prefix \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DTHREADS_PREFER_PTHREAD_FLAG=ON \
-DCMAKE_BUILD_TYPE=Release
# --debug-output
# \
# -DBSONCXX_POLY_USE_STD=ON \
# -DBSONCXX_POLY_USE_MNMLSTC=OFF
make -i install
# -DLIBBSON_DIR=$mongo_c_prefix -DLIBMONGOC_DIR=$mongo_c_prefix \
popd
popd
mkdir -p sdk/include
pushd sdk/include
ln -fs ../../mongo/mongo-c/install/include/libmongoc-*/ mongoc
ln -fs ../../mongo/mongo-c/install/include/libbson-*/ libbson
ln -fs ../../mongo/mongo-cxx/install/include/mongocxx/v_noabi/mongocxx
ln -fs ../../mongo/mongo-cxx/install/include/bsoncxx/v_noabi/bsoncxx
popd
unameOut="$(uname -s)"
case "${unameOut}" in
Linux*) machine=lnx;;
Darwin*) machine=osx;;
CYGWIN*) machine=Cygwin;;
MINGW*) machine=MinGw;;
*) machine="UNKNOWN:${unameOut}"
esac
echo ${machine}
UNAME_S=`uname -s`
UNAME_M=`uname -m`
EXT=${UNAME_S}-${UNAME_M}
for X in Debug Release
do
mkdir -p sdk/lib/$X.$EXT
pushd sdk/lib/$X.$EXT
ln -fs ../../../mongo/mongo-c/install/lib*/libbson-*.a libbson.a
ln -fs ../../../mongo/mongo-c/install/lib*/libmongoc-*.a libmongoc.a
ln -fs ../../../mongo/mongo-cxx/install/lib*/libbsoncxx*.a libbsoncxx.a
ln -fs ../../../mongo/mongo-cxx/install/lib*/libmongocxx*.a libmongocxx.a
popd
done