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中的變量值)或者空串當變量未定義。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM