Skip to content
This repository has been archived by the owner on Oct 17, 2019. It is now read-only.

Commit

Permalink
Merge branch 'e2ee'
Browse files Browse the repository at this point in the history
- Support for e2ee rooms
- Implement categories & file logging
- Let the user know when the app can't reach the server (#93)

fixes #13
fixes #326
  • Loading branch information
mujx committed Jun 17, 2018
2 parents cce85f3 + 9884e02 commit 8704265
Show file tree
Hide file tree
Showing 64 changed files with 3,760 additions and 2,665 deletions.
37 changes: 37 additions & 0 deletions .ci/bintray-release.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"files": [
{
"includePattern": "nheko-VERSION_NAME_VALUE.dmg",
"matrixParams": {
"override": 1
},
"uploadPattern": "VERSION_NAME_VALUE/nheko-VERSION_NAME_VALUE.dmg"
},
{
"includePattern": "nheko-VERSION_NAME_VALUE-x86_64.AppImage",
"matrixParams": {
"override": 1
},
"uploadPattern": "VERSION_NAME_VALUE/nheko-VERSION_NAME_VALUE-x86_64.AppImage"
}
],
"package": {
"desc": "Desktop client for the Matrix protocol",
"issue_tracker_url": "https://github.com/mujx/nheko/issues",
"licenses": [
"GPL-3.0"
],
"name": "nheko",
"public_download_numbers": true,
"public_stats": true,
"repo": "matrix",
"subject": "mujx",
"vcs_url": "https://github.com/mujx/nheko",
"website_url": "https://github.com/mujx/nheko"
},
"publish": true,
"version": {
"name": "VERSION_NAME_VALUE",
"vcs_tag": "VERSION_NAME_VALUE"
}
}
7 changes: 5 additions & 2 deletions .ci/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ set -ex

if [ $TRAVIS_OS_NAME == osx ]; then
brew update
brew install qt5 lmdb clang-format ninja
brew install qt5 lmdb clang-format ninja libsodium spdlog
brew upgrade boost

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py
Expand All @@ -23,6 +24,7 @@ if [ $TRAVIS_OS_NAME == linux ]; then
QT_PKG="59"
fi

sudo add-apt-repository -y ppa:chris-lea/libsodium
sudo add-apt-repository -y ppa:beineri/opt-qt${QT_VERSION}-trusty
sudo add-apt-repository -y ppa:george-edison55/cmake-3.x
sudo apt-get update -qq
Expand All @@ -32,5 +34,6 @@ if [ $TRAVIS_OS_NAME == linux ]; then
qt${QT_PKG}svg \
qt${QT_PKG}multimedia \
cmake \
liblmdb-dev
liblmdb-dev \
libsodium-dev
fi
14 changes: 9 additions & 5 deletions .ci/linux/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ DIR=${APP}.AppDir
TAG=`git tag -l --points-at HEAD`

# Set up AppImage structure.
mkdir -p ${DIR}/usr/{bin,share/pixmaps,share/applications}
mkdir -p ${DIR}/usr/{bin,lib,share/pixmaps,share/applications}

# Copy resources.
cp build/nheko ${DIR}/usr/bin
Expand All @@ -30,9 +30,13 @@ unset QTDIR
unset QT_PLUGIN_PATH
unset LD_LIBRARY_PATH

./linuxdeployqt*.AppImage \
${DIR}/usr/share/applications/nheko.desktop \
-bundle-non-qt-libs\
-appimage
export ARCH=$(uname -m)

./linuxdeployqt*.AppImage ${DIR}/usr/share/applications/*.desktop -bundle-non-qt-libs
./linuxdeployqt*.AppImage ${DIR}/usr/share/applications/*.desktop -appimage

chmod +x nheko-x86_64.AppImage

if [ ! -z $TRAVIS_TAG ]; then
mv nheko-x86_64.AppImage nheko-${TRAVIS_TAG}-x86_64.AppImage
fi
4 changes: 4 additions & 0 deletions .ci/macos/deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,7 @@ mv nheko.dmg ..
popd

dmgbuild -s ./.ci/macos/settings.json "Nheko" nheko.dmg

if [ ! -z $TRAVIS_TAG ]; then
mv nheko.dmg nheko-${TRAVIS_TAG}.dmg
fi
10 changes: 9 additions & 1 deletion .ci/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,15 @@ if [ $TRAVIS_OS_NAME == osx ]; then
export CMAKE_PREFIX_PATH=/usr/local/opt/qt5
fi

make ci
# Build & install dependencies
cmake -Hdeps -B.deps \
-DUSE_BUNDLED_BOOST=${USE_BUNDLED_BOOST} \
-DUSE_BUNDLED_SPDLOG=${USE_BUNDLED_SPDLOG}
cmake --build .deps

# Build nheko
cmake -GNinja -H. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build

if [ $TRAVIS_OS_NAME == osx ]; then
make lint;
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,4 @@ package.dir

# Dependencies
.third-party
.deps
Expand Down
36 changes: 17 additions & 19 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ matrix:
compiler: clang
env:
- DEPLOYMENT=1
- USE_BUNDLED_BOOST=0
- USE_BUNDLED_SPDLOG=0
- os: linux
compiler: gcc
env:
Expand All @@ -22,6 +24,8 @@ matrix:
- QT_VERSION="-5.10.1"
- QT_PKG=510
- DEPLOYMENT=1
- USE_BUNDLED_BOOST=1
- USE_BUNDLED_SPDLOG=1
addons:
apt:
sources: ["ubuntu-toolchain-r-test"]
Expand All @@ -33,6 +37,8 @@ matrix:
- C_COMPILER=gcc-7
- QT_VERSION=571
- QT_PKG=57
- USE_BUNDLED_BOOST=1
- USE_BUNDLED_SPDLOG=1
addons:
apt:
sources: ["ubuntu-toolchain-r-test"]
Expand All @@ -44,6 +50,8 @@ matrix:
- C_COMPILER=clang-5.0
- QT_VERSION=592
- QT_PKG=59
- USE_BUNDLED_BOOST=1
- USE_BUNDLED_SPDLOG=1
addons:
apt:
sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-5.0"]
Expand All @@ -58,28 +66,18 @@ install:

script:
- ./.ci/script.sh
- sed -i -e "s/VERSION_NAME_VALUE/${TRAVIS_TAG}/g" ./.ci/bintray-release.json || true
- cp ./.ci/bintray-release.json .

deploy:
- skip_cleanup: true
- provider: bintray
user: "mujx"
key:
secure: "CAVzWZPxYSOTollo9bpD4tvEbfxXjqelc32aApV48GKyJrMQljQ+mvSe25BuUtnDehxnw8affgGX23AYXmvG8P7w4hM2d7//8Lgan1zCmusV8JE432jknev6X641B4cvrywqSe0Dj3l0kS9Xgirq4BGavlI0y2vUjeJfQEv0y8GYoI72LwgyH0i82v/1Qi92Fh8429IJIb0eKmC1wGWXCmo2kd8StZRL5mSlc4TmyWI0SHpA5GrLMiQwLAuD7DjDl5mpaK2yQx+H4vBcI2SUMvmlHGgVjXikJG5gURlHbnIaaBFvO67INc1/65KtMokWuMP12zxqJiaMPtsAskOpQv4FLAYDfnigH3NxufyOIGp2cxS5RhJDQhbNsxHEDnUo1kHcO23ZYNWCuC1yUdn0RXzKhWcUsz8mKF8KJs22Ty4VjfUMZ+vqK/AbHyq4rkl8DizVRZqKF1KjSWrSv/2sT4itnHk9pmcgxAYfGuALcjrJJveI4MTwDhzXB62CKnMOqLq3sAMqvE0+BdA0BykQr7qrKtptuyP2/OFx6RDbfHQl5Klkb6cSOjxm0oUzh/8iaxgsVdCrhfE67eqkhFZ+a8lJkB/rZ4zSK1Q2Cp4nLtnxenUCW+Ptk2l7zZN6kXM1/+tcgqVROChYJ6asMUpsjFOOAVQ8SZ4TcxX1rq+pxlA="
skip_cleanup: true
overwrite: true
provider: releases
api_key:
secure: oprXzESukFiXBeF2BXkXUlegsAQc95Ub4kc/OkoNFaYBvqpA+IGpWHmHCx5JPny/OT3Kc2Urpe2JUeGSWDHZ7UCKDjH+NzGP3uN82fHh/HiszG/Srw7+hWEHm1ve+gMK9GS8pr+yUsUrPP0UfVXlPoI4pBWa4zGi2Ndb/SqvjCgIHFLtGyoBo6CydKQ/AyWiXSMKDfJL+Dx4JLIPP4RTCBJy8ZrZ8m/a5Tgy4Ij6+djjrgYCZCEhGxSYw7xDIT/9SV8g9NkrbisqBDrILzAH8Yhe4XMRMXo88OAxV5+Vb9Rw1hrqczez6lpFDbJetv8MjofND+pSoAFwtjaL1wTFK9Ud6w4O9AuHlEQH9cGVdvsxFcosRwJVh58x51JM9ptoktqhx/HHJBTuCHCYYlHwtRwbwqnMYdLzKZG5FnujT8DG+9mcva1fL6tzW/XD505VPMWwXFC/2/pvolgAkTFFXYSALAwZlK3IgoXU8Gok/3B4iHofzQsFf6Yq3BI/88x7tVASUqiYhoKrO50+gb6pNIRCyWgGUiBEVXBp6Ziq3ORQPyQJg7i9HHUGTUu74yvGLHWLwjNQzZP/hxJZK3VlJxzyXntdOxiJc8iOzNrU+rPKBAlAaE6bQDOoniIysEgdD5BXHTLFzPvts4P1n2Ckor5/rNJ+qXR8GU+/y7e1GKU=
file_glob: true
file:
- nheko-x86_64.AppImage
file: "bintray-release.json"
on:
condition: $TRAVIS_OS_NAME == linux && $DEPLOYMENT == 1
repo: mujx/nheko
tags: true

- skip_cleanup: true
overwrite: true
provider: releases
api_key:
secure: oprXzESukFiXBeF2BXkXUlegsAQc95Ub4kc/OkoNFaYBvqpA+IGpWHmHCx5JPny/OT3Kc2Urpe2JUeGSWDHZ7UCKDjH+NzGP3uN82fHh/HiszG/Srw7+hWEHm1ve+gMK9GS8pr+yUsUrPP0UfVXlPoI4pBWa4zGi2Ndb/SqvjCgIHFLtGyoBo6CydKQ/AyWiXSMKDfJL+Dx4JLIPP4RTCBJy8ZrZ8m/a5Tgy4Ij6+djjrgYCZCEhGxSYw7xDIT/9SV8g9NkrbisqBDrILzAH8Yhe4XMRMXo88OAxV5+Vb9Rw1hrqczez6lpFDbJetv8MjofND+pSoAFwtjaL1wTFK9Ud6w4O9AuHlEQH9cGVdvsxFcosRwJVh58x51JM9ptoktqhx/HHJBTuCHCYYlHwtRwbwqnMYdLzKZG5FnujT8DG+9mcva1fL6tzW/XD505VPMWwXFC/2/pvolgAkTFFXYSALAwZlK3IgoXU8Gok/3B4iHofzQsFf6Yq3BI/88x7tVASUqiYhoKrO50+gb6pNIRCyWgGUiBEVXBp6Ziq3ORQPyQJg7i9HHUGTUu74yvGLHWLwjNQzZP/hxJZK3VlJxzyXntdOxiJc8iOzNrU+rPKBAlAaE6bQDOoniIysEgdD5BXHTLFzPvts4P1n2Ckor5/rNJ+qXR8GU+/y7e1GKU=
file: nheko.dmg
on:
condition: $TRAVIS_OS_NAME == osx && $DEPLOYMENT == 1
condition: $DEPLOYMENT == 1
repo: mujx/nheko
tags: true
62 changes: 39 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,15 @@ set(IDENTIFIER "com.github.mujx.nheko")

add_project_meta(META_FILES_TO_INCLUDE)

if(APPLE)
set(OPENSSL_ROOT_DIR /usr/local/opt/openssl)
endif()

if(NOT MSVC AND NOT APPLE)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
endif()

#
# LMDB
#
Expand All @@ -37,7 +46,7 @@ include(LMDB)
#
# Discover Qt dependencies.
#
find_package(Qt5 COMPONENTS Core Widgets Network LinguistTools Concurrent Svg Multimedia REQUIRED)
find_package(Qt5 COMPONENTS Core Widgets LinguistTools Concurrent Svg Multimedia REQUIRED)

if (APPLE)
find_package(Qt5MacExtras REQUIRED)
Expand All @@ -60,7 +69,20 @@ endif(NOT MSVC)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
include(CompilerFlags)
if(NOT MSVC)
set(
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} \
-Wall \
-Wextra \
-Werror \
-pipe \
-pedantic \
-fsized-deallocation \
-fdiagnostics-color=always \
-Wunreachable-code"
)
endif()

if(NOT (CMAKE_BUILD_TYPE OR CMAKE_CONFIGURATION_TYPES))
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
Expand Down Expand Up @@ -151,9 +173,11 @@ set(SRC_FILES
src/Community.cc
src/InviteeItem.cc
src/LoginPage.cc
src/Logging.cpp
src/MainWindow.cc
src/MatrixClient.cc
src/QuickSwitcher.cc
src/Olm.cpp
src/RegisterPage.cc
src/RoomInfoListItem.cc
src/RoomList.cc
Expand All @@ -175,20 +199,12 @@ set(SRC_FILES
# ExternalProject dependencies
set(EXTERNAL_PROJECT_DEPS "")

#
# matrix-structs
#
find_library(MATRIX_STRUCTS_LIBRARY
NAMES matrix_structs
PATHS ${MATRIX_STRUCTS_ROOT}
${MATRIX_STRUCTS_ROOT}/lib
${MATRIX_STRUCTS_ROOT}/lib/static)

if(NOT MATRIX_STRUCTS_LIBRARY)
include(MatrixStructs)
set(EXTERNAL_PROJECT_DEPS ${EXTERNAL_PROJECT_DEPS} MatrixStructs)
endif()
include_directories(SYSTEM ${MATRIX_STRUCTS_INCLUDE_DIR})
find_package(ZLIB REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(MatrixStructs 0.1.0 REQUIRED)
find_package(MatrixClient 0.1.0 REQUIRED)
find_package(Olm 2 REQUIRED)
find_package(spdlog 0.16.0 CONFIG REQUIRED)

#
# tweeny
Expand Down Expand Up @@ -267,7 +283,6 @@ qt5_wrap_cpp(MOC_HEADERS
include/LoginPage.h
include/MainWindow.h
include/InviteeItem.h
include/MatrixClient.h
include/QuickSwitcher.h
include/RegisterPage.h
include/RoomInfoListItem.h
Expand All @@ -291,11 +306,12 @@ include(Translations)
set(TRANSLATION_DEPS ${LANG_QRC} ${QRC} ${QM_SRC})

set(COMMON_LIBS
${MATRIX_STRUCTS_LIBRARY}
MatrixStructs::MatrixStructs
MatrixClient::MatrixClient
Qt5::Widgets
Qt5::Network
Qt5::Svg
Qt5::Concurrent)
Qt5::Concurrent
Qt5::Multimedia)

if(APPVEYOR_BUILD)
set(NHEKO_LIBS ${COMMON_LIBS} lmdb)
Expand Down Expand Up @@ -325,13 +341,13 @@ endif()

if(APPLE)
add_executable (nheko ${OS_BUNDLE} ${NHEKO_DEPS})
target_link_libraries (nheko ${NHEKO_LIBS} Qt5::MacExtras Qt5::Multimedia)
target_link_libraries (nheko ${NHEKO_LIBS} Qt5::MacExtras)
elseif(WIN32)
add_executable (nheko ${OS_BUNDLE} ${ICON_FILE} ${NHEKO_DEPS})
target_link_libraries (nheko ${NTDLIB} ${NHEKO_LIBS} Qt5::WinMain Qt5::Multimedia)
target_link_libraries (nheko ${NTDLIB} ${NHEKO_LIBS} Qt5::WinMain)
else()
add_executable (nheko ${OS_BUNDLE} ${NHEKO_DEPS})
target_link_libraries (nheko ${NHEKO_LIBS} Qt5::Multimedia)
target_link_libraries (nheko ${NHEKO_LIBS})
endif()

if(EXTERNAL_PROJECT_DEPS)
Expand Down
25 changes: 21 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,14 +1,31 @@
DEPS_BUILD_DIR=.deps
DEPS_SOURCE_DIR=deps

debug:
@cmake -H. -GNinja -Bbuild -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=1
@cmake -H. -GNinja \
-Bbuild \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_EXPORT_COMPILE_COMMANDS=1 \
-DCMAKE_INSTALL_PREFIX=${DEPS_BUILD_DIR}/usr
@cmake --build build

third-party:
@cmake -GNinja -H${DEPS_SOURCE_DIR} -B${DEPS_BUILD_DIR} \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_BUNDLED_BOOST=OFF
@cmake --build ${DEPS_BUILD_DIR}

ci:
@cmake -H. -GNinja -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo
@cmake --build build
cmake -H${DEPS_SOURCE_DIR} -B${DEPS_BUILD_DIR} -DCMAKE_BUILD_TYPE=Release
cmake --build ${DEPS_BUILD_DIR}
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build

release:
@cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo
@cmake -H. -GNinja \
-Bbuild \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${DEPS_BUILD_DIR}/usr
@cmake --build build

linux-install:
Expand Down
Loading

0 comments on commit 8704265

Please sign in to comment.