status-desktop/app
Stefan a710558c6b chore(CPP): foundation for user onboarding
Contains minimal account creation and login

Considerations:

- migrated status-go wrapper and login code from the fix/cpp-structure (241eec)
- Minimal refactoring and changes at the moment. Expect further refactoring
follow up to reach the desired state.
- Fix missing keychain initialization
- Fix accounts DB initialization call done by startup -> Controller.openedAccounts -> status-go.OpenAccounts calls
- Small refactoring and todos for other steps
- fix SignalsManager
- fix async access to dereferenced status-go memory from SignalsManager
- fix SignalsManager not starting when registering
- finish dev end to end test for create account and login
- small improvements and added TODOs for future work
- add onboarding test helpers and start messaging test
- Refactoring towards Login UI integration

Closes: #5909
Closes: #6028
2022-07-07 23:23:09 +02:00
..
qml chore(CPP): foundation for user onboarding 2022-07-07 23:23:09 +02:00
res chore(CPP): Basic project configuration setup using Qt6 2022-06-30 12:16:33 +02:00
src chore(CPP): foundation for user onboarding 2022-07-07 23:23:09 +02:00
CMakeLists.txt chore(CPP): foundation for user onboarding 2022-07-07 23:23:09 +02:00
README.md chore(CPP) install conan dependencies in CI 2022-07-01 16:57:51 +02:00

README.md

CPP App

Setup dependencies

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

Platform specific conan profile

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

Buid, test & run

Update CMake to the Latest Release

Build with conan

# linux
CMAKE_PREFIX_PATH="$HOME/Qt/6.4.0/gcc_64" conan build . -if=build/conan -bf=build

# MacOS: CMAKE_PREFIX_PATH="$HOME/Qt/6.4.0/macos" conan build . -if=build/conan -bf=build

# Windows: CMAKE_PREFIX_PATH="$HOME/Qt/6.4.0/mingw_64" conan build . -if=build/conan -bf=build

ctest -VV -C Release
./status-desktop

Build with cmake

# linux
cmake -B build -S . -DCMAKE_PREFIX_PATH="$HOME/Qt/6.4.0/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.4.0/macos" -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=build/conan/conan_toolchain.cmake

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

cmake --build build --config Release