Mix.cmake 860 B

12345678910111213141516171819202122232425
  1. include(${CMAKE_CURRENT_LIST_DIR}/test_utils.cmake)
  2. include(CMakeParseArguments)
  3. # specify two keywords for each category and set the first keyword of each
  4. # within ARGN
  5. cmake_parse_arguments(pref "OPT1;OPT2" "SINGLE1;SINGLE2" "MULTI1;MULTI2"
  6. OPT1 SINGLE1 foo MULTI1 bar foo bar)
  7. TEST(pref_OPT1 TRUE)
  8. TEST(pref_OPT2 FALSE)
  9. TEST(pref_SINGLE1 foo)
  10. TEST(pref_SINGLE2 UNDEFINED)
  11. TEST(pref_MULTI1 bar foo bar)
  12. TEST(pref_MULTI2 UNDEFINED)
  13. TEST(pref_UNPARSED_ARGUMENTS UNDEFINED)
  14. # same as above but reversed ARGN
  15. cmake_parse_arguments(pref "OPT1;OPT2" "SINGLE1;SINGLE2" "MULTI1;MULTI2"
  16. MULTI1 bar foo bar SINGLE1 foo OPT1)
  17. TEST(pref_OPT1 TRUE)
  18. TEST(pref_OPT2 FALSE)
  19. TEST(pref_SINGLE1 foo)
  20. TEST(pref_SINGLE2 UNDEFINED)
  21. TEST(pref_MULTI1 bar foo bar)
  22. TEST(pref_MULTI2 UNDEFINED)
  23. TEST(pref_UNPARSED_ARGUMENTS UNDEFINED)