zoukankan      html  css  js  c++  java
  • cmakelist 定义字符串,替换到脚本中。


    cmake_minimum_required(VERSION 2.6 FATAL_ERROR) cmake_policy(VERSION 2.6) # 1. Project Name project(svp-env NONE) # 2. 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 "19") 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) # 3. 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中的变量值)或者空串当变量未定义。
  • 相关阅读:
    团队作业WEEK3
    团队作业week2#
    团队作业week2
    Team Homework #3
    learning from the previous teams
    Team Homework #2
    Java语法基础相关
    关于Java的专有名词
    图片验证码
    省市二级联动
  • 原文地址:https://www.cnblogs.com/yuguangyuan/p/10174342.html
Copyright © 2011-2022 走看看