当前位置: 首页 > wzjs >正文

阜阳做网站的手机网站带后台源代码

阜阳做网站的,手机网站带后台源代码,wordpress下载类插件,360安全浏览器官网入口Foreword 之前看到CMake有这么多选项,感觉不简单,还是看下别人在这里设计了多少东西 CMake 整体来说CMake遵循这样一套结构 操作-操作预设(如果有的话)-操作目标(如果有的话)比如 Configure-Configure…

Foreword

之前看到CMake有这么多选项,感觉不简单,还是看下别人在这里设计了多少东西

CMake

整体来说CMake遵循这样一套结构

操作-操作预设(如果有的话)-操作目标(如果有的话)

比如

Configure-ConfigurePreset
Build-BuildPreset-Build_Target
Launch-Launch_Target
Test-TestPreset
Pack-PackPreset
Workflow-WorkflowPreset

Configure

这个不用多说,最基础的配置了

Kit

Kit是作为configure中的一个环境,也就是编译工具链的配置

image-20250226173151815

同时默认的CMake把工具链和生成配置类型,这个区分开了,实际我之前做的demo也区分开了二者

而这个Kit是不需要你写的,直接通过扫描环境就能识别,感觉这样更好,可以去掉自己写的工具链

  • 不过这样的话,脱离了这个环境就失去编译工具链的选择了
Variant

简单说Variant就是允许你对Kit和优化输出等级进行打包和重命名,这样的话不同编译工具链+优化输出等级就形成了一个新组合,这个组合就叫Variant,这样用起来其实就更灵活了

_images/custom_variant_selector.png

这只有2种元素进行组合,如果元素多了,这个组合就非常恐怖了,但是它可以自动帮你排列组合好

对于那种超级兼容性的大工程,做自动化流程的时候就比较方便

Build

Build就不说了,正常配置,Build内可以选择Target,这样的话其实很多东西都能写到配置文件里去,通过Target选择不同的编译结果

Launch

Launch包含调试和运行,也可以选择调试的目标

Debug都是调用外部程序完成的,本身没这个能力,launch可以做一些调试前或者后的操作

CTest

特性 / 框架CTestJUnitPyTestGoogle Test
语言支持C/C++JavaPythonC++
集成度与CMake紧密集成,适合CMake项目与Java开发环境集成Python生态中集成度高良好的C++环境集成
测试类型支持支持单元测试、集成测试、性能测试主要支持单元测试支持多种类型的测试主要支持单元测试
可扩展性通过CMake脚本可扩展可以通过插件扩展强大的插件系统可以通过宏和参数化扩展
测试发现自动化测试发现一般强大的自动化测试发现自动化测试发现
结果报告详细的测试结果报告结果报告清晰结果报告详细且支持插件扩展结果报告详细
社区和文档较小的社区,文档适中大社区,丰富的文档大社区,丰富的文档大社区,丰富的文档
适用场景适用于需要CMake构建系统的C/C++项目适用于Java项目适用于Python项目适用于需要详细测试报告的C++项目
add_executable(TestInstantiator TestInstantiator.cxx)
target_link_libraries(TestInstantiator vtkCommon)
add_test(NAME TestInstantiatorCOMMAND TestInstantiator)

简单说就是可以直接执行测试指令,类似VS里面的单元测试,只不过这个测试是调用外部的程序完成的

实际上直接做代码覆盖测试也可以,需要引入gtest等额外的模块,同样的对于测试目标,也可以debug

image-20250226210212091

简单的编译完成以后,运行一下自己,就看到了测试结果

CTest只是一个调用方,不是具体的测试框架,测试框架可能得需要gtest之类的东西来做

CPack

CPack有两个作用,第一个自动添加缺少的包

cmake_policy(SET CMP0135 NEW)
find_package(GTest)
if(NOT GTest_FOUND)
message("GTest not found, download it...")
include(FetchContent)
FetchContent_Declare(googletest URL https://github.com/google/googletest/archive/refs/heads/main.zip)
FetchContent_MakeAvailable(googletest)
endif()

比如这里自动下载gtest的包

第二个就是自动打包,当编译测试都做完了,那就还剩下打包发布了,CPack就是用来将生成结果进行打包的,支持很多类型的打包

cmake_minimum_required(VERSION 3.0) 
project(MyProject) 
# 添加源代码
add_executable(MyProject main.cpp)
# 添加依赖库 
find_package(Boost REQUIRED)
target_link_libraries(MyProject PRIVATE Boost::boost)
# 安装文件
install(TARGETS MyProject DESTINATION bin)
# 打包 
set(CPACK_PACKAGE_NAME "MyProject")
set(CPACK_PACKAGE_VERSION "1.0.0") 
set(CPACK_GENERATOR "ZIP") 
include(CPack) 

运行之后就会自动打包为zip

Workflow

简单说workflow就可以把前面所有的东西组合在一起,他们可以一一对应起来变成一个个工作流

配置-构建-测试-打包

下面就是工作流的预设,这样的工作流可以简单的配置很多个

    "workflowPresets": [{"name": "wf","description": "","displayName": "工作流","steps": [{"type": "configure","name": "gcc13"},{"type": "build","name": "all"},{"type": "test","name": "test_Project"},{"type": "package","name": "all"}]}]

点一下就可以把上面的步骤来一遍,直接实现CICD流程

image-20250227000640588

Summary

VSCode中CMake Tools相关的教程还是太少了,很多东西都对不上,而VSCode把各个之间的一些参数或者设置隐藏了,导致实际如果出问题想要调试找到具体位置有些困难,不如原生的CMake,是啥就是啥都能看到

Quote

https://blog.csdn.net/witton/article/details/130170686

https://blog.csdn.net/witton/article/details/130216777

https://blog.csdn.net/witton/article/details/145307607?spm=1001.2014.3001.5502

https://github.com/microsoft/vscode-cmake-tools/blob/main/docs/cmake-presets.md#test

https://cmake.org/cmake/help/latest/manual/ctest.1.html#ctest-1

https://blog.csdn.net/m0_49302377/article/details/130264041

http://www.dtcms.com/wzjs/781789.html

相关文章:

  • 上海网站建设seo1888长沙做网站推广公司咨询
  • 住建部建设厅官方网站潍坊网站建设自助建站平台
  • 中地海外路桥建设有限公司网站关于科技的名言
  • 百度网站建设电话销售话术wordpress 启动流程
  • 找工作哪个网站好找做外语网站的公司
  • 网站建设及编辑岗位职责四川建设招标网站首页
  • 国外哪些网站可以注册域名网站制作价格上海
  • 怎么停止网站网站建设公司推荐 知乎
  • 泉州手机网站建设wordpress侧面分类插件
  • 青海微信网站建设网页制作步骤详细
  • 外贸网站搭建难不难广州南沙区建设和交通局网站
  • 做海报兼职网站中介订制网站开发
  • 住房城乡建设部网站办事大厅广东网站建设哪家
  • 兰州网络公司网站网站功能开发
  • 张家港做网站广告公司深圳网站建设首选上榜网络
  • 辽宁建设厅官方网站app下载网站免费
  • asp. net 做网站上海弘韬建设发展有限公司网站
  • 2345浏览器网站大全如何进行搜索引擎营销
  • 无锡网站建设哪家好东莞网站制作哪家最便宜
  • 快递空包网站建设做家乡的网站
  • 手工做环保衣的网站修改网站默认首页
  • 建立网站 多少钱鹰潭做网站公司
  • 网站开发费用报价单甜蜜定制app下载
  • 科技文化网站建设方案网络设置网站
  • 基础展示营销型型网站烟台北京网站建设
  • 安徽省建设法治协会网站诚一网站推广
  • 建站公司哪个好怎么做网站弄网盟
  • 网站改版 更换域名网站建设实训总结
  • 邯山手机网站建设网页转微信小程序
  • 首页调用网站栏目id四位一体网站开发