Explorar el Código

Tests: Factor out XcodeProject-Embed check function findAttribute()

Craig Scott hace 4 años
padre
commit
f62a2bf44f

+ 3 - 13
Tests/RunCMake/XcodeProject-Embed/EmbedFrameworksFlagsOff-check.cmake

@@ -1,14 +1,4 @@
-function(findAttribute project attr)
-  execute_process(
-      COMMAND grep ${attr} ${RunCMake_TEST_BINARY_DIR}/${project}.xcodeproj/project.pbxproj
-      OUTPUT_VARIABLE output_var
-      RESULT_VARIABLE result_var
-  )
+include(${CMAKE_CURRENT_LIST_DIR}/findAttribute.cmake)
 
-  if(NOT result_var)
-    set(RunCMake_TEST_FAILED "${attr} attribute is set" PARENT_SCOPE)
-  endif()
-endfunction()
-
-findAttribute(${test} "RemoveHeadersOnCopy")
-findAttribute(${test} "CodeSignOnCopy")
+findAttribute(${test} "RemoveHeadersOnCopy" FALSE)
+findAttribute(${test} "CodeSignOnCopy" FALSE)

+ 3 - 13
Tests/RunCMake/XcodeProject-Embed/EmbedFrameworksFlagsOnNoSubdir-check.cmake

@@ -1,14 +1,4 @@
-function(findAttribute project attr)
-  execute_process(
-      COMMAND grep ${attr} ${RunCMake_TEST_BINARY_DIR}/${project}.xcodeproj/project.pbxproj
-      OUTPUT_VARIABLE output_var
-      RESULT_VARIABLE result_var
-  )
+include(${CMAKE_CURRENT_LIST_DIR}/findAttribute.cmake)
 
-  if(result_var)
-    set(RunCMake_TEST_FAILED "${attr} attribute not set" PARENT_SCOPE)
-  endif()
-endfunction()
-
-findAttribute(${test} "RemoveHeadersOnCopy")
-findAttribute(${test} "CodeSignOnCopy")
+findAttribute(${test} "RemoveHeadersOnCopy" TRUE)
+findAttribute(${test} "CodeSignOnCopy" TRUE)

+ 3 - 13
Tests/RunCMake/XcodeProject-Embed/EmbedFrameworksFlagsOnWithSubdir-check.cmake

@@ -1,14 +1,4 @@
-function(findAttribute project attr)
-  execute_process(
-      COMMAND grep ${attr} ${RunCMake_TEST_BINARY_DIR}/${project}.xcodeproj/project.pbxproj
-      OUTPUT_VARIABLE output_var
-      RESULT_VARIABLE result_var
-  )
+include(${CMAKE_CURRENT_LIST_DIR}/findAttribute.cmake)
 
-  if(result_var)
-    set(RunCMake_TEST_FAILED "${attr} attribute not set" PARENT_SCOPE)
-  endif()
-endfunction()
-
-findAttribute(${test} "RemoveHeadersOnCopy")
-findAttribute(${test} "CodeSignOnCopy")
+findAttribute(${test} "RemoveHeadersOnCopy" TRUE)
+findAttribute(${test} "CodeSignOnCopy" TRUE)

+ 19 - 0
Tests/RunCMake/XcodeProject-Embed/findAttribute.cmake

@@ -0,0 +1,19 @@
+cmake_policy(VERSION 3.1...3.20)
+
+function(findAttribute project attr expectPresent)
+  execute_process(
+      COMMAND grep ${attr} ${RunCMake_TEST_BINARY_DIR}/${project}.xcodeproj/project.pbxproj
+      OUTPUT_VARIABLE output_var
+      RESULT_VARIABLE result_var
+  )
+
+  if(${expectPresent})
+    if(result_var)
+      set(RunCMake_TEST_FAILED "${attr} attribute is not set" PARENT_SCOPE)
+    endif()
+  else()
+    if(NOT result_var)
+      set(RunCMake_TEST_FAILED "${attr} attribute is set" PARENT_SCOPE)
+    endif()
+  endif()
+endfunction()