使用CMake(windows vs2015)

学习使用CMake,简单记录一下学到的东西:

CMake使用自己的语法对工程进行配置,方便在各个平台编译。

windows上,安装了CMake后,有gui界面,操作起来很方便。

1.打开gui,选择源码目录(对应${PROJECT_SOURCE_DIR})

2.选择生成目录,最好是${PROJECT_SOURCE_DIR}/build,防止生成文件跟源码搞到一起。

点击configure,偶尔需要两次。configure完工后,去build目录下已经可以看到VS工程文件,打开就可以慢慢调了。

 

CMake要求不多,编译目录下需要有CMakeList.txt,CMake根据CMakeList酌句执行。

这里贴一个用到的CMakeList.txt,并简单注释(目前理解还不够,仅仅是配置对应了vs的哪一项)

cmake_minimum_required(VERSION 2.8)
#工程名
project(projectName)
#输出
message("project source dir: ${PROJECT_SOURCE_DIR}")
#添加编译选项 -D为预编译选项
set(CMAKE_C_FLAGS "-fshort-wchar -fPIC -DHAVE_CONFIG_H -O0 -DNDEBUG")
set(CMAKE_CXX_FLAGS "-std=c++11 -fshort-wchar -frtti -fPIC -fexceptions -O0 -DNDEBUG" )
#同上
add_definitions(-D_WINDOWS_PLATFORM)

#下面是一些CMake的编程语法 set用的最多,就是设置变量 类似于 +=
set(DIR_LIST src src/utils
)

foreach(DIR ${DIR_LIST})
#message("dir:${DIR}")
#查找当前目录下所有的源文件并保存在SRC中
aux_source_directory(${DIR} SRC)
#message("src:${SRC}")
set(SRC_LIST ${SRC_LIST} ${SRC})
endforeach(DIR)

set(SRC_LIST ${SRC_LIST} 
demo/windows/main.cpp
)
#message("srclist:${SRC_LIST}")

#add_subdirectory(${PROJECT_SOURCE_DIR}/deps/curlcpp)

#添加到头文件
include_directories(
${PROJECT_SOURCE_DIR}/demo/windows/include
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src/
)

#附加库目录
link_directories(${PROJECT_SOURCE_DIR}/demo/windows/libs/)
#使用SRC_LIST中的文件生成可执行文件hello
add_executable(hello ${SRC_LIST} )
#附加依赖项
target_link_libraries(hello OpenGL32 GLU32)

下面是一篇极好的CMake学习文档,CMake practice

 

《使用CMake(windows vs2015)》上有1条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注