Skip to content
Snippets Groups Projects
Nicolas Werner's avatar
Nicolas Werner authored
324414f1
History

Building

start mersdk

connect to mersdk:

ssh -p 2222 -i ~/SailfishOS/vmshare/ssh/private_keys/engine/mersdk mersdk@localhost

install cmake:

sdk-assistant list # choose sdk you need
sb2 -t <sdk> -m sdk-install -R zypper in cmake openssl-devel boost-devel
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-install -R zypper openssl-devel boost-devel make

build libolm && sodium && nlohmann json && spdlog

cd ~/
mkdir deps
cd deps
https://git.matrix.org/git/olm.git
cd olm
git checkout 3.0.0
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake . -Bbuild -DBUILD_SHARED_LIBS=NO -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/mersdk/deps/olm-i486
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake --build build
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake --build build -- install


curl -LO https://github.com/jedisct1/libsodium/releases/download/1.0.17/libsodium-1.0.17.tar.gz
tar -xf libsodium-1.0.17.tar.gz
cd libsodium-1.0.17/

sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build ./configure --prefix=/home/mersdk/deps/sodium-i486
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build make
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build make check
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build make install

git clone https://github.com/nlohmann/json.git
cd json
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake . -Bbuild -DBUILD_SHARED_LIBS=NO -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/mersdk/deps/json-i486
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake --build build
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake --build build -- install

https://github.com/gabime/spdlog/archive/v1.3.1.tar.gz
tar -xf v1.3.1.tar.gz
cd spdlog-1.3.1
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake . -DCMAKE_BUILD_TYPE=Release -DSPDLOG_BUILD_BENCH=OFF -DSPDLOG_BUILD_EXAMPLES=OFF  -DSPDLOG_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/home/mersdk/deps/spdlog -Bbuild
sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake --build build -- install

build mtxclient

git clone https://github.com/Nheko-Reborn/mtxclient.git
cd mtxclient/
sed -i '/sized-deallocation/d' CMakeLists.txt
sed -i '/diagnostics-color/d' CMakeLists.txt
CXX=/opt/gcc6/bin/g++ CC=/opt/gcc6/bin/gcc LINK=/opt/gcc6/bin/g++ PKG_CONFIG_PATH=/home/mersdk/deps/sodium-i486/lib/pkgconfig/ sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/mersdk/mtxclient/mtxclient-inst-i486 -DSPDLOG_DIR=/home/mersdk/deps/spdlog -Dnlohmann_json_DIR=/home/mersdk/deps/json-i486/lib/cmake/nlohmann_json -Dsodium_USE_STATIC_LIBS=ON -DOLM_INCLUDE_DIR=/home/mersdk/deps/olm-i486/include/ -DOLM_LIBRARY=/home/mersdk/deps/olm-i486/lib/libolm.a -DBUILD_LIB_EXAMPLES=off -DBUILD_LIB_TESTS=OFF -Bbuild
CXX=/opt/gcc6/bin/g++ CC=/opt/gcc6/bin/gcc LINK=/opt/gcc6/bin/g++ PKG_CONFIG_PATH=/home/mersdk/deps/sodium-armv7hl/lib/pkgconfig/ sb2 -t SailfishOS-3.0.2.8-armv7hl -m sdk-build cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/mersdk/mtxclient/mtxclient-inst-armv7hl -DSPDLOG_DIR=/home/mersdk/deps/spdlog -Dnlohmann_json_DIR=/home/mersdk/deps/json-arm7hl/lib/cmake/nlohmann_json -Dsodium_USE_STATIC_LIBS=ON -DOLM_INCLUDE_DIR=/home/mersdk/deps/olm-arm7hl/include/ -DOLM_LIBRARY=/home/mersdk/deps/olm-arm7hl/lib/libolm.a -DBUILD_LIB_EXAMPLES=off -DBUILD_LIB_TESTS=OFF -Bbuild2

sb2 -t SailfishOS-3.0.2.8-i486 -m sdk-build cmake --build build -- install

copy mtxclient to the lib subfolder, ie, lib/mtxclient-inst-i486, also copy nlohmann_json to the lib subfolder