Aurora CInterop
C libraries providing common functionality of Aurora OS for all languages in which FFI is available. The library is developed for Kotlin cinterop.
Features
- C interface in a single format.
- Simplifying complex interfaces.
- Standardization of interaction with OS.
- Ability to control a single public interface.
- Unified code base for various OS interfaces.
- Single center for implement interactions with any frameworks.
- Cross-compile: arm64, x64.
- Cross-platform build.
Libs
- Battery Info.
- Camera Info.
- Connectivity Info.
- Device Info.
- Keyboard Maliit.
- Local Notification.
- Location Info.
- Package Info.
- Path Info.
- Sensors Info.
- Share Data.
- Shared Preferences.
- Uri Launcher.
- Vibration.
- WakeLock.
- Window.
Build
- Install Docker.
- Install Aurora SDK (BT).
- Install Rust.
- Install Cross.
- Install Aurora CLI.
- Install Aurora Maven.
Pull submodules:
git submodule update --init --recursive
Run build:
./scripts/build.sh
Run tests:
./scripts/tests.sh
Run formatters:
./scripts/format.sh
VS Code
You can add paths to the settings.json for work:
{
"rust-analyzer.cargo.extraEnv": {
"LIBDIR_3RD_PARTY": "${userHome}/.m2/repository/3rd_party",
"LD_LIBRARY_PATH": "${userHome}/.aurora-sysroot/x86_64/usr/lib",
"PKG_CONFIG_SYSROOT_DIR": "${userHome}/.aurora-sysroot/x86_64",
"PKG_CONFIG_LIBDIR": "${userHome}/.aurora-sysroot/x86_64/usr/lib",
"PKG_CONFIG_PATH": "${userHome}/.aurora-sysroot/x86_64/usr/lib/pkgconfig",
},
"rust-analyzer.cargo.features": [ "headers" ]
}
If you need to work with C++ files in VS Code, first build the project (see Build), then add c_cpp_properties.json for the C/C++ extension. This config is only for the C/C++ extension — if the clangd extension is enabled, disable it, since the two extensions conflict:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/target/**/out/cxxbridge/include",
"${workspaceFolder}/target/**/out/cxxbridge/crate",
"${workspaceFolder}/target/**/out/qxxbridge/include",
"${workspaceFolder}/*/cxx/include",
"${userHome}/.aurora-sysroot/x86_64/usr/include",
"${userHome}/.aurora-sysroot/x86_64/usr/include/glib-2.0",
"${userHome}/.aurora-sysroot/x86_64/usr/lib/glib-2.0/include",
"${userHome}/.aurora-sysroot/x86_64/usr/include/streamcamera",
"${userHome}/.aurora-sysroot/x86_64/usr/include/RuntimeManager",
"${userHome}/.aurora-sysroot/x86_64/usr/include/qt5",
"${userHome}/.aurora-sysroot/x86_64/usr/include/qt5/QtCore",
"${userHome}/.aurora-sysroot/x86_64/usr/include/qt5/QtNetwork",
"${userHome}/.aurora-sysroot/x86_64/usr/include/qt5/QtDBus",
"${userHome}/.aurora-sysroot/x86_64/usr/include/qt5/QtPositioning",
"${userHome}/.aurora-sysroot/x86_64/usr/include/qt5/QtSensors",
"${userHome}/.aurora-sysroot/x86_64/usr/include/qt5/QtFeedback",
"${userHome}/.aurora-sysroot/x86_64/usr/include/qt5/QtCrypto"
],
"compilerPath": "/usr/bin/g++",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}