DATE: 2018.12.15
1、参考
make教程:https://www.w3cschool.cn/mexvtg/adisqozt.html
CMake简介:https://blog.csdn.net/SoaringLee_fighting/article/details/53447198
2、前言
前面讲过makefile的自动化编译过程,可参考多平台编译以及makefile自动化编译总结,make以及makefile是用于进行自动化编译的工具,可以实现对工程的自动化编译。这里讲的是cmake和CMakeList的使用,CMake是一个跨平台的安装(编译)工具,能够输出各种各样的makefile或者project文件。
3、CMake和CMakeLists使用方法
参考一下博客形成总结:
cmake 学习笔记:https://blog.csdn.net/dbzhang800/article/details/6314073
CMake 使用方法:http://www.cnblogs.com/lyq105/archive/2010/12/03/1895067.html
CMakeList的基本写法:https://blog.csdn.net/u010122972/article/details/78216013
cmake使用方法详解:https://www.cnblogs.com/lidabo/p/7359422.html
3.1、CMake使用方法
CMake官方网址:https://cmake.org/
3.2、CMakeLists语法规则及编写方法
4、实例解析
#RD 17.0 CMakeLists
PROJECT(RD)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
INCLUDE_DIRECTORIES(lcommon)
SUBDIRS(lcommon lencod ldecod)
SET(CMAKE_CONFIGURATION_TYPES Debug Release CACHE TYPE INTERNAL FORCE)
SET(CMAKE_SUPPRESS_REGENERATION true)
SET(CMAKE_EXE_LINKER_FLAGS "/NOLOGO /INCREMENTAL:NO /NXCOMPAT /DYNAMICBASE:NO")
SET(RuntimeOutputDir ${CMAKE_BINARY_DIR}/../../source/bin)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${RuntimeOutputDir})
# SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${RuntimeOutputDir})
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${RuntimeOutputDir})
# SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${RuntimeOutputDir})
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
ADD_DEFINITIONS(-DCMAKE_BUILD_TYPE=RELEASE)
ADD_DEFINITIONS(/W3)
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd")