cmake 中的 commands

来源:互联网 发布:2017网络热搜词 编辑:程序博客网 时间:2024/06/11 12:18
  • project 设置工程的名字。语法:project(<projectname> [languageName1 languageName2 ... ] )。注意这条指令还隐式定义了另外两个变量<projectName>_BINARY_DIR 和<projectName>_SOURCE_DIR,并分别赋值。
  • add_executable 添加一个可执行文件到工程中,并指定所需的源文件。语法:add_executable(<name> [WIN32] [MACOSX_BUNDLE]
                     [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)
  • add_definitions 添加-D 选项到编译器,原则上可添加任意选项,但他一开始是设计为添加预处理宏定义的。语法:add_definitions(-DFOO -DBAR ...) 
  • add_library 添加一个库到工程中,并指定所需的源文件。语法:add_library(<name> [STATIC | SHARED | MODULE]
                  [EXCLUDE_FROM_ALL] source1 source2 ... sourceN)
    注意<name>的命名形式:mingw下为lib<name>.a; msvc下为<name>.lib
    此命令还有另一种使用形式:添加外部库到工程中。语法:add_library(<name> <SHARED|STATIC|MODULE|UNKNOWN> IMPORTED)
    IMPORTED 表明此库在工程之外,是target_link_libraries的方便形式。外部库的详细信息通过set_target_properties
    设置以IMPORTED_开头的属性来完成,其中最重要的就是 IMPORTED_LOCATION 属性,它指定外部库的位置。
    例如:
    add_library(boost_system STATIC IMPORTED)
    set_target_properties(boost_system PROPERTIES IMPORTED_LOCATION /path/to/libboost_system.a)
    target_link_libraries(huang boost_system)
    等价于:
    target_link_libraries(huang /path/to/libboost_system.a)
  • add_subdirectory 添加子目录。语法:add_subdirectory(source_dir [binary_dir] 
                       [EXCLUDE_FROM_ALL])
  • set 设置CMAKE变量值。语法:set(<variable> <value>
          [[CACHE <type> <docstring> [FORCE]] | PARENT_SCOPE])
  • set_property 设置属性。语法:set_property(<GLOBAL |
                    DIRECTORY [dir]                   |
    TARGET [target1 [target2 ...]] |
    SOURCE [src1 [src2 ...]] |
    TEST [test1 [test2 ...]] |
    CACHE [entry1 [entry2 ...]]>
    [APPEND]
    PROPERTY <name> [value1 [value2 ...]])
  • set_target_properties 设置target的属性。语法:set_target_properties(target1 target2 ...
                            PROPERTIES prop1 value1
    prop2 value2 ...)
  • set_source_files_properties 设置源文件的属性。语法:set_source_files_properties([file1 [file2 [...]]]
                                  PROPERTIES prop1 value1
    [prop2 value2 [...]])
  • set_directory_properties 设置目录的属性。语法:set_directory_properties(PROPERTIES prop1 value1 prop2 value2)
  • message 显式一条消息。语法:message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]
              "message to display" ...)
  • include_directories 添加头文件搜索路径,相当于gcc命令行参数 -I。语法:include_directories([AFTER|BEFORE] [SYSTEM] dir1 dir2 ...)。
  • link_directories 指定一个目录,链接时会自动搜索此目录下的库文件,相当于gcc命令行参数 -L。语法:link_directories(directory1 directory2 ...)需要注意的是此命令只能应用于在它之后生成的target,即先执行link_directories再执行add_executable(target,...)才会对target有效果。
  • target_link_libraries 将target与给定的动态库/静态库进行链接,相当于gcc命令行参数 -l。语法:target_link_libraries(<target> [item1 [item2 [...]]]
    [[debug|optimized|general] <item>] ...)。注意item可使用绝对路径。参考:add_library

原创粉丝点击