cbuild-一个创建和管理C++项目的工具

介绍:

这是个人开发的一个管理C++项目的工具,用shell脚本编写。

可能会不定期更新,也欢迎大家一起完善

当前开发版本0.5。各版本功能如下:

  • version 0.0 -- 初始版本,具备创建、删除、编译、运行项目基本功能
  • version 0.1 -- 在0.0版本基础上使用模板文件,方便用户定制自我需求
  • version 0.5 -- 重构代码,优化参数选项

使用方法:

github地址:https://github.com/caibingcheng/cbuild

gitee地址:https://gitee.com/jerry323/cbuild

github和gitee中该项目是同步的。

安装:

clone项目到本地,进入项目根目录。

git clone git@github.com:caibingcheng/cbuild.git ~/cbuild
cd ~/cbuild

运行install.sh脚本。

sh ./install.sh	#普通安装
sh ./install.sh -f #强制安装,用于重新安装或者添加新功能

安装后,工具包会安装在~/.cbuild下,进入目录,其中template模块包含的是生成项目时一些文件的默认内容,如有需要可以自行修改其中的内容。

注意:在~/.cbuild/template/CMakeLists.txt文件中包含{__CBUILD_PROJECT__}字段,这是工具自定义的,不可修改。

使用:

可用命令:

cbuild -a project #添加项目
cbuild -c project #创建项目
cbuild -r project #删除项目
cbuild -b project #编译项目
cbuild -e project #运行项目
cbuild -f #打开强制开关,可用于强制生成(覆盖)项目、强制编译\移除\运行项目
cbuild -h #显示帮助 cbuild -R #移除当前项目
cbuill -B #编译当前项目
cbuild -E #运行当前项目 cbuild uninstall #卸载工具

大写选项不需要添加参数,默认使用当前项目;比如最近生成的项目或使用-a选项添加的项目。

强制开关打开后造成的项目覆盖破坏是难以逆转的,请合理使用。

注意:项目名称project应该只包含项目名称且合法,不应该包含路径符号和其他非法符号('', '/', '?', etc.)。这是不允许的。

项目树:

project

  |--bin

       |--#binara file(executable file)

  |--build

       |--#MakeFile

  |--src

       |--main.cpp    

  |--include

       |--#include file

  |--lib

       |--#libs

  |--CMakeLists.txt

最新文章

  1. PageRank的java实现
  2. minigui编译
  3. Unity Shader IDE — Sublime Text2
  4. 老项目的#iPhone6与iPhone6Plus适配#LaunchImage适配
  5. 自定义Log模块
  6. 10分钟制作UWP汉堡菜单
  7. hdoj-1233-还是畅通工程
  8. BZOJ 2303 方格染色
  9. Oracle数据库插入图片和读取图片
  10. zipkin分布式链路追踪系统
  11. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony
  12. js实现省市区三级联动
  13. Deploy .Net project automatically with MsBuild and MsDeploy (0)
  14. python基础-------函数(二)
  15. VMware 下快速克隆出多个 Linux 环境
  16. LODOP、C-Lodop简短排查语句
  17. keil5一点project就闪退
  18. php安装xunserch
  19. 【Go】go get 自动代理
  20. [摘抄] SFM 和 Visual SLAM

热门文章

  1. MySQL: Building the best INDEX for a given SELECT
  2. S5700的Eth-Trunk端口汇聚(trunk实验)
  3. 怎样使用 virt-viewer 远程访问 qemu 虚拟机 - 转载
  4. Java语言的主要特点
  5. Hadoop HBase概念学习系列之HLog(二)
  6. 阿里八八Alpha阶段Scrum(9/12)
  7. PyQt5--QCheckBox
  8. BZOJ3787:Gty的文艺妹子序列(分块,树状数组)
  9. Linux命令——用户和用户组管理
  10. layui 弹出层监听 判断弹出框的大小