cmake常用语句一览

cmake_minimum_required(VERSION 2.8.2 FATAL_ERROR)

project("ProjName")

// 不推荐使用add_definitions来设置编译选项,作用如同cmake -D
add_definitions(
    -std=c++11 # Or -std=c++0x
    -Wall
    -Wfatal-errors
    # Other flags
)

// 一般通过下条语句设置编译选项
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wfatal-errors -fPIC")

//变量:CMAKE_PREFIX_PATH: Path used for searching by FIND_XXX(), with appropriate suffixes added。
set(CMAKE_PREFIX_PATH /path/path/path)

//头文件路径
include_directories(
    include
    other/include
)

//源文件路径,在子目录中
add_subdirectory (
    someDirectory
    src/otherDirecotry
)

//寻找某个目录中的所有源文件,格式:aux_source_directory(<dir> <variable>)
aux_source_directory(src _srcFiles)

//list操作
list(REMOVE_ITEM _srcFiles "src/f4.cpp")    //从变量中去掉某一项
list(APPEND <list> <element> [<element> ...])   //添加某一项到变量中

//链接库目录
link_directories(directory1 directory2 ...)

//生成库文件
add_library(mylib [SHARED]
  mylib.cpp
  other.cpp
)

//生成可执行程序
add_executable(a.out
    main.cpp
    src/func.cpp
)

//链接函数库
target_link_libraries(a.out mylib)

//设置变量
set(someVariable "some string")
//打印消息
message(STATUS "some status ${someVariable}")

//检查编译器是否支持某一个编译选项
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
        message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
// cmake的交叉编译环境设置,创建文件toolchain.cmake,添加以下内容:
# this one is important
SET(CMAKE_SYSTEM_NAME Linux)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)

# specify the cross compiler
SET(CMAKE_C_COMPILER   /opt/arm/arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER /opt/arm/arm-linux-gnueabihf-g++)

# where is the target environment
SET(CMAKE_FIND_ROOT_PATH  /opt/arm/install)

# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

//If this file is named toolchain.cmake and is located in your home directory and you are building in the subdirectory build then you can do:
~/src$ cd build
~/src/build$ cmake -DCMAKE_TOOLCHAIN_FILE=~/toolchain.cmake ..

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-03 17:57:29

cmake常用语句一览的相关文章

cmake 常用变量和常用环境变量查表手册

cmake 常用变量和常用环境变量查表手册 一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定义变量的方式: 主要有隐式定义和显式定义两种,前面举了一个隐式定义的例子,就是 PROJECT 指令,他会隐式的定义<projectname>_BINARY_DIR 和<projectname>_SOURCE_DIR 两个变量.显式定义的例子我们前面也提到了,使用 SET 指令,就可以

cmake 常用变量和常用环境变量

cmake 常用变量和常用环境变量 一.cmake 变量引用的方式 前面我们已经提到了,使用${ }进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${ }取值. 二.cmake 自定义变量的方式 主要有隐式定义和显式定义两种,前面举了一个隐式定义的例子,就是 PROJECT 指令,他会隐式的定义"<projectname>_BINARY_DIR "和"<projectname>_SOURCE_DIR "两个变量. 使用 SET

sql server常用函数、常用语句

一.常用函数 1.字符串函数 : charindex(':','abc:123')    --寻找一个字符在一段字符串中起始的位置 len('zhangsan')   --获取一段字符串的长度 left('Ly,君子之耀',2) --从一段字符串左边返回指定长度的字符 right(char_expr,int_expr)  --返回字符串右边int_expr个字符 substring(expression,start,length) --截取字符串 datalength(Char_expr)  -

SQL 常用语句

–-表现最差的前10名使用查询 SELECT TOP 10 ProcedureName = t.text, ExecutionCount = s.execution_count, AvgExecutionTime = isnull ( s.total_elapsed_time / s.execution_count, 0 ), AvgWorkerTime = s.total_worker_time / s.execution_count, TotalWorkerTime = s.total_wo

SQL常用语句积累

SQL 常用语句积累: 一. SQL 基本语句 SQL 分类: DDL -数据定义语言 (Create , Alter , Drop , DECLARE) DML -数据操纵语言 (Select , Delete , Update , Insert) DCL -数据控制语言 (GRANT , REVOKE , COMMIT , ROLLBACK) 首先 , 简要介绍基础语句: 1 .说明:创建数据库 Create DATABASE database-name 2 .说明:删除数据库 drop d

mysql数据库常用语句2

关于mysql常用语句的整理,上一篇涉及到ddl.dml以及一些简单的查询语句. 1:mysql分页查询 select * from table_name limit 5,10;   从下标为5元素查询,查询10条记录,注意:mysql下标从0开始 2:关联查询 select a.id,a.name,b.id,b.name from table_name a ,table_name b where a.id=b.id;   表a和表b以字段id关联查询 3:比较下面语句 select * fro

cmake常用工程示例大集合

1 简单的可执行文件生成工程 1.1 源文件   main.cpp #include <stdio.h> int main(int argc, char *argv[]) { printf("Hello CMake!/n"); return 0; } 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1.2 CMakeLists.txt文件   CMakeLists.txt # 版本限定 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

Oracle 常用语句整理

Oracle 常用语句整理 最近做了份大型数据库作业.遇到了一些问题,在网上找的很是辛苦,于是,将一些常用的语句记录下来,方便大家学习.都是一些基本的东西.如果忘了,可以来看看. 1.创建临时表空间 create temporary tablespace car_data //car_data,表空间名 tempfile 'C:\Users\Administrator\Desktop\car_data.dbf'//表空间路径 size 50m autoextend on next 50m max

【Oracle】常用语句集合

1 oracle常用经典SQL查询 2 常用SQL查询: 3 4 1.查看表空间的名称及大小 5 6 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size 7 from dba_tablespaces t, dba_data_files d 8 where t.tablespace_name = d.tablespace_name 9 group by t.tablespace_name; 10 11 2.查看表空间物