diff --git a/.ci/script.sh b/.ci/script.sh index f5966349..377f23e1 100755 --- a/.ci/script.sh +++ b/.ci/script.sh @@ -11,7 +11,6 @@ if [ $TRAVIS_OS_NAME == osx ]; then fi # Build & install dependencies -mkdir -p .deps/usr/{lib,include}/ cmake -Hdeps -B.deps \ -DUSE_BUNDLED_BOOST=${USE_BUNDLED_BOOST} \ -DUSE_BUNDLED_SPDLOG=${USE_BUNDLED_SPDLOG} diff --git a/CMakeLists.txt b/CMakeLists.txt index ef20be39..e9bf05bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,12 +29,6 @@ set(IDENTIFIER "com.github.mujx.nheko") add_project_meta(META_FILES_TO_INCLUDE) -set(DEPS_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/.deps/usr" - CACHE PATH "Path prefix for finding dependencies") -list(INSERT CMAKE_PREFIX_PATH 0 ${DEPS_PREFIX}) - -include_directories(SYSTEM ${DEPS_PREFIX}/include) - if(APPLE) set(OPENSSL_ROOT_DIR /usr/local/opt/openssl) endif() @@ -208,8 +202,10 @@ set(EXTERNAL_PROJECT_DEPS "") find_package(ZLIB REQUIRED) find_package(OpenSSL REQUIRED) -find_package(MatrixStructs REQUIRED) -find_package(MatrixClient 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 @@ -315,7 +311,8 @@ set(COMMON_LIBS MatrixClient::MatrixClient Qt5::Widgets Qt5::Svg - Qt5::Concurrent) + Qt5::Concurrent + Qt5::Multimedia) if(APPVEYOR_BUILD) set(NHEKO_LIBS ${COMMON_LIBS} lmdb) @@ -345,13 +342,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) diff --git a/Makefile b/Makefile index 833d81a0..584aafa2 100644 --- a/Makefile +++ b/Makefile @@ -2,25 +2,30 @@ 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: - @mkdir -p ${DEPS_BUILD_DIR}/usr/{lib,include}/ +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: - mkdir -p ${DEPS_BUILD_DIR}/usr/{lib,include}/ 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: diff --git a/appveyor.yml b/appveyor.yml index c9f3023e..dfd637ed 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -15,7 +15,6 @@ install: - set QT_DIR=C:\Qt\5.10.1\msvc2017_64 - set PATH=%PATH%;%QT_DIR%\bin;C:\MinGW\bin - set PATH=%PATH%;C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin - - mingw32-make.exe --version - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" - vcpkg install boost-asio:%PLATFORM%-windows @@ -28,7 +27,6 @@ install: libsodium:%PLATFORM%-windows lmdb:%PLATFORM%-windows openssl:%PLATFORM%-windows - spdlog:%PLATFORM%-windows zlib:%PLATFORM%-windows build_script: @@ -53,16 +51,12 @@ build_script: # Build & install the dependencies - cmake -G "Visual Studio 15 2017 Win64" -Hdeps -B.deps -DCMAKE_TOOLCHAIN_FILE=C:/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake - -DCMAKE_BUILD_TYPE=Release -DUSE_BUNDLED_BOOST=OFF - -DUSE_BUNDLED_SPDLOG=OFF - -DUSE_BUNDLED_GTEST=OFF - cmake --build .deps --config Release # Build nheko - cmake -G "Visual Studio 15 2017 Win64" -H. -Bbuild -DCMAKE_TOOLCHAIN_FILE=C:/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake - -DCMAKE_BUILD_TYPE=Release - cmake --build build --config Release after_build: diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 7ea44bbd..34bcea31 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -40,7 +40,7 @@ set(MATRIX_STRUCTS_URL https://github.com/mujx/matrix-structs) set(MATRIX_STRUCTS_TAG eeb7373729a1618e2b3838407863342b88b8a0de) set(MTXCLIENT_URL https://github.com/mujx/mtxclient) -set(MTXCLIENT_TAG c566fa0a254dce3282435723eb58590880be2b53) +set(MTXCLIENT_TAG e45b1c85fce52f8ed516fd98a9cbb6a110a20d09) set(OLM_URL https://git.matrix.org/git/olm.git) set(OLM_TAG 4065c8e11a33ba41133a086ed3de4da94dcb6bae) diff --git a/deps/cmake/Olm.cmake b/deps/cmake/Olm.cmake index eb4f53e3..a5b8be76 100644 --- a/deps/cmake/Olm.cmake +++ b/deps/cmake/Olm.cmake @@ -1,3 +1,9 @@ +set(WINDOWS_FLAGS "") + +if(MSVC) + set(WINDOWS_FLAGS "-DCMAKE_GENERATOR_PLATFORM=x64") +endif() + ExternalProject_Add( Olm @@ -16,11 +22,13 @@ ExternalProject_Add( -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release ${DEPS_BUILD_DIR}/olm + ${WINDOWS_FLAGS} BUILD_COMMAND ${CMAKE_COMMAND} --build ${DEPS_BUILD_DIR}/olm --config Release INSTALL_COMMAND ${CMAKE_COMMAND} --build ${DEPS_BUILD_DIR}/olm + --config Release --target install) list(APPEND THIRD_PARTY_DEPS Olm) diff --git a/deps/cmake/OlmConfig.cmake.in b/deps/cmake/OlmConfig.cmake.in index a7541f7a..b670fe85 100644 --- a/deps/cmake/OlmConfig.cmake.in +++ b/deps/cmake/OlmConfig.cmake.in @@ -4,8 +4,8 @@ include(CMakeFindDependencyMacro) list(APPEND CMAKE_MODULE_PATH ${Olm_CMAKE_DIR}) list(REMOVE_AT CMAKE_MODULE_PATH -1) -if(NOT TARGET Olm::olm) +if(NOT TARGET Olm::Olm) include("${Olm_CMAKE_DIR}/OlmTargets.cmake") endif() -set(Olm_LIBRARIES Olm::olm) +set(Olm_LIBRARIES Olm::Olm) diff --git a/deps/cmake/SpdLog.cmake b/deps/cmake/SpdLog.cmake index 1335725e..5a5f318c 100644 --- a/deps/cmake/SpdLog.cmake +++ b/deps/cmake/SpdLog.cmake @@ -1,3 +1,9 @@ +set(WINDOWS_FLAGS "") + +if(MSVC) + set(WINDOWS_FLAGS "-DCMAKE_GENERATOR_PLATFORM=x64") +endif() + ExternalProject_Add( SpdLog @@ -10,8 +16,7 @@ ExternalProject_Add( -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DSPDLOG_BUILD_EXAMPLES=0 -DSPDLOG_BUILD_TESTING=0 - -DCMAKE_BUILD_TYPE=Release ${DEPS_BUILD_DIR}/spdlog -) + ${WINDOWS_FLAGS}) list(APPEND THIRD_PARTY_DEPS SpdLog) diff --git a/src/dialogs/PreviewUploadOverlay.cc b/src/dialogs/PreviewUploadOverlay.cc index db1e31f2..e01d2b17 100644 --- a/src/dialogs/PreviewUploadOverlay.cc +++ b/src/dialogs/PreviewUploadOverlay.cc @@ -31,8 +31,8 @@ using namespace dialogs; -static constexpr const char *DEFAULT = "Upload %1?"; -static constexpr const char *ERROR = "Failed to load image type '%1'. Continue upload?"; +constexpr const char *DEFAULT = "Upload %1?"; +constexpr const char *ERR_MSG = "Failed to load image type '%1'. Continue upload?"; PreviewUploadOverlay::PreviewUploadOverlay(QWidget *parent) : QWidget{parent} @@ -105,7 +105,7 @@ PreviewUploadOverlay::setLabels(const QString &type, const QString &mime, uint64 { if (mediaType_ == "image") { if (!image_.loadFromData(data_)) { - titleLabel_.setText(QString{tr(ERROR)}.arg(type)); + titleLabel_.setText(QString{tr(ERR_MSG)}.arg(type)); } else { titleLabel_.setText(QString{tr(DEFAULT)}.arg(mediaType_)); }