mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-09 05:52:41 +00:00
cfef7dc443
Fix BigInt compilation on linux Remove c++20 optimization for NamedType Add assert for failing getChats that was providing an easy to miss warning Enable linux CI build Don't run tests. They fail to run in docker with "malloc_consolidate(): invalid chunk size", probably due to status-go
71 lines
2.4 KiB
Markdown
71 lines
2.4 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
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](https://docs.conan.io/en/latest/uploading_packages/remotes.html#conancenter) 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:
|
|
|
|
```bash
|
|
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](https://cmake.org/download/) or use the Qt's "$QTBASE/Tools/CMake/..."
|
|
|
|
### Build with cmake
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
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
|
|
|
|
```ini
|
|
GOBIN=${GOPATH}/bin
|
|
GOPATH=${HOME}/go
|
|
PATH=${PATH}:${GOBIN}:/opt/homebrew/bin:/opt/homebrew/sbin
|
|
```
|