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中的变量值)或者空串当变量未定义。
原文链接: https://www.cnblogs.com/yuguangyuan/p/10174342.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/397737
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!