闪光检测模块前端合并

mc_branch
camelliamc 1 day ago
parent 711ab614e2
commit 5582217733

@ -404,3 +404,13 @@ body {
.dashboard-body { grid-template-columns: 1fr; }
.monitor-panel { width: 280px; }
}
/* ===== 闪光检测面板 ===== */
.flash-card { flex-shrink: 0; }
.flash-body { padding: 12px; }
.flash-data { margin: 10px 0; }
.flash-avoidance-btns { display: flex; gap: 8px; }
.flash-avoidance-btns .btn { flex: 1; }
.tag-secondary { background: #f0f0f0; color: #999; }
.hidden { display: none !important; }

@ -137,6 +137,23 @@
<button class="btn btn-danger wide" id="btn-mark-destroyed" disabled>标记无人机被摧毁</button>
</div>
</div>
<div class="card flash-card">
<div class="card-header">
<span class="card-title">闪光检测</span>
<span id="flash-status" class="tag tag-secondary">未启用</span>
</div>
<div class="flash-body">
<button id="btn-flash-enable" class="btn btn-secondary wide" disabled>启用闪光检测</button>
<div class="data-grid flash-data">
<div class="data-item"><span class="data-label">光斑位置</span><span class="data-value" id="flash-position">--</span></div>
<div class="data-item"><span class="data-label">检测面积</span><span class="data-value" id="flash-area">--</span></div>
</div>
<div class="flash-avoidance-btns">
<button id="btn-avoidance-enable" class="btn btn-warning" disabled>启用避闪光</button>
<button id="btn-avoidance-disable" class="btn btn-secondary" disabled>禁用避闪光</button>
</div>
</div>
</div>
<div class="card soldier-card">
<div class="card-header">
<span class="card-title">在线士兵</span>
@ -183,6 +200,8 @@
<script src="/js/roslib.min.js"></script>
<script src="/js/map.js"></script>
<script src="/js/websocket.js"></script>
<script src="/js/flash_detector.js"></script>
<script src="/js/flash_avoidance.js"></script>
<script src="/js/ui.js"></script>
</body>
</html>

@ -1,11 +1,11 @@
/**
* Flash Avoidance Module - 避光斑决策模块
* 基于光斑检测结果执行垂直结合避光斑策略
*
*
* 避光斑策略:
* - 水平躲避: 根据光斑相对相机的左右位置反向水平移动
* - 垂直躲避: 根据光斑相对相机的上下位置反向垂直移动
*
*
* 触发条件:
* - 光斑被检测到且面积超过阈值
*/
@ -18,20 +18,20 @@ const FlashAvoidanceModule = (() => {
avoidanceDistance: 3.0, // 避光斑移动距离 (米)
avoidanceHoldTime: 2000, // 避光斑后悬停时间 (毫秒)
minDetectionArea: 100, // 最小检测面积阈值
// 图像尺寸 (需要根据实际相机调整)
imageWidth: 640,
imageHeight: 480,
// 阈值
horizontalThreshold: 0.2, // 水平方向检测阈值 (-1 ~ 1)
verticalThreshold: 0.2, // 垂直方向检测阈值 (-1 ~ 1)
// 防抖
debounceCount: 3, // 需要连续检测N帧才触发避光斑
debounceCooldown: 5000, // 避光斑冷却时间 (毫秒)
};
// 状态
let state = {
isAvoiding: false, // 是否正在执行避光斑
@ -39,15 +39,15 @@ const FlashAvoidanceModule = (() => {
lastAvoidanceTime: 0, // 上次避光斑时间
detectionCount: 0, // 连续检测计数
};
// 回调函数
let onStatusUpdate = null;
let onAvoidanceStart = null;
let onAvoidanceEnd = null;
// 外部依赖 (由主模块注入)
let wsModule = null;
/**
* 初始化模块
* @param {Object} options - 配置选项
@ -61,23 +61,23 @@ const FlashAvoidanceModule = (() => {
onStatusUpdate = options.onStatusUpdate || null;
onAvoidanceStart = options.onAvoidanceStart || null;
onAvoidanceEnd = options.onAvoidanceEnd || null;
if (options.config) {
Object.assign(config, options.config);
}
console.log('[Flash Avoidance] 模块初始化完成');
console.log('[Flash Avoidance] 避光斑距离:', config.avoidanceDistance, 'm');
console.log('[Flash Avoidance] 最小检测面积:', config.minDetectionArea);
}
/**
* 更新配置
*/
function updateConfig(newConfig) {
Object.assign(config, newConfig);
}
/**
* 启用/禁用避光斑
*/
@ -90,7 +90,7 @@ const FlashAvoidanceModule = (() => {
});
}
}
/**
* 状态回调
*/
@ -98,7 +98,7 @@ const FlashAvoidanceModule = (() => {
function setStatusCallback(callback) {
statusCallback = callback;
}
/**
* 处理光斑检测数据
* @param {Object} detectionData - 检测数据 {cx, cy, area, sightX, sightY}
@ -108,40 +108,40 @@ const FlashAvoidanceModule = (() => {
if (!config.enabled) {
return null;
}
if (state.isAvoiding) {
return null; // 正在执行避光斑,忽略新检测
}
// 检查冷却时间
const now = Date.now();
if (now - state.lastAvoidanceTime < config.debounceCooldown) {
return null; // 冷却中
}
// 检查面积阈值
if (detectionData.area < config.minDetectionArea) {
state.detectionCount = 0;
return null;
}
// 防抖计数
state.detectionCount++;
if (state.detectionCount < config.debounceCount) {
return null; // 还未达到连续检测阈值
}
// 计算相对位置
const centerX = config.imageWidth / 2;
const centerY = config.imageHeight / 2;
const relativeX = (detectionData.cx - centerX) / centerX;
const relativeY = (detectionData.cy - centerY) / centerY;
// 判断是否需要避光斑
let needAvoidance = false;
let avoidX = 0, avoidY = 0, avoidZ = 0;
// 水平避光斑 (X方向)
if (Math.abs(relativeX) > config.horizontalThreshold) {
// 光斑在右侧,无人机向左移动
@ -149,7 +149,7 @@ const FlashAvoidanceModule = (() => {
avoidX = -relativeX * config.avoidanceDistance;
needAvoidance = true;
}
// 垂直避光斑 (Z方向)
if (Math.abs(relativeY) > config.verticalThreshold) {
// 光斑在下方(cy > centerY),无人机向上移动
@ -157,12 +157,12 @@ const FlashAvoidanceModule = (() => {
avoidZ = relativeY * config.avoidanceDistance;
needAvoidance = true;
}
if (needAvoidance) {
state.isAvoiding = true;
state.lastAvoidanceTime = now;
state.detectionCount = 0;
const avoidanceCmd = {
type: 'flash_avoidance',
avoidX: avoidX,
@ -176,35 +176,35 @@ const FlashAvoidanceModule = (() => {
relativeY: relativeY
}
};
if (onAvoidanceStart) {
onAvoidanceStart(avoidanceCmd);
}
if (statusCallback) {
statusCallback({
type: 'warning',
message: `检测到光斑,执行避光斑! 偏移: X=${avoidX.toFixed(1)}m, Z=${avoidZ.toFixed(1)}m`
});
}
return avoidanceCmd;
}
return null;
}
/**
* 结束避光斑
*/
function endAvoidance() {
if (state.isAvoiding) {
state.isAvoiding = false;
if (onAvoidanceEnd) {
onAvoidanceEnd();
}
if (statusCallback) {
statusCallback({
type: 'info',
@ -213,14 +213,14 @@ const FlashAvoidanceModule = (() => {
}
}
}
/**
* 检查是否正在执行避光斑
*/
function isAvoiding() {
return state.isAvoiding;
}
/**
* 计算避光斑目标位置
* @param {Object} currentPos - 当前无人机位置 {x, y, z}
@ -234,14 +234,14 @@ const FlashAvoidanceModule = (() => {
z: currentPos.z + avoidanceCmd.avoidZ
};
}
/**
* 获取当前状态
*/
function getState() {
return { ...state };
}
/**
* 重置状态
*/
@ -253,7 +253,7 @@ const FlashAvoidanceModule = (() => {
detectionCount: 0
};
}
return {
init,
updateConfig,

@ -1,7 +1,7 @@
/**
* Flash Detector Module - 光斑检测订阅模块
* 通过 rosbridge_server 订阅光斑检测结果
*
*
* 订阅的话题:
* /flash_detector/flash_detected (std_msgs/Bool) -
* /flash_detector/detection (std_msgs/Float32MultiArray) - [cx, cy, area, sight_x, sight_y]
@ -11,11 +11,11 @@ const FlashDetectorModule = (() => {
let ros = null;
let flashDetectedSub = null;
let detectionSub = null;
// 回调函数
let onFlashDetected = null;
let onDetectionData = null;
// 检测状态
let flashDetected = false;
let detectionData = {
@ -25,11 +25,11 @@ const FlashDetectorModule = (() => {
sightX: 0,
sightY: 0
};
// 图像尺寸 (默认 640x480需要根据实际相机调整)
let imageWidth = 640;
let imageHeight = 480;
/**
* 初始化模块
* @param {ROSLIB.Ros} rosInstance - ROS 连接实例
@ -41,18 +41,18 @@ const FlashDetectorModule = (() => {
ros = rosInstance;
onFlashDetected = callbacks.onFlashDetected || null;
onDetectionData = callbacks.onDetectionData || null;
// 设置图像尺寸 (可选)
if (callbacks.imageWidth) imageWidth = callbacks.imageWidth;
if (callbacks.imageHeight) imageHeight = callbacks.imageHeight;
setupSubscriptions();
console.log('[Flash Detector] 模块初始化完成');
console.log('[Flash Detector] 订阅话题: /flash_detector/flash_detected');
console.log('[Flash Detector] 订阅话题: /flash_detector/detection');
}
/**
* 设置订阅
*/
@ -63,22 +63,22 @@ const FlashDetectorModule = (() => {
name: '/flash_detector/flash_detected',
messageType: 'std_msgs/Bool'
});
flashDetectedSub.subscribe((msg) => {
flashDetected = msg.data;
if (onFlashDetected) {
onFlashDetected(msg.data);
}
});
// 订阅检测数据
detectionSub = new ROSLIB.Topic({
ros: ros,
name: '/flash_detector/detection',
messageType: 'std_msgs/Float32MultiArray'
});
detectionSub.subscribe((msg) => {
if (msg.data && msg.data.length >= 5) {
detectionData = {
@ -88,28 +88,28 @@ const FlashDetectorModule = (() => {
sightX: msg.data[3],
sightY: msg.data[4]
};
if (onDetectionData) {
onDetectionData(detectionData);
}
}
});
}
/**
* 获取当前检测状态
*/
function isFlashDetected() {
return flashDetected;
}
/**
* 获取当前检测数据
*/
function getDetectionData() {
return { ...detectionData };
}
/**
* 计算相对位置 (相对于图像中心)
* @returns {Object} {x: -1~1 (负值=左侧), y: -1~1 (负值=上方)}
@ -118,16 +118,16 @@ const FlashDetectorModule = (() => {
if (imageWidth === 0 || imageHeight === 0) {
return { x: 0, y: 0 };
}
const centerX = imageWidth / 2;
const centerY = imageHeight / 2;
return {
x: (detectionData.cx - centerX) / centerX, // -1 (左) ~ 1 (右)
y: (detectionData.cy - centerY) / centerY // -1 (上) ~ 1 (下)
};
}
/**
* 计算视线偏移角度 (弧度)
* @returns {Object} {x: radians, y: radians}
@ -138,7 +138,7 @@ const FlashDetectorModule = (() => {
y: detectionData.sightY
};
}
/**
* 设置图像尺寸 (用于计算相对位置)
*/
@ -146,7 +146,7 @@ const FlashDetectorModule = (() => {
imageWidth = width;
imageHeight = height;
}
/**
* 关闭模块
*/
@ -161,7 +161,7 @@ const FlashDetectorModule = (() => {
}
console.log('[Flash Detector] 模块已关闭');
}
return {
init,
isFlashDetected,

@ -1,7 +1,7 @@
/**
* UI 交互模块 智途投送电脑端
* 实机直连模式: 浏览器 roslibjs rosbridge MAVROS MAVLink PX4
* 功能: 任务调度无人机监控士兵位置追踪危险区域标记
* 功能: 任务调度无人机监控士兵位置追踪危险区域标记闪光检测
*/
const UIModule = (() => {
@ -11,6 +11,8 @@ const UIModule = (() => {
let missionPaused = false;
let mapInited = false;
let currentPage = 'dashboard';
let flashDetectionEnabled = false;
let flashAvoidanceEnabled = false;
// ---- 调度数据 ----
const BASE_LOCATION = { lat: 30.0000, lng: 120.0000, name: '补给基地' };
@ -65,6 +67,11 @@ const UIModule = (() => {
// 连接按钮
document.getElementById('btn-connect').addEventListener('click', onConnect);
// 闪光检测按钮
document.getElementById('btn-flash-enable').addEventListener('click', onEnableFlashDetection);
document.getElementById('btn-avoidance-enable').addEventListener('click', onEnableFlashAvoidance);
document.getElementById('btn-avoidance-disable').addEventListener('click', onDisableFlashAvoidance);
// 初始化 WsModule
WsModule.init();
@ -494,6 +501,107 @@ const UIModule = (() => {
).join('');
}
// =============== 闪光检测功能 ===============
function onEnableFlashDetection() {
if (!droneConnected) {
addLog('warning', '请先连接无人机');
return;
}
// 初始化闪光检测模块
if (typeof FlashDetectorModule !== 'undefined') {
FlashDetectorModule.init(WsModule.getRos(), {
onFlashDetected: (detected) => {
const statusEl = document.getElementById('flash-status');
if (detected) {
statusEl.className = 'tag tag-danger';
statusEl.textContent = '检测到闪光';
}
},
onDetectionData: (data) => {
// 更新闪光位置显示
document.getElementById('flash-position').textContent = '(' + data.cx.toFixed(0) + ', ' + data.cy.toFixed(0) + ')';
document.getElementById('flash-area').textContent = data.area.toFixed(0);
// 如果启用了避闪光,处理检测数据
if (flashAvoidanceEnabled && typeof FlashAvoidanceModule !== 'undefined') {
const avoidanceCmd = FlashAvoidanceModule.processDetection(data);
if (avoidanceCmd) {
executeFlashAvoidance(avoidanceCmd);
}
}
}
});
flashDetectionEnabled = true;
document.getElementById('btn-flash-enable').classList.add('hidden');
document.getElementById('flash-status').className = 'tag tag-success';
document.getElementById('flash-status').textContent = '已启用';
document.getElementById('btn-avoidance-enable').disabled = false;
addLog('success', '闪光检测已启用');
} else {
addLog('error', '闪光检测模块未加载');
}
}
function onEnableFlashAvoidance() {
if (!flashDetectionEnabled) {
addLog('warning', '请先启用闪光检测');
return;
}
if (typeof FlashAvoidanceModule !== 'undefined') {
FlashAvoidanceModule.init({
wsModule: WsModule,
onStatusUpdate: (data) => addLog(data.type, data.message)
});
FlashAvoidanceModule.setStatusCallback((data) => addLog(data.type, data.message));
FlashAvoidanceModule.setEnabled(true);
flashAvoidanceEnabled = true;
document.getElementById('btn-avoidance-enable').classList.add('hidden');
document.getElementById('btn-avoidance-disable').disabled = false;
addLog('success', '避闪光已启用');
}
}
function onDisableFlashAvoidance() {
if (typeof FlashAvoidanceModule !== 'undefined') {
FlashAvoidanceModule.setEnabled(false);
flashAvoidanceEnabled = false;
document.getElementById('btn-avoidance-enable').classList.remove('hidden');
document.getElementById('btn-avoidance-disable').disabled = true;
addLog('info', '避闪光已禁用');
}
}
function executeFlashAvoidance(avoidanceCmd) {
// 获取当前无人机位置
const currentPos = WsModule.getLocalPosition ? WsModule.getLocalPosition() : { x: 0, y: 0, z: 0 };
// 计算避闪光目标位置
const targetPos = {
x: currentPos.x + avoidanceCmd.avoidX,
y: currentPos.y + avoidanceCmd.avoidY,
z: currentPos.z + avoidanceCmd.avoidZ
};
// 发布新的位置设定值
WsModule.publishSetpoint(targetPos.x, targetPos.y, targetPos.z);
addLog('warning', '执行避闪光: 移动到 (' + targetPos.x.toFixed(1) + ', ' + targetPos.y.toFixed(1) + ', ' + targetPos.z.toFixed(1) + ')');
// 2秒后返回原位置或继续任务
setTimeout(() => {
FlashAvoidanceModule.endAvoidance();
addLog('info', '避闪光完成,返回正常控制');
}, 2000);
}
// =============== WsModule 回调 ===============
function onTelemetry(data) {
@ -534,6 +642,7 @@ const UIModule = (() => {
document.getElementById('btn-connect').disabled = true;
document.getElementById('monitor-status').textContent = '待命';
document.getElementById('monitor-status').className = 'tag tag-success';
document.getElementById('btn-flash-enable').disabled = false;
updateMonitorControls();
}
@ -570,12 +679,33 @@ const UIModule = (() => {
droneConnected = false;
missionRunning = false;
missionPaused = false;
flashDetectionEnabled = false;
flashAvoidanceEnabled = false;
document.getElementById('conn-dot').classList.remove('connected');
document.getElementById('conn-text').textContent = '未连接';
document.getElementById('btn-connect').textContent = '连接';
document.getElementById('btn-connect').disabled = false;
document.getElementById('monitor-status').textContent = '离线';
document.getElementById('monitor-status').className = 'tag tag-danger';
document.getElementById('btn-flash-enable').disabled = true;
document.getElementById('btn-flash-enable').classList.remove('hidden');
document.getElementById('btn-avoidance-enable').disabled = true;
document.getElementById('btn-avoidance-enable').classList.remove('hidden');
document.getElementById('btn-avoidance-disable').disabled = true;
document.getElementById('flash-status').className = 'tag tag-secondary';
document.getElementById('flash-status').textContent = '未启用';
document.getElementById('flash-position').textContent = '--';
document.getElementById('flash-area').textContent = '--';
// 关闭闪光检测模块
if (typeof FlashDetectorModule !== 'undefined') {
FlashDetectorModule.shutdown();
}
if (typeof FlashAvoidanceModule !== 'undefined') {
FlashAvoidanceModule.reset();
}
updateMonitorControls();
addLog('error', '无人机连接断开');
}

@ -685,6 +685,16 @@ const WsModule = (() => {
callArmingWithRetry(false, 2, () => {});
}
// 获取 ROS 连接实例 (供闪光检测模块使用)
function getRos() {
return ros;
}
// 获取本地位置 (供闪光检测模块使用)
function getLocalPosition() {
return telemetry.localPos;
}
return {
init,
isConnected,
@ -696,6 +706,9 @@ const WsModule = (() => {
returnHome,
land,
arm,
disarm
disarm,
getRos,
getLocalPosition,
publishSetpoint
};
})();

@ -1,8 +0,0 @@
{
"permissions": {
"allow": [
"Bash(curl -sL \"https://unpkg.com/roslib@2.1.0/dist/\")",
"Bash(curl -sL \"https://unpkg.com/roslib@1.3.0/build/roslib.min.js\" -o \"d:/29578/Documents/Study/computer/S_E/软件体系结构与设计/软件前端/js/roslib.min.js\" -w \"%{http_code} %{size_download}\")"
]
}
}

@ -1,383 +0,0 @@
/* ===== 全局样式 ===== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
background: #f0f2f5;
height: 100vh;
display: flex;
flex-direction: column;
overflow: hidden;
color: #333;
}
/* ===== 顶部状态栏 ===== */
.top-bar {
display: flex;
justify-content: space-between;
align-items: center;
height: 48px;
padding: 0 16px;
background: #1a1a2e;
color: #e0e0e0;
flex-shrink: 0;
z-index: 1000;
}
.top-bar-left {
display: flex;
align-items: center;
gap: 16px;
}
.logo {
font-size: 15px;
font-weight: 700;
color: #fff;
letter-spacing: 1px;
}
.status-item {
font-size: 13px;
color: #aaa;
}
.status-item strong {
color: #e0e0e0;
}
.top-bar-right {
display: flex;
align-items: center;
gap: 8px;
}
.top-bar-right input {
width: 220px;
padding: 5px 10px;
border: 1px solid #444;
border-radius: 4px;
background: #2a2a3e;
color: #e0e0e0;
font-size: 13px;
}
/* ===== 连接模式切换 ===== */
.conn-mode-group {
display: flex;
border-radius: 4px;
overflow: hidden;
border: 1px solid #444;
}
.mode-btn {
padding: 4px 12px;
background: #2a2a3e;
color: #aaa;
border: none;
cursor: pointer;
font-size: 12px;
font-weight: 600;
transition: all 0.2s;
}
.mode-btn:hover { color: #ddd; }
.mode-btn.active {
background: #007aff;
color: #fff;
}
.conn-mode-tag {
font-size: 11px;
padding: 2px 8px;
border-radius: 3px;
background: #2a2a3e;
color: #888;
white-space: nowrap;
}
/* ===== 标签 ===== */
.tag {
display: inline-block;
padding: 2px 10px;
border-radius: 10px;
font-size: 12px;
font-weight: 600;
}
.tag-success { background: #f6ffed; color: #52c41a; }
.tag-danger { background: #fff1f0; color: #ff4d4f; }
.tag-warning { background: #fffbe6; color: #faad14; }
.tag-info { background: #e6f7ff; color: #007aff; }
/* ===== 按钮 ===== */
.btn {
padding: 7px 14px;
border: none;
border-radius: 6px;
cursor: pointer;
font-size: 13px;
font-weight: 600;
transition: opacity 0.2s;
}
.btn:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.btn:not(:disabled):hover { opacity: 0.85; }
.btn-primary { background: #007aff; color: #fff; }
.btn-success { background: #52c41a; color: #fff; }
.btn-warning { background: #faad14; color: #fff; }
.btn-danger { background: #ff4d4f; color: #fff; }
.btn-secondary { background: #e0e0e0; color: #333; }
.btn.wide { width: 100%; }
.btn-link {
background: none;
border: none;
color: #999;
cursor: pointer;
font-size: 12px;
}
.btn-link:hover { color: #007aff; }
.btn-group {
display: flex;
gap: 8px;
margin-bottom: 8px;
}
.btn-group .btn { flex: 1; }
/* ===== 主内容区 ===== */
.main-content {
display: flex;
flex: 1;
min-height: 0;
}
/* ===== 地图 ===== */
.map-container {
flex: 1;
min-width: 0;
z-index: 1;
}
/* ===== 右侧控制面板 ===== */
.control-panel {
width: 300px;
flex-shrink: 0;
background: #fff;
border-left: 1px solid #e0e0e0;
overflow-y: auto;
display: flex;
flex-direction: column;
}
.panel-section {
padding: 12px;
border-bottom: 1px solid #f0f0f0;
}
.panel-header {
font-size: 14px;
font-weight: 700;
color: #333;
margin-bottom: 10px;
display: flex;
justify-content: space-between;
align-items: center;
}
.panel-header span:last-child {
font-weight: 400;
font-size: 12px;
color: #999;
}
/* ===== 航点列表 ===== */
.waypoint-list {
max-height: 220px;
overflow-y: auto;
margin-bottom: 8px;
}
.empty-hint {
text-align: center;
color: #bbb;
font-size: 13px;
padding: 20px 0;
}
.wp-item {
display: flex;
align-items: center;
padding: 6px 8px;
border-radius: 6px;
margin-bottom: 4px;
background: #f8f9fa;
cursor: pointer;
font-size: 13px;
transition: background 0.15s;
}
.wp-item:hover { background: #e6f7ff; }
.wp-item.active { background: #e6f7ff; border: 1px solid #91d5ff; }
.wp-index {
width: 22px;
height: 22px;
border-radius: 50%;
background: #007aff;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
font-size: 11px;
font-weight: 700;
margin-right: 8px;
flex-shrink: 0;
}
.wp-info {
flex: 1;
min-width: 0;
}
.wp-coord {
font-size: 11px;
color: #666;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.wp-alt {
font-size: 11px;
color: #999;
}
.wp-delete {
width: 20px;
height: 20px;
border: none;
background: none;
color: #ccc;
cursor: pointer;
font-size: 16px;
line-height: 1;
flex-shrink: 0;
}
.wp-delete:hover { color: #ff4d4f; }
.wp-params {
display: flex;
gap: 10px;
font-size: 12px;
color: #666;
}
.wp-params input {
width: 60px;
padding: 3px 6px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 12px;
text-align: center;
}
/* ===== 数据面板 ===== */
.data-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.data-item {
background: #f8f9fa;
border-radius: 6px;
padding: 8px;
text-align: center;
}
.data-label {
display: block;
font-size: 11px;
color: #999;
margin-bottom: 2px;
}
.data-value {
font-size: 13px;
font-weight: 600;
color: #333;
}
/* ===== 底部日志栏 ===== */
.log-bar {
height: 120px;
flex-shrink: 0;
background: #1e1e1e;
display: flex;
flex-direction: column;
}
.log-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 4px 12px;
font-size: 12px;
color: #888;
background: #2a2a2a;
border-bottom: 1px solid #333;
}
.log-content {
flex: 1;
overflow-y: auto;
padding: 4px 12px;
font-family: 'Consolas', 'Monaco', monospace;
font-size: 12px;
line-height: 1.6;
}
.log-entry {
white-space: nowrap;
}
.log-entry .time { color: #666; margin-right: 8px; }
.log-entry.success { color: #52c41a; }
.log-entry.error { color: #ff4d4f; }
.log-entry.warning { color: #faad14; }
.log-entry.info { color: #aaa; }
/* ===== Leaflet 自定义 ===== */
.drone-icon {
width: 24px;
height: 24px;
position: relative;
}
.drone-icon-inner {
width: 0;
height: 0;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 20px solid #007aff;
position: absolute;
top: 2px;
left: 2px;
transform-origin: center 60%;
}

@ -1,145 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>P600 无人机定点巡航控制系统</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<link rel="stylesheet" href="/css/style.css" />
</head>
<body>
<!-- 顶部状态栏 -->
<header class="top-bar">
<div class="top-bar-left">
<span class="logo">P600 定点巡航控制系统</span>
<span id="conn-status" class="tag tag-danger">未连接</span>
<span class="status-item">模式: <strong id="flight-mode">--</strong></span>
<span class="status-item">电量: <strong id="battery">--%</strong></span>
<span class="status-item">GPS: <strong id="gps-status">--</strong></span>
<span class="status-item">速度: <strong id="speed">-- m/s</strong></span>
<span class="status-item">高度: <strong id="altitude">-- m</strong></span>
</div>
<div class="top-bar-right">
<div class="conn-mode-group">
<button id="btn-mode-sim" class="mode-btn active" title="Prometheus SITL 仿真 (rosbridge WebSocket)">仿真模式</button>
<button id="btn-mode-real" class="mode-btn" title="P600 实机 WiFi 数传 (rosbridge WebSocket)">实机模式</button>
</div>
<input type="text" id="drone-url" value="ws://localhost:9090" placeholder="rosbridge 地址" />
<button id="btn-connect" class="btn btn-primary">连接无人机</button>
<span id="conn-mode-tag" class="conn-mode-tag">rosbridge</span>
</div>
</header>
<!-- 主内容区 -->
<div class="main-content">
<!-- 地图区域 -->
<div id="map" class="map-container"></div>
<!-- 右侧控制面板 -->
<aside class="control-panel">
<!-- 航点列表 -->
<div class="panel-section">
<div class="panel-header">
<span>航点列表</span>
<span id="wp-count">0 个航点</span>
</div>
<div id="waypoint-list" class="waypoint-list">
<div class="empty-hint">在地图上点击以添加航点</div>
</div>
<div class="wp-params">
<label>默认高度: <input type="number" id="default-alt" value="15" min="1" max="100" /></label>
<label>默认悬停: <input type="number" id="default-hold" value="0" min="0" max="60" /></label>
</div>
</div>
<!-- 任务操作 -->
<div class="panel-section">
<div class="panel-header">任务操作</div>
<div class="btn-group">
<button id="btn-upload" class="btn btn-primary wide" disabled>上传任务</button>
</div>
<div class="btn-group">
<button id="btn-start" class="btn btn-success wide" disabled>开始任务</button>
</div>
<div class="btn-group">
<button id="btn-pause" class="btn btn-warning" disabled>暂停</button>
<button id="btn-resume" class="btn btn-success" disabled>继续</button>
</div>
<div class="btn-group">
<button id="btn-rth" class="btn btn-danger" disabled>返航</button>
<button id="btn-land" class="btn btn-danger" disabled>降落</button>
</div>
<div class="btn-group">
<button id="btn-clear" class="btn btn-secondary wide">清除所有航点</button>
</div>
</div>
<!-- 实时数据 -->
<div class="panel-section">
<div class="panel-header">实时数据</div>
<div class="data-grid">
<div class="data-item">
<span class="data-label">纬度</span>
<span class="data-value" id="data-lat">--</span>
</div>
<div class="data-item">
<span class="data-label">经度</span>
<span class="data-value" id="data-lng">--</span>
</div>
<div class="data-item">
<span class="data-label">航向</span>
<span class="data-value" id="data-heading">--</span>
</div>
<div class="data-item">
<span class="data-label">当前航点</span>
<span class="data-value" id="data-wp">--</span>
</div>
</div>
</div>
<!-- 光斑检测 -->
<div class="panel-section">
<div class="panel-header">
<span>光斑检测</span>
<span id="flash-status" class="tag tag-secondary">未启用</span>
</div>
<div class="btn-group">
<button id="btn-flash-enable" class="btn btn-secondary wide" disabled>启用光斑检测</button>
</div>
<div class="data-grid">
<div class="data-item">
<span class="data-label">光斑位置</span>
<span class="data-value" id="flash-position">--</span>
</div>
<div class="data-item">
<span class="data-label">检测面积</span>
<span class="data-value" id="flash-area">--</span>
</div>
</div>
<div class="btn-group">
<button id="btn-avoidance-enable" class="btn btn-warning wide" disabled>启用避光斑</button>
<button id="btn-avoidance-disable" class="btn btn-secondary" disabled>禁用避光斑</button>
</div>
</div>
</aside>
</div>
<!-- 底部日志栏 -->
<footer class="log-bar">
<div class="log-header">
<span>操作日志</span>
<button id="btn-clear-log" class="btn-link">清空</button>
</div>
<div id="log-content" class="log-content"></div>
</footer>
<!-- JS 依赖 -->
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="/js/roslib.min.js"></script>
<script src="/js/map.js"></script>
<script src="/js/websocket.js"></script>
<script src="/js/flash_detector.js"></script>
<script src="/js/flash_avoidance.js"></script>
<script src="/js/ui.js"></script>
</body>
</html>

@ -1,202 +0,0 @@
/**
* 地图模块 - 基于 Leaflet.js
* 负责: 地图初始化航点管理航线绘制无人机位置显示
*/
const MapModule = (() => {
let map = null;
let waypoints = []; // 航点数据数组
let markers = []; // 航点 Leaflet Marker 对象
let polyline = null; // 航线折线
let droneMarker = null; // 无人机位置标记
let trailLine = null; // 飞行轨迹
let trailCoords = []; // 轨迹坐标历史
const DEFAULT_LAT = 30.0;
const DEFAULT_LNG = 120.0;
const DEFAULT_ZOOM = 16;
function init() {
map = L.map('map', {
center: [DEFAULT_LAT, DEFAULT_LNG],
zoom: DEFAULT_ZOOM,
zoomControl: true
});
// OpenStreetMap 底图(免费,无需 Key
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '&copy; OpenStreetMap',
maxZoom: 19
}).addTo(map);
// 点击地图添加航点
map.on('click', onMapClick);
// 初始化航线(空折线)
polyline = L.polyline([], {
color: '#007aff',
weight: 2,
opacity: 0.7,
dashArray: '8, 6'
}).addTo(map);
// 初始化飞行轨迹
trailLine = L.polyline([], {
color: '#ff4d4f',
weight: 2,
opacity: 0.6
}).addTo(map);
// 创建无人机图标
const droneIcon = L.divIcon({
className: 'drone-icon',
html: '<div class="drone-icon-inner" id="drone-arrow"></div>',
iconSize: [24, 24],
iconAnchor: [12, 12]
});
droneMarker = L.marker([DEFAULT_LAT, DEFAULT_LNG], {
icon: droneIcon,
visible: false
}).addTo(map);
}
function onMapClick(e) {
addWaypoint(e.latlng.lat, e.latlng.lng);
}
function addWaypoint(lat, lng) {
const defaultAlt = parseInt(document.getElementById('default-alt').value) || 15;
const defaultHold = parseInt(document.getElementById('default-hold').value) || 0;
const index = waypoints.length + 1;
const wp = {
id: Date.now(),
lat: parseFloat(lat.toFixed(6)),
lng: parseFloat(lng.toFixed(6)),
alt: defaultAlt,
hold_time: defaultHold
};
waypoints.push(wp);
// 添加地图标记
const marker = L.marker([wp.lat, wp.lng], {
draggable: true
}).addTo(map);
marker.bindPopup(`<b>航点 ${index}</b><br>高度: ${wp.alt}m<br>悬停: ${wp.hold_time}s`);
// 拖拽更新航点坐标
marker.on('dragend', function () {
const pos = marker.getLatLng();
const wpIdx = markers.indexOf(marker);
if (wpIdx >= 0) {
waypoints[wpIdx].lat = parseFloat(pos.lat.toFixed(6));
waypoints[wpIdx].lng = parseFloat(pos.lng.toFixed(6));
marker.setPopupContent(`<b>航点 ${wpIdx + 1}</b><br>高度: ${waypoints[wpIdx].alt}m`);
updatePolyline();
UIModule.updateWaypointList();
}
});
markers.push(marker);
updatePolyline();
UIModule.updateWaypointList();
UIModule.updateButtons();
}
function removeWaypoint(index) {
if (index < 0 || index >= waypoints.length) return;
waypoints.splice(index, 1);
const marker = markers.splice(index, 1)[0];
map.removeLayer(marker);
// 重新编号弹窗
markers.forEach((m, i) => {
m.setPopupContent(`<b>航点 ${i + 1}</b><br>高度: ${waypoints[i].alt}m`);
});
updatePolyline();
UIModule.updateWaypointList();
UIModule.updateButtons();
}
function clearWaypoints() {
markers.forEach(m => map.removeLayer(m));
waypoints = [];
markers = [];
updatePolyline();
UIModule.updateWaypointList();
UIModule.updateButtons();
}
function updatePolyline() {
const coords = waypoints.map(wp => [wp.lat, wp.lng]);
polyline.setLatLngs(coords);
}
function updateDronePosition(lat, lng, heading) {
if (!droneMarker) return;
droneMarker.setLatLng([lat, lng]);
if (!droneMarker.visible) {
droneMarker.visible = true;
}
// 旋转无人机图标(航向)
const arrow = document.getElementById('drone-arrow');
if (arrow) {
arrow.style.transform = `rotate(${heading}deg)`;
}
// 记录轨迹
trailCoords.push([lat, lng]);
if (trailCoords.length > 500) trailCoords.shift();
trailLine.setLatLngs(trailCoords);
}
function centerOnDrone(lat, lng) {
map.setView([lat, lng], map.getZoom());
}
function panTo(lat, lng) {
map.panTo([lat, lng]);
}
function getWaypoints() {
return waypoints.map(wp => ({
lat: wp.lat,
lng: wp.lng,
alt: wp.alt,
hold_time: wp.hold_time
}));
}
function getWaypointCount() {
return waypoints.length;
}
function updateWaypointAlt(index, alt) {
if (index >= 0 && index < waypoints.length) {
waypoints[index].alt = alt;
markers[index].setPopupContent(
`<b>航点 ${index + 1}</b><br>高度: ${alt}m<br>悬停: ${waypoints[index].hold_time}s`
);
}
}
return {
init,
addWaypoint,
removeWaypoint,
clearWaypoints,
updateDronePosition,
centerOnDrone,
panTo,
getWaypoints,
getWaypointCount,
updateWaypointAlt,
DEFAULT_LAT,
DEFAULT_LNG
};
})();

File diff suppressed because one or more lines are too long

@ -1,466 +0,0 @@
/**
* UI 交互模块
* 负责: 按钮事件绑定状态管理航点列表渲染日志输出光斑检测与避光斑集成
*/
const UIModule = (() => {
// 应用状态
let droneConnected = false;
let missionUploaded = false;
let missionRunning = false;
let missionPaused = false;
let flashDetectionEnabled = false;
let flashAvoidanceEnabled = false;
let connectionMode = 'sim'; // 'sim' 仿真 | 'real' 实机
// 连接预设 (rosbridge WebSocket 地址)
const PRESETS = {
sim: { url: 'ws://localhost:9090', label: '仿真 rosbridge', desc: 'Prometheus SITL 仿真 (本地 rosbridge 端口 9090)' },
real: { url: 'ws://192.168.1.31:9090', label: '实机 rosbridge', desc: 'P600 实机 WiFi 数传 (rosbridge 192.168.1.31:9090)' }
};
function init() {
// 初始化地图
MapModule.init();
// 初始化 WebSocket
WsModule.init();
// 绑定按钮事件
document.getElementById('btn-connect').addEventListener('click', onConnect);
document.getElementById('btn-upload').addEventListener('click', onUpload);
document.getElementById('btn-start').addEventListener('click', onStart);
document.getElementById('btn-pause').addEventListener('click', onPause);
document.getElementById('btn-resume').addEventListener('click', onResume);
document.getElementById('btn-rth').addEventListener('click', onReturnHome);
document.getElementById('btn-land').addEventListener('click', onLand);
document.getElementById('btn-clear').addEventListener('click', onClear);
document.getElementById('btn-clear-log').addEventListener('click', onClearLog);
// 绑定光斑检测按钮
document.getElementById('btn-flash-enable').addEventListener('click', onEnableFlashDetection);
document.getElementById('btn-avoidance-enable').addEventListener('click', onEnableFlashAvoidance);
document.getElementById('btn-avoidance-disable').addEventListener('click', onDisableFlashAvoidance);
// 绑定连接模式切换
document.getElementById('btn-mode-sim').addEventListener('click', () => switchMode('sim'));
document.getElementById('btn-mode-real').addEventListener('click', () => switchMode('real'));
// 连接地址输入框变化时更新标签
document.getElementById('drone-url').addEventListener('input', onUrlInput);
updateButtons();
addLog('info', '系统就绪,当前模式: 仿真 (rosbridge)');
addLog('info', '提示: 浏览器通过 roslibjs 直接连接 rosbridge_server无需 MAVSDK 后端');
}
// ---------- 连接模式切换 ----------
function switchMode(mode) {
if (droneConnected) {
addLog('warning', '请先断开当前连接再切换模式');
return;
}
connectionMode = mode;
const preset = PRESETS[mode];
// 更新按钮状态
document.getElementById('btn-mode-sim').classList.toggle('active', mode === 'sim');
document.getElementById('btn-mode-real').classList.toggle('active', mode === 'real');
// 自动填入预设地址
document.getElementById('drone-url').value = preset.url;
document.getElementById('conn-mode-tag').textContent = preset.label;
addLog('info', `已切换到${preset.label}模式: ${preset.desc}`);
if (mode === 'sim') {
addLog('info', '仿真模式说明: 先启动 Prometheus SITL (roslaunch prometheus_gazebo sitl.launch),再启动 rosbridge (roslaunch rosbridge_server rosbridge_websocket.launch)');
} else {
addLog('info', '实机模式说明: 请确保电脑已连接 P600 的 WiFi 数传rosbridge 需在机载电脑上运行');
}
}
function onUrlInput() {
const url = document.getElementById('drone-url').value.trim();
const tag = document.getElementById('conn-mode-tag');
if (url.startsWith('ws://')) {
tag.textContent = 'rosbridge';
} else if (url.startsWith('wss://')) {
tag.textContent = 'rosbridge (SSL)';
} else {
tag.textContent = '未知';
}
}
// ---------- 按钮事件处理 ----------
function onConnect() {
const url = document.getElementById('drone-url').value.trim();
if (!url) {
addLog('error', '请输入 rosbridge 连接地址');
return;
}
if (!url.startsWith('ws://') && !url.startsWith('wss://')) {
addLog('error', '地址格式错误,应以 ws:// 开头 (例如 ws://localhost:9090)');
return;
}
WsModule.connectDrone(url);
}
function onUpload() {
const waypoints = MapModule.getWaypoints();
if (waypoints.length === 0) {
addLog('error', '请先在地图上添加航点');
return;
}
WsModule.uploadMission(waypoints);
}
function onStart() {
WsModule.startMission();
}
function onPause() {
WsModule.pauseMission();
}
function onResume() {
WsModule.resumeMission();
}
function onReturnHome() {
WsModule.returnHome();
}
function onLand() {
WsModule.land();
}
function onClear() {
MapModule.clearWaypoints();
missionUploaded = false;
updateButtons();
addLog('info', '已清除所有航点');
}
function onClearLog() {
document.getElementById('log-content').innerHTML = '';
}
// ---------- 光斑检测事件 ----------
function onEnableFlashDetection() {
if (!droneConnected) {
addLog('warning', '请先连接无人机');
return;
}
// 初始化光斑检测模块
if (typeof FlashDetectorModule !== 'undefined') {
FlashDetectorModule.init(WsModule.getRos(), {
onFlashDetected: (detected) => {
const statusEl = document.getElementById('flash-status');
if (detected) {
statusEl.className = 'tag tag-danger';
statusEl.textContent = '检测到光斑';
}
},
onDetectionData: (data) => {
// 更新光斑位置显示
document.getElementById('flash-position').textContent = `(${data.cx.toFixed(0)}, ${data.cy.toFixed(0)})`;
document.getElementById('flash-area').textContent = data.area.toFixed(0);
// 如果启用了避光斑,处理检测数据
if (flashAvoidanceEnabled && typeof FlashAvoidanceModule !== 'undefined') {
const avoidanceCmd = FlashAvoidanceModule.processDetection(data);
if (avoidanceCmd) {
// 计算目标位置并执行避光斑
executeFlashAvoidance(avoidanceCmd);
}
}
}
});
flashDetectionEnabled = true;
document.getElementById('btn-flash-enable').classList.add('hidden');
document.getElementById('flash-status').className = 'tag tag-success';
document.getElementById('flash-status').textContent = '已启用';
document.getElementById('btn-avoidance-enable').disabled = false;
addLog('success', '光斑检测已启用');
} else {
addLog('error', '光斑检测模块未加载');
}
}
function onEnableFlashAvoidance() {
if (!flashDetectionEnabled) {
addLog('warning', '请先启用光斑检测');
return;
}
if (typeof FlashAvoidanceModule !== 'undefined') {
FlashAvoidanceModule.init({
wsModule: WsModule,
onStatusUpdate: (data) => addLog(data.type, data.message)
});
FlashAvoidanceModule.setStatusCallback((data) => addLog(data.type, data.message));
FlashAvoidanceModule.setEnabled(true);
flashAvoidanceEnabled = true;
document.getElementById('btn-avoidance-enable').classList.add('hidden');
document.getElementById('btn-avoidance-disable').disabled = false;
addLog('success', '避光斑已启用');
}
}
function onDisableFlashAvoidance() {
if (typeof FlashAvoidanceModule !== 'undefined') {
FlashAvoidanceModule.setEnabled(false);
flashAvoidanceEnabled = false;
document.getElementById('btn-avoidance-enable').classList.remove('hidden');
document.getElementById('btn-avoidance-disable').disabled = true;
addLog('info', '避光斑已禁用');
}
}
function executeFlashAvoidance(avoidanceCmd) {
// 获取当前无人机位置
const currentPos = WsModule.getLocalPosition ? WsModule.getLocalPosition() : { x: 0, y: 0, z: 0 };
// 计算避光斑目标位置
const targetPos = {
x: currentPos.x + avoidanceCmd.avoidX,
y: currentPos.y + avoidanceCmd.avoidY,
z: currentPos.z + avoidanceCmd.avoidZ
};
// 发布新的位置设定值
WsModule.publishSetpoint(targetPos.x, targetPos.y, targetPos.z);
addLog('warning', `执行避光斑: 移动到 (${targetPos.x.toFixed(1)}, ${targetPos.y.toFixed(1)}, ${targetPos.z.toFixed(1)})`);
// 2秒后返回原位置或继续任务
setTimeout(() => {
FlashAvoidanceModule.endAvoidance();
addLog('info', '避光斑完成,返回正常控制');
}, 2000);
}
// ---------- 状态回调(由 WsModule 触发) ----------
function onTelemetry(data) {
if (data.type === 'telemetry') {
// 更新顶栏数据
document.getElementById('battery').textContent = data.battery.toFixed(0) + '%';
document.getElementById('speed').textContent = data.speed.toFixed(1) + ' m/s';
document.getElementById('altitude').textContent = data.alt.toFixed(1) + ' m';
document.getElementById('gps-status').textContent = data.gps_status;
document.getElementById('flight-mode').textContent = data.flight_mode;
// 更新右侧数据面板
document.getElementById('data-lat').textContent = data.lat.toFixed(6);
document.getElementById('data-lng').textContent = data.lng.toFixed(6);
document.getElementById('data-heading').textContent = data.heading.toFixed(0) + '°';
document.getElementById('data-wp').textContent = data.current_wp;
// 更新无人机位置 — 只要坐标有效就更新
if (droneConnected && (data.lat !== 0 || data.alt > 0.1)) {
MapModule.updateDronePosition(data.lat, data.lng, data.heading);
}
}
if (data.type === 'mission_progress') {
document.getElementById('data-wp').textContent =
data.current + ' / ' + data.total;
}
}
function onStatus(data) {
addLog(data.type, data.message);
// 根据状态消息更新应用状态
const msg = data.message;
if (msg.includes('连接成功') || msg.includes('已连接')) {
droneConnected = true;
document.getElementById('conn-status').className = 'tag tag-success';
document.getElementById('conn-status').textContent = '已连接';
document.getElementById('btn-connect').textContent = '已连接';
document.getElementById('btn-connect').disabled = true;
document.getElementById('btn-flash-enable').disabled = false;
updateButtons();
}
if (msg.includes('上传成功')) {
missionUploaded = true;
updateButtons();
}
if (msg.includes('任务已开始')) {
missionRunning = true;
missionPaused = false;
updateButtons();
}
if (msg.includes('已暂停')) {
missionRunning = false;
missionPaused = true;
updateButtons();
}
if (msg.includes('已继续')) {
missionRunning = true;
missionPaused = false;
updateButtons();
}
if (msg.includes('返航') || msg.includes('降落') || msg.includes('失败')) {
if (msg.includes('返航') || msg.includes('降落')) {
missionRunning = false;
missionPaused = false;
updateButtons();
}
}
if (msg.includes('任务完成')) {
missionRunning = false;
missionPaused = false;
missionUploaded = false;
updateButtons();
}
}
function onDroneDisconnected() {
droneConnected = false;
missionUploaded = false;
missionRunning = false;
missionPaused = false;
flashDetectionEnabled = false;
flashAvoidanceEnabled = false;
document.getElementById('conn-status').className = 'tag tag-danger';
document.getElementById('conn-status').textContent = '未连接';
document.getElementById('btn-connect').textContent = '连接无人机';
document.getElementById('btn-connect').disabled = false;
document.getElementById('btn-flash-enable').disabled = true;
document.getElementById('btn-flash-enable').classList.remove('hidden');
document.getElementById('btn-avoidance-enable').disabled = true;
document.getElementById('btn-avoidance-enable').classList.remove('hidden');
document.getElementById('btn-avoidance-disable').disabled = true;
document.getElementById('flash-status').className = 'tag tag-secondary';
document.getElementById('flash-status').textContent = '未启用';
document.getElementById('flash-position').textContent = '--';
document.getElementById('flash-area').textContent = '--';
// 关闭光斑检测模块
if (typeof FlashDetectorModule !== 'undefined') {
FlashDetectorModule.shutdown();
}
if (typeof FlashAvoidanceModule !== 'undefined') {
FlashAvoidanceModule.reset();
}
updateButtons();
addLog('error', '无人机连接断开');
}
// ---------- 按钮状态管理 ----------
function updateButtons() {
const wpCount = MapModule.getWaypointCount();
setBtn('btn-upload', droneConnected && wpCount > 0 && !missionRunning && !missionPaused);
setBtn('btn-start', droneConnected && missionUploaded && !missionRunning && !missionPaused);
setBtn('btn-pause', droneConnected && missionRunning);
setBtn('btn-resume', droneConnected && missionPaused);
setBtn('btn-rth', droneConnected);
setBtn('btn-land', droneConnected);
}
function setBtn(id, enabled) {
document.getElementById(id).disabled = !enabled;
}
// ---------- 航点列表渲染 ----------
function updateWaypointList() {
const container = document.getElementById('waypoint-list');
const waypoints = MapModule.getWaypoints();
document.getElementById('wp-count').textContent = waypoints.length + ' 个航点';
if (waypoints.length === 0) {
container.innerHTML = '<div class="empty-hint">在地图上点击以添加航点</div>';
return;
}
container.innerHTML = waypoints.map((wp, i) => `
<div class="wp-item" data-index="${i}">
<span class="wp-index">${i + 1}</span>
<div class="wp-info">
<div class="wp-coord">${wp.lat}, ${wp.lng}</div>
<div class="wp-alt">${wp.alt}m | 悬停 ${wp.hold_time}s</div>
</div>
<button class="wp-delete" data-index="${i}" title="删除">&times;</button>
</div>
`).join('');
// 绑定点击定位事件
container.querySelectorAll('.wp-item').forEach(item => {
item.addEventListener('click', (e) => {
if (e.target.classList.contains('wp-delete')) return;
const idx = parseInt(item.dataset.index);
const wps = MapModule.getWaypoints();
if (wps[idx]) {
MapModule.panTo(wps[idx].lat, wps[idx].lng);
}
});
});
// 绑定删除事件
container.querySelectorAll('.wp-delete').forEach(btn => {
btn.addEventListener('click', () => {
MapModule.removeWaypoint(parseInt(btn.dataset.index));
});
});
}
// ---------- 日志输出 ----------
function addLog(type, message) {
const container = document.getElementById('log-content');
const now = new Date();
const time = now.toTimeString().split(' ')[0];
const entry = document.createElement('div');
entry.className = 'log-entry ' + type;
entry.innerHTML = `<span class="time">[${time}]</span>${message}`;
container.appendChild(entry);
// 自动滚动到底部
container.scrollTop = container.scrollHeight;
// 限制日志条数
while (container.children.length > 200) {
container.removeChild(container.firstChild);
}
}
return {
init,
onTelemetry,
onStatus,
onDroneDisconnected,
updateWaypointList,
updateButtons
};
})();
// 页面加载完成后初始化
document.addEventListener('DOMContentLoaded', () => {
UIModule.init();
});

@ -1,696 +0,0 @@
/**
* MAVROS 通信模块 - 基于 roslibjs
* 直接通过 MAVROS 话题和服务控制无人机
*
* 架构: 浏览器 roslibjs rosbridge_server ROS话题 MAVROS MAVLink PX4
*
* 使用的话题:
* 订阅: /uav1/mavros/state (mavros_msgs/State)
* 订阅: /uav1/mavros/local_position/pose (geometry_msgs/PoseStamped)
* 订阅: /uav1/mavros/global_position/raw/fix (sensor_msgs/NavSatFix)
* 订阅: /uav1/mavros/battery (sensor_msgs/BatteryState)
* 发布: /uav1/mavros/setpoint_position/local (geometry_msgs/PoseStamped)
* 服务: /uav1/mavros/cmd/arming (mavros_msgs/CommandBool)
* 服务: /uav1/mavros/set_mode (mavros_msgs/SetMode)
*/
const WsModule = (() => {
let ros = null;
let rosConnected = false;
let droneConnected = false;
let fcuReady = false; // true when MAVROS reports valid mode (FCU connection established)
// ========== 配置: UAV 命名空间 ==========
// 仿真环境默认: '/uav1' 实机可能: '' 或 '/uav1'
// 如果话题不对,改这里
let uavNS = '/uav1';
function topicName(name) { return uavNS + name; }
function serviceName(name) { return uavNS + name; }
// ROS handles
let stateSub = null;
let localPosSub = null;
let gpsSub = null;
let batterySub = null;
let setpointPub = null;
// Telemetry state
let telemetry = {
lat: 0, lng: 0, alt: 0,
speed: 0, battery: 100, heading: 0,
flightMode: 'UNKNOWN', gpsStatus: 'No Fix',
armed: false,
localPos: { x: 0, y: 0, z: 0 } // ENU: x=East, y=North, z=Up
};
// Origin for lat/lng <-> ENU conversion
let origin = { lat: null, lng: null };
let originSet = false;
let originFromGps = false; // true if origin was set from real GPS
// Navigation state
let rawWaypoints = []; // Original lat/lng waypoints
let navWaypoints = []; // Converted ENU waypoints
let currentWPIndex = 0;
let navActive = false;
let navPaused = false;
let publishTimer = null;
let wpCheckTimer = null;
let telemetryTimer = null; // Throttled UI update timer
const WP_REACH_DIST = 2.0; // meters
const PUBLISH_INTERVAL = 100; // ms (10 Hz, OFFBOARD needs >= 2Hz)
// ---- Coordinate conversion ----
function latLngToENU(lat, lng, alt) {
if (!originSet) return { x: 0, y: 0, z: alt };
const latRad = origin.lat * Math.PI / 180;
const x = (lng - origin.lng) * Math.cos(latRad) * 111319.488; // East
const y = (lat - origin.lat) * 111319.488; // North
return { x, y, z: alt }; // Up
}
function enuToLatLng(x, y) {
if (!originSet) return { lat: 0, lng: 0 };
const latRad = origin.lat * Math.PI / 180;
const lat = origin.lat + y / 111319.488;
const lng = origin.lng + x / (111319.488 * Math.cos(latRad));
return { lat, lng };
}
// Quaternion to yaw (degrees, ENU: 0=East, CCW+)
function quatToYawDeg(qx, qy, qz, qw) {
const siny = 2 * (qw * qz + qx * qy);
const cosy = 1 - 2 * (qy * qy + qz * qz);
let yaw = Math.atan2(siny, cosy) * 180 / Math.PI;
// Convert to compass heading: 0=North, CW+
return (90 - yaw + 360) % 360;
}
// ---- Init & Connection ----
function init() {}
function isConnected() { return rosConnected; }
function connectDrone(url) {
try {
if (typeof ROSLIB === 'undefined') {
UIModule.onStatus({ type: 'error', message: 'roslibjs 库未加载' });
return;
}
if (ros) {
try { ros.close(); } catch (e) { /* ignore */ }
}
UIModule.onStatus({ type: 'info', message: `正在连接 rosbridge: ${url} ...` });
ros = new ROSLIB.Ros({ url: url });
ros.on('connection', () => {
rosConnected = true;
UIModule.onStatus({ type: 'info', message: 'rosbridge 已连接,正在检测 MAVROS 话题...' });
setupSubscriptions();
});
ros.on('error', (error) => {
UIModule.onStatus({ type: 'error', message: `rosbridge 连接错误: ${error || '未知'}` });
});
ros.on('close', () => {
const wasConnected = rosConnected;
rosConnected = false;
droneConnected = false;
stopAll();
if (wasConnected) {
UIModule.onDroneDisconnected();
}
});
} catch (e) {
UIModule.onStatus({ type: 'error', message: `连接失败: ${e.message || e}` });
}
}
// ---- Topic subscriptions ----
function setupSubscriptions() {
// Try to detect which namespace has MAVROS
trySubscribesWithFallback();
}
// Set a default origin for coordinate conversion (no GPS needed)
function setDefaultOrigin() {
if (originSet) return;
// Use map default center as origin - simulation doesn't need real GPS
origin.lat = MapModule.DEFAULT_LAT || 30.0;
origin.lng = MapModule.DEFAULT_LNG || 120.0;
originSet = true;
originFromGps = false;
UIModule.onStatus({ type: 'info', message: `仿真模式: 使用默认坐标原点 (${origin.lat}, ${origin.lng})无需GPS` });
}
function trySubscribesWithFallback() {
let gotState = false;
const tryNS = uavNS;
// Subscribe to MAVROS state
stateSub = new ROSLIB.Topic({
ros: ros,
name: topicName('/mavros/state'),
messageType: 'mavros_msgs/State'
});
const stateTimeout = setTimeout(() => {
if (!gotState) {
// Try without namespace
if (tryNS !== '') {
uavNS = '';
UIModule.onStatus({ type: 'warning', message: `未收到 ${tryNS}/mavros/state尝试无命名空间...` });
trySubscribesWithFallback();
} else {
UIModule.onStatus({ type: 'error', message: '未检测到 MAVROS 话题,请确认仿真/实机已启动' });
}
}
}, 5000);
stateSub.subscribe((msg) => {
clearTimeout(stateTimeout);
gotState = true;
telemetry.armed = msg.armed || false;
telemetry.flightMode = msg.mode || 'UNKNOWN';
// Check if FCU is truly connected (has valid mode)
const modeValid = msg.connected && msg.mode && msg.mode.length > 0;
if (!droneConnected) {
droneConnected = true;
if (modeValid) {
fcuReady = true;
UIModule.onStatus({ type: 'success', message: `无人机已连接 (模式: ${msg.mode}, ${msg.armed ? '已解锁' : '未解锁'})` });
} else {
UIModule.onStatus({ type: 'warning', message: `MAVROS 已连接,但飞控未就绪 (mode=空)。等待 PX4 初始化...` });
}
setDefaultOrigin();
}
// Detect when FCU becomes ready
if (!fcuReady && modeValid) {
fcuReady = true;
UIModule.onStatus({ type: 'success', message: `飞控已就绪! 当前模式: ${msg.mode}, 状态: ${msg.armed ? '已解锁' : '未解锁'}` });
}
});
// Local position (ENU: x=East, y=North, z=Up)
localPosSub = new ROSLIB.Topic({
ros: ros,
name: topicName('/mavros/local_position/pose'),
messageType: 'geometry_msgs/PoseStamped'
});
localPosSub.subscribe((msg) => {
if (msg.pose && msg.pose.position) {
telemetry.localPos = {
x: msg.pose.position.x, // East
y: msg.pose.position.y, // North
z: msg.pose.position.z // Up
};
}
if (msg.pose && msg.pose.orientation) {
const o = msg.pose.orientation;
telemetry.heading = quatToYawDeg(o.x, o.y, o.z, o.w);
}
});
// GPS (for lat/lng display and origin)
gpsSub = new ROSLIB.Topic({
ros: ros,
name: topicName('/mavros/global_position/raw/fix'),
messageType: 'sensor_msgs/NavSatFix'
});
gpsSub.subscribe((msg) => {
telemetry.lat = msg.latitude || 0;
telemetry.lng = msg.longitude || 0;
if (msg.status) {
telemetry.gpsStatus = msg.status.status >= 0 ? '3D Fix' : 'No Fix';
}
// Update origin from real GPS (overrides default origin)
if (msg.latitude !== 0 && Math.abs(msg.latitude) > 1) {
if (!originFromGps) {
origin.lat = msg.latitude;
origin.lng = msg.longitude;
originSet = true;
originFromGps = true;
UIModule.onStatus({ type: 'info', message: `GPS 坐标已更新: ${origin.lat.toFixed(6)}, ${origin.lng.toFixed(6)}` });
MapModule.centerOnDrone(msg.latitude, msg.longitude);
}
}
});
// Battery
batterySub = new ROSLIB.Topic({
ros: ros,
name: topicName('/mavros/battery'),
messageType: 'sensor_msgs/BatteryState'
});
batterySub.subscribe((msg) => {
telemetry.battery = (msg.percentage != null) ? msg.percentage * 100 : 100;
});
// Setpoint publisher — PoseStamped is the standard MAVROS position control interface
setpointPub = new ROSLIB.Topic({
ros: ros,
name: topicName('/mavros/setpoint_position/local'),
messageType: 'geometry_msgs/PoseStamped'
});
// Start throttled telemetry loop (5Hz, decoupled from subscription rate)
startTelemetryLoop();
}
function pushTelemetry() {
let displayLat = telemetry.lat;
let displayLng = telemetry.lng;
if ((!displayLat || displayLat === 0) && originSet) {
const ll = enuToLatLng(telemetry.localPos.x, telemetry.localPos.y);
displayLat = ll.lat;
displayLng = ll.lng;
}
UIModule.onTelemetry({
type: 'telemetry',
lat: displayLat,
lng: displayLng,
alt: telemetry.localPos.z,
speed: telemetry.speed,
battery: telemetry.battery,
heading: telemetry.heading,
flight_mode: telemetry.flightMode,
gps_status: telemetry.gpsStatus,
current_wp: (currentWPIndex + 1) + '/' + navWaypoints.length
});
}
function startTelemetryLoop() {
if (telemetryTimer) clearInterval(telemetryTimer);
pushTelemetry();
telemetryTimer = setInterval(pushTelemetry, 200); // 5Hz UI update
}
function stopTelemetryLoop() {
if (telemetryTimer) { clearInterval(telemetryTimer); telemetryTimer = null; }
}
// ---- Setpoint publishing ----
let spSeq = 0;
function publishSetpoint(east, north, up) {
if (!setpointPub || !rosConnected) return;
const msg = new ROSLIB.Message({
header: {
seq: spSeq++,
stamp: { secs: Math.floor(Date.now() / 1000), nsecs: 0 },
frame_id: 'map'
},
pose: {
position: { x: east, y: north, z: up },
orientation: { x: 0, y: 0, z: 0, w: 1 }
}
});
setpointPub.publish(msg);
}
function startPublishLoop(east, north, up) {
stopPublishing();
publishSetpoint(east, north, up);
publishTimer = setInterval(() => {
publishSetpoint(east, north, up);
}, PUBLISH_INTERVAL);
}
function stopPublishing() {
if (publishTimer) { clearInterval(publishTimer); publishTimer = null; }
if (wpCheckTimer) { clearInterval(wpCheckTimer); wpCheckTimer = null; }
}
function stopAll() {
stopPublishing();
stopTelemetryLoop();
}
// ---- ROS Service calls ----
// Simple one-shot versions for arm/disarm/land buttons
// ---- Mission operations ----
function uploadMission(waypoints) {
if (waypoints.length === 0) {
UIModule.onStatus({ type: 'error', message: '航点列表为空' });
return;
}
// Store raw waypoints
rawWaypoints = waypoints;
currentWPIndex = 0;
// Convert to ENU (origin should always be set by now)
if (originSet) {
convertWaypoints();
UIModule.onStatus({ type: 'success', message: `任务上传成功,共 ${navWaypoints.length} 个航点` });
} else {
// Fallback (shouldn't happen, but just in case)
UIModule.onStatus({ type: 'success', message: `已暂存 ${waypoints.length} 个航点` });
}
}
function convertWaypoints() {
if (!originSet || !rawWaypoints || rawWaypoints.length === 0) return false;
navWaypoints = rawWaypoints.map(wp => {
const enu = latLngToENU(wp.lat, wp.lng, wp.alt);
return { ...enu, hold_time: wp.hold_time || 0 };
});
return true;
}
function startMission() {
if (!rosConnected || !droneConnected) {
UIModule.onStatus({ type: 'error', message: '未连接无人机' });
return;
}
if (!fcuReady) {
UIModule.onStatus({ type: 'error', message: '飞控未就绪 (MAVROS 模式为空)。请等待 PX4 完全启动后重试。也可尝试在终端执行: rosservice call ' + serviceName('/mavros/set_mode') + ' "{base_mode: 0, custom_mode: \'OFFBOARD\'}" 验证模式切换是否正常' });
return;
}
if (rawWaypoints.length === 0) {
UIModule.onStatus({ type: 'error', message: '请先上传任务' });
return;
}
// Convert waypoints
if (navWaypoints.length === 0 && rawWaypoints.length > 0) {
if (!originSet) setDefaultOrigin();
convertWaypoints();
}
if (navWaypoints.length === 0) {
UIModule.onStatus({ type: 'error', message: '航点转换失败,请重新上传任务' });
return;
}
// Step 1: Start sending takeoff setpoints at target altitude
// PX4 requires setpoints BEFORE switching OFFBOARD, and altitude must be positive
const firstWP = navWaypoints[0];
const startX = telemetry.localPos.x || 0;
const startY = telemetry.localPos.y || 0;
const takeoffAlt = firstWP.z;
startPublishLoop(startX, startY, takeoffAlt);
UIModule.onStatus({ type: 'info', message: '正在发送位置设定值 (10Hz)...' });
// Step 2: Wait for setpoints to flow, then switch OFFBOARD
setTimeout(() => {
callSetModeWithRetry('OFFBOARD', 3, (ok) => {
if (!ok) {
stopPublishing();
UIModule.onStatus({ type: 'error', message: 'OFFBOARD 模式切换失败,任务中止。请在终端验证: rosservice call ' + serviceName('/mavros/set_mode') + ' "{base_mode: 0, custom_mode: \'OFFBOARD\'}"' });
return;
}
// Step 3: Arm
setTimeout(() => {
callArmingWithRetry(true, 3, (ok) => {
if (!ok) {
stopPublishing();
UIModule.onStatus({ type: 'error', message: '电机解锁失败,任务中止。请检查: 1) 传感器是否校准 2) GPS是否定位 3) 安全检查是否通过' });
return;
}
// Step 4: Wait for takeoff, then navigate
setTimeout(() => {
UIModule.onStatus({ type: 'info', message: '正在起飞...' });
// Check if drone reached takeoff altitude
let takeoffDone = false;
const takeoffCheck = setInterval(() => {
const curZ = telemetry.localPos.z || 0;
if (curZ > takeoffAlt - 1.0 && curZ > 0.5) {
clearInterval(takeoffCheck);
takeoffDone = true;
navActive = true;
navPaused = false;
UIModule.onStatus({ type: 'success', message: '起飞完成,开始巡航' });
navigateToWaypoint(0);
}
}, 500);
// Fallback: start navigation after 15s regardless
setTimeout(() => {
clearInterval(takeoffCheck);
if (!takeoffDone) {
navActive = true;
navPaused = false;
UIModule.onStatus({ type: 'info', message: '任务已开始执行' });
navigateToWaypoint(0);
}
}, 15000);
}, 1000);
});
}, 500);
});
}, 3000);
}
// Retry wrappers for service calls
function callSetModeWithRetry(mode, retries, callback) {
UIModule.onStatus({ type: 'info', message: `正在切换 ${mode} 模式...` });
const service = new ROSLIB.Service({
ros: ros,
name: serviceName('/mavros/set_mode'),
serviceType: 'mavros_msgs/SetMode'
});
service.callService(
new ROSLIB.ServiceRequest({ base_mode: 0, custom_mode: mode }),
(result) => {
if (result && result.mode_sent) {
UIModule.onStatus({ type: 'success', message: `模式已切换: ${mode}` });
callback(true);
} else if (retries > 0) {
UIModule.onStatus({ type: 'warning', message: `模式切换未成功,剩余重试 ${retries} 次...` });
setTimeout(() => callSetModeWithRetry(mode, retries - 1, callback), 2000);
} else {
UIModule.onStatus({ type: 'error', message: `模式切换失败: ${JSON.stringify(result)}` });
callback(false);
}
},
(error) => {
if (retries > 0) {
UIModule.onStatus({ type: 'warning', message: `模式切换服务错误,重试中...` });
setTimeout(() => callSetModeWithRetry(mode, retries - 1, callback), 2000);
} else {
UIModule.onStatus({ type: 'error', message: `模式切换服务失败: ${error || '不可用'}` });
callback(false);
}
}
);
}
function callArmingWithRetry(arm, retries, callback) {
UIModule.onStatus({ type: 'info', message: arm ? '正在解锁电机...' : '正在上锁电机...' });
const service = new ROSLIB.Service({
ros: ros,
name: serviceName('/mavros/cmd/arming'),
serviceType: 'mavros_msgs/CommandBool'
});
service.callService(
new ROSLIB.ServiceRequest({ value: arm }),
(result) => {
if (result && result.success) {
UIModule.onStatus({ type: 'success', message: arm ? '电机已解锁' : '电机已上锁' });
callback(true);
} else if (retries > 0) {
UIModule.onStatus({ type: 'warning', message: `${arm ? '解锁' : '上锁'}未成功 (result=${result.result}),剩余重试 ${retries} 次...` });
setTimeout(() => callArmingWithRetry(arm, retries - 1, callback), 2000);
} else {
UIModule.onStatus({ type: 'error', message: `${arm ? '解锁' : '上锁'}失败: result=${result ? result.result : 'N/A'}` });
callback(false);
}
},
(error) => {
if (retries > 0) {
UIModule.onStatus({ type: 'warning', message: `${arm ? '解锁' : '上锁'}服务错误,重试中...` });
setTimeout(() => callArmingWithRetry(arm, retries - 1, callback), 2000);
} else {
UIModule.onStatus({ type: 'error', message: `${arm ? '解锁' : '上锁'}服务失败` });
callback(false);
}
}
);
}
// Simple one-shot mode switch (no retry, used by returnHome/land)
function callSetMode(mode) {
callSetModeWithRetry(mode, 1, () => {});
}
function navigateToWaypoint(index) {
if (!navActive || navPaused) return;
if (index >= navWaypoints.length) {
UIModule.onStatus({ type: 'success', message: '所有航点已到达,任务完成' });
const p = telemetry.localPos;
startPublishLoop(p.x, p.y, p.z);
navActive = false;
return;
}
currentWPIndex = index;
const wp = navWaypoints[index];
UIModule.onStatus({ type: 'info', message: `飞往航点 ${index + 1}/${navWaypoints.length} (${wp.x.toFixed(1)}, ${wp.y.toFixed(1)}, ${wp.z.toFixed(1)}m)` });
startPublishLoop(wp.x, wp.y, wp.z);
checkWaypointReached(index);
}
function checkWaypointReached(index) {
if (wpCheckTimer) clearInterval(wpCheckTimer);
const wpTimeout = setTimeout(() => {
// Fallback: if waypoint not reached in 30s, advance anyway
if (navActive && !navPaused) {
UIModule.onStatus({ type: 'warning', message: `航点 ${index + 1} 到达超时,跳至下一航点` });
navigateToWaypoint(index + 1);
}
}, 30000);
wpCheckTimer = setInterval(() => {
if (!navActive || navPaused) {
clearInterval(wpCheckTimer);
clearTimeout(wpTimeout);
return;
}
const wp = navWaypoints[index];
if (!wp) { clearTimeout(wpTimeout); return; }
const p = telemetry.localPos;
const dx = p.x - wp.x;
const dy = p.y - wp.y;
const dz = p.z - wp.z;
const dist = Math.sqrt(dx * dx + dy * dy + dz * dz);
if (dist < WP_REACH_DIST) {
clearInterval(wpCheckTimer);
clearTimeout(wpTimeout);
wpCheckTimer = null;
UIModule.onTelemetry({
type: 'mission_progress',
current: index + 1,
total: navWaypoints.length
});
const holdTime = wp.hold_time || 0;
if (holdTime > 0) {
UIModule.onStatus({ type: 'info', message: `航点 ${index + 1} 已到达,悬停 ${holdTime}` });
setTimeout(() => {
if (navActive && !navPaused) navigateToWaypoint(index + 1);
}, holdTime * 1000);
} else {
navigateToWaypoint(index + 1);
}
}
}, 500);
}
function pauseMission() {
if (!navActive || navPaused) return;
navPaused = true;
if (wpCheckTimer) { clearInterval(wpCheckTimer); wpCheckTimer = null; }
const p = telemetry.localPos;
startPublishLoop(p.x, p.y, p.z);
UIModule.onStatus({ type: 'info', message: '任务已暂停(悬停中)' });
}
function resumeMission() {
if (!navActive || !navPaused) return;
navPaused = false;
navigateToWaypoint(currentWPIndex);
UIModule.onStatus({ type: 'info', message: '任务已继续' });
}
function returnHome() {
stopPublishing();
navActive = false;
navPaused = false;
UIModule.onStatus({ type: 'warning', message: '正在返航...' });
// Fly to origin at current altitude
startPublishLoop(0, 0, telemetry.localPos.z);
const homeCheck = setInterval(() => {
const p = telemetry.localPos;
const dist = Math.sqrt(p.x * p.x + p.y * p.y);
if (dist < WP_REACH_DIST) {
clearInterval(homeCheck);
// Switch to AUTO.LAND for safe landing
callSetMode('AUTO.LAND');
setTimeout(() => stopPublishing(), 3000);
UIModule.onStatus({ type: 'info', message: '已到达起飞点上方,正在降落...' });
}
}, 500);
}
function land() {
stopPublishing();
navActive = false;
navPaused = false;
// Use PX4 AUTO.LAND mode (safest)
callSetMode('AUTO.LAND');
UIModule.onStatus({ type: 'warning', message: '正在降落 (AUTO.LAND)...' });
}
function arm() {
callArmingWithRetry(true, 2, () => {});
}
function disarm() {
callArmingWithRetry(false, 2, () => {});
}
// ---- Public getters for external modules ----
function getRos() {
return ros;
}
function getLocalPosition() {
return { ...telemetry.localPos };
}
return {
init,
isConnected,
connectDrone,
uploadMission,
startMission,
pauseMission,
resumeMission,
returnHome,
land,
arm,
disarm,
getRos,
getLocalPosition,
publishSetpoint
};
})();

@ -1,39 +0,0 @@
"""
Flask 静态文件服务器 - 托管前端页面
浏览器通过 roslibjs 直接连接 rosbridge_server无需 Python 后端处理无人机逻辑
"""
import os
from flask import Flask, send_from_directory
# 项目根目录server 的上级目录)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
app = Flask(__name__, static_folder=BASE_DIR)
@app.route("/")
def index():
return send_from_directory(BASE_DIR, "index.html")
@app.route("/css/<path:filename>")
def css_files(filename):
return send_from_directory(os.path.join(BASE_DIR, "css"), filename)
@app.route("/js/<path:filename>")
def js_files(filename):
return send_from_directory(os.path.join(BASE_DIR, "js"), filename)
if __name__ == "__main__":
print("=" * 50)
print(" P600 无人机定点巡航控制系统")
print(" 打开浏览器访问: http://localhost:5000")
print()
print(" 架构: 浏览器 ──roslibjs──► rosbridge_server ──ROS──► PX4")
print(" rosbridge 地址默认: ws://localhost:9090 (仿真)")
print(" ws://192.168.1.31:9090 (实机)")
print("=" * 50)
app.run(host="0.0.0.0", port=5000, debug=False)

@ -1,7 +0,0 @@
# 此文件已弃用 - 新架构通过 roslibjs + rosbridge_server 直接在浏览器端控制无人机
# 无需 Python 后端处理无人机逻辑
#
# 新架构:
# 浏览器 (roslibjs) ──WebSocket──► rosbridge_server ──ROS话题──► Prometheus/MAVROS ──► PX4
#
# 如需参考旧版 MAVSDK 实现,请查看 git 历史

@ -1,253 +0,0 @@
# P600 无人机定点巡航控制系统 - 使用说明
## 目录
1. [系统架构](#系统架构)
2. [功能模块](#功能模块)
3. [快速开始](#快速开始)
4. [光斑检测与避光斑](#光斑检测与避光斑)
5. [启动命令](#启动命令)
6. [配置参数](#配置参数)
7. [常见问题](#常见问题)
---
## 系统架构
```
┌─────────────────────────────────────────────────────────────────────┐
│ 前端浏览器 │
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ ┌────────────┐ ┌───────┐ │
│ │ Leaflet │ │ roslib │ │ MapModule│ │WsModule │ │UI模块 │ │
│ │ 地图 │ │ JS │ │ 航点管理 │ │ MAVROS通信│ │ │ │
│ └─────────┘ └─────────┘ └──────────┘ └────────────┘ └───────┘ │
│ │ │ │ │ │
│ └────────────┴────────────┴──────────────┘ │
│ │ WebSocket │
└──────────────────────────┼──────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ rosbridge_server │
│ (ROS-WebSocket 网桥) │
└──────────────────────────┼──────────────────────────────────────────┘
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────┐ ┌─────────────┐
│ MAVROS │ │flash_detector│ │ │
│ (PX4通信) │ │ (光斑检测) │ │ 其他节点 │
└─────────────────┘ └─────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────┐
│ PX4 │ │ 相机 │
│ 飞控 │ │ (D435i) │
└─────────────────┘ └─────────────┘
```
---
## 功能模块
### 1. 航点巡航模块
- 在地图上点击添加航点
- 上传任务到无人机
- 开始/暂停/继续任务执行
- 返航/降落控制
### 2. 光斑检测模块
- 通过相机图像检测高亮光斑
- 使用 HSV 颜色空间阈值分割算法
- 支持动态调参 (rqt_reconfigure)
- 发布检测结果到前端
### 3. 避光斑模块
- 基于光斑位置计算躲避方向
- 水平+垂直结合避让
- 防抖机制防止误触发
- 自动发布躲避位置指令
---
## 快速开始
### 1. 编译 ROS 包
```bash
cd /home/mc/ZhiTu/flash_detector_ws
source /opt/ros/noetic/setup.bash
source devel/setup.bash
```
### 2. 启动 rosbridge_server
```bash
roslaunch rosbridge_server rosbridge_websocket.launch
```
### 3. 启动光斑检测节点
```bash
# 使用默认相机话题
roslaunch flash_detector flash_detector.launch
# 指定相机话题 (适配不同无人机)
roslaunch flash_detector flash_detector.launch camera_topic:=/uav1/camera/color/image_raw
```
### 4. 启动前端
```bash
cd /home/mc/ZhiTu/FrontEnd
python3 server/app.py
# 打开浏览器访问 http://localhost:5000
```
---
## 光斑检测与避光斑
### 工作流程
```
相机图像 → flash_detector_node.py → 检测结果
前端浏览器 ← /flash_detector/detection ←─┘
FlashDetectorModule → FlashAvoidanceModule → 避光斑指令
无人机执行躲避
```
### 检测话题
| 话题名 | 类型 | 说明 |
|--------|------|------|
| `/flash_detector/flash_detected` | std_msgs/Bool | 是否检测到光斑 |
| `/flash_detector/detection` | std_msgs/Float32MultiArray | [cx, cy, area, sight_x, sight_y] |
### 避光斑策略
- **水平躲避**: 光斑在右侧 → 无人机向左移动
- **垂直躲避**: 光斑在下方 → 无人机向上移动
- **触发条件**: 连续 3 帧检测到光斑且面积 > 100
- **冷却时间**: 5 秒内不重复触发
---
## 启动命令
### 完整启动顺序 (推荐)
```bash
# 终端1: 启动 ROS Master
roscore
# 终端2: 启动 rosbridge_server
roslaunch rosbridge_server rosbridge_websocket.launch
# 终端3: 编译并启动光斑检测节点
cd /home/mc/ZhiTu/flash_detector_ws
source /opt/ros/noetic/setup.bash
source devel/setup.bash
roslaunch flash_detector flash_detector.launch camera_topic:=/uav1/camera/color/image_raw
# 终端4: 启动前端
cd /home/mc/ZhiTu/FrontEnd
python3 server/app.py
```
### 参数说明
| 参数 | 默认值 | 说明 |
|------|--------|------|
| `camera_topic` | `/camera/color/image_raw` | 相机图像话题 |
| `camera_info_topic` | `/camera/color/camera_info` | 相机内参话题 |
| `debug_mode` | `false` | 是否显示调试窗口 |
| `hsv_v_min` | `200` | HSV 亮度最小值 |
---
## 配置参数
### HSV 阈值参数
```yaml
# 适合检测明亮的枪口闪光
hsv_h_min: 0
hsv_h_max: 30
hsv_s_min: 100
hsv_s_max: 255
hsv_v_min: 200 # 高亮度阈值
hsv_v_max: 255
```
### 避光斑参数 (flash_avoidance.js)
```javascript
const config = {
avoidanceDistance: 3.0, // 躲避移动距离 (米)
minDetectionArea: 100, // 最小检测面积
horizontalThreshold: 0.2, // 水平方向阈值
verticalThreshold: 0.2, // 垂直方向阈值
debounceCount: 3, // 防抖帧数
debounceCooldown: 5000 // 冷却时间 (毫秒)
};
```
---
## 常见问题
### Q: 连接失败怎么办?
1. 检查 rosbridge_server 是否启动
2. 检查 WebSocket 地址是否正确
3. 确认防火墙未阻止 9090 端口
### Q: 光斑检测不准确?
1. 使用 `rqt_reconfigure` 调整 HSV 参数
2. 增加 `min_area` 过滤噪点
3. 调整 `kernel_size` 改善形态学效果
### Q: 避光斑不生效?
1. 确认已启用避光斑模块
2. 检查检测面积是否超过阈值
3. 确认无人机处于 OFFBOARD 模式
### Q: 如何调整避光斑灵敏度?
修改 `flash_avoidance.js` 中的参数:
- 降低 `minDetectionArea` 增加灵敏度
- 降低 `horizontalThreshold` / `verticalThreshold` 增加灵敏度
- 减少 `debounceCount` 减少防抖延迟
---
## 文件结构
```
/home/mc/ZhiTu/ # 项目根目录
├── flash_detector/ # ROS 包源码
│ ├── package.xml
│ ├── CMakeLists.txt
│ ├── cfg/FlashDetector.cfg
│ ├── config/param.yaml
│ ├── launch/flash_detector.launch
│ └── scripts/flash_detector_node.py
├── flash_detector_ws/ # 编译的工作空间
│ ├── src/flash_detector/ # 已编译的包
│ ├── build/
│ ├── devel/
│ └── logs/
└── FrontEnd/ # 前端项目
├── index.html
├── 使用说明.md
├── css/style.css
├── js/
│ ├── flash_detector.js # 光斑检测订阅
│ ├── flash_avoidance.js # 避光斑决策
│ ├── websocket.js # MAVROS 通信
│ ├── map.js # 地图模块
│ └── ui.js # UI 交互
└── server/
└── app.py # Flask 服务器
```
---
## 联系方式
- 开发者: mc
- Email: mc@example.com

File diff suppressed because it is too large Load Diff

@ -1,6 +0,0 @@
devel_space: /home/mc/ZhiTu/flash_detector_ws/devel
install: false
install_space: /home/mc/ZhiTu/flash_detector_ws/install
profile: default
source_space: /home/mc/ZhiTu/flash_detector_ws/src
workspace: /home/mc/ZhiTu/flash_detector_ws

@ -1,688 +0,0 @@
# This is the CMakeCache file.
# For build in directory: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# 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
########################
//Builds the googlemock subproject
BUILD_GMOCK:BOOL=ON
//Build dynamically-linked binaries
BUILD_SHARED_LIBS:BOOL=ON
//catkin devel space
CATKIN_DEVEL_PREFIX:PATH=/home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild
//Catkin enable testing
CATKIN_ENABLE_TESTING:BOOL=ON
//Prefix to apply to package generated via gendebian
CATKIN_PACKAGE_PREFIX:STRING=
//Catkin skip testing
CATKIN_SKIP_TESTING:BOOL=OFF
//Replace the CMake install command with a custom implementation
// using symlinks instead of copying resources
CATKIN_SYMLINK_INSTALL:BOOL=OFF
//Path to a program.
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
//Path to a program.
CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=
//Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON
//CXX compiler
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-9
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-9
//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:FILEPATH=/usr/bin/cc
//A wrapper around 'ar' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-9
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
// for the GCC compiler
CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-9
//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=
//Enable/Disable output of compile commands during generation.
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
//User executables (bin)
CMAKE_INSTALL_BINDIR:PATH=bin
//Read-only architecture-independent data (DATAROOTDIR)
CMAKE_INSTALL_DATADIR:PATH=
//Read-only architecture-independent data root (share)
CMAKE_INSTALL_DATAROOTDIR:PATH=share
//Documentation root (DATAROOTDIR/doc/PROJECT_NAME)
CMAKE_INSTALL_DOCDIR:PATH=
//C header files (include)
CMAKE_INSTALL_INCLUDEDIR:PATH=include
//Info documentation (DATAROOTDIR/info)
CMAKE_INSTALL_INFODIR:PATH=
//Object code libraries (lib)
CMAKE_INSTALL_LIBDIR:PATH=lib
//Program executables (libexec)
CMAKE_INSTALL_LIBEXECDIR:PATH=libexec
//Locale-dependent data (DATAROOTDIR/locale)
CMAKE_INSTALL_LOCALEDIR:PATH=
//Modifiable single-machine data (var)
CMAKE_INSTALL_LOCALSTATEDIR:PATH=var
//Man documentation (DATAROOTDIR/man)
CMAKE_INSTALL_MANDIR:PATH=
//C header files for non-gcc (/usr/include)
CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include
//Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/home/mc/ZhiTu/flash_detector_ws/install
//Run-time variable data (LOCALSTATEDIR/run)
CMAKE_INSTALL_RUNSTATEDIR:PATH=
//System admin executables (sbin)
CMAKE_INSTALL_SBINDIR:PATH=sbin
//Modifiable architecture-independent data (com)
CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com
//Read-only single-machine data (etc)
CMAKE_INSTALL_SYSCONFDIR:PATH=etc
//Path to a program.
CMAKE_LINKER:FILEPATH=/usr/bin/ld
//Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
//Flags used by the linker during the creation of modules during
// all build types.
CMAKE_MODULE_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of modules during
// DEBUG builds.
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of modules during
// MINSIZEREL builds.
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of modules during
// RELEASE builds.
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of modules during
// RELWITHDEBINFO builds.
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//Path to a program.
CMAKE_NM:FILEPATH=/usr/bin/nm
//Path to a program.
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
//Path to a program.
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
//Value Computed by CMake
CMAKE_PROJECT_DESCRIPTION:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
//Value Computed by CMake
CMAKE_PROJECT_NAME:STATIC=catkin_tools_prebuild
//Value Computed by CMake
CMAKE_PROJECT_VERSION:STATIC=1.10.0
//Value Computed by CMake
CMAKE_PROJECT_VERSION_MAJOR:STATIC=1
//Value Computed by CMake
CMAKE_PROJECT_VERSION_MINOR:STATIC=10
//Value Computed by CMake
CMAKE_PROJECT_VERSION_PATCH:STATIC=0
//Value Computed by CMake
CMAKE_PROJECT_VERSION_TWEAK:STATIC=
//Path to a program.
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
//Path to a program.
CMAKE_READELF:FILEPATH=/usr/bin/readelf
//Flags used by the linker during the creation of shared libraries
// during all build types.
CMAKE_SHARED_LINKER_FLAGS:STRING=
//Flags used by the linker during the creation of shared libraries
// during DEBUG builds.
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
//Flags used by the linker during the creation of shared libraries
// during MINSIZEREL builds.
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELEASE builds.
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
//Flags used by the linker during the creation of shared libraries
// during RELWITHDEBINFO builds.
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
//If set, runtime paths are not added when installing shared libraries,
// but are added when building.
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
//If set, runtime paths are not added when using shared libraries.
CMAKE_SKIP_RPATH:BOOL=NO
//Flags used by the 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
//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
//Path to a program.
DOXYGEN_EXECUTABLE:FILEPATH=DOXYGEN_EXECUTABLE-NOTFOUND
//Path to a program.
EMPY_EXECUTABLE:FILEPATH=EMPY_EXECUTABLE-NOTFOUND
//Empy script
EMPY_SCRIPT:STRING=/usr/lib/python3/dist-packages/em.py
//Path to a library.
GMOCK_LIBRARY:FILEPATH=GMOCK_LIBRARY-NOTFOUND
//Path to a library.
GMOCK_LIBRARY_DEBUG:FILEPATH=GMOCK_LIBRARY_DEBUG-NOTFOUND
//Path to a library.
GMOCK_MAIN_LIBRARY:FILEPATH=GMOCK_MAIN_LIBRARY-NOTFOUND
//Path to a library.
GMOCK_MAIN_LIBRARY_DEBUG:FILEPATH=GMOCK_MAIN_LIBRARY_DEBUG-NOTFOUND
//The directory containing a CMake configuration file for GMock.
GMock_DIR:PATH=GMock_DIR-NOTFOUND
//Path to a file.
GTEST_INCLUDE_DIR:PATH=/usr/include
//Path to a library.
GTEST_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libgtest.a
//Path to a library.
GTEST_LIBRARY_DEBUG:FILEPATH=GTEST_LIBRARY_DEBUG-NOTFOUND
//Path to a library.
GTEST_MAIN_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libgtest_main.a
//Path to a library.
GTEST_MAIN_LIBRARY_DEBUG:FILEPATH=GTEST_MAIN_LIBRARY_DEBUG-NOTFOUND
//The directory containing a CMake configuration file for GTest.
GTest_DIR:PATH=GTest_DIR-NOTFOUND
//Enable installation of googletest. (Projects embedding googletest
// may want to turn this OFF.)
INSTALL_GTEST:BOOL=OFF
//lsb_release executable was found
LSB_FOUND:BOOL=TRUE
//Path to a program.
LSB_RELEASE_EXECUTABLE:FILEPATH=/usr/bin/lsb_release
//Path to a program.
NOSETESTS:FILEPATH=/usr/bin/nosetests3
//Path to a program.
PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
//Specify specific Python version to use ('major.minor' or 'major')
PYTHON_VERSION:STRING=3
//Location of Python module em
PY_EM:STRING=/usr/lib/python3/dist-packages/em.py
//Path to a library.
RT_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/librt.so
//Enable debian style python package layout
SETUPTOOLS_DEB_LAYOUT:BOOL=ON
//Name of the computer/site where compile is being run
SITE:STRING=mc
//LSB Distrib tag
UBUNTU:BOOL=TRUE
//LSB Distrib - codename tag
UBUNTU_FOCAL:BOOL=TRUE
//Path to a file.
_gmock_INCLUDES:FILEPATH=/usr/src/googletest/googlemock/include/gmock/gmock.h
//Path to a file.
_gmock_SOURCES:FILEPATH=/usr/src/gmock/src/gmock.cc
//Path to a file.
_gtest_INCLUDES:FILEPATH=/usr/include/gtest/gtest.h
//Path to a file.
_gtest_SOURCES:FILEPATH=/usr/src/gtest/src/gtest.cc
//The directory containing a CMake configuration file for catkin.
catkin_DIR:PATH=/opt/ros/noetic/share/catkin/cmake
//Value Computed by CMake
catkin_tools_prebuild_BINARY_DIR:STATIC=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
//Value Computed by CMake
catkin_tools_prebuild_SOURCE_DIR:STATIC=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
//Value Computed by CMake
gmock_BINARY_DIR:STATIC=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock
//Dependencies for the target
gmock_LIB_DEPENDS:STATIC=general;gtest;
//Value Computed by CMake
gmock_SOURCE_DIR:STATIC=/usr/src/googletest/googlemock
//Build all of Google Mock's own tests.
gmock_build_tests:BOOL=OFF
//Dependencies for the target
gmock_main_LIB_DEPENDS:STATIC=general;gmock;
//Value Computed by CMake
googletest-distribution_BINARY_DIR:STATIC=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest
//Value Computed by CMake
googletest-distribution_SOURCE_DIR:STATIC=/usr/src/googletest
//Value Computed by CMake
gtest_BINARY_DIR:STATIC=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest
//Value Computed by CMake
gtest_SOURCE_DIR:STATIC=/usr/src/googletest/googletest
//Build gtest's sample programs.
gtest_build_samples:BOOL=OFF
//Build all of gtest's own tests.
gtest_build_tests:BOOL=OFF
//Disable uses of pthreads in gtest.
gtest_disable_pthreads:BOOL=OFF
//Use shared (DLL) run-time lib even when Google Test is built
// as static lib.
gtest_force_shared_crt:BOOL=OFF
//Build gtest with internal symbols hidden in shared libraries.
gtest_hide_internal_symbols:BOOL=OFF
//Dependencies for the target
gtest_main_LIB_DEPENDS:STATIC=general;gtest;
########################
# INTERNAL cache entries
########################
//catkin environment
CATKIN_ENV:INTERNAL=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/catkin_generated/env_cached.sh
CATKIN_TEST_RESULTS_DIR:INTERNAL=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/test_results
//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/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
//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=16
//Patch version of cmake used to create the current loaded cache
CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
//Path to CMake executable.
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
//Path to cpack program executable.
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
//Path to ctest program executable.
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
//ADVANCED property for variable: CMAKE_CXX_COMPILER
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_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_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
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
//Name of external makefile project generator.
CMAKE_EXTRA_GENERATOR:INTERNAL=
//Name of generator.
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
//Generator instance identifier.
CMAKE_GENERATOR_INSTANCE:INTERNAL=
//Name of generator platform.
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Test CMAKE_HAVE_LIBC_PTHREAD
CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=
//Have library pthreads
CMAKE_HAVE_PTHREADS_CREATE:INTERNAL=
//Have library pthread
CMAKE_HAVE_PTHREAD_CREATE:INTERNAL=1
//Have include pthread.h
CMAKE_HAVE_PTHREAD_H:INTERNAL=1
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
//ADVANCED property for variable: CMAKE_INSTALL_BINDIR
CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_DATADIR
CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR
CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR
CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR
CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_INFODIR
CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR
CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR
CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR
CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR
CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_MANDIR
CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR
CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR
CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR
CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR
CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1
//Install .so files without execute permission.
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR
CMAKE_INSTALL_SYSCONFDIR-ADVANCED: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=4
//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.16
//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
//uname command
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//Details about finding PY_em
FIND_PACKAGE_MESSAGE_DETAILS_PY_em:INTERNAL=[/usr/lib/python3/dist-packages/em.py][v()]
//Details about finding PythonInterp
FIND_PACKAGE_MESSAGE_DETAILS_PythonInterp:INTERNAL=[/usr/bin/python3][v3.8.10()]
//Details about finding Threads
FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
GMOCK_FROM_SOURCE_FOUND:INTERNAL=TRUE
GMOCK_FROM_SOURCE_INCLUDE_DIRS:INTERNAL=/usr/src/googletest/googlemock/include
GMOCK_FROM_SOURCE_LIBRARIES:INTERNAL=gmock
GMOCK_FROM_SOURCE_LIBRARY_DIRS:INTERNAL=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gmock
GMOCK_FROM_SOURCE_MAIN_LIBRARIES:INTERNAL=gmock_main
//ADVANCED property for variable: GMOCK_LIBRARY
GMOCK_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: GMOCK_LIBRARY_DEBUG
GMOCK_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: GMOCK_MAIN_LIBRARY
GMOCK_MAIN_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: GMOCK_MAIN_LIBRARY_DEBUG
GMOCK_MAIN_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
GTEST_FROM_SOURCE_FOUND:INTERNAL=TRUE
GTEST_FROM_SOURCE_INCLUDE_DIRS:INTERNAL=/usr/include
GTEST_FROM_SOURCE_LIBRARIES:INTERNAL=gtest
GTEST_FROM_SOURCE_LIBRARY_DIRS:INTERNAL=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest
GTEST_FROM_SOURCE_MAIN_LIBRARIES:INTERNAL=gtest_main
//ADVANCED property for variable: GTEST_INCLUDE_DIR
GTEST_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: GTEST_LIBRARY
GTEST_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: GTEST_LIBRARY_DEBUG
GTEST_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: GTEST_MAIN_LIBRARY
GTEST_MAIN_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: GTEST_MAIN_LIBRARY_DEBUG
GTEST_MAIN_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
//ADVANCED property for variable: PYTHON_EXECUTABLE
PYTHON_EXECUTABLE-ADVANCED:INTERNAL=1
//This needs to be in PYTHONPATH when 'setup.py install' is called.
// And it needs to match. But setuptools won't tell us where
// it will install things.
PYTHON_INSTALL_DIR:INTERNAL=lib/python3/dist-packages
//CMAKE_INSTALL_PREFIX during last run
_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/home/mc/ZhiTu/flash_detector_ws/install
//ADVANCED property for variable: gmock_build_tests
gmock_build_tests-ADVANCED:INTERNAL=1
//ADVANCED property for variable: gtest_build_samples
gtest_build_samples-ADVANCED:INTERNAL=1
//ADVANCED property for variable: gtest_build_tests
gtest_build_tests-ADVANCED:INTERNAL=1
//ADVANCED property for variable: gtest_disable_pthreads
gtest_disable_pthreads-ADVANCED:INTERNAL=1
//ADVANCED property for variable: gtest_force_shared_crt
gtest_force_shared_crt-ADVANCED:INTERNAL=1
//ADVANCED property for variable: gtest_hide_internal_symbols
gtest_hide_internal_symbols-ADVANCED:INTERNAL=1

@ -1,76 +0,0 @@
set(CMAKE_C_COMPILER "/usr/bin/cc")
set(CMAKE_C_COMPILER_ARG1 "")
set(CMAKE_C_COMPILER_ID "GNU")
set(CMAKE_C_COMPILER_VERSION "9.4.0")
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
set(CMAKE_C_COMPILER_WRAPPER "")
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
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")
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_C_PLATFORM_ID "Linux")
set(CMAKE_C_SIMULATE_ID "")
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
set(CMAKE_C_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-9")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_MT "")
set(CMAKE_COMPILER_IS_GNUCC 1)
set(CMAKE_C_COMPILER_LOADED 1)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_C_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_C_COMPILER_ENV_VAR "CC")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
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)
# Save compiler ABI information.
set(CMAKE_C_SIZEOF_DATA_PTR "8")
set(CMAKE_C_COMPILER_ABI "ELF")
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/gcc/x86_64-linux-gnu/9/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/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

@ -1,88 +0,0 @@
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
set(CMAKE_CXX_COMPILER_ARG1 "")
set(CMAKE_CXX_COMPILER_ID "GNU")
set(CMAKE_CXX_COMPILER_VERSION "9.4.0")
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
set(CMAKE_CXX_COMPILER_WRAPPER "")
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
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")
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_CXX_PLATFORM_ID "Linux")
set(CMAKE_CXX_SIMULATE_ID "")
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
set(CMAKE_CXX_SIMULATE_VERSION "")
set(CMAKE_AR "/usr/bin/ar")
set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-9")
set(CMAKE_RANLIB "/usr/bin/ranlib")
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9")
set(CMAKE_LINKER "/usr/bin/ld")
set(CMAKE_MT "")
set(CMAKE_COMPILER_IS_GNUCXX 1)
set(CMAKE_CXX_COMPILER_LOADED 1)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_CXX_ABI_COMPILED TRUE)
set(CMAKE_COMPILER_IS_MINGW )
set(CMAKE_COMPILER_IS_CYGWIN )
if(CMAKE_COMPILER_IS_CYGWIN)
set(CYGWIN 1)
set(UNIX 1)
endif()
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
if(CMAKE_COMPILER_IS_MINGW)
set(MINGW 1)
endif()
set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
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)
# Save compiler ABI information.
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
set(CMAKE_CXX_COMPILER_ABI "ELF")
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++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/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/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

@ -1,15 +0,0 @@
set(CMAKE_HOST_SYSTEM "Linux-5.15.0-139-generic")
set(CMAKE_HOST_SYSTEM_NAME "Linux")
set(CMAKE_HOST_SYSTEM_VERSION "5.15.0-139-generic")
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_SYSTEM "Linux-5.15.0-139-generic")
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_VERSION "5.15.0-139-generic")
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(CMAKE_CROSSCOMPILING "FALSE")
set(CMAKE_SYSTEM_LOADED 1)

@ -1,671 +0,0 @@
#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
/* 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 */
# 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
# 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(__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(__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(__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(_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(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
# define COMPILER_ID "Fujitsu"
#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(__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 % 10000)
# 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(__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(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
#if defined(__VISUALDSPVERSION__)
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 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__))
# 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(__CRAYXE) || defined(__CRAYXC)
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(__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"
# 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
#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_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"
# 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
#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 components. */
#ifdef 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'};
#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__)
# if (defined(_MSC_VER) && !defined(__clang__)) \
|| (defined(__ibmxl__) || defined(__IBMC__))
# define C_DIALECT "90"
# else
# define C_DIALECT
# endif
#elif __STDC_VERSION__ >= 201000L
# define C_DIALECT "11"
#elif __STDC_VERSION__ >= 199901L
# define C_DIALECT "99"
#else
# define C_DIALECT "90"
#endif
const char* info_language_dialect_default =
"INFO" ":" "dialect_default[" C_DIALECT "]";
/*--------------------------------------------------------------------------*/
#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(__CRAYXE) || defined(__CRAYXC)
require += info_cray[argc];
#endif
require += info_language_dialect_default[argc];
(void)argv;
return require;
}
#endif

@ -1,660 +0,0 @@
/* 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
/* 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 */
# 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
# 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(__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(__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(__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(_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(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
# define COMPILER_ID "Fujitsu"
#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(__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 % 10000)
# 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(__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(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
# define COMPILER_ID "ADSP"
#if defined(__VISUALDSPVERSION__)
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 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__))
# 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(__CRAYXE) || defined(__CRAYXC)
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(__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"
# 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
#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_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"
# 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
#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 components. */
#ifdef 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'};
#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_dialect_default = "INFO" ":" "dialect_default["
#if CXX_STD > 201703L
"20"
#elif CXX_STD >= 201703L
"17"
#elif CXX_STD >= 201402L
"14"
#elif CXX_STD >= 201103L
"11"
#else
"98"
#endif
"]";
/*--------------------------------------------------------------------------*/
int main(int argc, char* argv[])
{
int require = 0;
require += info_compiler[argc];
require += info_platform[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(__CRAYXE) || defined(__CRAYXC)
require += info_cray[argc];
#endif
require += info_language_dialect_default[argc];
(void)argv;
return require;
}

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

@ -1,58 +0,0 @@
Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_68c3f/fast && /usr/bin/make -f CMakeFiles/cmTC_68c3f.dir/build.make CMakeFiles/cmTC_68c3f.dir/build
make[1]: 进入目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_68c3f.dir/src.c.o
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_68c3f.dir/src.c.o -c /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_68c3f
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_68c3f.dir/link.txt --verbose=1
/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD CMakeFiles/cmTC_68c3f.dir/src.c.o -o cmTC_68c3f
/usr/bin/ld: CMakeFiles/cmTC_68c3f.dir/src.c.o: in function `main':
src.c:(.text+0x46): undefined reference to `pthread_create'
/usr/bin/ld: src.c:(.text+0x52): undefined reference to `pthread_detach'
/usr/bin/ld: src.c:(.text+0x63): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_68c3f.dir/build.make:87cmTC_68c3f] 错误 1
make[1]: 离开目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
make: *** [Makefile:121cmTC_68c3f/fast] 错误 2
Source file was:
#include <pthread.h>
void* test_func(void* data)
{
return data;
}
int main(void)
{
pthread_t thread;
pthread_create(&thread, NULL, test_func, NULL);
pthread_detach(thread);
pthread_join(thread, NULL);
pthread_atfork(NULL, NULL, NULL);
pthread_exit(NULL);
return 0;
}
Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_0275e/fast && /usr/bin/make -f CMakeFiles/cmTC_0275e.dir/build.make CMakeFiles/cmTC_0275e.dir/build
make[1]: 进入目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_0275e.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_0275e.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
Linking C executable cmTC_0275e
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0275e.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_0275e.dir/CheckFunctionExists.c.o -o cmTC_0275e -lpthreads
/usr/bin/ld: 找不到 -lpthreads
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_0275e.dir/build.make:87cmTC_0275e] 错误 1
make[1]: 离开目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
make: *** [Makefile:121cmTC_0275e/fast] 错误 2

@ -1,489 +0,0 @@
The system is: Linux - 5.15.0-139-generic - x86_64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/cc
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 GNU, found in "/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/3.16.3/CompilerIdC/a.out"
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/c++
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 GNU, found in "/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/3.16.3/CompilerIdCXX/a.out"
Determining if the C compiler works passed with the following output:
Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_b2262/fast && /usr/bin/make -f CMakeFiles/cmTC_b2262.dir/build.make CMakeFiles/cmTC_b2262.dir/build
make[1]: 进入目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_b2262.dir/testCCompiler.c.o
/usr/bin/cc -o CMakeFiles/cmTC_b2262.dir/testCCompiler.c.o -c /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTC_b2262
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b2262.dir/link.txt --verbose=1
/usr/bin/cc CMakeFiles/cmTC_b2262.dir/testCCompiler.c.o -o cmTC_b2262
make[1]: 离开目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Detecting C compiler ABI info compiled with the following output:
Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_bd38e/fast && /usr/bin/make -f CMakeFiles/cmTC_bd38e.dir/build.make CMakeFiles/cmTC_bd38e.dir/build
make[1]: Entering directory '/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o
/usr/bin/cc -v -o CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/9/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccuM6Has.s
GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)
compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-linux-gnu/9/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)
compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 01da938ff5dc2163489aa33cb3b747a7
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
as -v --64 -o CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o /tmp/ccuM6Has.s
GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'
Linking C executable cmTC_bd38e
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bd38e.dir/link.txt --verbose=1
/usr/bin/cc -v CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o -o cmTC_bd38e
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd38e' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccmd6p6Q.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_bd38e /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd38e' '-mtune=generic' '-march=x86-64'
make[1]: Leaving directory '/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp'
Parsed C implicit include dir info from above output: rv=done
found start of include info
found start of implicit include info
add: [/usr/lib/gcc/x86_64-linux-gnu/9/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/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/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/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
Parsed C implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command(s):/usr/bin/make cmTC_bd38e/fast && /usr/bin/make -f CMakeFiles/cmTC_bd38e.dir/build.make CMakeFiles/cmTC_bd38e.dir/build]
ignore line: [make[1]: Entering directory '/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp']
ignore line: [Building C object CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/cc]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) ]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccuM6Has.s]
ignore line: [GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)]
ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"]
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/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: [GNU C17 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)]
ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [Compiler executable checksum: 01da938ff5dc2163489aa33cb3b747a7]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o /tmp/ccuM6Has.s]
ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64']
ignore line: [Linking C executable cmTC_bd38e]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bd38e.dir/link.txt --verbose=1]
ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o -o cmTC_bd38e ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/cc]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd38e' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccmd6p6Q.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_bd38e /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccmd6p6Q.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-znow] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTC_bd38e] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..]
arg [CMakeFiles/cmTC_bd38e.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--pop-state] ==> ignore
arg [-lc] ==> lib [c]
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
arg [-lgcc_s] ==> lib [gcc_s]
arg [--pop-state] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib]
implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
implicit fwks: []
Determining if the CXX compiler works passed with the following output:
Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_d9cc3/fast && /usr/bin/make -f CMakeFiles/cmTC_d9cc3.dir/build.make CMakeFiles/cmTC_d9cc3.dir/build
make[1]: 进入目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Building CXX object CMakeFiles/cmTC_d9cc3.dir/testCXXCompiler.cxx.o
/usr/bin/c++ -o CMakeFiles/cmTC_d9cc3.dir/testCXXCompiler.cxx.o -c /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
Linking CXX executable cmTC_d9cc3
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d9cc3.dir/link.txt --verbose=1
/usr/bin/c++ CMakeFiles/cmTC_d9cc3.dir/testCXXCompiler.cxx.o -o cmTC_d9cc3
make[1]: 离开目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Detecting CXX compiler ABI info compiled with the following output:
Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_a390d/fast && /usr/bin/make -f CMakeFiles/cmTC_a390d.dir/build.make CMakeFiles/cmTC_a390d.dir/build
make[1]: Entering directory '/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -v -o CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc9GDHsn.s
GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)
compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/9
/usr/include/x86_64-linux-gnu/c++/9
/usr/include/c++/9/backward
/usr/lib/gcc/x86_64-linux-gnu/9/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)
compiled by GNU C version 9.4.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 3d1eba838554fa2348dba760e4770469
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
as -v --64 -o CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc9GDHsn.s
GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
Linking CXX executable cmTC_a390d
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a390d.dir/link.txt --verbose=1
/usr/bin/c++ -v CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a390d
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a390d' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
/usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccQZGpfR.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_a390d /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a390d' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
make[1]: Leaving directory '/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp'
Parsed CXX implicit include dir info from above output: rv=done
found start of include info
found start of implicit include info
add: [/usr/include/c++/9]
add: [/usr/include/x86_64-linux-gnu/c++/9]
add: [/usr/include/c++/9/backward]
add: [/usr/lib/gcc/x86_64-linux-gnu/9/include]
add: [/usr/local/include]
add: [/usr/include/x86_64-linux-gnu]
add: [/usr/include]
end of search list found
collapse include dir [/usr/include/c++/9] ==> [/usr/include/c++/9]
collapse include dir [/usr/include/x86_64-linux-gnu/c++/9] ==> [/usr/include/x86_64-linux-gnu/c++/9]
collapse include dir [/usr/include/c++/9/backward] ==> [/usr/include/c++/9/backward]
collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/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++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include]
Parsed CXX implicit link information from above output:
link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
ignore line: [Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp]
ignore line: []
ignore line: [Run Build Command(s):/usr/bin/make cmTC_a390d/fast && /usr/bin/make -f CMakeFiles/cmTC_a390d.dir/build.make CMakeFiles/cmTC_a390d.dir/build]
ignore line: [make[1]: Entering directory '/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp']
ignore line: [Building CXX object CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) ]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc9GDHsn.s]
ignore line: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)]
ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"]
ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"]
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"]
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"]
ignore line: [#include "..." search starts here:]
ignore line: [#include <...> search starts here:]
ignore line: [ /usr/include/c++/9]
ignore line: [ /usr/include/x86_64-linux-gnu/c++/9]
ignore line: [ /usr/include/c++/9/backward]
ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/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: [GNU C++14 (Ubuntu 9.4.0-1ubuntu1~20.04.2) version 9.4.0 (x86_64-linux-gnu)]
ignore line: [ compiled by GNU C version 9.4.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP]
ignore line: []
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
ignore line: [Compiler executable checksum: 3d1eba838554fa2348dba760e4770469]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc9GDHsn.s]
ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
ignore line: [Linking CXX executable cmTC_a390d]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a390d.dir/link.txt --verbose=1]
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a390d ]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper]
ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa]
ignore line: [OFFLOAD_TARGET_DEFAULT=1]
ignore line: [Target: x86_64-linux-gnu]
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.4.0-1ubuntu1~20.04.2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-9QDOt0/gcc-9-9.4.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
ignore line: [Thread model: posix]
ignore line: [gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a390d' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccQZGpfR.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_a390d /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_a390d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o]
arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccQZGpfR.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [--build-id] ==> ignore
arg [--eh-frame-hdr] ==> ignore
arg [-m] ==> ignore
arg [elf_x86_64] ==> ignore
arg [--hash-style=gnu] ==> ignore
arg [--as-needed] ==> ignore
arg [-dynamic-linker] ==> ignore
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-znow] ==> ignore
arg [-zrelro] ==> ignore
arg [-o] ==> ignore
arg [cmTC_a390d] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> ignore
arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib]
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
arg [-L/lib/../lib] ==> dir [/lib/../lib]
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..]
arg [CMakeFiles/cmTC_a390d.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/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> ignore
arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> ignore
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib]
collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
collapse library dir [/lib/../lib] ==> [/lib]
collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib]
implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
implicit fwks: []
Determining if the include file pthread.h exists passed with the following output:
Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_563c8/fast && /usr/bin/make -f CMakeFiles/cmTC_563c8.dir/build.make CMakeFiles/cmTC_563c8.dir/build
make[1]: 进入目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_563c8.dir/CheckIncludeFile.c.o
/usr/bin/cc -o CMakeFiles/cmTC_563c8.dir/CheckIncludeFile.c.o -c /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp/CheckIncludeFile.c
Linking C executable cmTC_563c8
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_563c8.dir/link.txt --verbose=1
/usr/bin/cc CMakeFiles/cmTC_563c8.dir/CheckIncludeFile.c.o -o cmTC_563c8
make[1]: 离开目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Determining if the function pthread_create exists in the pthread passed with the following output:
Change Dir: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_225ee/fast && /usr/bin/make -f CMakeFiles/cmTC_225ee.dir/build.make CMakeFiles/cmTC_225ee.dir/build
make[1]: 进入目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”
Building C object CMakeFiles/cmTC_225ee.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_225ee.dir/CheckFunctionExists.c.o -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
Linking C executable cmTC_225ee
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_225ee.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_225ee.dir/CheckFunctionExists.c.o -o cmTC_225ee -lpthread
make[1]: 离开目录“/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/CMakeTmp”

@ -1,2 +0,0 @@
# Hashes of file build rules.
1518310fb919f63527edc05b17edc129 CMakeFiles/clean_test_results

@ -1,250 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# The generator used is:
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
# The top level Makefile was generated from the following files:
set(CMAKE_MAKEFILE_DEPENDS
"CMakeCache.txt"
"CMakeFiles/3.16.3/CMakeCCompiler.cmake"
"CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
"CMakeFiles/3.16.3/CMakeSystem.cmake"
"CMakeLists.txt"
"catkin/catkin_generated/version/package.cmake"
"catkin_generated/installspace/_setup_util.py"
"catkin_generated/package.cmake"
"package.xml"
"/opt/ros/noetic/share/catkin/cmake/all.cmake"
"/opt/ros/noetic/share/catkin/cmake/assert.cmake"
"/opt/ros/noetic/share/catkin/cmake/atomic_configure_file.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkinConfig-version.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_add_env_hooks.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_destinations.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_download.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_generate_environment.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_install_python.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_libraries.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_metapackage.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_package.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_package_xml.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_python_setup.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_symlink_install.cmake"
"/opt/ros/noetic/share/catkin/cmake/catkin_workspace.cmake"
"/opt/ros/noetic/share/catkin/cmake/custom_install.cmake"
"/opt/ros/noetic/share/catkin/cmake/debug_message.cmake"
"/opt/ros/noetic/share/catkin/cmake/em/pkg.pc.em"
"/opt/ros/noetic/share/catkin/cmake/em_expand.cmake"
"/opt/ros/noetic/share/catkin/cmake/empy.cmake"
"/opt/ros/noetic/share/catkin/cmake/find_program_required.cmake"
"/opt/ros/noetic/share/catkin/cmake/interrogate_setup_dot_py.py"
"/opt/ros/noetic/share/catkin/cmake/legacy.cmake"
"/opt/ros/noetic/share/catkin/cmake/list_append_deduplicate.cmake"
"/opt/ros/noetic/share/catkin/cmake/list_append_unique.cmake"
"/opt/ros/noetic/share/catkin/cmake/list_insert_in_workspace_order.cmake"
"/opt/ros/noetic/share/catkin/cmake/platform/lsb.cmake"
"/opt/ros/noetic/share/catkin/cmake/platform/ubuntu.cmake"
"/opt/ros/noetic/share/catkin/cmake/platform/windows.cmake"
"/opt/ros/noetic/share/catkin/cmake/python.cmake"
"/opt/ros/noetic/share/catkin/cmake/safe_execute_process.cmake"
"/opt/ros/noetic/share/catkin/cmake/stamp.cmake"
"/opt/ros/noetic/share/catkin/cmake/string_starts_with.cmake"
"/opt/ros/noetic/share/catkin/cmake/templates/_setup_util.py.in"
"/opt/ros/noetic/share/catkin/cmake/templates/env.sh.in"
"/opt/ros/noetic/share/catkin/cmake/templates/generate_cached_setup.py.in"
"/opt/ros/noetic/share/catkin/cmake/templates/local_setup.bash.in"
"/opt/ros/noetic/share/catkin/cmake/templates/local_setup.fish.in"
"/opt/ros/noetic/share/catkin/cmake/templates/local_setup.sh.in"
"/opt/ros/noetic/share/catkin/cmake/templates/local_setup.zsh.in"
"/opt/ros/noetic/share/catkin/cmake/templates/pkg.context.pc.in"
"/opt/ros/noetic/share/catkin/cmake/templates/pkgConfig-version.cmake.in"
"/opt/ros/noetic/share/catkin/cmake/templates/pkgConfig.cmake.in"
"/opt/ros/noetic/share/catkin/cmake/templates/rosinstall.in"
"/opt/ros/noetic/share/catkin/cmake/templates/setup.bash.in"
"/opt/ros/noetic/share/catkin/cmake/templates/setup.fish.in"
"/opt/ros/noetic/share/catkin/cmake/templates/setup.sh.in"
"/opt/ros/noetic/share/catkin/cmake/templates/setup.zsh.in"
"/opt/ros/noetic/share/catkin/cmake/test/catkin_download_test_data.cmake"
"/opt/ros/noetic/share/catkin/cmake/test/gtest.cmake"
"/opt/ros/noetic/share/catkin/cmake/test/nosetests.cmake"
"/opt/ros/noetic/share/catkin/cmake/test/tests.cmake"
"/opt/ros/noetic/share/catkin/cmake/tools/doxygen.cmake"
"/opt/ros/noetic/share/catkin/cmake/tools/libraries.cmake"
"/opt/ros/noetic/share/catkin/cmake/tools/rt.cmake"
"/opt/ros/noetic/share/catkin/package.xml"
"/usr/share/cmake-3.16/Modules/CMakeCCompiler.cmake.in"
"/usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c"
"/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in"
"/usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp"
"/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
"/usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDependentOption.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake"
"/usr/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake"
"/usr/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake"
"/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake"
"/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake"
"/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeParseArguments.cmake"
"/usr/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake"
"/usr/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake"
"/usr/share/cmake-3.16/Modules/CMakeSystem.cmake.in"
"/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake"
"/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake"
"/usr/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake"
"/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
"/usr/share/cmake-3.16/Modules/CMakeUnixFindMake.cmake"
"/usr/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake"
"/usr/share/cmake-3.16/Modules/CheckFunctionExists.c"
"/usr/share/cmake-3.16/Modules/CheckIncludeFile.c.in"
"/usr/share/cmake-3.16/Modules/CheckIncludeFile.cmake"
"/usr/share/cmake-3.16/Modules/CheckLibraryExists.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
"/usr/share/cmake-3.16/Modules/DartConfiguration.tcl.in"
"/usr/share/cmake-3.16/Modules/FindGTest.cmake"
"/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
"/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
"/usr/share/cmake-3.16/Modules/FindPythonInterp.cmake"
"/usr/share/cmake-3.16/Modules/FindThreads.cmake"
"/usr/share/cmake-3.16/Modules/GNUInstallDirs.cmake"
"/usr/share/cmake-3.16/Modules/GoogleTest.cmake"
"/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake"
"/usr/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake"
"/usr/share/cmake-3.16/Modules/Platform/Linux-Determine-CXX.cmake"
"/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake"
"/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake"
"/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
"/usr/share/cmake-3.16/Modules/Platform/Linux.cmake"
"/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake"
"/usr/src/googletest/CMakeLists.txt"
"/usr/src/googletest/googlemock/CMakeLists.txt"
"/usr/src/googletest/googletest/CMakeLists.txt"
"/usr/src/googletest/googletest/cmake/internal_utils.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.16.3/CMakeSystem.cmake"
"CMakeFiles/3.16.3/CMakeCCompiler.cmake"
"CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
"CMakeFiles/3.16.3/CMakeCCompiler.cmake"
"CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
"CTestConfiguration.ini"
"catkin_generated/stamps/catkin_tools_prebuild/package.xml.stamp"
"atomic_configure/_setup_util.py.4bscr"
"atomic_configure/env.sh.HvqFl"
"atomic_configure/setup.bash.ae6J6"
"atomic_configure/local_setup.bash.hFOEf"
"atomic_configure/setup.sh.B68Do"
"atomic_configure/local_setup.sh.H97kj"
"atomic_configure/setup.zsh.odGzO"
"atomic_configure/local_setup.zsh.K94LD"
"atomic_configure/setup.fish.f2GaO"
"atomic_configure/local_setup.fish.SQsa2"
"atomic_configure/.rosinstall.n8MbA"
"catkin_generated/installspace/_setup_util.py"
"catkin_generated/stamps/catkin_tools_prebuild/_setup_util.py.stamp"
"catkin_generated/installspace/env.sh"
"catkin_generated/installspace/setup.bash"
"catkin_generated/installspace/local_setup.bash"
"catkin_generated/installspace/setup.sh"
"catkin_generated/installspace/local_setup.sh"
"catkin_generated/installspace/setup.zsh"
"catkin_generated/installspace/local_setup.zsh"
"catkin_generated/installspace/setup.fish"
"catkin_generated/installspace/local_setup.fish"
"catkin_generated/installspace/.rosinstall"
"catkin_generated/generate_cached_setup.py"
"catkin_generated/env_cached.sh"
"catkin_generated/stamps/catkin_tools_prebuild/interrogate_setup_dot_py.py.stamp"
"catkin_generated/stamps/catkin_tools_prebuild/package.xml.stamp"
"catkin_generated/pkg.develspace.context.pc.py"
"catkin_generated/stamps/catkin_tools_prebuild/pkg.pc.em.stamp"
"/home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild/share/catkin_tools_prebuild/cmake/catkin_tools_prebuildConfig.cmake"
"/home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild/share/catkin_tools_prebuild/cmake/catkin_tools_prebuildConfig-version.cmake"
"catkin_generated/pkg.installspace.context.pc.py"
"catkin_generated/stamps/catkin_tools_prebuild/pkg.pc.em.stamp"
"catkin_generated/installspace/catkin_tools_prebuildConfig.cmake"
"catkin_generated/installspace/catkin_tools_prebuildConfig-version.cmake"
"CMakeFiles/CMakeDirectoryInformation.cmake"
"gtest/CMakeFiles/CMakeDirectoryInformation.cmake"
"gtest/googlemock/CMakeFiles/CMakeDirectoryInformation.cmake"
"gtest/googletest/CMakeFiles/CMakeDirectoryInformation.cmake"
)
# Dependency information for all targets:
set(CMAKE_DEPEND_INFO_FILES
"CMakeFiles/_catkin_empty_exported_target.dir/DependInfo.cmake"
"CMakeFiles/doxygen.dir/DependInfo.cmake"
"CMakeFiles/run_tests.dir/DependInfo.cmake"
"CMakeFiles/clean_test_results.dir/DependInfo.cmake"
"CMakeFiles/tests.dir/DependInfo.cmake"
"CMakeFiles/download_extra_data.dir/DependInfo.cmake"
"gtest/googlemock/CMakeFiles/gmock_main.dir/DependInfo.cmake"
"gtest/googlemock/CMakeFiles/gmock.dir/DependInfo.cmake"
"gtest/googletest/CMakeFiles/gtest_main.dir/DependInfo.cmake"
"gtest/googletest/CMakeFiles/gtest.dir/DependInfo.cmake"
)

@ -1,413 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# 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:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# 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 remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
#=============================================================================
# Directory level rules for the build root directory
# The main recursive "all" target.
all: gtest/all
.PHONY : all
# The main recursive "preinstall" target.
preinstall: gtest/preinstall
.PHONY : preinstall
# The main recursive "clean" target.
clean: CMakeFiles/_catkin_empty_exported_target.dir/clean
clean: CMakeFiles/doxygen.dir/clean
clean: CMakeFiles/run_tests.dir/clean
clean: CMakeFiles/clean_test_results.dir/clean
clean: CMakeFiles/tests.dir/clean
clean: CMakeFiles/download_extra_data.dir/clean
clean: gtest/clean
.PHONY : clean
#=============================================================================
# Directory level rules for directory gtest
# Recursive "all" directory target.
gtest/all: gtest/googlemock/all
.PHONY : gtest/all
# Recursive "preinstall" directory target.
gtest/preinstall: gtest/googlemock/preinstall
.PHONY : gtest/preinstall
# Recursive "clean" directory target.
gtest/clean: gtest/googlemock/clean
.PHONY : gtest/clean
#=============================================================================
# Directory level rules for directory gtest/googlemock
# Recursive "all" directory target.
gtest/googlemock/all: gtest/googletest/all
.PHONY : gtest/googlemock/all
# Recursive "preinstall" directory target.
gtest/googlemock/preinstall: gtest/googletest/preinstall
.PHONY : gtest/googlemock/preinstall
# Recursive "clean" directory target.
gtest/googlemock/clean: gtest/googlemock/CMakeFiles/gmock_main.dir/clean
gtest/googlemock/clean: gtest/googlemock/CMakeFiles/gmock.dir/clean
gtest/googlemock/clean: gtest/googletest/clean
.PHONY : gtest/googlemock/clean
#=============================================================================
# Directory level rules for directory gtest/googletest
# Recursive "all" directory target.
gtest/googletest/all:
.PHONY : gtest/googletest/all
# Recursive "preinstall" directory target.
gtest/googletest/preinstall:
.PHONY : gtest/googletest/preinstall
# Recursive "clean" directory target.
gtest/googletest/clean: gtest/googletest/CMakeFiles/gtest_main.dir/clean
gtest/googletest/clean: gtest/googletest/CMakeFiles/gtest.dir/clean
.PHONY : gtest/googletest/clean
#=============================================================================
# Target rules for target CMakeFiles/_catkin_empty_exported_target.dir
# All Build rule for target.
CMakeFiles/_catkin_empty_exported_target.dir/all:
$(MAKE) -f CMakeFiles/_catkin_empty_exported_target.dir/build.make CMakeFiles/_catkin_empty_exported_target.dir/depend
$(MAKE) -f CMakeFiles/_catkin_empty_exported_target.dir/build.make CMakeFiles/_catkin_empty_exported_target.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num= "Built target _catkin_empty_exported_target"
.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/_catkin_empty_exported_target.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/_catkin_empty_exported_target.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/rule
# Convenience name for target.
_catkin_empty_exported_target: CMakeFiles/_catkin_empty_exported_target.dir/rule
.PHONY : _catkin_empty_exported_target
# clean rule for target.
CMakeFiles/_catkin_empty_exported_target.dir/clean:
$(MAKE) -f CMakeFiles/_catkin_empty_exported_target.dir/build.make CMakeFiles/_catkin_empty_exported_target.dir/clean
.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/clean
#=============================================================================
# Target rules for target CMakeFiles/doxygen.dir
# All Build rule for target.
CMakeFiles/doxygen.dir/all:
$(MAKE) -f CMakeFiles/doxygen.dir/build.make CMakeFiles/doxygen.dir/depend
$(MAKE) -f CMakeFiles/doxygen.dir/build.make CMakeFiles/doxygen.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num= "Built target doxygen"
.PHONY : CMakeFiles/doxygen.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/doxygen.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/doxygen.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : CMakeFiles/doxygen.dir/rule
# Convenience name for target.
doxygen: CMakeFiles/doxygen.dir/rule
.PHONY : doxygen
# clean rule for target.
CMakeFiles/doxygen.dir/clean:
$(MAKE) -f CMakeFiles/doxygen.dir/build.make CMakeFiles/doxygen.dir/clean
.PHONY : CMakeFiles/doxygen.dir/clean
#=============================================================================
# Target rules for target CMakeFiles/run_tests.dir
# All Build rule for target.
CMakeFiles/run_tests.dir/all:
$(MAKE) -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/depend
$(MAKE) -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num= "Built target run_tests"
.PHONY : CMakeFiles/run_tests.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/run_tests.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/run_tests.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : CMakeFiles/run_tests.dir/rule
# Convenience name for target.
run_tests: CMakeFiles/run_tests.dir/rule
.PHONY : run_tests
# clean rule for target.
CMakeFiles/run_tests.dir/clean:
$(MAKE) -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/clean
.PHONY : CMakeFiles/run_tests.dir/clean
#=============================================================================
# Target rules for target CMakeFiles/clean_test_results.dir
# All Build rule for target.
CMakeFiles/clean_test_results.dir/all:
$(MAKE) -f CMakeFiles/clean_test_results.dir/build.make CMakeFiles/clean_test_results.dir/depend
$(MAKE) -f CMakeFiles/clean_test_results.dir/build.make CMakeFiles/clean_test_results.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num= "Built target clean_test_results"
.PHONY : CMakeFiles/clean_test_results.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/clean_test_results.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/clean_test_results.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : CMakeFiles/clean_test_results.dir/rule
# Convenience name for target.
clean_test_results: CMakeFiles/clean_test_results.dir/rule
.PHONY : clean_test_results
# clean rule for target.
CMakeFiles/clean_test_results.dir/clean:
$(MAKE) -f CMakeFiles/clean_test_results.dir/build.make CMakeFiles/clean_test_results.dir/clean
.PHONY : CMakeFiles/clean_test_results.dir/clean
#=============================================================================
# Target rules for target CMakeFiles/tests.dir
# All Build rule for target.
CMakeFiles/tests.dir/all:
$(MAKE) -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/depend
$(MAKE) -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num= "Built target tests"
.PHONY : CMakeFiles/tests.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/tests.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/tests.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : CMakeFiles/tests.dir/rule
# Convenience name for target.
tests: CMakeFiles/tests.dir/rule
.PHONY : tests
# clean rule for target.
CMakeFiles/tests.dir/clean:
$(MAKE) -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/clean
.PHONY : CMakeFiles/tests.dir/clean
#=============================================================================
# Target rules for target CMakeFiles/download_extra_data.dir
# All Build rule for target.
CMakeFiles/download_extra_data.dir/all:
$(MAKE) -f CMakeFiles/download_extra_data.dir/build.make CMakeFiles/download_extra_data.dir/depend
$(MAKE) -f CMakeFiles/download_extra_data.dir/build.make CMakeFiles/download_extra_data.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num= "Built target download_extra_data"
.PHONY : CMakeFiles/download_extra_data.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/download_extra_data.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/download_extra_data.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : CMakeFiles/download_extra_data.dir/rule
# Convenience name for target.
download_extra_data: CMakeFiles/download_extra_data.dir/rule
.PHONY : download_extra_data
# clean rule for target.
CMakeFiles/download_extra_data.dir/clean:
$(MAKE) -f CMakeFiles/download_extra_data.dir/build.make CMakeFiles/download_extra_data.dir/clean
.PHONY : CMakeFiles/download_extra_data.dir/clean
#=============================================================================
# Target rules for target gtest/googlemock/CMakeFiles/gmock_main.dir
# All Build rule for target.
gtest/googlemock/CMakeFiles/gmock_main.dir/all: gtest/googlemock/CMakeFiles/gmock.dir/all
gtest/googlemock/CMakeFiles/gmock_main.dir/all: gtest/googletest/CMakeFiles/gtest.dir/all
$(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/depend
$(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num=3,4 "Built target gmock_main"
.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/all
# Build rule for subdir invocation for target.
gtest/googlemock/CMakeFiles/gmock_main.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 6
$(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/CMakeFiles/gmock_main.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/rule
# Convenience name for target.
gmock_main: gtest/googlemock/CMakeFiles/gmock_main.dir/rule
.PHONY : gmock_main
# clean rule for target.
gtest/googlemock/CMakeFiles/gmock_main.dir/clean:
$(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/clean
.PHONY : gtest/googlemock/CMakeFiles/gmock_main.dir/clean
#=============================================================================
# Target rules for target gtest/googlemock/CMakeFiles/gmock.dir
# All Build rule for target.
gtest/googlemock/CMakeFiles/gmock.dir/all: gtest/googletest/CMakeFiles/gtest.dir/all
$(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/depend
$(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num=1,2 "Built target gmock"
.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/all
# Build rule for subdir invocation for target.
gtest/googlemock/CMakeFiles/gmock.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 4
$(MAKE) -f CMakeFiles/Makefile2 gtest/googlemock/CMakeFiles/gmock.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/rule
# Convenience name for target.
gmock: gtest/googlemock/CMakeFiles/gmock.dir/rule
.PHONY : gmock
# clean rule for target.
gtest/googlemock/CMakeFiles/gmock.dir/clean:
$(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/clean
.PHONY : gtest/googlemock/CMakeFiles/gmock.dir/clean
#=============================================================================
# Target rules for target gtest/googletest/CMakeFiles/gtest_main.dir
# All Build rule for target.
gtest/googletest/CMakeFiles/gtest_main.dir/all: gtest/googletest/CMakeFiles/gtest.dir/all
$(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/depend
$(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num=7,8 "Built target gtest_main"
.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/all
# Build rule for subdir invocation for target.
gtest/googletest/CMakeFiles/gtest_main.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 4
$(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/CMakeFiles/gtest_main.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/rule
# Convenience name for target.
gtest_main: gtest/googletest/CMakeFiles/gtest_main.dir/rule
.PHONY : gtest_main
# clean rule for target.
gtest/googletest/CMakeFiles/gtest_main.dir/clean:
$(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/clean
.PHONY : gtest/googletest/CMakeFiles/gtest_main.dir/clean
#=============================================================================
# Target rules for target gtest/googletest/CMakeFiles/gtest.dir
# All Build rule for target.
gtest/googletest/CMakeFiles/gtest.dir/all:
$(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/depend
$(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles --progress-num=5,6 "Built target gtest"
.PHONY : gtest/googletest/CMakeFiles/gtest.dir/all
# Build rule for subdir invocation for target.
gtest/googletest/CMakeFiles/gtest.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 2
$(MAKE) -f CMakeFiles/Makefile2 gtest/googletest/CMakeFiles/gtest.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : gtest/googletest/CMakeFiles/gtest.dir/rule
# Convenience name for target.
gtest: gtest/googletest/CMakeFiles/gtest.dir/rule
.PHONY : gtest
# clean rule for target.
gtest/googletest/CMakeFiles/gtest.dir/clean:
$(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/clean
.PHONY : gtest/googletest/CMakeFiles/gtest.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

@ -1,38 +0,0 @@
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/install/strip.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/install/local.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/install.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/list_install_components.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/rebuild_cache.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/edit_cache.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/test.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/_catkin_empty_exported_target.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/doxygen.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/run_tests.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/clean_test_results.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/tests.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/download_extra_data.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/CMakeFiles/install/strip.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/CMakeFiles/install/local.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/CMakeFiles/install.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/CMakeFiles/list_install_components.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/CMakeFiles/rebuild_cache.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/CMakeFiles/edit_cache.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/CMakeFiles/test.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/install/strip.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/install/local.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/install.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/list_install_components.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/rebuild_cache.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/edit_cache.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/test.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/gmock_main.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googlemock/CMakeFiles/gmock.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/install/strip.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/install/local.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/install.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/list_install_components.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/rebuild_cache.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/edit_cache.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/test.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/gtest_main.dir
/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/gtest/googletest/CMakeFiles/gtest.dir

@ -1,11 +0,0 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

@ -1,72 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# 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 remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# Utility rule file for _catkin_empty_exported_target.
# Include the progress variables for this target.
include CMakeFiles/_catkin_empty_exported_target.dir/progress.make
_catkin_empty_exported_target: CMakeFiles/_catkin_empty_exported_target.dir/build.make
.PHONY : _catkin_empty_exported_target
# Rule to build all files generated by this target.
CMakeFiles/_catkin_empty_exported_target.dir/build: _catkin_empty_exported_target
.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/build
CMakeFiles/_catkin_empty_exported_target.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/_catkin_empty_exported_target.dir/cmake_clean.cmake
.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/clean
CMakeFiles/_catkin_empty_exported_target.dir/depend:
cd /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/_catkin_empty_exported_target.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/_catkin_empty_exported_target.dir/depend

@ -1,5 +0,0 @@
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/_catkin_empty_exported_target.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

@ -1,11 +0,0 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

@ -1,76 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# 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 remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# Utility rule file for clean_test_results.
# Include the progress variables for this target.
include CMakeFiles/clean_test_results.dir/progress.make
CMakeFiles/clean_test_results:
/usr/bin/python3 /opt/ros/noetic/share/catkin/cmake/test/remove_test_results.py /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/test_results
clean_test_results: CMakeFiles/clean_test_results
clean_test_results: CMakeFiles/clean_test_results.dir/build.make
.PHONY : clean_test_results
# Rule to build all files generated by this target.
CMakeFiles/clean_test_results.dir/build: clean_test_results
.PHONY : CMakeFiles/clean_test_results.dir/build
CMakeFiles/clean_test_results.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/clean_test_results.dir/cmake_clean.cmake
.PHONY : CMakeFiles/clean_test_results.dir/clean
CMakeFiles/clean_test_results.dir/depend:
cd /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/clean_test_results.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/clean_test_results.dir/depend

@ -1,8 +0,0 @@
file(REMOVE_RECURSE
"CMakeFiles/clean_test_results"
)
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/clean_test_results.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

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

@ -1,11 +0,0 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

@ -1,72 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# 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 remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# Utility rule file for download_extra_data.
# Include the progress variables for this target.
include CMakeFiles/download_extra_data.dir/progress.make
download_extra_data: CMakeFiles/download_extra_data.dir/build.make
.PHONY : download_extra_data
# Rule to build all files generated by this target.
CMakeFiles/download_extra_data.dir/build: download_extra_data
.PHONY : CMakeFiles/download_extra_data.dir/build
CMakeFiles/download_extra_data.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/download_extra_data.dir/cmake_clean.cmake
.PHONY : CMakeFiles/download_extra_data.dir/clean
CMakeFiles/download_extra_data.dir/depend:
cd /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/download_extra_data.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/download_extra_data.dir/depend

@ -1,5 +0,0 @@
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/download_extra_data.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

@ -1,11 +0,0 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

@ -1,72 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# 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 remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# Utility rule file for doxygen.
# Include the progress variables for this target.
include CMakeFiles/doxygen.dir/progress.make
doxygen: CMakeFiles/doxygen.dir/build.make
.PHONY : doxygen
# Rule to build all files generated by this target.
CMakeFiles/doxygen.dir/build: doxygen
.PHONY : CMakeFiles/doxygen.dir/build
CMakeFiles/doxygen.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/doxygen.dir/cmake_clean.cmake
.PHONY : CMakeFiles/doxygen.dir/clean
CMakeFiles/doxygen.dir/depend:
cd /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/doxygen.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/doxygen.dir/depend

@ -1,5 +0,0 @@
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/doxygen.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

@ -1,11 +0,0 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

@ -1,72 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# 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 remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# Utility rule file for run_tests.
# Include the progress variables for this target.
include CMakeFiles/run_tests.dir/progress.make
run_tests: CMakeFiles/run_tests.dir/build.make
.PHONY : run_tests
# Rule to build all files generated by this target.
CMakeFiles/run_tests.dir/build: run_tests
.PHONY : CMakeFiles/run_tests.dir/build
CMakeFiles/run_tests.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/run_tests.dir/cmake_clean.cmake
.PHONY : CMakeFiles/run_tests.dir/clean
CMakeFiles/run_tests.dir/depend:
cd /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/run_tests.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/run_tests.dir/depend

@ -1,5 +0,0 @@
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/run_tests.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

@ -1,11 +0,0 @@
# The set of languages for which implicit dependencies are needed:
set(CMAKE_DEPENDS_LANGUAGES
)
# The set of files for implicit dependencies of each language:
# Targets to which this target links.
set(CMAKE_TARGET_LINKED_INFO_FILES
)
# Fortran module output directory.
set(CMAKE_Fortran_TARGET_MODULE_DIR "")

@ -1,72 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# Delete rule output on recipe failure.
.DELETE_ON_ERROR:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.
.SUFFIXES:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# 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 remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# Utility rule file for tests.
# Include the progress variables for this target.
include CMakeFiles/tests.dir/progress.make
tests: CMakeFiles/tests.dir/build.make
.PHONY : tests
# Rule to build all files generated by this target.
CMakeFiles/tests.dir/build: tests
.PHONY : CMakeFiles/tests.dir/build
CMakeFiles/tests.dir/clean:
$(CMAKE_COMMAND) -P CMakeFiles/tests.dir/cmake_clean.cmake
.PHONY : CMakeFiles/tests.dir/clean
CMakeFiles/tests.dir/depend:
cd /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/tests.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : CMakeFiles/tests.dir/depend

@ -1,5 +0,0 @@
# Per-language clean rules from dependency scanning.
foreach(lang )
include(CMakeFiles/tests.dir/cmake_clean_${lang}.cmake OPTIONAL)
endforeach()

@ -1,26 +0,0 @@
cmake_minimum_required(VERSION 3.10)
project(catkin_tools_prebuild)
find_package(catkin QUIET)
if(catkin_FOUND)
catkin_package()
else()
# Generate an error here which is more helpful than the normal one generated by CMake.
# TODO: It's possible that we could just do this silently, instead.
message(FATAL_ERROR
"The catkin CMake module was not found, but it is required to build a linked workspace. To resolve this, please do one of the following, and try building again.
1. Source the setup.sh file from an existing catkin workspace:
source SETUP_FILE
2. Extend another catkin workspace's result (install or devel) space:
catkin config --extend RESULT_SPACE
3. Set `catkin_DIR` to the directory containing `catkin-config.cmake`:
catkin config --cmake-args -Dcatkin_DIR=CATKIN_CMAKE_CONFIG_PATH
4. Add the catkin source package to your workspace's source space:
cd SOURCE_SPACE && git clone https://github.com/ros/catkin.git")
endif()

@ -1,105 +0,0 @@
# This file is configured by CMake automatically as DartConfiguration.tcl
# If you choose not to use CMake, this file may be hand configured, by
# filling in the required variables.
# Configuration directories and files
SourceDirectory: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
BuildDirectory: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# Where to place the cost data store
CostDataFile:
# Site is something like machine.domain, i.e. pragmatic.crd
Site: mc
# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
BuildName:
# Subprojects
LabelsForSubprojects:
# Submission information
SubmitURL:
# Dashboard start time
NightlyStartTime:
# Commands for the build/test/submit cycle
ConfigureCommand: "/usr/bin/cmake" "/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild"
MakeCommand:
DefaultCTestConfigurationType:
# version control
UpdateVersionOnly:
# CVS options
# Default is "-d -P -A"
CVSCommand:
CVSUpdateOptions:
# Subversion options
SVNCommand:
SVNOptions:
SVNUpdateOptions:
# Git options
GITCommand:
GITInitSubmodules:
GITUpdateOptions:
GITUpdateCustom:
# Perforce options
P4Command:
P4Client:
P4Options:
P4UpdateOptions:
P4UpdateCustom:
# Generic update command
UpdateCommand:
UpdateOptions:
UpdateType:
# Compiler info
Compiler: /usr/bin/c++
CompilerVersion: 9.4.0
# Dynamic analysis (MemCheck)
PurifyCommand:
ValgrindCommand:
ValgrindCommandOptions:
MemoryCheckType:
MemoryCheckSanitizerOptions:
MemoryCheckCommand:
MemoryCheckCommandOptions:
MemoryCheckSuppressionFile:
# Coverage
CoverageCommand:
CoverageExtraFlags:
# Cluster commands
SlurmBatchCommand:
SlurmRunCommand:
# Testing options
# TimeOut is the amount of time in seconds to wait for processes
# to complete during testing. After TimeOut seconds, the
# process will be summarily terminated.
# Currently set to 25 minutes
TimeOut:
# During parallel testing CTest will not start a new test if doing
# so would cause the system load to exceed this value.
TestLoad:
UseLaunchers:
CurlOptions:
# warning, if you add new options here that have to do with submit,
# you have to update cmCTestSubmitCommand.cxx
# For CTest submissions that timeout, these options
# specify behavior for retrying the submission
CTestSubmitRetryDelay:
CTestSubmitRetryCount:

@ -1,2 +0,0 @@
set(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 0)
set(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 0)

@ -1,7 +0,0 @@
# CMake generated Testfile for
# Source directory: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# Build directory: /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
#
# This file includes the relevant testing commands required for
# testing this directory and lists subdirectories to be tested as well.
subdirs("gtest")

@ -1,336 +0,0 @@
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.16
# 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:
# Remove some rules from gmake that .SUFFIXES does not remove.
SUFFIXES =
.SUFFIXES: .hpux_make_needs_suffix_list
# 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 remove -f
# Escaping for special characters.
EQUALS = =
# The top-level source directory on which CMake was run.
CMAKE_SOURCE_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
# The top-level build directory on which CMake was run.
CMAKE_BINARY_DIR = /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild
#=============================================================================
# Targets provided globally by CMake.
# Special rule for the target install/strip
install/strip: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip
# Special rule for the target install/strip
install/strip/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
.PHONY : install/strip/fast
# Special rule for the target install/local
install/local: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local
# Special rule for the target install/local
install/local/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
.PHONY : install/local/fast
# Special rule for the target install
install: preinstall
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install
# Special rule for the target install
install/fast: preinstall/fast
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
/usr/bin/cmake -P cmake_install.cmake
.PHONY : install/fast
# Special rule for the target list_install_components
list_install_components:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
.PHONY : list_install_components
# Special rule for the target list_install_components
list_install_components/fast: list_install_components
.PHONY : list_install_components/fast
# Special rule for the target rebuild_cache
rebuild_cache:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
/usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
.PHONY : rebuild_cache
# Special rule for the target rebuild_cache
rebuild_cache/fast: rebuild_cache
.PHONY : rebuild_cache/fast
# Special rule for the target 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 test
test:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..."
/usr/bin/ctest --force-new-ctest-process $(ARGS)
.PHONY : test
# Special rule for the target test
test/fast: test
.PHONY : test/fast
# The main all target
all: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles/progress.marks
$(MAKE) -f CMakeFiles/Makefile2 all
$(CMAKE_COMMAND) -E cmake_progress_start /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
$(MAKE) -f CMakeFiles/Makefile2 clean
.PHONY : clean
# The main clean target
clean/fast: clean
.PHONY : clean/fast
# Prepare targets for installation.
preinstall: all
$(MAKE) -f CMakeFiles/Makefile2 preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
$(MAKE) -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 _catkin_empty_exported_target
# Build rule for target.
_catkin_empty_exported_target: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 _catkin_empty_exported_target
.PHONY : _catkin_empty_exported_target
# fast build rule for target.
_catkin_empty_exported_target/fast:
$(MAKE) -f CMakeFiles/_catkin_empty_exported_target.dir/build.make CMakeFiles/_catkin_empty_exported_target.dir/build
.PHONY : _catkin_empty_exported_target/fast
#=============================================================================
# Target rules for targets named doxygen
# Build rule for target.
doxygen: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 doxygen
.PHONY : doxygen
# fast build rule for target.
doxygen/fast:
$(MAKE) -f CMakeFiles/doxygen.dir/build.make CMakeFiles/doxygen.dir/build
.PHONY : doxygen/fast
#=============================================================================
# Target rules for targets named run_tests
# Build rule for target.
run_tests: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 run_tests
.PHONY : run_tests
# fast build rule for target.
run_tests/fast:
$(MAKE) -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/build
.PHONY : run_tests/fast
#=============================================================================
# Target rules for targets named clean_test_results
# Build rule for target.
clean_test_results: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 clean_test_results
.PHONY : clean_test_results
# fast build rule for target.
clean_test_results/fast:
$(MAKE) -f CMakeFiles/clean_test_results.dir/build.make CMakeFiles/clean_test_results.dir/build
.PHONY : clean_test_results/fast
#=============================================================================
# Target rules for targets named tests
# Build rule for target.
tests: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 tests
.PHONY : tests
# fast build rule for target.
tests/fast:
$(MAKE) -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/build
.PHONY : tests/fast
#=============================================================================
# Target rules for targets named download_extra_data
# Build rule for target.
download_extra_data: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 download_extra_data
.PHONY : download_extra_data
# fast build rule for target.
download_extra_data/fast:
$(MAKE) -f CMakeFiles/download_extra_data.dir/build.make CMakeFiles/download_extra_data.dir/build
.PHONY : download_extra_data/fast
#=============================================================================
# Target rules for targets named gmock_main
# Build rule for target.
gmock_main: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 gmock_main
.PHONY : gmock_main
# fast build rule for target.
gmock_main/fast:
$(MAKE) -f gtest/googlemock/CMakeFiles/gmock_main.dir/build.make gtest/googlemock/CMakeFiles/gmock_main.dir/build
.PHONY : gmock_main/fast
#=============================================================================
# Target rules for targets named gmock
# Build rule for target.
gmock: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 gmock
.PHONY : gmock
# fast build rule for target.
gmock/fast:
$(MAKE) -f gtest/googlemock/CMakeFiles/gmock.dir/build.make gtest/googlemock/CMakeFiles/gmock.dir/build
.PHONY : gmock/fast
#=============================================================================
# Target rules for targets named gtest_main
# Build rule for target.
gtest_main: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 gtest_main
.PHONY : gtest_main
# fast build rule for target.
gtest_main/fast:
$(MAKE) -f gtest/googletest/CMakeFiles/gtest_main.dir/build.make gtest/googletest/CMakeFiles/gtest_main.dir/build
.PHONY : gtest_main/fast
#=============================================================================
# Target rules for targets named gtest
# Build rule for target.
gtest: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 gtest
.PHONY : gtest
# fast build rule for target.
gtest/fast:
$(MAKE) -f gtest/googletest/CMakeFiles/gtest.dir/build.make gtest/googletest/CMakeFiles/gtest.dir/build
.PHONY : gtest/fast
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@echo "... all (the default if no target is provided)"
@echo "... clean"
@echo "... depend"
@echo "... install/strip"
@echo "... install/local"
@echo "... install"
@echo "... list_install_components"
@echo "... rebuild_cache"
@echo "... edit_cache"
@echo "... test"
@echo "... _catkin_empty_exported_target"
@echo "... doxygen"
@echo "... run_tests"
@echo "... clean_test_results"
@echo "... tests"
@echo "... download_extra_data"
@echo "... gmock_main"
@echo "... gmock"
@echo "... gtest_main"
@echo "... gtest"
.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

@ -1,2 +0,0 @@
- setup-file:
local-name: /home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild/setup.sh

@ -1,304 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Software License Agreement (BSD License)
#
# Copyright (c) 2012, Willow Garage, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Willow Garage, Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
"""This file generates shell code for the setup.SHELL scripts to set environment variables."""
from __future__ import print_function
import argparse
import copy
import errno
import os
import platform
import sys
CATKIN_MARKER_FILE = '.catkin'
system = platform.system()
IS_DARWIN = (system == 'Darwin')
IS_WINDOWS = (system == 'Windows')
PATH_TO_ADD_SUFFIX = ['bin']
if IS_WINDOWS:
# while catkin recommends putting dll's into bin, 3rd party packages often put dll's into lib
# since Windows finds dll's via the PATH variable, prepend it with path to lib
PATH_TO_ADD_SUFFIX.extend([['lib', os.path.join('lib', 'x86_64-linux-gnu')]])
# subfolder of workspace prepended to CMAKE_PREFIX_PATH
ENV_VAR_SUBFOLDERS = {
'CMAKE_PREFIX_PATH': '',
'LD_LIBRARY_PATH' if not IS_DARWIN else 'DYLD_LIBRARY_PATH': ['lib', os.path.join('lib', 'x86_64-linux-gnu')],
'PATH': PATH_TO_ADD_SUFFIX,
'PKG_CONFIG_PATH': [os.path.join('lib', 'pkgconfig'), os.path.join('lib', 'x86_64-linux-gnu', 'pkgconfig')],
'PYTHONPATH': 'lib/python3/dist-packages',
}
def rollback_env_variables(environ, env_var_subfolders):
"""
Generate shell code to reset environment variables.
by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH.
This does not cover modifications performed by environment hooks.
"""
lines = []
unmodified_environ = copy.copy(environ)
for key in sorted(env_var_subfolders.keys()):
subfolders = env_var_subfolders[key]
if not isinstance(subfolders, list):
subfolders = [subfolders]
value = _rollback_env_variable(unmodified_environ, key, subfolders)
if value is not None:
environ[key] = value
lines.append(assignment(key, value))
if lines:
lines.insert(0, comment('reset environment variables by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH'))
return lines
def _rollback_env_variable(environ, name, subfolders):
"""
For each catkin workspace in CMAKE_PREFIX_PATH remove the first entry from env[NAME] matching workspace + subfolder.
:param subfolders: list of str '' or subfoldername that may start with '/'
:returns: the updated value of the environment variable.
"""
value = environ[name] if name in environ else ''
env_paths = [path for path in value.split(os.pathsep) if path]
value_modified = False
for subfolder in subfolders:
if subfolder:
if subfolder.startswith(os.path.sep) or (os.path.altsep and subfolder.startswith(os.path.altsep)):
subfolder = subfolder[1:]
if subfolder.endswith(os.path.sep) or (os.path.altsep and subfolder.endswith(os.path.altsep)):
subfolder = subfolder[:-1]
for ws_path in _get_workspaces(environ, include_fuerte=True, include_non_existing=True):
path_to_find = os.path.join(ws_path, subfolder) if subfolder else ws_path
path_to_remove = None
for env_path in env_paths:
env_path_clean = env_path[:-1] if env_path and env_path[-1] in [os.path.sep, os.path.altsep] else env_path
if env_path_clean == path_to_find:
path_to_remove = env_path
break
if path_to_remove:
env_paths.remove(path_to_remove)
value_modified = True
new_value = os.pathsep.join(env_paths)
return new_value if value_modified else None
def _get_workspaces(environ, include_fuerte=False, include_non_existing=False):
"""
Based on CMAKE_PREFIX_PATH return all catkin workspaces.
:param include_fuerte: The flag if paths starting with '/opt/ros/fuerte' should be considered workspaces, ``bool``
"""
# get all cmake prefix paths
env_name = 'CMAKE_PREFIX_PATH'
value = environ[env_name] if env_name in environ else ''
paths = [path for path in value.split(os.pathsep) if path]
# remove non-workspace paths
workspaces = [path for path in paths if os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE)) or (include_fuerte and path.startswith('/opt/ros/fuerte')) or (include_non_existing and not os.path.exists(path))]
return workspaces
def prepend_env_variables(environ, env_var_subfolders, workspaces):
"""Generate shell code to prepend environment variables for the all workspaces."""
lines = []
lines.append(comment('prepend folders of workspaces to environment variables'))
paths = [path for path in workspaces.split(os.pathsep) if path]
prefix = _prefix_env_variable(environ, 'CMAKE_PREFIX_PATH', paths, '')
lines.append(prepend(environ, 'CMAKE_PREFIX_PATH', prefix))
for key in sorted(key for key in env_var_subfolders.keys() if key != 'CMAKE_PREFIX_PATH'):
subfolder = env_var_subfolders[key]
prefix = _prefix_env_variable(environ, key, paths, subfolder)
lines.append(prepend(environ, key, prefix))
return lines
def _prefix_env_variable(environ, name, paths, subfolders):
"""
Return the prefix to prepend to the environment variable NAME.
Adding any path in NEW_PATHS_STR without creating duplicate or empty items.
"""
value = environ[name] if name in environ else ''
environ_paths = [path for path in value.split(os.pathsep) if path]
checked_paths = []
for path in paths:
if not isinstance(subfolders, list):
subfolders = [subfolders]
for subfolder in subfolders:
path_tmp = path
if subfolder:
path_tmp = os.path.join(path_tmp, subfolder)
# skip nonexistent paths
if not os.path.exists(path_tmp):
continue
# exclude any path already in env and any path we already added
if path_tmp not in environ_paths and path_tmp not in checked_paths:
checked_paths.append(path_tmp)
prefix_str = os.pathsep.join(checked_paths)
if prefix_str != '' and environ_paths:
prefix_str += os.pathsep
return prefix_str
def assignment(key, value):
if not IS_WINDOWS:
return 'export %s="%s"' % (key, value)
else:
return 'set %s=%s' % (key, value)
def comment(msg):
if not IS_WINDOWS:
return '# %s' % msg
else:
return 'REM %s' % msg
def prepend(environ, key, prefix):
if key not in environ or not environ[key]:
return assignment(key, prefix)
if not IS_WINDOWS:
return 'export %s="%s$%s"' % (key, prefix, key)
else:
return 'set %s=%s%%%s%%' % (key, prefix, key)
def find_env_hooks(environ, cmake_prefix_path):
"""Generate shell code with found environment hooks for the all workspaces."""
lines = []
lines.append(comment('found environment hooks in workspaces'))
generic_env_hooks = []
generic_env_hooks_workspace = []
specific_env_hooks = []
specific_env_hooks_workspace = []
generic_env_hooks_by_filename = {}
specific_env_hooks_by_filename = {}
generic_env_hook_ext = 'bat' if IS_WINDOWS else 'sh'
specific_env_hook_ext = environ['CATKIN_SHELL'] if not IS_WINDOWS and 'CATKIN_SHELL' in environ and environ['CATKIN_SHELL'] else None
# remove non-workspace paths
workspaces = [path for path in cmake_prefix_path.split(os.pathsep) if path and os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE))]
for workspace in reversed(workspaces):
env_hook_dir = os.path.join(workspace, 'etc', 'catkin', 'profile.d')
if os.path.isdir(env_hook_dir):
for filename in sorted(os.listdir(env_hook_dir)):
if filename.endswith('.%s' % generic_env_hook_ext):
# remove previous env hook with same name if present
if filename in generic_env_hooks_by_filename:
i = generic_env_hooks.index(generic_env_hooks_by_filename[filename])
generic_env_hooks.pop(i)
generic_env_hooks_workspace.pop(i)
# append env hook
generic_env_hooks.append(os.path.join(env_hook_dir, filename))
generic_env_hooks_workspace.append(workspace)
generic_env_hooks_by_filename[filename] = generic_env_hooks[-1]
elif specific_env_hook_ext is not None and filename.endswith('.%s' % specific_env_hook_ext):
# remove previous env hook with same name if present
if filename in specific_env_hooks_by_filename:
i = specific_env_hooks.index(specific_env_hooks_by_filename[filename])
specific_env_hooks.pop(i)
specific_env_hooks_workspace.pop(i)
# append env hook
specific_env_hooks.append(os.path.join(env_hook_dir, filename))
specific_env_hooks_workspace.append(workspace)
specific_env_hooks_by_filename[filename] = specific_env_hooks[-1]
env_hooks = generic_env_hooks + specific_env_hooks
env_hooks_workspace = generic_env_hooks_workspace + specific_env_hooks_workspace
count = len(env_hooks)
lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_COUNT', count))
for i in range(count):
lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d' % i, env_hooks[i]))
lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d_WORKSPACE' % i, env_hooks_workspace[i]))
return lines
def _parse_arguments(args=None):
parser = argparse.ArgumentParser(description='Generates code blocks for the setup.SHELL script.')
parser.add_argument('--extend', action='store_true', help='Skip unsetting previous environment variables to extend context')
parser.add_argument('--local', action='store_true', help='Only consider this prefix path and ignore other prefix path in the environment')
return parser.parse_known_args(args=args)[0]
if __name__ == '__main__':
try:
try:
args = _parse_arguments()
except Exception as e:
print(e, file=sys.stderr)
sys.exit(1)
if not args.local:
# environment at generation time
CMAKE_PREFIX_PATH = r'/opt/ros/noetic'.split(';')
else:
# don't consider any other prefix path than this one
CMAKE_PREFIX_PATH = []
# prepend current workspace if not already part of CPP
base_path = os.path.dirname(__file__)
# CMAKE_PREFIX_PATH uses forward slash on all platforms, but __file__ is platform dependent
# base_path on Windows contains backward slashes, need to be converted to forward slashes before comparison
if os.path.sep != '/':
base_path = base_path.replace(os.path.sep, '/')
if base_path not in CMAKE_PREFIX_PATH:
CMAKE_PREFIX_PATH.insert(0, base_path)
CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
environ = dict(os.environ)
lines = []
if not args.extend:
lines += rollback_env_variables(environ, ENV_VAR_SUBFOLDERS)
lines += prepend_env_variables(environ, ENV_VAR_SUBFOLDERS, CMAKE_PREFIX_PATH)
lines += find_env_hooks(environ, CMAKE_PREFIX_PATH)
print('\n'.join(lines))
# need to explicitly flush the output
sys.stdout.flush()
except IOError as e:
# and catch potential "broken pipe" if stdout is not writable
# which can happen when piping the output to a file but the disk is full
if e.errno == errno.EPIPE:
print(e, file=sys.stderr)
sys.exit(2)
raise
sys.exit(0)

@ -1,16 +0,0 @@
#!/usr/bin/env sh
# generated from catkin/cmake/templates/env.sh.in
if [ $# -eq 0 ] ; then
/bin/echo "Usage: env.sh COMMANDS"
/bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
exit 1
fi
# ensure to not use different shell type which was set before
CATKIN_SHELL=sh
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(cd "`dirname "$0"`" > /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup.sh"
exec "$@"

@ -1,8 +0,0 @@
#!/usr/bin/env bash
# generated from catkin/cmake/templates/local_setup.bash.in
CATKIN_SHELL=bash
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup.sh" --extend --local

@ -1,14 +0,0 @@
#!/usr/bin/env fish
# generated from catkin/cmake/template/local_setup.fish.in
# since this file is sourced either use the provided _CATKIN_SETUP_DIR
# or fall back to the destination set at configure time
if test -z $_CATKIN_SETUP_DIR
set _CATKIN_SETUP_DIR /home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild
end
set CATKIN_SETUP_UTIL_ARGS "--extend --local"
source "$_CATKIN_SETUP_DIR/setup.fish"
set -e CATKIN_SETUP_UTIL_ARGS

@ -1,9 +0,0 @@
#!/usr/bin/env sh
# generated from catkin/cmake/template/local_setup.sh.in
# since this file is sourced either use the provided _CATKIN_SETUP_DIR
# or fall back to the destination set at configure time
: ${_CATKIN_SETUP_DIR:=/home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild}
CATKIN_SETUP_UTIL_ARGS="--extend --local"
. "$_CATKIN_SETUP_DIR/setup.sh"
unset CATKIN_SETUP_UTIL_ARGS

@ -1,8 +0,0 @@
#!/usr/bin/env zsh
# generated from catkin/cmake/templates/local_setup.zsh.in
CATKIN_SHELL=zsh
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh" --extend --local'

@ -1,8 +0,0 @@
#!/usr/bin/env bash
# generated from catkin/cmake/templates/setup.bash.in
CATKIN_SHELL=bash
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup.sh"

@ -1,129 +0,0 @@
#!/usr/bin/env fish
# generated from catkin/cmake/template/setup.fish.in
# Sets various environment variables and sources additional environment hooks.
# It tries it's best to undo changes from a previously sourced setup file before.
# Supported command line options:
# --extend: skips the undoing of changes from a previously sourced setup file
# --local: only considers this workspace but not the chained ones
# In plain sh shell which doesn't support arguments for sourced scripts you can
# set the environment variable `CATKIN_SETUP_UTIL_ARGS=--extend/--local` instead.
# since this file is sourced either use the provided _CATKIN_SETUP_DIR
# or fall back to the destination set at configure time
if not type -q bass
echo "Missing required fish plugin: bass. See https://github.com/edc/bass"
exit 22
end
if test -z $_CATKIN_SETUP_DIR
set _CATKIN_SETUP_DIR /home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild
end
set _SETUP_UTIL "$_CATKIN_SETUP_DIR/_setup_util.py"
set -e _CATKIN_SETUP_DIR
if not test -f "$_SETUP_UTIL"
echo "Missing Python script: $_SETUP_UTIL"
exit 22
end
# detect if running on Darwin platform
set _UNAME (uname -s)
set _IS_DARWIN 0
if test "$_UNAME" = Darwin
set _IS_DARWIN 1
end
set -e _UNAME
# make sure to export all environment variables
set -x CMAKE_PREFIX_PATH $CMAKE_PREFIX_PATH
if test $_IS_DARWIN -eq 0
set -x LD_LIBRARY_PATH $LD_LIBRARY_PATH
else
set -x DYLD_LIBRARY_PATH $DYLD_LIBRARY_PATH
end
set -e _IS_DARWIN
set -x PATH $PATH
set -x PKG_CONFIG_PATH $PKG_CONFIG_PATH
set -x PYTHONPATH $PYTHONPATH
# remember type of shell if not already set
if test -z "$CATKIN_SHELL"
set CATKIN_SHELL fish
end
# invoke Python script to generate necessary exports of environment variables
# use TMPDIR if it exists, otherwise fall back to /tmp
if test -d "$TMPDIR"
set _TMPDIR "$TMPDIR"
else
set _TMPDIR /tmp
end
set _SETUP_TMP (mktemp "$_TMPDIR/setup.fish.XXXXXXXXXX")
set -e _TMPDIR
if test $status -ne 0 -o ! -f "$_SETUP_TMP"
echo "Could not create temporary file: $_SETUP_TMP"
exit 1
end
CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" "$argv" "$CATKIN_SETUP_UTIL_ARGS" >> "$_SETUP_TMP"
set _RC $status
if test $_RC -ne 0
if test $_RC -eq 2
then
echo "Could not write the output of '$_SETUP_UTIL' to temporary file '$_SETUP_TMP': maybe the disk is full?"
else
echo "Failed to run '\"$_SETUP_UTIL\" $argv': return code $_RC"
end
set -e _RC
set -e _SETUP_UTIL
rm -f "$_SETUP_TMP"
set -e _SETUP_TMP
exit 1
end
set -e _RC
set -e _SETUP_UTIL
source "$_SETUP_TMP"
rm -f "$_SETUP_TMP"
set -e _SETUP_TMP
# source all environment hooks
set _i 0
while test $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT
# fish doesn't allow use of ${} to delimit variables within a string
set _i_WORKSPACE (string join "" "$i" "_WORKSPACE")
eval set _envfile \$_CATKIN_ENVIRONMENT_HOOKS_$_i
set -e _CATKIN_ENVIRONMENT_HOOKS_$_i
eval set _envfile_workspace \$_CATKIN_ENVIRONMENT_HOOKS_$_i_WORKSPACE
set -e _CATKIN_ENVIRONMENT_HOOKS_$_i_WORKSPACE
# set workspace for environment hook
set CATKIN_ENV_HOOK_WORKSPACE $_envfile_workspace
# non ideal: some packages register bash scripts as fish env hooks
# it is needed to perform an extension check for backwards compatibility
# if the script ends with .sh, .bash or .zsh, run it with bass
set IS_SH_SCRIPT (string match -r '\.(sh|bash|zsh)$' "$_envfile")
if test -n "$IS_SH_SCRIPT"
bass source "$_envfile"
else
source "$_envfile"
end
set -e IS_SH_SCRIPT
set -e CATKIN_ENV_HOOK_WORKSPACE
set _i (math $_i + 1)
end
set -e _i
set -e _CATKIN_ENVIRONMENT_HOOKS_COUNT

@ -1,96 +0,0 @@
#!/usr/bin/env sh
# generated from catkin/cmake/template/setup.sh.in
# Sets various environment variables and sources additional environment hooks.
# It tries it's best to undo changes from a previously sourced setup file before.
# Supported command line options:
# --extend: skips the undoing of changes from a previously sourced setup file
# --local: only considers this workspace but not the chained ones
# In plain sh shell which doesn't support arguments for sourced scripts you can
# set the environment variable `CATKIN_SETUP_UTIL_ARGS=--extend/--local` instead.
# since this file is sourced either use the provided _CATKIN_SETUP_DIR
# or fall back to the destination set at configure time
: ${_CATKIN_SETUP_DIR:=/home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild}
_SETUP_UTIL="$_CATKIN_SETUP_DIR/_setup_util.py"
unset _CATKIN_SETUP_DIR
if [ ! -f "$_SETUP_UTIL" ]; then
echo "Missing Python script: $_SETUP_UTIL"
return 22
fi
# detect if running on Darwin platform
_UNAME=`uname -s`
_IS_DARWIN=0
if [ "$_UNAME" = "Darwin" ]; then
_IS_DARWIN=1
fi
unset _UNAME
# make sure to export all environment variables
export CMAKE_PREFIX_PATH
if [ $_IS_DARWIN -eq 0 ]; then
export LD_LIBRARY_PATH
else
export DYLD_LIBRARY_PATH
fi
unset _IS_DARWIN
export PATH
export PKG_CONFIG_PATH
export PYTHONPATH
# remember type of shell if not already set
if [ -z "$CATKIN_SHELL" ]; then
CATKIN_SHELL=sh
fi
# invoke Python script to generate necessary exports of environment variables
# use TMPDIR if it exists, otherwise fall back to /tmp
if [ -d "${TMPDIR:-}" ]; then
_TMPDIR="${TMPDIR}"
else
_TMPDIR=/tmp
fi
_SETUP_TMP=`mktemp "${_TMPDIR}/setup.sh.XXXXXXXXXX"`
unset _TMPDIR
if [ $? -ne 0 -o ! -f "$_SETUP_TMP" ]; then
echo "Could not create temporary file: $_SETUP_TMP"
return 1
fi
CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" $@ ${CATKIN_SETUP_UTIL_ARGS:-} >> "$_SETUP_TMP"
_RC=$?
if [ $_RC -ne 0 ]; then
if [ $_RC -eq 2 ]; then
echo "Could not write the output of '$_SETUP_UTIL' to temporary file '$_SETUP_TMP': maybe the disk is full?"
else
echo "Failed to run '\"$_SETUP_UTIL\" $@': return code $_RC"
fi
unset _RC
unset _SETUP_UTIL
rm -f "$_SETUP_TMP"
unset _SETUP_TMP
return 1
fi
unset _RC
unset _SETUP_UTIL
. "$_SETUP_TMP"
rm -f "$_SETUP_TMP"
unset _SETUP_TMP
# source all environment hooks
_i=0
while [ $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT ]; do
eval _envfile=\$_CATKIN_ENVIRONMENT_HOOKS_$_i
unset _CATKIN_ENVIRONMENT_HOOKS_$_i
eval _envfile_workspace=\$_CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
unset _CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
# set workspace for environment hook
CATKIN_ENV_HOOK_WORKSPACE=$_envfile_workspace
. "$_envfile"
unset CATKIN_ENV_HOOK_WORKSPACE
_i=$((_i + 1))
done
unset _i
unset _CATKIN_ENVIRONMENT_HOOKS_COUNT

@ -1,8 +0,0 @@
#!/usr/bin/env zsh
# generated from catkin/cmake/templates/setup.zsh.in
CATKIN_SHELL=zsh
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh"'

@ -1,24 +0,0 @@
set(_CATKIN_CURRENT_PACKAGE "catkin")
set(catkin_VERSION "0.8.12")
set(catkin_MAINTAINER "Geoffrey Biggs <geoff@openrobotics.org>, Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>")
set(catkin_PACKAGE_FORMAT "3")
set(catkin_BUILD_DEPENDS "python-argparse" "python-catkin-pkg" "python3-catkin-pkg" "python-empy" "python3-empy")
set(catkin_BUILD_DEPENDS_python-catkin-pkg_VERSION_GT "0.4.3")
set(catkin_BUILD_DEPENDS_python3-catkin-pkg_VERSION_GT "0.4.3")
set(catkin_BUILD_EXPORT_DEPENDS "google-mock" "gtest" "python-nose" "python3-nose" "python-argparse" "python-catkin-pkg" "python3-catkin-pkg" "python-empy" "python3-empy")
set(catkin_BUILD_EXPORT_DEPENDS_python-catkin-pkg_VERSION_GT "0.4.3")
set(catkin_BUILD_EXPORT_DEPENDS_python3-catkin-pkg_VERSION_GT "0.4.3")
set(catkin_BUILDTOOL_DEPENDS "cmake" "python-setuptools" "python3-setuptools")
set(catkin_BUILDTOOL_EXPORT_DEPENDS "cmake" "python3-setuptools")
set(catkin_EXEC_DEPENDS "python-argparse" "python-catkin-pkg" "python3-catkin-pkg" "python-empy" "python3-empy")
set(catkin_EXEC_DEPENDS_python-catkin-pkg_VERSION_GT "0.4.3")
set(catkin_EXEC_DEPENDS_python3-catkin-pkg_VERSION_GT "0.4.3")
set(catkin_RUN_DEPENDS "python-argparse" "python-catkin-pkg" "python3-catkin-pkg" "python-empy" "python3-empy" "google-mock" "gtest" "python-nose" "python3-nose")
set(catkin_RUN_DEPENDS_python-catkin-pkg_VERSION_GT "0.4.3")
set(catkin_RUN_DEPENDS_python3-catkin-pkg_VERSION_GT "0.4.3")
set(catkin_TEST_DEPENDS "python-mock" "python-nose" "python3-nose")
set(catkin_DOC_DEPENDS )
set(catkin_URL_WEBSITE "http://wiki.ros.org/catkin")
set(catkin_URL_BUGTRACKER "https://github.com/ros/catkin/issues")
set(catkin_URL_REPOSITORY "https://github.com/ros/catkin")
set(catkin_DEPRECATED "")

@ -1,16 +0,0 @@
#!/usr/bin/env sh
# generated from catkin/cmake/templates/env.sh.in
if [ $# -eq 0 ] ; then
/bin/echo "Usage: env.sh COMMANDS"
/bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
exit 1
fi
# ensure to not use different shell type which was set before
CATKIN_SHELL=sh
# source setup_cached.sh from same directory as this file
_CATKIN_SETUP_DIR=$(cd "`dirname "$0"`" > /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup_cached.sh"
exec "$@"

@ -1,30 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import print_function
import os
import stat
import sys
# find the import for catkin's python package - either from source space or from an installed underlay
if os.path.exists(os.path.join('/opt/ros/noetic/share/catkin/cmake', 'catkinConfig.cmake.in')):
sys.path.insert(0, os.path.join('/opt/ros/noetic/share/catkin/cmake', '..', 'python'))
try:
from catkin.environment_cache import generate_environment_script
except ImportError:
# search for catkin package in all workspaces and prepend to path
for workspace in '/opt/ros/noetic'.split(';'):
python_path = os.path.join(workspace, 'lib/python3/dist-packages')
if os.path.isdir(os.path.join(python_path, 'catkin')):
sys.path.insert(0, python_path)
break
from catkin.environment_cache import generate_environment_script
code = generate_environment_script('/home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild/env.sh')
output_filename = '/home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild/catkin_generated/setup_cached.sh'
with open(output_filename, 'w') as f:
# print('Generate script for cached setup "%s"' % output_filename)
f.write('\n'.join(code))
mode = os.stat(output_filename).st_mode
os.chmod(output_filename, mode | stat.S_IXUSR)

@ -1,2 +0,0 @@
- setup-file:
local-name: /home/mc/ZhiTu/flash_detector_ws/install/setup.sh

@ -1,304 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Software License Agreement (BSD License)
#
# Copyright (c) 2012, Willow Garage, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Willow Garage, Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
"""This file generates shell code for the setup.SHELL scripts to set environment variables."""
from __future__ import print_function
import argparse
import copy
import errno
import os
import platform
import sys
CATKIN_MARKER_FILE = '.catkin'
system = platform.system()
IS_DARWIN = (system == 'Darwin')
IS_WINDOWS = (system == 'Windows')
PATH_TO_ADD_SUFFIX = ['bin']
if IS_WINDOWS:
# while catkin recommends putting dll's into bin, 3rd party packages often put dll's into lib
# since Windows finds dll's via the PATH variable, prepend it with path to lib
PATH_TO_ADD_SUFFIX.extend([['lib', os.path.join('lib', 'x86_64-linux-gnu')]])
# subfolder of workspace prepended to CMAKE_PREFIX_PATH
ENV_VAR_SUBFOLDERS = {
'CMAKE_PREFIX_PATH': '',
'LD_LIBRARY_PATH' if not IS_DARWIN else 'DYLD_LIBRARY_PATH': ['lib', os.path.join('lib', 'x86_64-linux-gnu')],
'PATH': PATH_TO_ADD_SUFFIX,
'PKG_CONFIG_PATH': [os.path.join('lib', 'pkgconfig'), os.path.join('lib', 'x86_64-linux-gnu', 'pkgconfig')],
'PYTHONPATH': 'lib/python3/dist-packages',
}
def rollback_env_variables(environ, env_var_subfolders):
"""
Generate shell code to reset environment variables.
by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH.
This does not cover modifications performed by environment hooks.
"""
lines = []
unmodified_environ = copy.copy(environ)
for key in sorted(env_var_subfolders.keys()):
subfolders = env_var_subfolders[key]
if not isinstance(subfolders, list):
subfolders = [subfolders]
value = _rollback_env_variable(unmodified_environ, key, subfolders)
if value is not None:
environ[key] = value
lines.append(assignment(key, value))
if lines:
lines.insert(0, comment('reset environment variables by unrolling modifications based on all workspaces in CMAKE_PREFIX_PATH'))
return lines
def _rollback_env_variable(environ, name, subfolders):
"""
For each catkin workspace in CMAKE_PREFIX_PATH remove the first entry from env[NAME] matching workspace + subfolder.
:param subfolders: list of str '' or subfoldername that may start with '/'
:returns: the updated value of the environment variable.
"""
value = environ[name] if name in environ else ''
env_paths = [path for path in value.split(os.pathsep) if path]
value_modified = False
for subfolder in subfolders:
if subfolder:
if subfolder.startswith(os.path.sep) or (os.path.altsep and subfolder.startswith(os.path.altsep)):
subfolder = subfolder[1:]
if subfolder.endswith(os.path.sep) or (os.path.altsep and subfolder.endswith(os.path.altsep)):
subfolder = subfolder[:-1]
for ws_path in _get_workspaces(environ, include_fuerte=True, include_non_existing=True):
path_to_find = os.path.join(ws_path, subfolder) if subfolder else ws_path
path_to_remove = None
for env_path in env_paths:
env_path_clean = env_path[:-1] if env_path and env_path[-1] in [os.path.sep, os.path.altsep] else env_path
if env_path_clean == path_to_find:
path_to_remove = env_path
break
if path_to_remove:
env_paths.remove(path_to_remove)
value_modified = True
new_value = os.pathsep.join(env_paths)
return new_value if value_modified else None
def _get_workspaces(environ, include_fuerte=False, include_non_existing=False):
"""
Based on CMAKE_PREFIX_PATH return all catkin workspaces.
:param include_fuerte: The flag if paths starting with '/opt/ros/fuerte' should be considered workspaces, ``bool``
"""
# get all cmake prefix paths
env_name = 'CMAKE_PREFIX_PATH'
value = environ[env_name] if env_name in environ else ''
paths = [path for path in value.split(os.pathsep) if path]
# remove non-workspace paths
workspaces = [path for path in paths if os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE)) or (include_fuerte and path.startswith('/opt/ros/fuerte')) or (include_non_existing and not os.path.exists(path))]
return workspaces
def prepend_env_variables(environ, env_var_subfolders, workspaces):
"""Generate shell code to prepend environment variables for the all workspaces."""
lines = []
lines.append(comment('prepend folders of workspaces to environment variables'))
paths = [path for path in workspaces.split(os.pathsep) if path]
prefix = _prefix_env_variable(environ, 'CMAKE_PREFIX_PATH', paths, '')
lines.append(prepend(environ, 'CMAKE_PREFIX_PATH', prefix))
for key in sorted(key for key in env_var_subfolders.keys() if key != 'CMAKE_PREFIX_PATH'):
subfolder = env_var_subfolders[key]
prefix = _prefix_env_variable(environ, key, paths, subfolder)
lines.append(prepend(environ, key, prefix))
return lines
def _prefix_env_variable(environ, name, paths, subfolders):
"""
Return the prefix to prepend to the environment variable NAME.
Adding any path in NEW_PATHS_STR without creating duplicate or empty items.
"""
value = environ[name] if name in environ else ''
environ_paths = [path for path in value.split(os.pathsep) if path]
checked_paths = []
for path in paths:
if not isinstance(subfolders, list):
subfolders = [subfolders]
for subfolder in subfolders:
path_tmp = path
if subfolder:
path_tmp = os.path.join(path_tmp, subfolder)
# skip nonexistent paths
if not os.path.exists(path_tmp):
continue
# exclude any path already in env and any path we already added
if path_tmp not in environ_paths and path_tmp not in checked_paths:
checked_paths.append(path_tmp)
prefix_str = os.pathsep.join(checked_paths)
if prefix_str != '' and environ_paths:
prefix_str += os.pathsep
return prefix_str
def assignment(key, value):
if not IS_WINDOWS:
return 'export %s="%s"' % (key, value)
else:
return 'set %s=%s' % (key, value)
def comment(msg):
if not IS_WINDOWS:
return '# %s' % msg
else:
return 'REM %s' % msg
def prepend(environ, key, prefix):
if key not in environ or not environ[key]:
return assignment(key, prefix)
if not IS_WINDOWS:
return 'export %s="%s$%s"' % (key, prefix, key)
else:
return 'set %s=%s%%%s%%' % (key, prefix, key)
def find_env_hooks(environ, cmake_prefix_path):
"""Generate shell code with found environment hooks for the all workspaces."""
lines = []
lines.append(comment('found environment hooks in workspaces'))
generic_env_hooks = []
generic_env_hooks_workspace = []
specific_env_hooks = []
specific_env_hooks_workspace = []
generic_env_hooks_by_filename = {}
specific_env_hooks_by_filename = {}
generic_env_hook_ext = 'bat' if IS_WINDOWS else 'sh'
specific_env_hook_ext = environ['CATKIN_SHELL'] if not IS_WINDOWS and 'CATKIN_SHELL' in environ and environ['CATKIN_SHELL'] else None
# remove non-workspace paths
workspaces = [path for path in cmake_prefix_path.split(os.pathsep) if path and os.path.isfile(os.path.join(path, CATKIN_MARKER_FILE))]
for workspace in reversed(workspaces):
env_hook_dir = os.path.join(workspace, 'etc', 'catkin', 'profile.d')
if os.path.isdir(env_hook_dir):
for filename in sorted(os.listdir(env_hook_dir)):
if filename.endswith('.%s' % generic_env_hook_ext):
# remove previous env hook with same name if present
if filename in generic_env_hooks_by_filename:
i = generic_env_hooks.index(generic_env_hooks_by_filename[filename])
generic_env_hooks.pop(i)
generic_env_hooks_workspace.pop(i)
# append env hook
generic_env_hooks.append(os.path.join(env_hook_dir, filename))
generic_env_hooks_workspace.append(workspace)
generic_env_hooks_by_filename[filename] = generic_env_hooks[-1]
elif specific_env_hook_ext is not None and filename.endswith('.%s' % specific_env_hook_ext):
# remove previous env hook with same name if present
if filename in specific_env_hooks_by_filename:
i = specific_env_hooks.index(specific_env_hooks_by_filename[filename])
specific_env_hooks.pop(i)
specific_env_hooks_workspace.pop(i)
# append env hook
specific_env_hooks.append(os.path.join(env_hook_dir, filename))
specific_env_hooks_workspace.append(workspace)
specific_env_hooks_by_filename[filename] = specific_env_hooks[-1]
env_hooks = generic_env_hooks + specific_env_hooks
env_hooks_workspace = generic_env_hooks_workspace + specific_env_hooks_workspace
count = len(env_hooks)
lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_COUNT', count))
for i in range(count):
lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d' % i, env_hooks[i]))
lines.append(assignment('_CATKIN_ENVIRONMENT_HOOKS_%d_WORKSPACE' % i, env_hooks_workspace[i]))
return lines
def _parse_arguments(args=None):
parser = argparse.ArgumentParser(description='Generates code blocks for the setup.SHELL script.')
parser.add_argument('--extend', action='store_true', help='Skip unsetting previous environment variables to extend context')
parser.add_argument('--local', action='store_true', help='Only consider this prefix path and ignore other prefix path in the environment')
return parser.parse_known_args(args=args)[0]
if __name__ == '__main__':
try:
try:
args = _parse_arguments()
except Exception as e:
print(e, file=sys.stderr)
sys.exit(1)
if not args.local:
# environment at generation time
CMAKE_PREFIX_PATH = r'/opt/ros/noetic'.split(';')
else:
# don't consider any other prefix path than this one
CMAKE_PREFIX_PATH = []
# prepend current workspace if not already part of CPP
base_path = os.path.dirname(__file__)
# CMAKE_PREFIX_PATH uses forward slash on all platforms, but __file__ is platform dependent
# base_path on Windows contains backward slashes, need to be converted to forward slashes before comparison
if os.path.sep != '/':
base_path = base_path.replace(os.path.sep, '/')
if base_path not in CMAKE_PREFIX_PATH:
CMAKE_PREFIX_PATH.insert(0, base_path)
CMAKE_PREFIX_PATH = os.pathsep.join(CMAKE_PREFIX_PATH)
environ = dict(os.environ)
lines = []
if not args.extend:
lines += rollback_env_variables(environ, ENV_VAR_SUBFOLDERS)
lines += prepend_env_variables(environ, ENV_VAR_SUBFOLDERS, CMAKE_PREFIX_PATH)
lines += find_env_hooks(environ, CMAKE_PREFIX_PATH)
print('\n'.join(lines))
# need to explicitly flush the output
sys.stdout.flush()
except IOError as e:
# and catch potential "broken pipe" if stdout is not writable
# which can happen when piping the output to a file but the disk is full
if e.errno == errno.EPIPE:
print(e, file=sys.stderr)
sys.exit(2)
raise
sys.exit(0)

@ -1,8 +0,0 @@
prefix=/home/mc/ZhiTu/flash_detector_ws/install
Name: catkin_tools_prebuild
Description: Description of catkin_tools_prebuild
Version: 0.0.0
Cflags:
Libs: -L${prefix}/lib
Requires:

@ -1,14 +0,0 @@
# generated from catkin/cmake/template/pkgConfig-version.cmake.in
set(PACKAGE_VERSION "0.0.0")
set(PACKAGE_VERSION_EXACT False)
set(PACKAGE_VERSION_COMPATIBLE False)
if("${PACKAGE_FIND_VERSION}" VERSION_EQUAL "${PACKAGE_VERSION}")
set(PACKAGE_VERSION_EXACT True)
set(PACKAGE_VERSION_COMPATIBLE True)
endif()
if("${PACKAGE_FIND_VERSION}" VERSION_LESS "${PACKAGE_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE True)
endif()

@ -1,225 +0,0 @@
# generated from catkin/cmake/template/pkgConfig.cmake.in
# append elements to a list and remove existing duplicates from the list
# copied from catkin/cmake/list_append_deduplicate.cmake to keep pkgConfig
# self contained
macro(_list_append_deduplicate listname)
if(NOT "${ARGN}" STREQUAL "")
if(${listname})
list(REMOVE_ITEM ${listname} ${ARGN})
endif()
list(APPEND ${listname} ${ARGN})
endif()
endmacro()
# append elements to a list if they are not already in the list
# copied from catkin/cmake/list_append_unique.cmake to keep pkgConfig
# self contained
macro(_list_append_unique listname)
foreach(_item ${ARGN})
list(FIND ${listname} ${_item} _index)
if(_index EQUAL -1)
list(APPEND ${listname} ${_item})
endif()
endforeach()
endmacro()
# pack a list of libraries with optional build configuration keywords
# copied from catkin/cmake/catkin_libraries.cmake to keep pkgConfig
# self contained
macro(_pack_libraries_with_build_configuration VAR)
set(${VAR} "")
set(_argn ${ARGN})
list(LENGTH _argn _count)
set(_index 0)
while(${_index} LESS ${_count})
list(GET _argn ${_index} lib)
if("${lib}" MATCHES "^(debug|optimized|general)$")
math(EXPR _index "${_index} + 1")
if(${_index} EQUAL ${_count})
message(FATAL_ERROR "_pack_libraries_with_build_configuration() the list of libraries '${ARGN}' ends with '${lib}' which is a build configuration keyword and must be followed by a library")
endif()
list(GET _argn ${_index} library)
list(APPEND ${VAR} "${lib}${CATKIN_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}${library}")
else()
list(APPEND ${VAR} "${lib}")
endif()
math(EXPR _index "${_index} + 1")
endwhile()
endmacro()
# unpack a list of libraries with optional build configuration keyword prefixes
# copied from catkin/cmake/catkin_libraries.cmake to keep pkgConfig
# self contained
macro(_unpack_libraries_with_build_configuration VAR)
set(${VAR} "")
foreach(lib ${ARGN})
string(REGEX REPLACE "^(debug|optimized|general)${CATKIN_BUILD_CONFIGURATION_KEYWORD_SEPARATOR}(.+)$" "\\1;\\2" lib "${lib}")
list(APPEND ${VAR} "${lib}")
endforeach()
endmacro()
if(catkin_tools_prebuild_CONFIG_INCLUDED)
return()
endif()
set(catkin_tools_prebuild_CONFIG_INCLUDED TRUE)
# set variables for source/devel/install prefixes
if("FALSE" STREQUAL "TRUE")
set(catkin_tools_prebuild_SOURCE_PREFIX /home/mc/ZhiTu/flash_detector_ws/build/catkin_tools_prebuild)
set(catkin_tools_prebuild_DEVEL_PREFIX /home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild)
set(catkin_tools_prebuild_INSTALL_PREFIX "")
set(catkin_tools_prebuild_PREFIX ${catkin_tools_prebuild_DEVEL_PREFIX})
else()
set(catkin_tools_prebuild_SOURCE_PREFIX "")
set(catkin_tools_prebuild_DEVEL_PREFIX "")
set(catkin_tools_prebuild_INSTALL_PREFIX /home/mc/ZhiTu/flash_detector_ws/install)
set(catkin_tools_prebuild_PREFIX ${catkin_tools_prebuild_INSTALL_PREFIX})
endif()
# warn when using a deprecated package
if(NOT "" STREQUAL "")
set(_msg "WARNING: package 'catkin_tools_prebuild' is deprecated")
# append custom deprecation text if available
if(NOT "" STREQUAL "TRUE")
set(_msg "${_msg} ()")
endif()
message("${_msg}")
endif()
# flag project as catkin-based to distinguish if a find_package()-ed project is a catkin project
set(catkin_tools_prebuild_FOUND_CATKIN_PROJECT TRUE)
if(NOT " " STREQUAL " ")
set(catkin_tools_prebuild_INCLUDE_DIRS "")
set(_include_dirs "")
if(NOT " " STREQUAL " ")
set(_report "Check the issue tracker '' and consider creating a ticket if the problem has not been reported yet.")
elseif(NOT " " STREQUAL " ")
set(_report "Check the website '' for information and consider reporting the problem.")
else()
set(_report "Report the problem to the maintainer 'jbohren <jbo@jhu.edu>' and request to fix the problem.")
endif()
foreach(idir ${_include_dirs})
if(IS_ABSOLUTE ${idir} AND IS_DIRECTORY ${idir})
set(include ${idir})
elseif("${idir} " STREQUAL "include ")
get_filename_component(include "${catkin_tools_prebuild_DIR}/../../../include" ABSOLUTE)
if(NOT IS_DIRECTORY ${include})
message(FATAL_ERROR "Project 'catkin_tools_prebuild' specifies '${idir}' as an include dir, which is not found. It does not exist in '${include}'. ${_report}")
endif()
else()
message(FATAL_ERROR "Project 'catkin_tools_prebuild' specifies '${idir}' as an include dir, which is not found. It does neither exist as an absolute directory nor in '\${prefix}/${idir}'. ${_report}")
endif()
_list_append_unique(catkin_tools_prebuild_INCLUDE_DIRS ${include})
endforeach()
endif()
set(libraries "")
foreach(library ${libraries})
# keep build configuration keywords, generator expressions, target names, and absolute libraries as-is
if("${library}" MATCHES "^(debug|optimized|general)$")
list(APPEND catkin_tools_prebuild_LIBRARIES ${library})
elseif(${library} MATCHES "^-l")
list(APPEND catkin_tools_prebuild_LIBRARIES ${library})
elseif(${library} MATCHES "^-")
# This is a linker flag/option (like -pthread)
# There's no standard variable for these, so create an interface library to hold it
if(NOT catkin_tools_prebuild_NUM_DUMMY_TARGETS)
set(catkin_tools_prebuild_NUM_DUMMY_TARGETS 0)
endif()
# Make sure the target name is unique
set(interface_target_name "catkin::catkin_tools_prebuild::wrapped-linker-option${catkin_tools_prebuild_NUM_DUMMY_TARGETS}")
while(TARGET "${interface_target_name}")
math(EXPR catkin_tools_prebuild_NUM_DUMMY_TARGETS "${catkin_tools_prebuild_NUM_DUMMY_TARGETS}+1")
set(interface_target_name "catkin::catkin_tools_prebuild::wrapped-linker-option${catkin_tools_prebuild_NUM_DUMMY_TARGETS}")
endwhile()
add_library("${interface_target_name}" INTERFACE IMPORTED)
if("${CMAKE_VERSION}" VERSION_LESS "3.13.0")
set_property(
TARGET
"${interface_target_name}"
APPEND PROPERTY
INTERFACE_LINK_LIBRARIES "${library}")
else()
target_link_options("${interface_target_name}" INTERFACE "${library}")
endif()
list(APPEND catkin_tools_prebuild_LIBRARIES "${interface_target_name}")
elseif(${library} MATCHES "^\\$<")
list(APPEND catkin_tools_prebuild_LIBRARIES ${library})
elseif(TARGET ${library})
list(APPEND catkin_tools_prebuild_LIBRARIES ${library})
elseif(IS_ABSOLUTE ${library})
list(APPEND catkin_tools_prebuild_LIBRARIES ${library})
else()
set(lib_path "")
set(lib "${library}-NOTFOUND")
# since the path where the library is found is returned we have to iterate over the paths manually
foreach(path /home/mc/ZhiTu/flash_detector_ws/install/lib;/opt/ros/noetic/lib)
find_library(lib ${library}
PATHS ${path}
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
if(lib)
set(lib_path ${path})
break()
endif()
endforeach()
if(lib)
_list_append_unique(catkin_tools_prebuild_LIBRARY_DIRS ${lib_path})
list(APPEND catkin_tools_prebuild_LIBRARIES ${lib})
else()
# as a fall back for non-catkin libraries try to search globally
find_library(lib ${library})
if(NOT lib)
message(FATAL_ERROR "Project '${PROJECT_NAME}' tried to find library '${library}'. The library is neither a target nor built/installed properly. Did you compile project 'catkin_tools_prebuild'? Did you find_package() it before the subdirectory containing its code is included?")
endif()
list(APPEND catkin_tools_prebuild_LIBRARIES ${lib})
endif()
endif()
endforeach()
set(catkin_tools_prebuild_EXPORTED_TARGETS "")
# create dummy targets for exported code generation targets to make life of users easier
foreach(t ${catkin_tools_prebuild_EXPORTED_TARGETS})
if(NOT TARGET ${t})
add_custom_target(${t})
endif()
endforeach()
set(depends "")
foreach(depend ${depends})
string(REPLACE " " ";" depend_list ${depend})
# the package name of the dependency must be kept in a unique variable so that it is not overwritten in recursive calls
list(GET depend_list 0 catkin_tools_prebuild_dep)
list(LENGTH depend_list count)
if(${count} EQUAL 1)
# simple dependencies must only be find_package()-ed once
if(NOT ${catkin_tools_prebuild_dep}_FOUND)
find_package(${catkin_tools_prebuild_dep} REQUIRED NO_MODULE)
endif()
else()
# dependencies with components must be find_package()-ed again
list(REMOVE_AT depend_list 0)
find_package(${catkin_tools_prebuild_dep} REQUIRED NO_MODULE ${depend_list})
endif()
_list_append_unique(catkin_tools_prebuild_INCLUDE_DIRS ${${catkin_tools_prebuild_dep}_INCLUDE_DIRS})
# merge build configuration keywords with library names to correctly deduplicate
_pack_libraries_with_build_configuration(catkin_tools_prebuild_LIBRARIES ${catkin_tools_prebuild_LIBRARIES})
_pack_libraries_with_build_configuration(_libraries ${${catkin_tools_prebuild_dep}_LIBRARIES})
_list_append_deduplicate(catkin_tools_prebuild_LIBRARIES ${_libraries})
# undo build configuration keyword merging after deduplication
_unpack_libraries_with_build_configuration(catkin_tools_prebuild_LIBRARIES ${catkin_tools_prebuild_LIBRARIES})
_list_append_unique(catkin_tools_prebuild_LIBRARY_DIRS ${${catkin_tools_prebuild_dep}_LIBRARY_DIRS})
_list_append_deduplicate(catkin_tools_prebuild_EXPORTED_TARGETS ${${catkin_tools_prebuild_dep}_EXPORTED_TARGETS})
endforeach()
set(pkg_cfg_extras "")
foreach(extra ${pkg_cfg_extras})
if(NOT IS_ABSOLUTE ${extra})
set(extra ${catkin_tools_prebuild_DIR}/${extra})
endif()
include(${extra})
endforeach()

@ -1,16 +0,0 @@
#!/usr/bin/env sh
# generated from catkin/cmake/templates/env.sh.in
if [ $# -eq 0 ] ; then
/bin/echo "Usage: env.sh COMMANDS"
/bin/echo "Calling env.sh without arguments is not supported anymore. Instead spawn a subshell and source a setup file manually."
exit 1
fi
# ensure to not use different shell type which was set before
CATKIN_SHELL=sh
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(cd "`dirname "$0"`" > /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup.sh"
exec "$@"

@ -1,8 +0,0 @@
#!/usr/bin/env bash
# generated from catkin/cmake/templates/local_setup.bash.in
CATKIN_SHELL=bash
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup.sh" --extend --local

@ -1,14 +0,0 @@
#!/usr/bin/env fish
# generated from catkin/cmake/template/local_setup.fish.in
# since this file is sourced either use the provided _CATKIN_SETUP_DIR
# or fall back to the destination set at configure time
if test -z $_CATKIN_SETUP_DIR
set _CATKIN_SETUP_DIR /home/mc/ZhiTu/flash_detector_ws/install
end
set CATKIN_SETUP_UTIL_ARGS "--extend --local"
source "$_CATKIN_SETUP_DIR/setup.fish"
set -e CATKIN_SETUP_UTIL_ARGS

@ -1,9 +0,0 @@
#!/usr/bin/env sh
# generated from catkin/cmake/template/local_setup.sh.in
# since this file is sourced either use the provided _CATKIN_SETUP_DIR
# or fall back to the destination set at configure time
: ${_CATKIN_SETUP_DIR:=/home/mc/ZhiTu/flash_detector_ws/install}
CATKIN_SETUP_UTIL_ARGS="--extend --local"
. "$_CATKIN_SETUP_DIR/setup.sh"
unset CATKIN_SETUP_UTIL_ARGS

@ -1,8 +0,0 @@
#!/usr/bin/env zsh
# generated from catkin/cmake/templates/local_setup.zsh.in
CATKIN_SHELL=zsh
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh" --extend --local'

@ -1,8 +0,0 @@
#!/usr/bin/env bash
# generated from catkin/cmake/templates/setup.bash.in
CATKIN_SHELL=bash
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd "`dirname "${BASH_SOURCE[0]}"`" > /dev/null && pwd)
. "$_CATKIN_SETUP_DIR/setup.sh"

@ -1,129 +0,0 @@
#!/usr/bin/env fish
# generated from catkin/cmake/template/setup.fish.in
# Sets various environment variables and sources additional environment hooks.
# It tries it's best to undo changes from a previously sourced setup file before.
# Supported command line options:
# --extend: skips the undoing of changes from a previously sourced setup file
# --local: only considers this workspace but not the chained ones
# In plain sh shell which doesn't support arguments for sourced scripts you can
# set the environment variable `CATKIN_SETUP_UTIL_ARGS=--extend/--local` instead.
# since this file is sourced either use the provided _CATKIN_SETUP_DIR
# or fall back to the destination set at configure time
if not type -q bass
echo "Missing required fish plugin: bass. See https://github.com/edc/bass"
exit 22
end
if test -z $_CATKIN_SETUP_DIR
set _CATKIN_SETUP_DIR /home/mc/ZhiTu/flash_detector_ws/install
end
set _SETUP_UTIL "$_CATKIN_SETUP_DIR/_setup_util.py"
set -e _CATKIN_SETUP_DIR
if not test -f "$_SETUP_UTIL"
echo "Missing Python script: $_SETUP_UTIL"
exit 22
end
# detect if running on Darwin platform
set _UNAME (uname -s)
set _IS_DARWIN 0
if test "$_UNAME" = Darwin
set _IS_DARWIN 1
end
set -e _UNAME
# make sure to export all environment variables
set -x CMAKE_PREFIX_PATH $CMAKE_PREFIX_PATH
if test $_IS_DARWIN -eq 0
set -x LD_LIBRARY_PATH $LD_LIBRARY_PATH
else
set -x DYLD_LIBRARY_PATH $DYLD_LIBRARY_PATH
end
set -e _IS_DARWIN
set -x PATH $PATH
set -x PKG_CONFIG_PATH $PKG_CONFIG_PATH
set -x PYTHONPATH $PYTHONPATH
# remember type of shell if not already set
if test -z "$CATKIN_SHELL"
set CATKIN_SHELL fish
end
# invoke Python script to generate necessary exports of environment variables
# use TMPDIR if it exists, otherwise fall back to /tmp
if test -d "$TMPDIR"
set _TMPDIR "$TMPDIR"
else
set _TMPDIR /tmp
end
set _SETUP_TMP (mktemp "$_TMPDIR/setup.fish.XXXXXXXXXX")
set -e _TMPDIR
if test $status -ne 0 -o ! -f "$_SETUP_TMP"
echo "Could not create temporary file: $_SETUP_TMP"
exit 1
end
CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" "$argv" "$CATKIN_SETUP_UTIL_ARGS" >> "$_SETUP_TMP"
set _RC $status
if test $_RC -ne 0
if test $_RC -eq 2
then
echo "Could not write the output of '$_SETUP_UTIL' to temporary file '$_SETUP_TMP': maybe the disk is full?"
else
echo "Failed to run '\"$_SETUP_UTIL\" $argv': return code $_RC"
end
set -e _RC
set -e _SETUP_UTIL
rm -f "$_SETUP_TMP"
set -e _SETUP_TMP
exit 1
end
set -e _RC
set -e _SETUP_UTIL
source "$_SETUP_TMP"
rm -f "$_SETUP_TMP"
set -e _SETUP_TMP
# source all environment hooks
set _i 0
while test $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT
# fish doesn't allow use of ${} to delimit variables within a string
set _i_WORKSPACE (string join "" "$i" "_WORKSPACE")
eval set _envfile \$_CATKIN_ENVIRONMENT_HOOKS_$_i
set -e _CATKIN_ENVIRONMENT_HOOKS_$_i
eval set _envfile_workspace \$_CATKIN_ENVIRONMENT_HOOKS_$_i_WORKSPACE
set -e _CATKIN_ENVIRONMENT_HOOKS_$_i_WORKSPACE
# set workspace for environment hook
set CATKIN_ENV_HOOK_WORKSPACE $_envfile_workspace
# non ideal: some packages register bash scripts as fish env hooks
# it is needed to perform an extension check for backwards compatibility
# if the script ends with .sh, .bash or .zsh, run it with bass
set IS_SH_SCRIPT (string match -r '\.(sh|bash|zsh)$' "$_envfile")
if test -n "$IS_SH_SCRIPT"
bass source "$_envfile"
else
source "$_envfile"
end
set -e IS_SH_SCRIPT
set -e CATKIN_ENV_HOOK_WORKSPACE
set _i (math $_i + 1)
end
set -e _i
set -e _CATKIN_ENVIRONMENT_HOOKS_COUNT

@ -1,96 +0,0 @@
#!/usr/bin/env sh
# generated from catkin/cmake/template/setup.sh.in
# Sets various environment variables and sources additional environment hooks.
# It tries it's best to undo changes from a previously sourced setup file before.
# Supported command line options:
# --extend: skips the undoing of changes from a previously sourced setup file
# --local: only considers this workspace but not the chained ones
# In plain sh shell which doesn't support arguments for sourced scripts you can
# set the environment variable `CATKIN_SETUP_UTIL_ARGS=--extend/--local` instead.
# since this file is sourced either use the provided _CATKIN_SETUP_DIR
# or fall back to the destination set at configure time
: ${_CATKIN_SETUP_DIR:=/home/mc/ZhiTu/flash_detector_ws/install}
_SETUP_UTIL="$_CATKIN_SETUP_DIR/_setup_util.py"
unset _CATKIN_SETUP_DIR
if [ ! -f "$_SETUP_UTIL" ]; then
echo "Missing Python script: $_SETUP_UTIL"
return 22
fi
# detect if running on Darwin platform
_UNAME=`uname -s`
_IS_DARWIN=0
if [ "$_UNAME" = "Darwin" ]; then
_IS_DARWIN=1
fi
unset _UNAME
# make sure to export all environment variables
export CMAKE_PREFIX_PATH
if [ $_IS_DARWIN -eq 0 ]; then
export LD_LIBRARY_PATH
else
export DYLD_LIBRARY_PATH
fi
unset _IS_DARWIN
export PATH
export PKG_CONFIG_PATH
export PYTHONPATH
# remember type of shell if not already set
if [ -z "$CATKIN_SHELL" ]; then
CATKIN_SHELL=sh
fi
# invoke Python script to generate necessary exports of environment variables
# use TMPDIR if it exists, otherwise fall back to /tmp
if [ -d "${TMPDIR:-}" ]; then
_TMPDIR="${TMPDIR}"
else
_TMPDIR=/tmp
fi
_SETUP_TMP=`mktemp "${_TMPDIR}/setup.sh.XXXXXXXXXX"`
unset _TMPDIR
if [ $? -ne 0 -o ! -f "$_SETUP_TMP" ]; then
echo "Could not create temporary file: $_SETUP_TMP"
return 1
fi
CATKIN_SHELL=$CATKIN_SHELL "$_SETUP_UTIL" $@ ${CATKIN_SETUP_UTIL_ARGS:-} >> "$_SETUP_TMP"
_RC=$?
if [ $_RC -ne 0 ]; then
if [ $_RC -eq 2 ]; then
echo "Could not write the output of '$_SETUP_UTIL' to temporary file '$_SETUP_TMP': maybe the disk is full?"
else
echo "Failed to run '\"$_SETUP_UTIL\" $@': return code $_RC"
fi
unset _RC
unset _SETUP_UTIL
rm -f "$_SETUP_TMP"
unset _SETUP_TMP
return 1
fi
unset _RC
unset _SETUP_UTIL
. "$_SETUP_TMP"
rm -f "$_SETUP_TMP"
unset _SETUP_TMP
# source all environment hooks
_i=0
while [ $_i -lt $_CATKIN_ENVIRONMENT_HOOKS_COUNT ]; do
eval _envfile=\$_CATKIN_ENVIRONMENT_HOOKS_$_i
unset _CATKIN_ENVIRONMENT_HOOKS_$_i
eval _envfile_workspace=\$_CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
unset _CATKIN_ENVIRONMENT_HOOKS_${_i}_WORKSPACE
# set workspace for environment hook
CATKIN_ENV_HOOK_WORKSPACE=$_envfile_workspace
. "$_envfile"
unset CATKIN_ENV_HOOK_WORKSPACE
_i=$((_i + 1))
done
unset _i
unset _CATKIN_ENVIRONMENT_HOOKS_COUNT

@ -1,8 +0,0 @@
#!/usr/bin/env zsh
# generated from catkin/cmake/templates/setup.zsh.in
CATKIN_SHELL=zsh
# source setup.sh from same directory as this file
_CATKIN_SETUP_DIR=$(builtin cd -q "`dirname "$0"`" > /dev/null && pwd)
emulate -R zsh -c 'source "$_CATKIN_SETUP_DIR/setup.sh"'

@ -1,16 +0,0 @@
set(_CATKIN_CURRENT_PACKAGE "catkin_tools_prebuild")
set(catkin_tools_prebuild_VERSION "0.0.0")
set(catkin_tools_prebuild_MAINTAINER "jbohren <jbo@jhu.edu>")
set(catkin_tools_prebuild_PACKAGE_FORMAT "1")
set(catkin_tools_prebuild_BUILD_DEPENDS )
set(catkin_tools_prebuild_BUILD_EXPORT_DEPENDS )
set(catkin_tools_prebuild_BUILDTOOL_DEPENDS "catkin")
set(catkin_tools_prebuild_BUILDTOOL_EXPORT_DEPENDS )
set(catkin_tools_prebuild_EXEC_DEPENDS )
set(catkin_tools_prebuild_RUN_DEPENDS )
set(catkin_tools_prebuild_TEST_DEPENDS )
set(catkin_tools_prebuild_DOC_DEPENDS )
set(catkin_tools_prebuild_URL_WEBSITE "")
set(catkin_tools_prebuild_URL_BUGTRACKER "")
set(catkin_tools_prebuild_URL_REPOSITORY "")
set(catkin_tools_prebuild_DEPRECATED "")

@ -1,8 +0,0 @@
# generated from catkin/cmake/template/pkg.context.pc.in
CATKIN_PACKAGE_PREFIX = ""
PROJECT_PKG_CONFIG_INCLUDE_DIRS = "".split(';') if "" != "" else []
PROJECT_CATKIN_DEPENDS = "".replace(';', ' ')
PKG_CONFIG_LIBRARIES_WITH_PREFIX = "".split(';') if "" != "" else []
PROJECT_NAME = "catkin_tools_prebuild"
PROJECT_SPACE_DIR = "/home/mc/ZhiTu/flash_detector_ws/devel/.private/catkin_tools_prebuild"
PROJECT_VERSION = "0.0.0"

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

Loading…
Cancel
Save