Qt CMake GUI项目生成脚本
时间:2022-07-24
本文章向大家介绍Qt CMake GUI项目生成脚本,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
自动初始化Linux下Qt通用开发的CMake GUI工程的脚本
- 这个脚本的来由是在我使用了
CMake
作为Qt
工程的编译工具之后,为了使得即使在没有qtcreator
的情况下也能快速地建立CMake Qt GUI
工程从而使用其他的文本编辑器如VSCode
或者Atom
进行开发,而开发的工程建立脚本。 - 本项目已经发布至我的github
完成的功能
- 自动构建一个标准的
CMake Qt GUI
工程 - 使用了以前的通用懒人
CMake
模板文件 - 可以自定义工程名称
- 从
github
克隆至本地即可重复使用
脚本
脚本构建的标准项目目录
ProjectName #项目目录
├── CMakeLists.txt #项目根目录CMakeLists.txt配置文件
└── src #源码目录
├──utilities #次级原码目录
| ├── CMakeLists.txt #次级源码目录CMakeLists.txt配置文件
| ├── util.h #其他次级源码
| └── util.cpp #其他次级源码
├── CMakeLists.txt #源码目录CMakeLists.txt配置文件
├── main.cpp #程序入口
├── ... #其他项目文件
└── test.cpp #其他项目文件
脚本内容
#! /bin/bash
#create by impressionyang on 2020/01/05
echo "start setting up your own project"
read -p "please input your project name:" project_name
read -p "please input your runable file's name:" file_name
cp -r cmaketest $project_name
sed -i "s/cmaketest/$project_name/g" $project_name/CMakeLists.txt
sed -i "s/cmaketest/$file_name/g" $project_name/src/CMakeLists.txt
echo "project setup finish, please copy your project to your workspace and enjoy your development!"
脚本原理
脚本同级目录下有一个标准的项目工作目录,此目录是为了提供一个标准的工程项目模板而存在的,结构如上述脚本构建的标准项目目录
。而脚本的工作原理就是通过读入你设置的工程名
和可执行文件名
之后复制一份标准工程目录
然后通过字符串定位修改相应值从而产生一个新的通用编辑器的
工程了。
使用
克隆项目至本地
git clone https://github.com/impressionyang/qt_cmanke_project_initialize.git
运行setup.sh文件并设置项目名和可执行文件名(使用英文!!!)
sudo chmod +x setup.sh
./setup
将当前新生成的项目目录拷贝至你的工作目录下进行编程即可
- jackson error 含义log
- java删除文件夹
- JSP自定义tag
- gradle中使用嵌入式(embedded) tomcat, debug 启动
- spring in action 4th --- quick start
- Date, TimeZone, MongoDB, java中date的时区问题
- spring boot 添加拦截器
- spring boot 部署为jar
- 重定向Http status code 303 和 302
- centos7查看系统版本,查看机器位数x86-64
- 在centos7中添加一个新用户,并授权
- 如何优化coding
- 在PowerShell中使用curl(Invoke-WebRequest)
- linux centos中添加删除修改环境变量,设置java环境变量
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 原创 | Git入门教程,详解Git文件的四大状态
- 原创 | ACMer不得不会的线段树,究竟是种怎样的数据结构?
- dplyr包summarize的使用
- Mysql的binlog和relay-log到底长啥样?
- 原创 | matplotlib绘图教程,设置标签与图例
- 原创 | 从抽象类开始,详解责任链模式
- 开发一个渐进式Web应用程序(PWA)前都需要了解什么?
- 知识图谱入门(二)
- 常见编程模式之循环排序
- Python中浅拷贝与深拷贝的骚操作
- 数据概览神器—Pandas-profiling
- 推荐一款MD神器吧:重度MD用户必备神器
- 鸿蒙系统开源
- 40张图看懂分布式追踪系统原理及实践
- 为什么我们需要批量操作?