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中的变量值)或者空串当变量未定义。
  • 相关阅读:
    Javascript笔记01:javascript入门介绍
    css笔记19:浮动的案例
    css笔记17:盒子模型加强版的案例
    css笔记16:盒子模型的入门案例
    css笔记15:盒子模型
    css笔记14:css文件之间可以相互引用
    HDU 1203 I NEED A OFFER!
    HDU 2955 Robberies
    HDU 2602 Bone Collector
    HDU 2546 饭卡
  • 原文地址:https://www.cnblogs.com/yuguangyuan/p/10174342.html
Copyright © 2011-2022 走看看