cmakelist.txt编译实例
来源:互联网 发布:windows 10激活 编辑:程序博客网 时间:2024/05/22 12:29
cmake_minimum_required ( VERSION 3.0 )set ( PROJ_NAME $D{PROJ_NAME_LOWER} )project ( ${PROJ_NAME} )# 1) 指定变量set ( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)# 2) 检查平台 & 生成配置头文件# 3) 源列表AUX_SOURCE_DIRECTORY( ../../common COMMON_LIST )AUX_SOURCE_DIRECTORY( ../../auxproc AUXPROC_LIST )SET ( RES_LIST ../../resource/$D{PROJ_NAME_LOWER}res.rc )set ( SOURCE_LIST ${COMMON_LIST} ${AUXPROC_LIST} ${RES_LIST} )# 3-1) 子目标 CMakeListmessage("found source files below:")foreach( F ${SOURCE_LIST} )message(${F})endforeach(${F})# 4) 确定目标# 4.1) 指定附加的头文件搜索路径与库文件搜索路径# include_directories ( 相对于 CMakeList 的路径 )# link_directories ( 相对于 CMakeList 的路径 )# add_definitions( -DMacro1 -DMacro2 ) 添加预定义编译宏# add_dependencies( target-name depend-target1 depend-target2 ... ) 添加依赖规则set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D$D{PROJ_NAME_UPPER}_CFG_DIAG_USE_MEM_CNTR -D$D{PROJ_NAME_UPPER}_CFG_DIAG_USE_DBG_OUTPUT -D$D{PROJ_NAME_UPPER}_CFG_DIAG_USE_ASSERT")set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D$D{PROJ_NAME_UPPER}_CFG_DIAG_USE_MEM_CNTR -D$D{PROJ_NAME_UPPER}_CFG_DIAG_USE_DBG_OUTPUT -D$D{PROJ_NAME_UPPER}_CFG_DIAG_USE_ASSERT")set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D$D{PROJ_NAME_UPPER}_CFG_DIAG_USE_MEM_CNTR ")set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D$D{PROJ_NAME_UPPER}_CFG_DIAG_USE_MEM_CNTR ")# 4.2) 指定生成的目标需要链接的库add_library( ${PROJ_NAME} SHARED ${SOURCE_LIST} )#target_link_libraries( ${PROJ_NAME} debug opencl )#target_link_libraries( ${PROJ_NAME} optimized opencl )set_target_properties( ${PROJ_NAME} PROPERTIES DEBUG_OUTPUT_NAME ${PROJ_NAME}d )set_target_properties( ${PROJ_NAME} PROPERTIES RELEASE_OUTPUT_NAME ${PROJ_NAME} )# 5) 复制生成文件install ( TARGETS ${PROJ_NAME} ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/lib CONFIGURATIONS Release Debug )# 将扫描所有 DIRECTORY 下面的子目录,并自动建立相应子目录,将所有符合模式的文件复制进install( FILES ${PROJECT_SOURCE_DIR}/../../common/$D{PROJ_NAME_LOWER}def.h ${PROJECT_SOURCE_DIR}/../../common/$D{PROJ_NAME_LOWER}diag.hxx ${PROJECT_SOURCE_DIR}/../../common/$D{PROJ_NAME_LOWER}sys.hxx DESTINATION ${CMAKE_INSTALL_PREFIX}/include/common )install ( DIRECTORY ${PROJECT_BINARY_DIR}/Debug/ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib FILES_MATCHING PATTERN "$D{PROJ_NAME_LOWER}d.pdb" )install ( DIRECTORY ${PROJECT_BINARY_DIR}/Release/ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib FILES_MATCHING PATTERN "$D{PROJ_NAME_LOWER}.pdb" )
0 0
- cmakelist.txt编译实例
- CmakeList.txt 简单说明(PCL 实例)
- CMakeList.txt
- CmakeList.txt学习 简单说明(PCL OpenCV 实例)
- linux编译C++的cmake文件(CMakeList.txt)
- CMake 使用方法 & CMakeList.txt
- cmake笔记(CMakeList.txt)
- CMakelist.txt与makefile
- CMakeList.txt学习
- 通用的CMakeList.txt
- CMake 介绍 & CMakeList.txt
- cmakelist.txt文件编写
- CMake 使用方法 & CMakeList.txt
- CMakeList.txt的详解
- caffe的CMakeList.txt注释
- OpenCV项目CMakeList实例
- ipp sample cmake编译uic、application、picnic时需要Qt4(已安装Qt4.8.5)cmakelist.txt修改
- 阅读 apiextractor 的CMakeList.txt文件
- 远程在线重装centos 7
- avro-c的编译安装和使用(转)
- ACM 奇偶数分离 (Java)
- SpringMVC+Spring+Hibernate搭建实例
- Linux命令man/ls/chmod/cd/cp
- cmakelist.txt编译实例
- 可靠事件实现微服务下最终一致性事务
- 2017年愚人节思考
- 30套最实用JAVA学习视频教程合集
- VS2015 编译QT项目出现error MSB6006: “cmd.exe”已退出,代码为 3。
- MapReduce处理xml文件(使用旧API)
- 为什么alert不弹出了?
- 机器学习之正则化(Regularization)
- OGG-01296 ORA-14402