status-desktop/vendor
Stefan 1e8c851283 chore(CPP): Basic project configuration setup using Qt6
Considerations

- Use versioned files. Versioned Qt CMake APIs are disabled to force explicit calls and say that we don't support older `QT`s
- Don't use blobbing. Use `target_sources` and `qt_target_qml_sources`
- Distribute `CMake` definitions closer to the context: main folders with their own `CMakeLists.txt`
- Everything in libraries under `Status` namespace for cleaner code.
- Includes are exposed with Module folder externally and without prefix internally
- File/Folders name matches definitions they contain for uniformity that leads to cleaner code
- All source files (cpp, qml, js ...) have to be added to one of the CMakeLists.txt files to be tracked by CMake build system.
- Use BUILD_DEBUG, BUILD_RELEASE and BUILD_DEVELOPMENT variables from Helpers library
- Avoid Include directories. Not needed anymore CMake `target_*` APIs handles this through `INTERFACE`, `PUBLIC` and `PRIVATE` scope identifiers
- `StatusQ` is meant to be compiled as an external library, therefore StatusQ tests are kept inside its own directory
- Forced CMake version to `3.21` for the latest features and fixes. It is desired to be kept as recent as possible due to its backward compatibility. Following Qt's shipped version might be an option
- Depends on status-go changes to allow forcing of arm for apple silicon

Found limitations to CMake Qt API with Qt 6.3

- Having `0` as major version when using `qt_add_qml_module` doesn't work. Qml engine reports loading the `qmldir` but won't load the plugin library and no error is reported outside that exposed types are not found.
- `qt_target_qml_sources` doesn't work now, it generate a double copy error when deploying qml files in bin-directory. For now we stick with adding files using `qt_add_qml_module` central place
  - Need to add `OUTPUT_DIRECTORY` to `qt_add_qml_module` to use the workaround
- If `MACOSX_BUNDLE` target property is set breaks importing of QML files. Disabled until fixed or workaround found
- For an unknown reason application executable tries to include the `QML_ELEMENT` include files, therefore for now I include all the C++ qml elements in INTERFACE
2022-06-30 12:16:33 +02:00
..
DOtherSide@7e8b91f510 chore(@desktop): update dotherside 2022-06-14 16:44:36 -04:00
QR-Code-generator@86335d3fa6 bump status-go & qr-code-generator 2021-09-28 15:17:28 -04:00
bearssl@ba5f468798 refactor: use nim-web3 library 2020-09-29 13:28:08 -04:00
chroma@6ec846e917 adding missing deps 2020-09-04 15:57:29 -04:00
conan-configs chore(CPP): Basic project configuration setup using Qt6 2022-06-30 12:16:33 +02:00
edn.nim@3305e41f9d refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
fcitx5-qt@fd06094f48 fix(@desktop/input): deploy Qt plugin to support fcitx 2022-01-26 18:11:39 +01:00
isaac@45a5cbbd54 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
news@e1d63564a2 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-bearssl@dc62f4fccd refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-chronicles@ea0368cc30 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-chronos@bce0f878d1 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-confutils@7176de4ddb refactor(@desktop/general): app sections handled within main module 2022-02-01 11:32:28 +01:00
nim-eth@3ddb498f2a refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-faststreams@d3ef34b325 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-http-utils@33d70b9f37 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-json-rpc@dff46c991d refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-json-serialization@fe8a82ca76 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-keycard-go@126fbc9dc2 chores(@general): remove status-lib deps 2022-02-03 11:52:45 -05:00
nim-libp2p@70deac9e0d refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-metrics@f91deb7422 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-result@7c5f2423fe refactor: creating module for bookmarks and provider 2021-11-05 11:02:45 -04:00
nim-secp256k1@fb9699702b refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-serialization@f9a1121b87 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-status-go@7fa256afd2 feat(@wallet): multi transaction simple view 2022-06-09 15:22:24 +02:00
nim-stew@1db43c7234 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-stint@ddfa6c608a chores(@general): remove status-lib deps 2022-02-03 11:52:45 -05:00
nim-task-runner@a87f3f85be refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-web3@bf6805dff9 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-websock@f354dfebe9 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nim-zlib@6bbc67d09e refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nimPNG@7ff39ec00d adding missing deps 2020-09-04 15:57:29 -04:00
nimage@d683a7319c adding missing deps 2020-09-04 15:57:29 -04:00
nimbus-build-system@6589cedffa fix dependencies 2021-09-06 16:39:37 -04:00
nimcrypto@30d0ceaba0 refactor(@desktop/general): repo cleaning 2022-02-01 11:52:33 +01:00
nimqml@99435c9b2e chore(internal): Bump nimqml version 2022-05-26 14:16:00 +02:00
semver.nim@3b7ace4870 feat: Version Updating 2021-08-24 16:56:55 -04:00
status-go@23d745fe0a chore(CPP): Basic project configuration setup using Qt6 2022-06-30 12:16:33 +02:00
uuids@c5039c1cc6 feat: onboarding generate new account 2020-05-21 19:33:14 -04:00
CMakeLists.txt chore(CPP): Basic project configuration setup using Qt6 2022-06-30 12:16:33 +02:00