Support target/host architecture with ninja iOS builds

When iOS builds support ninja and enable GYP_CROSSCOMPILE=1, ninja
will build breakpad, protoc and iossim using host arch instead
of the sub-out-ninja workaround.

[email protected]
BUG=236517

Review URL: https://chromiumcodereview.appspot.com/14597007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199827 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/testing/gtest.gyp b/testing/gtest.gyp
index 97e5637..42cf571 100644
--- a/testing/gtest.gyp
+++ b/testing/gtest.gyp
@@ -65,7 +65,7 @@
         }],
         ['OS == "ios"', {
           'dependencies' : [
-            '<(DEPTH)/testing/iossim/iossim.gyp:iossim',
+            '<(DEPTH)/testing/iossim/iossim.gyp:iossim#host',
           ],
           'direct_dependent_settings': {
             'target_conditions': [
diff --git a/testing/iossim/iossim.gyp b/testing/iossim/iossim.gyp
index 74f87be..a5c9d30a 100644
--- a/testing/iossim/iossim.gyp
+++ b/testing/iossim/iossim.gyp
@@ -4,84 +4,84 @@
 
 {
   'conditions': [
-    ['OS != "ios"', {
+    ['OS!="ios" or "<(GENERATOR)"=="ninja"', {
       'targets': [
         {
           'target_name': 'iossim',
-            'type': 'executable',
-            'variables': {
-              'developer_dir': '<!(xcode-select -print-path)',
-              'iphone_sim_path': '<(developer_dir)/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks',
-              'other_frameworks_path': '<(developer_dir)/../OtherFrameworks'
-            },
-            'dependencies': [
-              'third_party/class-dump/class-dump.gyp:class-dump',
-            ],
-            'include_dirs': [
-              '<(INTERMEDIATE_DIR)/iossim',
-            ],
-            'sources': [
-              'iossim.mm',
-              '<(INTERMEDIATE_DIR)/iossim/iPhoneSimulatorRemoteClient.h',
-            ],
-            'libraries': [
-              '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
-            ],
-            'actions': [
-              {
-                'action_name': 'generate_iphone_sim_header',
-                'inputs': [
-                  '<(iphone_sim_path)/iPhoneSimulatorRemoteClient.framework/Versions/Current/iPhoneSimulatorRemoteClient',
-                  '<(PRODUCT_DIR)/class-dump',
-                ],
-                'outputs': [
-                  '<(INTERMEDIATE_DIR)/iossim/iPhoneSimulatorRemoteClient.h'
-                ],
-                'action': [
-                  # Actions don't provide a way to redirect stdout, so a custom
-                  # script is invoked that will execute the first argument and write
-                  # the output to the file specified as the second argument.
-                  './redirect-stdout.sh',
-                  '<(PRODUCT_DIR)/class-dump -CiPhoneSimulator <(iphone_sim_path)/iPhoneSimulatorRemoteClient.framework',
-                  '<(INTERMEDIATE_DIR)/iossim/iPhoneSimulatorRemoteClient.h',
-                ],
-                'message': 'Generating header',
-              },
-            ],
+          'toolsets': ['host'],
+          'type': 'executable',
+          'variables': {
+            'developer_dir': '<!(xcode-select -print-path)',
+            'iphone_sim_path': '<(developer_dir)/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks',
+            'other_frameworks_path': '<(developer_dir)/../OtherFrameworks'
           },
-        ],
-      }, {  # else, OS == "ios"
-        'variables': {
-          'ninja_output_dir': 'ninja-iossim',
-          'ninja_product_dir':
-            '$(SYMROOT)/<(ninja_output_dir)/<(CONFIGURATION_NAME)',
-        },
-        'targets': [
-          {
-            'target_name': 'iossim',
-            'type': 'none',
-            'variables': {
-              # Gyp to rerun
-              're_run_targets': [
-                 'testing/iossim/iossim.gyp',
+          'dependencies': [
+            'third_party/class-dump/class-dump.gyp:class-dump#host',
+          ],
+          'include_dirs': [
+            '<(INTERMEDIATE_DIR)/iossim',
+          ],
+          'sources': [
+            'iossim.mm',
+            '<(INTERMEDIATE_DIR)/iossim/iPhoneSimulatorRemoteClient.h',
+          ],
+          'libraries': [
+            '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
+          ],
+          'actions': [
+            {
+              'action_name': 'generate_iphone_sim_header',
+              'inputs': [
+                '<(iphone_sim_path)/iPhoneSimulatorRemoteClient.framework/Versions/Current/iPhoneSimulatorRemoteClient',
+                '<(PRODUCT_DIR)/class-dump',
               ],
+              'outputs': [
+                '<(INTERMEDIATE_DIR)/iossim/iPhoneSimulatorRemoteClient.h'
+              ],
+              'action': [
+                # Actions don't provide a way to redirect stdout, so a custom
+                # script is invoked that will execute the first argument and write
+                # the output to the file specified as the second argument.
+                './redirect-stdout.sh',
+                '<(PRODUCT_DIR)/class-dump -CiPhoneSimulator <(iphone_sim_path)/iPhoneSimulatorRemoteClient.framework',
+                '<(INTERMEDIATE_DIR)/iossim/iPhoneSimulatorRemoteClient.h',
+              ],
+              'message': 'Generating header',
             },
-            'includes': ['../../build/ios/mac_build.gypi'],
-            'actions': [
-              {
-                'action_name': 'compile iossim',
-                'inputs': [],
-                'outputs': [],
-                'action': [
-                  '<@(ninja_cmd)',
-                  'iossim',
-                ],
-                'message': 'Generating the iossim executable',
-              },
+          ],
+        },
+      ],
+    }, {  # else, OS=="ios" and "<(GENERATOR)"!="ninja"
+      'variables': {
+        'ninja_output_dir': 'ninja-iossim',
+        'ninja_product_dir':
+          '<(DEPTH)/xcodebuild/<(ninja_output_dir)/<(CONFIGURATION_NAME)',
+      },
+      'targets': [
+        {
+          'target_name': 'iossim',
+          'type': 'none',
+          'variables': {
+            # Gyp to rerun
+            're_run_targets': [
+               'testing/iossim/iossim.gyp',
             ],
           },
-        ],
-      },
-    ],
+          'includes': ['../../build/ios/mac_build.gypi'],
+          'actions': [
+            {
+              'action_name': 'compile iossim',
+              'inputs': [],
+              'outputs': [],
+              'action': [
+                '<@(ninja_cmd)',
+                'iossim',
+              ],
+              'message': 'Generating the iossim executable',
+            },
+          ],
+        },
+      ],
+    }],
   ],
 }