ArgvN.cmake 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. include(${CMAKE_CURRENT_LIST_DIR}/test_utils.cmake)
  2. function(test1)
  3. cmake_parse_arguments(PARSE_ARGV 0
  4. pref "OPT1;OPT2" "SINGLE1;SINGLE2" "MULTI1;MULTI2")
  5. TEST(pref_OPT1 TRUE)
  6. TEST(pref_OPT2 FALSE)
  7. TEST(pref_SINGLE1 "foo;bar")
  8. TEST(pref_SINGLE2 UNDEFINED)
  9. TEST(pref_MULTI1 bar foo bar)
  10. TEST(pref_MULTI2 UNDEFINED)
  11. TEST(pref_UNPARSED_ARGUMENTS UNDEFINED)
  12. endfunction()
  13. test1(OPT1 SINGLE1 "foo;bar" MULTI1 bar foo bar)
  14. function(test2 arg1)
  15. cmake_parse_arguments(PARSE_ARGV 1
  16. pref "OPT1;OPT2" "SINGLE1;SINGLE2" "MULTI1;MULTI2")
  17. TEST(arg1 "first named")
  18. TEST(pref_OPT1 TRUE)
  19. TEST(pref_OPT2 FALSE)
  20. TEST(pref_SINGLE1 "foo;bar")
  21. TEST(pref_SINGLE2 UNDEFINED)
  22. TEST(pref_MULTI1 bar "foo;bar")
  23. TEST(pref_MULTI2 UNDEFINED)
  24. TEST(pref_UNPARSED_ARGUMENTS UNDEFINED)
  25. endfunction()
  26. test2("first named" OPT1 SINGLE1 "foo;bar" MULTI1 bar "foo;bar")
  27. function(test3 arg1)
  28. cmake_parse_arguments(PARSE_ARGV 0
  29. pref "" "" "")
  30. TEST(pref_UNPARSED_ARGUMENTS "foo;bar" dog cat)
  31. endfunction()
  32. test3("foo;bar" dog cat)