【Cmake】宏和函数(marco&function)

宏和函数(marco&function)

  • 基本用法

    • macro

      macro(MACRO_NAME arg)
        message("arg = ${arg}")
      endmacro()
      
    • function

      function(FUNCTION_NAME arg)
        message("arg = ${arg}")
      endfunction()
      
  • 传递列表类型的参数(macro和function相同)

    • // wrong use:
      function(loop_print arg)
          foreach(v ${arg})
              message(${v})
          endforeach()
      endfunction()
      
      loop_print(1 2 3 4) // print 1
      
      // good use:
      function(loop_print arg)
          foreach(v ${ARGV})
              message(${v})
          endforeach()
      endfunction()
      loop_print(1 2 3 4) // print 1 2 3 4
      
    • 传入的值是一个基本类型,则$ = arg

    • 传入的值是一个list,则$=arg[0]其余参数如下:

    • name description test
      ARGC 函数实参的个数 $=arg.length
      ARGV 所有实参列表 $=arg
      ARGN 所有额外实参列表, 即ARGV去掉函数声明时显示指定的实参,剩余的实参 arg.pop();$=arg
      ARGV0 函数第1个实参
      ARGV1 函数第2个实参
      ARGV2 函数第3个实参
      依次类推 依次类推
  • 参考链接

posted @ 2021-01-15 17:06  kudo_shini  阅读(176)  评论(0编辑  收藏  举报