summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-x.ci/install.sh2
-rwxr-xr-x.ci/script.sh4
-rw-r--r--.travis.yml5
-rw-r--r--README.md5
-rw-r--r--appveyor.yml2
-rw-r--r--cmake/Findcmark.cmake35
-rw-r--r--deps/CMakeLists.txt12
-rw-r--r--deps/cmake/cmark.cmake21
8 files changed, 66 insertions, 20 deletions
diff --git a/.ci/install.sh b/.ci/install.sh
index ed25fcf2..6019e0a2 100755
--- a/.ci/install.sh
+++ b/.ci/install.sh
@@ -4,7 +4,7 @@ set -ex
 
 if [ $TRAVIS_OS_NAME == osx ]; then
     brew update
-    brew install qt5 lmdb clang-format ninja libsodium
+    brew install qt5 lmdb clang-format ninja libsodium cmark
     brew upgrade boost cmake
 
     curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
diff --git a/.ci/script.sh b/.ci/script.sh
index 69433dba..622bda9b 100755
--- a/.ci/script.sh
+++ b/.ci/script.sh
@@ -22,7 +22,9 @@ if [ $TRAVIS_OS_NAME == osx ]; then
 fi
 
 # Build & install dependencies
-cmake -GNinja -Hdeps -B.deps -DUSE_BUNDLED_BOOST=${USE_BUNDLED_BOOST}
+cmake -GNinja -Hdeps -B.deps \
+    -DUSE_BUNDLED_BOOST=${USE_BUNDLED_BOOST} \
+    -DUSE_BUNDLED_CMARK=${USE_BUNDLED_CMARK}
 cmake --build .deps
 
 # Build nheko
diff --git a/.travis.yml b/.travis.yml
index e6c6d443..bd165f88 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,6 +15,7 @@ matrix:
           env:
               - DEPLOYMENT=1
               - USE_BUNDLED_BOOST=0
+              - USE_BUNDLED_CMARK=0
         - os: linux
           compiler: gcc
           env:
@@ -24,6 +25,7 @@ matrix:
               - QT_PKG=510
               - DEPLOYMENT=1
               - USE_BUNDLED_BOOST=1
+              - USE_BUNDLED_CMARK=1
           addons:
               apt:
                   sources: ["ubuntu-toolchain-r-test"]
@@ -36,6 +38,7 @@ matrix:
               - QT_VERSION="-5.10.1"
               - QT_PKG=510
               - USE_BUNDLED_BOOST=1
+              - USE_BUNDLED_CMARK=1
           addons:
               apt:
                   sources: ["ubuntu-toolchain-r-test"]
@@ -48,6 +51,7 @@ matrix:
               - QT_VERSION=571
               - QT_PKG=57
               - USE_BUNDLED_BOOST=1
+              - USE_BUNDLED_CMARK=1
           addons:
               apt:
                   sources: ["ubuntu-toolchain-r-test"]
@@ -60,6 +64,7 @@ matrix:
               - QT_VERSION=592
               - QT_PKG=59
               - USE_BUNDLED_BOOST=1
+              - USE_BUNDLED_CMARK=1
           addons:
               apt:
                   sources: ["ubuntu-toolchain-r-test", "llvm-toolchain-trusty-5.0"]
diff --git a/README.md b/README.md
index 681d8d29..d9d0ca49 100644
--- a/README.md
+++ b/README.md
@@ -87,6 +87,7 @@ sudo port install nheko
 - CMake 3.1 or greater.
 - [mtxclient](https://github.com/mujx/mtxclient)
 - [LMDB](https://symas.com/lightning-memory-mapped-database/)
+- [cmark](https://github.com/commonmark/cmark)
 - Boost 1.66 or greater.
 - [libolm](https://git.matrix.org/git/olm)
 - [libsodium](https://github.com/jedisct1/libsodium)
@@ -115,6 +116,7 @@ sudo pacman -S qt5-base \
     gcc \
     fontconfig \
     lmdb \
+    cmark \
     boost \
     libsodium
 ```
@@ -139,7 +141,7 @@ sudo apt-get install -y g++-7 qt59base qt59svg qt59tools qt59multimedia cmake li
 
 ```bash
 brew update
-brew install qt5 lmdb cmake llvm libsodium spdlog boost
+brew install qt5 lmdb cmake llvm libsodium spdlog boost cmark
 ```
 
 ##### Windows
@@ -166,6 +168,7 @@ cd vcpkg
 	boost-signals2 \
 	boost-system \
 	boost-thread \
+	cmark \
 	libsodium \
 	lmdb \
 	openssl \
diff --git a/appveyor.yml b/appveyor.yml
index aaaf280d..95c862d0 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -64,6 +64,8 @@ build_script:
       -DCMAKE_TOOLCHAIN_FILE=C:/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake
       -DLMDBXX_INCLUDE_DIR=.deps/usr/include
       -DTWEENY_INCLUDE_DIR=.deps/usr/include
+      -DCMARK_INCLUDE_DIR=.deps/usr/include
+      -DCMARK_LIBRARY=.deps/usr/lib/cmark_static.lib
     - cmake --build build --config Release
 
 after_build:
diff --git a/cmake/Findcmark.cmake b/cmake/Findcmark.cmake
index fd7d062a..29092bb0 100644
--- a/cmake/Findcmark.cmake
+++ b/cmake/Findcmark.cmake
@@ -2,23 +2,25 @@
 # CMake module to search for the cmark library
 #
 
-find_path(CMARK_INCLUDE_DIR
-          NAMES cmark.h
-          PATHS /usr/include
-                /usr/local/include
-                $ENV{LIB_DIR}/include
-                $ENV{LIB_DIR}/include/cmark)
+include(FindPkgConfig)
+pkg_check_modules(PC_CMARK QUIET cmark)
 
-find_library(CMARK_LIBRARY
-             NAMES cmark
-             PATHS /usr/lib /usr/local/lib $ENV{LIB_DIR}/lib)
-
-if(OLM_FOUND)
-  set(OLM_INCLUDE_DIRS ${CMARK_INCLUDE_DIR})
+if(NOT CMARK_INCLUDE_DIR)
+  find_path(CMARK_INCLUDE_DIR
+            NAMES cmark.h
+            PATHS ${PC_CMARK_INCLUDEDIR}
+                  ${PC_CMARK_INCLUDE_DIRS}
+                  /usr/include
+                  /usr/local/include)
+endif()
 
-  if(NOT OLM_LIBRARIES)
-    set(OLM_LIBRARIES ${CMARK_LIBRARY})
-  endif()
+if(NOT CMARK_LIBRARY)
+  find_library(CMARK_LIBRARY
+               NAMES cmark
+               HINTS ${PC_CMARK_LIBDIR}
+                     ${PC_CMARK_LIBRARY_DIRS}
+                     /usr/lib
+                     /usr/local/lib)
 endif()
 
 if(NOT TARGET cmark::cmark)
@@ -37,3 +39,6 @@ find_package_handle_standard_args(cmark
                                   CMARK_LIBRARY)
 
 mark_as_advanced(CMARK_LIBRARY CMARK_INCLUDE_DIR)
+
+set(CMARK_LIBRARIES ${CMARK_LIBRARY})
+set(CMARK_INCLUDE_DIRS ${CMARK_INCLUDE_DIR})
diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt
index 5df60d27..25b1b89d 100644
--- a/deps/CMakeLists.txt
+++ b/deps/CMakeLists.txt
@@ -22,6 +22,7 @@ set(DEPS_DOWNLOAD_DIR "${DEPS_BUILD_DIR}/downloads"
 option(USE_BUNDLED "Use bundled dependencies." ON)
 
 option(USE_BUNDLED_BOOST "Use the bundled version of Boost." ${USE_BUNDLED})
+option(USE_BUNDLED_CMARK "Use the bundled version of cmark." ${USE_BUNDLED})
 option(USE_BUNDLED_SPDLOG "Use the bundled version of spdlog." ${USE_BUNDLED})
 option(USE_BUNDLED_OLM "Use the bundled version of libolm." ${USE_BUNDLED})
 option(USE_BUNDLED_TWEENY "Use the bundled version of Tweeny." ${USE_BUNDLED})
@@ -38,10 +39,10 @@ set(BOOST_SHA256
 
 set(
   MTXCLIENT_URL
-  https://github.com/mujx/mtxclient/archive/659bfe7cd9b87bb009ebc703398fd93dc098b0f0.tar.gz
+  https://github.com/mujx/mtxclient/archive/1a539721ec86cb8b5f9d0b51cbe2251e46257a9b.tar.gz
   )
 set(MTXCLIENT_HASH
-    d6794940354fd6e163ca52cab7878bba3c71ebfe3ca9a51ada5485a09c0d27f8)
+    7c458f57f774c75afaf403869e57a753620b5b619b1a7cd0b63bbc4735fc8993)
 
 set(
   TWEENY_URL
@@ -60,6 +61,9 @@ set(LMDBXX_HASH
 set(OLM_URL https://git.matrix.org/git/olm.git)
 set(OLM_TAG 4065c8e11a33ba41133a086ed3de4da94dcb6bae)
 
+set(CMARK_URL https://github.com/commonmark/cmark/archive/0.28.3.tar.gz)
+set(CMARK_HASH acc98685d3c1b515ff787ac7c994188dadaf28a2d700c10c1221da4199bae1fc)
+
 set(SPDLOG_URL https://github.com/gabime/spdlog/archive/v1.1.0.tar.gz)
 set(SPDLOG_HASH
     3dbcbfd8c07e25f5e0d662b194d3a7772ef214358c49ada23c044c4747ce8b19)
@@ -84,6 +88,10 @@ if(USE_BUNDLED_OLM)
   include(Olm)
 endif()
 
+if(USE_BUNDLED_CMARK)
+  include(cmark)
+endif()
+
 if(USE_BUNDLED_TWEENY)
   include(Tweeny)
 endif()
diff --git a/deps/cmake/cmark.cmake b/deps/cmake/cmark.cmake
new file mode 100644
index 00000000..e0d45e88
--- /dev/null
+++ b/deps/cmake/cmark.cmake
@@ -0,0 +1,21 @@
+set(WINDOWS_FLAGS "")
+
+if(MSVC)
+    set(WINDOWS_FLAGS "-DCMAKE_GENERATOR_PLATFORM=x64")
+endif()
+
+ExternalProject_Add(
+  cmark
+
+  URL ${CMARK_URL}
+  URL_HASH SHA256=${CMARK_HASH}
+
+  BUILD_IN_SOURCE 0
+  SOURCE_DIR ${DEPS_BUILD_DIR}/cmark
+  CONFIGURE_COMMAND ${CMAKE_COMMAND}
+  -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
+  -DCMARK_TESTS=OFF
+  ${DEPS_BUILD_DIR}/cmark
+  ${WINDOWS_FLAGS})
+
+list(APPEND THIRD_PARTY_DEPS cmark)