Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,11 @@ setup_third_party(
GIT_REPOSITORY https://github.com/Awesome-Embedded-Learning-Studio/QuarkWidgets.git
GIT_TAG v0.1.0)

# Standalone desktop apps. Each ships a standalone executable launched via
# QProcess. (Historically apps/ had to precede desktop because desktop reused
# the calculator parser lib defined here; that coupling has been removed -- the
# desktop core no longer reaches into apps/. apps/ now only needs to precede
# test/, which it does; the apps-before-desktop ordering below is convention.)
log_module_start("apps")
add_subdirectory(apps)
log_module_end("apps")
# Standalone desktop apps now live in the separate `CFDeskit` repo
# (https://github.com/Awesome-Embedded-Learning-Studio/CFDeskit). The main
# repo no longer compiles apps — they are deployed as prebuilt artifacts into
# <bin>/../apps/<id>/ at install/runtime, where AppDiscoverer scans them.
# See apps/README.md for the deployment contract.

log_module_start("desktop")
add_subdirectory(desktop)
Expand Down
9 changes: 0 additions & 9 deletions apps/CMakeLists.txt

This file was deleted.

35 changes: 35 additions & 0 deletions apps/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# apps/ — deployment target (no source)

This directory is the **runtime deployment target** for standalone desktop apps.
App sources no longer live in this repo — they were extracted to the separate
[`CFDeskit`](https://github.com/Awesome-Embedded-Learning-Studio/CFDeskit)
repository (calculator, noter, alarm_clock, calendar, system_state).

## Deployment contract

`AppDiscoverer` (in `desktop/ui/components/launcher/`) scans
`<bin>/../apps/<id>/app.json` at startup. Each app ships as a self-contained
package:

```
<active_root>/apps/
libquarkwidgets.so # shared by all apps (rpath $ORIGIN/..)
<id>/
<id> # executable
app.json # manifest (app_id, display_name, exec, launch_kind)
```

## How to deploy

Build CFDeskit and install (or copy) its `apps/` tree here:

```bash
# clean install:
( cd ~/CFDeskit && cmake --install build --prefix <CFDesktop deploy root> )
# quick local test against an existing CFDesktop build tree:
cp -r ~/CFDeskit/build/apps/. <CFDesktop build>/out/build_develop/apps/
```

Apps resolve `libquarkwidgets.so` via rpath `$ORIGIN/..` and runtime-verify the
ABI version (`abi_check.hpp`), so the apps' QuarkWidgets version is fully
decoupled from the desktop's `bin/libquarkwidgets.so`.
27 changes: 0 additions & 27 deletions apps/alarm_clock/CMakeLists.txt

This file was deleted.

223 changes: 0 additions & 223 deletions apps/alarm_clock/alarm_clock_panel.cpp

This file was deleted.

Loading
Loading