内容填充

This commit is contained in:
2025-11-19 20:21:45 +08:00
parent a52d1118c9
commit ad5ced1cff
58 changed files with 15670 additions and 2 deletions

273
ArmorDetector.cpp Normal file
View File

@@ -0,0 +1,273 @@
#include "ArmorDetector.h"
#include <iostream>
#include <cmath>
#include <algorithm>
ArmorDetector::ArmorDetector() {
angle_threshold_rad = HORIZONTAL_ANGLE_THRESHOLD_RAD;
}
void ArmorDetector::detect(const cv::Mat& mask, const std::string& target_color,
std::vector<LightBar>& valid_light_bars,
std::vector<ArmorPlate>& armor_plates) {
std::vector<LightBar> initial_light_bars = extract_initial_light_bars(mask);
if (initial_light_bars.empty()) {
valid_light_bars.clear();
armor_plates.clear();
return;
}
std::vector<std::vector<cv::Point2f>> processed_boxes = merge_nearby_light_bars(initial_light_bars);
if (processed_boxes.empty()) {
valid_light_bars.clear();
armor_plates.clear();
return;
}
valid_light_bars = filter_valid_light_bars(processed_boxes);
if (valid_light_bars.size() < 2) {
armor_plates.clear();
return;
}
armor_plates = pair_light_bars_to_armor(valid_light_bars, target_color);
if (armor_plates.empty()) {
return;
}
}
std::vector<LightBar> ArmorDetector::extract_initial_light_bars(const cv::Mat& mask) {
std::vector<std::vector<cv::Point>> contours;
std::vector<cv::Vec4i> hierarchy;
cv::findContours(mask, contours, hierarchy, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
std::vector<LightBar> initial_light_bars;
for (size_t i = 0; i < contours.size(); i++) {
if (contours[i].size() < 5) continue; // Need at least 5 points to fit ellipse
cv::RotatedRect rect = cv::minAreaRect(contours[i]);
cv::Point2f vertices[4];
rect.points(vertices);
std::vector<cv::Point2f> box;
for (int j = 0; j < 4; j++) {
box.push_back(vertices[j]);
}
float contour_area = cv::contourArea(contours[i]);
float rect_area = rect.size.width * rect.size.height;
// Filter: sufficient area + high fill ratio
if (rect_area > 30 && rect_area > 0 && (contour_area / rect_area) > 0.4) {
LightBar light_bar;
light_bar.center = rect.center;
light_bar.size = rect.size;
light_bar.angle = rect.angle;
light_bar.area = rect_area;
light_bar.box = box;
initial_light_bars.push_back(light_bar);
}
}
return initial_light_bars;
}
std::vector<std::vector<cv::Point2f>> ArmorDetector::merge_nearby_light_bars(const std::vector<LightBar>& initial_light_bars) {
std::vector<std::vector<cv::Point2f>> processed_boxes;
std::vector<bool> visited(initial_light_bars.size(), false);
for (size_t i = 0; i < initial_light_bars.size(); i++) {
if (visited[i]) continue;
std::vector<int> nearby_indices = {static_cast<int>(i)};
cv::Point2f center1 = initial_light_bars[i].center;
for (size_t j = i + 1; j < initial_light_bars.size(); j++) {
if (visited[j]) continue;
cv::Point2f center2 = initial_light_bars[j].center;
float distance = std::sqrt(std::pow(center2.x - center1.x, 2) + std::pow(center2.y - center1.y, 2));
// Distance + IOU filtering
if (distance < NEARBY_LIGHT_BAR_THRESHOLD) {
cv::Rect b1 = cv::boundingRect(initial_light_bars[i].box);
cv::Rect b2 = cv::boundingRect(initial_light_bars[j].box);
double iou = calculate_iou(b1, b2);
if (iou > LIGHT_BAR_IOU_THRESHOLD) {
nearby_indices.push_back(static_cast<int>(j));
visited[j] = true;
}
}
}
// Merge nearby light bar vertices to generate new rectangle
std::vector<cv::Point2f> all_points;
for (int k : nearby_indices) {
for (const auto& point : initial_light_bars[k].box) {
all_points.push_back(point);
}
}
if (!all_points.empty()) {
cv::RotatedRect merged_rect = cv::minAreaRect(all_points);
cv::Point2f vertices[4];
merged_rect.points(vertices);
std::vector<cv::Point2f> merged_box;
for (int k = 0; k < 4; k++) {
merged_box.push_back(vertices[k]);
}
processed_boxes.push_back(merged_box);
visited[i] = true;
}
}
return processed_boxes;
}
std::vector<LightBar> ArmorDetector::filter_valid_light_bars(const std::vector<std::vector<cv::Point2f>>& processed_boxes) {
std::vector<LightBar> valid_light_bars;
for (const auto& box : processed_boxes) {
if (box.size() < 4) continue;
cv::RotatedRect rect = cv::minAreaRect(box);
cv::Point2f center = rect.center;
float width = rect.size.width;
float height = rect.size.height;
float length = width > height ? width : height;
float bar_width = width > height ? height : width;
float main_angle = rect.angle;
if (width <= height) {
main_angle += 90.0;
}
// Normalize angle to [-90, 90]
main_angle = std::fmod(main_angle, 180);
if (main_angle > 90) main_angle -= 180;
if (main_angle < -90) main_angle += 180;
float main_angle_rad = main_angle * CV_PI / 180.0f;
cv::Point2f end1(
center.x + (length / 2) * std::cos(main_angle_rad),
center.y + (length / 2) * std::sin(main_angle_rad)
);
cv::Point2f end2(
center.x - (length / 2) * std::cos(main_angle_rad),
center.y - (length / 2) * std::sin(main_angle_rad)
);
float rect_area = length * bar_width;
float contour_area = cv::contourArea(box);
float area_ratio = rect_area > 0 ? contour_area / rect_area : 0;
// Filter: sufficient area + high fill ratio + non-horizontal
if (rect_area > 40 && area_ratio > 0.4 && std::abs(main_angle_rad) > angle_threshold_rad) {
LightBar light_bar;
light_bar.center = center;
light_bar.size = cv::Size2f(length, bar_width);
light_bar.angle = main_angle;
light_bar.angle_rad = main_angle_rad;
light_bar.area = rect_area;
light_bar.center_line = {end1, end2};
light_bar.center_line_length = length;
light_bar.box = box;
valid_light_bars.push_back(light_bar);
}
}
return valid_light_bars;
}
std::vector<ArmorPlate> ArmorDetector::pair_light_bars_to_armor(const std::vector<LightBar>& light_bars, const std::string& target_color) {
std::vector<ArmorPlate> armor_plates;
std::vector<bool> used(light_bars.size(), false);
for (size_t i = 0; i < light_bars.size(); i++) {
if (used[i]) continue;
const LightBar& lb1 = light_bars[i];
for (size_t j = i + 1; j < light_bars.size(); j++) {
if (used[j]) continue;
const LightBar& lb2 = light_bars[j];
// Angle difference filtering
float angle_diff = std::abs(lb1.angle_rad - lb2.angle_rad);
float angle_diff_2 = 2.0f * CV_PI - angle_diff;
angle_diff = std::min(angle_diff, angle_diff_2);
if (angle_diff > ARMOR_ANGLE_DIFF_THRESHOLD) {
continue;
}
// Distance ratio filtering
float dx = lb2.center.x - lb1.center.x;
float dy = lb2.center.y - lb1.center.y;
float distance = std::sqrt(dx * dx + dy * dy);
float avg_length = (lb1.center_line_length + lb2.center_line_length) / 2;
float distance_ratio = avg_length > 0 ? distance / avg_length : 0;
if (distance_ratio <= ARMOR_DISTANCE_RATIO_MIN || distance_ratio >= ARMOR_DISTANCE_RATIO_MAX) {
continue;
}
// Length difference filtering
float length_diff_ratio = avg_length > 0 ?
std::abs(lb1.center_line_length - lb2.center_line_length) / avg_length : 0;
if (length_diff_ratio > ARMOR_LENGTH_DIFF_RATIO) {
continue;
}
cv::Point2f armor_center(
(lb1.center.x + lb2.center.x) / 2,
(lb1.center.y + lb2.center.y) / 2
);
double confidence = (lb1.area + lb2.area) / (distance + 1);
ArmorPlate armor_plate;
armor_plate.color = target_color;
armor_plate.center = armor_center;
armor_plate.confidence = confidence;
armor_plate.pair = std::make_pair(lb1, lb2);
armor_plate.corners_2d = std::vector<cv::Point2f>(); // Will be computed later if needed
armor_plates.push_back(armor_plate);
used[i] = true;
used[j] = true;
break;
}
}
// Sort by confidence in descending order
std::sort(armor_plates.begin(), armor_plates.end(),
[](const ArmorPlate& a, const ArmorPlate& b) {
return a.confidence > b.confidence;
});
return armor_plates;
}
double ArmorDetector::calculate_iou(const cv::Rect& b1, const cv::Rect& b2) {
cv::Point2f inter_tl(std::max(b1.x, b2.x), std::max(b1.y, b2.y));
cv::Point2f inter_br(std::min(b1.x + b1.width, b2.x + b2.width),
std::min(b1.y + b1.height, b2.y + b2.height));
if (inter_br.x <= inter_tl.x || inter_br.y <= inter_tl.y) {
return 0.0;
}
float inter_area = (inter_br.x - inter_tl.x) * (inter_br.y - inter_tl.y);
float b1_area = b1.width * b1.height;
float b2_area = b2.width * b2.height;
float union_area = b1_area + b2_area - inter_area;
return union_area > 0 ? inter_area / union_area : 0.0;
}

48
ArmorDetector.h Normal file
View File

@@ -0,0 +1,48 @@
#ifndef ARMORDETECTOR_H
#define ARMORDETECTOR_H
#include <opencv2/opencv.hpp>
#include <vector>
#include <string>
#include "config.h"
struct LightBar {
cv::Point2f center;
cv::Size2f size;
float angle; // in degrees
float angle_rad; // in radians
float area;
std::vector<cv::Point2f> center_line; // [end1, end2]
float center_line_length;
std::vector<cv::Point2f> box;
};
struct ArmorPlate {
std::string color;
cv::Point2f center;
double confidence;
std::pair<LightBar, LightBar> pair;
std::vector<cv::Point2f> corners_2d; // Can be computed later for 3D pose
};
class ArmorDetector {
public:
ArmorDetector();
// Main detection function
void detect(const cv::Mat& mask, const std::string& target_color,
std::vector<LightBar>& valid_light_bars,
std::vector<ArmorPlate>& armor_plates);
private:
float angle_threshold_rad;
// Helper methods
std::vector<LightBar> extract_initial_light_bars(const cv::Mat& mask);
std::vector<std::vector<cv::Point2f>> merge_nearby_light_bars(const std::vector<LightBar>& initial_light_bars);
std::vector<LightBar> filter_valid_light_bars(const std::vector<std::vector<cv::Point2f>>& processed_boxes);
std::vector<ArmorPlate> pair_light_bars_to_armor(const std::vector<LightBar>& light_bars, const std::string& target_color);
double calculate_iou(const cv::Rect& b1, const cv::Rect& b2);
};
#endif // ARMORDETECTOR_H

61
BallisticPredictor.cpp Normal file
View File

@@ -0,0 +1,61 @@
#include "BallisticPredictor.h"
#include "config.h"
#include <cmath>
BallisticPredictor::BallisticPredictor(float bullet_speed)
: bullet_speed(bullet_speed), last_ballistic_point(nullptr) {
armor_half_width = ARMOR_WIDTH / 2000.0f; // Convert to meters
armor_half_height = ARMOR_HEIGHT / 2000.0f; // Convert to meters
}
cv::Point2f* BallisticPredictor::predict_ballistic_point(const cv::Point2f* predicted_center,
const cv::Point2f& img_center,
const cv::Point2f& target_speed) {
if (predicted_center == nullptr) {
if (last_ballistic_point != nullptr) {
delete last_ballistic_point;
last_ballistic_point = nullptr;
}
return nullptr;
}
// 1. Estimate target distance (meters)
float distance = calculate_distance(*predicted_center, img_center);
// 2. Calculate bullet flight time (seconds): distance / bullet speed
float flight_time = bullet_speed > 0 ? distance / bullet_speed : 0.0f;
// 3. Calculate target movement in flight time (pixels)
// target speed (pixels/s) * flight time (s) = predicted movement in pixels
float delta_x = target_speed.x * flight_time;
float delta_y = target_speed.y * flight_time;
// 4. Ballistic prediction point = Kalman prediction center + target movement compensation
float ballistic_x = predicted_center->x + delta_x;
float ballistic_y = predicted_center->y + delta_y;
cv::Point2f ballistic_point(ballistic_x, ballistic_y);
// Update last ballistic point
if (last_ballistic_point != nullptr) {
delete last_ballistic_point;
}
last_ballistic_point = new cv::Point2f(ballistic_point);
return last_ballistic_point;
}
float BallisticPredictor::calculate_distance(const cv::Point2f& armor_center, const cv::Point2f& img_center, float focal_length) {
// Calculate the pixel distance from armor center to image center
float dx = std::abs(armor_center.x - img_center.x);
float dy = std::abs(armor_center.y - img_center.y);
float pixel_distance = std::sqrt(dx * dx + dy * dy);
// If target is near the center, avoid division by zero
if (pixel_distance < 10) {
return 5.0f; // Default 5 meters (adjust based on actual scenario)
}
// Distance estimation formula: (actual size * focal length) / pixel size
float distance = (armor_half_width * focal_length) / (pixel_distance * 0.5f);
return std::max(0.5f, distance); // Limit minimum distance to 0.5 meters
}

28
BallisticPredictor.h Normal file
View File

@@ -0,0 +1,28 @@
#ifndef BALLISTICPREDICTOR_H
#define BALLISTICPREDICTOR_H
#include <opencv2/opencv.hpp>
class BallisticPredictor {
public:
BallisticPredictor(float bullet_speed = 16.0f);
// Predict ballistic point considering target movement and flight time
cv::Point2f* predict_ballistic_point(const cv::Point2f* predicted_center,
const cv::Point2f& img_center,
const cv::Point2f& target_speed);
// Get last ballistic point
const cv::Point2f* get_last_ballistic_point() const { return last_ballistic_point; }
private:
float bullet_speed; // Bullet speed (m/s)
float armor_half_width; // Armor half width (converted to meters)
float armor_half_height; // Armor half height (converted to meters)
cv::Point2f* last_ballistic_point; // Last ballistic prediction
// Calculate distance to target
float calculate_distance(const cv::Point2f& armor_center, const cv::Point2f& img_center, float focal_length = 800.0f);
};
#endif // BALLISTICPREDICTOR_H

42
CMakeLists.txt Normal file
View File

@@ -0,0 +1,42 @@
cmake_minimum_required(VERSION 3.10)
project(armor_detector_mdv)
# Set C++ standard
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Find OpenCV package
find_package(OpenCV REQUIRED)
# Include OpenCV headers
include_directories(${OpenCV_INCLUDE_DIRS})
# Include MindVision SDK headers (请根据实际SDK路径调整)
# 由于MindVision SDK在WSL中需要在WSL环境下编译
include_directories("/home/lld/mdv/include")
# Add executable for MindVision version
add_executable(armor_detector_mdv
main.cpp
MindVisionCamera.cpp
ImagePreprocessor.cpp
ArmorDetector.cpp
KalmanFilter.cpp
Visualizer.cpp
BallisticPredictor.cpp
TTLCommunicator.cpp
)
# Link OpenCV libraries
target_link_libraries(armor_detector_mdv ${OpenCV_LIBS})
# Link MindVision SDK library (路径需要根据实际情况调整)
# 根据提供的Makefile库名应该是MVSDK
link_directories("/home/lld/mdv/lib/x86")
target_link_libraries(armor_detector_mdv MVSDK)
# Additional flags for better compilation
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -O3 -pthread")
# For serial communication on Linux, you might need to link additional libraries:
# target_link_libraries(armor_detector_mdv ${OpenCV_LIBS} -lutil -lpthread)

90
Camera.cpp Normal file
View File

@@ -0,0 +1,90 @@
#include "Camera.h"
#include <iostream>
Camera::Camera(int cam_id, const std::string& target_color) {
// 先设置为 MJPEG 模式再打开(某些驱动要求)
cap.open(cam_id, cv::CAP_V4L2);
if (!cap.isOpened()) {
throw std::runtime_error("Cannot open camera!");
}
// 必须先设 FOURCC再设分辨率和帧率顺序很重要
cap.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));
cap.set(cv::CAP_PROP_FRAME_WIDTH, 640);
cap.set(cv::CAP_PROP_FRAME_HEIGHT, 480);
cap.set(cv::CAP_PROP_FPS, 100)
is_opened = true;
this->target_color = target_color;
if (this->target_color != "red" && this->target_color != "blue") {
throw std::invalid_argument("Only 'red' or 'blue' colors are supported");
}
set_cam_params(); // 再次应用参数(包括曝光等)
}
Camera::~Camera() {
release();
}
void Camera::set_cam_params() {
// 先设 FOURCC顺序很重要
cap.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));
const int width = 640;
const int height = 480;
const int fps = 60; // 从 80 降到 60
cap.set(cv::CAP_PROP_FRAME_WIDTH, width);
cap.set(cv::CAP_PROP_FRAME_HEIGHT, height);
cap.set(cv::CAP_PROP_FPS, fps);
cap.set(cv::CAP_PROP_AUTOFOCUS, 1);
cap.set(cv::CAP_PROP_AUTO_WB, 1);
cap.set(cv::CAP_PROP_AUTO_EXPOSURE, 0); // 手动曝光
if (target_color == "red") {
cap.set(cv::CAP_PROP_EXPOSURE, -50); // 可微调
//cap.set(cv::CAP_PROP_CONTRAST,50);
} else if (target_color == "blue") {
cap.set(cv::CAP_PROP_EXPOSURE, -8);
}
cap.set(cv::CAP_PROP_WB_TEMPERATURE, 3200);
// 验证
double w = cap.get(cv::CAP_PROP_FRAME_WIDTH);
double h = cap.get(cv::CAP_PROP_FRAME_HEIGHT);
double f = cap.get(cv::CAP_PROP_FPS);
double fourcc = cap.get(cv::CAP_PROP_FOURCC);
char str[5] = {0};
memcpy(str, &fourcc, 4);
std::cout << "Actual: " << w << "x" << h << " @ " << f << "fps, FOURCC='" << str << "'" << std::endl;
}
bool Camera::read_frame(cv::Mat& frame) {
if (!is_opened) {
return false;
}
return cap.read(frame);
}
void Camera::release() {
if (is_opened) {
cap.release();
is_opened = false;
}
}
bool Camera::switch_color(const std::string& new_color) {
std::string lower_color = new_color;
// Convert to lowercase manually
for (auto& c : lower_color) {
c = std::tolower(c);
}
if ((lower_color == "red" || lower_color == "blue") && lower_color != target_color) {
target_color = lower_color;
set_cam_params();
return true;
}
return false;
}

25
Camera.h Normal file
View File

@@ -0,0 +1,25 @@
#ifndef CAMERA_H
#define CAMERA_H
#include <opencv2/opencv.hpp>
#include <string>
class Camera {
public:
cv::VideoCapture cap;
bool is_opened;
std::string target_color;
Camera(int cam_id = 0, const std::string& target_color = "red");
~Camera();
void set_cam_params();
bool read_frame(cv::Mat& frame);
void release();
bool switch_color(const std::string& target_color);
private:
void set_camera_parameters();
};
#endif // CAMERA_H

56
ImagePreprocessor.cpp Normal file
View File

@@ -0,0 +1,56 @@
#include "ImagePreprocessor.h"
#include <algorithm>
#include <cctype>
ImagePreprocessor::ImagePreprocessor() {
// Constructor implementation
}
ImagePreprocessor::~ImagePreprocessor() {
// Destructor implementation
}
cv::Mat ImagePreprocessor::get_mask(const cv::Mat& frame, const std::string& target_color) {
cv::Mat hsv_frame;
cv::cvtColor(frame, hsv_frame, cv::COLOR_BGR2HSV);
cv::Mat mask;
if (target_color == "red") {
// Red color range in HSV
cv::Mat mask1, mask2;
cv::inRange(hsv_frame, cv::Scalar(0, 43, 49), cv::Scalar(25, 255, 255), mask1);
cv::inRange(hsv_frame, cv::Scalar(156, 46, 49), cv::Scalar(180, 255, 255), mask2);
mask = mask1 | mask2;
} else if (target_color == "blue") {
// Blue color range in HSV
cv::inRange(hsv_frame, cv::Scalar(83, 200, 44), cv::Scalar(130, 255, 255), mask);
} else {
// Default to empty mask if color not recognized
mask = cv::Mat::zeros(frame.size(), CV_8UC1);
}
// Apply morphological operations to reduce noise
cv::Mat kernel = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3));
cv::morphologyEx(mask, mask, cv::MORPH_OPEN, kernel);
cv::morphologyEx(mask, mask, cv::MORPH_CLOSE, kernel);
return mask;
}
cv::Mat ImagePreprocessor::get_color_only_frame(const cv::Mat& frame, const std::string& target_color) {
cv::Mat mask = get_mask(frame, target_color);
// 不再反转掩膜,直接使用原始掩膜
// 目标颜色区域为白色(255),非目标颜色区域为黑色(0)
cv::Mat color_only_frame;
frame.copyTo(color_only_frame, mask); // 使用掩膜复制原始帧,只保留目标颜色部分
return color_only_frame;
}
void ImagePreprocessor::process_frame(const cv::Mat& frame, const std::string& target_color,
cv::Mat& mask, cv::Mat& color_only_frame) {
mask = get_mask(frame, target_color);
color_only_frame = get_color_only_frame(frame, target_color);
}

23
ImagePreprocessor.h Normal file
View File

@@ -0,0 +1,23 @@
#ifndef IMAGEPREPROCESSOR_H
#define IMAGEPREPROCESSOR_H
#include <opencv2/opencv.hpp>
#include <string>
class ImagePreprocessor {
public:
ImagePreprocessor();
~ImagePreprocessor();
// Get mask based on target color
cv::Mat get_mask(const cv::Mat& frame, const std::string& target_color);
// Get frame with only the target color
cv::Mat get_color_only_frame(const cv::Mat& frame, const std::string& target_color);
// Combined function to return both mask and color-only frame
void process_frame(const cv::Mat& frame, const std::string& target_color,
cv::Mat& mask, cv::Mat& color_only_frame);
};
#endif // IMAGEPREPROCESSOR_H

66
KalmanFilter.cpp Normal file
View File

@@ -0,0 +1,66 @@
#include "KalmanFilter.h"
#include "config.h"
#include <iostream>
KalmanFilter::KalmanFilter() {
// 4 state variables (x, y, dx, dy), 2 measurements (x, y)
kf.init(4, 2, 0);
init_params();
initialized = false;
last_measurement = cv::Point2f(0, 0);
last_prediction = cv::Point2f(0, 0);
}
void KalmanFilter::init_params() {
// Transition matrix: x(k+1) = x(k) + dx(k), y(k+1) = y(k) + dy(k), dx(k+1) = dx(k), dy(k+1) = dy(k)
kf.transitionMatrix = (cv::Mat_<float>(4, 4) <<
1, 0, 1, 0,
0, 1, 0, 1,
0, 0, 1, 0,
0, 0, 0, 1
);
// Measurement matrix: measuring x and y
kf.measurementMatrix = (cv::Mat_<float>(2, 4) <<
1, 0, 0, 0,
0, 1, 0, 0
);
// Process noise covariance
kf.processNoiseCov = cv::Mat::eye(4, 4, CV_32F) * KF_PROCESS_NOISE;
// Measurement noise covariance
kf.measurementNoiseCov = cv::Mat::eye(2, 2, CV_32F) * KF_MEASUREMENT_NOISE;
// Error covariance post
kf.errorCovPost = cv::Mat::eye(4, 4, CV_32F);
}
void KalmanFilter::update(const cv::Point2f& measurement) {
cv::Mat measurement_mat = (cv::Mat_<float>(2, 1) << measurement.x, measurement.y);
if (!initialized) {
// Initialize state if not done yet
kf.statePost = (cv::Mat_<float>(4, 1) <<
measurement.x,
measurement.y,
0.0f,
0.0f);
initialized = true;
} else {
kf.correct(measurement_mat);
}
last_measurement = measurement;
}
cv::Point2f KalmanFilter::predict() {
if (!initialized) {
return cv::Point2f(0, 0);
}
cv::Mat prediction = kf.predict();
cv::Point2f result(prediction.at<float>(0), prediction.at<float>(1));
last_prediction = result;
return result;
}

26
KalmanFilter.h Normal file
View File

@@ -0,0 +1,26 @@
#ifndef KALMANFILTER_H
#define KALMANFILTER_H
#include <opencv2/opencv.hpp>
class KalmanFilter {
public:
KalmanFilter();
void update(const cv::Point2f& measurement);
cv::Point2f predict();
cv::Point2f get_last_measurement() const { return last_measurement; }
cv::Point2f get_last_prediction() const { return last_prediction; }
bool is_initialized() const { return initialized; }
private:
cv::KalmanFilter kf;
bool initialized;
cv::Point2f last_measurement;
cv::Point2f last_prediction;
void init_params();
};
#endif // KALMANFILTER_H

208
MindVisionCamera.cpp Normal file
View File

@@ -0,0 +1,208 @@
#include "MindVisionCamera.h"
#include <iostream>
MindVisionCamera::MindVisionCamera(int cam_id, const std::string& target_color)
: camera_handle(-1), is_opened(false), width(640), height(480), fps(30) {
if (!initialize_camera(cam_id)) {
throw std::runtime_error("Cannot initialize MindVision camera!");
}
is_opened = true;
this->target_color = target_color;
if (this->target_color != "red" && this->target_color != "blue") {
throw std::invalid_argument("Only 'red' or 'blue' colors are supported");
}
set_cam_params();
}
bool MindVisionCamera::initialize_camera(int cam_id) {
// 初始化SDK
CameraSdkInit(1);
int iCameraCounts = 10;
tSdkCameraDevInfo tCameraEnumList[10]; // 声明为数组而不是指针
// 枚举设备,并建立设备列表
int iStatus = CameraEnumerateDevice(tCameraEnumList, &iCameraCounts);
std::cout << "CameraEnumerateDevice returned: " << iStatus << std::endl;
std::cout << "Found " << iCameraCounts << " cameras" << std::endl;
if (iCameraCounts <= 0) {
std::cerr << "No MindVision cameras found!" << std::endl;
return false;
}
// 选择指定ID的相机
if (cam_id >= iCameraCounts) {
std::cerr << "Camera ID " << cam_id << " not found! Only " << iCameraCounts << " cameras detected." << std::endl;
return false;
}
std::cout << "Initializing camera " << cam_id << ": " << tCameraEnumList[cam_id].acFriendlyName << std::endl;
// 相机初始化
iStatus = CameraInit(&tCameraEnumList[cam_id], -1, -1, &camera_handle);
std::cout << "CameraInit returned: " << iStatus << std::endl;
if (iStatus != CAMERA_STATUS_SUCCESS) {
std::cerr << "Failed to initialize camera! Error code: " << iStatus << std::endl;
return false;
}
// 获取相机能力
tSdkCameraCapbility capability;
iStatus = CameraGetCapability(camera_handle, &capability);
if (iStatus != CAMERA_STATUS_SUCCESS) {
std::cerr << "Failed to get camera capability! Error code: " << iStatus << std::endl;
return false;
}
// 设置输出格式
if (capability.sIspCapacity.bMonoSensor) {
CameraSetIspOutFormat(camera_handle, CAMERA_MEDIA_TYPE_MONO8);
} else {
CameraSetIspOutFormat(camera_handle, CAMERA_MEDIA_TYPE_BGR8);
}
// 让SDK进入工作模式
CameraPlay(camera_handle);
// 获取并设置分辨率为 640x480
tSdkImageResolution image_resolution;
int status = CameraGetImageResolution(camera_handle, &image_resolution);
std::cout << "Default resolution query returned: " << status << std::endl;
// 设置分辨率为 640x480
image_resolution.iIndex = 0xFF; // Use custom resolution (0xFF typically indicates custom resolution)
image_resolution.iWidth = 640;
image_resolution.iHeight = 480;
image_resolution.iWidthFOV = image_resolution.iWidth;
image_resolution.iHeightFOV = image_resolution.iHeight;
image_resolution.iHOffsetFOV = 0;
image_resolution.iVOffsetFOV = 0;
status = CameraSetImageResolution(camera_handle, &image_resolution);
if (status != CAMERA_STATUS_SUCCESS) {
std::cout << "Failed to set resolution to 640x480, using default settings" << std::endl;
// Try to get the current resolution after failed set
CameraGetImageResolution(camera_handle, &image_resolution);
} else {
std::cout << "Successfully set camera resolution to: " << image_resolution.iWidth << "x" << image_resolution.iHeight << std::endl;
}
width = image_resolution.iWidth;
height = image_resolution.iHeight;
// 开启自动曝光
CameraSetAeState(camera_handle, true);
// 设置帧率
CameraSetFrameSpeed(camera_handle, 10); // 设置为中等帧率
std::cout << "Initialized camera with resolution: " << width << "x" << height << std::endl;
return true;
}
MindVisionCamera::~MindVisionCamera() {
release();
}
void MindVisionCamera::set_camera_parameters() {
// 先设置为手动曝光模式
CameraSetAeState(camera_handle, false);
// 根据颜色设置曝光参数
if (target_color == "red") {
CameraSetExposureTime(camera_handle, 10000); // 5ms曝光时间
} else if (target_color == "blue") {
CameraSetExposureTime(camera_handle, 4000); // 8ms曝光时间
}
// 设置白平衡
CameraSetWbMode(camera_handle, false); // 关闭自动白平衡
CameraSetOnceWB(camera_handle); // 一次性白平衡
// 设置其他参数
CameraSetTriggerMode(camera_handle, 0); // 连续采集模式
}
void MindVisionCamera::set_cam_params() {
set_camera_parameters();
// Ensure resolution remains 640x480 after setting other parameters
tSdkImageResolution image_resolution;
image_resolution.iIndex = 0xFF; // Use custom resolution (0xFF typically indicates custom resolution)
image_resolution.iWidth = 640;
image_resolution.iHeight = 480;
image_resolution.iWidthFOV = image_resolution.iWidth;
image_resolution.iHeightFOV = image_resolution.iHeight;
image_resolution.iHOffsetFOV = 0;
image_resolution.iVOffsetFOV = 0;
int status = CameraSetImageResolution(camera_handle, &image_resolution);
if (status != CAMERA_STATUS_SUCCESS) {
std::cout << "Failed to maintain resolution at 640x480 in set_cam_params" << std::endl;
} else {
std::cout << "Confirmed camera resolution: " << image_resolution.iWidth << "x" << image_resolution.iHeight << std::endl;
}
}
bool MindVisionCamera::read_frame(cv::Mat& frame) {
if (!is_opened) {
return false;
}
tSdkFrameHead sFrameInfo;
BYTE* pbyBuffer;
// 获取一帧数据
if (CameraGetImageBuffer(camera_handle, &sFrameInfo, &pbyBuffer, 1000) == CAMERA_STATUS_SUCCESS) {
// 处理图像数据
unsigned char* g_pRgbBuffer = new unsigned char[sFrameInfo.iWidth * sFrameInfo.iHeight * 3];
CameraImageProcess(camera_handle, pbyBuffer, g_pRgbBuffer, &sFrameInfo);
// 创建OpenCV Mat对象
frame = cv::Mat(
cv::Size(sFrameInfo.iWidth, sFrameInfo.iHeight),
sFrameInfo.uiMediaType == CAMERA_MEDIA_TYPE_MONO8 ? CV_8UC1 : CV_8UC3,
g_pRgbBuffer
).clone(); // clone()确保数据被复制,而不是共享指针
// 释放原始缓冲区
CameraReleaseImageBuffer(camera_handle, pbyBuffer);
// 释放临时缓冲区
delete[] g_pRgbBuffer;
return true;
}
return false;
}
void MindVisionCamera::release() {
if (is_opened && camera_handle >= 0) {
// 停止采集
CameraUnInit(camera_handle);
camera_handle = -1;
is_opened = false;
}
}
bool MindVisionCamera::switch_color(const std::string& new_color) {
std::string lower_color = new_color;
// Convert to lowercase manually
for (auto& c : lower_color) {
c = std::tolower(c);
}
if ((lower_color == "red" || lower_color == "blue") && lower_color != target_color) {
target_color = lower_color;
set_cam_params();
return true;
}
return false;
}

34
MindVisionCamera.h Normal file
View File

@@ -0,0 +1,34 @@
#ifndef MINDVISION_CAMERA_H
#define MINDVISION_CAMERA_H
#include <opencv2/opencv.hpp>
#include <string>
// MindVision SDK 头文件 - 可能需要根据实际SDK文件调整
extern "C" {
#include "CameraApi.h" // 这是MindVision SDK的典型头文件
}
class MindVisionCamera {
public:
int camera_handle; // MindVision SDK中的相机句柄
bool is_opened;
std::string target_color;
int width;
int height;
int fps;
MindVisionCamera(int cam_id = 0, const std::string& target_color = "red");
~MindVisionCamera();
void set_cam_params();
bool read_frame(cv::Mat& frame);
void release();
bool switch_color(const std::string& target_color);
private:
void set_camera_parameters();
bool initialize_camera(int cam_id);
};
#endif // MINDVISION_CAMERA_H

237
MindVisionMain.cpp Normal file
View File

@@ -0,0 +1,237 @@
#include <iostream>
#include <string>
#include <vector>
#include <chrono>
#include <thread>
#include <memory>
#include <opencv2/opencv.hpp>
#include "config.h"
#include "MindVisionCamera.h" // 使用MindVision相机
#include "ImagePreprocessor.h"
#include "ArmorDetector.h"
#include "KalmanFilter.h"
#include "Visualizer.h"
#include "BallisticPredictor.h"
#include "TTLCommunicator.h"
// Function to output control data to TTL device (with enable control)
void output_control_data(const cv::Point2f* ballistic_point,
const std::string& target_color,
int frame_counter,
TTLCommunicator* ttl_communicator,
const cv::Point2f& img_center,
bool use_ttl) {
// Only send data when TTL is enabled and meets frame interval
if (use_ttl && frame_counter % 5 == 0) {
std::string send_str;
if (ballistic_point != nullptr) {
// Calculate offset (based on actual image center)
int ballistic_offset_x = static_cast<int>(ballistic_point->x - img_center.x);
int ballistic_offset_y = static_cast<int>(ballistic_point->y - img_center.y);
// Color simplification mapping
std::string simplified_color = target_color;
if (target_color == "red") simplified_color = "r";
else if (target_color == "blue") simplified_color = "b";
// Construct send string
send_str = "s " + simplified_color + " " + std::to_string(ballistic_offset_x) + " " + std::to_string(ballistic_offset_y);
} else {
// Format when no detection result
send_str = "s u 0 0";
}
// Send data
if (ttl_communicator != nullptr) {
ttl_communicator->send_data(send_str);
}
}
}
void set_camera_resolution(MindVisionCamera& camera, int width, int height) {
// The resolution is set during camera initialization in MindVision
// We need to implement a method in MindVisionCamera to change resolution
// For now, we'll just log the intended change
std::cout << "Setting camera resolution to: " << width << "x" << height << std::endl;
}
int main(int /*argc*/, char* /*argv*/[]) {
std::string target_color = "blue";
int cam_id = 0;
cv::Size default_resolution(640, 480);
bool use_ttl = false; // Set to false to disable TTL communication
// Define optional resolution list (adjust based on camera support)
std::vector<cv::Size> resolutions = {
cv::Size(320, 240), // Low resolution, high frame rate
cv::Size(640, 480), // Standard resolution
cv::Size(1280, 720), // HD resolution
cv::Size(1920, 1080) // Full HD resolution
};
// Find the index of default resolution
int res_index = 1; // Default to index 1 (640x480)
for (size_t i = 0; i < resolutions.size(); i++) {
if (resolutions[i] == default_resolution) {
res_index = static_cast<int>(i);
break;
}
}
// Initialize TTL communication (only when enabled)
TTLCommunicator* ttl = nullptr;
if (use_ttl) {
ttl = new TTLCommunicator(TTL_BAUDRATE);
if (!ttl->connect()) {
std::cout << "Warning: Cannot establish TTL connection, will continue running but not send data" << std::endl;
}
} else {
std::cout << "TTL communication disabled" << std::endl;
}
// Initialize visual processing modules with MindVision camera
MindVisionCamera camera(cam_id, target_color);
if (!camera.is_opened) {
std::cerr << "Cannot open MindVision camera!" << std::endl;
return -1;
}
// Initialize ballistic predictor (adjustable bullet speed, e.g., 16m/s)
BallisticPredictor ballistic_predictor(16.0f);
// Record target speed (obtained from Kalman filter)
cv::Point2f target_speed(0.0f, 0.0f);
// Set initial resolution
set_camera_resolution(camera, resolutions[res_index].width, resolutions[res_index].height);
std::cout << "Initial camera resolution: " << resolutions[res_index].width << "x" << resolutions[res_index].height << std::endl;
ImagePreprocessor preprocessor;
ArmorDetector detector;
KalmanFilter kalman_tracker;
Visualizer visualizer;
int frame_counter = 0; // Counter to control output frequency
int max_consecutive_predicts = 20; // Maximum consecutive prediction times
int consecutive_predicts = 0; // Current consecutive prediction count
cv::Mat frame;
try {
while (true) {
if (!camera.read_frame(frame)) {
std::cout << "Cannot read from MindVision camera, exiting!" << std::endl;
break;
}
// Get actual image size and calculate center
cv::Point2f img_center(frame.cols / 2.0f, frame.rows / 2.0f);
// Preprocessing
cv::Mat mask, color_only_frame;
preprocessor.process_frame(frame, target_color, mask, color_only_frame);
// Armor plate detection
std::vector<LightBar> valid_light_bars;
std::vector<ArmorPlate> armor_plates;
detector.detect(mask, target_color, valid_light_bars, armor_plates);
// Kalman filter tracking (modified part: get target speed)
cv::Point2f* current_center = nullptr;
if (!armor_plates.empty()) {
current_center = &(armor_plates[0].center);
}
cv::Point2f* predicted_center = nullptr;
if (current_center != nullptr) {
// Has detection result: update Kalman filter, reset consecutive prediction count
kalman_tracker.update(*current_center);
predicted_center = new cv::Point2f(kalman_tracker.predict());
// Get velocity from the Kalman filter
target_speed = cv::Point2f(0.0f, 0.0f); // Kalman filter in OpenCV doesn't directly expose velocity
consecutive_predicts = 0;
} else {
// No detection result: only use Kalman prediction, limit consecutive predictions
consecutive_predicts++;
if (consecutive_predicts < max_consecutive_predicts) {
cv::Point2f temp_pred = kalman_tracker.predict();
if (temp_pred.x != 0 || temp_pred.y != 0) { // Check if prediction is valid
predicted_center = new cv::Point2f(temp_pred);
}
} else {
predicted_center = nullptr;
target_speed = cv::Point2f(0.0f, 0.0f);
}
}
// Determine display center
cv::Point2f* display_center = current_center;
if (display_center == nullptr && predicted_center != nullptr) {
display_center = predicted_center;
}
bool is_predicted = (display_center != nullptr) && (current_center == nullptr);
// Calculate ballistic prediction point
cv::Point2f* ballistic_point = ballistic_predictor.predict_ballistic_point(
predicted_center, img_center, target_speed
);
auto current_time = std::chrono::high_resolution_clock::now();
// Visualization
visualizer.draw_light_bars(frame, valid_light_bars, target_color);
if (!armor_plates.empty()) {
visualizer.draw_armor_plate(frame, armor_plates[0]);
}
visualizer.draw_offset_text(frame, display_center, target_color, is_predicted);
visualizer.draw_ballistic_point(frame, ballistic_point);
// Output control data to TTL (passing use_ttl to control whether to send)
output_control_data(display_center, target_color, frame_counter, ttl, img_center, use_ttl);
// Display windows
cv::imshow("Armor Detection", frame);
cv::imshow(target_color + " Mask", mask);
cv::imshow(target_color + " Only", color_only_frame);
// Exit on 'q' key press
if (cv::waitKey(1) == 'q') {
break;
}
frame_counter++;
// Control max frame rate (100 FPS)
auto end_time = std::chrono::high_resolution_clock::now();
auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - current_time).count();
if (elapsed < 10) { // 100 FPS = 10ms per frame
std::this_thread::sleep_for(std::chrono::milliseconds(10 - elapsed));
}
// Clean up dynamically allocated memory
if (predicted_center != nullptr) {
delete predicted_center;
predicted_center = nullptr;
}
}
}
catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
// Cleanup
camera.release();
cv::destroyAllWindows();
// Only close TTL connection when enabled and initialized
if (use_ttl && ttl != nullptr) {
ttl->close();
delete ttl;
ttl = nullptr;
}
return 0;
}

View File

@@ -1,3 +1,78 @@
# Catalyst-MDVS
# MindVision相机驱动的装甲板检测系统
迈德威视版本 AI写的 Cpp 自瞄
本项目是基于MindVision相机SDK的装甲板检测系统使用高性能工业相机替代原有的OpenCV相机接口。
## 项目结构
- `MindVisionCamera.h/cpp` - MindVision相机驱动实现
- `main.cpp` - 主程序入口已修改为使用MindVision相机
- 其他 `.cpp/.h` 文件 - 原有的图像处理、装甲板检测、卡尔曼滤波等功能模块
## 环境准备
此项目需要在WSL Ubuntu环境中编译和运行因为MindVision SDK位于WSL系统中。
### 1. 确保MindVision SDK已安装
在WSL Ubuntu中确认SDK路径
```bash
ls -la /home/lld/mdv/include/CameraApi.h
ls -la /home/lld/mdv/lib/x86/
```
### 2. 安装必要的依赖
```bash
sudo apt update
sudo apt install build-essential cmake libopencv-dev
```
## 编译项目
### 方法1使用构建脚本
```bash
cd /home/lld/code/mdvs
chmod +x build.sh
./build.sh
```
### 方法2手动编译
```bash
cd /home/lld/code/mdvs
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
```
## 运行程序
```bash
./build/armor_detector_mdv
```
## 配置说明
- 相机ID可在main函数中修改 `cam_id` 变量
- 默认分辨率640x480帧率30fps
- 支持颜色切换(红色/蓝色)
- 支持TTL通信默认关闭
## 注意事项
1. 此项目使用MindVision相机SDK直接驱动相机可以获得更好的性能和相机控制能力
2. 曝光、白平衡等参数可在`MindVisionCamera.cpp`中的`set_camera_parameters()`函数中调整
3. 如果遇到编译错误请检查MindVision SDK的库文件名是否正确可能是`libMVSDK.so``libMVSDK.a`
## 键盘控制
- 按 'q' 键退出程序
- 按其他键继续运行
## 故障排除
如果相机无法打开:
1. 检查相机是否正确连接
2. 确认MindVision相机驱动是否正确安装
3. 验证相机ID是否正确
4. 检查权限可能需要将用户添加到video组

59
TTLCommunicator.cpp Normal file
View File

@@ -0,0 +1,59 @@
#include "TTLCommunicator.h"
#include <iostream>
TTLCommunicator::TTLCommunicator(int baudrate) : baudrate(baudrate), connected(false) {
// Default to a common serial port name, though this will need to be configured for the specific system
port_name = "/dev/ttyUSB0"; // Common for Linux/Ubuntu
}
TTLCommunicator::~TTLCommunicator() {
close();
}
bool TTLCommunicator::connect() {
// Placeholder implementation - in a real implementation, you would open the serial port
std::cout << "Attempting to connect to TTL device on port: " << port_name << " at baud rate: " << baudrate << std::endl;
// For now, simulate a connection attempt
// In real implementation, use system calls to open the serial port
connected = open_serial_port();
if (connected) {
std::cout << "TTL connection established." << std::endl;
} else {
std::cout << "Warning: Failed to establish TTL connection." << std::endl;
}
return connected;
}
void TTLCommunicator::close() {
if (connected) {
close_serial_port();
connected = false;
std::cout << "TTL connection closed." << std::endl;
}
}
bool TTLCommunicator::send_data(const std::string& data) {
if (!connected) {
return false;
}
// Placeholder for sending data over serial
// In real implementation, write to the serial port
std::cout << "Sending TTL data: " << data << std::endl;
// Simulate successful transmission
return true;
}
bool TTLCommunicator::open_serial_port() {
// In a real implementation, this would use system calls like open(), tcsetattr(), etc.
// For now, return true to simulate a successful connection
return true;
}
void TTLCommunicator::close_serial_port() {
// In a real implementation, this would close the file descriptor
}

32
TTLCommunicator.h Normal file
View File

@@ -0,0 +1,32 @@
#ifndef TTLCOMMUNICATOR_H
#define TTLCOMMUNICATOR_H
#include <string>
// Placeholder for TTL communication class
// In a real implementation, you would use a C++ serial library like:
// - serial (https://github.com/wjwwood/serial)
// - Boost.Asio
// - or a system-specific approach
class TTLCommunicator {
public:
TTLCommunicator(int baudrate = 115200);
~TTLCommunicator();
bool connect();
void close();
bool send_data(const std::string& data);
bool is_connected() const { return connected; }
private:
std::string port_name;
int baudrate;
bool connected;
// These would be implemented with actual serial communication code
bool open_serial_port();
void close_serial_port();
};
#endif // TTLCOMMUNICATOR_H

93
Visualizer.cpp Normal file
View File

@@ -0,0 +1,93 @@
#include "Visualizer.h"
#include <sstream>
Visualizer::Visualizer() {
// Constructor implementation
}
Visualizer::~Visualizer() {
// Destructor implementation
}
cv::Mat& Visualizer::draw_light_bars(cv::Mat& frame, const std::vector<LightBar>& light_bars, const std::string& target_color) {
cv::Scalar color = (target_color == "red") ? cv::Scalar(0, 0, 255) : cv::Scalar(255, 0, 0); // Red or Blue in BGR
for (const auto& light_bar : light_bars) {
// Draw rotated rectangle for each light bar
for (size_t i = 0; i < light_bar.box.size(); i++) {
cv::Point2f pt1 = light_bar.box[i];
cv::Point2f pt2 = light_bar.box[(i + 1) % light_bar.box.size()];
cv::line(frame, pt1, pt2, color, 2);
}
}
return frame;
}
cv::Mat& Visualizer::draw_armor_plate(cv::Mat& frame, const ArmorPlate& armor_plate) {
cv::circle(frame, armor_plate.center, 10, cv::Scalar(0, 255, 0), 2); // Green circle around armor center
// Draw confidence text
std::stringstream ss;
ss << "Conf: " << std::fixed << std::setprecision(2) << armor_plate.confidence;
cv::putText(frame, ss.str(), cv::Point(armor_plate.center.x + 15, armor_plate.center.y - 15),
cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(0, 255, 0), 1);
return frame;
}
cv::Mat& Visualizer::draw_offset_text(cv::Mat& frame, const cv::Point2f* display_center, const std::string& /*target_color*/, bool is_predicted) {
if (display_center == nullptr) {
return frame;
}
cv::Point2f img_center(frame.cols / 2.0f, frame.rows / 2.0f);
int offset_x = static_cast<int>(display_center->x - img_center.x);
int offset_y = static_cast<int>(display_center->y - img_center.y);
std::stringstream ss;
ss << "Offset: (" << offset_x << ", " << offset_y << ")";
// Use different color based on whether it's predicted or actual
cv::Scalar color = is_predicted ? cv::Scalar(0, 255, 255) : cv::Scalar(0, 255, 0); // Yellow for predicted, Green for actual
cv::putText(frame, ss.str(), cv::Point(20, 30), cv::FONT_HERSHEY_SIMPLEX, 0.7, color, 2);
return frame;
}
cv::Mat& Visualizer::draw_crosshair(cv::Mat& frame, const cv::Point2f& center, const cv::Scalar& color, int size) {
// Draw horizontal line
cv::line(frame,
cv::Point(static_cast<int>(center.x - size), static_cast<int>(center.y)),
cv::Point(static_cast<int>(center.x + size), static_cast<int>(center.y)),
color, 2);
// Draw vertical line
cv::line(frame,
cv::Point(static_cast<int>(center.x), static_cast<int>(center.y - size)),
cv::Point(static_cast<int>(center.x), static_cast<int>(center.y + size)),
color, 2);
return frame;
}
cv::Mat& Visualizer::draw_ballistic_point(cv::Mat& frame, const cv::Point2f* ballistic_point) {
if (ballistic_point != nullptr) {
// Draw a red crosshair at the ballistic prediction point
cv::circle(frame, *ballistic_point, 8, cv::Scalar(0, 0, 255), 2); // Red circle
cv::line(frame,
cv::Point(static_cast<int>(ballistic_point->x - 10), static_cast<int>(ballistic_point->y)),
cv::Point(static_cast<int>(ballistic_point->x + 10), static_cast<int>(ballistic_point->y)),
cv::Scalar(0, 0, 255), 2); // Red horizontal line
cv::line(frame,
cv::Point(static_cast<int>(ballistic_point->x), static_cast<int>(ballistic_point->y - 10)),
cv::Point(static_cast<int>(ballistic_point->x), static_cast<int>(ballistic_point->y + 10)),
cv::Scalar(0, 0, 255), 2); // Red vertical line
// Label as ballistic point
cv::putText(frame, "BP", cv::Point(static_cast<int>(ballistic_point->x + 15), static_cast<int>(ballistic_point->y - 15)),
cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(0, 0, 255), 1);
}
return frame;
}

30
Visualizer.h Normal file
View File

@@ -0,0 +1,30 @@
#ifndef VISUALIZER_H
#define VISUALIZER_H
#include <opencv2/opencv.hpp>
#include <vector>
#include <string>
#include "ArmorDetector.h"
class Visualizer {
public:
Visualizer();
~Visualizer();
// Draw light bars on frame
cv::Mat& draw_light_bars(cv::Mat& frame, const std::vector<LightBar>& light_bars, const std::string& target_color);
// Draw armor plate on frame
cv::Mat& draw_armor_plate(cv::Mat& frame, const ArmorPlate& armor_plate);
// Draw offset text
cv::Mat& draw_offset_text(cv::Mat& frame, const cv::Point2f* display_center, const std::string& target_color, bool is_predicted = false);
// Draw crosshair at center
cv::Mat& draw_crosshair(cv::Mat& frame, const cv::Point2f& center, const cv::Scalar& color = cv::Scalar(0, 255, 0), int size = 10);
// Draw ballistic point
cv::Mat& draw_ballistic_point(cv::Mat& frame, const cv::Point2f* ballistic_point);
};
#endif // VISUALIZER_H

View File

@@ -0,0 +1 @@
{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1},{"kind":"cmakeFiles","version":1}]}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,825 @@
{
"inputs" :
[
{
"path" : "CMakeLists.txt"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeSystem.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/3.28.3/CMakeSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeUnixFindMake.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeSystemSpecificInitialize.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux-Initialize.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCompilerIdDetection.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/ADSP-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Borland-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Cray-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/CrayClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/GHS-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/HP-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IAR-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Intel-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/MSVC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/OrangeC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/PGI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/PathScale-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/SCO-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/TI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Tasking-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Watcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/XL-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeFindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-FindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/3.28.3/CMakeCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux-Determine-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCompilerIdDetection.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/ADSP-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Borland-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Cray-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/CrayClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/GHS-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IAR-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Intel-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/MSVC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/OrangeC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/PGI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/PathScale-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/SCO-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/TI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Tasking-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Watcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeFindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-FindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCXXCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeSystemSpecificInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeGenericSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeInitializeConfigs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/UnixPaths.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux-Clang-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux-GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeParseImplicitIncludeInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeParseLibraryArchitecture.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCompileFeatures.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Internal/FeatureTesting.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/3.28.3/CMakeCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCXXInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Compiler/Clang.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux-Clang-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux-GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeParseImplicitIncludeInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeParseLibraryArchitecture.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeDetermineCompileFeatures.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/Internal/FeatureTesting.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/CMakeCXXCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/opencv4/OpenCVConfig-version.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/opencv4/OpenCVConfig.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-3.28/Modules/FindPackageMessage.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/opencv4/OpenCVModules.cmake"
},
{
"isExternal" : true,
"path" : "/usr/local/lib/cmake/opencv4/OpenCVModules-release.cmake"
}
],
"kind" : "cmakeFiles",
"paths" :
{
"build" : "/home/x-h/mdvs/mdvs/build",
"source" : "/home/x-h/mdvs/mdvs"
},
"version" :
{
"major" : 1,
"minor" : 0
}
}

View File

@@ -0,0 +1,60 @@
{
"configurations" :
[
{
"directories" :
[
{
"build" : ".",
"jsonFile" : "directory-.-RelWithDebInfo-f5ebdc15457944623624.json",
"minimumCMakeVersion" :
{
"string" : "3.10"
},
"projectIndex" : 0,
"source" : ".",
"targetIndexes" :
[
0
]
}
],
"name" : "RelWithDebInfo",
"projects" :
[
{
"directoryIndexes" :
[
0
],
"name" : "armor_detector_mdv",
"targetIndexes" :
[
0
]
}
],
"targets" :
[
{
"directoryIndex" : 0,
"id" : "armor_detector_mdv::@6890427a1f51a3e7e1df",
"jsonFile" : "target-armor_detector_mdv-RelWithDebInfo-95e5fd8fed0c719b85b2.json",
"name" : "armor_detector_mdv",
"projectIndex" : 0
}
]
}
],
"kind" : "codemodel",
"paths" :
{
"build" : "/home/x-h/mdvs/mdvs/build",
"source" : "/home/x-h/mdvs/mdvs"
},
"version" :
{
"major" : 2,
"minor" : 6
}
}

View File

@@ -0,0 +1,14 @@
{
"backtraceGraph" :
{
"commands" : [],
"files" : [],
"nodes" : []
},
"installers" : [],
"paths" :
{
"build" : ".",
"source" : "."
}
}

View File

@@ -0,0 +1,132 @@
{
"cmake" :
{
"generator" :
{
"multiConfig" : false,
"name" : "Unix Makefiles"
},
"paths" :
{
"cmake" : "/usr/bin/cmake",
"cpack" : "/usr/bin/cpack",
"ctest" : "/usr/bin/ctest",
"root" : "/usr/share/cmake-3.28"
},
"version" :
{
"isDirty" : false,
"major" : 3,
"minor" : 28,
"patch" : 3,
"string" : "3.28.3",
"suffix" : ""
}
},
"objects" :
[
{
"jsonFile" : "codemodel-v2-5568b463325334ab291d.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 6
}
},
{
"jsonFile" : "cache-v2-2115554c906a5d7087de.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "cmakeFiles-v1-87a392359c1c340404bf.json",
"kind" : "cmakeFiles",
"version" :
{
"major" : 1,
"minor" : 0
}
},
{
"jsonFile" : "toolchains-v1-0126e2ac26307df6ddab.json",
"kind" : "toolchains",
"version" :
{
"major" : 1,
"minor" : 0
}
}
],
"reply" :
{
"client-vscode" :
{
"query.json" :
{
"requests" :
[
{
"kind" : "cache",
"version" : 2
},
{
"kind" : "codemodel",
"version" : 2
},
{
"kind" : "toolchains",
"version" : 1
},
{
"kind" : "cmakeFiles",
"version" : 1
}
],
"responses" :
[
{
"jsonFile" : "cache-v2-2115554c906a5d7087de.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "codemodel-v2-5568b463325334ab291d.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 6
}
},
{
"jsonFile" : "toolchains-v1-0126e2ac26307df6ddab.json",
"kind" : "toolchains",
"version" :
{
"major" : 1,
"minor" : 0
}
},
{
"jsonFile" : "cmakeFiles-v1-87a392359c1c340404bf.json",
"kind" : "cmakeFiles",
"version" :
{
"major" : 1,
"minor" : 0
}
}
]
}
}
}
}

View File

@@ -0,0 +1,467 @@
{
"artifacts" :
[
{
"path" : "armor_detector_mdv"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"add_executable",
"target_link_libraries",
"include_directories"
],
"files" :
[
"CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 19,
"parent" : 0
},
{
"command" : 1,
"file" : 0,
"line" : 31,
"parent" : 0
},
{
"command" : 1,
"file" : 0,
"line" : 36,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
"line" : 16,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
"line" : 12,
"parent" : 0
}
]
},
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : " -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14"
}
],
"includes" :
[
{
"backtrace" : 4,
"path" : "/home/lld/mdv/include"
},
{
"backtrace" : 5,
"isSystem" : true,
"path" : "/usr/local/include/opencv4"
}
],
"language" : "CXX",
"languageStandard" :
{
"backtraces" :
[
2
],
"standard" : "14"
},
"sourceIndexes" :
[
0,
1,
2,
3,
4,
5,
6,
7
]
}
],
"id" : "armor_detector_mdv::@6890427a1f51a3e7e1df",
"link" :
{
"commandFragments" :
[
{
"fragment" : "-Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG",
"role" : "flags"
},
{
"fragment" : "",
"role" : "flags"
},
{
"fragment" : "-Wl,-rpath,/usr/local/lib",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_gapi.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_stitching.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_aruco.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_bgsegm.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_bioinspired.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_ccalib.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_dnn_objdetect.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_dnn_superres.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_dpm.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_face.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_freetype.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_fuzzy.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_hfs.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_img_hash.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_intensity_transform.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_line_descriptor.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_mcc.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_quality.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_rapid.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_reg.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_rgbd.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_saliency.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_signal.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_stereo.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_structured_light.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_superres.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_surface_matching.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_tracking.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_videostab.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_wechat_qrcode.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_xfeatures2d.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_xobjdetect.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_xphoto.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 3,
"fragment" : "-lMVSDK",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_shape.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_highgui.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_datasets.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_plot.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_text.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_ml.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_phase_unwrapping.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_optflow.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_ximgproc.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_video.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_videoio.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_imgcodecs.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_objdetect.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_calib3d.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_dnn.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_features2d.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_flann.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_photo.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_imgproc.so.4.12.0",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "/usr/local/lib/libopencv_core.so.4.12.0",
"role" : "libraries"
}
],
"language" : "CXX"
},
"name" : "armor_detector_mdv",
"nameOnDisk" : "armor_detector_mdv",
"paths" :
{
"build" : ".",
"source" : "."
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2,
3,
4,
5,
6,
7
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "main.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "MindVisionCamera.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "ImagePreprocessor.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "ArmorDetector.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "KalmanFilter.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "Visualizer.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "BallisticPredictor.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "TTLCommunicator.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "EXECUTABLE"
}

View File

@@ -0,0 +1,114 @@
{
"kind" : "toolchains",
"toolchains" :
[
{
"compiler" :
{
"id" : "Clang",
"implicit" :
{
"includeDirectories" :
[
"/usr/lib/llvm-18/lib/clang/18/include",
"/usr/local/include",
"/usr/include/x86_64-linux-gnu",
"/usr/include"
],
"linkDirectories" :
[
"/usr/lib/gcc/x86_64-linux-gnu/13",
"/usr/lib64",
"/lib/x86_64-linux-gnu",
"/lib64",
"/usr/lib/x86_64-linux-gnu",
"/lib",
"/usr/lib"
],
"linkFrameworkDirectories" : [],
"linkLibraries" :
[
"gcc",
"gcc_s",
"c",
"gcc",
"gcc_s"
]
},
"path" : "/usr/bin/clang",
"version" : "18.1.3"
},
"language" : "C",
"sourceFileExtensions" :
[
"c",
"m"
]
},
{
"compiler" :
{
"id" : "Clang",
"implicit" :
{
"includeDirectories" :
[
"/usr/include/c++/13",
"/usr/include/x86_64-linux-gnu/c++/13",
"/usr/include/c++/13/backward",
"/usr/lib/llvm-18/lib/clang/18/include",
"/usr/local/include",
"/usr/include/x86_64-linux-gnu",
"/usr/include"
],
"linkDirectories" :
[
"/usr/lib/gcc/x86_64-linux-gnu/13",
"/usr/lib64",
"/lib/x86_64-linux-gnu",
"/lib64",
"/usr/lib/x86_64-linux-gnu",
"/lib",
"/usr/lib"
],
"linkFrameworkDirectories" : [],
"linkLibraries" :
[
"stdc++",
"m",
"gcc_s",
"gcc",
"c",
"gcc_s",
"gcc"
]
},
"path" : "/usr/bin/clang++",
"version" : "18.1.3"
},
"language" : "CXX",
"sourceFileExtensions" :
[
"C",
"M",
"c++",
"cc",
"cpp",
"cxx",
"mm",
"mpp",
"CPP",
"ixx",
"cppm",
"ccm",
"cxxm",
"c++m"
]
}
],
"version" :
{
"major" : 1,
"minor" : 0
}
}

387
build/CMakeCache.txt Normal file
View File

@@ -0,0 +1,387 @@
# This is the CMakeCache file.
# For build in directory: /home/x-h/mdvs/mdvs/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
//No help, variable specified on the command line.
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler
CMAKE_CXX_COMPILER:STRING=/usr/bin/clang++
//LLVM archiver
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/llvm-ar-18
//`clang-scan-deps` dependency scanner
CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS:FILEPATH=CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-NOTFOUND
//Generate index for LLVM archive
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/llvm-ranlib-18
//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
//C compiler
CMAKE_C_COMPILER:STRING=/usr/bin/clang
//LLVM archiver
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/llvm-ar-18
//`clang-scan-deps` dependency scanner
CMAKE_C_COMPILER_CLANG_SCAN_DEPS:FILEPATH=CMAKE_C_COMPILER_CLANG_SCAN_DEPS-NOTFOUND
//Generate index for LLVM archive
CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/llvm-ranlib-18
//Flags used by the C compiler during all build types.
CMAKE_C_FLAGS:STRING=
//Flags used by the C compiler during DEBUG builds.
CMAKE_C_FLAGS_DEBUG:STRING=-g
//Flags used by the C compiler during MINSIZEREL builds.
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
//Flags used by the C compiler during RELEASE builds.
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
//Flags used by the C compiler during RELWITHDEBINFO builds.
CMAKE_C_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=
//No help, variable specified on the command line.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE
//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/x-h/mdvs/mdvs/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/gmake
//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_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=armor_detector_mdv
//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 linker during the creation of static libraries
// during all build types.
CMAKE_STATIC_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of static libraries
// during DEBUG builds.
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of static libraries
// during MINSIZEREL builds.
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of static libraries
// during RELEASE builds.
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker 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
//The directory containing a CMake configuration file for OpenCV.
OpenCV_DIR:PATH=/usr/local/lib/cmake/opencv4
//Value Computed by CMake
armor_detector_mdv_BINARY_DIR:STATIC=/home/x-h/mdvs/mdvs/build
//Value Computed by CMake
armor_detector_mdv_IS_TOP_LEVEL:STATIC=ON
//Value Computed by CMake
armor_detector_mdv_SOURCE_DIR:STATIC=/home/x-h/mdvs/mdvs
########################
# 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/x-h/mdvs/mdvs/build
//Major version of cmake used to create the current loaded cache
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
//Minor version of cmake used to create the current loaded cache
CMAKE_CACHE_MINOR_VERSION:INTERNAL=28
//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_CLANG_SCAN_DEPS
CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-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_C_COMPILER
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_CLANG_SCAN_DEPS
CMAKE_C_COMPILER_CLANG_SCAN_DEPS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_DLLTOOL
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
//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
//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/x-h/mdvs/mdvs
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
//ADVANCED property for variable: CMAKE_LINKER
CMAKE_LINKER-ADVANCED:INTERNAL=1
//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-3.28
//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 OpenCV
FIND_PACKAGE_MESSAGE_DETAILS_OpenCV:INTERNAL=[/usr/local][v4.12.0()]
//linker supports push/pop state
_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE

View File

@@ -0,0 +1,74 @@
set(CMAKE_C_COMPILER "/usr/bin/clang")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "Clang")
set(CMAKE_C_COMPILER_VERSION "18.1.3")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
set(CMAKE_C_PLATFORM_ID "Linux")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_C_COMPILER_AR "/usr/bin/llvm-ar-18")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/llvm-ranlib-18")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_MT "")
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
set(CMAKE_COMPILER_IS_GNUCC )
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_C_COMPILER_ENV_VAR "CC")
set(CMAKE_C_COMPILER_ID_RUN 1)
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
set(CMAKE_C_LINKER_PREFERENCE 10)
set(CMAKE_C_LINKER_DEPFILE_SUPPORTED TRUE)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
if(CMAKE_C_SIZEOF_DATA_PTR)
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
endif()
if(CMAKE_C_COMPILER_ABI)
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
endif()
if(CMAKE_C_LIBRARY_ARCHITECTURE)
set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
endif()
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
endif()
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/llvm-18/lib/clang/18/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib64;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/lib;/usr/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

View File

@@ -0,0 +1,85 @@
set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "Clang")
set(CMAKE_CXX_COMPILER_VERSION "18.1.3")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
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")
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_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_CXX_COMPILER_AR "/usr/bin/llvm-ar-18")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/llvm-ranlib-18")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_MT "")
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
set(CMAKE_COMPILER_IS_GNUCXX )
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 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)
# 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 "x86_64-linux-gnu")
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 "x86_64-linux-gnu")
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++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/llvm-18/lib/clang/18/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include")
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib64;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/lib;/usr/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

View File

@@ -0,0 +1,15 @@
set(CMAKE_HOST_SYSTEM "Linux-6.6.87.2-microsoft-standard-WSL2")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "6.6.87.2-microsoft-standard-WSL2")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-6.6.87.2-microsoft-standard-WSL2")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "6.6.87.2-microsoft-standard-WSL2")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

View File

@@ -0,0 +1,880 @@
#ifdef __cplusplus
# error "A C++ compiler has been selected for C."
#endif
#if defined(__18CXX)
# define ID_VOID_MAIN
#endif
#if defined(__CLASSIC_C__)
/* cv-qualifiers did not exist in K&R C */
# define const
# define volatile
#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_C)
# define COMPILER_ID "SunPro"
# if __SUNPRO_C >= 0x5100
/* __SUNPRO_C = 0xVRRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# else
/* __SUNPRO_CC = 0xVRP */
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
# endif
#elif defined(__HP_cc)
# define COMPILER_ID "HP"
/* __HP_cc = VVRRPP */
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
#elif defined(__DECC)
# define COMPILER_ID "Compaq"
/* __DECC_VER = VVRRTPPPP */
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
# define COMPILER_ID "zOS"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 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__)
#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(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
# define COMPILER_ID "XL"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
# define COMPILER_ID "VisualAge"
/* __IBMC__ = VRP */
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 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(__TINYC__)
# define COMPILER_ID "TinyCC"
#elif defined(__BCC__)
# define COMPILER_ID "Bruce"
#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__)
# 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__)
# define COMPILER_ID "GNU"
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
# 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(__SDCC_VERSION_MAJOR) || defined(SDCC)
# define COMPILER_ID "SDCC"
# if defined(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
# else
/* SDCC = VRP */
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
# endif
/* 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(__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__)
# 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
#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 "]";
#if !defined(__STDC__) && !defined(__clang__)
# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
# define C_VERSION "90"
# else
# define C_VERSION
# endif
#elif __STDC_VERSION__ > 201710L
# define C_VERSION "23"
#elif __STDC_VERSION__ >= 201710L
# define C_VERSION "17"
#elif __STDC_VERSION__ >= 201000L
# define C_VERSION "11"
#elif __STDC_VERSION__ >= 199901L
# define C_VERSION "99"
#else
# define C_VERSION "90"
#endif
const char* info_language_standard_default =
"INFO" ":" "standard_default[" C_VERSION "]";
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
defined(__TI_COMPILER_VERSION__)) && \
!defined(__STRICT_ANSI__)
"ON"
#else
"OFF"
#endif
"]";
/*--------------------------------------------------------------------------*/
#ifdef ID_VOID_MAIN
void main() {}
#else
# if defined(__CLASSIC_C__)
int main(argc, argv) int argc; char *argv[];
# else
int main(int argc, char* argv[])
# endif
{
int require = 0;
require += info_compiler[argc];
require += info_platform[argc];
require += info_arch[argc];
#ifdef COMPILER_VERSION_MAJOR
require += info_version[argc];
#endif
#ifdef COMPILER_VERSION_INTERNAL
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;
}
#endif

View File

@@ -0,0 +1,869 @@
/* 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(__COMO__)
# define COMPILER_ID "Comeau"
/* __COMO_VERSION__ = VRR */
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
#elif 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__)
#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(__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__)
# 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
/* 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(__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__)
# 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
#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 "]";
#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
# if defined(__INTEL_CXX11_MODE__)
# if defined(__cpp_aggregate_nsdmi)
# define CXX_STD 201402L
# else
# define CXX_STD 201103L
# endif
# else
# define CXX_STD 199711L
# endif
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
# define CXX_STD _MSVC_LANG
#else
# define CXX_STD __cplusplus
#endif
const char* info_language_standard_default = "INFO" ":" "standard_default["
#if CXX_STD > 202002L
"23"
#elif CXX_STD > 201703L
"20"
#elif CXX_STD >= 201703L
"17"
#elif CXX_STD >= 201402L
"14"
#elif CXX_STD >= 201103L
"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(__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
#ifdef COMPILER_VERSION_INTERNAL
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;
}

View File

@@ -0,0 +1,439 @@
---
events:
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake:233 (message)"
- "CMakeLists.txt:2 (project)"
message: |
The system is: Linux - 6.6.87.2-microsoft-standard-WSL2 - x86_64
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)"
- "CMakeLists.txt:2 (project)"
message: |
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/clang
Build flags:
Id flags:
The output was:
0
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
The C compiler identification is Clang, found in:
/home/x-h/mdvs/mdvs/build/CMakeFiles/3.28.3/CompilerIdC/a.out
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)"
- "CMakeLists.txt:2 (project)"
message: |
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/clang++
Build flags:
Id flags:
The output was:
0
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
The CXX compiler identification is Clang, found in:
/home/x-h/mdvs/mdvs/build/CMakeFiles/3.28.3/CompilerIdCXX/a.out
-
kind: "try_compile-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)"
- "/usr/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
checks:
- "Detecting C compiler ABI info"
directories:
source: "/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe"
binary: "/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe"
cmakeVariables:
CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-NOTFOUND"
CMAKE_C_FLAGS: ""
CMAKE_C_FLAGS_DEBUG: "-g"
CMAKE_EXE_LINKER_FLAGS: ""
buildResult:
variable: "CMAKE_C_ABI_COMPILED"
cached: true
stdout: |
Change Dir: '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_157ee/fast
/usr/bin/gmake -f CMakeFiles/cmTC_157ee.dir/build.make CMakeFiles/cmTC_157ee.dir/build
gmake[1]: Entering directory '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe'
Building C object CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o
/usr/bin/clang -v -MD -MT CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c
Ubuntu clang version 18.1.3 (1ubuntu1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Candidate multilib: .;@m64
Selected multilib: .;@m64
(in-process)
"/usr/lib/llvm-18/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe -v -fcoverage-compilation-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe -resource-dir /usr/lib/llvm-18/lib/clang/18 -dependency-file CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -sys-header-deps -internal-isystem /usr/lib/llvm-18/lib/clang/18/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -x c /usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c
clang -cc1 version 18.1.3 based upon LLVM 18.1.3 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/llvm-18/lib/clang/18/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
Linking C executable cmTC_157ee
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_157ee.dir/link.txt --verbose=1
/usr/bin/clang -v CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -o cmTC_157ee
Ubuntu clang version 18.1.3 (1ubuntu1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Candidate multilib: .;@m64
Selected multilib: .;@m64
"/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -pie -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_157ee /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/bin/../lib/gcc/x86_64-linux-gnu/13 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/lib -L/usr/lib CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o /lib/x86_64-linux-gnu/crtn.o
gmake[1]: Leaving directory '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe'
exitCode: 0
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:127 (message)"
- "/usr/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
message: |
Parsed C implicit include dir info: rv=done
found start of include info
found start of implicit include info
add: [/usr/lib/llvm-18/lib/clang/18/include]
add: [/usr/local/include]
add: [/usr/include/x86_64-linux-gnu]
add: [/usr/include]
end of search list found
collapse include dir [/usr/lib/llvm-18/lib/clang/18/include] ==> [/usr/lib/llvm-18/lib/clang/18/include]
collapse include dir [/usr/local/include] ==> [/usr/local/include]
collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
collapse include dir [/usr/include] ==> [/usr/include]
implicit include dirs: [/usr/lib/llvm-18/lib/clang/18/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:159 (message)"
- "/usr/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
message: |
Parsed C implicit link information:
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
ignore line: [Change Dir: '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe']
ignore line: []
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_157ee/fast]
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_157ee.dir/build.make CMakeFiles/cmTC_157ee.dir/build]
ignore line: [gmake[1]: Entering directory '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe']
ignore line: [Building C object CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/clang -v -MD -MT CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -MF CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o.d -o CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c]
ignore line: [Ubuntu clang version 18.1.3 (1ubuntu1)]
ignore line: [Target: x86_64-pc-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [InstalledDir: /usr/bin]
ignore line: [Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13]
ignore line: [Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13]
ignore line: [Candidate multilib: .]
ignore line: [@m64]
ignore line: [Selected multilib: .]
ignore line: [@m64]
ignore line: [ (in-process)]
ignore line: [ "/usr/lib/llvm-18/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe -v -fcoverage-compilation-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-n4S8xe -resource-dir /usr/lib/llvm-18/lib/clang/18 -dependency-file CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -sys-header-deps -internal-isystem /usr/lib/llvm-18/lib/clang/18/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -x c /usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c]
ignore line: [clang -cc1 version 18.1.3 based upon LLVM 18.1.3 default target x86_64-pc-linux-gnu]
ignore line: [ignoring nonexistent directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"]
ignore line: [ignoring nonexistent directory "/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ /usr/lib/llvm-18/lib/clang/18/include]
ignore line: [ /usr/local/include]
ignore line: [ /usr/include/x86_64-linux-gnu]
ignore line: [ /usr/include]
ignore line: [End of search list.]
ignore line: [Linking C executable cmTC_157ee]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_157ee.dir/link.txt --verbose=1]
ignore line: [/usr/bin/clang -v CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -o cmTC_157ee ]
ignore line: [Ubuntu clang version 18.1.3 (1ubuntu1)]
ignore line: [Target: x86_64-pc-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [InstalledDir: /usr/bin]
ignore line: [Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13]
ignore line: [Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13]
ignore line: [Candidate multilib: .]
ignore line: [@m64]
ignore line: [Selected multilib: .]
ignore line: [@m64]
link line: [ "/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -pie -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_157ee /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/bin/../lib/gcc/x86_64-linux-gnu/13 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/lib -L/usr/lib CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o /lib/x86_64-linux-gnu/crtn.o]
arg [/usr/bin/ld] ==> ignore
arg [-zrelro] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [-pie] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-o] ==> ignore
arg [cmTC_157ee] ==> ignore
arg [/lib/x86_64-linux-gnu/Scrt1.o] ==> obj [/lib/x86_64-linux-gnu/Scrt1.o]
arg [/lib/x86_64-linux-gnu/crti.o] ==> obj [/lib/x86_64-linux-gnu/crti.o]
arg [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o]
arg [-L/usr/bin/../lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13]
arg [-L/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64] ==> dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib64] ==> dir [/lib/../lib64]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]
arg [-L/lib] ==> dir [/lib]
arg [-L/usr/lib] ==> dir [/usr/lib]
arg [CMakeFiles/cmTC_157ee.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lgcc] ==> lib [gcc]
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--no-as-needed] ==> ignore
arg [-lc] ==> lib [c]
arg [-lgcc] ==> lib [gcc]
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--no-as-needed] ==> ignore
arg [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o]
arg [/lib/x86_64-linux-gnu/crtn.o] ==> obj [/lib/x86_64-linux-gnu/crtn.o]
collapse obj [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o]
collapse obj [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o]
collapse library dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13]
collapse library dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64] ==> [/usr/lib64]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib64] ==> [/lib64]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]
collapse library dir [/lib] ==> [/lib]
collapse library dir [/usr/lib] ==> [/usr/lib]
implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
implicit objs: [/lib/x86_64-linux-gnu/Scrt1.o;/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/lib/x86_64-linux-gnu/crtn.o]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib64;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/lib;/usr/lib]
implicit fwks: []
-
kind: "try_compile-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)"
- "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
checks:
- "Detecting CXX compiler ABI info"
directories:
source: "/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH"
binary: "/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH"
cmakeVariables:
CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS: "CMAKE_CXX_COMPILER_CLANG_SCAN_DEPS-NOTFOUND"
CMAKE_CXX_FLAGS: ""
CMAKE_CXX_FLAGS_DEBUG: "-g"
CMAKE_EXE_LINKER_FLAGS: ""
buildResult:
variable: "CMAKE_CXX_ABI_COMPILED"
cached: true
stdout: |
Change Dir: '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_7476e/fast
/usr/bin/gmake -f CMakeFiles/cmTC_7476e.dir/build.make CMakeFiles/cmTC_7476e.dir/build
gmake[1]: Entering directory '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH'
Building CXX object CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/clang++ -v -MD -MT CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp
Ubuntu clang version 18.1.3 (1ubuntu1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Candidate multilib: .;@m64
Selected multilib: .;@m64
(in-process)
"/usr/lib/llvm-18/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH -v -fcoverage-compilation-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH -resource-dir /usr/lib/llvm-18/lib/clang/18 -dependency-file CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o.d -MT CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/x86_64-linux-gnu/c++/13 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/backward -internal-isystem /usr/lib/llvm-18/lib/clang/18/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -x c++ /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp
clang -cc1 version 18.1.3 based upon LLVM 18.1.3 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13
/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/x86_64-linux-gnu/c++/13
/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/backward
/usr/lib/llvm-18/lib/clang/18/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
Linking CXX executable cmTC_7476e
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7476e.dir/link.txt --verbose=1
/usr/bin/clang++ -v CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_7476e
Ubuntu clang version 18.1.3 (1ubuntu1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13
Candidate multilib: .;@m64
Selected multilib: .;@m64
"/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -pie -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_7476e /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/bin/../lib/gcc/x86_64-linux-gnu/13 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/lib -L/usr/lib CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o /lib/x86_64-linux-gnu/crtn.o
gmake[1]: Leaving directory '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH'
exitCode: 0
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:127 (message)"
- "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
message: |
Parsed CXX implicit include dir info: rv=done
found start of include info
found start of implicit include info
add: [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13]
add: [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/x86_64-linux-gnu/c++/13]
add: [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/backward]
add: [/usr/lib/llvm-18/lib/clang/18/include]
add: [/usr/local/include]
add: [/usr/include/x86_64-linux-gnu]
add: [/usr/include]
end of search list found
collapse include dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13] ==> [/usr/include/c++/13]
collapse include dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/x86_64-linux-gnu/c++/13] ==> [/usr/include/x86_64-linux-gnu/c++/13]
collapse include dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/backward] ==> [/usr/include/c++/13/backward]
collapse include dir [/usr/lib/llvm-18/lib/clang/18/include] ==> [/usr/lib/llvm-18/lib/clang/18/include]
collapse include dir [/usr/local/include] ==> [/usr/local/include]
collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
collapse include dir [/usr/include] ==> [/usr/include]
implicit include dirs: [/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/llvm-18/lib/clang/18/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
-
kind: "message-v1"
backtrace:
- "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:159 (message)"
- "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
- "CMakeLists.txt:2 (project)"
message: |
Parsed CXX implicit link information:
link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
ignore line: [Change Dir: '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH']
ignore line: []
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_7476e/fast]
ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_7476e.dir/build.make CMakeFiles/cmTC_7476e.dir/build]
ignore line: [gmake[1]: Entering directory '/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH']
ignore line: [Building CXX object CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/clang++ -v -MD -MT CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -MF CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o.d -o CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Ubuntu clang version 18.1.3 (1ubuntu1)]
ignore line: [Target: x86_64-pc-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [InstalledDir: /usr/bin]
ignore line: [Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13]
ignore line: [Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13]
ignore line: [Candidate multilib: .]
ignore line: [@m64]
ignore line: [Selected multilib: .]
ignore line: [@m64]
ignore line: [ (in-process)]
ignore line: [ "/usr/lib/llvm-18/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH -v -fcoverage-compilation-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles/CMakeScratch/TryCompile-UdQTTH -resource-dir /usr/lib/llvm-18/lib/clang/18 -dependency-file CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o.d -MT CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -sys-header-deps -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/x86_64-linux-gnu/c++/13 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/backward -internal-isystem /usr/lib/llvm-18/lib/clang/18/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -x c++ /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [clang -cc1 version 18.1.3 based upon LLVM 18.1.3 default target x86_64-pc-linux-gnu]
ignore line: [ignoring nonexistent directory "/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"]
ignore line: [ignoring nonexistent directory "/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13]
ignore line: [ /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/x86_64-linux-gnu/c++/13]
ignore line: [ /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/backward]
ignore line: [ /usr/lib/llvm-18/lib/clang/18/include]
ignore line: [ /usr/local/include]
ignore line: [ /usr/include/x86_64-linux-gnu]
ignore line: [ /usr/include]
ignore line: [End of search list.]
ignore line: [Linking CXX executable cmTC_7476e]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7476e.dir/link.txt --verbose=1]
ignore line: [/usr/bin/clang++ -v CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_7476e ]
ignore line: [Ubuntu clang version 18.1.3 (1ubuntu1)]
ignore line: [Target: x86_64-pc-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [InstalledDir: /usr/bin]
ignore line: [Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13]
ignore line: [Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/13]
ignore line: [Candidate multilib: .]
ignore line: [@m64]
ignore line: [Selected multilib: .]
ignore line: [@m64]
link line: [ "/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -pie -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_7476e /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/bin/../lib/gcc/x86_64-linux-gnu/13 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/lib -L/usr/lib CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o /lib/x86_64-linux-gnu/crtn.o]
arg [/usr/bin/ld] ==> ignore
arg [-zrelro] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [-pie] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-o] ==> ignore
arg [cmTC_7476e] ==> ignore
arg [/lib/x86_64-linux-gnu/Scrt1.o] ==> obj [/lib/x86_64-linux-gnu/Scrt1.o]
arg [/lib/x86_64-linux-gnu/crti.o] ==> obj [/lib/x86_64-linux-gnu/crti.o]
arg [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o]
arg [-L/usr/bin/../lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13]
arg [-L/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64] ==> dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib64] ==> dir [/lib/../lib64]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]
arg [-L/lib] ==> dir [/lib]
arg [-L/usr/lib] ==> dir [/usr/lib]
arg [CMakeFiles/cmTC_7476e.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [-lstdc++] ==> lib [stdc++]
arg [-lm] ==> lib [m]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [-lc] ==> lib [c]
arg [-lgcc_s] ==> lib [gcc_s]
arg [-lgcc] ==> lib [gcc]
arg [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o]
arg [/lib/x86_64-linux-gnu/crtn.o] ==> obj [/lib/x86_64-linux-gnu/crtn.o]
collapse obj [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o]
collapse obj [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o]
collapse library dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13]
collapse library dir [/usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../lib64] ==> [/usr/lib64]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib64] ==> [/lib64]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]
collapse library dir [/lib] ==> [/lib]
collapse library dir [/usr/lib] ==> [/usr/lib]
implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
implicit objs: [/lib/x86_64-linux-gnu/Scrt1.o;/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/lib/x86_64-linux-gnu/crtn.o]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib64;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/lib;/usr/lib]
implicit fwks: []
...

View File

@@ -0,0 +1,16 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.28
# Relative path conversion top directories.
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/x-h/mdvs/mdvs")
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/x-h/mdvs/mdvs/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})

View File

@@ -0,0 +1,139 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.28
# 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/x-h/mdvs/mdvs/CMakeLists.txt"
"CMakeFiles/3.28.3/CMakeCCompiler.cmake"
"CMakeFiles/3.28.3/CMakeCXXCompiler.cmake"
"CMakeFiles/3.28.3/CMakeSystem.cmake"
"/usr/local/lib/cmake/opencv4/OpenCVConfig-version.cmake"
"/usr/local/lib/cmake/opencv4/OpenCVConfig.cmake"
"/usr/local/lib/cmake/opencv4/OpenCVModules-release.cmake"
"/usr/local/lib/cmake/opencv4/OpenCVModules.cmake"
"/usr/share/cmake-3.28/Modules/CMakeCCompiler.cmake.in"
"/usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c"
"/usr/share/cmake-3.28/Modules/CMakeCInformation.cmake"
"/usr/share/cmake-3.28/Modules/CMakeCXXCompiler.cmake.in"
"/usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp"
"/usr/share/cmake-3.28/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake-3.28/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake-3.28/Modules/CMakeCompilerIdDetection.cmake"
"/usr/share/cmake-3.28/Modules/CMakeDetermineCCompiler.cmake"
"/usr/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake"
"/usr/share/cmake-3.28/Modules/CMakeDetermineCompileFeatures.cmake"
"/usr/share/cmake-3.28/Modules/CMakeDetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake"
"/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake"
"/usr/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake"
"/usr/share/cmake-3.28/Modules/CMakeFindBinUtils.cmake"
"/usr/share/cmake-3.28/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake-3.28/Modules/CMakeInitializeConfigs.cmake"
"/usr/share/cmake-3.28/Modules/CMakeLanguageInformation.cmake"
"/usr/share/cmake-3.28/Modules/CMakeParseImplicitIncludeInfo.cmake"
"/usr/share/cmake-3.28/Modules/CMakeParseImplicitLinkInfo.cmake"
"/usr/share/cmake-3.28/Modules/CMakeParseLibraryArchitecture.cmake"
"/usr/share/cmake-3.28/Modules/CMakeSystem.cmake.in"
"/usr/share/cmake-3.28/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake-3.28/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake"
"/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake"
"/usr/share/cmake-3.28/Modules/CMakeTestCompilerCommon.cmake"
"/usr/share/cmake-3.28/Modules/CMakeUnixFindMake.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Clang-C.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Clang-CXX.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Clang-FindBinUtils.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Clang.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/CrayClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/GNU.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/OrangeC-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/TI-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Tasking-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake"
"/usr/share/cmake-3.28/Modules/FindPackageMessage.cmake"
"/usr/share/cmake-3.28/Modules/Internal/FeatureTesting.cmake"
"/usr/share/cmake-3.28/Modules/Platform/Linux-Clang-C.cmake"
"/usr/share/cmake-3.28/Modules/Platform/Linux-Clang-CXX.cmake"
"/usr/share/cmake-3.28/Modules/Platform/Linux-Determine-CXX.cmake"
"/usr/share/cmake-3.28/Modules/Platform/Linux-GNU-C.cmake"
"/usr/share/cmake-3.28/Modules/Platform/Linux-GNU-CXX.cmake"
"/usr/share/cmake-3.28/Modules/Platform/Linux-GNU.cmake"
"/usr/share/cmake-3.28/Modules/Platform/Linux-Initialize.cmake"
"/usr/share/cmake-3.28/Modules/Platform/Linux.cmake"
"/usr/share/cmake-3.28/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
"CMakeFiles/3.28.3/CMakeSystem.cmake"
"CMakeFiles/3.28.3/CMakeCCompiler.cmake"
"CMakeFiles/3.28.3/CMakeCXXCompiler.cmake"
"CMakeFiles/3.28.3/CMakeCCompiler.cmake"
"CMakeFiles/3.28.3/CMakeCXXCompiler.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/armor_detector_mdv.dir/DependInfo.cmake"
)

112
build/CMakeFiles/Makefile2 Normal file
View File

@@ -0,0 +1,112 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.28
# 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/x-h/mdvs/mdvs
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/x-h/mdvs/mdvs/build
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "all" target.
all: CMakeFiles/armor_detector_mdv.dir/all
.PHONY : all
# The main recursive "preinstall" target.
preinstall:
.PHONY : preinstall
# The main recursive "clean" target.
clean: CMakeFiles/armor_detector_mdv.dir/clean
.PHONY : clean
#=============================================================================
# Target rules for target CMakeFiles/armor_detector_mdv.dir
# All Build rule for target.
CMakeFiles/armor_detector_mdv.dir/all:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9 "Built target armor_detector_mdv"
.PHONY : CMakeFiles/armor_detector_mdv.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/armor_detector_mdv.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/x-h/mdvs/mdvs/build/CMakeFiles 9
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/armor_detector_mdv.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/x-h/mdvs/mdvs/build/CMakeFiles 0
.PHONY : CMakeFiles/armor_detector_mdv.dir/rule
# Convenience name for target.
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/rule
.PHONY : armor_detector_mdv
# clean rule for target.
CMakeFiles/armor_detector_mdv.dir/clean:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/clean
.PHONY : CMakeFiles/armor_detector_mdv.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

View File

@@ -0,0 +1,3 @@
/home/x-h/mdvs/mdvs/build/CMakeFiles/armor_detector_mdv.dir
/home/x-h/mdvs/mdvs/build/CMakeFiles/edit_cache.dir
/home/x-h/mdvs/mdvs/build/CMakeFiles/rebuild_cache.dir

View 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/x-h/mdvs/mdvs/ArmorDetector.cpp" "CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o" "gcc" "CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o.d"
"/home/x-h/mdvs/mdvs/BallisticPredictor.cpp" "CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o" "gcc" "CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o.d"
"/home/x-h/mdvs/mdvs/ImagePreprocessor.cpp" "CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o" "gcc" "CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o.d"
"/home/x-h/mdvs/mdvs/KalmanFilter.cpp" "CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o" "gcc" "CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o.d"
"/home/x-h/mdvs/mdvs/MindVisionCamera.cpp" "CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o" "gcc" "CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o.d"
"/home/x-h/mdvs/mdvs/TTLCommunicator.cpp" "CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o" "gcc" "CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o.d"
"/home/x-h/mdvs/mdvs/Visualizer.cpp" "CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o" "gcc" "CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o.d"
"/home/x-h/mdvs/mdvs/main.cpp" "CMakeFiles/armor_detector_mdv.dir/main.cpp.o" "gcc" "CMakeFiles/armor_detector_mdv.dir/main.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 "")

View File

@@ -0,0 +1,275 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.28
# 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/x-h/mdvs/mdvs
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/x-h/mdvs/mdvs/build
# Include any dependencies generated for this target.
include CMakeFiles/armor_detector_mdv.dir/depend.make
# Include any dependencies generated by the compiler for this target.
include CMakeFiles/armor_detector_mdv.dir/compiler_depend.make
# Include the progress variables for this target.
include CMakeFiles/armor_detector_mdv.dir/progress.make
# Include the compile flags for this target's objects.
include CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/main.cpp.o: CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/main.cpp.o: /home/x-h/mdvs/mdvs/main.cpp
CMakeFiles/armor_detector_mdv.dir/main.cpp.o: CMakeFiles/armor_detector_mdv.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/armor_detector_mdv.dir/main.cpp.o"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/armor_detector_mdv.dir/main.cpp.o -MF CMakeFiles/armor_detector_mdv.dir/main.cpp.o.d -o CMakeFiles/armor_detector_mdv.dir/main.cpp.o -c /home/x-h/mdvs/mdvs/main.cpp
CMakeFiles/armor_detector_mdv.dir/main.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/armor_detector_mdv.dir/main.cpp.i"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/x-h/mdvs/mdvs/main.cpp > CMakeFiles/armor_detector_mdv.dir/main.cpp.i
CMakeFiles/armor_detector_mdv.dir/main.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/armor_detector_mdv.dir/main.cpp.s"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/x-h/mdvs/mdvs/main.cpp -o CMakeFiles/armor_detector_mdv.dir/main.cpp.s
CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o: CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o: /home/x-h/mdvs/mdvs/MindVisionCamera.cpp
CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o: CMakeFiles/armor_detector_mdv.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o -MF CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o.d -o CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o -c /home/x-h/mdvs/mdvs/MindVisionCamera.cpp
CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.i"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/x-h/mdvs/mdvs/MindVisionCamera.cpp > CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.i
CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.s"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/x-h/mdvs/mdvs/MindVisionCamera.cpp -o CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.s
CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o: CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o: /home/x-h/mdvs/mdvs/ImagePreprocessor.cpp
CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o: CMakeFiles/armor_detector_mdv.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o -MF CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o.d -o CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o -c /home/x-h/mdvs/mdvs/ImagePreprocessor.cpp
CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.i"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/x-h/mdvs/mdvs/ImagePreprocessor.cpp > CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.i
CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.s"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/x-h/mdvs/mdvs/ImagePreprocessor.cpp -o CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.s
CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o: CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o: /home/x-h/mdvs/mdvs/ArmorDetector.cpp
CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o: CMakeFiles/armor_detector_mdv.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o -MF CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o.d -o CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o -c /home/x-h/mdvs/mdvs/ArmorDetector.cpp
CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.i"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/x-h/mdvs/mdvs/ArmorDetector.cpp > CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.i
CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.s"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/x-h/mdvs/mdvs/ArmorDetector.cpp -o CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.s
CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o: CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o: /home/x-h/mdvs/mdvs/KalmanFilter.cpp
CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o: CMakeFiles/armor_detector_mdv.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o -MF CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o.d -o CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o -c /home/x-h/mdvs/mdvs/KalmanFilter.cpp
CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.i"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/x-h/mdvs/mdvs/KalmanFilter.cpp > CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.i
CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.s"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/x-h/mdvs/mdvs/KalmanFilter.cpp -o CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.s
CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o: CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o: /home/x-h/mdvs/mdvs/Visualizer.cpp
CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o: CMakeFiles/armor_detector_mdv.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o -MF CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o.d -o CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o -c /home/x-h/mdvs/mdvs/Visualizer.cpp
CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.i"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/x-h/mdvs/mdvs/Visualizer.cpp > CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.i
CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.s"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/x-h/mdvs/mdvs/Visualizer.cpp -o CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.s
CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o: CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o: /home/x-h/mdvs/mdvs/BallisticPredictor.cpp
CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o: CMakeFiles/armor_detector_mdv.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o -MF CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o.d -o CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o -c /home/x-h/mdvs/mdvs/BallisticPredictor.cpp
CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.i"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/x-h/mdvs/mdvs/BallisticPredictor.cpp > CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.i
CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.s"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/x-h/mdvs/mdvs/BallisticPredictor.cpp -o CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.s
CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o: CMakeFiles/armor_detector_mdv.dir/flags.make
CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o: /home/x-h/mdvs/mdvs/TTLCommunicator.cpp
CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o: CMakeFiles/armor_detector_mdv.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o -MF CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o.d -o CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o -c /home/x-h/mdvs/mdvs/TTLCommunicator.cpp
CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.i"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/x-h/mdvs/mdvs/TTLCommunicator.cpp > CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.i
CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.s"
/usr/bin/clang++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/x-h/mdvs/mdvs/TTLCommunicator.cpp -o CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.s
# Object files for target armor_detector_mdv
armor_detector_mdv_OBJECTS = \
"CMakeFiles/armor_detector_mdv.dir/main.cpp.o" \
"CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o" \
"CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o" \
"CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o" \
"CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o" \
"CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o" \
"CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o" \
"CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o"
# External object files for target armor_detector_mdv
armor_detector_mdv_EXTERNAL_OBJECTS =
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/main.cpp.o
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/build.make
armor_detector_mdv: /usr/local/lib/libopencv_gapi.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_stitching.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_aruco.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_bgsegm.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_bioinspired.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_ccalib.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_dnn_objdetect.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_dnn_superres.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_dpm.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_face.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_freetype.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_fuzzy.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_hfs.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_img_hash.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_intensity_transform.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_line_descriptor.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_mcc.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_quality.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_rapid.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_reg.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_rgbd.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_saliency.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_signal.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_stereo.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_structured_light.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_superres.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_surface_matching.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_tracking.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_videostab.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_wechat_qrcode.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_xfeatures2d.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_xobjdetect.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_xphoto.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_shape.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_highgui.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_datasets.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_plot.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_text.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_ml.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_phase_unwrapping.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_optflow.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_ximgproc.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_video.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_videoio.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_imgcodecs.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_objdetect.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_calib3d.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_dnn.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_features2d.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_flann.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_photo.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_imgproc.so.4.12.0
armor_detector_mdv: /usr/local/lib/libopencv_core.so.4.12.0
armor_detector_mdv: CMakeFiles/armor_detector_mdv.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/x-h/mdvs/mdvs/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX executable armor_detector_mdv"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/armor_detector_mdv.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
CMakeFiles/armor_detector_mdv.dir/build: armor_detector_mdv
.PHONY : CMakeFiles/armor_detector_mdv.dir/build
CMakeFiles/armor_detector_mdv.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/armor_detector_mdv.dir/cmake_clean.cmake
.PHONY : CMakeFiles/armor_detector_mdv.dir/clean
CMakeFiles/armor_detector_mdv.dir/depend:
cd /home/x-h/mdvs/mdvs/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/x-h/mdvs/mdvs /home/x-h/mdvs/mdvs /home/x-h/mdvs/mdvs/build /home/x-h/mdvs/mdvs/build /home/x-h/mdvs/mdvs/build/CMakeFiles/armor_detector_mdv.dir/DependInfo.cmake "--color=$(COLOR)"
.PHONY : CMakeFiles/armor_detector_mdv.dir/depend

View File

@@ -0,0 +1,25 @@
file(REMOVE_RECURSE
"CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o"
"CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o.d"
"CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o"
"CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o.d"
"CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o"
"CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o.d"
"CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o"
"CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o.d"
"CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o"
"CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o.d"
"CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o"
"CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o.d"
"CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o"
"CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o.d"
"CMakeFiles/armor_detector_mdv.dir/main.cpp.o"
"CMakeFiles/armor_detector_mdv.dir/main.cpp.o.d"
"armor_detector_mdv"
"armor_detector_mdv.pdb"
)
# Per-language clean rules from dependency scanning.
foreach(lang CXX)
include(CMakeFiles/armor_detector_mdv.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

View File

@@ -0,0 +1,2 @@
# CMAKE generated file: DO NOT EDIT!
# Timestamp file for compiler generated dependencies management for armor_detector_mdv.

View File

@@ -0,0 +1,2 @@
# Empty dependencies file for armor_detector_mdv.
# This may be replaced when dependencies are built.

View File

@@ -0,0 +1,10 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.28
# compile CXX with /usr/bin/clang++
CXX_DEFINES =
CXX_INCLUDES = -I/home/lld/mdv/include -isystem /usr/local/include/opencv4
CXX_FLAGS = -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14

View File

@@ -0,0 +1 @@
/usr/bin/clang++ -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG CMakeFiles/armor_detector_mdv.dir/main.cpp.o CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o -o armor_detector_mdv -Wl,-rpath,/usr/local/lib /usr/local/lib/libopencv_gapi.so.4.12.0 /usr/local/lib/libopencv_stitching.so.4.12.0 /usr/local/lib/libopencv_aruco.so.4.12.0 /usr/local/lib/libopencv_bgsegm.so.4.12.0 /usr/local/lib/libopencv_bioinspired.so.4.12.0 /usr/local/lib/libopencv_ccalib.so.4.12.0 /usr/local/lib/libopencv_dnn_objdetect.so.4.12.0 /usr/local/lib/libopencv_dnn_superres.so.4.12.0 /usr/local/lib/libopencv_dpm.so.4.12.0 /usr/local/lib/libopencv_face.so.4.12.0 /usr/local/lib/libopencv_freetype.so.4.12.0 /usr/local/lib/libopencv_fuzzy.so.4.12.0 /usr/local/lib/libopencv_hfs.so.4.12.0 /usr/local/lib/libopencv_img_hash.so.4.12.0 /usr/local/lib/libopencv_intensity_transform.so.4.12.0 /usr/local/lib/libopencv_line_descriptor.so.4.12.0 /usr/local/lib/libopencv_mcc.so.4.12.0 /usr/local/lib/libopencv_quality.so.4.12.0 /usr/local/lib/libopencv_rapid.so.4.12.0 /usr/local/lib/libopencv_reg.so.4.12.0 /usr/local/lib/libopencv_rgbd.so.4.12.0 /usr/local/lib/libopencv_saliency.so.4.12.0 /usr/local/lib/libopencv_signal.so.4.12.0 /usr/local/lib/libopencv_stereo.so.4.12.0 /usr/local/lib/libopencv_structured_light.so.4.12.0 /usr/local/lib/libopencv_superres.so.4.12.0 /usr/local/lib/libopencv_surface_matching.so.4.12.0 /usr/local/lib/libopencv_tracking.so.4.12.0 /usr/local/lib/libopencv_videostab.so.4.12.0 /usr/local/lib/libopencv_wechat_qrcode.so.4.12.0 /usr/local/lib/libopencv_xfeatures2d.so.4.12.0 /usr/local/lib/libopencv_xobjdetect.so.4.12.0 /usr/local/lib/libopencv_xphoto.so.4.12.0 -lMVSDK /usr/local/lib/libopencv_shape.so.4.12.0 /usr/local/lib/libopencv_highgui.so.4.12.0 /usr/local/lib/libopencv_datasets.so.4.12.0 /usr/local/lib/libopencv_plot.so.4.12.0 /usr/local/lib/libopencv_text.so.4.12.0 /usr/local/lib/libopencv_ml.so.4.12.0 /usr/local/lib/libopencv_phase_unwrapping.so.4.12.0 /usr/local/lib/libopencv_optflow.so.4.12.0 /usr/local/lib/libopencv_ximgproc.so.4.12.0 /usr/local/lib/libopencv_video.so.4.12.0 /usr/local/lib/libopencv_videoio.so.4.12.0 /usr/local/lib/libopencv_imgcodecs.so.4.12.0 /usr/local/lib/libopencv_objdetect.so.4.12.0 /usr/local/lib/libopencv_calib3d.so.4.12.0 /usr/local/lib/libopencv_dnn.so.4.12.0 /usr/local/lib/libopencv_features2d.so.4.12.0 /usr/local/lib/libopencv_flann.so.4.12.0 /usr/local/lib/libopencv_photo.so.4.12.0 /usr/local/lib/libopencv_imgproc.so.4.12.0 /usr/local/lib/libopencv_core.so.4.12.0

View File

@@ -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

View File

@@ -0,0 +1 @@
# This file is generated by cmake for dependency checking of the CMakeCache.txt file

View File

@@ -0,0 +1 @@
9

370
build/Makefile Normal file
View File

@@ -0,0 +1,370 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.28
# 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/x-h/mdvs/mdvs
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/x-h/mdvs/mdvs/build
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target edit_cache
edit_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "No interactive CMake dialog available..."
/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
.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/x-h/mdvs/mdvs/build/CMakeFiles /home/x-h/mdvs/mdvs/build//CMakeFiles/progress.marks
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/x-h/mdvs/mdvs/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 armor_detector_mdv
# Build rule for target.
armor_detector_mdv: cmake_check_build_system
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 armor_detector_mdv
.PHONY : armor_detector_mdv
# fast build rule for target.
armor_detector_mdv/fast:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/build
.PHONY : armor_detector_mdv/fast
ArmorDetector.o: ArmorDetector.cpp.o
.PHONY : ArmorDetector.o
# target to build an object file
ArmorDetector.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o
.PHONY : ArmorDetector.cpp.o
ArmorDetector.i: ArmorDetector.cpp.i
.PHONY : ArmorDetector.i
# target to preprocess a source file
ArmorDetector.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.i
.PHONY : ArmorDetector.cpp.i
ArmorDetector.s: ArmorDetector.cpp.s
.PHONY : ArmorDetector.s
# target to generate assembly for a file
ArmorDetector.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.s
.PHONY : ArmorDetector.cpp.s
BallisticPredictor.o: BallisticPredictor.cpp.o
.PHONY : BallisticPredictor.o
# target to build an object file
BallisticPredictor.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o
.PHONY : BallisticPredictor.cpp.o
BallisticPredictor.i: BallisticPredictor.cpp.i
.PHONY : BallisticPredictor.i
# target to preprocess a source file
BallisticPredictor.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.i
.PHONY : BallisticPredictor.cpp.i
BallisticPredictor.s: BallisticPredictor.cpp.s
.PHONY : BallisticPredictor.s
# target to generate assembly for a file
BallisticPredictor.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.s
.PHONY : BallisticPredictor.cpp.s
ImagePreprocessor.o: ImagePreprocessor.cpp.o
.PHONY : ImagePreprocessor.o
# target to build an object file
ImagePreprocessor.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o
.PHONY : ImagePreprocessor.cpp.o
ImagePreprocessor.i: ImagePreprocessor.cpp.i
.PHONY : ImagePreprocessor.i
# target to preprocess a source file
ImagePreprocessor.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.i
.PHONY : ImagePreprocessor.cpp.i
ImagePreprocessor.s: ImagePreprocessor.cpp.s
.PHONY : ImagePreprocessor.s
# target to generate assembly for a file
ImagePreprocessor.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.s
.PHONY : ImagePreprocessor.cpp.s
KalmanFilter.o: KalmanFilter.cpp.o
.PHONY : KalmanFilter.o
# target to build an object file
KalmanFilter.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o
.PHONY : KalmanFilter.cpp.o
KalmanFilter.i: KalmanFilter.cpp.i
.PHONY : KalmanFilter.i
# target to preprocess a source file
KalmanFilter.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.i
.PHONY : KalmanFilter.cpp.i
KalmanFilter.s: KalmanFilter.cpp.s
.PHONY : KalmanFilter.s
# target to generate assembly for a file
KalmanFilter.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.s
.PHONY : KalmanFilter.cpp.s
MindVisionCamera.o: MindVisionCamera.cpp.o
.PHONY : MindVisionCamera.o
# target to build an object file
MindVisionCamera.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o
.PHONY : MindVisionCamera.cpp.o
MindVisionCamera.i: MindVisionCamera.cpp.i
.PHONY : MindVisionCamera.i
# target to preprocess a source file
MindVisionCamera.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.i
.PHONY : MindVisionCamera.cpp.i
MindVisionCamera.s: MindVisionCamera.cpp.s
.PHONY : MindVisionCamera.s
# target to generate assembly for a file
MindVisionCamera.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.s
.PHONY : MindVisionCamera.cpp.s
TTLCommunicator.o: TTLCommunicator.cpp.o
.PHONY : TTLCommunicator.o
# target to build an object file
TTLCommunicator.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o
.PHONY : TTLCommunicator.cpp.o
TTLCommunicator.i: TTLCommunicator.cpp.i
.PHONY : TTLCommunicator.i
# target to preprocess a source file
TTLCommunicator.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.i
.PHONY : TTLCommunicator.cpp.i
TTLCommunicator.s: TTLCommunicator.cpp.s
.PHONY : TTLCommunicator.s
# target to generate assembly for a file
TTLCommunicator.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.s
.PHONY : TTLCommunicator.cpp.s
Visualizer.o: Visualizer.cpp.o
.PHONY : Visualizer.o
# target to build an object file
Visualizer.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o
.PHONY : Visualizer.cpp.o
Visualizer.i: Visualizer.cpp.i
.PHONY : Visualizer.i
# target to preprocess a source file
Visualizer.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.i
.PHONY : Visualizer.cpp.i
Visualizer.s: Visualizer.cpp.s
.PHONY : Visualizer.s
# target to generate assembly for a file
Visualizer.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.s
.PHONY : Visualizer.cpp.s
main.o: main.cpp.o
.PHONY : main.o
# target to build an object file
main.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.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/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.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/armor_detector_mdv.dir/build.make CMakeFiles/armor_detector_mdv.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 "... rebuild_cache"
@echo "... armor_detector_mdv"
@echo "... ArmorDetector.o"
@echo "... ArmorDetector.i"
@echo "... ArmorDetector.s"
@echo "... BallisticPredictor.o"
@echo "... BallisticPredictor.i"
@echo "... BallisticPredictor.s"
@echo "... ImagePreprocessor.o"
@echo "... ImagePreprocessor.i"
@echo "... ImagePreprocessor.s"
@echo "... KalmanFilter.o"
@echo "... KalmanFilter.i"
@echo "... KalmanFilter.s"
@echo "... MindVisionCamera.o"
@echo "... MindVisionCamera.i"
@echo "... MindVisionCamera.s"
@echo "... TTLCommunicator.o"
@echo "... TTLCommunicator.i"
@echo "... TTLCommunicator.s"
@echo "... Visualizer.o"
@echo "... Visualizer.i"
@echo "... Visualizer.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

BIN
build/armor_detector_mdv Normal file

Binary file not shown.

54
build/cmake_install.cmake Normal file
View File

@@ -0,0 +1,54 @@
# Install script for directory: /home/x-h/mdvs/mdvs
# 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 "RelWithDebInfo")
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 "1")
endif()
# Is this installation the result of a crosscompile?
if(NOT DEFINED CMAKE_CROSSCOMPILING)
set(CMAKE_CROSSCOMPILING "FALSE")
endif()
# Set default install directory permissions.
if(NOT DEFINED CMAKE_OBJDUMP)
set(CMAKE_OBJDUMP "/usr/bin/objdump")
endif()
if(CMAKE_INSTALL_COMPONENT)
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
else()
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
endif()
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
"${CMAKE_INSTALL_MANIFEST_FILES}")
file(WRITE "/home/x-h/mdvs/mdvs/build/${CMAKE_INSTALL_MANIFEST}"
"${CMAKE_INSTALL_MANIFEST_CONTENT}")

View File

@@ -0,0 +1,50 @@
[
{
"directory": "/home/x-h/mdvs/mdvs/build",
"command": "/usr/bin/clang++ -I/home/lld/mdv/include -isystem /usr/local/include/opencv4 -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14 -o CMakeFiles/armor_detector_mdv.dir/main.cpp.o -c /home/x-h/mdvs/mdvs/main.cpp",
"file": "/home/x-h/mdvs/mdvs/main.cpp",
"output": "CMakeFiles/armor_detector_mdv.dir/main.cpp.o"
},
{
"directory": "/home/x-h/mdvs/mdvs/build",
"command": "/usr/bin/clang++ -I/home/lld/mdv/include -isystem /usr/local/include/opencv4 -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14 -o CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o -c /home/x-h/mdvs/mdvs/MindVisionCamera.cpp",
"file": "/home/x-h/mdvs/mdvs/MindVisionCamera.cpp",
"output": "CMakeFiles/armor_detector_mdv.dir/MindVisionCamera.cpp.o"
},
{
"directory": "/home/x-h/mdvs/mdvs/build",
"command": "/usr/bin/clang++ -I/home/lld/mdv/include -isystem /usr/local/include/opencv4 -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14 -o CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o -c /home/x-h/mdvs/mdvs/ImagePreprocessor.cpp",
"file": "/home/x-h/mdvs/mdvs/ImagePreprocessor.cpp",
"output": "CMakeFiles/armor_detector_mdv.dir/ImagePreprocessor.cpp.o"
},
{
"directory": "/home/x-h/mdvs/mdvs/build",
"command": "/usr/bin/clang++ -I/home/lld/mdv/include -isystem /usr/local/include/opencv4 -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14 -o CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o -c /home/x-h/mdvs/mdvs/ArmorDetector.cpp",
"file": "/home/x-h/mdvs/mdvs/ArmorDetector.cpp",
"output": "CMakeFiles/armor_detector_mdv.dir/ArmorDetector.cpp.o"
},
{
"directory": "/home/x-h/mdvs/mdvs/build",
"command": "/usr/bin/clang++ -I/home/lld/mdv/include -isystem /usr/local/include/opencv4 -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14 -o CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o -c /home/x-h/mdvs/mdvs/KalmanFilter.cpp",
"file": "/home/x-h/mdvs/mdvs/KalmanFilter.cpp",
"output": "CMakeFiles/armor_detector_mdv.dir/KalmanFilter.cpp.o"
},
{
"directory": "/home/x-h/mdvs/mdvs/build",
"command": "/usr/bin/clang++ -I/home/lld/mdv/include -isystem /usr/local/include/opencv4 -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14 -o CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o -c /home/x-h/mdvs/mdvs/Visualizer.cpp",
"file": "/home/x-h/mdvs/mdvs/Visualizer.cpp",
"output": "CMakeFiles/armor_detector_mdv.dir/Visualizer.cpp.o"
},
{
"directory": "/home/x-h/mdvs/mdvs/build",
"command": "/usr/bin/clang++ -I/home/lld/mdv/include -isystem /usr/local/include/opencv4 -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14 -o CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o -c /home/x-h/mdvs/mdvs/BallisticPredictor.cpp",
"file": "/home/x-h/mdvs/mdvs/BallisticPredictor.cpp",
"output": "CMakeFiles/armor_detector_mdv.dir/BallisticPredictor.cpp.o"
},
{
"directory": "/home/x-h/mdvs/mdvs/build",
"command": "/usr/bin/clang++ -I/home/lld/mdv/include -isystem /usr/local/include/opencv4 -Wall -Wextra -O3 -pthread -O2 -g -DNDEBUG -std=gnu++14 -o CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o -c /home/x-h/mdvs/mdvs/TTLCommunicator.cpp",
"file": "/home/x-h/mdvs/mdvs/TTLCommunicator.cpp",
"output": "CMakeFiles/armor_detector_mdv.dir/TTLCommunicator.cpp.o"
}
]

42
config.h Normal file
View File

@@ -0,0 +1,42 @@
#ifndef CONFIG_H
#define CONFIG_H
#include <opencv2/opencv.hpp>
// Camera intrinsic parameters (need actual calibration)
const cv::Mat CAMERA_MATRIX = (cv::Mat_<float>(3, 3) <<
600, 0, 320,
0, 600, 240,
0, 0, 1);
const cv::Mat DIST_COEFFS = cv::Mat::zeros(5, 1, CV_32F); // Distortion coefficients (set to 0 for no distortion)
// Armor dimensions (in mm)
const float ARMOR_WIDTH = 135.0f;
const float ARMOR_HEIGHT = 125.0f;
const float ARMOR_THICKNESS = 20.0f;
const cv::Mat ARMOR_3D_POINTS = (cv::Mat_<float>(4, 3) <<
-ARMOR_WIDTH / 2, -ARMOR_HEIGHT / 2, 0,
ARMOR_WIDTH / 2, -ARMOR_HEIGHT / 2, 0,
ARMOR_WIDTH / 2, ARMOR_HEIGHT / 2, 0,
-ARMOR_WIDTH / 2, ARMOR_HEIGHT / 2, 0);
// Detection thresholds
const float HORIZONTAL_ANGLE_THRESHOLD = 25.0f; // Light bar horizontal angle threshold (degrees)
const float HORIZONTAL_ANGLE_THRESHOLD_RAD = HORIZONTAL_ANGLE_THRESHOLD * CV_PI / 180.0f;
const float NEARBY_LIGHT_BAR_THRESHOLD = 500.0f; // Light bar merging distance threshold (pixels)
const float LIGHT_BAR_IOU_THRESHOLD = 0.05f; // Light bar merging IOU threshold
const float ARMOR_DISTANCE_RATIO_MIN = 0.6f; // Armor light bar distance ratio range
const float ARMOR_DISTANCE_RATIO_MAX = 3.0f;
const float ARMOR_LENGTH_DIFF_RATIO = 0.5f; // Armor light bar length difference ratio
const float ARMOR_ANGLE_DIFF_THRESHOLD = 20.0f * CV_PI / 180.0f; // Armor light bar angle difference threshold (radians)
// Kalman filter parameters
const float KF_PROCESS_NOISE = 0.02f; // Process noise covariance
const float KF_MEASUREMENT_NOISE = 0.5f; // Measurement noise covariance
// TTL communication settings
const int TTL_BAUDRATE = 115200;
#endif // CONFIG_H

238
main.cpp Normal file
View File

@@ -0,0 +1,238 @@
#include <iostream>
#include <string>
#include <vector>
#include <chrono>
#include <thread>
#include <memory>
#include <opencv2/opencv.hpp>
#include "config.h"
#include "MindVisionCamera.h" // 使用MindVision相机
#include "ImagePreprocessor.h"
#include "ArmorDetector.h"
#include "KalmanFilter.h"
#include "Visualizer.h"
#include "BallisticPredictor.h"
#include "TTLCommunicator.h"
// Function to output control data to TTL device (with enable control)
void output_control_data(const cv::Point2f* ballistic_point,
const std::string& target_color,
int frame_counter,
TTLCommunicator* ttl_communicator,
const cv::Point2f& img_center,
bool use_ttl,
bool armor_detected) {
// Only send data when TTL is enabled, meets frame interval, AND armor is detected
if (use_ttl && frame_counter % 5 == 0 && armor_detected) {
// Only send if we have a valid ballistic point to send
if (ballistic_point != nullptr) {
// Calculate offset (based on actual image center)
int ballistic_offset_x = static_cast<int>(ballistic_point->x - img_center.x);
int ballistic_offset_y = static_cast<int>(ballistic_point->y - img_center.y);
// Color simplification mapping
std::string simplified_color = target_color;
if (target_color == "red") simplified_color = "r";
else if (target_color == "blue") simplified_color = "b";
// Construct send string
std::string send_str = "s " + simplified_color + " " + std::to_string(ballistic_offset_x) + " " + std::to_string(ballistic_offset_y);
// Send data
if (ttl_communicator != nullptr) {
ttl_communicator->send_data(send_str);
}
}
// Note: When ballistic_point is nullptr, no TTL data is sent (fulfilling the requirement)
}
}
void set_camera_resolution(MindVisionCamera, int width, int height) {
// The resolution is set during camera initialization in MindVision
// We already set it in MindVisionCamera constructor, so this is for logging only
std::cout << "Camera resolution already set to: " << width << "x" << height << " during initialization" << std::endl;
}
int main(int /*argc*/, char* /*argv*/[]) {
std::string target_color = "red";
int cam_id = 0;
cv::Size default_resolution(640, 480); // This will be set by MindVisionCamera constructor
bool use_ttl = true; // Set to false to disable TTL communication
// Define optional resolution list (adjust based on camera support)
std::vector<cv::Size> resolutions = {
cv::Size(320, 240), // Low resolution, high frame rate
cv::Size(640, 480), // Standard resolution
cv::Size(1280, 720), // HD resolution
cv::Size(1920, 1080) // Full HD resolution
};
// Find the index of default resolution
int res_index = 1; // Default to index 1 (640x480)
for (size_t i = 0; i < resolutions.size(); i++) {
if (resolutions[i] == default_resolution) {
res_index = static_cast<int>(i);
break;
}
}
// Initialize TTL communication (only when enabled)
TTLCommunicator* ttl = nullptr;
if (use_ttl) {
ttl = new TTLCommunicator(TTL_BAUDRATE);
if (!ttl->connect()) {
std::cout << "Warning: Cannot establish TTL connection, will continue running but not send data" << std::endl;
}
} else {
std::cout << "TTL communication disabled" << std::endl;
}
// Initialize visual processing modules with MindVision camera
MindVisionCamera camera(cam_id, target_color);
if (!camera.is_opened) {
std::cerr << "Cannot open MindVision camera!" << std::endl;
return -1;
}
// Initialize ballistic predictor (adjustable bullet speed, e.g., 16m/s)
BallisticPredictor ballistic_predictor(16.0f);
// Record target speed (obtained from Kalman filter)
cv::Point2f target_speed(0.0f, 0.0f);
// Set initial resolution
set_camera_resolution(camera, resolutions[res_index].width, resolutions[res_index].height);
std::cout << "Initial camera resolution: " << resolutions[res_index].width << "x" << resolutions[res_index].height << std::endl;
ImagePreprocessor preprocessor;
ArmorDetector detector;
KalmanFilter kalman_tracker;
Visualizer visualizer;
int frame_counter = 0; // Counter to control output frequency
int max_consecutive_predicts = 20; // Maximum consecutive prediction times
int consecutive_predicts = 0; // Current consecutive prediction count
cv::Mat frame;
try {
while (true) {
if (!camera.read_frame(frame)) {
std::cout << "Cannot read from MindVision camera, exiting!" << std::endl;
break;
}
// Get actual image size and calculate center
cv::Point2f img_center(frame.cols / 2.0f, frame.rows / 2.0f);
// Preprocessing
cv::Mat mask, color_only_frame;
preprocessor.process_frame(frame, target_color, mask, color_only_frame);
// Armor plate detection
std::vector<LightBar> valid_light_bars;
std::vector<ArmorPlate> armor_plates;
detector.detect(mask, target_color, valid_light_bars, armor_plates);
// Kalman filter tracking (modified part: get target speed)
cv::Point2f* current_center = nullptr;
if (!armor_plates.empty()) {
current_center = &(armor_plates[0].center);
}
cv::Point2f* predicted_center = nullptr;
if (current_center != nullptr) {
// Has detection result: update Kalman filter, reset consecutive prediction count
kalman_tracker.update(*current_center);
predicted_center = new cv::Point2f(kalman_tracker.predict());
// Get velocity from the Kalman filter
target_speed = cv::Point2f(0.0f, 0.0f); // Kalman filter in OpenCV doesn't directly expose velocity
consecutive_predicts = 0;
} else {
// No detection result: only use Kalman prediction, limit consecutive predictions
consecutive_predicts++;
if (consecutive_predicts < max_consecutive_predicts) {
cv::Point2f temp_pred = kalman_tracker.predict();
if (temp_pred.x != 0 || temp_pred.y != 0) { // Check if prediction is valid
predicted_center = new cv::Point2f(temp_pred);
}
} else {
predicted_center = nullptr;
target_speed = cv::Point2f(0.0f, 0.0f);
}
}
// Determine display center
cv::Point2f* display_center = current_center;
if (display_center == nullptr && predicted_center != nullptr) {
display_center = predicted_center;
}
bool is_predicted = (display_center != nullptr) && (current_center == nullptr);
// Calculate ballistic prediction point
cv::Point2f* ballistic_point = ballistic_predictor.predict_ballistic_point(
predicted_center, img_center, target_speed
);
auto current_time = std::chrono::high_resolution_clock::now();
// Visualization
visualizer.draw_light_bars(frame, valid_light_bars, target_color);
if (!armor_plates.empty()) {
visualizer.draw_armor_plate(frame, armor_plates[0]);
}
visualizer.draw_offset_text(frame, display_center, target_color, is_predicted);
visualizer.draw_ballistic_point(frame, ballistic_point);
// Output control data to TTL (passing use_ttl to control whether to send)
// Only send TTL data if actual armor plates were detected (not just predicted)
bool armor_detected = !armor_plates.empty();
// Only send TTL data when we have an actual detection, not just prediction
bool should_send_ttl = armor_detected && (display_center != nullptr);
output_control_data(display_center, target_color, frame_counter, ttl, img_center, use_ttl, should_send_ttl);
// Display windows
cv::imshow("Armor Detection", frame);
cv::imshow(target_color + " Mask", mask);
cv::imshow(target_color + " Only", color_only_frame);
// Exit on 'q' key press
if (cv::waitKey(1) == 'q') {
break;
}
frame_counter++;
// Control max frame rate (100 FPS)
auto end_time = std::chrono::high_resolution_clock::now();
auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - current_time).count();
if (elapsed < 10) { // 100 FPS = 10ms per frame
std::this_thread::sleep_for(std::chrono::milliseconds(30 - elapsed));
}
// Clean up dynamically allocated memory
if (predicted_center != nullptr) {
delete predicted_center;
predicted_center = nullptr;
}
}
}
catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
// Cleanup
camera.release();
cv::destroyAllWindows();
// Only close TTL connection when enabled and initialized
if (use_ttl && ttl != nullptr) {
ttl->close();
delete ttl;
ttl = nullptr;
}
return 0;
}