程序人生

 

cmake学习笔记2

                                                   CMAKE 学习笔记(二)

上篇文字忘记归类了,现在也不知道怎么修改过来,第一创建个人c++博客

cmake学习笔记1

上次简单的语法指令有
PROJECT
SET
MESSAGE
ADD_EXECUTABLE


上次我们是采用in-source-build内部构建
对于大的项目(o(╯□╰)o,helloworld这个就很小了)一般使用out-source-build外部构建的方式来
创建工程

Example2 外部构建的helloworld简单工程
目录结构如图

build目录为我们构建工程所在的目录,目录可更改
src目录为源文件目录

工程下的CMakeLists.txt文件内容
PROJECT(HelloWorld)

CMAKE_MINIMUM_REQUIRED(VERSION 
2.6)

   MESSAGE(STATUS 
"This is BINARY dir " ${HelloWorld_BINARY_DIR})
   MESSAGE(STATUS 
"This is SOURCE dir " ${HelloWorld_SOURCE_DIR})


ADD_SUBDIRECTORY(src)

    MESSAGE(STATUS 
"Install our project " ${CMAKE_INSTALL_PREFIX})

INSTALL(FILES COPYRIGHT.txt README.txt DESTINATION SDK)
INSTALL(DIRECTORY doc
/ DESTINATION SDK/doc)


src目录下的CMakeLists.txt文件
SET(SRC_LIST main.cpp)

   SET(EXECUTABLE_OUTPUT_PATH $
{PROJECT_BINARY_DIR}/bin)

   ADD_EXECUTABLE(helloworld $
{SRC_LIST})

运行结果:
在build目录下cmake -DCMAKE_INSTALL_PREFIX=. ..
第一. 指当前目录,如果不指定_DCMAKE_INSTALL_PREFIX,CMAKE_INSTALL_PREFIX的默认值为c:\Program Files\${projectname}下


打开工程文件

编译,默认install项目会被跳过,然后选中install编译

可以看到
相关文件已被复制到指定目录下了

只是这个例子没有把执行文件和相关库复制到SDK中

最后简单总结使用到的新的语法指令
CMake搭建项目工程中每个目录中都应有CMakeLists.txt文件

CMAKE_MINIMUM_REQUIRED(VERSITON 2.6)版本要求,使用cmake-gui时这个是必须加上的
但前最新的cmake版本似乎是2.8
ADD_SUBDIRECTORY指令
ADD_SUBDIRECTORY(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
如果没有指定[binary_dir]默认名称为source_dir

最后是INSTALL指令
INSTALL(FILES COPYRIGHT.txt README.txt DESTINATION SDK)
INSTALL(DIRECTORY doc/ DESTINATION SDK/doc)

目前用的是安装文件和目录 DESTINATION为-DCMAKE_INSTALL_PREFIX指定的目录

就不过多的赘述了~~~

posted on 2010-08-02 01:09 柒絲藕 阅读(386) 评论(0)  编辑 收藏 引用 所属分类: cmake學習筆記


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜