首页 > 其他分享 >cmakelist的一个例子

cmakelist的一个例子

时间:2024-05-13 15:10:30浏览次数:16  
标签:cmakelist set CMAKE typeName 一个 CXX 例子 FLAGS DIR

一个例子,仅做参考用:

 

CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
set(ProjName "NetworkTest")
project(${ProjName})

string(FIND ${CMAKE_CURRENT_BINARY_DIR} "/" pos0 REVERSE)
MATH(EXPR pos0 ${pos0}+1)
string(SUBSTRING ${CMAKE_CURRENT_BINARY_DIR} ${pos0} -1 fName)
string(TOLOWER ${fName} typeName)
message("typeName=${typeName}!")

set(CMAKE_C_COMPILER "/usr/bin/gcc")
set(CMAKE_CXX_COMPILER "/usr/bin/g++")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -MMD")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -MP")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I.")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx")
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
endif()
if(typeName MATCHES "debug")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -D_DEBUG")
    set(APP_POSTFIX "_d")
else()
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
    set(APP_POSTFIX "")
endif()

find_package(OpenCV REQUIRED)
find_package(Ceres REQUIRED)

set(Shared_DIR ${PROJECT_SOURCE_DIR}/../../Shared/)

include_directories(
  ${Shared_DIR}
  ${PROJECT_SOURCE_DIR}
)

add_executable(SocketTest
  ${PROJECT_SOURCE_DIR}/SocketTest.cpp
  ${Shared_DIR}/src/Network/SocketWrapper.cpp
)

 

标签:cmakelist,set,CMAKE,typeName,一个,CXX,例子,FLAGS,DIR
From: https://www.cnblogs.com/xcywt/p/18189276

相关文章

  • Linux查看一个目录下占用磁盘最多的文件或目录
    想要找到占用磁盘最多的文件或目录,可以使用du和sort命令:du-h/path/to/directory|sort-rh|head-n10其中:du-h/path/to/directory用于计算指定目录下的所有文件和子目录的大小,并以人类可读的格式显示。sort-rh用于按磁盘使用情况的大小(逆序)对输出进行排序。head......
  • 怎样才能不当数据泄露的下一个受害者?
    在数字化时代,数据泄露成为了所有企业必须面对的难题。无论规模大小,每家公司都可能成为黑客攻击的目标,从而遭受数据泄露的风险。然而,通过采取一系列预防措施,企业可以极大地降低成为下一个受害者的可能性。教育员工:增强数据安全意识员工往往是数据泄露的最大风险源之一,因此提升员......
  • 一个不知名的开源项目可以带来多少收入
    一个不知名的开源项目可以带来多少收入——NocoBase3年总结分享起源2020年新冠疫情开始蔓延,当时我在同时经营3个不同的公司。除了其中的体育赛事平台因为疫情关门大吉之外,另外两个公司并没有受影响,营收和利润反而都持续增加。但是连续几个月不能出远门,也不能随便见朋友和......
  • layui table 选项卡刷新后依旧保留上一个打开的索引
    $(".layui-tab-titleli").click(function(){varmy_clue_detail_tab_index=$(this).index();sessionStorage.setItem("my_clue_detail_tab_index",my_clue_detail_tab_index);});$(function(){vargetPicTabN......
  • 如何快速提取出一个文件里面全部指定类型的文件的全部路径
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z打开工具,切换到第五个模块,文件批量复制模块(快捷键:Ctrl+5)点击右边的“搜索添加”按钮,我这里就从我的PS文件夹里面找出全部的jpg图片叭,勾选两项,搜文件,并且搜全部子文件,然后点开始搜索按钮搜索完之后关闭窗口,就......
  • 完全开源可商用!一个简洁、高效、安全的快速开发平台!
    大家好,我是Java陈序员。问君能有几多愁,开源项目解千愁!今天,给大家介绍一个快速开发平台,完全开源可商用!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍SmartAdmin——一个简洁、高效、安全的快速开发平台,以高质量代码......
  • 一个PowerShell内网渗透测试的大纲:
    一个PowerShell内网渗透测试的大纲:介绍内网渗透测试:什么是内网渗透测试?内网渗透测试的目的和方法。内网渗透测试的法律和道德问题。PowerShell基础知识回顾:PowerShell的基本语法和命令。PowerShell的常见用途和功能。PowerShell在内网渗透测试中的重要性和作用......
  • laravel,webman,hyperf,thinkphp推荐哪一个?
    2024年5月11日14:11:45laravelwebmanhyperfthinkphp流行程度国内流行,欧洲特别是法国,美国,日本很多使用主要在国内流行,少量国外使用主要国内流行,少量国外使用国内流行,国外俄罗斯有使用性能fpm多进程模式,性能一般,偏差同步阻塞多进程模式,性能很好web第一梯队协......
  • CodePen 的国内替代「笔.COOL」,一个功能完备、使用便捷的在线HTML代码编辑和作品分享
    笔.COOL,是一个在线HTML代码编辑和作品分享平台。笔.COOL提供了一个在线的HTML、CSS和JavaScript代码编辑器。无需任何安装,你只需打开网站,就可以开始编写前端代码。编辑器支持代码高亮、自动补全等功能,提高编码效率。笔.COOL还提供了实时预览功能,预览界面会随着你的代码更......
  • DirectX 12 Ultimate 是微软在 DirectX 12 API 的基础上推出的一个新版本,它旨在为游戏
    DirectX12Ultimate是微软在DirectX12API的基础上推出的一个新版本,它旨在为游戏开发者提供更多的功能和支持,同时也为玩家带来更出色的游戏体验。下面我将简要介绍一下DirectX12Ultimate的特点和重要性:支持最新硬件特性:DirectX12Ultimate支持最新的硬件特性,包......