cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

cmake_policy(VERSION 2.6)

# . Project Name

project(svp-env NONE)

# . Project Build

string(TOUPPER $ENV{SVP_PLATFORM} SVP_PLATFORM)

string(TOUPPER $ENV{SVP_BASELINE} SVP_BASELINE)

set(SVP_UPSTREAM_VERSION "18.08")

set(SVP_VERSION "")

string(TIMESTAMP SVP_BUILD_DATE "%Y-%m-%d %H:%M:%S")

set(SVP_TIMEZONE "+0800")
MESSAGE("-----------------${SVP_BUILD_DATE}")
configure_file(conf/svp.version.sh.in svp.version.sh @ONLY) # . Project Install install(DIRECTORY conf/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}
FILES_MATCHING PATTERN svp.*.sh PATTERN *.ini PATTERN *.conf PATTERN *.json) install(FILES conf/$ENV{SVP_PLATFORM}.svp.env.dev.sh
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}
RENAME svp.env.dev.sh) install(FILES conf/$ENV{SVP_PLATFORM}.svp.env.uit.sh
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}
RENAME svp.env.uit.sh) install(FILES conf/$ENV{SVP_PLATFORM}.svp.env.extra.sh
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}
RENAME svp.env.extra.sh) install(FILES conf/$ENV{SVP_PLATFORM}.svp.init.cgroup.sh
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}
RENAME svp.init.cgroup.sh) install(FILES conf/$ENV{SVP_PLATFORM}.svp.startup.sh
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}
RENAME svp.startup.sh) install(FILES conf/$ENV{SVP_PLATFORM}.svp.update.sh
DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}
RENAME svp.update.sh) install(FILES ${CMAKE_BINARY_DIR}/svp.version.sh DESTINATION ${CMAKE_INSTALL_SYSCONFDIR})

svp.version.sh.in

export SVP_VERSION="@SVP_PLATFORM@_SVP@SVP_BASELINE@_@SVP_UPSTREAM_VERSION@.@SVP_VERSION@"

export SVP_BUILD_DATE="@SVP_BUILD_DATE@@SVP_TIMEZONE@"

使用了configure_file 把cmakelist里面的变量,用它的值代替。

configure_file 的作用是让普通文件也能使用CMake中的变量。
也就是说代码文件中可以使用CMake中的变量。
语法如下:
configure_file(<input> <output>
[COPYONLY] [ESCAPE_QUOTES] [@ONLY]
[NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])
Copies an <input> file to an <output> file and substitutes variable values referenced as @VAR@ or ${VAR} in the input file content.
Each variable reference will be replaced with the current value of the variable, or the empty string if the variable is not defined.
Furthermore, input lines of the form: 拷贝一个 <input>(输入文件) 文件到 <output> (输出文件),并且替换输入文件中被 @VAR@ 或者 ${VAR} 引用的变量值。每一个变量将被替换成当前的变量值(注:CMake中的变量值)或者空串当变量未定义。

最新文章

  1. Premiere Pro &amp; After Effects插件开发调试方法
  2. Xdebug文档(六) 分析PHP脚本
  3. CStdioFile CString 读写中文
  4. mybatis异常:Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}问题分析及解决
  5. linux pipe
  6. combox源码解析
  7. 一个简单json数据提交实例
  8. 怎样在官网上下载xcode7.2
  9. 获取当前元素节点的position和宽高(兼容)
  10. SpringMVC构建Restful。
  11. CNN中的经典结构之AlexNet
  12. es6涉及的那点东西
  13. 与http协作的web服务器--代理、网关、隧道
  14. windows客户端走代理上网
  15. ssh centos 上传文件
  16. 建筑的永恒之道 (C&#183;亚历山大 著)
  17. [Asp.net]绝对路径和相对路径
  18. oplog
  19. Java 中的代理模式及动态代理
  20. AWS之SSH登录:使用 PuTTY 从 Windows 连接到 Linux 实例

热门文章

  1. python序列和其它类型的比较
  2. 牛客网暑期ACM多校训练营(第四场):A Ternary String(欧拉降幂)
  3. 【视频编解码&#183;学习笔记】4. H.264的码流封装格式 &amp; 提取NAL有效数据
  4. PRML学习笔记第一章
  5. Amazon移除差评适用范围 - Amazon request for the feedback removal
  6. struts传值方式ModelDriven的使用
  7. 线段树---poj3468 A Simple Problem with Integers:成段增减:区间求和
  8. Docker 安装与常用命令介绍
  9. 多线程PV
  10. 【leetcode】300.Longest Increasing Subsequence