CMake 手册详解(二十一)
上个月为了一个新加的功能披星戴月,没有时间照顾博文,很长时间木有更新。一直到长假即将收假,才有了时间重新打理这行将荒芜的文章。所以嘛,这次一定要多翻译些,好弥补下上个月的缺失~~
============================================================================
CMD#58: option
为用户提供一个可选项。
option(<option_variable> "描述选项的帮助性文字" [initial value])
该命令为用户提供了一个在ON和OFF中做出选择的选项。如果没有指定初始值,将会使用OFF作为初值。如果有些选项依赖于其他选项的值,参见CMakeDependentOption模块的帮助文件。
CMD#59: output_required_files
输出一个list,其中包含了一个给定源文件所需要的其他源文件。
output_required_files(srcfile outputfile)
输出一个指定的源文件所需要的所有源文件的list。这个list会写到outputfile变量中。该命令的功能是将srcfile的依赖性写出到outputfile中,不过该命令将尽可能地跳过.h文件,搜索依赖中的.cxx,.c和.cpp文件。
CMD#60: project
为整个工程设置一个工程名。
project(<projectname> [languageName1 languageName2 ... ] )
为本工程设置一个工程名。而且,该命令还将变量<projectName>_BINARY_DIR和<projectName>_SOURCE_DIR设置为对应值。后面的可选项还可以让你指定你的工程可以支持的语言。比如CXX(即C++),C,Fortran,等等。在默认条件下,支持C和CXX语言。例如,如果你没有C++编译器,你可以通过列出你想要支持的语言,例如C,来明确地禁止对它的检查。使用特殊语言"NONE",针对任何语言的检查都会被禁止。
CMD#61: qt_wrap_cpp
创建Qt包裹器。
qt_wrap_cpp(resultingLibraryName DestName SourceLists ...)
为所有在SourceLists中列出的.h文件生成moc文件。这些moc文件将会被添加到那些使用DestName源文件列表的库文件中。
Produce moc files for all the .h files listed in the SourceLists. The moc files will be added to the library using the DestName source list.
CMD#62: qt_wrap_ui
创建Qt的UI包裹器。
qt_wrap_ui(resultingLibraryName HeadersDestName SourcesDestName SourceLists ...)
为所有在SourceLists中列出的.ui文件生成.h和.cxx文件。这些.h文件会被添加到使用HeadersDestNamesource列表的库中。这些.cxx文件会被添加到使用SourcesDestNamesource列表的库中。
CMD#63: remove_definitions
取消由add_definitions命令添加的-D定义标志。
remove_definitions(-DFOO -DBAR ...)
在当前及以下的路径,从编译命令行中取消(由add_definitions命令添加的)标志。
CMD#64: return
从一个文件,路径或函数内返回。
return()
从一个文件,路径或函数中返回。若出现在一个include文件里(经由include()或find_package()命令),该命令会导致当前文件的处理过程停止,并且将控制权转移到试图包含它的文件中。若出现在一个不被任何文件包含的文件中,例如,一个CMakeLists.txt中,那么该命令将控制权转移到父目录下,如果存在这样的父目录的话。如果在一个函数中调用return函数,控制权会返回到该函数的调用函数那里。注意,宏不是函数,它不会像函数那样去处理return命令。