Implemented new C++ logic

This commit is contained in:
Martino Ferrari
2026-06-12 15:25:13 +02:00
parent 617b5bd712
commit f25bd7f08e
220 changed files with 39185 additions and 850 deletions
+708
View File
@@ -0,0 +1,708 @@
/**
* @file App.cpp
* @brief Application state machine implementation.
*/
#include "App.h"
#include "SourcePanel.h"
#include "PlotPanel.h"
#include "TriggerPanel.h"
#include "StatsPanel.h"
#include "imgui.h"
#include "implot.h"
#include "Icons.h"
#include <cstring>
#include <cstdio>
#include <cmath>
#include <chrono>
#include <algorithm>
namespace StreamHubClient {
/* ── Layout icon helper ──────────────────────────────────────────────────── */
static void DrawLayoutIcon(ImDrawList* dl, ImVec2 tl, ImVec2 sz,
int cols, int rows, bool selected) {
ImU32 bg = selected ? IM_COL32(49,50,68,255) : IM_COL32(24,24,37,255);
ImU32 cell = selected ? IM_COL32(137,180,250,200) : IM_COL32(88,91,112,160);
ImU32 bord = selected ? IM_COL32(137,180,250,255) : IM_COL32(69,71,90,255);
dl->AddRectFilled(tl, ImVec2(tl.x+sz.x, tl.y+sz.y), bg, 4.f);
dl->AddRect(tl, ImVec2(tl.x+sz.x, tl.y+sz.y), bord, 4.f, 0, 1.f);
float cw = sz.x / cols, rh = sz.y / rows;
for (int c = 0; c < cols; c++) {
for (int r = 0; r < rows; r++) {
ImVec2 p0(tl.x + c*cw + 2.f, tl.y + r*rh + 2.f);
ImVec2 p1(tl.x + (c+1)*cw - 2.f, tl.y + (r+1)*rh - 2.f);
dl->AddRectFilled(p0, p1, cell, 2.f);
}
}
}
/* ── Signal ─────────────────────────────────────────────────────────────── */
/* ── App ─────────────────────────────────────────────────────────────────── */
App::App() {
for (int i = 0; i < kMaxPlotSlots; i++) {
plotPaused_[i] = false;
liveFollow_[i] = true;
activeSlot_[i] = -1;
}
}
App::~App() {
shutdown();
}
void App::init(const std::string& host, uint16_t port) {
snprintf(hostBuf_, sizeof(hostBuf_), "%s", host.c_str());
snprintf(portBuf_, sizeof(portBuf_), "%u", static_cast<unsigned>(port));
ws_.connect(host, port);
/* Initial queries are sent on first connect transition in update() */
}
void App::shutdown() {
ws_.disconnect();
}
/* ── Per-frame update ────────────────────────────────────────────────────── */
void App::update() {
/* Send initial queries on first successful connect */
bool nowConnected = ws_.isConnected();
if (nowConnected && !prevConnected_) {
ws_.sendText(BuildGetSources());
ws_.sendText(BuildGetStats());
}
prevConnected_ = nowConnected;
/* Drain WebSocket receive queue */
ws_.poll([this](const WSMessage& msg) {
if (msg.isBinary) {
handleBinary(msg.data.data(), msg.data.size());
} else {
std::string json(reinterpret_cast<const char*>(msg.data.data()),
msg.data.size());
handleJSON(json);
}
});
/* ── Full-screen dockspace ─────────────────────────────────────────── */
ImGuiViewport* vp = ImGui::GetMainViewport();
ImGui::SetNextWindowPos(vp->WorkPos);
ImGui::SetNextWindowSize(vp->WorkSize);
ImGuiWindowFlags wf = ImGuiWindowFlags_NoTitleBar
| ImGuiWindowFlags_NoCollapse
| ImGuiWindowFlags_NoResize
| ImGuiWindowFlags_NoMove
| ImGuiWindowFlags_NoBringToFrontOnFocus
| ImGuiWindowFlags_NoNavFocus
| ImGuiWindowFlags_MenuBar;
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.f, 0.f));
ImGui::Begin("##main", nullptr, wf);
ImGui::PopStyleVar(3);
renderMenuBar();
renderToolbar();
if (showTrigBar_) { renderTriggerBar(); }
/* Horizontal split: sidebar | plot grid */
float sidebarW = sidebarOpen_ ? 220.f : 0.f;
float avail = ImGui::GetContentRegionAvail().x;
float plotW = avail - sidebarW;
if (sidebarOpen_) {
ImGui::BeginChild("##sidebar", ImVec2(sidebarW, 0.f), false,
ImGuiWindowFlags_NoMove);
RenderSourcePanel(*this);
ImGui::EndChild();
ImGui::SameLine();
}
ImGui::BeginChild("##plots", ImVec2(plotW, 0.f), false);
renderPlotGrid();
ImGui::EndChild();
ImGui::End();
/* Overlays / modals */
if (showStats_) { renderStatsModal(); }
if (showAddSrc_) { renderAddSourceModal(); }
}
/* ── Menu bar ────────────────────────────────────────────────────────────── */
void App::renderMenuBar() {
if (!ImGui::BeginMenuBar()) { return; }
if (ImGui::BeginMenu("File")) {
if (ImGui::MenuItem("Quit", "Alt+F4")) {
/* Signal quit via SDL event — handled in main.cpp via flag */
}
ImGui::EndMenu();
}
if (ImGui::BeginMenu("View")) {
ImGui::MenuItem("Sidebar", nullptr, &sidebarOpen_);
ImGui::MenuItem("Trigger Bar", nullptr, &showTrigBar_);
ImGui::MenuItem("Statistics", nullptr, &showStats_);
ImGui::EndMenu();
}
if (ImGui::BeginMenu("Sources")) {
if (ImGui::MenuItem(ICON_FA_PLUS " Add Source...")) { showAddSrc_ = true; }
ImGui::EndMenu();
}
if (ImGui::BeginMenu("Layout")) {
for (int i = 0; i < static_cast<int>(PlotLayout::kCount); i++) {
bool sel = (static_cast<int>(layout_) == i);
if (ImGui::MenuItem(PlotLayoutNames[i], nullptr, sel)) {
setLayout(static_cast<PlotLayout>(i));
}
}
ImGui::EndMenu();
}
/* Right-aligned: [host] : [port] [Connect/Reconnect] ● status */
bool connected = ws_.isConnected();
const char* btnLbl = connected ? "Reconnect" : "Connect";
const char* ledLbl = connected ? ICON_FA_CIRCLE " Connected"
: ICON_FA_CIRCLE " Disconnected";
/* Measure widget widths to right-align the whole group */
const ImGuiStyle& st = ImGui::GetStyle();
const float kHostW = 130.f;
const float kPortW = 52.f;
const float kBtnW = ImGui::CalcTextSize(btnLbl).x + st.FramePadding.x * 2.f;
const float kLedW = ImGui::CalcTextSize(ledLbl).x;
const float kGroupW = kHostW + 8.f + kPortW + 8.f + kBtnW + 8.f + kLedW;
ImGui::SetCursorPosX(
ImGui::GetCursorPosX() +
ImGui::GetContentRegionAvail().x - kGroupW);
ImGui::SetNextItemWidth(kHostW);
ImGui::InputText("##hubhost", hostBuf_, sizeof(hostBuf_));
ImGui::SameLine(0.f, 2.f);
ImGui::TextUnformatted(":");
ImGui::SameLine(0.f, 2.f);
ImGui::SetNextItemWidth(kPortW);
ImGui::InputText("##hubport", portBuf_, sizeof(portBuf_),
ImGuiInputTextFlags_CharsDecimal);
ImGui::SameLine(0.f, 6.f);
if (ImGui::Button(btnLbl)) {
ws_.reconnect(hostBuf_, static_cast<uint16_t>(atoi(portBuf_)));
}
ImGui::SameLine(0.f, 8.f);
ImVec4 ledColor = connected
? ImVec4(0.1f, 0.9f, 0.3f, 1.f)
: ImVec4(0.9f, 0.2f, 0.2f, 1.f);
ImGui::TextColored(ledColor, "%s", ledLbl);
ImGui::EndMenuBar();
}
/* ── Toolbar ─────────────────────────────────────────────────────────────── */
void App::renderToolbar() {
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4.f, 4.f));
/* Layout picker — pictogram popup */
static const int kIconCols[] = {1,2,1,3,1,2,4,1};
static const int kIconRows[] = {1,1,2,1,3,2,1,4};
static const ImVec2 kIconSz = ImVec2(36.f, 24.f);
if (ImGui::Button(ICON_FA_TABLE_CELLS_LARGE " Layout")) {
ImGui::OpenPopup("##layout_pop");
}
ImGui::SameLine();
if (ImGui::BeginPopup("##layout_pop")) {
ImGui::TextDisabled("Select layout");
ImGui::Separator();
ImDrawList* ldl = ImGui::GetWindowDrawList();
for (int li = 0; li < static_cast<int>(PlotLayout::kCount); li++) {
bool sel = (static_cast<int>(layout_) == li);
ImVec2 p = ImGui::GetCursorScreenPos();
/* Invisible button sized to the icon */
if (ImGui::InvisibleButton(PlotLayoutNames[li], kIconSz)) {
setLayout(static_cast<PlotLayout>(li));
ImGui::CloseCurrentPopup();
}
DrawLayoutIcon(ldl, p, kIconSz,
kIconCols[li], kIconRows[li], sel);
if (li < static_cast<int>(PlotLayout::kCount) - 1) {
ImGui::SameLine(0.f, 4.f);
}
}
ImGui::EndPopup();
}
/* Global pause */
if (ImGui::Button(globalPaused_ ? ICON_FA_PLAY " Resume"
: ICON_FA_PAUSE " Pause")) {
globalPaused_ = !globalPaused_;
for (int i = 0; i < numPlotSlots(); i++) {
plotPaused_[i] = globalPaused_;
if (!globalPaused_) { liveFollow_[i] = true; }
}
}
ImGui::SameLine();
/* Cursors A/B (global: shared & synchronised across all plots) */
{
if (cursorsOn_) {
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.537f,0.706f,0.980f,0.4f));
}
if (ImGui::Button(ICON_FA_CROSSHAIRS " Cursors")) {
cursorsOn_ = !cursorsOn_;
if (cursorsOn_) {
/* seed cursors at 25% / 75% of the live window */
const double wallNow = std::chrono::duration<double>(
std::chrono::system_clock::now().time_since_epoch()).count();
const double x0 = wallNow - windowSec_;
cursorA_ = x0 + windowSec_ * 0.25;
cursorB_ = x0 + windowSec_ * 0.75;
}
}
if (cursorsOn_) { ImGui::PopStyleColor(); }
}
ImGui::SameLine();
/* Trigger bar toggle */
if (ImGui::Button(ICON_FA_BOLT " Trigger")) { showTrigBar_ = !showTrigBar_; }
ImGui::SameLine();
/* Stats */
if (ImGui::Button(ICON_FA_CHART_COLUMN " Stats")) { showStats_ = !showStats_; }
ImGui::SameLine();
/* Add source */
if (ImGui::Button(ICON_FA_PLUS " Source")) { showAddSrc_ = true; }
ImGui::SameLine();
/* Time window presets (Ctrl+scroll on a plot still adjusts freely) */
static const double kWinPresets[] = {1.0, 5.0, 10.0, 30.0, 60.0};
static const char* kWinLabels[] = {"1 s", "5 s", "10 s", "30 s", "60 s"};
char winPreview[16];
snprintf(winPreview, sizeof(winPreview), "%.3g s", windowSec_);
ImGui::SetNextItemWidth(70.f);
if (ImGui::BeginCombo("Win", winPreview)) {
for (int wi = 0; wi < 5; wi++) {
bool sel = std::fabs(windowSec_ - kWinPresets[wi]) < 1e-9;
if (ImGui::Selectable(kWinLabels[wi], sel)) {
windowSec_ = kWinPresets[wi];
}
if (sel) { ImGui::SetItemDefaultFocus(); }
}
ImGui::EndCombo();
}
ImGui::SameLine();
/* Max points control */
ImGui::SetNextItemWidth(80.f);
int mp = static_cast<int>(maxPoints_);
if (ImGui::InputInt("MaxPts", &mp, 0, 0,
ImGuiInputTextFlags_EnterReturnsTrue)) {
if (mp >= 2) {
maxPoints_ = static_cast<uint32_t>(mp);
ws_.sendText(BuildSetMaxPoints(maxPoints_));
}
}
ImGui::PopStyleVar();
ImGui::Separator();
}
/* ── Plot grid ───────────────────────────────────────────────────────────── */
void App::renderPlotGrid() {
int cols, rows;
PlotLayoutDims(layout_, cols, rows);
/* Per-cell fraction arrays (reset when layout changes) */
static float rowFrac[8] = {1,1,1,1,1,1,1,1};
static float colFrac[8] = {1,1,1,1,1,1,1,1};
static PlotLayout prevLayout = PlotLayout::kCount;
if (layout_ != prevLayout) {
for (int i = 0; i < 8; i++) { rowFrac[i] = 1.f; colFrac[i] = 1.f; }
prevLayout = layout_;
}
const float kSep = 5.f; /* separator strip width/height in px */
float avW = ImGui::GetContentRegionAvail().x;
float avH = ImGui::GetContentRegionAvail().y;
float cellTotalW = avW - kSep * (cols - 1);
float cellTotalH = avH - kSep * (rows - 1);
/* Normalise fractions */
float rowSum = 0.f; for (int r = 0; r < rows; r++) rowSum += rowFrac[r];
float colSum = 0.f; for (int c = 0; c < cols; c++) colSum += colFrac[c];
if (rowSum < 1e-6f) rowSum = 1.f;
if (colSum < 1e-6f) colSum = 1.f;
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0.f, 0.f));
for (int r = 0; r < rows; r++) {
float rh = std::max(30.f, cellTotalH * rowFrac[r] / rowSum);
for (int c = 0; c < cols; c++) {
float cw = std::max(60.f, cellTotalW * colFrac[c] / colSum);
int plotIdx = r * cols + c;
char cellId[32]; snprintf(cellId, sizeof(cellId), "##cell%d", plotIdx);
ImGui::BeginChild(cellId, ImVec2(cw, rh), false,
ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse);
if (plotIdx < kMaxPlotSlots) {
RenderPlotPanel(*this, plotIdx, plotPaused_[plotIdx]);
}
ImGui::EndChild();
/* ── Column separator ── */
if (c < cols - 1) {
ImGui::SameLine(0.f, 0.f);
char csId[32]; snprintf(csId, sizeof(csId), "##cs%d_%d", r, c);
ImVec2 p0 = ImGui::GetCursorScreenPos();
ImGui::InvisibleButton(csId, ImVec2(kSep, rh));
if (ImGui::IsItemActive()) {
float dx = ImGui::GetIO().MouseDelta.x;
colFrac[c] += dx * colSum / cellTotalW;
colFrac[c+1] -= dx * colSum / cellTotalW;
colFrac[c] = std::max(0.05f * colSum, colFrac[c]);
colFrac[c+1] = std::max(0.05f * colSum, colFrac[c+1]);
}
if (ImGui::IsItemHovered() || ImGui::IsItemActive())
ImGui::SetMouseCursor(ImGuiMouseCursor_ResizeEW);
ImGui::GetWindowDrawList()->AddRectFilled(
p0, ImVec2(p0.x + kSep, p0.y + rh), IM_COL32(49,50,68,255));
ImGui::SameLine(0.f, 0.f);
}
} /* end col loop */
/* ── Row separator ── */
if (r < rows - 1) {
char rsId[32]; snprintf(rsId, sizeof(rsId), "##rs%d", r);
/* Reposition X to left content edge before drawing full-width strip */
ImGui::SetCursorPosX(0.f);
ImVec2 p0 = ImGui::GetCursorScreenPos();
ImGui::InvisibleButton(rsId, ImVec2(avW, kSep));
if (ImGui::IsItemActive()) {
float dy = ImGui::GetIO().MouseDelta.y;
rowFrac[r] += dy * rowSum / cellTotalH;
rowFrac[r+1] -= dy * rowSum / cellTotalH;
rowFrac[r] = std::max(0.05f * rowSum, rowFrac[r]);
rowFrac[r+1] = std::max(0.05f * rowSum, rowFrac[r+1]);
}
if (ImGui::IsItemHovered() || ImGui::IsItemActive())
ImGui::SetMouseCursor(ImGuiMouseCursor_ResizeNS);
ImGui::GetWindowDrawList()->AddRectFilled(
p0, ImVec2(p0.x + avW, p0.y + kSep), IM_COL32(49,50,68,255));
}
} /* end row loop */
ImGui::PopStyleVar();
}
/* ── Stats modal ─────────────────────────────────────────────────────────── */
void App::renderStatsModal() {
ImGui::SetNextWindowSize(ImVec2(700.f, 300.f), ImGuiCond_FirstUseEver);
if (ImGui::Begin("Statistics", &showStats_)) {
RenderStatsPanel(*this);
}
ImGui::End();
}
/* ── Add-source modal ────────────────────────────────────────────────────── */
void App::renderAddSourceModal() {
ImGui::SetNextWindowSize(ImVec2(360.f, 260.f), ImGuiCond_Always);
ImGui::SetNextWindowPos(ImGui::GetMainViewport()->GetCenter(),
ImGuiCond_Always, ImVec2(0.5f, 0.5f));
if (ImGui::Begin("Add Source", &showAddSrc_,
ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse)) {
static char label[128]= "";
static char host[64] = "127.0.0.1";
static int port = 44500;
static char mcast[64] = "";
static int dataPort = 0;
ImGui::InputText("Label", label, sizeof(label));
ImGui::InputText("Host", host, sizeof(host));
ImGui::InputInt("Port", &port);
ImGui::InputText("Multicast", mcast, sizeof(mcast));
ImGui::InputInt("Data Port", &dataPort);
ImGui::Spacing();
if (ImGui::Button("Connect", ImVec2(100.f, 0.f))) {
if (host[0] != '\0' && port > 0 && port < 65536) {
char addr[96];
snprintf(addr, sizeof(addr), "%s:%d", host, port);
ws_.sendText(BuildAddSource(label, addr, mcast,
static_cast<uint16_t>(
(dataPort > 0 && dataPort < 65536)
? dataPort : 0)));
showAddSrc_ = false;
label[0] = '\0';
}
}
ImGui::SameLine();
if (ImGui::Button("Cancel", ImVec2(80.f, 0.f))) {
showAddSrc_ = false;
}
}
ImGui::End();
}
/* ── Trigger bar ─────────────────────────────────────────────────────────── */
void App::renderTriggerBar() {
RenderTriggerPanel(*this);
}
/* ── Layout ──────────────────────────────────────────────────────────────── */
int App::numPlotSlots() const {
int cols, rows;
PlotLayoutDims(layout_, cols, rows);
return cols * rows;
}
void App::setLayout(PlotLayout l) {
layout_ = l;
}
/* ── Source helpers ──────────────────────────────────────────────────────── */
int App::findSource(const std::string& id) const {
for (int i = 0; i < static_cast<int>(sources_.size()); i++) {
if (sources_[i].id == id) { return i; }
}
return -1;
}
int App::findSignal(const Source& src, const std::string& name) const {
for (int i = 0; i < static_cast<int>(src.signals.size()); i++) {
if (src.signals[i].meta.name == name) { return i; }
}
return -1;
}
/* ── WS message dispatch ─────────────────────────────────────────────────── */
void App::handleJSON(const std::string& json) {
std::string type = ParseType(json);
if (type == "sources") { onSources(json); }
else if (type == "config") { onConfig(json); }
else if (type == "stats") { onStats(json); }
else if (type == "triggerState") { onTriggerState(json); }
else if (type == "zoom") { onZoom(json); }
else if (type == "maxPointsUpdated") { onMaxPointsUpdated(json); }
/* pong: ignore */
}
void App::handleBinary(const uint8_t* data, size_t len) {
if (len == 0) { return; }
/* Version 2: trigger capture frame */
if (data[0] == 2u) {
CaptureFrame cf;
if (ParseCaptureFrame(data, len, cf)) {
capture_ = std::move(cf);
hasCapture_ = true;
trigger_.status = "triggered";
trigger_.trigTime = capture_.trigTime;
trigger_.hasTrigTime = true;
}
return;
}
/* Version 1: live push frame. The hub pushes only samples that are new
* since the previous tick (non-overlapping), so push verbatim. */
DataFrame frame;
if (!ParseBinaryFrame(data, len, frame)) { return; }
std::lock_guard<std::mutex> lk(srcMutex_);
int srcIdx = findSource(frame.sourceId);
if (srcIdx < 0) { return; }
Source& src = sources_[srcIdx];
for (const auto& fs : frame.signals) {
int sigIdx = findSignal(src, fs.name);
if (sigIdx < 0) { continue; }
/* Always push: the ring is the "active" buffer; paused plots render
* from their frozen view snapshot, so no data is ever dropped. */
size_t n = std::min(fs.t.size(), fs.v.size());
auto& buf = src.signals[sigIdx].buf;
for (size_t i = 0; i < n; i++) {
buf.push(fs.t[i], fs.v[i]);
}
}
}
/* ── JSON event handlers ─────────────────────────────────────────────────── */
void App::onSources(const std::string& json) {
std::vector<SourceInfo> infos;
ParseSources(json, infos);
std::lock_guard<std::mutex> lk(srcMutex_);
for (const auto& info : infos) {
int idx = findSource(info.id);
if (idx < 0) {
Source s;
s.id = info.id;
s.label = info.label;
s.addr = info.addr;
s.port = info.port;
s.state = info.state;
sources_.push_back(std::move(s));
} else {
sources_[idx].state = info.state;
sources_[idx].label = info.label;
}
}
/* Remove sources that are no longer listed */
sources_.erase(std::remove_if(sources_.begin(), sources_.end(),
[&infos](const Source& s) {
for (const auto& i : infos) { if (i.id == s.id) { return false; } }
return true;
}), sources_.end());
}
void App::onConfig(const std::string& json) {
std::string sourceId;
int publishMode = 0;
std::vector<SignalMeta> metas;
if (!ParseConfig(json, sourceId, publishMode, metas)) { return; }
std::lock_guard<std::mutex> lk(srcMutex_);
int idx = findSource(sourceId);
if (idx < 0) { return; }
Source& src = sources_[idx];
src.configured = true;
src.publishMode = publishMode;
/* Colour palette — Catppuccin Mocha trace colours */
static const ImVec4 kPalette[] = {
{0.537f,0.706f,0.980f,1.f}, /* blue */
{0.651f,0.890f,0.631f,1.f}, /* green */
{0.953f,0.545f,0.659f,1.f}, /* red */
{0.980f,0.702f,0.529f,1.f}, /* peach */
{0.796f,0.651f,0.969f,1.f}, /* mauve */
{0.580f,0.886f,0.835f,1.f}, /* teal */
{0.537f,0.863f,0.922f,1.f}, /* sky */
{0.706f,0.745f,0.996f,1.f}, /* lavender */
};
/* Merge: add new signals, keep existing ring buffers */
for (size_t m = 0; m < metas.size(); m++) {
int si = findSignal(src, metas[m].name);
if (si < 0) {
Signal sig;
sig.meta = metas[m];
sig.color = kPalette[src.signals.size() % 8];
src.signals.push_back(std::move(sig));
} else {
src.signals[si].meta = metas[m];
}
}
}
void App::onStats(const std::string& json) {
std::vector<std::pair<std::string, SourceStats>> statsVec;
ParseStats(json, statsVec);
std::lock_guard<std::mutex> lk(srcMutex_);
for (const auto& kv : statsVec) {
int idx = findSource(kv.first);
if (idx >= 0) {
sources_[idx].stats = kv.second;
sources_[idx].state = kv.second.state;
}
}
}
void App::onTriggerState(const std::string& json) {
TriggerStateMsg msg;
if (!ParseTriggerState(json, msg)) { return; }
trigger_.status = msg.state;
trigger_.stopped = msg.stopped;
if (msg.hasTrigTime) {
trigger_.trigTime = msg.trigTime;
trigger_.hasTrigTime = true;
}
/* Double-buffer semantics: the last recorded capture stays on display
* (even while re-armed/collecting) and is only replaced when a new
* capture frame has been fully received and parsed (handleBinary v2). */
if (msg.state == "idle") {
trigger_.hasTrigTime = false;
}
}
void App::onZoom(const std::string& json) {
ZoomResponse resp;
if (!ParseZoom(json, resp)) { return; }
/* Route the reply to the plot that requested it */
for (int i = 0; i < kMaxPlotSlots; i++) {
auto& zc = zoomCache_[i];
if (zc.pending && zc.reqId == resp.reqId) {
zc.signals = std::move(resp.signals);
zc.t0 = zc.reqT0;
zc.t1 = zc.reqT1;
zc.valid = true;
zc.pending = false;
return;
}
}
}
void App::requestZoom(int plotIdx, double t0, double t1,
const std::string& signalsCsv) {
if (plotIdx < 0 || plotIdx >= kMaxPlotSlots) { return; }
if (!ws_.isConnected() || signalsCsv.empty()) { return; }
auto& zc = zoomCache_[plotIdx];
zc.reqId = nextZoomReqId_++;
zc.reqT0 = t0;
zc.reqT1 = t1;
zc.pending = true;
ws_.sendText(BuildZoom(zc.reqId, t0, t1, 2400, signalsCsv));
}
std::string App::slotKey(const PlotAssignment& a) const {
if (a.sourceIdx < 0 || a.sourceIdx >= static_cast<int>(sources_.size())) {
return std::string();
}
const Source& src = sources_[a.sourceIdx];
if (a.signalIdx < 0 || a.signalIdx >= static_cast<int>(src.signals.size())) {
return std::string();
}
return src.id + ":" + src.signals[a.signalIdx].meta.name;
}
void App::onMaxPointsUpdated(const std::string& json) {
uint32_t mp = 0;
ParseMaxPointsUpdated(json, mp);
if (mp >= 2) {
maxPoints_ = mp;
std::lock_guard<std::mutex> lk(srcMutex_);
for (auto& src : sources_) {
for (auto& sig : src.signals) {
sig.buf.setCapacity(mp);
}
}
}
}
} /* namespace StreamHubClient */
+319
View File
@@ -0,0 +1,319 @@
/**
* @file App.h
* @brief Top-level application state and frame dispatch.
*/
#pragma once
#include "WSClient.h"
#include "Protocol.h"
#include "SignalBuffer.h"
#include <string>
#include <vector>
#include <memory>
#include <mutex>
#include <cstdint>
#include "imgui.h"
namespace StreamHubClient {
/*---------------------------------------------------------------------------*/
/* Domain types */
/*---------------------------------------------------------------------------*/
/** One signal as known to the client. */
struct Signal {
SignalMeta meta;
SignalBuffer buf{20000};
ImVec4 color{0.4f, 0.8f, 1.0f, 1.0f};
float lineWidth = 1.5f;
int marker = -1; /* ImPlotMarker (-1 = none) */
bool visible = true;
};
/** One connected UDPStreamer source. */
struct Source {
std::string id;
std::string label;
std::string addr;
std::string state = "disconnected";
uint32_t port = 0;
bool configured = false;
int publishMode = 0;
std::vector<Signal> signals;
SourceStats stats;
};
/** Trigger configuration and live state (hub-side trigger semantics). */
struct TriggerState {
/* Config (sent to the hub via setTrigger) */
std::string signalKey; /* full key "src:sig" or "src:sig[i]" */
int edge = 0; /* 0=rising 1=falling 2=both */
double threshold = 0.0;
double windowSec = 0.1; /* 100 µs .. 10 s */
double prePercent = 20.0;
bool single = false; /* false=normal true=single */
/* Live (driven by hub triggerState broadcasts) */
std::string status = "idle"; /* idle|armed|collecting|triggered */
bool stopped = false;
bool hasTrigTime = false;
double trigTime = 0.0;
};
/** Per-signal vertical scale state (oscilloscope style). */
struct VScale {
int mode = 0; /* 0=auto 1=range 2=manual */
double divValue = 1.0; /* units per division (manual mode) */
double offset = 0.0; /* raw value at center (manual mode) */
double screenPos = 0.0; /* position offset in divisions from center */
bool digitalInMixed = false; /* quantize this trace in mixed plot mode */
/* Resolved each frame (read-only): */
double resolvedDiv = 1.0;
double resolvedOffset = 0.0;
};
/** Assignment of one signal to a plot panel. */
struct PlotAssignment {
int sourceIdx = -1;
int signalIdx = -1;
VScale vs;
};
/*---------------------------------------------------------------------------*/
/* Plot layouts */
/*---------------------------------------------------------------------------*/
/* Layout set mirrors the web UI: cols×rows */
enum class PlotLayout {
kLayout1x1 = 0,
kLayout2x1, /* 2 side by side */
kLayout1x2, /* 2 stacked */
kLayout3x1,
kLayout1x3,
kLayout2x2,
kLayout4x1,
kLayout1x4,
kCount
};
static inline const char* const PlotLayoutNames[] = {
"1×1", "2×1", "1×2", "3×1", "1×3", "2×2", "4×1", "1×4"
};
static inline void PlotLayoutDims(PlotLayout l, int& cols, int& rows) {
switch (l) {
case PlotLayout::kLayout1x1: cols=1; rows=1; break;
case PlotLayout::kLayout2x1: cols=2; rows=1; break;
case PlotLayout::kLayout1x2: cols=1; rows=2; break;
case PlotLayout::kLayout3x1: cols=3; rows=1; break;
case PlotLayout::kLayout1x3: cols=1; rows=3; break;
case PlotLayout::kLayout2x2: cols=2; rows=2; break;
case PlotLayout::kLayout4x1: cols=4; rows=1; break;
case PlotLayout::kLayout1x4: cols=1; rows=4; break;
default: cols=1; rows=1; break;
}
}
/*---------------------------------------------------------------------------*/
/* App */
/*---------------------------------------------------------------------------*/
class App {
public:
App();
~App();
/** @brief Initialise and start the WebSocket connection. */
void init(const std::string& host, uint16_t port);
/**
* @brief Call once per ImGui frame.
* Drains the WS receive queue, dispatches messages, renders all panels.
*/
void update();
/** @brief Disconnect and clean up. */
void shutdown();
/* ---- Accessors used by sub-panels ----------------------------------- */
std::vector<Source>& sources() { return sources_; }
const std::vector<Source>& sources() const { return sources_; }
TriggerState& trigger() { return trigger_; }
WSClient& ws() { return ws_; }
uint32_t maxPoints() const { return maxPoints_; }
/** @brief Last trigger capture received from the hub (nullptr if none). */
const CaptureFrame* capture() const { return hasCapture_ ? &capture_ : nullptr; }
void clearCapture() { hasCapture_ = false; }
/** @brief Get the plot assignment vector for plot index i. */
std::vector<PlotAssignment>& plotSlot(int i) { return plotSlots_[i]; }
int numPlotSlots() const;
PlotLayout plotLayout() const { return layout_; }
void setLayout(PlotLayout l);
/** @brief True if all plots are paused (global pause). */
bool globalPaused() const { return globalPaused_; }
void setGlobalPaused(bool p) { globalPaused_ = p; }
/** @brief Live-follow state per plot (true = auto-scroll with newest data). */
bool& liveFollow(int i) { return liveFollow_[i]; }
/** @brief Which slot index is "active" (selected) in the given plot (-1 = none). */
int& activeSlot(int i) { return activeSlot_[i]; }
/** @brief Time window width in seconds used by live scroll. */
double windowSec() const { return windowSec_; }
void setWindowSec(double s){ if (s >= 1e-4 && s <= 3600.0) windowSec_ = s; }
/** @brief Stored X range for non-live (zoom/pan) mode per plot. */
double plotXMin(int i) const { return plotXMin_[i]; }
double plotXMax(int i) const { return plotXMax_[i]; }
void setPlotX(int i, double mn, double mx) {
if (mx > mn + 1e-9) { plotXMin_[i] = mn; plotXMax_[i] = mx; }
}
/** @brief Call when transitioning live→non-live to seed the stored X range. */
void initPlotX(int i, double tMax) {
plotXMin_[i] = tMax - windowSec_;
plotXMax_[i] = tMax;
}
/** @brief Per-plot vertical normalisation: 0=normal 1=digital 2=mixed. */
int& plotVMode(int i) { return plotVMode_[i]; }
/* ---- Cursors A/B (global: shared & synchronised across all plots) ---- */
bool& cursorsOn() { return cursorsOn_; }
double& cursorA() { return cursorA_; }
double& cursorB() { return cursorB_; }
/* ---- Paused view snapshot (per plot) ---------------------------------- *
* Double-buffer scheme: the per-signal ring buffers stay "active" (always
* written by the WS thread-drain); a paused plot freezes a "view" copy of
* its slots' data at pause time and renders from it, so the picture does
* not drain away while the rings keep rolling. */
struct PlotSnapshot {
bool valid = false;
std::vector<std::string> keys; /* slot key "src:sig" */
std::vector<std::vector<double>> t, v;
};
PlotSnapshot& plotSnap(int i) { return plotSnap_[i]; }
/* ---- Zoom history (per plot) ----------------------------------------- */
std::vector<std::pair<double,double>>& zoomHist(int i) { return zoomHist_[i]; }
/** @brief Push the current stored X range onto the history (capped). */
void pushZoomHist(int i) {
auto& h = zoomHist_[i];
if (!h.empty() && h.back().first == plotXMin_[i] &&
h.back().second == plotXMax_[i]) { return; }
if (h.size() >= 64) { h.erase(h.begin()); }
h.emplace_back(plotXMin_[i], plotXMax_[i]);
}
/* ---- Hi-res WS zoom (per plot) ---------------------------------------- */
struct PlotZoomCache {
bool valid = false; /* signals[] match [t0,t1] */
bool pending = false; /* request in flight */
uint32_t reqId = 0;
double t0 = 0.0, t1 = 0.0; /* range of valid data */
double reqT0 = 0.0, reqT1 = 0.0; /* range of pending request */
std::vector<ZoomSignal> signals;
};
PlotZoomCache& zoomCache(int i) { return zoomCache_[i]; }
/** @brief Send a hub zoom request for plot i over [t0,t1] (2400 pts). */
void requestZoom(int plotIdx, double t0, double t1,
const std::string& signalsCsv);
/** @brief Full key "src:sig" for an assignment (empty if invalid). */
std::string slotKey(const PlotAssignment& a) const;
/** @brief True if the stats panel is open. */
bool& showStats() { return showStats_; }
bool& showAddSrc() { return showAddSrc_; }
bool& showTrigBar() { return showTrigBar_; }
/** @brief Find source index by id (-1 if not found). */
int findSource(const std::string& id) const;
/** @brief Find signal index in source by name (-1 if not found). */
int findSignal(const Source& src, const std::string& name) const;
private:
/* ---- WS message dispatch ------------------------------------------- */
void handleJSON(const std::string& json);
void handleBinary(const uint8_t* data, size_t len);
void onSources(const std::string& json);
void onConfig(const std::string& json);
void onStats(const std::string& json);
void onTriggerState(const std::string& json);
void onZoom(const std::string& json);
void onMaxPointsUpdated(const std::string& json);
/* ---- Rendering ------------------------------------------------------ */
void renderMenuBar();
void renderToolbar();
void renderTriggerBar();
void renderSidebar();
void renderPlotGrid();
void renderStatsModal();
void renderAddSourceModal();
/* ---- State ---------------------------------------------------------- */
WSClient ws_;
std::vector<Source> sources_;
mutable std::mutex srcMutex_; /* protects sources_ */
TriggerState trigger_;
PlotLayout layout_ = PlotLayout::kLayout1x1;
uint32_t maxPoints_ = 20000u;
bool globalPaused_ = false;
/* Plot slots: one vector of assignments per plot panel */
static const int kMaxPlotSlots = 8;
std::vector<PlotAssignment> plotSlots_[kMaxPlotSlots];
bool plotPaused_[kMaxPlotSlots] = {};
bool liveFollow_[kMaxPlotSlots] = {}; /* true = live-scroll X axis */
int activeSlot_[kMaxPlotSlots]; /* which slot is "active" (-1 = none) */
double windowSec_ = 10.0; /* live scroll window width */
double plotXMin_[kMaxPlotSlots] = {}; /* stored X min for non-live mode */
double plotXMax_[kMaxPlotSlots] = {}; /* stored X max for non-live mode */
int plotVMode_[kMaxPlotSlots] = {}; /* 0=normal 1=digital 2=mixed */
/* Cursors (global) */
bool cursorsOn_ = false;
double cursorA_ = 0.0;
double cursorB_ = 0.0;
/* Frozen view per plot (valid while the plot is paused) */
PlotSnapshot plotSnap_[kMaxPlotSlots];
/* Zoom history + hi-res zoom cache */
std::vector<std::pair<double,double>> zoomHist_[kMaxPlotSlots];
PlotZoomCache zoomCache_[kMaxPlotSlots];
uint32_t nextZoomReqId_ = 1;
/* UI state */
bool showStats_ = false;
bool showAddSrc_ = false;
bool showTrigBar_ = false;
bool sidebarOpen_ = true;
/* Connection fields (populated by init(), editable in menu bar) */
char hostBuf_[64] = "127.0.0.1";
char portBuf_[8] = "8090";
/* Track connect transition to send initial queries */
bool prevConnected_ = false;
/* Last trigger capture (version=2 binary frame; render thread only) */
CaptureFrame capture_;
bool hasCapture_ = false;
};
} /* namespace StreamHubClient */
+124
View File
@@ -0,0 +1,124 @@
cmake_minimum_required(VERSION 3.16)
project(StreamHubClient CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# ── Find system packages ──────────────────────────────────────────────────────
find_package(OpenGL REQUIRED)
# SDL2: try cmake config first, fall back to pkg-config
find_package(SDL2 QUIET CONFIG)
if(NOT SDL2_FOUND)
find_package(PkgConfig REQUIRED)
pkg_check_modules(SDL2 REQUIRED sdl2)
add_library(SDL2::SDL2 INTERFACE IMPORTED)
target_include_directories(SDL2::SDL2 INTERFACE ${SDL2_INCLUDE_DIRS})
target_link_libraries(SDL2::SDL2 INTERFACE ${SDL2_LIBRARIES})
target_compile_options(SDL2::SDL2 INTERFACE ${SDL2_CFLAGS_OTHER})
endif()
# ── Fetch Dear ImGui ──────────────────────────────────────────────────────────
include(FetchContent)
FetchContent_Declare(
imgui
GIT_REPOSITORY https://github.com/ocornut/imgui.git
GIT_TAG v1.91.8
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(imgui)
# ── Fetch ImPlot ──────────────────────────────────────────────────────────────
FetchContent_Declare(
implot
GIT_REPOSITORY https://github.com/epezent/implot.git
GIT_TAG v0.17
GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(implot)
# ── Build ImGui + ImPlot as a static library ──────────────────────────────────
add_library(imgui_lib STATIC
${imgui_SOURCE_DIR}/imgui.cpp
${imgui_SOURCE_DIR}/imgui_draw.cpp
${imgui_SOURCE_DIR}/imgui_tables.cpp
${imgui_SOURCE_DIR}/imgui_widgets.cpp
${imgui_SOURCE_DIR}/backends/imgui_impl_sdl2.cpp
${imgui_SOURCE_DIR}/backends/imgui_impl_opengl3.cpp
${implot_SOURCE_DIR}/implot.cpp
${implot_SOURCE_DIR}/implot_items.cpp
)
target_include_directories(imgui_lib PUBLIC
${imgui_SOURCE_DIR}
${imgui_SOURCE_DIR}/backends
${implot_SOURCE_DIR}
)
target_link_libraries(imgui_lib PUBLIC SDL2::SDL2 OpenGL::GL)
target_compile_options(imgui_lib PRIVATE -w) # suppress warnings from vendored code
# ── Bundled resources (fonts, desktop entry, icon) ───────────────────────────
# Fonts (UI font + Font Awesome 6 Free Solid + glyph-macro header) are vendored
# in resources/fonts — no network access or system fonts required.
set(RESOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/resources)
set(FONT_DIR ${RESOURCE_DIR}/fonts)
if(EXISTS ${FONT_DIR}/fa-solid-900.ttf AND EXISTS ${FONT_DIR}/IconsFontAwesome6.h)
set(HAVE_FONT_AWESOME TRUE)
message(STATUS "Font Awesome icons enabled (${FONT_DIR})")
else()
set(HAVE_FONT_AWESOME FALSE)
message(WARNING "Bundled Font Awesome missing — using ASCII icon fallbacks")
endif()
# Mirror resources next to the built executable so dev runs find them
file(COPY ${RESOURCE_DIR}/fonts DESTINATION ${CMAKE_BINARY_DIR}/resources)
# ── Application sources ───────────────────────────────────────────────────────
set(APP_SOURCES
main.cpp
App.cpp
WSClient.cpp
Protocol.cpp
SourcePanel.cpp
PlotPanel.cpp
TriggerPanel.cpp
StatsPanel.cpp
)
add_executable(StreamHubClient ${APP_SOURCES})
target_include_directories(StreamHubClient PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
# Reuse WSFrame.h, SHA1.h, Base64.h from StreamHub without copying
${CMAKE_CURRENT_SOURCE_DIR}/../../Source/Applications/StreamHub
)
target_link_libraries(StreamHubClient PRIVATE
imgui_lib
SDL2::SDL2
OpenGL::GL
pthread
)
# Source-tree resource dir baked in as last-resort runtime fallback
target_compile_definitions(StreamHubClient PRIVATE
APP_RESOURCE_DIR="${RESOURCE_DIR}"
)
if(HAVE_FONT_AWESOME)
target_include_directories(StreamHubClient PRIVATE ${FONT_DIR})
target_compile_definitions(StreamHubClient PRIVATE HAVE_FONT_AWESOME)
endif()
target_compile_options(StreamHubClient PRIVATE
-Wall -Wextra -Wno-unused-parameter
)
# ── Install ───────────────────────────────────────────────────────────────────
install(TARGETS StreamHubClient DESTINATION bin)
install(DIRECTORY ${RESOURCE_DIR}/fonts DESTINATION share/streamhub-client)
install(FILES ${RESOURCE_DIR}/streamhub-client.desktop
DESTINATION share/applications)
install(FILES ${RESOURCE_DIR}/icons/streamhub-client.svg
DESTINATION share/icons/hicolor/scalable/apps)
+34
View File
@@ -0,0 +1,34 @@
/**
* @file Icons.h
* @brief Icon glyphs for UI labels.
*
* When Font Awesome 6 is available (downloaded by CMake and merged into the
* default font in main.cpp) the ICON_FA_* macros expand to UTF-8 glyphs.
* Otherwise they fall back to plain ASCII so no label ever renders as "?".
*/
#pragma once
#ifdef HAVE_FONT_AWESOME
#include "IconsFontAwesome6.h"
#else
#define ICON_FA_TABLE_CELLS_LARGE ""
#define ICON_FA_PAUSE "||"
#define ICON_FA_PLAY ">"
#define ICON_FA_BOLT ""
#define ICON_FA_CHART_COLUMN ""
#define ICON_FA_PLUS "+"
#define ICON_FA_CIRCLE "*"
#define ICON_FA_TRASH_CAN "x"
#define ICON_FA_TOWER_BROADCAST ""
#define ICON_FA_ARROW_ROTATE_LEFT "<"
#define ICON_FA_EXPAND "[]"
#define ICON_FA_CROSSHAIRS "+"
#define ICON_FA_WAVE_SQUARE "~"
#define ICON_FA_STOP "[]"
#define ICON_FA_CHEVRON_LEFT "<"
#define ICON_FA_CHEVRON_RIGHT ">"
#define ICON_FA_ARROW_TREND_UP "/\\"
#define ICON_FA_ARROW_TREND_DOWN "\\/"
#define ICON_FA_ARROWS_UP_DOWN "/\\\\/"
#endif
+767
View File
@@ -0,0 +1,767 @@
/**
* @file PlotPanel.cpp
* @brief ImPlot oscilloscope panel — oscilloscope-style fixed Y axis.
*
* Y axis: always [-4, +4] divisions. Normalisation per plot mode:
* normal — each signal scaled by its VScale (auto / range / manual)
* digital — each signal quantised hi/lo within its own horizontal band
* mixed — per-signal band; quantised or auto-scaled (vs.digitalInMixed)
*
* X axis: live mode follows the wall clock (hub time base is Unix seconds);
* scroll/drag switches to a stored range with zoom history (Back/Fit/Live).
* When zoomed, a hi-res window is fetched from the hub over WS (zoom cmd).
* When a trigger capture exists (and the trigger bar is open) the panel
* renders the capture relative to the trigger instant in [-pre, +post].
*/
#include "PlotPanel.h"
#include "App.h"
#include "Protocol.h"
#include "SignalBuffer.h"
#include "imgui.h"
#include "implot.h"
#include "Icons.h"
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <chrono>
#include <vector>
#include <string>
namespace StreamHubClient {
/* DnD payload */
struct DragPayload { int srcIdx; int sigIdx; };
static const int kPlotSlotsMax = 8; /* mirrors App::kMaxPlotSlots */
/* Live windows at or below this width refresh via hub hi-res zoom fetches
* instead of (in addition to) the decimated push stream. */
static const double kLiveHiResMaxWin = 2.0; /* seconds */
/* ── Helpers ─────────────────────────────────────────────────────────────── */
static const char* fmtVal(char* buf, size_t sz, double v) {
if (!std::isfinite(v)) { snprintf(buf, sz, "?"); return buf; }
double abs = std::fabs(v);
if (v == 0.0) snprintf(buf, sz, "0");
else if (abs >= 1e4 || abs < 1e-3) snprintf(buf, sz, "%.2e", v);
else snprintf(buf, sz, "%.3g", v);
return buf;
}
/** Resolve the effective divValue and offset for this assignment given raw data. */
static void resolveVScale(PlotAssignment& a, const Signal& sig,
const std::vector<double>& rawV) {
if (a.vs.mode == 1) { /* range */
double rmin = sig.meta.rangeMin, rmax = sig.meta.rangeMax;
if (rmax > rmin) {
a.vs.resolvedDiv = std::max((rmax - rmin) / 8.0, 1e-30);
a.vs.resolvedOffset = (rmin + rmax) / 2.0;
return;
}
/* fall through to auto if no valid range */
}
if (a.vs.mode == 2) { /* manual */
a.vs.resolvedDiv = std::max(a.vs.divValue, 1e-30);
a.vs.resolvedOffset = a.vs.offset;
return;
}
/* auto: fit data in central 6 of 8 divisions */
double mn = 1e300, mx = -1e300;
for (double v : rawV) { if (v < mn) mn = v; if (v > mx) mx = v; }
if (!std::isfinite(mn) || mn > mx) { mn = -1.0; mx = 1.0; }
if (mn == mx) { mn -= 1.0; mx += 1.0; }
a.vs.resolvedDiv = std::max((mx - mn) / 6.0, 1e-30);
a.vs.resolvedOffset = (mx + mn) / 2.0;
}
static double normalizeY(double raw, const VScale& vs) {
return (raw - vs.resolvedOffset) / vs.resolvedDiv + vs.screenPos;
}
/** Min/max of a vector (returns false if empty/non-finite). */
static bool dataMinMax(const std::vector<double>& v, double& mn, double& mx) {
mn = 1e300; mx = -1e300;
for (double x : v) { if (std::isfinite(x)) { if (x < mn) mn = x; if (x > mx) mx = x; } }
return mx >= mn;
}
/** Digital/mixed band normalisation (ports web applyDigitalNorm/applyMixedNorm).
* Band index ki of n; quantize=true → hi/lo threshold mode. */
static void bandNormalize(const std::vector<double>& raw, std::vector<double>& out,
int ki, int n, bool quantize) {
double bandH = 8.0 / std::max(n, 1);
double centerY = 4.0 - (ki + 0.5) * bandH;
double hi = centerY + bandH * 0.35;
double lo = centerY - bandH * 0.35;
double mn, mx;
bool haveMM = dataMinMax(raw, mn, mx);
out.resize(raw.size());
if (quantize) {
double thr = haveMM ? (mn + mx) / 2.0 : 0.5;
for (size_t i = 0; i < raw.size(); i++) {
double v = raw[i];
out[i] = !std::isfinite(v) ? NAN : (v >= thr ? hi : lo);
}
} else {
if (!haveMM) { mn = 0.0; mx = 1.0; }
if (mn == mx) { mn -= 1.0; mx += 1.0; }
double range = mx - mn, bandRange = hi - lo;
for (size_t i = 0; i < raw.size(); i++) {
double v = raw[i];
out[i] = !std::isfinite(v) ? NAN : lo + (v - mn) / range * bandRange;
}
}
}
/** Nearest sample value at time x (t sorted ascending). Returns NAN if empty. */
static double sampleAt(const std::vector<double>& t, const std::vector<double>& v,
double x) {
if (t.empty() || v.size() != t.size()) { return NAN; }
auto it = std::lower_bound(t.begin(), t.end(), x);
size_t i = static_cast<size_t>(it - t.begin());
if (i >= t.size()) { i = t.size() - 1; }
else if (i > 0 && (x - t[i-1]) < (t[i] - x)) { i--; }
return v[i];
}
/* ── Main render ─────────────────────────────────────────────────────────── */
void RenderPlotPanel(App& app, int plotIdx, bool& paused) {
auto& slots = app.plotSlot(plotIdx);
auto& sources = app.sources();
bool& live = app.liveFollow(plotIdx);
int& actSlot = app.activeSlot(plotIdx);
int& vMode = app.plotVMode(plotIdx);
ImGui::PushID(plotIdx);
/* Hub timestamps are Unix wall-clock seconds: live window follows the
* local wall clock, not the newest data timestamp. */
const double wallNow = std::chrono::duration<double>(
std::chrono::system_clock::now().time_since_epoch()).count();
/* Trigger view: render the hub capture relative to the trigger instant */
const CaptureFrame* cap = app.capture();
const bool trigView = (cap != nullptr) && app.showTrigBar();
/* Hi-res zoom cache for this plot */
auto& zc = app.zoomCache(plotIdx);
/* ── Paused view snapshot (double buffer: active ring / frozen view) ── *
* The rings keep filling while paused; on the pause edge we freeze a
* copy of each slot's data and render from it until resumed. */
auto& snap = app.plotSnap(plotIdx);
if (paused) {
if (!snap.valid) {
snap.keys.clear(); snap.t.clear(); snap.v.clear();
for (const auto& a : slots) {
std::vector<double> tt, vv;
if (a.sourceIdx >= 0 && a.sourceIdx < (int)sources.size()) {
(void) sources[a.sourceIdx].signals[a.signalIdx]
.buf.readLast((size_t)app.maxPoints(), tt, vv);
}
snap.keys.push_back(app.slotKey(a));
snap.t.push_back(std::move(tt));
snap.v.push_back(std::move(vv));
}
snap.valid = true;
/* Freeze the X axis where it is and switch to zoom/pan mode */
if (live) {
app.initPlotX(plotIdx, wallNow);
live = false;
}
}
} else if (snap.valid) {
snap.valid = false;
}
/* ── Collect raw data & resolve vscale ──────────────────────────────── */
/* per-slot storage so normalisation pass can reference them */
static thread_local std::vector<std::vector<double>> tStore, vStore;
tStore.resize(slots.size());
vStore.resize(slots.size());
/* Live hi-res refresh: with a narrow live window the client ring (built
* from decimated pushes) undersamples the visible range. Periodically
* fetch a fresh ~2400-pt slice from the hub raw ring and anchor the X
* axis to the fetched slice (scope-style refresh at the fetch rate). */
const bool liveHiRes = !trigView && live && !paused &&
app.windowSec() <= kLiveHiResMaxWin &&
zc.valid &&
(zc.t1 - zc.t0) >= app.windowSec() * 0.9 &&
(wallNow - zc.t1) < 3.0;
const bool useZoomData = !trigView && zc.valid &&
(liveHiRes ||
(!live &&
zc.t0 <= app.plotXMin(plotIdx) + 1e-9 &&
zc.t1 >= app.plotXMax(plotIdx) - 1e-9));
/* Fill tStore/vStore[si] from the frozen view (paused) or the live ring */
auto readBase = [&](size_t si, const Signal& sig, const std::string& key) {
if (paused && snap.valid) {
for (size_t k = 0; k < snap.keys.size(); k++) {
if (snap.keys[k] == key) {
tStore[si] = snap.t[k];
vStore[si] = snap.v[k];
return;
}
}
}
(void) sig.buf.readLast((size_t)app.maxPoints(), tStore[si], vStore[si]);
};
for (size_t si = 0; si < slots.size(); si++) {
auto& a = slots[si];
tStore[si].clear(); vStore[si].clear();
if (a.sourceIdx < 0 || a.sourceIdx >= (int)sources.size()) continue;
const auto& sig = sources[a.sourceIdx].signals[a.signalIdx];
const std::string key = app.slotKey(a);
if (trigView) {
/* Capture signals carry full keys "src:sig"; t relative to trigTime */
for (const auto& cs : cap->signals) {
if (cs.key != key) continue;
size_t n = std::min(cs.t.size(), cs.v.size());
tStore[si].reserve(n); vStore[si].reserve(n);
for (size_t i = 0; i < n; i++) {
tStore[si].push_back(cs.t[i] - cap->trigTime);
vStore[si].push_back(cs.v[i]);
}
break;
}
} else if (useZoomData) {
bool found = false;
for (const auto& zs : zc.signals) {
if (zs.name != key) continue;
tStore[si] = zs.t;
vStore[si] = zs.v;
found = true;
break;
}
if (!found) {
readBase(si, sig, key);
}
} else {
readBase(si, sig, key);
}
resolveVScale(a, sig, vStore[si]);
}
/* clamp active slot */
if (actSlot >= (int)slots.size()) actSlot = -1;
/* ── Badge row ──────────────────────────────────────────────────────── */
/* Catppuccin accent for active badge border */
static const ImVec4 kAccent{0.537f,0.706f,0.980f,1.f};
for (int i = (int)slots.size()-1; i >= 0; i--) {
auto& a = slots[i];
if (a.sourceIdx < 0 || a.sourceIdx >= (int)sources.size()) continue;
auto& sig = sources[a.sourceIdx].signals[a.signalIdx];
bool isActive = (actSlot == i);
/* colored badge */
ImGui::PushStyleColor(ImGuiCol_Button,
isActive ? kAccent : sig.color);
ImGui::PushStyleColor(ImGuiCol_ButtonHovered,
isActive ? kAccent : ImVec4(sig.color.x*1.15f,sig.color.y*1.15f,
sig.color.z*1.15f,sig.color.w));
ImGui::PushStyleColor(ImGuiCol_Text,
ImVec4(0.067f,0.067f,0.106f,1.f));
char badge[80];
/* show vscale info: resolved div value */
char dvbuf[16];
fmtVal(dvbuf, sizeof(dvbuf), a.vs.resolvedDiv);
snprintf(badge, sizeof(badge), "%s %s/div##b%d",
sig.meta.name.c_str(), dvbuf, i);
if (ImGui::SmallButton(badge)) {
actSlot = (actSlot == i) ? -1 : i; /* toggle active */
}
ImGui::PopStyleColor(3);
/* right-click: styling + remove */
char popId[24]; snprintf(popId, sizeof(popId), "##bp%d_%d", plotIdx, i);
if (ImGui::BeginPopupContextItem(popId)) {
ImGui::TextUnformatted(sig.meta.name.c_str());
ImGui::Separator();
float col[4] = {sig.color.x, sig.color.y, sig.color.z, sig.color.w};
if (ImGui::ColorEdit4("Color##sc", col,
ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoAlpha)) {
sig.color = ImVec4(col[0], col[1], col[2], col[3]);
}
ImGui::SetNextItemWidth(120.f);
ImGui::SliderFloat("Width##sw", &sig.lineWidth, 0.5f, 5.f, "%.1f");
static const char* kMarkerNames[] =
{"None", "Circle", "Square", "Diamond", "Up", "Down",
"Left", "Right", "Cross", "Plus", "Asterisk"};
int mk = sig.marker + 1; /* -1 (none) → 0 */
ImGui::SetNextItemWidth(120.f);
if (ImGui::Combo("Marker##sm", &mk, kMarkerNames, 11)) {
sig.marker = mk - 1;
}
if (vMode == 2) { /* mixed mode: per-trace digital toggle */
ImGui::Checkbox("Digital (mixed)##sd", &a.vs.digitalInMixed);
}
ImGui::Separator();
bool shouldBreak = false;
if (ImGui::MenuItem("Remove from plot")) {
if (actSlot == i) actSlot = -1;
else if (actSlot > i) actSlot--;
slots.erase(slots.begin() + i);
shouldBreak = true;
}
ImGui::EndPopup();
if (shouldBreak) { ImGui::SameLine(); break; }
}
ImGui::SameLine();
}
/* live button (pause & cursors live in the global toolbar) */
{
static const ImVec4 kLiveOn {0.086f,0.494f,0.267f,1.f};
static const ImVec4 kLiveOnH{0.114f,0.627f,0.341f,1.f};
static const ImVec4 kLiveOff{0.192f,0.196f,0.267f,1.f};
static const ImVec4 kLiveOffH{0.271f,0.278f,0.353f,1.f};
ImGui::PushStyleColor(ImGuiCol_Button,
live ? kLiveOn : kLiveOff);
ImGui::PushStyleColor(ImGuiCol_ButtonHovered,
live ? kLiveOnH : kLiveOffH);
if (ImGui::SmallButton(ICON_FA_TOWER_BROADCAST " Live")) {
live = true;
paused = false;
app.zoomHist(plotIdx).clear();
zc.valid = false;
}
ImGui::PopStyleColor(2);
}
/* Back / Fit (zoom history) — only meaningful when not live */
if (!live && !trigView) {
ImGui::SameLine();
auto& hist = app.zoomHist(plotIdx);
if (hist.empty()) { ImGui::BeginDisabled(); }
if (ImGui::SmallButton(ICON_FA_ARROW_ROTATE_LEFT " Back##zb")) {
app.setPlotX(plotIdx, hist.back().first, hist.back().second);
hist.pop_back();
}
if (hist.empty()) { ImGui::EndDisabled(); }
ImGui::SameLine();
if (ImGui::SmallButton(ICON_FA_EXPAND " Fit##zf")) {
double mn = 1e300, mx = -1e300;
for (size_t si = 0; si < slots.size(); si++) {
if (tStore[si].empty()) continue;
mn = std::min(mn, tStore[si].front());
mx = std::max(mx, tStore[si].back());
}
if (mx > mn) {
app.pushZoomHist(plotIdx);
app.setPlotX(plotIdx, mn, mx);
}
}
}
/* Norm mode + cursors toggles */
ImGui::SameLine();
{
static const char* kVModes[] = {"Norm", "Dig", "Mix"};
ImGui::SetNextItemWidth(58.f);
char vmId[16]; snprintf(vmId, sizeof(vmId), "##vm%d", plotIdx);
ImGui::Combo(vmId, &vMode, kVModes, 3);
}
/* ── VScale toolbar (shown when an active signal is selected) ───────── */
if (vMode == 0 && actSlot >= 0 && actSlot < (int)slots.size()) {
auto& a = slots[actSlot];
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4.f,2.f));
/* mode buttons */
static const char* kModeLabels[] = {"Auto","Range","Manual"};
for (int m = 0; m < 3; m++) {
bool sel = (a.vs.mode == m);
if (sel) {
ImGui::PushStyleColor(ImGuiCol_Button,
ImVec4(0.537f,0.706f,0.980f,0.3f));
ImGui::PushStyleColor(ImGuiCol_Text,
ImVec4(0.537f,0.706f,0.980f,1.f));
}
if (ImGui::SmallButton(kModeLabels[m])) { a.vs.mode = m; }
if (sel) ImGui::PopStyleColor(2);
if (m < 2) ImGui::SameLine(0.f,2.f);
}
ImGui::SameLine(0.f,10.f);
/* resolved info */
char rbuf[24], obuf[24];
fmtVal(rbuf, sizeof(rbuf), a.vs.resolvedDiv);
fmtVal(obuf, sizeof(obuf), a.vs.resolvedOffset);
if (a.vs.mode == 2) { /* manual: editable */
ImGui::SetNextItemWidth(70.f);
ImGui::InputDouble("V/div##vd", &a.vs.divValue, 0,0,"%.4g");
ImGui::SameLine(0.f,4.f);
ImGui::SetNextItemWidth(80.f);
ImGui::InputDouble("Offset##vo", &a.vs.offset, 0,0,"%.4g");
} else {
ImGui::TextDisabled("%s/div @%s", rbuf, obuf);
}
ImGui::SameLine(0.f,10.f);
ImGui::SetNextItemWidth(50.f);
float sp = (float)a.vs.screenPos;
if (ImGui::InputFloat("Pos(div)##vp", &sp, 0,0,"%.1f")) {
a.vs.screenPos = sp;
}
ImGui::PopStyleVar();
}
/* ── Cursor readouts ─────────────────────────────────────────────────── */
if (app.cursorsOn()) {
double cA = app.cursorA(), cB = app.cursorB();
double dT = cB - cA;
char d1[24], d2[24];
fmtVal(d1, sizeof(d1), dT);
fmtVal(d2, sizeof(d2), (dT != 0.0) ? 1.0 / std::fabs(dT) : 0.0);
ImGui::TextColored(ImVec4(0.980f,0.702f,0.529f,1.f),
"dT=%ss 1/dT=%sHz", d1, d2);
for (size_t si = 0; si < slots.size(); si++) {
auto& a = slots[si];
if (a.sourceIdx < 0 || a.sourceIdx >= (int)sources.size()) continue;
if (tStore[si].empty()) continue;
const auto& sig = sources[a.sourceIdx].signals[a.signalIdx];
double vA = sampleAt(tStore[si], vStore[si], cA);
double vB = sampleAt(tStore[si], vStore[si], cB);
char a1[24], a2[24], a3[24];
fmtVal(a1, sizeof(a1), vA);
fmtVal(a2, sizeof(a2), vB);
fmtVal(a3, sizeof(a3), vB - vA);
ImGui::SameLine(0.f, 14.f);
ImGui::TextColored(sig.color, "%s: A=%s B=%s d=%s",
sig.meta.name.c_str(), a1, a2, a3);
}
}
ImGui::Separator();
/* ── ImPlot ──────────────────────────────────────────────────────────── */
char plotId[32]; snprintf(plotId, sizeof(plotId), "##plot%d", plotIdx);
/* Both axes are fully controlled by us — disable ImPlot's native zoom. */
ImPlotFlags plotFlags = ImPlotFlags_NoTitle | ImPlotFlags_NoLegend
| ImPlotFlags_NoInputs;
if (ImPlot::BeginPlot(plotId, ImVec2(-1.f,-1.f), plotFlags)) {
/* Both axes locked so ImPlot never overrides our explicit limits. */
ImPlot::SetupAxes(trigView ? "t - trig (s)" : "Time (s)", nullptr,
ImPlotAxisFlags_Lock,
ImPlotAxisFlags_Lock);
/* Y axis always ±4 div space */
ImPlot::SetupAxisLimits(ImAxis_Y1, -4.05, 4.05, ImGuiCond_Always);
/* X axis: trig view → capture window; live → wall clock; else stored */
double xMin, xMax;
if (trigView) {
xMin = -cap->preSec; xMax = cap->postSec;
} else if (live && !paused) {
if (liveHiRes) {
/* Anchor to the latest fetched hi-res slice so the trace
* fills the window (refreshes at the fetch rate). */
xMax = zc.t1; xMin = zc.t1 - app.windowSec();
} else {
xMax = wallNow; xMin = wallNow - app.windowSec();
}
} else {
xMin = app.plotXMin(plotIdx); xMax = app.plotXMax(plotIdx);
}
if (trigView || (live && !paused) || !live) {
if (xMax > xMin) {
ImPlot::SetupAxisLimits(ImAxis_X1, xMin, xMax, ImGuiCond_Always);
}
}
/* ── Y axis ticks labelled from active signal (normal mode only) ── */
static double yTickVals[9] = {-4,-3,-2,-1,0,1,2,3,4};
static char yTickBufs[9][20];
static const char* yTickLabels[9];
if (vMode == 0 && actSlot >= 0 && actSlot < (int)slots.size()) {
const auto& av = slots[actSlot].vs;
for (int d = 0; d < 9; d++) {
double divPos = yTickVals[d];
double rawVal = av.resolvedOffset + (divPos - av.screenPos) * av.resolvedDiv;
fmtVal(yTickBufs[d], sizeof(yTickBufs[d]), rawVal);
yTickLabels[d] = yTickBufs[d];
}
} else {
for (int d = 0; d < 9; d++) {
snprintf(yTickBufs[d], sizeof(yTickBufs[d]), "%.0f", yTickVals[d]);
yTickLabels[d] = yTickBufs[d];
}
}
ImPlot::SetupAxisTicks(ImAxis_Y1, yTickVals, 9, yTickLabels, false);
/* ── X axis ticks ───────────────────────────────────────────────── */
if (xMax > xMin) {
double step = (xMax - xMin) / 10.0;
double tickX[11];
for (int t = 0; t <= 10; t++) tickX[t] = xMin + t * step;
ImPlot::SetupAxisTicks(ImAxis_X1, tickX, 11, nullptr, false);
}
ImPlot::SetupFinish();
/* ── Custom oscilloscope input handling (after SetupFinish) ─────── *
*
* Scroll → Y zoom : active signal V/div × factor
* Ctrl + Scroll → X zoom : windowSec_ (live) or stored X range (non-live)
* Shift + Scroll → Y pan : active signal screenPos shift
* Right-drag → X pan : (non-live) translate stored X range
*
* Right-drag while live → transitions to non-live mode first. */
/* With ImPlotFlags_NoInputs ImPlot never updates plot.Hovered, so
* IsPlotHovered()/IsAxisHovered() always return false — test the
* plot rectangle against the mouse ourselves. */
const ImVec2 ppos = ImPlot::GetPlotPos();
const ImVec2 psz = ImPlot::GetPlotSize();
bool overPlot = ImGui::IsWindowHovered(
ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) &&
ImGui::IsMouseHoveringRect(
ppos, ImVec2(ppos.x + psz.x, ppos.y + psz.y));
/* Zoom-history debounce: coalesce rapid scroll steps into one entry */
static double lastHistPush[kPlotSlotsMax] = {};
if (overPlot && !trigView) {
ImGuiIO& io2 = ImGui::GetIO();
const float wheel = io2.MouseWheel;
const bool ctrl = io2.KeyCtrl;
const bool shift = io2.KeyShift;
const double now = ImGui::GetTime();
if (wheel != 0.f) {
/* Zoom factor: scroll up = zoom in (×0.8), down = zoom out (×1.25) */
const double zoomIn = 0.8;
const double zoomOut = 1.25;
double factor = (wheel > 0.f) ? zoomIn : zoomOut;
if (ctrl) {
/* ── X zoom ─────────────────────────────────────────── */
if (live) {
app.setWindowSec(app.windowSec() * factor);
} else {
if (now - lastHistPush[plotIdx] > 0.6) {
app.pushZoomHist(plotIdx);
lastHistPush[plotIdx] = now;
}
double cx = (app.plotXMin(plotIdx) + app.plotXMax(plotIdx)) * 0.5;
double half = (app.plotXMax(plotIdx) - app.plotXMin(plotIdx)) * 0.5 * factor;
app.setPlotX(plotIdx, cx - half, cx + half);
}
} else if (shift) {
/* ── Y offset of active signal ───────────────────────── */
if (actSlot >= 0 && actSlot < (int)slots.size()) {
auto& a = slots[actSlot];
/* Switch to manual so position is retained */
if (a.vs.mode != 2) {
a.vs.divValue = std::max(a.vs.resolvedDiv, 1e-30);
a.vs.offset = a.vs.resolvedOffset;
a.vs.mode = 2;
}
/* Each scroll step moves by 0.5 screen divisions */
a.vs.screenPos += (wheel > 0.f) ? 0.5 : -0.5;
}
} else {
/* ── Y zoom of active signal ─────────────────────────── */
if (actSlot >= 0 && actSlot < (int)slots.size()) {
auto& a = slots[actSlot];
if (a.vs.mode != 2) {
a.vs.divValue = std::max(a.vs.resolvedDiv, 1e-30);
a.vs.offset = a.vs.resolvedOffset;
a.vs.mode = 2;
}
a.vs.divValue = std::max(a.vs.divValue * factor, 1e-30);
} else {
/* No active signal: plain scroll falls back to X zoom
* so the wheel always does something useful. */
if (live) {
app.setWindowSec(app.windowSec() * factor);
} else {
if (now - lastHistPush[plotIdx] > 0.6) {
app.pushZoomHist(plotIdx);
lastHistPush[plotIdx] = now;
}
double cx = (app.plotXMin(plotIdx) + app.plotXMax(plotIdx)) * 0.5;
double half = (app.plotXMax(plotIdx) - app.plotXMin(plotIdx)) * 0.5 * factor;
app.setPlotX(plotIdx, cx - half, cx + half);
}
}
}
}
/* Right-drag → X pan (non-live). Transition live→non-live on drag start. */
if (ImGui::IsMouseDragging(ImGuiMouseButton_Right)) {
if (live) {
/* Seed stored range from current live window */
app.initPlotX(plotIdx, wallNow);
live = false;
lastHistPush[plotIdx] = now;
}
ImVec2 delta = ImGui::GetMouseDragDelta(ImGuiMouseButton_Right, 0.f);
ImGui::ResetMouseDragDelta(ImGuiMouseButton_Right);
ImVec2 pxSize = ImPlot::GetPlotSize();
if (pxSize.x > 0.f) {
double xRange = app.plotXMax(plotIdx) - app.plotXMin(plotIdx);
double dt = -(double)delta.x / (double)pxSize.x * xRange;
app.setPlotX(plotIdx,
app.plotXMin(plotIdx) + dt,
app.plotXMax(plotIdx) + dt);
}
}
}
/* ── Hi-res WS zoom requests ────────────────────────────────────── */
if (!trigView) {
std::string csv;
for (const auto& a : slots) {
std::string k = app.slotKey(a);
if (k.empty()) continue;
if (!csv.empty()) csv += ",";
csv += k;
}
if (live && !paused && app.windowSec() <= kLiveHiResMaxWin) {
/* Live, zoomed in: continuously refresh the window with a
* fresh hi-res slice from the hub raw ring (throttled). */
static double lastLiveReq[kPlotSlotsMax] = {};
const double now = ImGui::GetTime();
if (!csv.empty() && !zc.pending &&
now - lastLiveReq[plotIdx] > 0.25) {
app.requestZoom(plotIdx, wallNow - app.windowSec(),
wallNow, csv);
lastLiveReq[plotIdx] = now;
}
} else if (!live) {
/* Non-live: debounced — every zoom/pan settles into one
* request, so each zoom level gets fresh resolution. */
static double rangeChangedAt[kPlotSlotsMax] = {};
static double lastT0[kPlotSlotsMax] = {}, lastT1[kPlotSlotsMax] = {};
const double now = ImGui::GetTime();
double t0 = app.plotXMin(plotIdx), t1 = app.plotXMax(plotIdx);
if (t0 != lastT0[plotIdx] || t1 != lastT1[plotIdx]) {
lastT0[plotIdx] = t0;
lastT1[plotIdx] = t1;
rangeChangedAt[plotIdx] = now;
} else if (rangeChangedAt[plotIdx] > 0.0 &&
now - rangeChangedAt[plotIdx] > 0.35 &&
!zc.pending &&
!(zc.valid && zc.t0 == t0 && zc.t1 == t1)) {
if (!csv.empty()) { app.requestZoom(plotIdx, t0, t1, csv); }
rangeChangedAt[plotIdx] = 0.0;
}
}
}
/* ── Plot each signal ──────────────────────────────────────────── */
static const size_t kMaxPush = 2400;
static thread_local std::vector<double> tDec, vDec, vNorm;
int nTraces = 0;
for (const auto& a : slots) {
if (a.sourceIdx >= 0 && a.sourceIdx < (int)sources.size()) nTraces++;
}
int ki = 0;
for (size_t si = 0; si < slots.size(); si++) {
auto& a = slots[si];
if (a.sourceIdx < 0 || a.sourceIdx >= (int)sources.size()) continue;
const auto& sig = sources[a.sourceIdx].signals[a.signalIdx];
int myKi = ki++;
if (tStore[si].empty()) continue;
size_t nOut = LTTBDecimate(tStore[si], vStore[si], tDec, vDec, kMaxPush);
if (nOut == 0) continue;
/* normalise to ±4 div space */
if (vMode == 1) { /* digital */
bandNormalize(vDec, vNorm, myKi, nTraces, true);
} else if (vMode == 2) { /* mixed */
bandNormalize(vDec, vNorm, myKi, nTraces, a.vs.digitalInMixed);
} else {
vNorm.resize(nOut);
for (size_t k = 0; k < nOut; k++) {
vNorm[k] = normalizeY(vDec[k], a.vs);
}
}
ImPlot::SetNextLineStyle(sig.color, sig.lineWidth);
if (sig.marker >= 0) {
ImPlot::SetNextMarkerStyle(sig.marker, 3.f, sig.color);
}
ImPlot::PlotLine(sig.meta.name.c_str(),
tDec.data(), vNorm.data(), (int)nOut);
}
/* Trigger instant marker (capture view: t = 0) */
if (trigView) {
double t0m = 0.0;
ImPlot::DragLineX(900, &t0m, ImVec4(1.f,1.f,0.f,0.8f),
1.5f, ImPlotDragToolFlags_NoInputs);
}
/* Cursors A/B — global: same position on every plot, drag anywhere */
if (app.cursorsOn()) {
static const ImVec4 kCursA{0.980f,0.702f,0.529f,0.9f};
static const ImVec4 kCursB{0.796f,0.651f,0.969f,0.9f};
ImPlot::DragLineX(910, &app.cursorA(), kCursA, 1.2f);
ImPlot::DragLineX(911, &app.cursorB(), kCursB, 1.2f);
ImPlot::TagX(app.cursorA(), kCursA, "A");
ImPlot::TagX(app.cursorB(), kCursB, "B");
}
/* Drag-and-drop target */
if (ImPlot::BeginDragDropTargetPlot()) {
if (const ImGuiPayload* pl =
ImGui::AcceptDragDropPayload("SIGNAL_REF")) {
DragPayload dp;
memcpy(&dp, pl->Data, sizeof(dp));
bool found = false;
for (const auto& a : slots) {
if (a.sourceIdx == dp.srcIdx && a.signalIdx == dp.sigIdx) {
found = true; break;
}
}
if (!found) {
PlotAssignment pa;
pa.sourceIdx = dp.srcIdx;
pa.signalIdx = dp.sigIdx;
slots.push_back(pa);
}
}
ImPlot::EndDragDropTarget();
}
ImPlot::EndPlot();
}
ImGui::PopID();
}
} /* namespace StreamHubClient */
+19
View File
@@ -0,0 +1,19 @@
/**
* @file PlotPanel.h
* @brief ImPlot-based oscilloscope plot panel.
*/
#pragma once
namespace StreamHubClient {
class App;
/**
* @brief Render one oscilloscope plot panel.
* @param app Application state.
* @param plotIdx Which slot in app.plotSlots() to render.
* @param paused Whether data updates are paused for this plot.
*/
void RenderPlotPanel(App& app, int plotIdx, bool& paused);
} /* namespace StreamHubClient */
+533
View File
@@ -0,0 +1,533 @@
/**
* @file Protocol.cpp
* @brief StreamHub wire protocol implementation.
*/
#include "Protocol.h"
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <sstream>
namespace StreamHubClient {
/*---------------------------------------------------------------------------*/
/* Binary frame parser */
/*---------------------------------------------------------------------------*/
/* Read a uint32 LE from buf+offset; advance offset by 4. */
static uint32_t readU32(const uint8_t* buf, size_t& off, size_t len) {
if (off + 4 > len) { return 0u; }
uint32_t v = static_cast<uint32_t>(buf[off])
| (static_cast<uint32_t>(buf[off+1]) << 8)
| (static_cast<uint32_t>(buf[off+2]) << 16)
| (static_cast<uint32_t>(buf[off+3]) << 24);
off += 4;
return v;
}
/* Read a uint16 LE from buf+offset; advance offset by 2. */
static uint16_t readU16(const uint8_t* buf, size_t& off, size_t len) {
if (off + 2 > len) { return 0u; }
uint16_t v = static_cast<uint16_t>(buf[off])
| (static_cast<uint16_t>(buf[off+1]) << 8);
off += 2;
return v;
}
/* Read a float64 LE from buf+offset; advance offset by 8. */
static double readF64(const uint8_t* buf, size_t& off, size_t len) {
if (off + 8 > len) { return 0.0; }
double v;
memcpy(&v, buf + off, 8);
off += 8;
return v;
}
bool ParseBinaryFrame(const uint8_t* buf, size_t len, DataFrame& out) {
out.sourceId.clear();
out.signals.clear();
size_t off = 0;
if (off >= len) { return false; }
uint8_t version = buf[off++];
if (version != 1u) { return false; }
if (off >= len) { return false; }
uint8_t idLen = buf[off++];
if (off + idLen + 4 > len) { return false; }
out.sourceId.assign(reinterpret_cast<const char*>(buf + off), idLen);
off += idLen;
uint32_t numSignals = readU32(buf, off, len);
for (uint32_t s = 0; s < numSignals; s++) {
uint16_t keyLen = readU16(buf, off, len);
if (off + keyLen + 4 > len) { return false; }
FrameSignal sig;
sig.name.assign(reinterpret_cast<const char*>(buf + off), keyLen);
off += keyLen;
uint32_t pairCount = readU32(buf, off, len);
if (off + static_cast<size_t>(pairCount) * 16u > len) { return false; }
sig.t.resize(pairCount);
sig.v.resize(pairCount);
for (uint32_t i = 0; i < pairCount; i++) {
sig.t[i] = readF64(buf, off, len);
}
for (uint32_t i = 0; i < pairCount; i++) {
sig.v[i] = readF64(buf, off, len);
}
out.signals.push_back(std::move(sig));
}
return true;
}
bool ParseCaptureFrame(const uint8_t* buf, size_t len, CaptureFrame& out) {
out.signals.clear();
size_t off = 0;
if (off >= len) { return false; }
uint8_t version = buf[off++];
if (version != 2u) { return false; }
if (off + 8u * 3u + 4u > len) { return false; }
out.trigTime = readF64(buf, off, len);
out.preSec = readF64(buf, off, len);
out.postSec = readF64(buf, off, len);
uint32_t numSignals = readU32(buf, off, len);
for (uint32_t s = 0; s < numSignals; s++) {
uint16_t keyLen = readU16(buf, off, len);
if (off + keyLen + 4 > len) { return false; }
CaptureSignal sig;
sig.key.assign(reinterpret_cast<const char*>(buf + off), keyLen);
off += keyLen;
uint32_t pairCount = readU32(buf, off, len);
if (off + static_cast<size_t>(pairCount) * 16u > len) { return false; }
sig.t.resize(pairCount);
sig.v.resize(pairCount);
for (uint32_t i = 0; i < pairCount; i++) {
sig.t[i] = readF64(buf, off, len);
}
for (uint32_t i = 0; i < pairCount; i++) {
sig.v[i] = readF64(buf, off, len);
}
out.signals.push_back(std::move(sig));
}
return true;
}
/*---------------------------------------------------------------------------*/
/* JSON helpers */
/*---------------------------------------------------------------------------*/
static bool jsonGetStr(const char* json, const char* key, char* out, size_t outSz) {
char pat[128];
snprintf(pat, sizeof(pat), "\"%s\":\"", key);
const char* p = strstr(json, pat);
if (!p) { return false; }
p += strlen(pat);
size_t i = 0;
while (*p && *p != '"' && i < outSz - 1) { out[i++] = *p++; }
out[i] = '\0';
return true;
}
static bool jsonGetDouble(const char* json, const char* key, double& out) {
char pat[128];
snprintf(pat, sizeof(pat), "\"%s\":", key);
const char* p = strstr(json, pat);
if (!p) { return false; }
p += strlen(pat);
while (*p == ' ') { p++; }
if (!*p) { return false; }
out = strtod(p, nullptr);
return true;
}
static bool jsonGetUint64(const char* json, const char* key, uint64_t& out) {
double v = 0.0;
if (!jsonGetDouble(json, key, v)) { return false; }
out = static_cast<uint64_t>(v);
return true;
}
static bool jsonGetInt(const char* json, const char* key, int& out) {
double v = 0.0;
if (!jsonGetDouble(json, key, v)) { return false; }
out = static_cast<int>(v);
return true;
}
/*---------------------------------------------------------------------------*/
/* JSON command builders */
/*---------------------------------------------------------------------------*/
std::string BuildPing() { return "{\"type\":\"ping\"}"; }
std::string BuildGetSources() { return "{\"type\":\"getSources\"}"; }
std::string BuildGetStats() { return "{\"type\":\"getStats\"}"; }
std::string BuildGetConfig(const std::string& sourceId) {
char buf[256];
snprintf(buf, sizeof(buf), "{\"type\":\"getConfig\",\"sourceId\":\"%s\"}",
sourceId.c_str());
return buf;
}
std::string BuildAddSource(const std::string& label, const std::string& addr,
const std::string& multicastGroup, uint16_t dataPort) {
char buf[512];
int n = snprintf(buf, sizeof(buf),
"{\"type\":\"addSource\",\"label\":\"%s\",\"addr\":\"%s\"",
label.c_str(), addr.c_str());
if (!multicastGroup.empty() && n > 0 && n < (int)sizeof(buf)) {
n += snprintf(buf + n, sizeof(buf) - n,
",\"multicastGroup\":\"%s\"", multicastGroup.c_str());
}
if (dataPort != 0 && n > 0 && n < (int)sizeof(buf)) {
n += snprintf(buf + n, sizeof(buf) - n,
",\"dataPort\":%u", static_cast<unsigned>(dataPort));
}
if (n > 0 && n < (int)sizeof(buf)) {
snprintf(buf + n, sizeof(buf) - n, "}");
}
return buf;
}
std::string BuildRemoveSource(const std::string& id) {
char buf[256];
snprintf(buf, sizeof(buf), "{\"type\":\"removeSource\",\"id\":\"%s\"}",
id.c_str());
return buf;
}
std::string BuildArm() { return "{\"type\":\"arm\"}"; }
std::string BuildDisarm() { return "{\"type\":\"disarm\"}"; }
std::string BuildRearm() { return "{\"type\":\"rearm\"}"; }
std::string BuildTrigStop(bool stopped) {
char buf[64];
snprintf(buf, sizeof(buf), "{\"type\":\"trigStop\",\"stopped\":%s}",
stopped ? "true" : "false");
return buf;
}
std::string BuildSaveSources() { return "{\"type\":\"saveSources\"}"; }
std::string BuildSetTrigger(const std::string& signalKey, const std::string& edge,
double threshold, double windowSec,
double prePercent, const std::string& mode) {
char buf[512];
snprintf(buf, sizeof(buf),
"{\"type\":\"setTrigger\","
"\"signal\":\"%s\",\"edge\":\"%s\","
"\"threshold\":%.9g,\"windowSec\":%.9g,"
"\"prePercent\":%.9g,\"mode\":\"%s\"}",
signalKey.c_str(), edge.c_str(),
threshold, windowSec, prePercent, mode.c_str());
return buf;
}
std::string BuildZoom(uint32_t reqId, double t0, double t1, int n,
const std::string& signalsCsv) {
char head[256];
snprintf(head, sizeof(head),
"{\"type\":\"zoom\",\"reqId\":%u,"
"\"t0\":%.17g,\"t1\":%.17g,\"n\":%d,\"signals\":\"",
static_cast<unsigned>(reqId), t0, t1, n);
std::string out(head);
out += signalsCsv;
out += "\"}";
return out;
}
std::string BuildSetMaxPoints(uint32_t n) {
char buf[128];
snprintf(buf, sizeof(buf), "{\"type\":\"setMaxPoints\",\"maxPoints\":%u}",
static_cast<unsigned>(n));
return buf;
}
/*---------------------------------------------------------------------------*/
/* JSON event parsers */
/*---------------------------------------------------------------------------*/
std::string ParseType(const std::string& json) {
char val[64] = "";
jsonGetStr(json.c_str(), "type", val, sizeof(val));
return val;
}
/* ---- Sources ------------------------------------------------------------ */
bool ParseSources(const std::string& json, std::vector<SourceInfo>& out) {
out.clear();
/* Iterate over source objects in the array */
const char* p = json.c_str();
while ((p = strstr(p, "\"id\":\"")) != nullptr) {
SourceInfo info;
char tmp[256] = "";
jsonGetStr(p - 1, "id", tmp, sizeof(tmp)); info.id = tmp;
jsonGetStr(p - 1, "label", tmp, sizeof(tmp)); info.label = tmp;
jsonGetStr(p - 1, "addr", tmp, sizeof(tmp)); info.addr = tmp;
jsonGetStr(p - 1, "state", tmp, sizeof(tmp)); info.state = tmp;
double portF = 0.0;
jsonGetDouble(p - 1, "port", portF);
info.port = static_cast<uint32_t>(portF);
out.push_back(info);
p++; /* advance past current match */
}
return !out.empty();
}
/* ---- Config ------------------------------------------------------------ */
bool ParseConfig(const std::string& json, std::string& sourceId,
int& publishMode, std::vector<SignalMeta>& signals) {
signals.clear();
char tmp[256] = "";
jsonGetStr(json.c_str(), "sourceId", tmp, sizeof(tmp));
sourceId = tmp;
double pm = 0.0;
jsonGetDouble(json.c_str(), "publishMode", pm);
publishMode = static_cast<int>(pm);
/* Iterate over signal objects in the "signals" array */
const char* p = json.c_str();
while ((p = strstr(p, "\"name\":\"")) != nullptr) {
SignalMeta m;
jsonGetStr(p - 1, "name", tmp, sizeof(tmp)); m.name = tmp;
jsonGetStr(p - 1, "unit", tmp, sizeof(tmp)); m.unit = tmp;
int iv = 0;
jsonGetInt(p - 1, "typeCode", iv); m.typeCode = iv;
jsonGetInt(p - 1, "quantType",iv); m.quantType = iv;
jsonGetInt(p - 1, "timeMode", iv); m.timeMode = iv;
iv = -1;
jsonGetInt(p - 1, "timeSignalIdx", iv); m.timeSignalIdx = iv;
double dv = 0.0;
jsonGetDouble(p - 1, "samplingRate", dv); m.samplingRate = static_cast<float>(dv);
jsonGetDouble(p - 1, "rangeMin", dv); m.rangeMin = dv;
jsonGetDouble(p - 1, "rangeMax", dv); m.rangeMax = dv;
double nr = 1.0, nc = 1.0;
jsonGetDouble(p - 1, "numRows", nr);
jsonGetDouble(p - 1, "numCols", nc);
if (nr < 1.0) { nr = 1.0; }
if (nc < 1.0) { nc = 1.0; }
m.numRows = static_cast<uint32_t>(nr);
m.numCols = static_cast<uint32_t>(nc);
m.numElements = m.numRows * m.numCols;
signals.push_back(m);
p++;
}
return !sourceId.empty();
}
/* ---- Stats ------------------------------------------------------------- */
bool ParseStats(const std::string& json,
std::vector<std::pair<std::string, SourceStats>>& out) {
out.clear();
/* Stats JSON: {"type":"stats","sources":{"id":{ ... },...}} */
/* Parse by finding each nested object key */
const char* sourcesBlock = strstr(json.c_str(), "\"sources\":{");
if (!sourcesBlock) { return false; }
sourcesBlock += strlen("\"sources\":{");
const char* p = sourcesBlock;
while (*p && *p != '}') {
/* Skip to next key */
while (*p && *p != '"') { p++; }
if (!*p || *p != '"') { break; }
p++; /* skip opening quote */
/* Read source id */
char id[128] = "";
size_t i = 0;
while (*p && *p != '"' && i < sizeof(id)-1) { id[i++] = *p++; }
id[i] = '\0';
if (*p == '"') { p++; } /* skip closing quote */
if (*p == ':') { p++; } /* skip colon */
if (*p != '{') { break; }
/* Find end of this source object */
const char* objStart = p;
int depth = 0;
while (*p) {
if (*p == '{') { depth++; }
else if (*p == '}') {
depth--;
if (depth == 0) { p++; break; }
}
p++;
}
/* Parse fields within [objStart, p) */
std::string objStr(objStart, p - objStart);
const char* o = objStr.c_str();
SourceStats st;
char tmp[64] = "";
jsonGetStr(o, "state", tmp, sizeof(tmp)); st.state = tmp;
uint64_t u64 = 0;
jsonGetUint64(o, "totalReceived", u64); st.totalReceived = u64;
jsonGetUint64(o, "totalLost", u64); st.totalLost = u64;
double dv = 0.0;
jsonGetDouble(o, "rateHz", dv); st.rateHz = dv;
jsonGetDouble(o, "rateStdHz", dv); st.rateStdHz = dv;
jsonGetDouble(o, "fragsPerCycle", dv); st.fragsPerCycle = dv;
jsonGetDouble(o, "bytesPerCycle", dv); st.bytesPerCycle = dv;
jsonGetDouble(o, "cycleAvgMs", dv); st.cycleAvgMs = dv;
jsonGetDouble(o, "cycleStdMs", dv); st.cycleStdMs = dv;
jsonGetDouble(o, "cycleMinMs", dv); st.cycleMinMs = dv;
jsonGetDouble(o, "cycleMaxMs", dv); st.cycleMaxMs = dv;
jsonGetDouble(o, "cycleHistMin", dv); st.cycleHistMin = dv;
jsonGetDouble(o, "cycleHistMax", dv); st.cycleHistMax = dv;
/* cycleHist: array of 20 numbers */
const char* hArr = strstr(o, "\"cycleHist\":[");
if (hArr) {
hArr += strlen("\"cycleHist\":[");
for (int hb = 0; hb < 20 && *hArr && *hArr != ']'; hb++) {
while (*hArr == ',' || *hArr == ' ') { hArr++; }
if (*hArr == ']') { break; }
char* end = nullptr;
st.cycleHist[hb] = strtod(hArr, &end);
if (end == hArr) { break; }
hArr = end;
}
}
out.emplace_back(std::string(id), st);
/* Skip comma between source entries */
while (*p == ',' || *p == ' ') { p++; }
}
return !out.empty();
}
/* ---- Trigger state ---------------------------------------------------- */
bool ParseTriggerState(const std::string& json, TriggerStateMsg& out) {
char tmp[64] = "";
if (!jsonGetStr(json.c_str(), "state", tmp, sizeof(tmp))) { return false; }
out.state = tmp;
if (jsonGetStr(json.c_str(), "mode", tmp, sizeof(tmp))) { out.mode = tmp; }
out.stopped = (strstr(json.c_str(), "\"stopped\":true") != nullptr);
double tt = 0.0;
out.hasTrigTime = jsonGetDouble(json.c_str(), "trigTime", tt);
out.trigTime = tt;
return true;
}
/* ---- Zoom response ---------------------------------------------------- */
bool ParseZoom(const std::string& json, ZoomResponse& out) {
out.signals.clear();
out.reqId = 0;
double reqIdF = 0.0;
if (jsonGetDouble(json.c_str(), "reqId", reqIdF)) {
out.reqId = static_cast<uint32_t>(reqIdF);
}
/* Parse signals object: {"src:sig":{"t":[...],"v":[...]},...} */
const char* sigsBlock = strstr(json.c_str(), "\"signals\":{");
if (!sigsBlock) { return false; }
sigsBlock += strlen("\"signals\":{");
const char* p = sigsBlock;
while (*p && *p != '}') {
while (*p && *p != '"') { p++; }
if (!*p) { break; }
p++;
char sigName[128] = "";
size_t i = 0;
while (*p && *p != '"' && i < sizeof(sigName)-1) { sigName[i++] = *p++; }
sigName[i] = '\0';
if (*p == '"') { p++; }
if (*p == ':') { p++; }
ZoomSignal sig;
sig.name = sigName;
/* Parse t array */
const char* tArr = strstr(p, "\"t\":[");
if (tArr) {
tArr += 5;
while (*tArr && *tArr != ']') {
while (*tArr == ',' || *tArr == ' ') { tArr++; }
if (*tArr == ']') { break; }
char* end = nullptr;
double val = strtod(tArr, &end);
if (end == tArr) { break; }
sig.t.push_back(val);
tArr = end;
}
}
/* Parse v array */
const char* vArr = strstr(p, "\"v\":[");
if (vArr) {
vArr += 5;
while (*vArr && *vArr != ']') {
while (*vArr == ',' || *vArr == ' ') { vArr++; }
if (*vArr == ']') { break; }
char* end = nullptr;
double val = strtod(vArr, &end);
if (end == vArr) { break; }
sig.v.push_back(val);
vArr = end;
}
}
out.signals.push_back(std::move(sig));
/* Advance past this signal's object */
int depth = 0;
while (*p) {
if (*p == '{') { depth++; }
else if (*p == '}') {
depth--;
if (depth == 0) { p++; break; }
}
p++;
}
while (*p == ',' || *p == ' ') { p++; }
}
return true;
}
/* ---- maxPointsUpdated ------------------------------------------------- */
bool ParseMaxPointsUpdated(const std::string& json, uint32_t& maxPoints) {
double v = 0.0;
if (!jsonGetDouble(json.c_str(), "maxPoints", v)) { return false; }
maxPoints = static_cast<uint32_t>(v);
return true;
}
} /* namespace StreamHubClient */
+193
View File
@@ -0,0 +1,193 @@
/**
* @file Protocol.h
* @brief StreamHub wire protocol: binary frame parser + JSON builder/parser.
*/
#pragma once
#include "SignalBuffer.h"
#include <string>
#include <vector>
#include <functional>
#include <cstdint>
namespace StreamHubClient {
/* ── Signal metadata (mirrors UDPSSignalDescriptor fields used by UI) ─────── */
struct SignalMeta {
std::string name;
std::string unit;
int typeCode = 0;
int quantType = 0;
int timeMode = 0;
int timeSignalIdx = -1;
float samplingRate = 0.f;
double rangeMin = 0.0;
double rangeMax = 0.0;
uint32_t numRows = 1u;
uint32_t numCols = 1u;
uint32_t numElements = 1u; /* numRows × numCols */
};
/* ── Per-source statistics (hub "stats" broadcast, Go field names) ────────── */
struct SourceStats {
std::string state = "disconnected";
uint64_t totalReceived = 0;
uint64_t totalLost = 0;
double rateHz = 0.0;
double rateStdHz = 0.0;
double fragsPerCycle = 0.0;
double bytesPerCycle = 0.0;
double cycleAvgMs = 0.0;
double cycleStdMs = 0.0;
double cycleMinMs = 0.0;
double cycleMaxMs = 0.0;
double cycleHistMin = 0.0;
double cycleHistMax = 0.0;
double cycleHist[20] = {};
};
/* ── Source descriptor ────────────────────────────────────────────────────── */
struct SourceInfo {
std::string id;
std::string label;
std::string addr;
std::string state;
uint32_t port = 0;
};
/* ── Decoded push-frame signal data ──────────────────────────────────────── */
struct FrameSignal {
std::string name;
std::vector<double> t;
std::vector<double> v;
};
struct DataFrame {
std::string sourceId;
std::vector<FrameSignal> signals;
};
/* ── Zoom response ────────────────────────────────────────────────────────── */
struct ZoomSignal {
std::string name; /* full key "src:sig" */
std::vector<double> t;
std::vector<double> v;
};
struct ZoomResponse {
uint32_t reqId = 0;
std::vector<ZoomSignal> signals;
};
/* ── Trigger capture (binary frame version=2) ─────────────────────────────── */
struct CaptureSignal {
std::string key; /* full key "src:sig" */
std::vector<double> t;
std::vector<double> v;
};
struct CaptureFrame {
double trigTime = 0.0;
double preSec = 0.0;
double postSec = 0.0;
std::vector<CaptureSignal> signals;
};
/* ── Trigger state event ──────────────────────────────────────────────────── */
struct TriggerStateMsg {
std::string state; /* idle|armed|collecting|triggered */
std::string mode = "normal"; /* normal|single */
bool stopped = false;
bool hasTrigTime = false;
double trigTime = 0.0;
};
/*---------------------------------------------------------------------------*/
/* Binary frame parser */
/*---------------------------------------------------------------------------*/
/**
* @brief Parse one StreamHub binary push frame.
*
* Format:
* [1] version | [1] idLen | [idLen] sourceId | [4] numSignals
* per signal: [2] keyLen | [key] | [4] pairCount | [N×8] t | [N×8] v
*
* @return false if the frame is malformed.
*/
bool ParseBinaryFrame(const uint8_t* buf, size_t len, DataFrame& out);
/**
* @brief Parse a version=2 trigger-capture binary frame.
*
* Format:
* [1] version=2 | [8] trigTime | [8] preSec | [8] postSec | [4] nSig
* per signal: [2] keyLen | [key] | [4] N | [N×8] t | [N×8] v
*
* @return false if the frame is malformed or version != 2.
*/
bool ParseCaptureFrame(const uint8_t* buf, size_t len, CaptureFrame& out);
/*---------------------------------------------------------------------------*/
/* JSON command builders */
/*---------------------------------------------------------------------------*/
std::string BuildPing();
std::string BuildGetSources();
std::string BuildGetConfig(const std::string& sourceId);
std::string BuildGetStats();
std::string BuildAddSource(const std::string& label, const std::string& addr,
const std::string& multicastGroup = std::string(),
uint16_t dataPort = 0);
std::string BuildRemoveSource(const std::string& id);
std::string BuildArm();
std::string BuildDisarm();
std::string BuildRearm();
std::string BuildTrigStop(bool stopped);
std::string BuildSaveSources();
/** edge: "rising" | "falling" | "both"; mode: "normal" | "single". */
std::string BuildSetTrigger(const std::string& signalKey, const std::string& edge,
double threshold, double windowSec,
double prePercent, const std::string& mode);
/** signalsCsv: comma-separated full keys "src:sig,src:sig2"; n<=0 → raw. */
std::string BuildZoom(uint32_t reqId, double t0, double t1, int n,
const std::string& signalsCsv);
std::string BuildSetMaxPoints(uint32_t n);
/*---------------------------------------------------------------------------*/
/* JSON event parsers */
/*---------------------------------------------------------------------------*/
/** @brief Extract the "type" field from a JSON text frame. */
std::string ParseType(const std::string& json);
/** @brief Parse a "sources" event. */
bool ParseSources(const std::string& json, std::vector<SourceInfo>& out);
/** @brief Parse a "config" event (one source). */
bool ParseConfig(const std::string& json, std::string& sourceId,
int& publishMode, std::vector<SignalMeta>& signals);
/** @brief Parse a "stats" event. */
bool ParseStats(const std::string& json,
std::vector<std::pair<std::string, SourceStats>>& out);
/** @brief Parse a "triggerState" event. */
bool ParseTriggerState(const std::string& json, TriggerStateMsg& out);
/** @brief Parse a "zoom" response. */
bool ParseZoom(const std::string& json, ZoomResponse& out);
/** @brief Parse a "maxPointsUpdated" event. */
bool ParseMaxPointsUpdated(const std::string& json, uint32_t& maxPoints);
} /* namespace StreamHubClient */
+169
View File
@@ -0,0 +1,169 @@
/**
* @file SignalBuffer.h
* @brief Per-signal ring buffer with LTTB decimation.
*
* Header-only. Uses STL (this is not a MARTe2 component).
*/
#pragma once
#include <vector>
#include <cstddef>
#include <cmath>
#include <algorithm>
namespace StreamHubClient {
/**
* @brief Thread-safe circular buffer of (time, value) float64 pairs.
*/
struct SignalBuffer {
explicit SignalBuffer(size_t cap = 20000)
: capacity(cap), head(0), count(0) {
t.resize(cap);
v.resize(cap);
}
void setCapacity(size_t cap) {
t.assign(cap, 0.0);
v.assign(cap, 0.0);
capacity = cap;
head = 0;
count = 0;
}
/** Append a (time, value) pair; overwrites oldest when full. */
void push(double time, double val) {
t[head] = time;
v[head] = val;
head = (head + 1) % capacity;
if (count < capacity) { count++; }
}
/**
* @brief Copy the last `n` points into tOut/vOut (oldest → newest order).
* @return Number of points written.
*/
size_t readLast(size_t n, std::vector<double>& tOut, std::vector<double>& vOut) const {
size_t actual = std::min(n, count);
if (actual == 0) { return 0; }
tOut.resize(actual);
vOut.resize(actual);
size_t startIdx = (head + capacity - actual) % capacity;
for (size_t i = 0; i < actual; i++) {
size_t idx = (startIdx + i) % capacity;
tOut[i] = t[idx];
vOut[i] = v[idx];
}
return actual;
}
/**
* @brief Read all points in [t0, t1] into tOut/vOut.
* @return Number of points written.
*/
size_t readRange(double t0, double t1,
std::vector<double>& tOut, std::vector<double>& vOut) const {
tOut.clear();
vOut.clear();
if (count == 0) { return 0; }
size_t startIdx = (head + capacity - count) % capacity;
for (size_t i = 0; i < count; i++) {
size_t idx = (startIdx + i) % capacity;
if (t[idx] >= t0 && t[idx] <= t1) {
tOut.push_back(t[idx]);
vOut.push_back(v[idx]);
}
}
return tOut.size();
}
size_t size() const { return count; }
void clear() { head = 0; count = 0; }
size_t capacity;
std::vector<double> t;
std::vector<double> v;
size_t head;
size_t count;
};
/*---------------------------------------------------------------------------*/
/* LTTB — Largest Triangle Three Buckets */
/*---------------------------------------------------------------------------*/
/**
* @brief Decimate tIn/vIn to at most `threshold` points using LTTB.
*
* Always preserves first and last points.
* @return Number of output points.
*/
inline size_t LTTBDecimate(
const std::vector<double>& tIn, const std::vector<double>& vIn,
std::vector<double>& tOut, std::vector<double>& vOut,
size_t threshold)
{
const size_t nIn = tIn.size();
if (nIn <= threshold || threshold < 2) {
tOut = tIn;
vOut = vIn;
return nIn;
}
tOut.resize(threshold);
vOut.resize(threshold);
tOut[0] = tIn[0];
vOut[0] = vIn[0];
tOut[threshold - 1] = tIn[nIn - 1];
vOut[threshold - 1] = vIn[nIn - 1];
/* Bucket size (middle threshold-2 buckets cover points 1..nIn-2) */
double bucketSize = static_cast<double>(nIn - 2) / static_cast<double>(threshold - 2);
size_t a = 0; /* index of last selected point */
for (size_t i = 0; i < threshold - 2; i++) {
/* Calculate average of next bucket */
size_t avgRangeStart = static_cast<size_t>((i + 1) * bucketSize) + 1;
size_t avgRangeEnd = static_cast<size_t>((i + 2) * bucketSize) + 1;
if (avgRangeEnd >= nIn) { avgRangeEnd = nIn - 1; }
double avgT = 0.0, avgV = 0.0;
size_t avgLen = avgRangeEnd - avgRangeStart;
for (size_t j = avgRangeStart; j < avgRangeEnd; j++) {
avgT += tIn[j];
avgV += vIn[j];
}
if (avgLen > 0) {
avgT /= static_cast<double>(avgLen);
avgV /= static_cast<double>(avgLen);
}
/* Select point in current bucket with max triangle area */
size_t rangeStart = static_cast<size_t>(i * bucketSize) + 1;
size_t rangeEnd = static_cast<size_t>((i + 1) * bucketSize) + 1;
if (rangeEnd >= nIn) { rangeEnd = nIn - 1; }
double maxArea = -1.0;
size_t maxIdx = rangeStart;
for (size_t j = rangeStart; j < rangeEnd; j++) {
double area = std::fabs(
(tIn[a] - avgT) * (vIn[j] - vIn[a]) -
(tIn[a] - tIn[j]) * (avgV - vIn[a])
) * 0.5;
if (area > maxArea) {
maxArea = area;
maxIdx = j;
}
}
tOut[i + 1] = tIn[maxIdx];
vOut[i + 1] = vIn[maxIdx];
a = maxIdx;
}
return threshold;
}
} /* namespace StreamHubClient */
+105
View File
@@ -0,0 +1,105 @@
/**
* @file SourcePanel.cpp
* @brief Source browser sidebar implementation.
*/
#include "SourcePanel.h"
#include "App.h"
#include "Protocol.h"
#include "imgui.h"
#include "implot.h"
#include "Icons.h"
#include <cstdio>
#include <algorithm>
namespace StreamHubClient {
void RenderSourcePanel(App& app) {
auto& sources = app.sources();
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4.f, 2.f));
if (ImGui::CollapsingHeader("Sources", ImGuiTreeNodeFlags_DefaultOpen)) {
for (int srcIdx = 0; srcIdx < static_cast<int>(sources.size()); srcIdx++) {
Source& src = sources[srcIdx];
/* State color indicator */
ImVec4 stateColor = (src.state == "connected")
? ImVec4(0.1f, 0.9f, 0.3f, 1.f)
: ImVec4(0.8f, 0.3f, 0.3f, 1.f);
ImGui::PushID(srcIdx);
ImGui::TextColored(stateColor, ICON_FA_CIRCLE);
ImGui::SameLine();
std::string treeLabel = src.label.empty() ? src.id : src.label;
bool nodeOpen = ImGui::TreeNodeEx(treeLabel.c_str(),
ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_SpanAvailWidth);
/* Per-source context menu: remove */
if (ImGui::BeginPopupContextItem("##srccmenu")) {
if (ImGui::MenuItem(ICON_FA_TRASH_CAN " Remove source")) {
app.ws().sendText(BuildRemoveSource(src.id));
}
ImGui::EndPopup();
}
if (nodeOpen) {
for (int sigIdx = 0; sigIdx < static_cast<int>(src.signals.size()); sigIdx++) {
Signal& sig = src.signals[sigIdx];
ImGui::PushID(sigIdx);
/* Color swatch */
ImVec4 col = sig.color;
if (ImGui::ColorButton("##col", col,
ImGuiColorEditFlags_NoTooltip |
ImGuiColorEditFlags_NoBorder,
ImVec2(12.f, 12.f))) {
ImGui::OpenPopup("##sigcolor");
}
if (ImGui::BeginPopup("##sigcolor")) {
ImGui::ColorPicker4("Signal Color", reinterpret_cast<float*>(&sig.color),
ImGuiColorEditFlags_NoAlpha);
ImGui::EndPopup();
}
ImGui::SameLine();
/* Unit / type label */
char label[128];
if (sig.meta.numElements > 1) {
snprintf(label, sizeof(label), "%s [%u]",
sig.meta.name.c_str(), sig.meta.numElements);
} else {
snprintf(label, sizeof(label), "%s", sig.meta.name.c_str());
}
if (!sig.meta.unit.empty()) {
strncat(label, " (", sizeof(label) - strlen(label) - 1);
strncat(label, sig.meta.unit.c_str(), sizeof(label) - strlen(label) - 1);
strncat(label, ")", sizeof(label) - strlen(label) - 1);
}
ImGui::Selectable(label, false, 0, ImVec2(0, 0));
/* Drag-and-drop source: payload = (srcIdx, sigIdx) */
if (ImGui::BeginDragDropSource(ImGuiDragDropFlags_SourceAllowNullID)) {
struct DragPayload { int srcIdx; int sigIdx; };
DragPayload payload{srcIdx, sigIdx};
ImGui::SetDragDropPayload("SIGNAL_REF", &payload, sizeof(payload));
ImGui::TextUnformatted(sig.meta.name.c_str());
ImGui::EndDragDropSource();
}
ImGui::PopID();
}
ImGui::TreePop();
}
ImGui::PopID();
}
}
ImGui::PopStyleVar();
}
} /* namespace StreamHubClient */
+17
View File
@@ -0,0 +1,17 @@
/**
* @file SourcePanel.h
* @brief Left sidebar: source tree with draggable signal leaves.
*/
#pragma once
namespace StreamHubClient {
class App;
/**
* @brief Render the source browser sidebar.
* Must be called inside an ImGui child window.
*/
void RenderSourcePanel(App& app);
} /* namespace StreamHubClient */
+93
View File
@@ -0,0 +1,93 @@
/**
* @file StatsPanel.cpp
* @brief Statistics table implementation.
*/
#include "StatsPanel.h"
#include "App.h"
#include "imgui.h"
#include "implot.h"
#include <cstdio>
namespace StreamHubClient {
void RenderStatsPanel(App& app) {
const auto& sources = app.sources();
ImGuiTableFlags flags =
ImGuiTableFlags_Borders |
ImGuiTableFlags_RowBg |
ImGuiTableFlags_ScrollX |
ImGuiTableFlags_SizingFixedFit;
if (!ImGui::BeginTable("##statstbl", 9, flags)) { return; }
ImGui::TableSetupScrollFreeze(1, 1);
ImGui::TableSetupColumn("Source");
ImGui::TableSetupColumn("State");
ImGui::TableSetupColumn("Cycles Rx");
ImGui::TableSetupColumn("Lost");
ImGui::TableSetupColumn("Rate Hz");
ImGui::TableSetupColumn("Frags/cyc");
ImGui::TableSetupColumn("Bytes/cyc");
ImGui::TableSetupColumn("Cycle ms (avg±std)");
ImGui::TableSetupColumn("Cycle ms (min/max)");
ImGui::TableHeadersRow();
for (const auto& src : sources) {
const SourceStats& st = src.stats;
ImGui::TableNextRow();
ImGui::TableNextColumn(); ImGui::TextUnformatted(src.id.c_str());
/* State cell with color */
ImGui::TableNextColumn();
ImVec4 stColor = (st.state == "connected")
? ImVec4(0.2f,0.9f,0.3f,1.f)
: ImVec4(0.9f,0.3f,0.3f,1.f);
ImGui::TextColored(stColor, "%s", st.state.c_str());
ImGui::TableNextColumn(); ImGui::Text("%llu", (unsigned long long)st.totalReceived);
ImGui::TableNextColumn(); ImGui::Text("%llu", (unsigned long long)st.totalLost);
ImGui::TableNextColumn(); ImGui::Text("%.2f ± %.2f", st.rateHz, st.rateStdHz);
ImGui::TableNextColumn(); ImGui::Text("%.1f", st.fragsPerCycle);
ImGui::TableNextColumn(); ImGui::Text("%.0f", st.bytesPerCycle);
ImGui::TableNextColumn(); ImGui::Text("%.3f ± %.3f", st.cycleAvgMs, st.cycleStdMs);
ImGui::TableNextColumn(); ImGui::Text("%.3f / %.3f", st.cycleMinMs, st.cycleMaxMs);
}
ImGui::EndTable();
/* ── Cycle-time histograms (20 bins, mirrors web UI) ────────────── */
for (const auto& src : sources) {
const SourceStats& st = src.stats;
if (st.cycleHistMax <= st.cycleHistMin) { continue; }
char title[160];
snprintf(title, sizeof(title), "Cycle time %s##hist_%s",
src.id.c_str(), src.id.c_str());
if (ImPlot::BeginPlot(title, ImVec2(-1.f, 140.f),
ImPlotFlags_NoMouseText | ImPlotFlags_NoMenus)) {
const double binW =
(st.cycleHistMax - st.cycleHistMin) / 20.0;
double xs[20];
for (int b = 0; b < 20; b++) {
xs[b] = st.cycleHistMin + (b + 0.5) * binW;
}
ImPlot::SetupAxes("cycle ms", "count",
ImPlotAxisFlags_AutoFit,
ImPlotAxisFlags_AutoFit);
ImPlot::PlotBars("##bars", xs, st.cycleHist, 20, binW * 0.9);
ImPlot::EndPlot();
}
}
ImGui::Spacing();
if (ImGui::Button("Refresh")) {
app.ws().sendText(BuildGetStats());
}
}
} /* namespace StreamHubClient */
+16
View File
@@ -0,0 +1,16 @@
/**
* @file StatsPanel.h
* @brief Per-source statistics table panel.
*/
#pragma once
namespace StreamHubClient {
class App;
/**
* @brief Render the statistics table (call inside an ImGui::Begin/End window).
*/
void RenderStatsPanel(App& app);
} /* namespace StreamHubClient */
+184
View File
@@ -0,0 +1,184 @@
/**
* @file TriggerPanel.cpp
* @brief Trigger configuration bar — hub-side trigger semantics.
*
* The trigger runs in the C++ StreamHub: this panel only edits the config
* (signal/edge/threshold/window/pre%/mode), sends setTrigger + arm/disarm/
* rearm/trigStop commands, and reflects the hub triggerState broadcasts.
*/
#include "TriggerPanel.h"
#include "App.h"
#include "Protocol.h"
#include "imgui.h"
#include "Icons.h"
#include <cstdio>
#include <cstring>
#include <cmath>
namespace StreamHubClient {
/* Window presets (mirrors the web UI: 100 µs .. 10 s) */
static const double kWinVals[] = {1e-4, 1e-3, 1e-2, 1e-1, 1.0, 10.0};
static const char* kWinLabels[] = {"100 µs", "1 ms", "10 ms", "100 ms", "1 s", "10 s"};
static const int kNumWins = 6;
static const char* kEdgeLabels[] = {ICON_FA_ARROW_TREND_UP " Rising",
ICON_FA_ARROW_TREND_DOWN " Falling",
ICON_FA_ARROWS_UP_DOWN " Both"};
static const char* kEdgeWire[] = {"rising", "falling", "both"};
/* Send the current config to the hub. */
static void sendTrigConfig(App& app) {
auto& trig = app.trigger();
if (trig.signalKey.empty()) { return; }
app.ws().sendText(BuildSetTrigger(
trig.signalKey, kEdgeWire[trig.edge], trig.threshold,
trig.windowSec, trig.prePercent,
trig.single ? "single" : "normal"));
}
void RenderTriggerPanel(App& app) {
auto& trig = app.trigger();
auto& sources = app.sources();
ImGui::PushStyleColor(ImGuiCol_ChildBg, ImVec4(0.15f, 0.15f, 0.20f, 1.f));
ImGui::BeginChild("##trigbar", ImVec2(0.f, 90.f), true);
ImGui::PopStyleColor();
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(6.f, 4.f));
bool cfgChanged = false;
/* ── Signal selector (full keys "src:sig") ─────────────────────────── *
* Vector signals are flattened time-series on the hub: one key per
* signal; the trigger engine checks every decoded sample of it. */
ImGui::SetNextItemWidth(180.f);
if (ImGui::BeginCombo("Signal##trig", trig.signalKey.empty()
? "<select>" : trig.signalKey.c_str())) {
for (const auto& src : sources) {
for (const auto& sig : src.signals) {
char key[192];
snprintf(key, sizeof(key), "%s:%s",
src.id.c_str(), sig.meta.name.c_str());
bool sel = (trig.signalKey == key);
if (ImGui::Selectable(key, sel)) {
trig.signalKey = key;
cfgChanged = true;
}
if (sel) { ImGui::SetItemDefaultFocus(); }
}
}
ImGui::EndCombo();
}
ImGui::SameLine();
/* ── Edge ─────────────────────────────────────────────────────────── */
ImGui::SetNextItemWidth(95.f);
if (ImGui::Combo("Edge##trig", &trig.edge, kEdgeLabels, 3)) {
cfgChanged = true;
}
ImGui::SameLine();
/* ── Threshold ───────────────────────────────────────────────────── */
ImGui::SetNextItemWidth(80.f);
if (ImGui::InputDouble("Thr##trig", &trig.threshold, 0.0, 0.0, "%.4g",
ImGuiInputTextFlags_EnterReturnsTrue)) {
cfgChanged = true;
}
ImGui::SameLine();
/* ── Window ──────────────────────────────────────────────────────── */
int winIdx = 3; /* default 100 ms */
for (int w = 0; w < kNumWins; w++) {
if (std::fabs(trig.windowSec - kWinVals[w]) < kWinVals[w] * 1e-6) {
winIdx = w; break;
}
}
ImGui::SetNextItemWidth(85.f);
if (ImGui::Combo("Win##trig", &winIdx, kWinLabels, kNumWins)) {
trig.windowSec = kWinVals[winIdx];
cfgChanged = true;
}
ImGui::SameLine();
/* ── Pre-trigger % ───────────────────────────────────────────────── */
ImGui::SetNextItemWidth(100.f);
float preP = static_cast<float>(trig.prePercent);
if (ImGui::SliderFloat("Pre%##trig", &preP, 0.f, 100.f, "%.0f%%")) {
trig.prePercent = static_cast<double>(preP);
}
if (ImGui::IsItemDeactivatedAfterEdit()) { cfgChanged = true; }
ImGui::SameLine();
/* ── Mode ────────────────────────────────────────────────────────── */
ImGui::TextUnformatted("Mode:");
ImGui::SameLine();
int singleInt = trig.single ? 1 : 0;
if (ImGui::RadioButton("Normal", &singleInt, 0)) { cfgChanged = true; }
ImGui::SameLine();
if (ImGui::RadioButton("Single", &singleInt, 1)) { cfgChanged = true; }
trig.single = (singleInt != 0);
ImGui::NewLine();
/* ── Status badge ────────────────────────────────────────────────── */
ImVec4 badgeColor;
const char* badgeText;
if (trig.status == "armed") { badgeColor = ImVec4(1.f,0.8f,0.f,1.f); badgeText = "ARMED"; }
else if (trig.status == "collecting") { badgeColor = ImVec4(0.4f,0.7f,1.f,1.f); badgeText = "COLLECTING"; }
else if (trig.status == "triggered") { badgeColor = ImVec4(0.2f,0.9f,0.3f,1.f); badgeText = "TRIGGERED"; }
else { badgeColor = ImVec4(0.6f,0.6f,0.6f,1.f); badgeText = "IDLE"; }
ImGui::TextColored(badgeColor, "[%s]", badgeText);
if (trig.hasTrigTime &&
(trig.status == "collecting" || trig.status == "triggered")) {
ImGui::SameLine();
ImGui::TextDisabled("t=%.6f", trig.trigTime);
}
ImGui::SameLine();
/* ── Arm / Disarm / Rearm / Stop ─────────────────────────────────── */
bool canArm = !trig.signalKey.empty();
if (!canArm) { ImGui::BeginDisabled(); }
if (ImGui::Button(ICON_FA_BOLT " Arm")) {
sendTrigConfig(app);
app.ws().sendText(BuildArm());
}
if (!canArm) { ImGui::EndDisabled(); }
ImGui::SameLine();
if (ImGui::Button("Disarm")) {
app.ws().sendText(BuildDisarm());
}
ImGui::SameLine();
if (trig.single && trig.status == "triggered") {
if (ImGui::Button("Rearm")) {
app.ws().sendText(BuildRearm());
}
ImGui::SameLine();
}
if (!trig.single) {
if (ImGui::Button(trig.stopped ? ICON_FA_PLAY " Run" : ICON_FA_STOP " Stop")) {
trig.stopped = !trig.stopped;
app.ws().sendText(BuildTrigStop(trig.stopped));
}
ImGui::SameLine();
}
ImGui::NewLine();
/* Config edits while armed take effect immediately on the hub */
if (cfgChanged && !trig.signalKey.empty()) {
sendTrigConfig(app);
}
ImGui::PopStyleVar();
ImGui::EndChild();
ImGui::Separator();
}
} /* namespace StreamHubClient */
+16
View File
@@ -0,0 +1,16 @@
/**
* @file TriggerPanel.h
* @brief Trigger configuration and control bar.
*/
#pragma once
namespace StreamHubClient {
class App;
/**
* @brief Render the trigger bar (collapsed/expanded region below toolbar).
*/
void RenderTriggerPanel(App& app);
} /* namespace StreamHubClient */
+348
View File
@@ -0,0 +1,348 @@
/**
* @file WSClient.cpp
* @brief RFC 6455 WebSocket client implementation.
*/
#include "WSClient.h"
#include "WSFrame_client.h"
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <chrono>
namespace StreamHubClient {
/* ── Helpers ─────────────────────────────────────────────────────────────── */
static std::string base64Key() {
/* Generate 16 random bytes and base64-encode them */
uint8_t raw[16];
srand(static_cast<unsigned>(time(nullptr)));
for (int i = 0; i < 16; i++) {
raw[i] = static_cast<uint8_t>(rand() & 0xFF);
}
char out[32];
WS_Base64Encode(raw, 16, out);
return std::string(out);
}
/* ── Construction ────────────────────────────────────────────────────────── */
WSClient::WSClient() = default;
WSClient::~WSClient() {
disconnect();
}
/* ── Public API ──────────────────────────────────────────────────────────── */
void WSClient::connect(const std::string& host, uint16_t port) {
/* If already running toward the same target just signal a reconnect */
host_ = host;
port_ = port;
reconnect_.store(true);
if (!recvThread_.joinable()) {
stopThread_.store(false);
recvThread_ = std::thread(&WSClient::recvLoop, this);
}
}
void WSClient::disconnect() {
stopThread_.store(true);
connected_.store(false);
if (sock_ >= 0) {
::shutdown(sock_, SHUT_RDWR);
::close(sock_);
sock_ = -1;
}
if (recvThread_.joinable()) {
recvThread_.join();
}
}
void WSClient::reconnect(const std::string& host, uint16_t port) {
host_ = host;
port_ = port;
/* Closing the socket causes the recv thread to get n<=0 and loop back
* to doConnect() with the new host/port. No thread join needed. */
connected_.store(false);
if (sock_ >= 0) {
::shutdown(sock_, SHUT_RDWR);
::close(sock_);
sock_ = -1;
}
/* Ensure thread is running (first call before connect()) */
if (!recvThread_.joinable()) {
stopThread_.store(false);
recvThread_ = std::thread(&WSClient::recvLoop, this);
}
}
bool WSClient::isConnected() const {
return connected_.load();
}
void WSClient::poll(const std::function<void(const WSMessage&)>& handler) {
std::queue<WSMessage> local;
{
std::lock_guard<std::mutex> lk(queueMutex_);
std::swap(local, recvQueue_);
}
while (!local.empty()) {
handler(local.front());
local.pop();
}
}
void WSClient::sendText(const std::string& json) {
if (!connected_.load()) { return; }
uint8_t hdrBuf[10];
uint32_t hdrLen = WSEncodeHeader(hdrBuf, WS_OPCODE_TEXT,
static_cast<uint64_t>(json.size()));
std::lock_guard<std::mutex> lk(sendMutex_);
if (!sendRaw(hdrBuf, hdrLen)) { connected_.store(false); return; }
if (!json.empty()) {
if (!sendRaw(reinterpret_cast<const uint8_t*>(json.data()), json.size())) {
connected_.store(false);
}
}
}
void WSClient::sendBinary(const uint8_t* data, size_t len) {
if (!connected_.load()) { return; }
uint8_t hdrBuf[10];
uint32_t hdrLen = WSEncodeHeader(hdrBuf, WS_OPCODE_BINARY,
static_cast<uint64_t>(len));
std::lock_guard<std::mutex> lk(sendMutex_);
if (!sendRaw(hdrBuf, hdrLen)) { connected_.store(false); return; }
if (len > 0 && data != nullptr) {
if (!sendRaw(data, len)) {
connected_.store(false);
}
}
}
/* ── Receive loop (background thread) ────────────────────────────────────── */
void WSClient::recvLoop() {
/* Per-connection receive buffer: declared here so it can be cleared on
* each reconnect, preventing stale WS frames from a prior session from
* being parsed as frames of the new connection. */
std::vector<uint8_t> recvBuf;
recvBuf.reserve(1u << 20); /* 1 MiB initial reservation */
while (!stopThread_.load()) {
if (!connected_.load()) {
recvBuf.clear(); /* discard any partial data from previous connection */
if (!doConnect() || !doHandshake()) {
connected_.store(false);
if (sock_ >= 0) { ::close(sock_); sock_ = -1; }
/* Wait 3 s before retry */
for (int i = 0; i < 30 && !stopThread_.load(); i++) {
std::this_thread::sleep_for(std::chrono::milliseconds(100));
}
continue;
}
connected_.store(true);
reconnect_.store(false);
fprintf(stderr, "WSClient: connected to %s:%u\n", host_.c_str(), port_);
}
/* Read and accumulate bytes */
uint8_t chunk[4096];
ssize_t n = ::recv(sock_, chunk, sizeof(chunk), 0);
if (n <= 0) {
if (n == 0 || (errno != EAGAIN && errno != EWOULDBLOCK)) {
fprintf(stderr, "WSClient: recv error / connection closed\n");
connected_.store(false);
::close(sock_); sock_ = -1;
}
continue;
}
recvBuf.insert(recvBuf.end(), chunk, chunk + n);
/* Parse as many complete frames as possible */
size_t consumed = 0;
while (consumed < recvBuf.size()) {
const uint8_t* frameStart = recvBuf.data() + consumed;
size_t available = recvBuf.size() - consumed;
WSFrameHeader hdr;
if (!WSParseHeader(frameStart, static_cast<uint32_t>(available), hdr)) {
break; /* Need more data */
}
if (hdr.payloadLen > 16u * 1024u * 1024u) {
/* Frame too large — disconnect */
fprintf(stderr, "WSClient: frame too large (%llu bytes)\n",
static_cast<unsigned long long>(hdr.payloadLen));
connected_.store(false);
::close(sock_); sock_ = -1;
recvBuf.clear();
goto next_iter;
}
{
size_t total = hdr.headerSize + static_cast<size_t>(hdr.payloadLen);
if (available < total) { break; }
uint8_t* payload = const_cast<uint8_t*>(frameStart) + hdr.headerSize;
uint32_t plen = static_cast<uint32_t>(hdr.payloadLen);
if (hdr.masked) { WSUnmask(payload, plen, hdr.maskKey); }
if (hdr.opcode == WS_OPCODE_CLOSE) {
connected_.store(false);
::close(sock_); sock_ = -1;
recvBuf.clear();
goto next_iter;
} else if (hdr.opcode == WS_OPCODE_PING) {
/* Send pong */
uint8_t pongHdr[10];
uint32_t pongHdrLen = WSEncodeHeader(pongHdr, WS_OPCODE_PONG, plen);
std::lock_guard<std::mutex> lk(sendMutex_);
sendRaw(pongHdr, pongHdrLen);
if (plen > 0) { sendRaw(payload, plen); }
} else if (hdr.opcode == WS_OPCODE_TEXT ||
hdr.opcode == WS_OPCODE_BINARY) {
WSMessage msg;
msg.isBinary = (hdr.opcode == WS_OPCODE_BINARY);
msg.data.assign(payload, payload + plen);
std::lock_guard<std::mutex> lk(queueMutex_);
recvQueue_.push(std::move(msg));
}
consumed += total;
}
}
/* Compact buffer */
if (consumed > 0) {
recvBuf.erase(recvBuf.begin(), recvBuf.begin() + consumed);
}
next_iter:;
}
if (sock_ >= 0) { ::close(sock_); sock_ = -1; }
connected_.store(false);
}
/* ── TCP connect ─────────────────────────────────────────────────────────── */
bool WSClient::doConnect() {
struct addrinfo hints = {};
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
char portStr[16];
snprintf(portStr, sizeof(portStr), "%u", static_cast<unsigned>(port_));
struct addrinfo* res = nullptr;
if (getaddrinfo(host_.c_str(), portStr, &hints, &res) != 0 || res == nullptr) {
fprintf(stderr, "WSClient: getaddrinfo failed for %s\n", host_.c_str());
return false;
}
sock_ = ::socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (sock_ < 0) { freeaddrinfo(res); return false; }
if (::connect(sock_, res->ai_addr, res->ai_addrlen) < 0) {
fprintf(stderr, "WSClient: connect failed: %s\n", strerror(errno));
::close(sock_); sock_ = -1;
freeaddrinfo(res);
return false;
}
freeaddrinfo(res);
return true;
}
/* ── HTTP/1.1 WebSocket upgrade ──────────────────────────────────────────── */
bool WSClient::doHandshake() {
std::string key = base64Key();
/* Send HTTP upgrade request */
char req[512];
snprintf(req, sizeof(req),
"GET / HTTP/1.1\r\n"
"Host: %s:%u\r\n"
"Upgrade: websocket\r\n"
"Connection: Upgrade\r\n"
"Sec-WebSocket-Key: %s\r\n"
"Sec-WebSocket-Version: 13\r\n"
"\r\n",
host_.c_str(), static_cast<unsigned>(port_), key.c_str());
if (!sendRaw(reinterpret_cast<const uint8_t*>(req), strlen(req))) {
return false;
}
/* Read HTTP response until \r\n\r\n */
char resp[2048];
size_t totalRead = 0;
while (totalRead < sizeof(resp) - 1) {
ssize_t n = ::recv(sock_, resp + totalRead, 1, 0);
if (n <= 0) { return false; }
totalRead++;
resp[totalRead] = '\0';
if (totalRead >= 4 &&
memcmp(resp + totalRead - 4, "\r\n\r\n", 4) == 0) {
break;
}
}
/* Check for 101 */
if (strstr(resp, "101") == nullptr) {
fprintf(stderr, "WSClient: handshake failed:\n%s\n", resp);
return false;
}
/* Verify Sec-WebSocket-Accept (optional but good practice) */
static const char* kGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
std::string concat = key + kGUID;
uint8_t digest[20];
WS_SHA1(reinterpret_cast<const uint8_t*>(concat.data()),
static_cast<uint32_t>(concat.size()), digest);
char expectedAccept[32];
WS_Base64Encode(digest, 20, expectedAccept);
if (strstr(resp, expectedAccept) == nullptr) {
fprintf(stderr, "WSClient: Sec-WebSocket-Accept mismatch\n");
return false;
}
return true;
}
/* ── Low-level I/O ───────────────────────────────────────────────────────── */
bool WSClient::recvExact(uint8_t* buf, size_t len) {
size_t received = 0;
while (received < len) {
ssize_t n = ::recv(sock_, buf + received, len - received, MSG_WAITALL);
if (n <= 0) { return false; }
received += static_cast<size_t>(n);
}
return true;
}
bool WSClient::sendRaw(const uint8_t* buf, size_t len) {
size_t sent = 0;
while (sent < len) {
ssize_t n = ::send(sock_, buf + sent, len - sent, MSG_NOSIGNAL);
if (n <= 0) { return false; }
sent += static_cast<size_t>(n);
}
return true;
}
} /* namespace StreamHubClient */
+100
View File
@@ -0,0 +1,100 @@
/**
* @file WSClient.h
* @brief RFC 6455 WebSocket client (POSIX sockets, background receive thread).
*
* The receive thread continuously reads frames and places them in a queue.
* The main (ImGui) thread drains the queue each frame and also sends frames.
*
* Reuses WSFrame.h / SHA1.h / Base64.h from Source/Applications/StreamHub/.
*/
#pragma once
#include <string>
#include <vector>
#include <queue>
#include <mutex>
#include <thread>
#include <functional>
#include <atomic>
#include <cstdint>
namespace StreamHubClient {
/**
* @brief A received WebSocket frame.
*/
struct WSMessage {
bool isBinary;
std::vector<uint8_t> data; ///< Payload bytes (text frames are also stored here)
};
/**
* @brief Minimal RFC 6455 WebSocket client.
*
* Usage:
* WSClient ws;
* ws.connect("127.0.0.1", 8090);
* // main loop:
* ws.poll(handler); // drain received messages
* ws.sendText(json); // send a JSON command
* ws.disconnect();
*/
class WSClient {
public:
WSClient();
~WSClient();
/**
* @brief (Re)connect to host:port in the background.
* Non-blocking — sets a reconnect target; the receive thread handles the actual
* connect/reconnect loop.
*/
void connect(const std::string& host, uint16_t port);
/** @brief Gracefully close the WebSocket connection and stop the receive thread. */
void disconnect();
/**
* @brief Non-blocking reconnect to a (possibly new) host:port.
* Closes the current socket so the background thread detects the drop and
* reconnects immediately. Does NOT join the thread — safe to call from the UI.
*/
void reconnect(const std::string& host, uint16_t port);
/** @return true if the WebSocket handshake completed and the connection is open. */
bool isConnected() const;
/**
* @brief Drain all pending received messages and pass each to `handler`.
* Must be called from the main thread.
*/
void poll(const std::function<void(const WSMessage&)>& handler);
/** @brief Send a JSON text frame. Thread-safe. */
void sendText(const std::string& json);
/** @brief Send a binary frame. Thread-safe. */
void sendBinary(const uint8_t* data, size_t len);
private:
void recvLoop();
bool doConnect();
bool doHandshake();
bool recvExact(uint8_t* buf, size_t len);
bool sendRaw(const uint8_t* buf, size_t len);
std::string host_;
uint16_t port_ = 0;
int sock_ = -1;
std::atomic<bool> connected_ {false};
std::atomic<bool> stopThread_ {false};
std::atomic<bool> reconnect_ {false};
std::thread recvThread_;
mutable std::mutex sendMutex_;
mutable std::mutex queueMutex_;
std::queue<WSMessage> recvQueue_;
};
} /* namespace StreamHubClient */
+177
View File
@@ -0,0 +1,177 @@
/**
* @file WSFrame_client.h
* @brief WebSocket frame helpers for the ImGui client (no MARTe2 dependency).
*
* Mirrors WSFrame.h from Source/Applications/StreamHub/ using standard C++ types.
*/
#pragma once
#include <cstdint>
#include <cstring>
namespace StreamHubClient {
static const uint8_t WS_OPCODE_CONTINUATION = 0x00u;
static const uint8_t WS_OPCODE_TEXT = 0x01u;
static const uint8_t WS_OPCODE_BINARY = 0x02u;
static const uint8_t WS_OPCODE_CLOSE = 0x08u;
static const uint8_t WS_OPCODE_PING = 0x09u;
static const uint8_t WS_OPCODE_PONG = 0x0Au;
static const uint8_t WS_FIN_BIT = 0x80u;
static const uint8_t WS_MASK_BIT = 0x80u;
/** @brief Encode a WebSocket frame header (server→client, no masking).
* @return Number of header bytes written (2, 4, or 10). */
inline uint32_t WSEncodeHeader(uint8_t* buf, uint8_t opcode, uint64_t payloadLen) {
buf[0] = WS_FIN_BIT | opcode;
if (payloadLen < 126u) {
buf[1] = static_cast<uint8_t>(payloadLen);
return 2u;
} else if (payloadLen < 65536u) {
buf[1] = 126u;
buf[2] = static_cast<uint8_t>((payloadLen >> 8u) & 0xFFu);
buf[3] = static_cast<uint8_t>(payloadLen & 0xFFu);
return 4u;
} else {
buf[1] = 127u;
for (int i = 7; i >= 0; i--) {
buf[2 + i] = static_cast<uint8_t>(payloadLen & 0xFFu);
payloadLen >>= 8u;
}
return 10u;
}
}
struct WSFrameHeader {
bool fin;
uint8_t opcode;
bool masked;
uint64_t payloadLen;
uint8_t maskKey[4];
uint32_t headerSize;
};
inline bool WSParseHeader(const uint8_t* buf, uint32_t bufLen, WSFrameHeader& hdr) {
if (bufLen < 2u) { return false; }
hdr.fin = (buf[0] & WS_FIN_BIT) != 0u;
hdr.opcode = buf[0] & 0x0Fu;
hdr.masked = (buf[1] & WS_MASK_BIT) != 0u;
uint32_t hdrSize = 2u;
uint64_t plen = static_cast<uint64_t>(buf[1] & 0x7Fu);
if (plen == 126u) {
if (bufLen < 4u) { return false; }
plen = (static_cast<uint64_t>(buf[2]) << 8u) | static_cast<uint64_t>(buf[3]);
hdrSize += 2u;
} else if (plen == 127u) {
if (bufLen < 10u) { return false; }
plen = 0u;
for (int i = 0; i < 8; i++) {
plen = (plen << 8u) | static_cast<uint64_t>(buf[2 + i]);
}
hdrSize += 8u;
}
if (hdr.masked) {
if (bufLen < hdrSize + 4u) { return false; }
hdr.maskKey[0] = buf[hdrSize];
hdr.maskKey[1] = buf[hdrSize + 1u];
hdr.maskKey[2] = buf[hdrSize + 2u];
hdr.maskKey[3] = buf[hdrSize + 3u];
hdrSize += 4u;
} else {
hdr.maskKey[0] = hdr.maskKey[1] = hdr.maskKey[2] = hdr.maskKey[3] = 0u;
}
hdr.payloadLen = plen;
hdr.headerSize = hdrSize;
return true;
}
inline void WSUnmask(uint8_t* payload, uint32_t len, const uint8_t mask[4]) {
for (uint32_t i = 0u; i < len; i++) {
payload[i] ^= mask[i % 4u];
}
}
/* ── SHA-1 (for WebSocket handshake) ──────────────────────────────────────── */
inline void WS_SHA1(const uint8_t* data, uint32_t len, uint8_t digest[20]) {
/* FIPS 180-4 SHA-1 — sufficient for a 60-byte input (key+GUID) */
uint32_t h0 = 0x67452301u, h1 = 0xEFCDAB89u, h2 = 0x98BADCFEu,
h3 = 0x10325476u, h4 = 0xC3D2E1F0u;
auto rot32 = [](uint32_t v, int n) -> uint32_t {
return (v << n) | (v >> (32 - n));
};
/* Build padded message */
uint32_t bitLen = len * 8u;
uint32_t padLen = (len % 64u < 56u) ? (56u - len % 64u) : (120u - len % 64u);
uint32_t msgLen = len + padLen + 8u;
uint8_t* msg = new uint8_t[msgLen]();
memcpy(msg, data, len);
msg[len] = 0x80u;
/* Big-endian bit-length at end */
msg[msgLen - 4] = static_cast<uint8_t>((bitLen >> 24) & 0xFF);
msg[msgLen - 3] = static_cast<uint8_t>((bitLen >> 16) & 0xFF);
msg[msgLen - 2] = static_cast<uint8_t>((bitLen >> 8) & 0xFF);
msg[msgLen - 1] = static_cast<uint8_t>( bitLen & 0xFF);
for (uint32_t blk = 0u; blk < msgLen; blk += 64u) {
uint32_t w[80];
for (int i = 0; i < 16; i++) {
w[i] = (static_cast<uint32_t>(msg[blk + i*4]) << 24)
| (static_cast<uint32_t>(msg[blk + i*4+1]) << 16)
| (static_cast<uint32_t>(msg[blk + i*4+2]) << 8)
| static_cast<uint32_t>(msg[blk + i*4+3]);
}
for (int i = 16; i < 80; i++) {
w[i] = rot32(w[i-3] ^ w[i-8] ^ w[i-14] ^ w[i-16], 1);
}
uint32_t a=h0,b=h1,c=h2,d=h3,e=h4,f,k,t;
for (int i = 0; i < 80; i++) {
if (i < 20) { f=( b & c)|((~b)& d); k=0x5A827999u; }
else if (i < 40) { f= b ^ c ^ d; k=0x6ED9EBA1u; }
else if (i < 60) { f=(b&c)|(b&d)|(c&d); k=0x8F1BBCDCu; }
else { f= b ^ c ^ d; k=0xCA62C1D6u; }
t = rot32(a,5) + f + e + k + w[i];
e=d; d=c; c=rot32(b,30); b=a; a=t;
}
h0+=a; h1+=b; h2+=c; h3+=d; h4+=e;
}
delete[] msg;
auto put32 = [&](uint8_t* p, uint32_t v) {
p[0]=v>>24; p[1]=(v>>16)&0xFF; p[2]=(v>>8)&0xFF; p[3]=v&0xFF;
};
put32(digest, h0); put32(digest+4, h1);
put32(digest+8, h2); put32(digest+12, h3);
put32(digest+16, h4);
}
/* ── Base64 encode (for WebSocket handshake) ─────────────────────────────── */
inline uint32_t WS_Base64Encode(const uint8_t* in, uint32_t inLen, char* out) {
static const char tbl[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
uint32_t o = 0;
for (uint32_t i = 0; i < inLen; ) {
uint32_t b = static_cast<uint32_t>(in[i++]) << 16;
int have = 1;
if (i < inLen) { b |= static_cast<uint32_t>(in[i++]) << 8; have++; }
if (i < inLen) { b |= static_cast<uint32_t>(in[i++]); have++; }
out[o++] = tbl[(b >> 18) & 0x3F];
out[o++] = tbl[(b >> 12) & 0x3F];
out[o++] = (have >= 2) ? tbl[(b >> 6) & 0x3F] : '=';
out[o++] = (have >= 3) ? tbl[ b & 0x3F] : '=';
}
out[o] = '\0';
return o;
}
} /* namespace StreamHubClient */
+447
View File
@@ -0,0 +1,447 @@
# This is the CMakeCache file.
# For build in directory: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=Release
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
//Flags used by the CXX compiler during all build types.
CMAKE_CXX_FLAGS:STRING=
//Flags used by the CXX compiler during DEBUG builds.
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
//Flags used by the CXX compiler during MINSIZEREL builds.
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the CXX compiler during RELEASE builds.
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the CXX compiler during RELWITHDEBINFO builds.
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
//Path to a program.
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
//Flags used by the linker during all build types.
CMAKE_EXE_LINKER_FLAGS:STRING=
//Flags used by the linker during DEBUG builds.
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during MINSIZEREL builds.
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during RELEASE builds.
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during RELWITHDEBINFO builds.
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/pkgRedirects
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
//Value Computed by CMake
CMAKE_PROJECT_COMPAT_VERSION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=StreamHubClient
//Value Computed by CMake
CMAKE_PROJECT_SPDX_LICENSE:STATIC=
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
//Path to a program.
CMAKE_READELF:FILEPATH=/usr/bin/readelf
//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the archiver during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the archiver during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the archiver during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the archiver during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the archiver during the creation of static libraries
// during RELWITHDEBINFO builds.
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_STRIP:FILEPATH=/usr/bin/strip
//Path to a program.
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Directory under which to collect all populated content
FETCHCONTENT_BASE_DIR:PATH=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps
//Disables all attempts to download or update content and assumes
// source dirs already exist
FETCHCONTENT_FULLY_DISCONNECTED:BOOL=OFF
//Enables QUIET option for all content population
FETCHCONTENT_QUIET:BOOL=ON
//When not empty, overrides where to find pre-populated content
// for imgui
FETCHCONTENT_SOURCE_DIR_IMGUI:PATH=
//When not empty, overrides where to find pre-populated content
// for implot
FETCHCONTENT_SOURCE_DIR_IMPLOT:PATH=
//Enables UPDATE_DISCONNECTED behavior for all content population
FETCHCONTENT_UPDATES_DISCONNECTED:BOOL=OFF
//Enables UPDATE_DISCONNECTED behavior just for population of imgui
FETCHCONTENT_UPDATES_DISCONNECTED_IMGUI:BOOL=OFF
//Enables UPDATE_DISCONNECTED behavior just for population of implot
FETCHCONTENT_UPDATES_DISCONNECTED_IMPLOT:BOOL=OFF
//Git command line client
GIT_EXECUTABLE:FILEPATH=/usr/bin/git
//Path to a file.
OPENGL_EGL_INCLUDE_DIR:PATH=/usr/include
//Path to a file.
OPENGL_GLES2_INCLUDE_DIR:PATH=/usr/include
//Path to a file.
OPENGL_GLES3_INCLUDE_DIR:PATH=/usr/include
//Path to a file.
OPENGL_GLU_INCLUDE_DIR:PATH=/usr/include
//Path to a file.
OPENGL_GLX_INCLUDE_DIR:PATH=/usr/include
//Path to a file.
OPENGL_INCLUDE_DIR:PATH=/usr/include
//Path to a library.
OPENGL_egl_LIBRARY:FILEPATH=/usr/lib/libEGL.so
//Path to a library.
OPENGL_gles2_LIBRARY:FILEPATH=/usr/lib/libGLESv2.so
//Path to a library.
OPENGL_gles3_LIBRARY:FILEPATH=/usr/lib/libGLESv2.so
//Path to a library.
OPENGL_glu_LIBRARY:FILEPATH=/usr/lib/libGLU.so
//Path to a library.
OPENGL_glx_LIBRARY:FILEPATH=/usr/lib/libGLX.so
//Path to a library.
OPENGL_opengl_LIBRARY:FILEPATH=/usr/lib/libOpenGL.so
//Path to a file.
OPENGL_xmesa_INCLUDE_DIR:PATH=OPENGL_xmesa_INCLUDE_DIR-NOTFOUND
//The directory containing a CMake configuration file for SDL2.
SDL2_DIR:PATH=/usr/lib/cmake/SDL2
//Value Computed by CMake
StreamHubClient_BINARY_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build
//Value Computed by CMake
StreamHubClient_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
StreamHubClient_SOURCE_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub
########################
# INTERNAL cache entries
########################
//ADVANCED property for variable: CMAKE_ADDR2LINE
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_AR
CMAKE_AR-ADVANCED:INTERNAL=1
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=3
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
//Executable file format
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//Name of CMakeLists files to read
CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_NM
CMAKE_NM-ADVANCED:INTERNAL=1
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJCOPY
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_OBJDUMP
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//ADVANCED property for variable: CMAKE_RANLIB
CMAKE_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_READELF
CMAKE_READELF-ADVANCED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/usr/share/cmake
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_STRIP
CMAKE_STRIP-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_TAPI
CMAKE_TAPI-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//Details about finding OpenGL
FIND_PACKAGE_MESSAGE_DETAILS_OpenGL:INTERNAL=[/usr/lib/libOpenGL.so][/usr/lib/libGLX.so][/usr/include][ ][v()]
//ADVANCED property for variable: GIT_EXECUTABLE
GIT_EXECUTABLE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_EGL_INCLUDE_DIR
OPENGL_EGL_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_GLES2_INCLUDE_DIR
OPENGL_GLES2_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_GLES3_INCLUDE_DIR
OPENGL_GLES3_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_GLU_INCLUDE_DIR
OPENGL_GLU_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_GLX_INCLUDE_DIR
OPENGL_GLX_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_INCLUDE_DIR
OPENGL_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_egl_LIBRARY
OPENGL_egl_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_gles2_LIBRARY
OPENGL_gles2_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_gles3_LIBRARY
OPENGL_gles3_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_glu_LIBRARY
OPENGL_glu_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_glx_LIBRARY
OPENGL_glx_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_opengl_LIBRARY
OPENGL_opengl_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: OPENGL_xmesa_INCLUDE_DIR
OPENGL_xmesa_INCLUDE_DIR-ADVANCED:INTERNAL=1
@@ -0,0 +1,102 @@
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "16.1.1")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "20")
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
set(CMAKE_CXX_STANDARD_LATEST "26")
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23;cxx_std_26")
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
set(CMAKE_CXX26_COMPILE_FEATURES "cxx_std_26")
set(CMAKE_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
set(CMAKE_CXX_COMPILER_APPLE_SYSROOT "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID "x86_64")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_LINKER_LINK "")
set(CMAKE_LINKER_LLD "")
set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld")
set(CMAKE_CXX_COMPILER_LINKER_ID "GNU")
set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.46.0)
set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU)
set(CMAKE_MT "")
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
foreach (lang IN ITEMS C OBJC OBJCXX)
if (CMAKE_${lang}_COMPILER_ID_RUN)
foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
endforeach()
endif()
endforeach()
set(CMAKE_CXX_LINKER_PREFERENCE 30)
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED TRUE)
set(CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
set(CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED TRUE)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
if(CMAKE_CXX_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_CXX_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
endif()
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "")
endif()
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/16.1.1;/usr/include/c++/16.1.1/x86_64-pc-linux-gnu;/usr/include/c++/16.1.1/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/16.1.1/include;/usr/local/include;/usr/include")
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;atomic_asneeded;c;gcc_s;gcc")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/16.1.1;/usr/lib;/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "")
set(CMAKE_CXX_COMPILER_IMPORT_STD "")
set(CMAKE_CXX_COMPILER_IMPORT_STD_ERROR_MESSAGE "Unsupported generator: Unix Makefiles")
set(CMAKE_CXX_STDLIB_MODULES_JSON "")
@@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Linux-7.0.10-arch1-1")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "7.0.10-arch1-1")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-7.0.10-arch1-1")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "7.0.10-arch1-1")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)
@@ -0,0 +1,949 @@
/* This source file must have a .cpp extension so that all C++ compilers
recognize the extension without flags. Borland does not know .cxx for
example. */
#ifndef __cplusplus
# error "A C compiler has been selected for C++."
#endif
#if !defined(__has_include)
/* If the compiler does not have __has_include, pretend the answer is
always no. */
# define __has_include(x) 0
#endif
/* Version number components: V=Version, R=Revision, P=Patch
Version date components: YYYY=Year, MM=Month, DD=Day */
#if defined(__INTEL_COMPILER) || defined(__ICC)
# define COMPILER_ID "Intel"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# if defined(__GNUC__)
# define SIMULATE_ID "GNU"
# endif
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
except that a few beta releases use the old format with V=2021. */
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
# if defined(__INTEL_COMPILER_UPDATE)
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
# else
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
# endif
# else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
/* The third version component from --version is an update index,
but no macro is provided for it. */
# define COMPILER_VERSION_PATCH DEC(0)
# endif
# if defined(__INTEL_COMPILER_BUILD_DATE)
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
# endif
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
# define COMPILER_ID "IntelLLVM"
#if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
#endif
#if defined(__GNUC__)
# define SIMULATE_ID "GNU"
#endif
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
* VVVV is no smaller than the current year when a version is released.
*/
#if __INTEL_LLVM_COMPILER < 1000000L
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
#else
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
#endif
#if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
#endif
#if defined(__GNUC__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
#elif defined(__GNUG__)
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
#endif
#if defined(__GNUC_MINOR__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
#endif
#if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
#endif
#elif defined(__PATHCC__)
# define COMPILER_ID "PathScale"
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
# if defined(__PATHCC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
# endif
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
# define COMPILER_ID "Embarcadero"
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
#elif defined(__BORLANDC__)
# define COMPILER_ID "Borland"
/* __BORLANDC__ = 0xVRR */
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
# define COMPILER_ID "Watcom"
/* __WATCOMC__ = VVRR */
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__WATCOMC__)
# define COMPILER_ID "OpenWatcom"
/* __WATCOMC__ = VVRP + 1100 */
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
# if (__WATCOMC__ % 10) > 0
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
# endif
#elif defined(__SUNPRO_CC)
# define COMPILER_ID "SunPro"
# if __SUNPRO_CC >= 0x5100
/* __SUNPRO_CC = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
# endif
#elif defined(__HP_aCC)
# define COMPILER_ID "HP"
/* __HP_aCC = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
#elif defined(__DECCXX)
# define COMPILER_ID "Compaq"
/* __DECCXX_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__open_xl__) && defined(__clang__)
# define COMPILER_ID "IBMClang"
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__ibmxl__) && defined(__clang__)
# define COMPILER_ID "XLClang"
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
# define COMPILER_ID "XL"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMCPP__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
#elif defined(__NVCOMPILER)
# define COMPILER_ID "NVHPC"
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
# if defined(__NVCOMPILER_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
# endif
#elif defined(__PGI)
# define COMPILER_ID "PGI"
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
# if defined(__PGIC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
# endif
#elif defined(__clang__) && defined(__cray__)
# define COMPILER_ID "CrayClang"
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(_CRAYC)
# define COMPILER_ID "Cray"
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
#elif defined(__TI_COMPILER_VERSION__)
# define COMPILER_ID "TI"
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
#elif defined(__CLANG_FUJITSU)
# define COMPILER_ID "FujitsuClang"
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
#elif defined(__FUJITSU)
# define COMPILER_ID "Fujitsu"
# if defined(__FCC_version__)
# define COMPILER_VERSION __FCC_version__
# elif defined(__FCC_major__)
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
# endif
# if defined(__fcc_version)
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
# elif defined(__FCC_VERSION)
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
# endif
#elif defined(__ghs__)
# define COMPILER_ID "GHS"
/* __GHS_VERSION_NUMBER = VVVVRP */
# ifdef __GHS_VERSION_NUMBER
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
# endif
#elif defined(__TASKING__)
# define COMPILER_ID "Tasking"
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
#elif defined(__ORANGEC__)
# define COMPILER_ID "OrangeC"
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
#elif defined(__RENESAS__)
# define COMPILER_ID "Renesas"
/* __RENESAS_VERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__RENESAS_VERSION__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR HEX(__RENESAS_VERSION__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__RENESAS_VERSION__ >> 8 & 0xFF)
#elif defined(__SCO_VERSION__)
# define COMPILER_ID "SCO"
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
# define COMPILER_ID "ARMCC"
#if __ARMCC_VERSION >= 1000000
/* __ARMCC_VERSION = VRRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#else
/* __ARMCC_VERSION = VRPPPP */
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
#endif
#elif defined(__clang__) && defined(__apple_build_version__)
# define COMPILER_ID "AppleClang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
# define COMPILER_ID "ARMClang"
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
#elif defined(__clang__) && defined(__ti__)
# define COMPILER_ID "TIClang"
# define COMPILER_VERSION_MAJOR DEC(__ti_major__)
# define COMPILER_VERSION_MINOR DEC(__ti_minor__)
# define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
#elif defined(__clang__)
# define COMPILER_ID "Clang"
# if defined(_MSC_VER)
# define SIMULATE_ID "MSVC"
# endif
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
# if defined(_MSC_VER)
/* _MSC_VER = VVRR */
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
# endif
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
# define COMPILER_ID "LCC"
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
# if defined(__LCC_MINOR__)
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
# endif
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
# define SIMULATE_ID "GNU"
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
# if defined(__GNUC_PATCHLEVEL__)
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
# endif
#elif defined(__GNUC__) || defined(__GNUG__)
# define COMPILER_ID "GNU"
# if defined(__GNUC__)
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# else
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
# endif
# if defined(__GNUC_MINOR__)
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
# endif
# if defined(__GNUC_PATCHLEVEL__)
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
# endif
#elif defined(_MSC_VER)
# define COMPILER_ID "MSVC"
/* _MSC_VER = VVRR */
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
# if defined(_MSC_FULL_VER)
# if _MSC_VER >= 1400
/* _MSC_FULL_VER = VVRRPPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
# else
/* _MSC_FULL_VER = VVRRPPPP */
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
# endif
# endif
# if defined(_MSC_BUILD)
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
# endif
#elif defined(_ADI_COMPILER)
# define COMPILER_ID "ADSP"
#if defined(__VERSIONNUM__)
/* __VERSIONNUM__ = 0xVVRRPPTT */
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
#endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# define COMPILER_ID "IAR"
# if defined(__VER__) && defined(__ICCARM__)
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
# endif
#elif defined(__DCC__) && defined(_DIAB_TOOL)
# define COMPILER_ID "Diab"
# define COMPILER_VERSION_MAJOR DEC(__VERSION_MAJOR_NUMBER__)
# define COMPILER_VERSION_MINOR DEC(__VERSION_MINOR_NUMBER__)
# define COMPILER_VERSION_PATCH DEC(__VERSION_ARCH_FEATURE_NUMBER__)
# define COMPILER_VERSION_TWEAK DEC(__VERSION_BUG_FIX_NUMBER__)
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
#elif defined(__hpux) || defined(__hpua)
# define COMPILER_ID "HP"
#else /* unknown compiler */
# define COMPILER_ID ""
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
#ifdef SIMULATE_ID
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
#endif
#ifdef __QNXNTO__
char const* qnxnto = "INFO" ":" "qnxnto[]";
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
#endif
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
/* Identify known platforms by name. */
#if defined(__linux) || defined(__linux__) || defined(linux)
# define PLATFORM_ID "Linux"
#elif defined(__MSYS__)
# define PLATFORM_ID "MSYS"
#elif defined(__CYGWIN__)
# define PLATFORM_ID "Cygwin"
#elif defined(__MINGW32__)
# define PLATFORM_ID "MinGW"
#elif defined(__APPLE__)
# define PLATFORM_ID "Darwin"
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
# define PLATFORM_ID "Windows"
#elif defined(__FreeBSD__) || defined(__FreeBSD)
# define PLATFORM_ID "FreeBSD"
#elif defined(__NetBSD__) || defined(__NetBSD)
# define PLATFORM_ID "NetBSD"
#elif defined(__OpenBSD__) || defined(__OPENBSD)
# define PLATFORM_ID "OpenBSD"
#elif defined(__sun) || defined(sun)
# define PLATFORM_ID "SunOS"
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
# define PLATFORM_ID "AIX"
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
#elif defined(__HAIKU__)
# define PLATFORM_ID "Haiku"
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
#elif defined(__QNX__) || defined(__QNXNTO__)
# define PLATFORM_ID "QNX"
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
# define PLATFORM_ID "Tru64"
#elif defined(__riscos) || defined(__riscos__)
# define PLATFORM_ID "RISCos"
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
# define PLATFORM_ID "SINIX"
#elif defined(__UNIX_SV__)
# define PLATFORM_ID "UNIX_SV"
#elif defined(__bsdos__)
# define PLATFORM_ID "BSDOS"
#elif defined(_MPRAS) || defined(MPRAS)
# define PLATFORM_ID "MP-RAS"
#elif defined(__osf) || defined(__osf__)
# define PLATFORM_ID "OSF1"
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
# define PLATFORM_ID "SCO_SV"
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
# define PLATFORM_ID "ULTRIX"
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
# define PLATFORM_ID "Xenix"
#elif defined(__WATCOMC__)
# if defined(__LINUX__)
# define PLATFORM_ID "Linux"
# elif defined(__DOS__)
# define PLATFORM_ID "DOS"
# elif defined(__OS2__)
# define PLATFORM_ID "OS2"
# elif defined(__WINDOWS__)
# define PLATFORM_ID "Windows3x"
# elif defined(__VXWORKS__)
# define PLATFORM_ID "VxWorks"
# else /* unknown platform */
# define PLATFORM_ID
# endif
#elif defined(__INTEGRITY)
# if defined(INT_178B)
# define PLATFORM_ID "Integrity178"
# else /* regular Integrity */
# define PLATFORM_ID "Integrity"
# endif
# elif defined(_ADI_COMPILER)
# define PLATFORM_ID "ADSP"
#else /* unknown platform */
# define PLATFORM_ID
#endif
/* For windows compilers MSVC and Intel we can determine
the architecture of the compiler being used. This is because
the compilers do not have flags that can change the architecture,
but rather depend on which compiler is being used
*/
#if defined(_WIN32) && defined(_MSC_VER)
# if defined(_M_IA64)
# define ARCHITECTURE_ID "IA64"
# elif defined(_M_ARM64EC)
# define ARCHITECTURE_ID "ARM64EC"
# elif defined(_M_X64) || defined(_M_AMD64)
# define ARCHITECTURE_ID "x64"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# elif defined(_M_ARM64)
# define ARCHITECTURE_ID "ARM64"
# elif defined(_M_ARM)
# if _M_ARM == 4
# define ARCHITECTURE_ID "ARMV4I"
# elif _M_ARM == 5
# define ARCHITECTURE_ID "ARMV5I"
# else
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
# endif
# elif defined(_M_MIPS)
# define ARCHITECTURE_ID "MIPS"
# elif defined(_M_SH)
# define ARCHITECTURE_ID "SHx"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__WATCOMC__)
# if defined(_M_I86)
# define ARCHITECTURE_ID "I86"
# elif defined(_M_IX86)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
# if defined(__ICCARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__ICCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__ICCRH850__)
# define ARCHITECTURE_ID "RH850"
# elif defined(__ICCRL78__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__ICCRISCV__)
# define ARCHITECTURE_ID "RISCV"
# elif defined(__ICCAVR__)
# define ARCHITECTURE_ID "AVR"
# elif defined(__ICC430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__ICCV850__)
# define ARCHITECTURE_ID "V850"
# elif defined(__ICC8051__)
# define ARCHITECTURE_ID "8051"
# elif defined(__ICCSTM8__)
# define ARCHITECTURE_ID "STM8"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__ghs__)
# if defined(__PPC64__)
# define ARCHITECTURE_ID "PPC64"
# elif defined(__ppc__)
# define ARCHITECTURE_ID "PPC"
# elif defined(__ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__x86_64__)
# define ARCHITECTURE_ID "x64"
# elif defined(__i386__)
# define ARCHITECTURE_ID "X86"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__clang__) && defined(__ti__)
# if defined(__ARM_ARCH)
# define ARCHITECTURE_ID "ARM"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
#elif defined(__TI_COMPILER_VERSION__)
# if defined(__TI_ARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__MSP430__)
# define ARCHITECTURE_ID "MSP430"
# elif defined(__TMS320C28XX__)
# define ARCHITECTURE_ID "TMS320C28x"
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
# define ARCHITECTURE_ID "TMS320C6x"
# else /* unknown architecture */
# define ARCHITECTURE_ID ""
# endif
# elif defined(__ADSPSHARC__)
# define ARCHITECTURE_ID "SHARC"
# elif defined(__ADSPBLACKFIN__)
# define ARCHITECTURE_ID "Blackfin"
#elif defined(__TASKING__)
# if defined(__CTC__) || defined(__CPTC__)
# define ARCHITECTURE_ID "TriCore"
# elif defined(__CMCS__)
# define ARCHITECTURE_ID "MCS"
# elif defined(__CARM__) || defined(__CPARM__)
# define ARCHITECTURE_ID "ARM"
# elif defined(__CARC__)
# define ARCHITECTURE_ID "ARC"
# elif defined(__C51__)
# define ARCHITECTURE_ID "8051"
# elif defined(__CPCP__)
# define ARCHITECTURE_ID "PCP"
# else
# define ARCHITECTURE_ID ""
# endif
#elif defined(__RENESAS__)
# if defined(__CCRX__)
# define ARCHITECTURE_ID "RX"
# elif defined(__CCRL__)
# define ARCHITECTURE_ID "RL78"
# elif defined(__CCRH__)
# define ARCHITECTURE_ID "RH850"
# else
# define ARCHITECTURE_ID ""
# endif
#else
# define ARCHITECTURE_ID
#endif
/* Convert integer to decimal digit literals. */
#define DEC(n) \
('0' + (((n) / 10000000)%10)), \
('0' + (((n) / 1000000)%10)), \
('0' + (((n) / 100000)%10)), \
('0' + (((n) / 10000)%10)), \
('0' + (((n) / 1000)%10)), \
('0' + (((n) / 100)%10)), \
('0' + (((n) / 10)%10)), \
('0' + ((n) % 10))
/* Convert integer to hex digit literals. */
#define HEX(n) \
('0' + ((n)>>28 & 0xF)), \
('0' + ((n)>>24 & 0xF)), \
('0' + ((n)>>20 & 0xF)), \
('0' + ((n)>>16 & 0xF)), \
('0' + ((n)>>12 & 0xF)), \
('0' + ((n)>>8 & 0xF)), \
('0' + ((n)>>4 & 0xF)), \
('0' + ((n) & 0xF))
/* Construct a string literal encoding the version number. */
#ifdef COMPILER_VERSION
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
/* Construct a string literal encoding the version number components. */
#elif defined(COMPILER_VERSION_MAJOR)
char const info_version[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
COMPILER_VERSION_MAJOR,
# ifdef COMPILER_VERSION_MINOR
'.', COMPILER_VERSION_MINOR,
# ifdef COMPILER_VERSION_PATCH
'.', COMPILER_VERSION_PATCH,
# ifdef COMPILER_VERSION_TWEAK
'.', COMPILER_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct a string literal encoding the internal version number. */
#ifdef COMPILER_VERSION_INTERNAL
char const info_version_internal[] = {
'I', 'N', 'F', 'O', ':',
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
'i','n','t','e','r','n','a','l','[',
COMPILER_VERSION_INTERNAL,']','\0'};
#elif defined(COMPILER_VERSION_INTERNAL_STR)
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
#endif
/* Construct a string literal encoding the version number components. */
#ifdef SIMULATE_VERSION_MAJOR
char const info_simulate_version[] = {
'I', 'N', 'F', 'O', ':',
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
SIMULATE_VERSION_MAJOR,
# ifdef SIMULATE_VERSION_MINOR
'.', SIMULATE_VERSION_MINOR,
# ifdef SIMULATE_VERSION_PATCH
'.', SIMULATE_VERSION_PATCH,
# ifdef SIMULATE_VERSION_TWEAK
'.', SIMULATE_VERSION_TWEAK,
# endif
# endif
# endif
']','\0'};
#endif
/* Construct the string literal in pieces to prevent the source from
getting matched. Store it in a pointer rather than an array
because some compilers will just produce instructions to fill the
array rather than assigning a pointer to a static array. */
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
#define CXX_STD_98 199711L
#define CXX_STD_11 201103L
#define CXX_STD_14 201402L
#define CXX_STD_17 201703L
#define CXX_STD_20 202002L
#define CXX_STD_23 202302L
#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
# if _MSVC_LANG > CXX_STD_17
# define CXX_STD _MSVC_LANG
# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
# define CXX_STD CXX_STD_20
# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
# define CXX_STD CXX_STD_20
# elif _MSVC_LANG > CXX_STD_14
# define CXX_STD CXX_STD_17
# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# elif defined(__INTEL_CXX11_MODE__)
# define CXX_STD CXX_STD_11
# else
# define CXX_STD CXX_STD_98
# endif
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
# if _MSVC_LANG > __cplusplus
# define CXX_STD _MSVC_LANG
# else
# define CXX_STD __cplusplus
# endif
#elif defined(__NVCOMPILER)
# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
# define CXX_STD CXX_STD_20
# else
# define CXX_STD __cplusplus
# endif
#elif defined(__INTEL_COMPILER) || defined(__PGI)
# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
# define CXX_STD CXX_STD_17
# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# else
# define CXX_STD __cplusplus
# endif
#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
# define CXX_STD CXX_STD_14
# else
# define CXX_STD __cplusplus
# endif
#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
# define CXX_STD CXX_STD_11
#else
# define CXX_STD __cplusplus
#endif
const char* info_language_standard_default = "INFO" ":" "standard_default["
#if CXX_STD > CXX_STD_23
"26"
#elif CXX_STD > CXX_STD_20
"23"
#elif CXX_STD > CXX_STD_17
"20"
#elif CXX_STD > CXX_STD_14
"17"
#elif CXX_STD > CXX_STD_11
"14"
#elif CXX_STD >= CXX_STD_11
"11"
#else
"98"
#endif
"]";
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
defined(__TI_COMPILER_VERSION__) || defined(__RENESAS__)) && \
!defined(__STRICT_ANSI__)
"ON"
#else
"OFF"
#endif
"]";
/*--------------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#if defined(COMPILER_VERSION_INTERNAL) || defined(COMPILER_VERSION_INTERNAL_STR)
require += info_version_internal[argc];
#endif
#ifdef SIMULATE_ID
require += info_simulate[argc];
#endif
#ifdef SIMULATE_VERSION_MAJOR
require += info_simulate_version[argc];
#endif
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
require += info_cray[argc];
#endif
require += info_language_standard_default[argc];
require += info_language_extensions_default[argc];
(void)argv;
return require;
}
Binary file not shown.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
@@ -0,0 +1,7 @@
{
"InstallScripts" :
[
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/cmake_install.cmake"
],
"Parallel" : false
}
@@ -0,0 +1,68 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/CMakeLists.txt"
"CMakeFiles/4.3.3/CMakeCXXCompiler.cmake"
"CMakeFiles/4.3.3/CMakeSystem.cmake"
"/usr/lib/cmake/SDL2/SDL2Config.cmake"
"/usr/lib/cmake/SDL2/SDL2ConfigVersion.cmake"
"/usr/lib/cmake/SDL2/SDL2Targets-none.cmake"
"/usr/lib/cmake/SDL2/SDL2Targets.cmake"
"/usr/lib/cmake/SDL2/SDL2mainTargets-none.cmake"
"/usr/lib/cmake/SDL2/SDL2mainTargets.cmake"
"/usr/share/cmake/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake"
"/usr/share/cmake/Modules/CMakeLanguageInformation.cmake"
"/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake"
"/usr/share/cmake/Modules/Compiler/GNU.cmake"
"/usr/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake"
"/usr/share/cmake/Modules/FeatureSummary.cmake"
"/usr/share/cmake/Modules/FetchContent.cmake"
"/usr/share/cmake/Modules/FetchContent/CMakeLists.cmake.in"
"/usr/share/cmake/Modules/FindGit.cmake"
"/usr/share/cmake/Modules/FindOpenGL.cmake"
"/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake"
"/usr/share/cmake/Modules/FindPackageMessage.cmake"
"/usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake"
"/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake"
"/usr/share/cmake/Modules/Linker/GNU-CXX.cmake"
"/usr/share/cmake/Modules/Linker/GNU.cmake"
"/usr/share/cmake/Modules/Platform/Linker/GNU.cmake"
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake"
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake"
"/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake"
"/usr/share/cmake/Modules/Platform/Linux-GNU.cmake"
"/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake"
"/usr/share/cmake/Modules/Platform/Linux.cmake"
"/usr/share/cmake/Modules/Platform/UnixPaths.cmake"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"_deps/imgui-subbuild/CMakeLists.txt"
"_deps/implot-subbuild/CMakeLists.txt"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/imgui_lib.dir/DependInfo.cmake"
"CMakeFiles/StreamHubClient.dir/DependInfo.cmake"
)
+157
View File
@@ -0,0 +1,157 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "all" target.
all: CMakeFiles/imgui_lib.dir/all
all: CMakeFiles/StreamHubClient.dir/all
.PHONY : all
# The main recursive "codegen" target.
codegen: CMakeFiles/imgui_lib.dir/codegen
codegen: CMakeFiles/StreamHubClient.dir/codegen
.PHONY : codegen
# The main recursive "preinstall" target.
preinstall:
.PHONY : preinstall
# The main recursive "clean" target.
clean: CMakeFiles/imgui_lib.dir/clean
clean: CMakeFiles/StreamHubClient.dir/clean
.PHONY : clean
#=============================================================================
# Target rules for target CMakeFiles/imgui_lib.dir
# All Build rule for target.
CMakeFiles/imgui_lib.dir/all:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=10,11,12,13,14,15,16,17,18 "Built target imgui_lib"
.PHONY : CMakeFiles/imgui_lib.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/imgui_lib.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles 9
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/imgui_lib.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles 0
.PHONY : CMakeFiles/imgui_lib.dir/rule
# Convenience name for target.
imgui_lib: CMakeFiles/imgui_lib.dir/rule
.PHONY : imgui_lib
# codegen rule for target.
CMakeFiles/imgui_lib.dir/codegen:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=10,11,12,13,14,15,16,17,18 "Finished codegen for target imgui_lib"
.PHONY : CMakeFiles/imgui_lib.dir/codegen
# clean rule for target.
CMakeFiles/imgui_lib.dir/clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/clean
.PHONY : CMakeFiles/imgui_lib.dir/clean
#=============================================================================
# Target rules for target CMakeFiles/StreamHubClient.dir
# All Build rule for target.
CMakeFiles/StreamHubClient.dir/all: CMakeFiles/imgui_lib.dir/all
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9 "Built target StreamHubClient"
.PHONY : CMakeFiles/StreamHubClient.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/StreamHubClient.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles 18
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/StreamHubClient.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles 0
.PHONY : CMakeFiles/StreamHubClient.dir/rule
# Convenience name for target.
StreamHubClient: CMakeFiles/StreamHubClient.dir/rule
.PHONY : StreamHubClient
# codegen rule for target.
CMakeFiles/StreamHubClient.dir/codegen:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9 "Finished codegen for target StreamHubClient"
.PHONY : CMakeFiles/StreamHubClient.dir/codegen
# clean rule for target.
CMakeFiles/StreamHubClient.dir/clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/clean
.PHONY : CMakeFiles/StreamHubClient.dir/clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
@@ -0,0 +1,31 @@
# Consider dependencies only in project.
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/App.cpp" "CMakeFiles/StreamHubClient.dir/App.cpp.o" "gcc" "CMakeFiles/StreamHubClient.dir/App.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/PlotPanel.cpp" "CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o" "gcc" "CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/Protocol.cpp" "CMakeFiles/StreamHubClient.dir/Protocol.cpp.o" "gcc" "CMakeFiles/StreamHubClient.dir/Protocol.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/SourcePanel.cpp" "CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o" "gcc" "CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/StatsPanel.cpp" "CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o" "gcc" "CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/TriggerPanel.cpp" "CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o" "gcc" "CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/WSClient.cpp" "CMakeFiles/StreamHubClient.dir/WSClient.cpp.o" "gcc" "CMakeFiles/StreamHubClient.dir/WSClient.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/main.cpp" "CMakeFiles/StreamHubClient.dir/main.cpp.o" "gcc" "CMakeFiles/StreamHubClient.dir/main.cpp.o.d"
"" "StreamHubClient" "gcc" "CMakeFiles/StreamHubClient.dir/link.d"
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
@@ -0,0 +1,230 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build
# Include any dependencies generated for this target.
include CMakeFiles/StreamHubClient.dir/depend.make
# Include any dependencies generated by the compiler for this target.
include CMakeFiles/StreamHubClient.dir/compiler_depend.make
# Include the progress variables for this target.
include CMakeFiles/StreamHubClient.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/codegen:
.PHONY : CMakeFiles/StreamHubClient.dir/codegen
CMakeFiles/StreamHubClient.dir/main.cpp.o: CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/main.cpp.o: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/main.cpp
CMakeFiles/StreamHubClient.dir/main.cpp.o: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/StreamHubClient.dir/main.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/StreamHubClient.dir/main.cpp.o -MF CMakeFiles/StreamHubClient.dir/main.cpp.o.d -o CMakeFiles/StreamHubClient.dir/main.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/main.cpp
CMakeFiles/StreamHubClient.dir/main.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/StreamHubClient.dir/main.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/main.cpp > CMakeFiles/StreamHubClient.dir/main.cpp.i
CMakeFiles/StreamHubClient.dir/main.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/StreamHubClient.dir/main.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/main.cpp -o CMakeFiles/StreamHubClient.dir/main.cpp.s
CMakeFiles/StreamHubClient.dir/App.cpp.o: CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/App.cpp.o: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/App.cpp
CMakeFiles/StreamHubClient.dir/App.cpp.o: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/StreamHubClient.dir/App.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/StreamHubClient.dir/App.cpp.o -MF CMakeFiles/StreamHubClient.dir/App.cpp.o.d -o CMakeFiles/StreamHubClient.dir/App.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/App.cpp
CMakeFiles/StreamHubClient.dir/App.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/StreamHubClient.dir/App.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/App.cpp > CMakeFiles/StreamHubClient.dir/App.cpp.i
CMakeFiles/StreamHubClient.dir/App.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/StreamHubClient.dir/App.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/App.cpp -o CMakeFiles/StreamHubClient.dir/App.cpp.s
CMakeFiles/StreamHubClient.dir/WSClient.cpp.o: CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/WSClient.cpp.o: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/WSClient.cpp
CMakeFiles/StreamHubClient.dir/WSClient.cpp.o: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/StreamHubClient.dir/WSClient.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/StreamHubClient.dir/WSClient.cpp.o -MF CMakeFiles/StreamHubClient.dir/WSClient.cpp.o.d -o CMakeFiles/StreamHubClient.dir/WSClient.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/WSClient.cpp
CMakeFiles/StreamHubClient.dir/WSClient.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/StreamHubClient.dir/WSClient.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/WSClient.cpp > CMakeFiles/StreamHubClient.dir/WSClient.cpp.i
CMakeFiles/StreamHubClient.dir/WSClient.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/StreamHubClient.dir/WSClient.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/WSClient.cpp -o CMakeFiles/StreamHubClient.dir/WSClient.cpp.s
CMakeFiles/StreamHubClient.dir/Protocol.cpp.o: CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/Protocol.cpp.o: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/Protocol.cpp
CMakeFiles/StreamHubClient.dir/Protocol.cpp.o: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/StreamHubClient.dir/Protocol.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/StreamHubClient.dir/Protocol.cpp.o -MF CMakeFiles/StreamHubClient.dir/Protocol.cpp.o.d -o CMakeFiles/StreamHubClient.dir/Protocol.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/Protocol.cpp
CMakeFiles/StreamHubClient.dir/Protocol.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/StreamHubClient.dir/Protocol.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/Protocol.cpp > CMakeFiles/StreamHubClient.dir/Protocol.cpp.i
CMakeFiles/StreamHubClient.dir/Protocol.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/StreamHubClient.dir/Protocol.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/Protocol.cpp -o CMakeFiles/StreamHubClient.dir/Protocol.cpp.s
CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o: CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/SourcePanel.cpp
CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o -MF CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o.d -o CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/SourcePanel.cpp
CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/SourcePanel.cpp > CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.i
CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/SourcePanel.cpp -o CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.s
CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o: CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/PlotPanel.cpp
CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o -MF CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o.d -o CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/PlotPanel.cpp
CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/PlotPanel.cpp > CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.i
CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/PlotPanel.cpp -o CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.s
CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o: CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/TriggerPanel.cpp
CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o -MF CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o.d -o CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/TriggerPanel.cpp
CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/TriggerPanel.cpp > CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.i
CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/TriggerPanel.cpp -o CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.s
CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o: CMakeFiles/StreamHubClient.dir/flags.make
CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/StatsPanel.cpp
CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o -MF CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o.d -o CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/StatsPanel.cpp
CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/StatsPanel.cpp > CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.i
CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/StatsPanel.cpp -o CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.s
# Object files for target StreamHubClient
StreamHubClient_OBJECTS = \
"CMakeFiles/StreamHubClient.dir/main.cpp.o" \
"CMakeFiles/StreamHubClient.dir/App.cpp.o" \
"CMakeFiles/StreamHubClient.dir/WSClient.cpp.o" \
"CMakeFiles/StreamHubClient.dir/Protocol.cpp.o" \
"CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o" \
"CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o" \
"CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o" \
"CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o"
# External object files for target StreamHubClient
StreamHubClient_EXTERNAL_OBJECTS =
StreamHubClient: CMakeFiles/StreamHubClient.dir/main.cpp.o
StreamHubClient: CMakeFiles/StreamHubClient.dir/App.cpp.o
StreamHubClient: CMakeFiles/StreamHubClient.dir/WSClient.cpp.o
StreamHubClient: CMakeFiles/StreamHubClient.dir/Protocol.cpp.o
StreamHubClient: CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o
StreamHubClient: CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o
StreamHubClient: CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o
StreamHubClient: CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o
StreamHubClient: CMakeFiles/StreamHubClient.dir/build.make
StreamHubClient: CMakeFiles/StreamHubClient.dir/compiler_depend.ts
StreamHubClient: libimgui_lib.a
StreamHubClient: /usr/lib/libSDL2-2.0.so.0.3200.68
StreamHubClient: /usr/lib/libGLX.so
StreamHubClient: /usr/lib/libOpenGL.so
StreamHubClient: CMakeFiles/StreamHubClient.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX executable StreamHubClient"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/StreamHubClient.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/StreamHubClient.dir/build: StreamHubClient
.PHONY : CMakeFiles/StreamHubClient.dir/build
CMakeFiles/StreamHubClient.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/StreamHubClient.dir/cmake_clean.cmake
.PHONY : CMakeFiles/StreamHubClient.dir/clean
CMakeFiles/StreamHubClient.dir/depend:
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/martino/Projects/MARTe_Integrated_components/Client/streamhub /home/martino/Projects/MARTe_Integrated_components/Client/streamhub /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/StreamHubClient.dir/DependInfo.cmake "--color=$(COLOR)" StreamHubClient
.PHONY : CMakeFiles/StreamHubClient.dir/depend
@@ -0,0 +1,26 @@
file(REMOVE_RECURSE
"CMakeFiles/StreamHubClient.dir/link.d"
"CMakeFiles/StreamHubClient.dir/App.cpp.o"
"CMakeFiles/StreamHubClient.dir/App.cpp.o.d"
"CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o"
"CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o.d"
"CMakeFiles/StreamHubClient.dir/Protocol.cpp.o"
"CMakeFiles/StreamHubClient.dir/Protocol.cpp.o.d"
"CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o"
"CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o.d"
"CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o"
"CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o.d"
"CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o"
"CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o.d"
"CMakeFiles/StreamHubClient.dir/WSClient.cpp.o"
"CMakeFiles/StreamHubClient.dir/WSClient.cpp.o.d"
"CMakeFiles/StreamHubClient.dir/main.cpp.o"
"CMakeFiles/StreamHubClient.dir/main.cpp.o.d"
"StreamHubClient"
"StreamHubClient.pdb"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/StreamHubClient.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,2 @@
# CMAKE generated file: DO NOT EDIT!
# Timestamp file for compiler generated dependencies management for StreamHubClient.
@@ -0,0 +1,2 @@
# Empty dependencies file for StreamHubClient.
# This may be replaced when dependencies are built.
@@ -0,0 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# compile CXX with /usr/bin/c++
CXX_DEFINES = -DAPP_RESOURCE_DIR=\"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/resources\" -DHAVE_FONT_AWESOME
CXX_INCLUDES = -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/../../Source/Applications/StreamHub -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/resources/fonts -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src -isystem /usr/include/SDL2
CXX_FLAGS = -O3 -DNDEBUG -std=gnu++17 -Wall -Wextra -Wno-unused-parameter
@@ -0,0 +1 @@
/usr/bin/c++ -O3 -DNDEBUG -Wl,--dependency-file=CMakeFiles/StreamHubClient.dir/link.d CMakeFiles/StreamHubClient.dir/main.cpp.o CMakeFiles/StreamHubClient.dir/App.cpp.o CMakeFiles/StreamHubClient.dir/WSClient.cpp.o CMakeFiles/StreamHubClient.dir/Protocol.cpp.o CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o -o StreamHubClient libimgui_lib.a /usr/lib/libSDL2-2.0.so.0.3200.68 -lpthread /usr/lib/libGLX.so /usr/lib/libOpenGL.so
@@ -0,0 +1,10 @@
CMAKE_PROGRESS_1 = 1
CMAKE_PROGRESS_2 = 2
CMAKE_PROGRESS_3 = 3
CMAKE_PROGRESS_4 = 4
CMAKE_PROGRESS_5 = 5
CMAKE_PROGRESS_6 = 6
CMAKE_PROGRESS_7 = 7
CMAKE_PROGRESS_8 = 8
CMAKE_PROGRESS_9 = 9
@@ -0,0 +1,8 @@
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/imgui_lib.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/StreamHubClient.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/edit_cache.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/rebuild_cache.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/list_install_components.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/install.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/install/local.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/install/strip.dir
@@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
@@ -0,0 +1,30 @@
# Consider dependencies only in project.
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends/imgui_impl_opengl3.cpp" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o" "gcc" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends/imgui_impl_sdl2.cpp" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o" "gcc" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui.cpp" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o" "gcc" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_draw.cpp" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o" "gcc" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_tables.cpp" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o" "gcc" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_widgets.cpp" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o" "gcc" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src/implot.cpp" "CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o" "gcc" "CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o.d"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src/implot_items.cpp" "CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o" "gcc" "CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o.d"
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
@@ -0,0 +1,226 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build
# Include any dependencies generated for this target.
include CMakeFiles/imgui_lib.dir/depend.make
# Include any dependencies generated by the compiler for this target.
include CMakeFiles/imgui_lib.dir/compiler_depend.make
# Include the progress variables for this target.
include CMakeFiles/imgui_lib.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/codegen:
.PHONY : CMakeFiles/imgui_lib.dir/codegen
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o: CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o: _deps/imgui-src/imgui.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o: CMakeFiles/imgui_lib.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o -MF CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o.d -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui.cpp > CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.i
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui.cpp -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.s
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o: CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o: _deps/imgui-src/imgui_draw.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o: CMakeFiles/imgui_lib.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o -MF CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o.d -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_draw.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_draw.cpp > CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.i
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_draw.cpp -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.s
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o: CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o: _deps/imgui-src/imgui_tables.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o: CMakeFiles/imgui_lib.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o -MF CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o.d -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_tables.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_tables.cpp > CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.i
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_tables.cpp -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.s
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o: CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o: _deps/imgui-src/imgui_widgets.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o: CMakeFiles/imgui_lib.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o -MF CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o.d -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_widgets.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_widgets.cpp > CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.i
CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/imgui_widgets.cpp -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.s
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o: CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o: _deps/imgui-src/backends/imgui_impl_sdl2.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o: CMakeFiles/imgui_lib.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o -MF CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o.d -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends/imgui_impl_sdl2.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends/imgui_impl_sdl2.cpp > CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.i
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends/imgui_impl_sdl2.cpp -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.s
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o: CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o: _deps/imgui-src/backends/imgui_impl_opengl3.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o: CMakeFiles/imgui_lib.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o -MF CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o.d -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends/imgui_impl_opengl3.cpp
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends/imgui_impl_opengl3.cpp > CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.i
CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends/imgui_impl_opengl3.cpp -o CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.s
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o: CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o: _deps/implot-src/implot.cpp
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o: CMakeFiles/imgui_lib.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o -MF CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o.d -o CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src/implot.cpp
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src/implot.cpp > CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.i
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src/implot.cpp -o CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.s
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o: CMakeFiles/imgui_lib.dir/flags.make
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o: _deps/implot-src/implot_items.cpp
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o: CMakeFiles/imgui_lib.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o -MF CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o.d -o CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o -c /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src/implot_items.cpp
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src/implot_items.cpp > CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.i
CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src/implot_items.cpp -o CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.s
# Object files for target imgui_lib
imgui_lib_OBJECTS = \
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o" \
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o" \
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o" \
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o" \
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o" \
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o" \
"CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o" \
"CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o"
# External object files for target imgui_lib
imgui_lib_EXTERNAL_OBJECTS =
libimgui_lib.a: CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o
libimgui_lib.a: CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o
libimgui_lib.a: CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o
libimgui_lib.a: CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o
libimgui_lib.a: CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o
libimgui_lib.a: CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o
libimgui_lib.a: CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o
libimgui_lib.a: CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o
libimgui_lib.a: CMakeFiles/imgui_lib.dir/build.make
libimgui_lib.a: CMakeFiles/imgui_lib.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX static library libimgui_lib.a"
$(CMAKE_COMMAND) -P CMakeFiles/imgui_lib.dir/cmake_clean_target.cmake
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/imgui_lib.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/imgui_lib.dir/build: libimgui_lib.a
.PHONY : CMakeFiles/imgui_lib.dir/build
CMakeFiles/imgui_lib.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/imgui_lib.dir/cmake_clean.cmake
.PHONY : CMakeFiles/imgui_lib.dir/clean
CMakeFiles/imgui_lib.dir/depend:
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/martino/Projects/MARTe_Integrated_components/Client/streamhub /home/martino/Projects/MARTe_Integrated_components/Client/streamhub /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles/imgui_lib.dir/DependInfo.cmake "--color=$(COLOR)" imgui_lib
.PHONY : CMakeFiles/imgui_lib.dir/depend
@@ -0,0 +1,25 @@
file(REMOVE_RECURSE
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o.d"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o.d"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o.d"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o.d"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o.d"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o"
"CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o.d"
"CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o"
"CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o.d"
"CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o"
"CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o.d"
"libimgui_lib.a"
"libimgui_lib.pdb"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/imgui_lib.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
@@ -0,0 +1,3 @@
file(REMOVE_RECURSE
"libimgui_lib.a"
)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,2 @@
# CMAKE generated file: DO NOT EDIT!
# Timestamp file for compiler generated dependencies management for imgui_lib.
@@ -0,0 +1,2 @@
# Empty dependencies file for imgui_lib.
# This may be replaced when dependencies are built.
@@ -0,0 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# compile CXX with /usr/bin/c++
CXX_DEFINES =
CXX_INCLUDES = -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src/backends -I/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-src -isystem /usr/include/SDL2
CXX_FLAGS = -O3 -DNDEBUG -std=gnu++17 -w
@@ -0,0 +1,2 @@
/usr/bin/ar qc libimgui_lib.a "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o" "CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o" "CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o" "CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o"
/usr/bin/ranlib libimgui_lib.a
@@ -0,0 +1,10 @@
CMAKE_PROGRESS_1 = 10
CMAKE_PROGRESS_2 = 11
CMAKE_PROGRESS_3 = 12
CMAKE_PROGRESS_4 = 13
CMAKE_PROGRESS_5 = 14
CMAKE_PROGRESS_6 = 15
CMAKE_PROGRESS_7 = 16
CMAKE_PROGRESS_8 = 17
CMAKE_PROGRESS_9 = 18
@@ -0,0 +1 @@
18
+649
View File
@@ -0,0 +1,649 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named imgui_lib
# Build rule for target.
imgui_lib: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 imgui_lib
.PHONY : imgui_lib
# fast build rule for target.
imgui_lib/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/build
.PHONY : imgui_lib/fast
#=============================================================================
# Target rules for targets named StreamHubClient
# Build rule for target.
StreamHubClient: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 StreamHubClient
.PHONY : StreamHubClient
# fast build rule for target.
StreamHubClient/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/build
.PHONY : StreamHubClient/fast
App.o: App.cpp.o
.PHONY : App.o
# target to build an object file
App.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/App.cpp.o
.PHONY : App.cpp.o
App.i: App.cpp.i
.PHONY : App.i
# target to preprocess a source file
App.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/App.cpp.i
.PHONY : App.cpp.i
App.s: App.cpp.s
.PHONY : App.s
# target to generate assembly for a file
App.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/App.cpp.s
.PHONY : App.cpp.s
PlotPanel.o: PlotPanel.cpp.o
.PHONY : PlotPanel.o
# target to build an object file
PlotPanel.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.o
.PHONY : PlotPanel.cpp.o
PlotPanel.i: PlotPanel.cpp.i
.PHONY : PlotPanel.i
# target to preprocess a source file
PlotPanel.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.i
.PHONY : PlotPanel.cpp.i
PlotPanel.s: PlotPanel.cpp.s
.PHONY : PlotPanel.s
# target to generate assembly for a file
PlotPanel.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/PlotPanel.cpp.s
.PHONY : PlotPanel.cpp.s
Protocol.o: Protocol.cpp.o
.PHONY : Protocol.o
# target to build an object file
Protocol.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/Protocol.cpp.o
.PHONY : Protocol.cpp.o
Protocol.i: Protocol.cpp.i
.PHONY : Protocol.i
# target to preprocess a source file
Protocol.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/Protocol.cpp.i
.PHONY : Protocol.cpp.i
Protocol.s: Protocol.cpp.s
.PHONY : Protocol.s
# target to generate assembly for a file
Protocol.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/Protocol.cpp.s
.PHONY : Protocol.cpp.s
SourcePanel.o: SourcePanel.cpp.o
.PHONY : SourcePanel.o
# target to build an object file
SourcePanel.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.o
.PHONY : SourcePanel.cpp.o
SourcePanel.i: SourcePanel.cpp.i
.PHONY : SourcePanel.i
# target to preprocess a source file
SourcePanel.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.i
.PHONY : SourcePanel.cpp.i
SourcePanel.s: SourcePanel.cpp.s
.PHONY : SourcePanel.s
# target to generate assembly for a file
SourcePanel.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/SourcePanel.cpp.s
.PHONY : SourcePanel.cpp.s
StatsPanel.o: StatsPanel.cpp.o
.PHONY : StatsPanel.o
# target to build an object file
StatsPanel.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.o
.PHONY : StatsPanel.cpp.o
StatsPanel.i: StatsPanel.cpp.i
.PHONY : StatsPanel.i
# target to preprocess a source file
StatsPanel.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.i
.PHONY : StatsPanel.cpp.i
StatsPanel.s: StatsPanel.cpp.s
.PHONY : StatsPanel.s
# target to generate assembly for a file
StatsPanel.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/StatsPanel.cpp.s
.PHONY : StatsPanel.cpp.s
TriggerPanel.o: TriggerPanel.cpp.o
.PHONY : TriggerPanel.o
# target to build an object file
TriggerPanel.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.o
.PHONY : TriggerPanel.cpp.o
TriggerPanel.i: TriggerPanel.cpp.i
.PHONY : TriggerPanel.i
# target to preprocess a source file
TriggerPanel.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.i
.PHONY : TriggerPanel.cpp.i
TriggerPanel.s: TriggerPanel.cpp.s
.PHONY : TriggerPanel.s
# target to generate assembly for a file
TriggerPanel.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/TriggerPanel.cpp.s
.PHONY : TriggerPanel.cpp.s
WSClient.o: WSClient.cpp.o
.PHONY : WSClient.o
# target to build an object file
WSClient.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/WSClient.cpp.o
.PHONY : WSClient.cpp.o
WSClient.i: WSClient.cpp.i
.PHONY : WSClient.i
# target to preprocess a source file
WSClient.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/WSClient.cpp.i
.PHONY : WSClient.cpp.i
WSClient.s: WSClient.cpp.s
.PHONY : WSClient.s
# target to generate assembly for a file
WSClient.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/WSClient.cpp.s
.PHONY : WSClient.cpp.s
_deps/imgui-src/backends/imgui_impl_opengl3.o: _deps/imgui-src/backends/imgui_impl_opengl3.cpp.o
.PHONY : _deps/imgui-src/backends/imgui_impl_opengl3.o
# target to build an object file
_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.o
.PHONY : _deps/imgui-src/backends/imgui_impl_opengl3.cpp.o
_deps/imgui-src/backends/imgui_impl_opengl3.i: _deps/imgui-src/backends/imgui_impl_opengl3.cpp.i
.PHONY : _deps/imgui-src/backends/imgui_impl_opengl3.i
# target to preprocess a source file
_deps/imgui-src/backends/imgui_impl_opengl3.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.i
.PHONY : _deps/imgui-src/backends/imgui_impl_opengl3.cpp.i
_deps/imgui-src/backends/imgui_impl_opengl3.s: _deps/imgui-src/backends/imgui_impl_opengl3.cpp.s
.PHONY : _deps/imgui-src/backends/imgui_impl_opengl3.s
# target to generate assembly for a file
_deps/imgui-src/backends/imgui_impl_opengl3.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_opengl3.cpp.s
.PHONY : _deps/imgui-src/backends/imgui_impl_opengl3.cpp.s
_deps/imgui-src/backends/imgui_impl_sdl2.o: _deps/imgui-src/backends/imgui_impl_sdl2.cpp.o
.PHONY : _deps/imgui-src/backends/imgui_impl_sdl2.o
# target to build an object file
_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.o
.PHONY : _deps/imgui-src/backends/imgui_impl_sdl2.cpp.o
_deps/imgui-src/backends/imgui_impl_sdl2.i: _deps/imgui-src/backends/imgui_impl_sdl2.cpp.i
.PHONY : _deps/imgui-src/backends/imgui_impl_sdl2.i
# target to preprocess a source file
_deps/imgui-src/backends/imgui_impl_sdl2.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.i
.PHONY : _deps/imgui-src/backends/imgui_impl_sdl2.cpp.i
_deps/imgui-src/backends/imgui_impl_sdl2.s: _deps/imgui-src/backends/imgui_impl_sdl2.cpp.s
.PHONY : _deps/imgui-src/backends/imgui_impl_sdl2.s
# target to generate assembly for a file
_deps/imgui-src/backends/imgui_impl_sdl2.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/backends/imgui_impl_sdl2.cpp.s
.PHONY : _deps/imgui-src/backends/imgui_impl_sdl2.cpp.s
_deps/imgui-src/imgui.o: _deps/imgui-src/imgui.cpp.o
.PHONY : _deps/imgui-src/imgui.o
# target to build an object file
_deps/imgui-src/imgui.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.o
.PHONY : _deps/imgui-src/imgui.cpp.o
_deps/imgui-src/imgui.i: _deps/imgui-src/imgui.cpp.i
.PHONY : _deps/imgui-src/imgui.i
# target to preprocess a source file
_deps/imgui-src/imgui.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.i
.PHONY : _deps/imgui-src/imgui.cpp.i
_deps/imgui-src/imgui.s: _deps/imgui-src/imgui.cpp.s
.PHONY : _deps/imgui-src/imgui.s
# target to generate assembly for a file
_deps/imgui-src/imgui.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui.cpp.s
.PHONY : _deps/imgui-src/imgui.cpp.s
_deps/imgui-src/imgui_draw.o: _deps/imgui-src/imgui_draw.cpp.o
.PHONY : _deps/imgui-src/imgui_draw.o
# target to build an object file
_deps/imgui-src/imgui_draw.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.o
.PHONY : _deps/imgui-src/imgui_draw.cpp.o
_deps/imgui-src/imgui_draw.i: _deps/imgui-src/imgui_draw.cpp.i
.PHONY : _deps/imgui-src/imgui_draw.i
# target to preprocess a source file
_deps/imgui-src/imgui_draw.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.i
.PHONY : _deps/imgui-src/imgui_draw.cpp.i
_deps/imgui-src/imgui_draw.s: _deps/imgui-src/imgui_draw.cpp.s
.PHONY : _deps/imgui-src/imgui_draw.s
# target to generate assembly for a file
_deps/imgui-src/imgui_draw.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_draw.cpp.s
.PHONY : _deps/imgui-src/imgui_draw.cpp.s
_deps/imgui-src/imgui_tables.o: _deps/imgui-src/imgui_tables.cpp.o
.PHONY : _deps/imgui-src/imgui_tables.o
# target to build an object file
_deps/imgui-src/imgui_tables.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.o
.PHONY : _deps/imgui-src/imgui_tables.cpp.o
_deps/imgui-src/imgui_tables.i: _deps/imgui-src/imgui_tables.cpp.i
.PHONY : _deps/imgui-src/imgui_tables.i
# target to preprocess a source file
_deps/imgui-src/imgui_tables.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.i
.PHONY : _deps/imgui-src/imgui_tables.cpp.i
_deps/imgui-src/imgui_tables.s: _deps/imgui-src/imgui_tables.cpp.s
.PHONY : _deps/imgui-src/imgui_tables.s
# target to generate assembly for a file
_deps/imgui-src/imgui_tables.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_tables.cpp.s
.PHONY : _deps/imgui-src/imgui_tables.cpp.s
_deps/imgui-src/imgui_widgets.o: _deps/imgui-src/imgui_widgets.cpp.o
.PHONY : _deps/imgui-src/imgui_widgets.o
# target to build an object file
_deps/imgui-src/imgui_widgets.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.o
.PHONY : _deps/imgui-src/imgui_widgets.cpp.o
_deps/imgui-src/imgui_widgets.i: _deps/imgui-src/imgui_widgets.cpp.i
.PHONY : _deps/imgui-src/imgui_widgets.i
# target to preprocess a source file
_deps/imgui-src/imgui_widgets.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.i
.PHONY : _deps/imgui-src/imgui_widgets.cpp.i
_deps/imgui-src/imgui_widgets.s: _deps/imgui-src/imgui_widgets.cpp.s
.PHONY : _deps/imgui-src/imgui_widgets.s
# target to generate assembly for a file
_deps/imgui-src/imgui_widgets.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/imgui-src/imgui_widgets.cpp.s
.PHONY : _deps/imgui-src/imgui_widgets.cpp.s
_deps/implot-src/implot.o: _deps/implot-src/implot.cpp.o
.PHONY : _deps/implot-src/implot.o
# target to build an object file
_deps/implot-src/implot.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.o
.PHONY : _deps/implot-src/implot.cpp.o
_deps/implot-src/implot.i: _deps/implot-src/implot.cpp.i
.PHONY : _deps/implot-src/implot.i
# target to preprocess a source file
_deps/implot-src/implot.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.i
.PHONY : _deps/implot-src/implot.cpp.i
_deps/implot-src/implot.s: _deps/implot-src/implot.cpp.s
.PHONY : _deps/implot-src/implot.s
# target to generate assembly for a file
_deps/implot-src/implot.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/implot-src/implot.cpp.s
.PHONY : _deps/implot-src/implot.cpp.s
_deps/implot-src/implot_items.o: _deps/implot-src/implot_items.cpp.o
.PHONY : _deps/implot-src/implot_items.o
# target to build an object file
_deps/implot-src/implot_items.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.o
.PHONY : _deps/implot-src/implot_items.cpp.o
_deps/implot-src/implot_items.i: _deps/implot-src/implot_items.cpp.i
.PHONY : _deps/implot-src/implot_items.i
# target to preprocess a source file
_deps/implot-src/implot_items.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.i
.PHONY : _deps/implot-src/implot_items.cpp.i
_deps/implot-src/implot_items.s: _deps/implot-src/implot_items.cpp.s
.PHONY : _deps/implot-src/implot_items.s
# target to generate assembly for a file
_deps/implot-src/implot_items.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui_lib.dir/build.make CMakeFiles/imgui_lib.dir/_deps/implot-src/implot_items.cpp.s
.PHONY : _deps/implot-src/implot_items.cpp.s
main.o: main.cpp.o
.PHONY : main.o
# target to build an object file
main.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/main.cpp.o
.PHONY : main.cpp.o
main.i: main.cpp.i
.PHONY : main.i
# target to preprocess a source file
main.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/main.cpp.i
.PHONY : main.cpp.i
main.s: main.cpp.s
.PHONY : main.s
# target to generate assembly for a file
main.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/StreamHubClient.dir/build.make CMakeFiles/StreamHubClient.dir/main.cpp.s
.PHONY : main.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... edit_cache"
@echo "... install"
@echo "... install/local"
@echo "... install/strip"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... StreamHubClient"
@echo "... imgui_lib"
@echo "... App.o"
@echo "... App.i"
@echo "... App.s"
@echo "... PlotPanel.o"
@echo "... PlotPanel.i"
@echo "... PlotPanel.s"
@echo "... Protocol.o"
@echo "... Protocol.i"
@echo "... Protocol.s"
@echo "... SourcePanel.o"
@echo "... SourcePanel.i"
@echo "... SourcePanel.s"
@echo "... StatsPanel.o"
@echo "... StatsPanel.i"
@echo "... StatsPanel.s"
@echo "... TriggerPanel.o"
@echo "... TriggerPanel.i"
@echo "... TriggerPanel.s"
@echo "... WSClient.o"
@echo "... WSClient.i"
@echo "... WSClient.s"
@echo "... _deps/imgui-src/backends/imgui_impl_opengl3.o"
@echo "... _deps/imgui-src/backends/imgui_impl_opengl3.i"
@echo "... _deps/imgui-src/backends/imgui_impl_opengl3.s"
@echo "... _deps/imgui-src/backends/imgui_impl_sdl2.o"
@echo "... _deps/imgui-src/backends/imgui_impl_sdl2.i"
@echo "... _deps/imgui-src/backends/imgui_impl_sdl2.s"
@echo "... _deps/imgui-src/imgui.o"
@echo "... _deps/imgui-src/imgui.i"
@echo "... _deps/imgui-src/imgui.s"
@echo "... _deps/imgui-src/imgui_draw.o"
@echo "... _deps/imgui-src/imgui_draw.i"
@echo "... _deps/imgui-src/imgui_draw.s"
@echo "... _deps/imgui-src/imgui_tables.o"
@echo "... _deps/imgui-src/imgui_tables.i"
@echo "... _deps/imgui-src/imgui_tables.s"
@echo "... _deps/imgui-src/imgui_widgets.o"
@echo "... _deps/imgui-src/imgui_widgets.i"
@echo "... _deps/imgui-src/imgui_widgets.s"
@echo "... _deps/implot-src/implot.o"
@echo "... _deps/implot-src/implot.i"
@echo "... _deps/implot-src/implot.s"
@echo "... _deps/implot-src/implot_items.o"
@echo "... _deps/implot-src/implot_items.i"
@echo "... _deps/implot-src/implot_items.s"
@echo "... main.o"
@echo "... main.i"
@echo "... main.s"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
Binary file not shown.
Submodule Client/streamhub/build/_deps/imgui-src added at dbb5eeaadf
@@ -0,0 +1,125 @@
# This is the CMakeCache file.
# For build in directory: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/pkgRedirects
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//No help, variable specified on the command line.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
//Value Computed by CMake
CMAKE_PROJECT_COMPAT_VERSION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=imgui-populate
//Value Computed by CMake
CMAKE_PROJECT_SPDX_LICENSE:STATIC=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Value Computed by CMake
imgui-populate_BINARY_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
//Value Computed by CMake
imgui-populate_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
imgui-populate_SOURCE_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
########################
# INTERNAL cache entries
########################
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=3
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
//Name of CMakeLists files to read
CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/usr/share/cmake
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
@@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Linux-7.0.10-arch1-1")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "7.0.10-arch1-1")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-7.0.10-arch1-1")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "7.0.10-arch1-1")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)
@@ -0,0 +1,81 @@
---
events:
-
kind: "find-v1"
backtrace:
- "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:12 (find_program)"
- "CMakeLists.txt:16 (project)"
mode: "program"
variable: "CMAKE_UNAME"
description: "Path to a program."
settings:
SearchFramework: "NEVER"
SearchAppBundle: "NEVER"
CMAKE_FIND_USE_CMAKE_PATH: true
CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
CMAKE_FIND_USE_INSTALL_PREFIX: true
names:
- "uname"
candidate_directories:
- "/home/martino/.nix-profile/bin/"
- "/nix/var/nix/profiles/default/bin/"
- "/usr/local/sbin/"
- "/usr/local/bin/"
- "/usr/bin/"
- "/home/martino/.local/share/flatpak/exports/bin/"
- "/var/lib/flatpak/exports/bin/"
- "/usr/lib/jvm/default/bin/"
- "/usr/bin/site_perl/"
- "/usr/bin/vendor_perl/"
- "/usr/bin/core_perl/"
- "/opt/rocm/bin/"
- "/usr/lib/rustup/bin/"
- "/home/martino/.local/bin/"
- "/home/martino/.bun/bin/"
- "/home/martino/go/bin/"
- "/home/martino/.cargo/bin/"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/gopls-lsp/1.0.0/bin/"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/clangd-lsp/1.0.0/bin/"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/rust-analyzer-lsp/1.0.0/bin/"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/typescript-lsp/1.0.0/bin/"
- "/bin/"
searched_directories:
- "/home/martino/.nix-profile/bin/uname"
- "/nix/var/nix/profiles/default/bin/uname"
- "/usr/local/sbin/uname"
- "/usr/local/bin/uname"
found: "/usr/bin/uname"
search_context:
ENV{PATH}:
- "/home/martino/.nix-profile/bin"
- "/nix/var/nix/profiles/default/bin"
- "/usr/local/sbin"
- "/usr/local/bin"
- "/usr/bin"
- "/home/martino/.local/share/flatpak/exports/bin"
- "/var/lib/flatpak/exports/bin"
- "/usr/lib/jvm/default/bin"
- "/usr/bin/site_perl"
- "/usr/bin/vendor_perl"
- "/usr/bin/core_perl"
- "/opt/rocm/bin"
- "/usr/lib/rustup/bin"
- "/home/martino/.local/bin"
- "/home/martino/.bun/bin"
- "/home/martino/go/bin"
- "/home/martino/.cargo/bin"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/gopls-lsp/1.0.0/bin"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/clangd-lsp/1.0.0/bin"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/rust-analyzer-lsp/1.0.0/bin"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/typescript-lsp/1.0.0/bin"
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:212 (message)"
- "CMakeLists.txt:16 (project)"
message: |
The system is: Linux - 7.0.10-arch1-1 - x86_64
...
@@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
@@ -0,0 +1,11 @@
# Hashes of file build rules.
06ae87ddcda8cd5d84cdffc88ed3deb6 CMakeFiles/imgui-populate
98782319bde6f58252eed793960b0505 CMakeFiles/imgui-populate-complete
da03d7f1c00d7499c7ec12d9452d53e9 imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build
29b2dd6d0fd447cc2397fdd5ed19f0e3 imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure
08f24cad2c255d20194f6a95bc9c38ba imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download
cfeb0eeda06f92ee92db00ae57f42b9f imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install
f0cef29557772ee78c44d77f645b31dd imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir
2194cfbc51350adcec7f97602c65aac2 imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch
5ca4ad2bc0d6e0791951de6295e4c9cf imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-test
77adc2fda05161f6185cb8b6b7a91629 imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update
@@ -0,0 +1,7 @@
{
"InstallScripts" :
[
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/cmake_install.cmake"
],
"Parallel" : false
}
@@ -0,0 +1,52 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"CMakeFiles/4.3.3/CMakeSystem.cmake"
"CMakeLists.txt"
"imgui-populate-prefix/tmp/imgui-populate-mkdirs.cmake"
"/usr/share/cmake/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake"
"/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake/Modules/ExternalProject.cmake"
"/usr/share/cmake/Modules/ExternalProject/PatchInfo.txt.in"
"/usr/share/cmake/Modules/ExternalProject/RepositoryInfo.txt.in"
"/usr/share/cmake/Modules/ExternalProject/UpdateInfo.txt.in"
"/usr/share/cmake/Modules/ExternalProject/cfgcmd.txt.in"
"/usr/share/cmake/Modules/ExternalProject/gitclone.cmake.in"
"/usr/share/cmake/Modules/ExternalProject/gitupdate.cmake.in"
"/usr/share/cmake/Modules/ExternalProject/mkdirs.cmake.in"
"/usr/share/cmake/Modules/ExternalProject/shared_internal_commands.cmake"
"/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake"
"/usr/share/cmake/Modules/Platform/Linux.cmake"
"/usr/share/cmake/Modules/Platform/UnixPaths.cmake"
)
# The corresponding makefile is:
set(CMAKE_MAKEFILE_OUTPUTS
"Makefile"
"CMakeFiles/cmake.check_cache"
)
# Byproducts of CMake generate step:
set(CMAKE_MAKEFILE_PRODUCTS
"imgui-populate-prefix/tmp/imgui-populate-mkdirs.cmake"
"imgui-populate-prefix/tmp/imgui-populate-gitclone.cmake"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitinfo.txt"
"imgui-populate-prefix/tmp/imgui-populate-gitupdate.cmake"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update-info.txt"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch-info.txt"
"imgui-populate-prefix/tmp/imgui-populate-cfgcmd.txt"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/imgui-populate.dir/DependInfo.cmake"
)
@@ -0,0 +1,122 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "all" target.
all: CMakeFiles/imgui-populate.dir/all
.PHONY : all
# The main recursive "codegen" target.
codegen: CMakeFiles/imgui-populate.dir/codegen
.PHONY : codegen
# The main recursive "preinstall" target.
preinstall:
.PHONY : preinstall
# The main recursive "clean" target.
clean: CMakeFiles/imgui-populate.dir/clean
.PHONY : clean
#=============================================================================
# Target rules for target CMakeFiles/imgui-populate.dir
# All Build rule for target.
CMakeFiles/imgui-populate.dir/all:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui-populate.dir/build.make CMakeFiles/imgui-populate.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui-populate.dir/build.make CMakeFiles/imgui-populate.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9 "Built target imgui-populate"
.PHONY : CMakeFiles/imgui-populate.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/imgui-populate.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles 9
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/imgui-populate.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles 0
.PHONY : CMakeFiles/imgui-populate.dir/rule
# Convenience name for target.
imgui-populate: CMakeFiles/imgui-populate.dir/rule
.PHONY : imgui-populate
# codegen rule for target.
CMakeFiles/imgui-populate.dir/codegen:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui-populate.dir/build.make CMakeFiles/imgui-populate.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9 "Finished codegen for target imgui-populate"
.PHONY : CMakeFiles/imgui-populate.dir/codegen
# clean rule for target.
CMakeFiles/imgui-populate.dir/clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui-populate.dir/build.make CMakeFiles/imgui-populate.dir/clean
.PHONY : CMakeFiles/imgui-populate.dir/clean
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
@@ -0,0 +1,3 @@
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/edit_cache.dir
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/rebuild_cache.dir
@@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
@@ -0,0 +1,22 @@
# Consider dependencies only in project.
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
)
# Targets to which this target links which contain Fortran sources.
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
@@ -0,0 +1,46 @@
{
"sources" :
[
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate-complete.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-test.rule"
},
{
"file" : "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update.rule"
}
],
"target" :
{
"labels" :
[
"imgui-populate"
],
"name" : "imgui-populate"
}
}
@@ -0,0 +1,14 @@
# Target labels
imgui-populate
# Source files and their labels
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate-complete.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-test.rule
/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update.rule
@@ -0,0 +1,162 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
# Utility rule file for imgui-populate.
# Include any custom commands dependencies for this target.
include CMakeFiles/imgui-populate.dir/compiler_depend.make
# Include the progress variables for this target.
include CMakeFiles/imgui-populate.dir/progress.make
CMakeFiles/imgui-populate: CMakeFiles/imgui-populate-complete
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install
CMakeFiles/imgui-populate-complete: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-test
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Completed 'imgui-populate'"
/usr/bin/cmake -E make_directory /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles
/usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate-complete
/usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-done
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update:
.PHONY : imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "No build step for 'imgui-populate'"
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build && /usr/bin/cmake -E echo_append
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build && /usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure: imgui-populate-prefix/tmp/imgui-populate-cfgcmd.txt
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "No configure step for 'imgui-populate'"
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build && /usr/bin/cmake -E echo_append
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build && /usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitinfo.txt
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Performing download step (git clone) for 'imgui-populate'"
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps && /usr/bin/cmake -DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE -P /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/tmp/imgui-populate-gitclone.cmake
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps && /usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "No install step for 'imgui-populate'"
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build && /usr/bin/cmake -E echo_append
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build && /usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Creating directories for 'imgui-populate'"
/usr/bin/cmake -Dcfgdir= -P /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/tmp/imgui-populate-mkdirs.cmake
/usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch-info.txt
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "No patch step for 'imgui-populate'"
/usr/bin/cmake -E echo_append
/usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update:
.PHONY : imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-test: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "No test step for 'imgui-populate'"
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build && /usr/bin/cmake -E echo_append
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build && /usr/bin/cmake -E touch /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-test
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update: imgui-populate-prefix/tmp/imgui-populate-gitupdate.cmake
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update-info.txt
imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Performing update step for 'imgui-populate'"
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src && /usr/bin/cmake -Dcan_fetch=YES -DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE -P /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/tmp/imgui-populate-gitupdate.cmake
CMakeFiles/imgui-populate.dir/codegen:
.PHONY : CMakeFiles/imgui-populate.dir/codegen
imgui-populate: CMakeFiles/imgui-populate
imgui-populate: CMakeFiles/imgui-populate-complete
imgui-populate: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build
imgui-populate: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure
imgui-populate: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download
imgui-populate: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install
imgui-populate: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir
imgui-populate: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch
imgui-populate: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-test
imgui-populate: imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update
imgui-populate: CMakeFiles/imgui-populate.dir/build.make
.PHONY : imgui-populate
# Rule to build all files generated by this target.
CMakeFiles/imgui-populate.dir/build: imgui-populate
.PHONY : CMakeFiles/imgui-populate.dir/build
CMakeFiles/imgui-populate.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/imgui-populate.dir/cmake_clean.cmake
.PHONY : CMakeFiles/imgui-populate.dir/clean
CMakeFiles/imgui-populate.dir/depend:
cd /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles/imgui-populate.dir/DependInfo.cmake "--color=$(COLOR)" imgui-populate
.PHONY : CMakeFiles/imgui-populate.dir/depend
@@ -0,0 +1,17 @@
file(REMOVE_RECURSE
"CMakeFiles/imgui-populate"
"CMakeFiles/imgui-populate-complete"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-build"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-configure"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-download"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-install"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-mkdir"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-patch"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-test"
"imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-update"
)
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/imgui-populate.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()
@@ -0,0 +1,2 @@
# Empty custom commands generated dependencies file for imgui-populate.
# This may be replaced when dependencies are built.
@@ -0,0 +1,2 @@
# CMAKE generated file: DO NOT EDIT!
# Timestamp file for custom commands dependencies management for imgui-populate.
@@ -0,0 +1,10 @@
CMAKE_PROGRESS_1 = 1
CMAKE_PROGRESS_2 = 2
CMAKE_PROGRESS_3 = 3
CMAKE_PROGRESS_4 = 4
CMAKE_PROGRESS_5 = 5
CMAKE_PROGRESS_6 = 6
CMAKE_PROGRESS_7 = 7
CMAKE_PROGRESS_8 = 8
CMAKE_PROGRESS_9 = 9
@@ -0,0 +1,42 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION 4.3.3)
# Reject any attempt to use a toolchain file. We must not use one because
# we could be downloading it here. If the CMAKE_TOOLCHAIN_FILE environment
# variable is set, the cache variable will have been initialized from it.
unset(CMAKE_TOOLCHAIN_FILE CACHE)
unset(ENV{CMAKE_TOOLCHAIN_FILE})
# We name the project and the target for the ExternalProject_Add() call
# to something that will highlight to the user what we are working on if
# something goes wrong and an error message is produced.
project(imgui-populate NONE)
# Pass through things we've already detected in the main project to avoid
# paying the cost of redetecting them again in ExternalProject_Add()
set(GIT_EXECUTABLE [==[/usr/bin/git]==])
set(Git_VERSION [==[2.54.0]==])
set_property(GLOBAL PROPERTY _CMAKE_FindGit_GIT_EXECUTABLE_VERSION
[==[/usr/bin/git;2.54.0]==]
)
include(ExternalProject)
ExternalProject_Add(imgui-populate
"UPDATE_DISCONNECTED" "False" "GIT_REPOSITORY" "https://github.com/ocornut/imgui.git" "EXTERNALPROJECT_INTERNAL_ARGUMENT_SEPARATOR" "GIT_TAG" "v1.91.8" "GIT_SHALLOW" "TRUE"
SOURCE_DIR "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
BINARY_DIR "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
USES_TERMINAL_DOWNLOAD YES
USES_TERMINAL_UPDATE YES
USES_TERMINAL_PATCH YES
)
@@ -0,0 +1,162 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Default target executed when no arguments are given to make.
default_target: all
.PHONY : default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Disable VCS-based implicit rules.
% : %,v
# Disable VCS-based implicit rules.
% : RCS/%
# Disable VCS-based implicit rules.
% : RCS/%,v
# Disable VCS-based implicit rules.
% : SCCS/s.%
# Disable VCS-based implicit rules.
% : s.%
.SUFFIXES: .hpux_make_needs_suffix_list
# Command-line flag to silence nested $(MAKE).
$(VERBOSE)MAKESILENT = -s
#Suppress display of executed commands.
$(VERBOSE).SILENT:
# A target that is always out of date.
cmake_force:
.PHONY : cmake_force
#=============================================================================
# Set environment variables for the build.
# The shell in which to execute make rules.
SHELL = /bin/sh
# The CMake executable.
CMAKE_COMMAND = /usr/bin/cmake
# The command to remove a file.
RM = /usr/bin/cmake -E rm -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : edit_cache
# Special rule for the target edit_cache
edit_cache/fast: edit_cache
.PHONY : edit_cache/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles 0
.PHONY : all
# The main codegen target
codegen: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 codegen
$(CMAKE_COMMAND) -E cmake_progress_start /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/CMakeFiles 0
.PHONY : codegen
# The main clean target
clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall/fast
# clear depends
depend:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
#=============================================================================
# Target rules for targets named imgui-populate
# Build rule for target.
imgui-populate: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 imgui-populate
.PHONY : imgui-populate
# fast build rule for target.
imgui-populate/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/imgui-populate.dir/build.make CMakeFiles/imgui-populate.dir/build
.PHONY : imgui-populate/fast
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... codegen"
@echo "... edit_cache"
@echo "... rebuild_cache"
@echo "... imgui-populate"
.PHONY : help
#=============================================================================
# Special targets to cleanup operation of make.
# Special rule to run CMake to check the build system integrity.
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
@@ -0,0 +1,61 @@
# Install script for directory: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
# Set the install configuration name.
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
if(BUILD_TYPE)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else()
set(CMAKE_INSTALL_CONFIG_NAME "")
endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif()
# Set the component getting installed.
if(NOT CMAKE_INSTALL_COMPONENT)
if(COMPONENT)
message(STATUS "Install component: \"${COMPONENT}\"")
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
else()
set(CMAKE_INSTALL_COMPONENT)
endif()
endif()
# Install shared libraries without execute permission?
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
set(CMAKE_INSTALL_SO_NO_EXE "0")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
if(CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/install_local_manifest.txt"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()
if(CMAKE_INSTALL_COMPONENT)
if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
unset(CMAKE_INST_COMP_HASH)
endif()
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
file(WRITE "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
endif()
@@ -0,0 +1,15 @@
# This is a generated file and its contents are an internal implementation detail.
# The download step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.
method=git
command=/usr/bin/cmake;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/tmp/imgui-populate-gitclone.cmake
source_dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src
work_dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps
repository=https://github.com/ocornut/imgui.git
remote=origin
init_submodules=TRUE
recurse_submodules=--recursive
submodules=
CMP0097=NEW
@@ -0,0 +1,15 @@
# This is a generated file and its contents are an internal implementation detail.
# The download step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.
method=git
command=/usr/bin/cmake;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/tmp/imgui-populate-gitclone.cmake
source_dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src
work_dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps
repository=https://github.com/ocornut/imgui.git
remote=origin
init_submodules=TRUE
recurse_submodules=--recursive
submodules=
CMP0097=NEW
@@ -0,0 +1,6 @@
# This is a generated file and its contents are an internal implementation detail.
# The update step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.
command=
work_dir=
@@ -0,0 +1,7 @@
# This is a generated file and its contents are an internal implementation detail.
# The patch step will be re-executed if anything in this file changes.
# No other meaning or use of this file is supported.
command (connected)=/usr/bin/cmake;-Dcan_fetch=YES;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/tmp/imgui-populate-gitupdate.cmake
command (disconnected)=/usr/bin/cmake;-Dcan_fetch=NO;-DCMAKE_MESSAGE_LOG_LEVEL=VERBOSE;-P;/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/tmp/imgui-populate-gitupdate.cmake
work_dir=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src
@@ -0,0 +1,87 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake
if(EXISTS "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitclone-lastrun.txt" AND EXISTS "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitinfo.txt" AND
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitclone-lastrun.txt" IS_NEWER_THAN "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitinfo.txt")
message(VERBOSE
"Avoiding repeated git clone, stamp file is up to date: "
"'/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitclone-lastrun.txt'"
)
return()
endif()
# Even at VERBOSE level, we don't want to see the commands executed, but
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
if(active_log_level MATCHES "DEBUG|TRACE")
set(maybe_show_command COMMAND_ECHO STDOUT)
else()
set(maybe_show_command "")
endif()
execute_process(
COMMAND ${CMAKE_COMMAND} -E rm -rf "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
message(FATAL_ERROR "Failed to remove directory: '/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src'")
endif()
# try the clone 3 times in case there is an odd git clone issue
set(error_code 1)
set(number_of_tries 0)
while(error_code AND number_of_tries LESS 3)
execute_process(
COMMAND "/usr/bin/git"
clone --no-checkout --depth 1 --no-single-branch --config "advice.detachedHead=false" "https://github.com/ocornut/imgui.git" "imgui-src"
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps"
RESULT_VARIABLE error_code
${maybe_show_command}
)
math(EXPR number_of_tries "${number_of_tries} + 1")
endwhile()
if(number_of_tries GREATER 1)
message(NOTICE "Had to git clone more than once: ${number_of_tries} times.")
endif()
if(error_code)
message(FATAL_ERROR "Failed to clone repository: 'https://github.com/ocornut/imgui.git'")
endif()
execute_process(
COMMAND "/usr/bin/git"
checkout "v1.91.8" --
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
message(FATAL_ERROR "Failed to checkout tag: 'v1.91.8'")
endif()
set(init_submodules TRUE)
if(init_submodules)
execute_process(
COMMAND "/usr/bin/git"
submodule update --recursive --init
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
endif()
if(error_code)
message(FATAL_ERROR "Failed to update submodules in: '/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src'")
endif()
# Complete success, update the script-last-run stamp file:
#
execute_process(
COMMAND ${CMAKE_COMMAND} -E copy "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitinfo.txt" "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitclone-lastrun.txt"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
message(FATAL_ERROR "Failed to copy script-last-run stamp file: '/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/imgui-populate-gitclone-lastrun.txt'")
endif()
@@ -0,0 +1,317 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake
# Even at VERBOSE level, we don't want to see the commands executed, but
# enabling them to be shown for DEBUG may be useful to help diagnose problems.
cmake_language(GET_MESSAGE_LOG_LEVEL active_log_level)
if(active_log_level MATCHES "DEBUG|TRACE")
set(maybe_show_command COMMAND_ECHO STDOUT)
else()
set(maybe_show_command "")
endif()
function(do_fetch)
message(VERBOSE "Fetching latest from the remote origin")
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git fetch --tags --force "origin"
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
COMMAND_ERROR_IS_FATAL LAST
${maybe_show_command}
)
endfunction()
function(get_hash_for_ref ref out_var err_var)
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git rev-parse "${ref}^0"
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
RESULT_VARIABLE error_code
OUTPUT_VARIABLE ref_hash
ERROR_VARIABLE error_msg
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(error_code)
set(${out_var} "" PARENT_SCOPE)
else()
set(${out_var} "${ref_hash}" PARENT_SCOPE)
endif()
set(${err_var} "${error_msg}" PARENT_SCOPE)
endfunction()
get_hash_for_ref(HEAD head_sha error_msg)
if(head_sha STREQUAL "")
message(FATAL_ERROR "Failed to get the hash for HEAD:\n${error_msg}")
endif()
if("${can_fetch}" STREQUAL "")
set(can_fetch "YES")
endif()
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git show-ref "v1.91.8"
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
OUTPUT_VARIABLE show_ref_output
)
if(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/remotes/")
# Given a full remote/branch-name and we know about it already. Since
# branches can move around, we should always fetch, if permitted.
if(can_fetch)
do_fetch()
endif()
set(checkout_name "v1.91.8")
elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/tags/")
# Given a tag name that we already know about. We don't know if the tag we
# have matches the remote though (tags can move), so we should fetch. As a
# special case to preserve backward compatibility, if we are already at the
# same commit as the tag we hold locally, don't do a fetch and assume the tag
# hasn't moved on the remote.
# FIXME: We should provide an option to always fetch for this case
get_hash_for_ref("v1.91.8" tag_sha error_msg)
if(tag_sha STREQUAL head_sha)
message(VERBOSE "Already at requested tag: v1.91.8")
return()
endif()
if(can_fetch)
do_fetch()
endif()
set(checkout_name "v1.91.8")
elseif(show_ref_output MATCHES "^[a-z0-9]+[ \\t]+refs/heads/")
# Given a branch name without any remote and we already have a branch by that
# name. We might already have that branch checked out or it might be a
# different branch. It isn't fully safe to use a bare branch name without the
# remote, so do a fetch (if allowed) and replace the ref with one that
# includes the remote.
if(can_fetch)
do_fetch()
endif()
set(checkout_name "origin/v1.91.8")
else()
get_hash_for_ref("v1.91.8" tag_sha error_msg)
if(tag_sha STREQUAL head_sha)
# Have the right commit checked out already
message(VERBOSE "Already at requested ref: ${tag_sha}")
return()
elseif(tag_sha STREQUAL "")
# We don't know about this ref yet, so we have no choice but to fetch.
if(NOT can_fetch)
message(FATAL_ERROR
"Requested git ref \"v1.91.8\" is not present locally, and not "
"allowed to contact remote due to UPDATE_DISCONNECTED setting."
)
endif()
# We deliberately swallow any error message at the default log level
# because it can be confusing for users to see a failed git command.
# That failure is being handled here, so it isn't an error.
if(NOT error_msg STREQUAL "")
message(DEBUG "${error_msg}")
endif()
do_fetch()
set(checkout_name "v1.91.8")
else()
# We have the commit, so we know we were asked to find a commit hash
# (otherwise it would have been handled further above), but we don't
# have that commit checked out yet. We don't need to fetch from the remote.
set(checkout_name "v1.91.8")
if(NOT error_msg STREQUAL "")
message(WARNING "${error_msg}")
endif()
endif()
endif()
set(git_update_strategy "REBASE")
if(git_update_strategy STREQUAL "")
# Backward compatibility requires REBASE as the default behavior
set(git_update_strategy REBASE)
endif()
if(git_update_strategy MATCHES "^REBASE(_CHECKOUT)?$")
# Asked to potentially try to rebase first, maybe with fallback to checkout.
# We can't if we aren't already on a branch and we shouldn't if that local
# branch isn't tracking the one we want to checkout.
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git symbolic-ref -q HEAD
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
OUTPUT_VARIABLE current_branch
OUTPUT_STRIP_TRAILING_WHITESPACE
# Don't test for an error. If this isn't a branch, we get a non-zero error
# code but empty output.
)
if(current_branch STREQUAL "")
# Not on a branch, checkout is the only sensible option since any rebase
# would always fail (and backward compatibility requires us to checkout in
# this situation)
set(git_update_strategy CHECKOUT)
else()
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git for-each-ref "--format=%(upstream:short)" "${current_branch}"
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
OUTPUT_VARIABLE upstream_branch
OUTPUT_STRIP_TRAILING_WHITESPACE
COMMAND_ERROR_IS_FATAL ANY # There is no error if no upstream is set
)
if(NOT upstream_branch STREQUAL checkout_name)
# Not safe to rebase when asked to checkout a different branch to the one
# we are tracking. If we did rebase, we could end up with arbitrary
# commits added to the ref we were asked to checkout if the current local
# branch happens to be able to rebase onto the target branch. There would
# be no error message and the user wouldn't know this was occurring.
set(git_update_strategy CHECKOUT)
endif()
endif()
elseif(NOT git_update_strategy STREQUAL "CHECKOUT")
message(FATAL_ERROR "Unsupported git update strategy: ${git_update_strategy}")
endif()
# Check if stash is needed
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git status --porcelain
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
RESULT_VARIABLE error_code
OUTPUT_VARIABLE repo_status
)
if(error_code)
message(FATAL_ERROR "Failed to get the status")
endif()
string(LENGTH "${repo_status}" need_stash)
# If not in clean state, stash changes in order to be able to perform a
# rebase or checkout without losing those changes permanently
if(need_stash)
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git stash save --quiet;--include-untracked
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
endif()
if(git_update_strategy STREQUAL "CHECKOUT")
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git checkout "${checkout_name}"
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
else()
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git rebase "${checkout_name}"
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
RESULT_VARIABLE error_code
OUTPUT_VARIABLE rebase_output
ERROR_VARIABLE rebase_output
)
if(error_code)
# Rebase failed, undo the rebase attempt before continuing
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git rebase --abort
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
${maybe_show_command}
)
if(NOT git_update_strategy STREQUAL "REBASE_CHECKOUT")
# Not allowed to do a checkout as a fallback, so cannot proceed
if(need_stash)
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
${maybe_show_command}
)
endif()
message(FATAL_ERROR "\nFailed to rebase in: '/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src'."
"\nOutput from the attempted rebase follows:"
"\n${rebase_output}"
"\n\nYou will have to resolve the conflicts manually")
endif()
# Fall back to checkout. We create an annotated tag so that the user
# can manually inspect the situation and revert if required.
# We can't log the failed rebase output because MSVC sees it and
# intervenes, causing the build to fail even though it completes.
# Write it to a file instead.
string(TIMESTAMP tag_timestamp "%Y%m%dT%H%M%S" UTC)
set(tag_name _cmake_ExternalProject_moved_from_here_${tag_timestamp}Z)
set(error_log_file ${CMAKE_CURRENT_LIST_DIR}/rebase_error_${tag_timestamp}Z.log)
file(WRITE ${error_log_file} "${rebase_output}")
message(WARNING "Rebase failed, output has been saved to ${error_log_file}"
"\nFalling back to checkout, previous commit tagged as ${tag_name}")
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git tag -a
-m "ExternalProject attempting to move from here to ${checkout_name}"
${tag_name}
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git checkout "${checkout_name}"
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
endif()
endif()
if(need_stash)
# Put back the stashed changes
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
# Stash pop --index failed: Try again dropping the index
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git reset --hard --quiet
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
${maybe_show_command}
)
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git stash pop --quiet
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
RESULT_VARIABLE error_code
${maybe_show_command}
)
if(error_code)
# Stash pop failed: Restore previous state.
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git reset --hard --quiet ${head_sha}
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
${maybe_show_command}
)
execute_process(
COMMAND "/usr/bin/git" --git-dir=.git stash pop --index --quiet
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
${maybe_show_command}
)
message(FATAL_ERROR "\nFailed to unstash changes in: '/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src'."
"\nYou will have to resolve the conflicts manually")
endif()
endif()
endif()
set(init_submodules "TRUE")
if(init_submodules)
execute_process(
COMMAND "/usr/bin/git"
--git-dir=.git
submodule update --recursive --init
WORKING_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src"
COMMAND_ERROR_IS_FATAL ANY
${maybe_show_command}
)
endif()
@@ -0,0 +1,27 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.
cmake_minimum_required(VERSION ${CMAKE_VERSION}) # this file comes with cmake
# If CMAKE_DISABLE_SOURCE_CHANGES is set to true and the source directory is an
# existing directory in our source tree, calling file(MAKE_DIRECTORY) on it
# would cause a fatal error, even though it would be a no-op.
if(NOT EXISTS "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src")
file(MAKE_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-src")
endif()
file(MAKE_DIRECTORY
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-build"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/tmp"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src"
"/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp"
)
set(configSubDirs )
foreach(subDir IN LISTS configSubDirs)
file(MAKE_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp/${subDir}")
endforeach()
if(cfgdir)
file(MAKE_DIRECTORY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/imgui-subbuild/imgui-populate-prefix/src/imgui-populate-stamp${cfgdir}") # cfgdir has leading slash
endif()
Submodule Client/streamhub/build/_deps/implot-src added at 4707b245fb
@@ -0,0 +1,125 @@
# This is the CMakeCache file.
# For build in directory: /home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-subbuild
# It was generated by CMake: /usr/bin/cmake
# You can edit this file to change values found and used by cmake.
# If you do not want to change any of the values, simply exit the editor.
# If you do want to change a value, simply edit, save, and exit the editor.
# The syntax for the file is as follows:
# KEY:TYPE=VALUE
# KEY is the name of a variable in the cache.
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
# VALUE is the current value for the KEY.
########################
# EXTERNAL cache entries
########################
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-subbuild/CMakeFiles/pkgRedirects
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local
//No help, variable specified on the command line.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
//Value Computed by CMake
CMAKE_PROJECT_COMPAT_VERSION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=implot-populate
//Value Computed by CMake
CMAKE_PROJECT_SPDX_LICENSE:STATIC=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
// during the make. This is useful for debugging only. With Visual
// Studio IDE projects all commands are done without /nologo.
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
//Value Computed by CMake
implot-populate_BINARY_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-subbuild
//Value Computed by CMake
implot-populate_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
implot-populate_SOURCE_DIR:STATIC=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-subbuild
########################
# INTERNAL cache entries
########################
//This is the directory where this CMakeCache.txt was created
CMAKE_CACHEFILE_DIR:INTERNAL=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-subbuild
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=4
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=3
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//Path to cache edit program executable.
CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-subbuild
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
//Name of CMakeLists files to read
CMAKE_LIST_FILE_NAME:INTERNAL=CMakeLists.txt
//number of local generators
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
//Platform information initialized
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
//Path to CMake installation.
CMAKE_ROOT:INTERNAL=/usr/share/cmake
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_SKIP_RPATH
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
@@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Linux-7.0.10-arch1-1")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "7.0.10-arch1-1")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-7.0.10-arch1-1")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "7.0.10-arch1-1")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)
@@ -0,0 +1,81 @@
---
events:
-
kind: "find-v1"
backtrace:
- "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:12 (find_program)"
- "CMakeLists.txt:16 (project)"
mode: "program"
variable: "CMAKE_UNAME"
description: "Path to a program."
settings:
SearchFramework: "NEVER"
SearchAppBundle: "NEVER"
CMAKE_FIND_USE_CMAKE_PATH: true
CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH: true
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH: true
CMAKE_FIND_USE_CMAKE_SYSTEM_PATH: true
CMAKE_FIND_USE_INSTALL_PREFIX: true
names:
- "uname"
candidate_directories:
- "/home/martino/.nix-profile/bin/"
- "/nix/var/nix/profiles/default/bin/"
- "/usr/local/sbin/"
- "/usr/local/bin/"
- "/usr/bin/"
- "/home/martino/.local/share/flatpak/exports/bin/"
- "/var/lib/flatpak/exports/bin/"
- "/usr/lib/jvm/default/bin/"
- "/usr/bin/site_perl/"
- "/usr/bin/vendor_perl/"
- "/usr/bin/core_perl/"
- "/opt/rocm/bin/"
- "/usr/lib/rustup/bin/"
- "/home/martino/.local/bin/"
- "/home/martino/.bun/bin/"
- "/home/martino/go/bin/"
- "/home/martino/.cargo/bin/"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/gopls-lsp/1.0.0/bin/"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/clangd-lsp/1.0.0/bin/"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/rust-analyzer-lsp/1.0.0/bin/"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/typescript-lsp/1.0.0/bin/"
- "/bin/"
searched_directories:
- "/home/martino/.nix-profile/bin/uname"
- "/nix/var/nix/profiles/default/bin/uname"
- "/usr/local/sbin/uname"
- "/usr/local/bin/uname"
found: "/usr/bin/uname"
search_context:
ENV{PATH}:
- "/home/martino/.nix-profile/bin"
- "/nix/var/nix/profiles/default/bin"
- "/usr/local/sbin"
- "/usr/local/bin"
- "/usr/bin"
- "/home/martino/.local/share/flatpak/exports/bin"
- "/var/lib/flatpak/exports/bin"
- "/usr/lib/jvm/default/bin"
- "/usr/bin/site_perl"
- "/usr/bin/vendor_perl"
- "/usr/bin/core_perl"
- "/opt/rocm/bin"
- "/usr/lib/rustup/bin"
- "/home/martino/.local/bin"
- "/home/martino/.bun/bin"
- "/home/martino/go/bin"
- "/home/martino/.cargo/bin"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/gopls-lsp/1.0.0/bin"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/clangd-lsp/1.0.0/bin"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/rust-analyzer-lsp/1.0.0/bin"
- "/home/martino/.claude/plugins/cache/claude-plugins-official/typescript-lsp/1.0.0/bin"
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:212 (message)"
- "CMakeLists.txt:16 (project)"
message: |
The system is: Linux - 7.0.10-arch1-1 - x86_64
...
@@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 4.3
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-subbuild")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/martino/Projects/MARTe_Integrated_components/Client/streamhub/build/_deps/implot-subbuild")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file regular expressions for this directory.
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})

Some files were not shown because too many files have changed in this diff Show More