status-desktop/app
Patryk Osmaczko c53264b124 chore(cpp): apply clang-format 2022-10-19 17:34:23 +02:00
..
qml chore(CPP): Align Saved Addresses with new changes 2022-10-12 09:38:19 +02:00
res chore(CPP): Enhance type safety using phantom types 2022-07-19 16:56:06 +02:00
src chore(cpp): apply clang-format 2022-10-19 17:34:23 +02:00
CMakeLists.txt chore(cpp): add chat section and list chats 2022-08-11 21:40:39 +02:00
README.md fix(CPP): fix linux compiling issues 2022-08-23 19:38:23 +02:00

README.md

CPP App

Setup dependencies

Note: if not stated otherwise the commands should be run from the root of the source tree

1. conancenter

Execute conan remote list. It should return this line among the results:

conancenter: https://center.conan.io [Verify SSL: True]

If it doesn't, consider upgrading conan with pip install conan --upgrade and then executing. conan remote add -i 0 conancenter https://center.conan.io. See conan's documentation for more info.

2. conan libstdc++11

This applies to linux: the default conan profile does not work, since GCC uses the new C++ ABI since version 5.1 and conan, for compatibility purposes uses the old C++ ABI. Execute this to update the profile:

conan profile update settings.compiler.libcxx=libstdc++11 default

2. Install dependencies

Install latest Qt release 6.3.X

Platform specific conan profile

  • Macos:
    • Apple silicon: conan install . --profile=vendor/conan-configs/apple-arm64.ini -s build_type=Release --build=missing -if=build/conan -of=build
    • Intel: conan install . --profile=vendor/conan-configs/apple-x86_64.ini -s build_type=Release --build=missing -if=build/conan -of=build
  • Windows: TODO
  • Linux: conan install . --profile=./vendor/conan-configs/linux.ini -s build_type=Release --build=missing -if=build/conan -of=build

Buid, test & run

Update CMake to the Latest Release or use the Qt's "$QTBASE/Tools/CMake/..."

Build with cmake

# linux
cmake -B build -S . -DCMAKE_PREFIX_PATH="$HOME/Qt/6.3.2/gcc_64" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=build/conan/conan_toolchain.cmake

# MacOS: cmake -B build -S . -DCMAKE_PREFIX_PATH="$HOME/Qt/6.3.2/macos" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=build/conan/conan_toolchain.cmake

# Windows: cmake -B build -S . -DCMAKE_PREFIX_PATH="$HOME/Qt/6.3.2/mingw_64" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=build/conan/conan_toolchain.cmake

cmake --build build

Run tests

ctest --test-dir ./build

Build with QtCreator

If go is installed with brew use the following configuration otherwise adapt the configuration. Go to QtCreator's preferences navigate to Environment -> System -> Environment -> Change and paste

GOBIN=${GOPATH}/bin
GOPATH=${HOME}/go
PATH=${PATH}:${GOBIN}:/opt/homebrew/bin:/opt/homebrew/sbin