#设置库的路径,电脑里有qt4以及qt5,使用qt5时 设置qt5的环境变量(路径)。
 set(CMAKE_PREFIX_PATH $ENV{QTDIR})
#设定工程名称
Project(proname)
#设置CMake最低版本要求
cmake_minimum_required(VERSION 3.6.) #设置需要用到的Qt模块 FIND_PACKAGE(Qt5Core)
#包含qt5core的头文件
include_directories(${Qt5Core_INCLUDE_DIRS}) #设置Boost静态库路径,电脑中有不同版本的boost选择自己需要的
SET(Boost_LIBRARY_DIRS $ENV{BOOST_ROOT16}/lib32-msvc-14.0)
SET(Boost_INCLUDE_DIRS $ENV{BOOST_ROOT16})
SET(Boost_LIBRARIES boost_date_time-vc140-mt-1_62.lib boost_date_time-vc140-mt-gd-1_62.lib)
#设置Qt包含的静态库
link_directories($ENV{QTDIR}\\lib)
set(QT_LIBRARIES Qt5::Core) #一些设置项
set(QT_USE_QTSQL TRUE) #增加宏定义
if(WIN32)
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
endif(WIN32) add_definitions(-DPRONAME)
add_definitions(-DQT5) #定义变量
SET(CMAKE_BUILD_TYPE "Debug")
set(LIB_DIR ${PROJECT_SOURCE_DIR}/lib) #定义一些包含路径
SET(ANALYZER_SRC ${PROJECT_SOURCE_DIR}/src) #工具链
if(ARM)
SET(CMAKE_CXX_COMPILER arm-linux-g++)
endif() #添加子目录,进一步Make add_subdirectory(src) #多核编译
if(WIN32)
set_target_properties(proname PROPERTIES COMPILE_FLAGS "/MP")
else(WIN32)
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)


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

  1. CMake Intro - CMakeLists.txt

    Notes:  directory structure:  cmake, cmake/Tutorial, cmake/Tutorial/MathLibs 1. File lists in cmake/ ...

  2. Ros学习——Cmakelists.txt文件解读

    1.过程 .Required CMake Version (cmake_minimum_required) //CMake 需要的版本 .Package Name (project()) //#定义工 ...

  3. CMake之CMakeLists.txt编写入门

    自定义变量 主要有隐式定义和显式定义两种. 隐式定义的一个例子是PROJECT指令,它会隐式的定义< projectname >_BINARY_DIR和< projectname & ...

  4. Cmake知识----编写CMakeLists.txt文件编译C/C++程序

    1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...

  5. [CMAKE] 详解CMakeLists.txt文件

    [快速查询]https://cmake.org/cmake/help/v2.8.8/cmake.html#section_Commands 1 CMake简介 CMake是跨平台编译工具,比make更 ...

  6. Cmake知识----编写CMakeLists.txt文件编译C/C++程序(转)

    1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...

  7. CMakeLists.txt使用

    背景:C++代码在编译的过程中需要进行文件的包含,该文主要介绍CMakeLists.txt相关语法 CMake之CMakeLists.txt编写入门

  8. CMake学习笔记四:usb_cam的CMakeLists解析

    最近在学习cmake,在完整看了<cmake实践>一书后,跟着书上例程敲了跑了一遍,也写了几篇相关读书笔记,算是勉强基本入门了.所以找了usb_cam软件包的CMakeLists.txt来 ...

  9. CMAKE 生成VS2008静态库工程 与 CMAKE使用,CMakeLists.txt编写总结

    cmake -G"Visual Studio 9 2008 Win64" 以上命令得用cd命令切换到顶层CMakeLists.txt的当前目录,才能生效 以下是CMakeLists ...

随机推荐

  1. ASP.NET Core分布式项目-1.IdentityServer4登录中心

    源码下载 一.添加服务端的api 1.添加NUGet包 IdentityServer4 点击下载,重新生成 2.添加Startup配置 打开Startup文件 public class Startup ...

  2. MongoDB查询操作

    按条件查询 比较操作:$lt,$lte,$gt,$gte,$ne db.user.find({}}); $or :包含多个条件,他们之间为or的关系 ,$nor相当于or取反 db.user.find ...

  3. datagrid使用和文字超出tip提示

    function LoadTable(queryData) {             $("#eventInfoTable").datagrid({               ...

  4. Android中BroadcastReceiver的使用

    1.Android中广播分为静态注册和动态注册 2.下面是一个简单静态注册的例子 创建一个继承BroadcastReceiver的子类 public class DeviceBootReceiver ...

  5. linux shell数值比较和字符串比较

    说明: 1. 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较:但是把整型当成字符串进行比较,0123这些数值完 ...

  6. dockerfile构建nginx

    mkdir docker_demo cd docker_demo wget http://nginx.org/download/nginx-1.2.9.tar.gz vim Dockerfile FR ...

  7. python 操作Hbase 详解

    博文参考:https://www.cnblogs.com/tashanzhishi/p/10917956.html 如果你们学习过Python,可以用Python来对Hbase进行操作. happyb ...

  8. 操作系统 (OS)

    1. 操作系统(Operation System,OS) 操作系统作为接口的示意图 没有安装操作系统的计算机,通常被称为 裸机 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序 如果计 ...

  9. 第三章 Django之动态网页基础(1)

    前一章中,我们解释了如何建立一个 Django 项目并启动 Django 开发服务器.当然,那个网站实际并没有干什么有用的事情,它所做的只是显示 It worked!消息.让我们来做些改变.本章将介绍 ...

  10. Android休眠唤醒机制

    有四种方式可以引起休眠 ①在wake_unlock()中, 如果发现解锁以后没有任何其他的wake lock了, 就开始休眠 ②在定时器到时间以后, 定时器的回调函数会查看是否有其他的wake loc ...