CMake教程13:美化构建后的项目工程结构

简介: CMake教程13:美化构建后的项目工程结构

通过一些基础的配置,CMake是可以生成一份对应平台的IDE项目工程的。

不过这个工程结构可能非常的杂乱,所有的东西都是堆在一起的。

将多个Target放到一个工程目录下

set_target_properties用来设置target的属性,语法如下:

set_target_properties(
    target1 target2 ...
    PROPERTIES 
        prop1 value1
        prop2 value2 ...
)
复制代码

使用FOLDER属性可以将生成的多个target放在一个目录下

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_target_properties(
    cocos2d luacocos2d cocos2dInternal
    PROPERTIES
        FOLDER "cocos"
)
复制代码

网络异常,图片无法展示
|

既然有这是,就有获取,对应的命令为:get_propertyget_target_properties

一些常用的TargetProperty

标题 作用
FOLDER 将多个target放到一个工程目录下,可以使用/分割设置多级目录
MACOSX_BUNDLE_GUI_IDENTIFIER bundle的名字 mac
MACOSX_BUNDLE_BUNDLE_VERSION 版本号
MACOSX_BUNDLE 在Mac、IOS上构建一个可以运行的应用程序 可选值TRUE
WIN32_EXECUTABLE 在Windows上构建一个可以运行的应用程序
MACOSX_BUNDLE_SHORT_VERSION_STRING
OUTPUT_NAME 目标文件的名字
RUNTIME_OUTPUT_DIRECTORY
ARCHIVE_OUTPUT_DIRECTORY
LIBRARY_OUTPUT_DIRECTORY
VS_USER_PROPS

对项目工程文件组进行重命名

将包含src的源码工程目录命名为src

# 语法:source_group(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
source_group("src" FILES ${src})
复制代码

工程目录结构按照文件夹目录结构组织

# 语法:source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])
# TREE是在3.8支持的
source_group(TREE ./ FILES ${src}
复制代码

在上边的例子里面,项目工程中的文件结构会以源文件目录的结构进行组织。

${src}里面的所有文件必须是<root>子目录文件,否则会报错:

source_group ROOT is not a prefix of file



目录
相关文章
|
程序员 Android开发 开发者
Android开发:往项目工程里面新引入工具包的步骤
在Android开发过程中,有些时候会根据实际需要,要往项目里面引入工具包,作为初级开发者或者刚开始入门的Android开发者来说会不太熟练怎么引入,所以往项目工程里面新引入工具包也是必备技能。那么本篇博文就来分享一下给项目工程里面引入工具包的步骤,只分享给有需要的人。
209 0
Android开发:往项目工程里面新引入工具包的步骤
|
Java API Maven
第三章 Gradle构建脚本基础
从这章开始,会对Gradle有一个大概的介绍,帮助大家快速的入门Gradle。本章从整体构建脚本的角度介绍Gradle,什么是Settings文件,他有什么作用;什么是Build文件,它又有什么作用,我们可以新建多少Build文件。
193 0
第三章 Gradle构建脚本基础
|
Java Unix 编译器
CMake入门教程:从零开始构建C/C++项目
CMake是一个跨平台的自动化构建工具,可以用于构建各种类型的项目,包括C++、C、Python、Java等。本文将从零开始,介绍如何使用CMake构建一个简单的C/C++项目
376 0
|
Unix Linux Windows
Qwt开发笔记(一):Qwt简介、下载以及基础demo工程模板
QWT开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,本系列旨在系统解说并逐步更新其各种Demo示例。
Qwt开发笔记(一):Qwt简介、下载以及基础demo工程模板
|
IDE 开发工具 C++
⚡【C++要笑着学】(40) OF框架:OpenFrameworks 框架介绍 | oF 文件结构 | 图形基础 | 使用 ProjectGenerator 创建项目
⚡【C++要笑着学】(40) OF框架:OpenFrameworks 框架介绍 | oF 文件结构 | 图形基础 | 使用 ProjectGenerator 创建项目
315 0
|
Java API Android开发
Gradle笔记——构建基础
本篇文章主要介绍一下Gradle的构建基础。它看起来似乎和android项目没多大关系,不能让人一下子理解android项目中的Gradle配置文件,但是这篇基础真的很重要。 学习Gradle前,需要有一个Groovy语言的基础,以免被Groovy的语法困扰,反而忽略了Gradle的知识。
1130 0
|
C语言 C++
Qt6-CMake项目体验、建立项目、包含模块
由于公司一个项目中存在多台电脑,没戏项目下线关闭电脑是需要一个一个关机,很是麻烦,因此编写一个局域网中批量关闭电脑的工具时很有必要的。
917 0
Qt6-CMake项目体验、建立项目、包含模块
|
Dart 开发工具 Android开发
1.第一节 - Flutter教程之AndroidStudio配置Flutter工程(并运行第一个项目)
Flutter之AndroidStudio配置Flutter工程并运行第一个项目
1.第一节 - Flutter教程之AndroidStudio配置Flutter工程(并运行第一个项目)
|
Java API
Gradle2.0用户指南翻译——第六章. 构建脚本基础
翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2.0 。
1330 0
|
Java 数据库连接 Maven
Gradle2.0用户指南翻译——第八章.依赖管理基础
翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2.0 。
1335 0