cmake 笔记
来源:互联网 发布:淘宝网休闲运动套装 编辑:程序博客网 时间:2024/04/28 14:36
CMAKE_MINIMUM_REQUIRED( VERSION 2.6 FATAL_ERROR )
PROJECT( rec_plugins )
#要显示执行构建过程中详细的信息(比如为了得到更详细的出错信息),可以在CMakeList.txt内加入:
SET (CMAKE_VERBOSE_MAKEFILE on)
SET (CMAKE_CXX_COMPILER "g++")
SET (CMAKE_CXX_FLAGS "-std=c++0x -fPIC -Wall -O2 -DNEWARCH -DPOSIX -DPOSIX -DMONGO_HAVE_STDINT -D__STDC_LIMIT_MACROS")
SET (CMAKE_C_FLAGS "-fPIC -Wall -O2 -DNEWARCH -DPOSIX -DMONGO_HAVE_STDINT -fno-strict-aliasing -fwrapv -Wstrict-prototypes")
MESSAGE ( STATUS "**************** Release ****************" )
#${${PROJECT_NAME}_SOURCE_DIR} 本文件所在目录的绝对路径
GET_FILENAME_COMPONENT( PROJECT_BUILD_DIR "${${PROJECT_NAME}_SOURCE_DIR}" ABSOLUTE)
GET_FILENAME_COMPONENT( PROJECT_ROOT_DIR "${PROJECT_BUILD_DIR}/../" ABSOLUTE )
GET_FILENAME_COMPONENT( PROJECT_CMAKE_DIR "${PROJECT_BUILD_DIR}/cmake/" ABSOLUTE )
# Print debug message
MESSAGE( STATUS "DEBUG: ${PROJECT_NAME}_SOURCE_DIR ${${PROJECT_NAME}_SOURCE_DIR}" )
MESSAGE( STATUS "DEBUG: PROJECT_ROOT_DIR ${PROJECT_ROOT_DIR}" )
MESSAGE( STATUS "DEBUG: PROJECT_CMAKE_DIR ${PROJECT_CMAKE_DIR}" )
# optional cmake file
#从给定的文件中读取CMake的清单文件代码。在清单文件中的命令会被立即处理,就像它们是写在这条include命令展开的地方一样。
INCLUDE( "cmake/contrib.cmake" OPTIONAL )
INCLUDE( "cmake/bootstrap.cmake" OPTIONAL )
INCLUDE( "cmake/UseIce.cmake" OPTIONAL )
# ----------------------------------------------------------------------------------
SET ( REC_PLUGIN_DIR "${PROJECT_ROOT_DIR}/src" )
# GLOB选项将会为所有匹配查询表达式的文件生成一个文件list,并将该list存储进变量variable里。文件名查询表达式与正则表达式类似,只不过更加简单。
FILE( GLOB REC_PLUGINS RELATIVE "${REC_PLUGIN_DIR}" "${REC_PLUGIN_DIR}/[a-zA-Z]?*")
MESSAGE ( STATUS "REC_PLUGIN_DIR: ${REC_PLUGIN_DIR}" )
MESSAGE ( STATUS "REC_PLUGINS: ${REC_PLUGINS}" )
FOREACH ( rec_plugin ${REC_PLUGINS} )
FILE( GLOB REC_PLUGIN_SOURCE
"${PROJECT_ROOT_DIR}/src/${rec_plugin}/*.cpp")
MESSAGE (STATUS "${REC_PLUGIN_SOURCE}")
ADD_LIBRARY(${rec_plugin} SHARED "${REC_PLUGIN_SOURCE}")
#将给定的库链接到一个目标上。 target_link_libraries(<target> [item1 [item2 [...]]] [[debug|optimized|general] <item>] ...)
TARGET_LINK_LIBRARIES(${rec_plugin} librule_engine_grammar.so libGlacier2.so )
#设置目标的一些属性来改变它们构建的方式。set_target_properties(target1 target2 ...PROPERTIES prop1 value1prop2 value2 ...)PREFIX和SUFFIX属性覆盖#了默认的目标名前缀(比如lib)和后缀(比如.so)
SET_TARGET_PROPERTIES(${rec_plugin} PROPERTIES PREFIX "")
ENDFOREACH ( rec_plugin )
- cmake笔记
- cmake 笔记
- CMake笔记
- cmake笔记
- CMAKE 笔记
- cmake学习笔记
- cmake 学习笔记(一)
- cmake 学习笔记(二)
- cmake 学习笔记(三)
- cmake 学习笔记(四)
- cmake学习笔记(五)
- cmake 学习笔记(六)
- Cmake学习笔记
- cmake 学习笔记(一)
- cmake 学习笔记(二)
- cmake 学习笔记(三)
- cmake 学习笔记(一)
- CMake 学习笔记
- selector
- quartz与spring整合
- Android之四大图片缓存原理、特性对比分析
- [Python]pythonProxy 实现代理服务器详解
- 第1章 分布式系统的简介
- cmake 笔记
- Android梳理 Activity
- ExtDeprecationWarning: Importing flask.ext.bootstrap is deprecated, use flask_bootstrap instead.
- 笔试题72. LeetCode OJ (59)
- Fragment 与FragmentActivity通信封装
- 关于freeMark转义字符的处理
- RHEL6.1 安装 Oracle10gr2 (图文、解析)
- Qt 常用容器
- 内部类、成员内部类、局部内部类