cmake configure_file

configure_file: 将一份文件拷贝到另一个位置并修改它的内容

configure_file(<input> <output>
               [COPYONLY] [ESCAPE_QUOTES] [@ONLY]
               [NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ])

复制一个<input>文件到一个<output>文件和替代变量值作为引用@VAR@${VAR}在输入文件内容。每个变量引用将替换为变量的当前值,如果未定义变量,则替换为空字符串。此外,输入行的形式如下:

#cmakedefine VAR ...

将被替换为:

#define VAR ...

要么:

/* #undef VAR */

取决于是否VAR将CMake设置为任何不被视为假常数的值if()命令。变量名称后面的行上的“...”内容(如果有)按上述方式处理。表单的输入文件行将替换为任一或类似。#cmakedefine01 VAR#define VAR 1#define VAR 0

如果输入文件被修改,构建系统将重新运行CMake以重新配置文件并再次生成构建系统。

论点是:

<input>

输入文件的路径。相对路径根据值来处理CMAKE_CURRENT_SOURCE_DIR。输入路径必须是文件,而不是目录。

<output>

输出文件或目录的路径。相对路径根据值来处理CMAKE_CURRENT_BINARY_DIR。如果路径命名现有目录,则输出文件将放在该目录中,文件名与输入文件相同。

COPYONLY

复制文件而不替换任何变量引用或其他内容。此选项可能不会用于NEWLINE_STYLE

ESCAPE_QUOTES

使用反斜杠(C风格)转义任何替换引号。

@ONLY

将变量替换限制为表单的引用@VAR@。这对于配置使用${VAR}语法的脚本很有用。

NEWLINE_STYLE <style>

为输出文件指定换行样式。指定 UNIXLF用于\n换行,或指定 DOSWIN32CRLF用于\r\n换行。此选项可能不会用于COPYONLY

示例

  configure_file(
    ${Slicer_SOURCE_DIR}/CMake/qSlicerExport.h.in
    ${CMAKE_CURRENT_BINARY_DIR}/${MY_EXPORT_HEADER_PREFIX}Export.h
    )
qSlicerExport.h.in
/*=auto=========================================================================

 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) 
 All Rights Reserved.

 See COPYRIGHT.txt
 or http://www.slicer.org/copyright/copyright.txt for details.

 Program:   3D Slicer

=========================================================================auto=*/


// .NAME __@MY_EXPORT_HEADER_PREFIX@Export - manage Windows system differences
// .SECTION Description
// The __@MY_EXPORT_HEADER_PREFIX@Export captures some system differences between Unix
// and Windows operating systems. 

#ifndef __@MY_EXPORT_HEADER_PREFIX@Export_h
#define __@MY_EXPORT_HEADER_PREFIX@Export_h

#if defined(WIN32) && !defined(@MY_LIBNAME@_STATIC)
 #if defined(@MY_LIBNAME@_EXPORTS)
  #define @MY_LIBRARY_EXPORT_DIRECTIVE@ __declspec( dllexport )
 #else
  #define @MY_LIBRARY_EXPORT_DIRECTIVE@ __declspec( dllimport )
 #endif
#else
 #define @MY_LIBRARY_EXPORT_DIRECTIVE@
#endif
@Slicer_EXPORT_HEADER_CUSTOM_CONTENT@
#endif
qSlicerAppExport.h
/*=auto=========================================================================

 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) 
 All Rights Reserved.

 See COPYRIGHT.txt
 or http://www.slicer.org/copyright/copyright.txt for details.

 Program:   3D Slicer

=========================================================================auto=*/


// .NAME __qSlicerAppExport - manage Windows system differences
// .SECTION Description
// The __qSlicerAppExport captures some system differences between Unix
// and Windows operating systems. 

#ifndef __qSlicerAppExport_h
#define __qSlicerAppExport_h

#if defined(WIN32) && !defined(qSlicerApp_STATIC)
 #if defined(qSlicerApp_EXPORTS)
  #define Q_SLICER_APP_EXPORT __declspec( dllexport )
 #else
  #define Q_SLICER_APP_EXPORT __declspec( dllimport )
 #endif
#else
 #define Q_SLICER_APP_EXPORT
#endif

#endif

更多详细参考:https://cmake.org/cmake/help/v3.2/command/configure_file.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值