cmake 学习-cmakelists.txt


 #设置库的路径,电脑里有qt4以及qt5,使用qt5时 设置qt5的环境变量(路径)。
1 set(CMAKE_PREFIX_PATH $ENV{QTDIR})
 2 #设定工程名称
 3 Project(proname)
 4 #设置CMake最低版本要求
 5 cmake_minimum_required(VERSION 3.6.0)
 6
 7 #设置需要用到的Qt模块
 8
 9 FIND_PACKAGE(Qt5Core) #包含qt5core的头文件
10 include_directories(${Qt5Core_INCLUDE_DIRS})
11
12 #设置Boost静态库路径,电脑中有不同版本的boost选择自己需要的
13 SET(Boost_LIBRARY_DIRS $ENV{BOOST_ROOT16}/lib32-msvc-14.0)
14 SET(Boost_INCLUDE_DIRS $ENV{BOOST_ROOT16})
15 SET(Boost_LIBRARIES boost_date_time-vc140-mt-1_62.lib boost_date_time-vc140-mt-gd-1_62.lib)
16 #设置Qt包含的静态库
17 link_directories($ENV{QTDIR}\\lib)
18 set(QT_LIBRARIES Qt5::Core)
19
20 #一些设置项
21 set(QT_USE_QTSQL TRUE)
22
23
24 #增加宏定义
25 if(WIN32)
26     add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
27 endif(WIN32)
28
29 add_definitions(-DPRONAME)
30 add_definitions(-DQT5)
31
32
33 #定义变量
34 SET(CMAKE_BUILD_TYPE    "Debug")
35 set(LIB_DIR             ${PROJECT_SOURCE_DIR}/lib)
36
37
38 #定义一些包含路径
39 SET(ANALYZER_SRC ${PROJECT_SOURCE_DIR}/src)
40
41 #工具链
42 if(ARM)
43   SET(CMAKE_CXX_COMPILER arm-linux-g++)
44 endif()
45
46
47 #添加子目录,进一步Make
4
49 add_subdirectory(src)
50
51 #多核编译
52 if(WIN32)
53     set_target_properties(proname PROPERTIES COMPILE_FLAGS "/MP")
54 else(WIN32)
55 endif(WIN32)

src目录下cmakelists.txt

#创建一系列的变量
set(moc_files
1.h
2.h
)

set(header_files
1.h
2.h
)
set(source_files
1.cpp
2.cpp
)

#头文件路径
include_directories(
./
${PROJECT_SOURCE_DIR}
${Boost_INCLUDE_DIRS}
)

#通过include导入子文件
include("${CMAKE_CURRENT_SOURCE_DIR}/book2/CMakeLists.rules")

#moc
QT5_WRAP_CPP(HEADER_MOCS ${moc_files})
SOURCE_GROUP("moc_cxx" FILES ${HEADER_MOCS})

# HOST链接库路径
link_directories(${Boost_LIBRARY_DIRS} )

#最终目标文件
add_definitions ("-D${MYDLL}_LIB")
set(LIBRARY_OUTPUT_PATH ${LIB_DIR})
add_library(${MYDLL} SHARED ${moc_files} ${source_files} ${header_files} ${HEADER_MOCS})
target_link_libraries(${MYDLL} ${MYDLL_LINK_LIST}) # MYDLL_LINK_LIST通过set设置的一些lib
#多核编译
if(WIN32)
set_target_properties(${MYDLl} PROPERTIES COMPILE_FLAGS "/MP") #多核编译
else(WIN32)
endif(WIN32)

				
时间: 2024-12-13 17:05:22

cmake 学习-cmakelists.txt的相关文章

CMake Intro - CMakeLists.txt

Notes:  directory structure:  cmake, cmake/Tutorial, cmake/Tutorial/MathLibs 1. File lists in cmake/Tutorial CMakeLists.txt TutorialConfig.h.in tutorial.cxx 2. File lists in cmake/Tutorial/MathLibs CMakeLists.txt MathLibs.h mysqrt.cxx 3. cmake/Tutori

QT static link App cmake CMakeLists.txt

project(ovw) cmake_minimum_required(VERSION 2.8) # turn on show compile cmd line SET( CMAKE_VERBOSE_MAKEFILE on ) SET(CMAKE_PREFIX_PATH "F:/Qt5.3.1/win32_static_2013") # Set source dir of cpp SET(SRC_DIR ${PROJECT_SOURCE_DIR}/..) SET(QTLIB_DIR &

《Cmake 实践》[初试 cmake – cmake 的 helloworld] CMakeLists.txt错误

书中所写CMakeLists.txt截图: 构建时报错: 原因:最后一行引用SRC_LIST变量需要添加${}符号,正确的代码如下: 再次构建成功

CMake学习之路

一 为什么使用CMake CMake是一个比make更高级的编译配置工具,它可以根据不同平台.不同的编译器,生成相应的Makefile或者vcproj项目.通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程.CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install).测试安装的程序是否能正确执行(make test,或者ctest).生成当前平台的安装包(make package).生成源码包(ma

cmake学习笔记

CMake是干嘛的,我不详说.我只知道,我写一个程序要将多个文件组织起来并编译.从头写一个MakeFile太麻烦.CMake配置文件比MakeFile要简单很多. 从原理上讲,CMake只是在帮助我们自动生成MakeFile而己.我们编译程序还是要make一下的. 我写了一个简单的示例,内容我们不需要关心,只关心其文件结构就行了.如下: . |-- CMakeLists.txt |-- main.cpp `-- person     |-- CMakeLists.txt     |-- pers

cmake 学习笔记(三)

转自:http://blog.csdn.net/dbzhang800/article/details/6329314 接前面的 Cmake学习笔记(一) 与 Cmake学习笔记(二) 继续学习 cmake 的使用. 学习一下cmake的 finder. finder是神马东西? 当编译一个需要使用第三方库的软件时,我们需要知道: 去哪儿找头文件 .h 对比GCC的 -I 参数 去哪儿找库文件 (.so/.dll/.lib/.dylib/...) 对比GCC的 -L 参数 需要链接的库文件的名字

cmake 学习笔记(四)

接前面的一二三,学习一下 CMakeCache.txt 相关的东西. CMakeCache.txt 可以将其想象成一个配置文件(在Unix环境下,我们可以认为它等价于传递给configure的参数). CMakeLists.txt 中通过 set(... CACHE ...) 设置的变量 CMakeLists.txt 中的 option() 提供的选项 CMakeLists.txt 中find_package() 等find命令引入变量 命令行 cmake . -D <var>:<typ

cmake 学习笔记(二)

在 Cmake学习笔记一 中通过一串小例子简单学习了cmake 的使用方式. 这次应该简单看看语法和常用的命令了. 简单的语法 注释 # 我是注释 命令语法 COMMAND(参数1 参数2 ...) 字符串列表 A;B;C # 分号分割或空格分隔的值 变量(字符串或字符串列表) set(Foo a b c) 设置变量 Foo command(${Foo}) 等价于 command(a b c) command("${Foo}") 等价于 command("a b c"

cmake学习笔记(五)

在cmake 学习笔记(三) 中简单学习了 find_package 的 model 模式,在cmake 学习笔记(四)中了解一个CMakeCache相关的东西.但靠这些知识还是不能看懂PySide使用CMakeLists文件,接下来继续学习find_package的 config 模式及package configure文件相关知识 find_package 的 config 模式 当CMakeLists.txt中使用find_package命令时,首先启用的是 module 模式: 按照 C