XcodeSchemaProperty-check.cmake 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. function(check_property property matcher)
  2. set(schema "${RunCMake_TEST_BINARY_DIR}/XcodeSchemaProperty.xcodeproj/xcshareddata/xcschemes/${property}.xcscheme")
  3. file(STRINGS ${schema} actual-${property}
  4. REGEX "${matcher}" LIMIT_COUNT 1)
  5. if(NOT actual-${property})
  6. string(APPEND RunCMake_TEST_FAILED
  7. "Xcode schema property ${property}: Could not find\n"
  8. " ${matcher}\n"
  9. "in schema\n"
  10. " ${schema}\n"
  11. )
  12. set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE)
  13. endif()
  14. endfunction()
  15. function(expect_schema target)
  16. set(schema "${RunCMake_TEST_BINARY_DIR}/XcodeSchemaProperty.xcodeproj/xcshareddata/xcschemes/${target}.xcscheme")
  17. if(NOT EXISTS ${schema})
  18. string(APPEND RunCMake_TEST_FAILED
  19. "Missing schema for target ${target}\n"
  20. )
  21. set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE)
  22. endif()
  23. endfunction()
  24. function(expect_no_schema target)
  25. set(schema "${RunCMake_TEST_BINARY_DIR}/XcodeSchemaProperty.xcodeproj/xcshareddata/xcschemes/${target}.xcscheme")
  26. if(EXISTS ${schema})
  27. string(APPEND RunCMake_TEST_FAILED
  28. "Found unexpected schema\n"
  29. " ${schema}\n"
  30. )
  31. set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE)
  32. endif()
  33. endfunction()
  34. check_property("ADDRESS_SANITIZER" "enableAddressSanitizer")
  35. check_property("ADDRESS_SANITIZER_USE_AFTER_RETURN" "enableASanStackUseAfterReturn")
  36. check_property("THREAD_SANITIZER" "enableThreadSanitizer")
  37. check_property("THREAD_SANITIZER_STOP" "stopOnEveryThreadSanitizerIssue")
  38. check_property("UNDEFINED_BEHAVIOUR_SANITIZER" "enableUBSanitizer")
  39. check_property("UNDEFINED_BEHAVIOUR_SANITIZER_STOP" "stopOnEveryUBSanitizerIssue")
  40. check_property("DISABLE_MAIN_THREAD_CHECKER" "disableMainThreadChecker")
  41. check_property("MAIN_THREAD_CHECKER_STOP" "stopOnEveryMainThreadCheckerIssue")
  42. check_property("DISABLE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION" "enableGPUValidationMode")
  43. check_property("ENABLE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION" "enableGPUShaderValidationMode")
  44. check_property("MALLOC_SCRIBBLE" "MallocScribble")
  45. check_property("MALLOC_GUARD_EDGES" "MallocGuardEdges")
  46. check_property("GUARD_MALLOC" "DYLD_INSERT_LIBRARIES")
  47. check_property("ZOMBIE_OBJECTS" "NSZombieEnabled")
  48. check_property("MALLOC_STACK" "MallocStackLogging")
  49. check_property("DYNAMIC_LINKER_API_USAGE" "DYLD_PRINT_APIS")
  50. check_property("DYNAMIC_LIBRARY_LOADS" "DYLD_PRINT_LIBRARIES")
  51. check_property("ENABLE_GPU_FRAME_CAPTURE_MODE_1" "enableGPUFrameCaptureMode=\"1\"")
  52. check_property("ENABLE_GPU_FRAME_CAPTURE_MODE_3" "enableGPUFrameCaptureMode=\"3\"")
  53. check_property("ENABLE_GPU_FRAME_CAPTURE_MODE_DISABLED" "enableGPUFrameCaptureMode=\"3\"")
  54. check_property("ENABLE_GPU_FRAME_CAPTURE_MODE_METAL" "enableGPUFrameCaptureMode=\"1\"")
  55. check_property("ENABLE_GPU_FRAME_CAPTURE_MODE_DISABLED_MIXED_CASE" "enableGPUFrameCaptureMode=\"3\"")
  56. check_property("ENABLE_GPU_FRAME_CAPTURE_MODE_METAL_MIXED_CASE" "enableGPUFrameCaptureMode=\"1\"")
  57. check_property("LAUNCH_MODE_AUTO" "launchStyle=\"0\"")
  58. check_property("LAUNCH_MODE_WAIT" "launchStyle=\"1\"")
  59. check_property("EXECUTABLE" "myExecutable")
  60. check_property("ARGUMENTS" [=["--foo"]=])
  61. check_property("ARGUMENTS" [=["--bar=baz"]=])
  62. check_property("ENVIRONMENT" [=[key="FOO"]=])
  63. check_property("ENVIRONMENT" [=[value="foo"]=])
  64. check_property("ENVIRONMENT" [=[key="BAR"]=])
  65. check_property("ENVIRONMENT" [=[value="bar"]=])
  66. check_property("WORKING_DIRECTORY" [=["/working/dir"]=])
  67. expect_no_schema("NoSchema")
  68. expect_schema("CustomTarget")
  69. expect_schema("ALL_BUILD")