Implements Phase 1 of QT6-IMPLEMENTATION-PLAN.md: Verify Qt6 toolchain on FreeBSD can build working GUI applications. Deliverables: - firstboot/gui/helloworld/main.cpp — Qt6 C++ widget application - firstboot/gui/helloworld/helloworld.pro — qmake project file - firstboot/gui/helloworld/README.md — Build instructions & troubleshooting Build Results: ✓ qmake6 successfully generated Makefile ✓ clang++ compiled without errors (16K binary) ✓ Binary is ELF 64-bit, FreeBSD 15.0 target ✓ Dynamically linked to libQt6Widgets, libQt6Gui, libQt6Core ✓ Compilation flags: -O2, -Wall, -Wextra (production-grade) Success Criteria Met: ✓ Qt6 "Hello World" compiles on FreeBSD ✓ Binary created (clawdie-helloworld) ✓ Build process documented Next Step: Phase 2 (QML prototype with GPU detection display) Build time: <10 seconds Binary size: 16 KB Dependencies: qt6-base, qt6-declarative, qmake6 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
29 lines
737 B
C++
29 lines
737 B
C++
#include <QApplication>
|
|
#include <QLabel>
|
|
#include <QPushButton>
|
|
#include <QVBoxLayout>
|
|
#include <QWidget>
|
|
|
|
int main(int argc, char *argv[]) {
|
|
QApplication app(argc, argv);
|
|
|
|
QWidget window;
|
|
QVBoxLayout *layout = new QVBoxLayout(&window);
|
|
|
|
QLabel *label = new QLabel("Clawdie Qt6 GUI Installer");
|
|
label->setAlignment(Qt::AlignCenter);
|
|
label->setStyleSheet("font-size: 24px; font-weight: bold;");
|
|
|
|
QPushButton *button = new QPushButton("Exit");
|
|
|
|
layout->addWidget(label);
|
|
layout->addWidget(button);
|
|
|
|
QObject::connect(button, &QPushButton::clicked, &app, &QApplication::quit);
|
|
|
|
window.setWindowTitle("Clawdie Installer");
|
|
window.resize(400, 200);
|
|
window.show();
|
|
|
|
return app.exec();
|
|
}
|