summaryrefslogtreecommitdiff
path: root/deps/gyp/test/mac/xcode-env-order/test.gyp
diff options
context:
space:
mode:
Diffstat (limited to 'deps/gyp/test/mac/xcode-env-order/test.gyp')
-rw-r--r--deps/gyp/test/mac/xcode-env-order/test.gyp121
1 files changed, 121 insertions, 0 deletions
diff --git a/deps/gyp/test/mac/xcode-env-order/test.gyp b/deps/gyp/test/mac/xcode-env-order/test.gyp
new file mode 100644
index 0000000000..8f975f7d6b
--- /dev/null
+++ b/deps/gyp/test/mac/xcode-env-order/test.gyp
@@ -0,0 +1,121 @@
+# Copyright (c) 2012 Google Inc. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+{
+ 'targets': [
+ {
+ 'target_name': 'test_app',
+ 'product_name': 'Test',
+ 'type': 'executable',
+ 'mac_bundle': 1,
+ 'sources': [
+ 'main.c',
+ 'file.ext1',
+ 'file.ext2',
+ 'file.ext3',
+ ],
+ # Env vars in copies.
+ 'copies': [
+ {
+ 'destination': '<(PRODUCT_DIR)/${PRODUCT_NAME}-copy-brace',
+ 'files': [ 'main.c', ], # ${SOURCE_ROOT} doesn't work with xcode
+ },
+ {
+ 'destination': '<(PRODUCT_DIR)/$(PRODUCT_NAME)-copy-paren',
+ 'files': [ '$(SOURCE_ROOT)/main.c', ],
+ },
+ {
+ 'destination': '<(PRODUCT_DIR)/$PRODUCT_NAME-copy-bare',
+ 'files': [ 'main.c', ], # $SOURCE_ROOT doesn't work with xcode
+ },
+ ],
+ # Env vars in actions. The $FOO's are here to test that env vars that
+ # aren't defined are handled in some way that doesn't break the build.
+ 'actions': [
+ {
+ 'action_name': 'Action copy braces ${PRODUCT_NAME} ${FOO}',
+ 'description': 'Action copy braces ${PRODUCT_NAME} ${FOO}',
+ 'inputs': [ '${SOURCE_ROOT}/main.c' ],
+ # Referencing ${PRODUCT_NAME} in action outputs doesn't work with
+ # the Xcode generator (PRODUCT_NAME expands to "Test Support").
+ 'outputs': [ '<(PRODUCT_DIR)/action-copy-brace.txt' ],
+ 'action': [ 'cp', '${SOURCE_ROOT}/main.c',
+ '<(PRODUCT_DIR)/action-copy-brace.txt' ],
+ },
+ {
+ 'action_name': 'Action copy parens $(PRODUCT_NAME) $(FOO)',
+ 'description': 'Action copy parens $(PRODUCT_NAME) $(FOO)',
+ 'inputs': [ '$(SOURCE_ROOT)/main.c' ],
+ # Referencing $(PRODUCT_NAME) in action outputs doesn't work with
+ # the Xcode generator (PRODUCT_NAME expands to "Test Support").
+ 'outputs': [ '<(PRODUCT_DIR)/action-copy-paren.txt' ],
+ 'action': [ 'cp', '$(SOURCE_ROOT)/main.c',
+ '<(PRODUCT_DIR)/action-copy-paren.txt' ],
+ },
+ {
+ 'action_name': 'Action copy bare $PRODUCT_NAME $FOO',
+ 'description': 'Action copy bare $PRODUCT_NAME $FOO',
+ 'inputs': [ '$SOURCE_ROOT/main.c' ],
+ # Referencing $PRODUCT_NAME in action outputs doesn't work with
+ # the Xcode generator (PRODUCT_NAME expands to "Test Support").
+ 'outputs': [ '<(PRODUCT_DIR)/action-copy-bare.txt' ],
+ 'action': [ 'cp', '$SOURCE_ROOT/main.c',
+ '<(PRODUCT_DIR)/action-copy-bare.txt' ],
+ },
+ ],
+ # Env vars in xcode_settings.
+ 'xcode_settings': {
+ 'INFOPLIST_FILE': 'Info.plist',
+ 'STRING_KEY': '/Source/Project',
+
+ 'BRACE_DEPENDENT_KEY2': '${STRING_KEY}/${PRODUCT_NAME}',
+ 'BRACE_DEPENDENT_KEY1': 'D:${BRACE_DEPENDENT_KEY2}',
+ 'BRACE_DEPENDENT_KEY3': '${PRODUCT_TYPE}:${BRACE_DEPENDENT_KEY1}',
+
+ 'PAREN_DEPENDENT_KEY2': '$(STRING_KEY)/$(PRODUCT_NAME)',
+ 'PAREN_DEPENDENT_KEY1': 'D:$(PAREN_DEPENDENT_KEY2)',
+ 'PAREN_DEPENDENT_KEY3': '$(PRODUCT_TYPE):$(PAREN_DEPENDENT_KEY1)',
+
+ 'BARE_DEPENDENT_KEY2': '$STRING_KEY/$PRODUCT_NAME',
+ 'BARE_DEPENDENT_KEY1': 'D:$BARE_DEPENDENT_KEY2',
+ 'BARE_DEPENDENT_KEY3': '$PRODUCT_TYPE:$BARE_DEPENDENT_KEY1',
+
+ 'MIXED_DEPENDENT_KEY': '${STRING_KEY}:$(PRODUCT_NAME):$MACH_O_TYPE',
+ },
+ # Env vars in rules. The $FOO's are here to test that env vars that
+ # aren't defined are handled in some way that doesn't break the build.
+ 'rules': [
+ {
+ 'rule_name': 'brace_rule',
+ 'message': 'Rule braces ${PRODUCT_NAME} ${FOO} <(RULE_INPUT_NAME)',
+ 'extension': 'ext1',
+ 'inputs': [ '${SOURCE_ROOT}/main.c' ],
+ 'outputs': [ '<(PRODUCT_DIR)/rule-copy-brace.txt' ],
+ 'action': [ 'cp', '${SOURCE_ROOT}/main.c',
+ '<(PRODUCT_DIR)/rule-copy-brace.txt' ],
+ },
+ {
+ 'rule_name': 'paren_rule',
+ 'message': 'Rule parens $(PRODUCT_NAME) $(FOO) <(RULE_INPUT_NAME)',
+ 'extension': 'ext2',
+ 'inputs': [ '$(SOURCE_ROOT)/main.c' ],
+ 'outputs': [ '<(PRODUCT_DIR)/rule-copy-paren.txt' ],
+ 'action': [ 'cp', '$(SOURCE_ROOT)/main.c',
+ '<(PRODUCT_DIR)/rule-copy-paren.txt' ],
+ },
+ # TODO: Fails in xcode. Looks like a bug in the xcode generator though
+ # (which uses makefiles for rules, and thinks $PRODUCT_NAME is
+ # $(P)RODUCT_NAME).
+ #{
+ # 'rule_name': 'bare_rule',
+ # 'message': 'Rule copy bare $PRODUCT_NAME $FOO',
+ # 'extension': 'ext3',
+ # 'inputs': [ '$SOURCE_ROOT/main.c' ],
+ # 'outputs': [ '<(PRODUCT_DIR)/rule-copy-bare.txt' ],
+ # 'action': [ 'cp', '$SOURCE_ROOT/main.c',
+ # '<(PRODUCT_DIR)/rule-copy-bare.txt' ],
+ #},
+ ],
+ },
+ ],
+}