首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 CMakePresets.json 简化 CMake 项目初始化繁杂步骤

痛苦 本地开发需要输入参数太多 刚开始做纯 C++ 跨端的项目,为了考虑项目的统一工程化管理选择使用 CMake + Conan,因为各平台下使用的工具链、 IDE 都不一样。...要针对某个平台加一个配置需要改多处位置,同样非常容易出错不易维护。 目标 经过多个项目跨平台编译构建的洗礼,很难忍受切换项目过程中频繁的敲入命令去初始化 CMake 工程。...每个人使用的开发工具都各要求。特别是开源项目,如果没有提供一套全平台对各类工具都支持的配置文件,这会让开发者工程配置上就被劝退。...所以我们期望对项目工程化改造的目标不仅仅是解决上面的痛苦问题,更期望能让开发人员接手项目不需要在编译工具链、工程配置上花费太多的心思,让主流的开发工具打开工程开箱即用。...使用 –preset 命令生成工程项目文件的时候,会先打印出当前配置指定的所有参数: ➜ ne-mss-c git:(main) ✗ cmake --preset=ios-release-arm64

2.5K20

cmake-conan 2.0 接入指南

Conan 2.0 版本已经发布很久了,配套的 cmake-conan 工具也同时得到了更新,原有 Conan 1.x 版本上增强了功能,对开源项目和公司内部已有的 CMake 项目非常友好,接入简单...cmake-conan 新特性 如果你尚未使用过 Conan 与 CMake 的组合,请参考我历史编写的一篇关于 cmake-conan v1 版本的文章,该文章描述了 Conan + CMake 跨平台项目中的实战应用场景...并且检测完成后会自动生成一个 profile 配置文件,随后自动调用 conan install 根据生成的 profile 来编译依赖库。...这里有一点要注意的是,针对 Android 平台我们 cmake-conan v1 使用的一些 CMAKE 变量 cmake-conan v2 中是无效的,比如 CMAKE_SYSTEM_VERSION...Creator 图片 CLion 总结 新版本的 cmake-conan 设计符合业界设计规则,当大部分 PaaS 厂商思考如何捆绑用户到自己业务中,而他们却解除耦合使用真正的工具价值吸引用户,也许这就是开源项目的魅力所在吧

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

代码的“真面目”---如何查看cpp预处理后程序代码

使用宏定义后,宏预处理阶段才展开,会造成代码阅读的不便;尤其是宏嵌套,会极大加深代码阅读和了解难度。 [恐怖的宏定义] 用宏封装后,使用起来会非常方便。但是第一次阅读,会比较难以理解。...但是实际中,项目是由很多个文件组成的,文件间是有依赖关系的;手动确定依赖关系,并输入gcc来编译获得预处理文件,速度慢流程复杂,不具有实际使用意义。...CMake + make 平常验证cpp代码喜欢使用CLion,CLion默认使用CMake + make构建系统,项目结构如下: [Clion项目结构] 分析了CMake默认生成的makefile,意外发现里面就有我需要的...但是当我准备把这套方案挪到Android NDK项目,才忽然意识到,Android NDK项目是基于CMake+ninja构建系统,不是CMake+makefile这套。...[Preprocess/Assemble] XCode 生成预编译相当简单,但是CMake构建系统中摸爬滚打,也让我们找到了非常多的乐趣。

5.3K41

CMake vs Make对比

程序员现在已经使用CMake和Make了很久。当您加入大公司或开始使用大型代码库开发项目,您需要处理所有这些构建。你必须看到这些“CMakeLists.txt”文件浮动。...您还可以使用“Make”来控制安装或卸载软件包,为其生成标签表, CMakeCMake代表跨平台制作。CMake识别哪个编译器用于给定类型的源。...如果您不知道,您不能使用相同的编译器来构建所有不同类型的源。您可以每次建立项目手动执行,但这将是乏味和痛苦的。CMake为每种类型的目标调用正确的命令序列。...它支持多个生成器,如Xcode,Eclipse,Visual Studio等。 当将CMake与Make进行比较使用CMake有几个优点: 跨平台发现系统库。 自动发现和配置工具链。...如果只一个平台上只有一个小项目,那么也许“Make”可以做得更好。

3.8K31

LLVM(二)——Clang插件

来到llvm所在的文件目录下,新建一个文件夹,并且cd进去: mkdir build_xcode cd build_xcode 然后执行如下命令来将llvm编译成Xcode项目cmake -G Xcode...所以,如果路径出现了错误,那么就将llvm重新编译成Xcode项目即可。 接下来我们就使用Xcode来编译Clang。打开上面的这个Xcode工程: ? 注意,这里选择手动管理,不要选择自动创建哈。...接下来我利用cmake来重新编译生成一下LLVM的xcode 项目,完成以后打开Xcode项目,就可以targets中找到NormanPlugin,并且可以把它添加进scheme来了: ?...这里就是分析语法分析生成AST的过程中的相关内容。...这里我使用的是绝对路径,但是当我们真正在项目中去使用的时候,使用相对路径会更好一些。 此时,如果你编译一下,Xcode会报一个警告: ?

1.5K30

Xmake v2.7.1 发布,更好的 C++ Modules 支持

使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中实际的项目开发上。...我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。...因此我们加上了行缓冲刷新支持,提高了输出回显的实时性,使得用户远程编译,更接近本地编译的体验。...更灵活的 cmake 包查找 指定链接 对于 cmake 包,我们新增了 link_libraries 配置选项,让用户查找使用 cmake 包的时候,可以自定义配置包依赖的链接库,甚至对 target...xmake 查找 cmake 包的时候,内部会自动追加下面的配置。

1.6K10

斩获 3.4k+ Star 的 C++ Insights:用编译器的视角看源码!

本文经授权转自公众号CSDN(ID:CSDNnews) 作者 | Andreas Fertig 翻译 | 郑丽媛 近日,新闻平台 HackerNews 上有个开发者颇为关注的 GitHub 项目,名叫...--config Release --target install 你也可以 Visual Studio 中打开 build/LLVM.sln 解决方案,然后在其中构建所有内容,而不是使用 cmake.../cppinsights ninja 生成的二进制文件(insights)可以 build 文件夹中找到。.../llvm-project/llvm ninja cmake 选项 cmake 可启用几个选项: macOS 上构建 ARM 似乎最好在配置提供架构: cmake -DCMAKE_OSX_ARCHITECTURES.../cppinsights 4、使用方法 使用 C++ Insights 非常简单: insights -- -std=c++17 当涉及到系统包含路径,情况就变得复杂了

13810

解决CMAKE_CURRENT_SOURCE_DIR

解决CMAKE_CURRENT_SOURCE_DIR使用CMake构建项目,经常会用到 ​​CMAKE_CURRENT_SOURCE_DIR​​ 这个变量,用于获取当前源代码目录的路径。...,更加方便使用CMake构建项目。...CMake是一种跨平台的构建工具,用于生成和管理项目的构建脚本。它能够帮助开发者更方便地构建、测试和部署他们的软件项目为什么选择CMake?...跨平台支持:CMake可以生成适用于多种操作系统和编译器的构建脚本。这意味着你可以使用相同的CMake配置文件不同的平台上构建你的项目。...运行构建脚本:使用生成的构建脚本(如Makefile、Visual Studio项目文件等),使用相应的构建工具来执行构建操作,包括编译源代码、链接库文件等。

28630

Xcode 新构建系统与 cmake 3.19版本兼容性解决方案

Xcode 新构建系统 与 cmake 的兼容性解决方案 什么是 Xcode 构建系统 `build system`[1] 是一套将源码和资源文件转为 APP 的工具。...比如,当我们进行点击下图的运行按钮(Run Button)** (▶️)Xcode就会调用 Build System 进行 APP 的构建过程 。 ?...工具栏 除此外,当我们使用命令行通过 xcodebuild 进行 build archive 操作,都依赖 build system 完成工作。...cmake 兼容性问题 从 cmake 3.19[2] 版本开始,`Xcode generator`[3] 会尝试默认启用 Xcode 的 New Build System 对于部分不支持new build...system 的项目,会出现下面的警告或者报错: Policy CMP0114 is not set to NEW [4] 警告: "Policy CMP0114 is not set to

3.1K10

Clion使用小锦集

导演,拍摄和后期一部心理情景剧,学习,谈恋爱,策划笔记活动等等,一直没空来写文章,趁今天写完学生成绩管理系统有空来写一篇,水文章......强烈推荐,特别是用Mac的小伙伴,接下来的文章我就把我使用过程中的遇到的问题和各种技巧都做个汇总 注:macOS10以后有没有自带gcc我不是很清楚,小伙伴测试的时候自己试一下,如若不行就自己装一下...gcc或者直接装Xcode 注:以下方法适用于C/C++项目 一个项目编译多个cpp源文件 ​ 这是个什么意思,用过Xcode或者Visual Studio 2019后的小伙伴都知道一个项目中是不能编译运行多个...:Tools-CMake-Reload Cmake Project 中文:工具-CMake-重新加载CMake项目 结语 目前我Clion的使用中遇到的问题就这些,日后遇到新的问题再补充,如各位有好的技巧...版权属于:奥秘Sir(除特别注明外) 本文链接:https://blog.say521.cn/archives/518.html 本站文章采用 知识共享署名4.0 国际许可协议进行许可,请在转载注明出处及本声明

78440

xmake v2.3.6 发布, 新增fortran编译支持

新特性介绍 Fortran语言编译支持 这个版本开始,我们已经完全支持使用gfortran编译器来编译fortran项目,我们可以通过下面的命令,快速创建一个基于fortran的空工程: $ xmake...Xcode插件生成支持 目前,我们还没有时间去自己实现xcode工程的生成,但不代表不支持,因为xmake支持生成cmakelists.txt文件,而cmake是支持xcode工程文件生成的,官方还没有实现之前..., 我们也可以通过cmake变相支持它,xmake会自动内部调用cmake中转下生成结果,对用户而言使用上没啥区别,只需要确保cmake已经安装即可: $ xmake project -k xcode...xmake-vscode插件intellisense支持 近期,我们也更新了下xmake-vscode插件,通过自动生成compile_commands.json到当前项目的.vscode目录下,然后我们只需要配置...工程生成器插件,xmake project -k cmake (当前采用cmake生成) #870: 支持gfortran编译器 #887: 支持zig编译器 #893: 添加json模块 #898:

92430

xmake v2.6.5 发布,远程编译支持

使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中实际的项目开发上。...我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。...为什么使用 Xmake 编译 Rust?...如果我们是在用 Xmake 开发 C/C++ 项目,但是需要引入一些 Rust 子模块给 C/C++ 项目使用,那么就可以借助这种方式,快速方便地 C/C++ 中调用 Rust 库和代码。...更多关于 C/C++ 中调用 Rust 代码库的说明,见:使用 cxxbridge C/C++ 中调用 Rust 支持源文件分组 新版本,我们提供了一个新接口 add_filegroups,用于对

38740

ctk框架搭建(一) ctk框架插件加载与项目结构

使用CTK框架开发有大半年了,就实际应用上来说框架还比较可靠,但网上资料很少。...而刚接触项目已经有了相当大的体量,与业务等其他逻辑混淆,现在单独把ctk框架部分抽离出来做个总结分享,避免后来的人走弯路。...ctk框架插件 CTK源码可以从GitHub上下载,地址 https://github.com/commontk/CTK,然后使用cmake编译出与系统版本相应的动态库。...等等,cmake是什么?cmake怎么编译?我竟然不知道cmake!!!...项目结构 由于每一个插件都要建一个子项目,本项目刚开始创建QtCreator中选择新建-其他项目-子目录项目,新建项目名称为ctkExample,然后建立主程序入口项目,这里建立一个控制台项目

1.4K20

Android Studio如何查看JNI生成中的 preprocessorassemble file

前两天讲了如何使用CMake+make,查看生成的预处理和汇编文件。 但是Android Studio中很尴尬的是CMake+ninja,是没法使用上述方法查看预处理和汇编的。...当你使用CMake,需要设置CMAKE_C_FLAGS和CMAKE_CXX_FLAGS。 CMake_C_FLAGS对C文件生效。...set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -save-temps=obj") -save-temps 生成位置和makefile同目录 -save-temps=obj 和生成的和...set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -save-temps=obj") CMake+ninja这样就搞定,那么远古时代的ndk-build可以生成中间文件么.../app/hello-jni.i 最后回归下XCodeXCode本身就带,只是觉得不是很好用 Product/Perform Action中,就有预处理和汇编文件。

1.4K70
领券