Skip to content

eyig/cherrytree

 
 

Repository files navigation

CherryTree

A hierarchical note taking application, featuring rich text and syntax highlighting, storing data in a single XML or SQLite file. The project home page is giuspen.com/cherrytree.

Installation Guide

Links on used libraries

https://www.gtkmm.org/en/documentation.shtml https://developer.gnome.org/gtkmm-tutorial/stable/ https://developer.gnome.org/gtkmm/stable/ https://developer.gnome.org/gtkmm/stable/hierarchy.html

https://developer.gnome.org/gtksourceviewmm/stable/

https://developer.gnome.org/libxml++-tutorial/stable/ https://developer.gnome.org/libxml++/stable/

https://wiki.gnome.org/Projects/gspell https://developer.gnome.org/gspell/stable/

Build/Debug with Visual Studio Code on Linux

https://code.visualstudio.com/docs/setup/linux required installation of Extension "C/C++"

cd cherrytree
code .

Build with: Ctrl+Shift+B Debug with: F5

Build/Debug with Visual Studio Code using a container

It is possible to use a container as a full-featured development environment from VS Code. This works on any operating system that supports Docker.

  1. Install the system requirements.
  2. If you are running VSCode on Windows:
  3. Get cherrytree source and update the submodules
git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
  1. Add the cherrytree directory to the shared directories in Docker (Settings -> Resources -> File Sharing)
  2. Open the project in VS Code.
code .
  1. Edit .devcontainer/devcontainer.json to set your DISPLAY environment variable and/or edit other settings. It is also possible to run the container on a remote Docker host, see the comment at the end.
  2. Run the Remote-Containers: Open Folder in Container... command.

Build with: Ctrl+Shift+B Debug with: F5

To test install locally and create a package

cmake -DCMAKE_INSTALL_PREFIX=./local_usr ../
make -j$(nproc --all) && make install
cpack -G DEB

Building Cherrytree on Ubuntu 20.04

Install dependencies::

sudo apt install build-essential libxml2-utils cmake libgtkmm-3.0-dev libgtksourceviewmm-3.0-dev libxml++2.6-dev libsqlite3-dev gettext libgspell-1-dev libcurl4-openssl-dev libuchardet-dev

Get cherrytree source, compile and run:

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
mkdir build
cd build
cmake ../
make -j$(nproc --all)
./build/cherrytree

Install documentation:

sudo apt install devhelp libgtkmm-3.0-doc libgtksourceviewmm-3.0-doc libglibmm-2.4-doc libpangomm-1.4-doc libxml++2.6-doc libgspell-1-doc

devhelp

xdg-open /usr/share/doc/libgtkmm-3.0-doc/reference/html/index.html
xdg-open /usr/share/doc/libgtksourceviewmm-3.0-doc/reference/html/index.html
xdg-open /usr/share/doc/libglibmm-2.4-doc/reference/html/index.html
xdg-open /usr/share/doc/libpangomm-1.4-doc/reference/html/index.html
xdg-open /usr/share/doc/libxml++2.6-doc/reference/html/index.html
xdg-open /usr/share/doc/libgspell-1-dev/html/index.html

Building Cherrytree on Arch

Install dependencies:

sudo pacman -S gtksourceviewmm libxml++2.6 gspell uchardet

Get cherrytree source, compile and run:

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
mkdir build
cd build
cmake ../
make -j$(nproc --all)
./build/cherrytree

Building Cherrytree on Fedora 33

Install dependencies:

sudo dnf install @development-tools gcc-c++ libtool autoconf gtkmm30-devel gtksourceviewmm3-devel libxml++-devel libsq3-devel gettext-devel gettext intltool libxml2 gspell-devel cmake libcurl-devel uchardet uchardet-devel

Get cherrytree source, compile and run:

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
mkdir build
cd build
cmake ../
make -j$(nproc --all)
./cherrytree

(OPTIONAL) Download Documentation

sudo dnf install gtkmm30-doc gtksourceviewmm3-doc glibmm24-doc glibmm24-doc libxml++-doc

(OPTIONAL) Open Documentation

xdg-open /usr/share/doc/gtkmm-3.0/reference/html/index.html
xdg-open /usr/share/doc/gtksourceviewmm-3.0/reference/html/index.html
xdg-open /usr/share/doc/glibmm-2.4/reference/html/index.html
xdg-open /usr/share/doc/pangomm-1.4/reference/html/index.html
xdg-open /usr/share/doc/libxml++2.6/reference/html/index.html

Building Cherrytree on Opensuse

Install dependencies:

sudo zypper install cmake gcc-c++ gtkmm3-devel gtksourceviewmm3_0-devel gspell-devel libxml++26-devel sqlite3-devel libcurl-devel libuchardet-devel

Get cherrytree source, compile and run:

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
mkdir build
cd build
cmake ../
make -j$(nproc --all)
./build/cherrytree

Building Cherrytree on MacOS

Install dependencies:

brew install python3 cmake pkg-config gtksourceviewmm3 gnome-icon-theme gspell libxml++ curl uchardet

Get cherrytree source, compile and run:

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init
mkdir build
cd build
cmake ../
make -j$(sysctl -n hw.ncpu)
./build/cherrytree

To install:

make install

Building Cherrytree on Windows

Install MSYS2: https://www.msys2.org/ (we cover here the packages for 64 bit installation)

Launch 'MSYS2 MinGW 64-bit' terminal (there are 3 different terminals, make sure it is 64-bit otherwise it will cause issues)

Run the following command multiple times there until there are no more updates:

pacman -Syuu

Install required packages to build cherrytree:

# toolchain and cmake
pacman -S --needed --noconfirm mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake
# gtkmm3, gtksourceviewmm3, libxml++2.6, sqlite3, gspell, curl
pacman -S --needed --noconfirm mingw-w64-x86_64-gtkmm3 mingw-w64-x86_64-gtksourceviewmm3 mingw-w64-x86_64-libxml++2.6 mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-gspell mingw-w64-x86_64-curl mingw-w64-x86_64-uchardet
# gettext, git, nano, meld3
pacman -S --needed --noconfirm mingw-w64-x86_64-gettext git nano mingw-w64-x86_64-meld3

use native windows theme

mkdir /etc/gtk-3.0
nano /etc/gtk-3.0/settings.ini
[Settings]
gtk-theme-name=win32

console settings

nano ~/.bashrc
export LC_ALL=C
CHERRYTREE_CONFIG_FOLDER="C:/Users/${USER}/AppData/Local/cherrytree"
[ -d ${CHERRYTREE_CONFIG_FOLDER} ] || mkdir -p ${CHERRYTREE_CONFIG_FOLDER}
alias l="ls -lah --color"
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'

Get cherrytree source, compile and run:

git clone https://github.com/giuspen/cherrytree.git
cd cherrytree
git submodule update --init

# build Release (optimised)
./build.sh Release
# build Debug (not optimised, with debug symbols)
./build.sh Debug
# run cherrytree
./build/cherrytree.exe

Troubleshooting:

  • Cannot build: make sure to start 64-bit terminal
  • Cannot build: remove cherrytree/build folder and start build.sh script again
  • Cannot start cherrytree: you either have to run cherrytree from the msys2 mingw64 terminal or copy and replace cherrytree in cherrytree_0.99.X_win64_portable folder (downloaded from the site) by the new one, so dependencies are fulfilled

Packages

No packages published

Languages

  • C++ 69.6%
  • Python 20.0%
  • C 8.3%
  • CMake 0.7%
  • Makefile 0.4%
  • HTML 0.3%
  • Other 0.7%