当前位置:网站首页 > Haskell函数式编程 > 正文

cmake project(cmake project函数)



      CMake中的命令project用于设置项目(project)的名称。其格式如下

 
  

      设置project的名称,并将其存储在变量PROJECT_NAME中。从顶层(top-level)CMakeLists.txt调用时,还将project名称存储在变量CMAKE_PROJECT_NAME中。
      还设置变量:
      (1).PROJECT_SOURCE_DIR, <PROJECT-NAME>_SOURCE_DIR: project源目录的绝对路径。
      (2).PROJECT_BINARY_DIR, <PROJECT-NAME>_BINARY_DIR: project二进制目录的绝对路径。
      (3).PROJECT_IS_TOP_LEVEL, <PROJECT-NAME>_IS_TOP_LEVEL: 3.21版本中引入,布尔值,指示project是否为top-level。



 
  

      更多的变量由下面描述的可选参数来设置,如果没有使用这些可选参数中的任何一个,则将相应的变量设置为空字符串
      (1).VERSION <version>:除非policy CMP0048设置为NEW,否则不能使用。采用由非负整数组成的<version>参数,即<major>[.<minor>[.<patch>[.<tweak>]]],并设置变量:

 
  

      3.12版本中引入,从顶层(top-level)CMakeLists.txt调用project命令时,版本也存储在变量CMAKE_PROJECT_VERSION中。

 
  

      (2).DESCRIPTION <project-description-string>:3.9版本中引入,设置变量PROJECT_DESCRIPTION, <PROJECT-NAME>_DESCRIPTION为<project-description-string>。建议:此描述是比较短的字符串,通常不超过几个单词。
      从顶层(top-level)CMakeLists.txt调用project命令时,描述也存储在变量CMAKE_PROJECT_DESCRIPTION中。在3.12版本中,添加了<PROJECT-NAME>_DESCRIPTION变量。

 
  

      (3).HOMEPAGE_URL <url-string>:3.12版本中引入,设置变量PROJECT_HOMEPAGE_URL, <PROJECT-NAME>_HOMEPAGE_URL为<url-string>,它应该是project的规范主页URL。从顶层(top-level)CMakeLists.txt调用project命令时,URL也存储在变量CMAKE_PROJECT_HOMEPAGE_URL中。

 
  

      (4).LANGUAGES <language-name>...:也可以在没有LANGUAGES关键字的情况下指定第一个短签名(short signature)。选择构建(build)project所需的编程语言。支持的编程语言包括:C, CXX(i.e. C++), CUDA, OBJC(i.e. Objective-C), OBJCXX, Fortran, HIP, ISPC,和ASM。如果没有给出编程语言选项,默认情况下启用C和CXX。指定编程语言为NONE,或使用LANGUAGES关键字但不列出任何语言,则会跳过启用任何语言。

 
  

      3.8版本中添加对CUDA支持。3.16版本中添加对OBJC和OBJCXX支持。3.18版本中添加对ISPC支持。如果启用ASM,请将其列在最后,以便CMake可以检查其它编程语言(例如C)的编译器是否也适用于汇编(assembly)。

 
  

      执行上述测试代码需要3个文件:build.sh, CMakeLists.txt, test_project.cmake

     build.sh内容如下:

 
  

      CMakeLists.txt内容如下:

 
  

      test_project.cmake:为上面的所有示例代码

      执行可能的结果如下图所示:

      GitHub

到此这篇cmake project(cmake project函数)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 鸿蒙编程技术(鸿蒙系统 编程)2025-10-26 23:09:05
  • 三方协议支付方式怎么写(三方付款协议怎么有效)2025-10-26 23:09:05
  • 支付方式怎么更换快手(快手支付方式怎么改为微信)2025-10-26 23:09:05
  • ceph分布式存储面试题(分布式缓存面试题)2025-10-26 23:09:05
  • sigmrnd函数(sigmoid 函数)2025-10-26 23:09:05
  • 生成范围内的随机数(随机生成一个范围内的数的函数)2025-10-26 23:09:05
  • modbus报文解析成十进制(modbus报文格式和4x的关系)2025-10-26 23:09:05
  • ini文件编码(ini文件编码格式)2025-10-26 23:09:05
  • cnn算法公式(cnn算法优缺点)2025-10-26 23:09:05
  • sigmoid函数计算公式(sigmoid函数的表达式及其特点)2025-10-26 23:09:05
  • 全屏图片