Hello community, here is the log from the commit of package gyp for openSUSE:Factory checked in at 2016-08-31 00:01:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gyp (Old) and /work/SRC/openSUSE:Factory/.gyp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gyp" Changes: -------- --- /work/SRC/openSUSE:Factory/gyp/gyp.changes 2016-07-20 09:16:05.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.gyp.new/gyp.changes 2016-08-31 00:01:15.000000000 +0200 @@ -1,0 +2,15 @@ +Sun Aug 28 12:09:58 UTC 2016 - [email protected] + +- Update to version 0+git.20160810: + * Adds support for a new target spec: 'mac_xcuitest_bundle'. This allows us to create UI testing bundles. + * Enabling /ZW (CompileAsWinRT) option for msvs + * ninja/mac: Add horrible workaround for horrible Xcode 7.3 ld bug. + * [gyp-ninja] Set simulator and device SDKROOT for iOS. + * Ignore more Xcode stderr logging information. + * Only call CopyStringsFile if convert_to_binary is False. + * Fix :rfc1034identifier when the value contains underscore. + * Complete PBXCopyFilesBuildPhase TODO in xcodeproj_file.py. + * Make the ninja backend transitively check for C++ sources to use the C++ compiler for linking + * Add new target type called windows_driver. * Modify GYP to set the PlatformToolset, the DriverType and the TargetVersion * Add msvs_target_version configuration + +------------------------------------------------------------------- Old: ---- gyp-0+git.20160620.tar.xz New: ---- gyp-0+git.20160810.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gyp.spec ++++++ --- /var/tmp/diff_new_pack.Bl5nXM/_old 2016-08-31 00:01:16.000000000 +0200 +++ /var/tmp/diff_new_pack.Bl5nXM/_new 2016-08-31 00:01:16.000000000 +0200 @@ -18,7 +18,7 @@ Name: gyp -Version: 0+git.20160620 +Version: 0+git.20160810 Release: 0 Summary: Generate Your Projects License: BSD-3-Clause ++++++ gyp-0+git.20160620.tar.xz -> gyp-0+git.20160810.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/pylib/gyp/MSVSUtil.py new/gyp-0+git.20160810/pylib/gyp/MSVSUtil.py --- old/gyp-0+git.20160620/pylib/gyp/MSVSUtil.py 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/pylib/gyp/MSVSUtil.py 2016-08-10 22:13:45.000000000 +0200 @@ -14,6 +14,7 @@ 'loadable_module': 'dll', 'shared_library': 'dll', 'static_library': 'lib', + 'windows_driver': 'sys', } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/pylib/gyp/generator/msvs.py new/gyp-0+git.20160810/pylib/gyp/generator/msvs.py --- old/gyp-0+git.20160620/pylib/gyp/generator/msvs.py 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/pylib/gyp/generator/msvs.py 2016-08-10 22:13:45.000000000 +0200 @@ -46,6 +46,8 @@ generator_default_variables = { + 'DRIVER_PREFIX': '', + 'DRIVER_SUFFIX': '.sys', 'EXECUTABLE_PREFIX': '', 'EXECUTABLE_SUFFIX': '.exe', 'STATIC_LIB_PREFIX': '', @@ -272,6 +274,10 @@ tool[setting] = value +def _ConfigTargetVersion(config_data): + return config_data.get('msvs_target_version', 'Windows7') + + def _ConfigPlatform(config_data): return config_data.get('msvs_configuration_platform', 'Win32') @@ -919,6 +925,8 @@ toolset = default_config.get('msbuild_toolset') if not toolset and version.DefaultToolset(): toolset = version.DefaultToolset() + if spec['type'] == 'windows_driver': + toolset = 'WindowsKernelModeDriver10.0' return toolset @@ -1102,6 +1110,7 @@ 'shared_library': '2', # .dll 'loadable_module': '2', # .dll 'static_library': '4', # .lib + 'windows_driver': '5', # .sys 'none': '10', # Utility type }[spec['type']] except KeyError: @@ -1286,6 +1295,7 @@ 'executable': ('VCLinkerTool', 'Link', '$(OutDir)', '.exe'), 'shared_library': ('VCLinkerTool', 'Link', '$(OutDir)', '.dll'), 'loadable_module': ('VCLinkerTool', 'Link', '$(OutDir)', '.dll'), + 'windows_driver': ('VCLinkerTool', 'Link', '$(OutDir)', '.sys'), 'static_library': ('VCLibrarianTool', 'Lib', '$(OutDir)lib\\', '.lib'), } output_file_props = output_file_map.get(spec['type']) @@ -1348,7 +1358,8 @@ def _GetModuleDefinition(spec): def_file = '' - if spec['type'] in ['shared_library', 'loadable_module', 'executable']: + if spec['type'] in ['shared_library', 'loadable_module', 'executable', + 'windows_driver']: def_files = [s for s in spec.get('sources', []) if s.endswith('.def')] if len(def_files) == 1: def_file = _FixPath(def_files[0]) @@ -2710,14 +2721,20 @@ return properties + def _GetMSBuildConfigurationDetails(spec, build_file): properties = {} for name, settings in spec['configurations'].iteritems(): msbuild_attributes = _GetMSBuildAttributes(spec, settings, build_file) condition = _GetConfigurationCondition(name, settings) character_set = msbuild_attributes.get('CharacterSet') + config_type = msbuild_attributes.get('ConfigurationType') _AddConditionalProperty(properties, condition, 'ConfigurationType', - msbuild_attributes['ConfigurationType']) + config_type) + if config_type == 'Driver': + _AddConditionalProperty(properties, condition, 'DriverType', 'WDM') + _AddConditionalProperty(properties, condition, 'TargetVersion', + _ConfigTargetVersion(settings)) if character_set: if 'msvs_enable_winrt' not in spec : _AddConditionalProperty(properties, condition, 'CharacterSet', @@ -2816,6 +2833,7 @@ '1': 'Application', '2': 'DynamicLibrary', '4': 'StaticLibrary', + '5': 'Driver', '10': 'Utility' }[config_type] return config_type @@ -2855,6 +2873,7 @@ 'executable': 'Link', 'shared_library': 'Link', 'loadable_module': 'Link', + 'windows_driver': 'Link', 'static_library': 'Lib', } msbuild_tool = msbuild_tool_map.get(spec['type']) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/pylib/gyp/generator/ninja.py new/gyp-0+git.20160810/pylib/gyp/generator/ninja.py --- old/gyp-0+git.20160620/pylib/gyp/generator/ninja.py 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/pylib/gyp/generator/ninja.py 2016-08-10 22:13:45.000000000 +0200 @@ -148,6 +148,9 @@ # because dependents only link against the lib (not both the lib and the # dll) we keep track of the import library here. self.import_lib = None + # Track if this target contains any C++ files, to decide if gcc or g++ + # should be used for linking. + self.uses_cpp = False def Linkable(self): """Return true if this is a target that can be linked against.""" @@ -375,9 +378,6 @@ self.target = Target(spec['type']) self.is_standalone_static_library = bool( spec.get('standalone_static_library', 0)) - # Track if this target contains any C++ files, to decide if gcc or g++ - # should be used for linking. - self.uses_cpp = False self.target_rpath = generator_flags.get('target_rpath', r'\$$ORIGIN/lib/') @@ -425,6 +425,8 @@ target = self.target_outputs[dep] actions_depends.append(target.PreActionInput(self.flavor)) compile_depends.append(target.PreCompileInput()) + if target.uses_cpp: + self.target.uses_cpp = True actions_depends = filter(None, actions_depends) compile_depends = filter(None, compile_depends) actions_depends = self.WriteCollapsedDependencies('actions_depends', @@ -450,7 +452,12 @@ # Write out the compilation steps, if any. link_deps = [] - sources = extra_sources + spec.get('sources', []) + try: + sources = extra_sources + spec.get('sources', []) + except TypeError: + print 'extra_sources: ', str(extra_sources) + print 'spec.get("sources"): ', str(spec.get('sources')) + raise if sources: if self.flavor == 'mac' and len(self.archs) > 1: # Write subninja file containing compile and link commands scoped to @@ -1027,7 +1034,7 @@ obj_ext = self.obj_ext if ext in ('cc', 'cpp', 'cxx'): command = 'cxx' - self.uses_cpp = True + self.target.uses_cpp = True elif ext == 'c' or (ext == 'S' and self.flavor != 'win'): command = 'cc' elif ext == 's' and self.flavor != 'win': # Doesn't generate .o.d files. @@ -1042,7 +1049,7 @@ command = 'objc' elif self.flavor == 'mac' and ext == 'mm': command = 'objcxx' - self.uses_cpp = True + self.target.uses_cpp = True elif self.flavor == 'win' and ext == 'rc': command = 'rc' obj_ext = '.res' @@ -1178,7 +1185,7 @@ implicit_deps.add(final_output) extra_bindings = [] - if self.uses_cpp and self.flavor != 'win': + if self.target.uses_cpp and self.flavor != 'win': extra_bindings.append(('ld', '$ldxx')) output = self.ComputeOutput(spec, arch) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/pylib/gyp/input.py new/gyp-0+git.20160810/pylib/gyp/input.py --- old/gyp-0+git.20160620/pylib/gyp/input.py 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/pylib/gyp/input.py 2016-08-10 22:13:45.000000000 +0200 @@ -33,6 +33,7 @@ 'shared_library', 'loadable_module', 'mac_kernel_extension', + 'windows_driver', ] # A list of sections that contain links to other targets. @@ -1734,12 +1735,13 @@ dependencies.add(self.ref) return dependencies - # Executables, mac kernel extensions and loadable modules are already fully - # and finally linked. Nothing else can be a link dependency of them, there - # can only be dependencies in the sense that a dependent target might run - # an executable or load the loadable_module. + # Executables, mac kernel extensions, windows drivers and loadable modules + # are already fully and finally linked. Nothing else can be a link + # dependency of them, there can only be dependencies in the sense that a + # dependent target might run an executable or load the loadable_module. if not initial and target_type in ('executable', 'loadable_module', - 'mac_kernel_extension'): + 'mac_kernel_extension', + 'windows_driver'): return dependencies # Shared libraries are already fully linked. They should only be included @@ -2490,7 +2492,7 @@ """ VALID_TARGET_TYPES = ('executable', 'loadable_module', 'static_library', 'shared_library', - 'mac_kernel_extension', 'none') + 'mac_kernel_extension', 'none', 'windows_driver') target_type = target_dict.get('type', None) if target_type not in VALID_TARGET_TYPES: raise GypError("Target %s has an invalid target type '%s'. " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/pylib/gyp/mac_tool.py new/gyp-0+git.20160810/pylib/gyp/mac_tool.py --- old/gyp-0+git.20160620/pylib/gyp/mac_tool.py 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/pylib/gyp/mac_tool.py 2016-08-10 22:13:45.000000000 +0200 @@ -49,6 +49,7 @@ def ExecCopyBundleResource(self, source, dest, convert_to_binary): """Copies a resource file to the bundle/Resources directory, performing any necessary compilation on each resource.""" + convert_to_binary = convert_to_binary == 'True' extension = os.path.splitext(source)[1].lower() if os.path.isdir(source): # Copy tree. @@ -62,14 +63,14 @@ return self._CopyXIBFile(source, dest) elif extension == '.storyboard': return self._CopyXIBFile(source, dest) - elif extension == '.strings': + elif extension == '.strings' and not convert_to_binary: self._CopyStringsFile(source, dest) else: if os.path.exists(dest): os.unlink(dest) shutil.copy(source, dest) - if extension in ('.plist', '.strings') and convert_to_binary == 'True': + if convert_to_binary and extension in ('.plist', '.strings'): self._ConvertToBinary(dest) def _CopyXIBFile(self, source, dest): @@ -174,7 +175,7 @@ # Go through all the environment variables and replace them as variables in # the file. - IDENT_RE = re.compile(r'[/\s]') + IDENT_RE = re.compile(r'[_/\s]') for key in os.environ: if key.startswith('_'): continue diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/pylib/gyp/xcode_emulation.py new/gyp-0+git.20160810/pylib/gyp/xcode_emulation.py --- old/gyp-0+git.20160620/pylib/gyp/xcode_emulation.py 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/pylib/gyp/xcode_emulation.py 2016-08-10 22:13:45.000000000 +0200 @@ -312,6 +312,56 @@ return self.GetBundleContentsFolderPath() return os.path.join(self.GetBundleContentsFolderPath(), 'Resources') + def GetBundleExecutableFolderPath(self): + """Returns the qualified path to the bundle's executables folder. E.g. + Chromium.app/Contents/MacOS. Only valid for bundles.""" + assert self._IsBundle() + if self.spec['type'] in ('shared_library') or self.isIOS: + return self.GetBundleContentsFolderPath() + elif self.spec['type'] in ('executable', 'loadable_module'): + return os.path.join(self.GetBundleContentsFolderPath(), 'MacOS') + + def GetBundleJavaFolderPath(self): + """Returns the qualified path to the bundle's Java resource folder. + E.g. Chromium.app/Contents/Resources/Java. Only valid for bundles.""" + assert self._IsBundle() + return os.path.join(self.GetBundleResourceFolder(), 'Java') + + def GetBundleFrameworksFolderPath(self): + """Returns the qualified path to the bundle's frameworks folder. E.g, + Chromium.app/Contents/Frameworks. Only valid for bundles.""" + assert self._IsBundle() + return os.path.join(self.GetBundleContentsFolderPath(), 'Frameworks') + + def GetBundleSharedFrameworksFolderPath(self): + """Returns the qualified path to the bundle's frameworks folder. E.g, + Chromium.app/Contents/SharedFrameworks. Only valid for bundles.""" + assert self._IsBundle() + return os.path.join(self.GetBundleContentsFolderPath(), + 'SharedFrameworks') + + def GetBundleSharedSupportFolderPath(self): + """Returns the qualified path to the bundle's shared support folder. E.g, + Chromium.app/Contents/SharedSupport. Only valid for bundles.""" + assert self._IsBundle() + if self.spec['type'] == 'shared_library': + return self.GetBundleResourceFolder() + else: + return os.path.join(self.GetBundleContentsFolderPath(), + 'SharedSupport') + + def GetBundlePlugInsFolderPath(self): + """Returns the qualified path to the bundle's plugins folder. E.g, + Chromium.app/Contents/PlugIns. Only valid for bundles.""" + assert self._IsBundle() + return os.path.join(self.GetBundleContentsFolderPath(), 'PlugIns') + + def GetBundleXPCServicesFolderPath(self): + """Returns the qualified path to the bundle's XPC services folder. E.g, + Chromium.app/Contents/XPCServices. Only valid for bundles.""" + assert self._IsBundle() + return os.path.join(self.GetBundleContentsFolderPath(), 'XPCServices') + def GetBundlePlistPath(self): """Returns the qualified path to the bundle's plist file. E.g. Chromium.app/Contents/Info.plist. Only valid for bundles.""" @@ -371,11 +421,8 @@ """Returns the name of the bundle binary of by this target. E.g. Chromium.app/Contents/MacOS/Chromium. Only valid for bundles.""" assert self._IsBundle() - if self.spec['type'] in ('shared_library') or self.isIOS: - path = self.GetBundleContentsFolderPath() - elif self.spec['type'] in ('executable', 'loadable_module'): - path = os.path.join(self.GetBundleContentsFolderPath(), 'MacOS') - return os.path.join(path, self.GetExecutableName()) + return os.path.join(self.GetBundleExecutableFolderPath(), \ + self.GetExecutableName()) def _GetStandaloneExecutableSuffix(self): if 'product_extension' in self.spec: @@ -426,8 +473,8 @@ return self._GetStandaloneBinaryPath() def GetExecutablePath(self): - """Returns the directory name of the bundle represented by this target. E.g. - Chromium.app/Contents/MacOS/Chromium.""" + """Returns the qualified path to the primary executable of the bundle + represented by this target. E.g. Chromium.app/Contents/MacOS/Chromium.""" if self._IsBundle(): return self._GetBundleBinaryPath() else: @@ -1541,13 +1588,14 @@ additional_settings: An optional dict with more values to add to the result. """ + if not xcode_settings: return {} # This function is considered a friend of XcodeSettings, so let it reach into # its implementation details. spec = xcode_settings.spec - # These are filled in on a as-needed basis. + # These are filled in on an as-needed basis. env = { 'BUILT_FRAMEWORKS_DIR' : built_products_dir, 'BUILT_PRODUCTS_DIR' : built_products_dir, @@ -1580,10 +1628,27 @@ env['MACH_O_TYPE'] = mach_o_type env['PRODUCT_TYPE'] = xcode_settings.GetProductType() if xcode_settings._IsBundle(): + # xcodeproj_file.py sets the same Xcode subfolder value for this as for + # FRAMEWORKS_FOLDER_PATH so Xcode builds will actually use FFP's value. + env['BUILT_FRAMEWORKS_DIR'] = \ + os.path.join(built_products_dir + os.sep \ + + xcode_settings.GetBundleFrameworksFolderPath()) env['CONTENTS_FOLDER_PATH'] = \ - xcode_settings.GetBundleContentsFolderPath() + xcode_settings.GetBundleContentsFolderPath() + env['EXECUTABLE_FOLDER_PATH'] = \ + xcode_settings.GetBundleExecutableFolderPath() env['UNLOCALIZED_RESOURCES_FOLDER_PATH'] = \ xcode_settings.GetBundleResourceFolder() + env['JAVA_FOLDER_PATH'] = xcode_settings.GetBundleJavaFolderPath() + env['FRAMEWORKS_FOLDER_PATH'] = \ + xcode_settings.GetBundleFrameworksFolderPath() + env['SHARED_FRAMEWORKS_FOLDER_PATH'] = \ + xcode_settings.GetBundleSharedFrameworksFolderPath() + env['SHARED_SUPPORT_FOLDER_PATH'] = \ + xcode_settings.GetBundleSharedSupportFolderPath() + env['PLUGINS_FOLDER_PATH'] = xcode_settings.GetBundlePlugInsFolderPath() + env['XPCSERVICES_FOLDER_PATH'] = \ + xcode_settings.GetBundleXPCServicesFolderPath() env['INFOPLIST_PATH'] = xcode_settings.GetBundlePlistPath() env['WRAPPER_NAME'] = xcode_settings.GetWrapperName() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/pylib/gyp/xcodeproj_file.py new/gyp-0+git.20160810/pylib/gyp/xcodeproj_file.py --- old/gyp-0+git.20160620/pylib/gyp/xcodeproj_file.py 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/pylib/gyp/xcodeproj_file.py 2016-08-10 22:13:45.000000000 +0200 @@ -1945,24 +1945,40 @@ 'name': [0, str, 0, 0], }) - # path_tree_re matches "$(DIR)/path" or just "$(DIR)". Match group 1 is - # "DIR", match group 3 is "path" or None. - path_tree_re = re.compile('^\\$\\((.*)\\)(/(.*)|)$') - - # path_tree_to_subfolder maps names of Xcode variables to the associated - # dstSubfolderSpec property value used in a PBXCopyFilesBuildPhase object. - path_tree_to_subfolder = { - 'BUILT_FRAMEWORKS_DIR': 10, # Frameworks Directory - 'BUILT_PRODUCTS_DIR': 16, # Products Directory - # Other types that can be chosen via the Xcode UI. - # TODO(mark): Map Xcode variable names to these. - # : 1, # Wrapper - # : 6, # Executables: 6 - # : 7, # Resources - # : 15, # Java Resources - # : 11, # Shared Frameworks - # : 12, # Shared Support - # : 13, # PlugIns + # path_tree_re matches "$(DIR)/path", "$(DIR)/$(DIR2)/path" or just "$(DIR)". + # Match group 1 is "DIR", group 3 is "path" or "$(DIR2") or "$(DIR2)/path" + # or None. If group 3 is "path", group 4 will be None otherwise group 4 is + # "DIR2" and group 6 is "path". + path_tree_re = re.compile(r'^\$\((.*?)\)(/(\$\((.*?)\)(/(.*)|)|(.*)|)|)$') + + # path_tree_{first,second}_to_subfolder map names of Xcode variables to the + # associated dstSubfolderSpec property value used in a PBXCopyFilesBuildPhase + # object. + path_tree_first_to_subfolder = { + # Types that can be chosen via the Xcode UI. + 'BUILT_PRODUCTS_DIR': 16, # Products Directory + 'BUILT_FRAMEWORKS_DIR': 10, # Not an official Xcode macro. + # Existed before support for the + # names below was added. Maps to + # "Frameworks". + } + + path_tree_second_to_subfolder = { + 'WRAPPER_NAME': 1, # Wrapper + # Although Xcode's friendly name is "Executables", the destination + # is demonstrably the value of the build setting + # EXECUTABLE_FOLDER_PATH not EXECUTABLES_FOLDER_PATH. + 'EXECUTABLE_FOLDER_PATH': 6, # Executables. + 'UNLOCALIZED_RESOURCES_FOLDER_PATH': 7, # Resources + 'JAVA_FOLDER_PATH': 15, # Java Resources + 'FRAMEWORKS_FOLDER_PATH': 10, # Frameworks + 'SHARED_FRAMEWORKS_FOLDER_PATH': 11, # Shared Frameworks + 'SHARED_SUPPORT_FOLDER_PATH': 12, # Shared Support + 'PLUGINS_FOLDER_PATH': 13, # PlugIns + # For XPC Services, Xcode sets both dstPath and dstSubfolderSpec. + # Note that it re-uses the BUILT_PRODUCTS_DIR value for + # dstSubfolderSpec. dstPath is set below. + 'XPCSERVICES_FOLDER_PATH': 16, # XPC Services. } def Name(self): @@ -1983,14 +1999,61 @@ path_tree_match = self.path_tree_re.search(path) if path_tree_match: - # Everything else needs to be relative to an Xcode variable. - path_tree = path_tree_match.group(1) - relative_path = path_tree_match.group(3) - - if path_tree in self.path_tree_to_subfolder: - subfolder = self.path_tree_to_subfolder[path_tree] + path_tree = path_tree_match.group(1); + if path_tree in self.path_tree_first_to_subfolder: + subfolder = self.path_tree_first_to_subfolder[path_tree] + relative_path = path_tree_match.group(3) if relative_path is None: relative_path = '' + + if subfolder == 16 and path_tree_match.group(4) is not None: + # BUILT_PRODUCTS_DIR (16) is the first element in a path whose + # second element is possibly one of the variable names in + # path_tree_second_to_subfolder. Xcode sets the values of all these + # variables to relative paths so .gyp files must prefix them with + # BUILT_PRODUCTS_DIR, e.g. + # $(BUILT_PRODUCTS_DIR)/$(PLUGINS_FOLDER_PATH). Then + # xcode_emulation.py can export these variables with the same values + # as Xcode yet make & ninja files can determine the absolute path + # to the target. Xcode uses the dstSubfolderSpec value set here + # to determine the full path. + # + # An alternative of xcode_emulation.py setting the values to absolute + # paths when exporting these variables has been ruled out because + # then the values would be different depending on the build tool. + # + # Another alternative is to invent new names for the variables used + # to match to the subfolder indices in the second table. .gyp files + # then will not need to prepend $(BUILT_PRODUCTS_DIR) because + # xcode_emulation.py can set the values of those variables to + # the absolute paths when exporting. This is possibly the thinking + # behind BUILT_FRAMEWORKS_DIR which is used in exactly this manner. + # + # Requiring prepending BUILT_PRODUCTS_DIR has been chosen because + # this same way could be used to specify destinations in .gyp files + # that pre-date this addition to GYP. However they would only work + # with the Xcode generator. The previous version of xcode_emulation.py + # does not export these variables. Such files will get the benefit + # of the Xcode UI showing the proper destination name simply by + # regenerating the projects with this version of GYP. + path_tree = path_tree_match.group(4) + relative_path = path_tree_match.group(6) + separator = '/' + + if path_tree in self.path_tree_second_to_subfolder: + subfolder = self.path_tree_second_to_subfolder[path_tree] + if relative_path is None: + relative_path = '' + separator = '' + if path_tree == 'XPCSERVICES_FOLDER_PATH': + relative_path = '$(CONTENTS_FOLDER_PATH)/XPCServices' \ + + separator + relative_path + else: + # subfolder = 16 from above + # The second element of the path is an unrecognized variable. + # Include it and any remaining elements in relative_path. + relative_path = path_tree_match.group(3); + else: # The path starts with an unrecognized Xcode variable # name like $(SRCROOT). Xcode will still handle this diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/Info.plist new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/Info.plist --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/Info.plist 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/Info.plist 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1</string> +</dict> +</plist> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,97 @@ +# Copyright (c) 2016 Mark Callow. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +# +# For testing use of the UI settings & environment variables +# available in Xcode's PBXCopyFilesBuildPhase. +{ + 'targets': [ + { + 'target_name': 'copies-with-xcode-envvars', + 'type': 'executable', + 'mac_bundle': 1, + 'xcode_settings': { + 'SDKROOT': 'iphoneos', + 'TARGETED_DEVICE_FAMILY': '1,2', + 'IPHONEOS_DEPLOYMENT_TARGET': '7.0', + 'CODE_SIGNING_REQUIRED': 'NO', + 'INFOPLIST_FILE': 'Info.plist', + # This is where the test framework looks for results. Without + # this line the result will be in build/Default-iphoneos. + 'CONFIGURATION_BUILD_DIR':'build/Default', + }, + 'sources': [ 'empty.c' ], + 'conditions': [ + ['OS == "ios" or OS == "mac"', { + 'copies': [{ + 'destination': '$(BUILT_PRODUCTS_DIR)', + 'files': [ + 'file0', + ], + }, { + 'destination': '$(BUILT_PRODUCTS_DIR)/$(WRAPPER_NAME)', + 'files': [ + 'file1', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(EXECUTABLE_FOLDER_PATH)', + 'files': [ + 'file2', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)', + 'files': [ + 'file3', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/testimages', + 'files': [ + 'file4', + ], + }, { + 'destination': '$(BUILT_PRODUCTS_DIR)/$(JAVA_FOLDER_PATH)', + 'files': [ + 'file5', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(FRAMEWORKS_FOLDER_PATH)', + 'files': [ + 'file6', + ], + }, { + # NOTE: This is not an Xcode macro name but + # xcodeproj_file.py recognizes it and sends + # the output to the same place as + # $(FRAMEWORKS_FOLDER_PATH). xcode_emulation.py + # sets its value to an absolute path. + 'destination': '$(BUILT_FRAMEWORKS_DIR)', + 'files': [ + 'file7', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(SHARED_FRAMEWORKS_FOLDER_PATH)', + 'files': [ + 'file8', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(SHARED_SUPPORT_FOLDER_PATH)', + 'files': [ + 'file9', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(PLUGINS_FOLDER_PATH)', + 'files': [ + 'file10', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(XPCSERVICES_FOLDER_PATH)', + 'files': [ + 'file11', + ], + }], # copies + }], # OS == "ios" or OS == "mac" + ], # conditions + }], # targets +} + +# vim:ai:ts=4:sts=4:sw=2:expandtab:textwidth=70 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/empty.c new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/empty.c --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/empty.c 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/empty.c 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +int main() {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file0 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file0 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file0 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file0 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file0 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file1 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file1 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file1 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file1 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file1 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file10 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file10 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file10 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file10 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file10 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file11 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file11 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file11 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file11 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file11 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file2 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file2 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file2 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file2 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file2 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file3 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file3 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file3 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file3 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file3 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file4 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file4 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file4 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file4 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file4 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file5 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file5 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file5 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file5 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file5 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file6 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file6 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file6 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file6 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file6 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file7 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file7 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file7 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file7 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file7 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file8 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file8 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file8 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file8 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file8 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file9 new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file9 --- old/gyp-0+git.20160620/test/ios/copies-with-xcode-envvars/file9 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/copies-with-xcode-envvars/file9 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file9 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/ios/gyptest-copies-with-xcode-envvars.py new/gyp-0+git.20160810/test/ios/gyptest-copies-with-xcode-envvars.py --- old/gyp-0+git.20160620/test/ios/gyptest-copies-with-xcode-envvars.py 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/ios/gyptest-copies-with-xcode-envvars.py 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +# Copyright (c) 2016 Mark Callow. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Verifies that files are copied to the correct destinations when those +destinations are specified using environment variables available in +Xcode's PBXCopyFilesBuildPhase. +""" + +import TestGyp + +import os +import stat +import sys + + +test = TestGyp.TestGyp(formats=['ninja', 'xcode']) + +if sys.platform == 'darwin': + test.run_gyp('copies-with-xcode-envvars.gyp', + chdir='copies-with-xcode-envvars') + + test.build('copies-with-xcode-envvars.gyp', chdir='copies-with-xcode-envvars') + + wrapper_name = 'copies-with-xcode-envvars.app/' + contents_path = wrapper_name + out_path = test.built_file_path('file0', chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file0 contents\n') + out_path = test.built_file_path(wrapper_name + 'file1', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file1 contents\n') + out_path = test.built_file_path(contents_path + 'file2', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file2 contents\n') + out_path = test.built_file_path(contents_path + 'file3', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file3 contents\n') + out_path = test.built_file_path(contents_path + 'testimages/file4', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file4 contents\n') + out_path = test.built_file_path(contents_path + 'Java/file5', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file5 contents\n') + out_path = test.built_file_path(contents_path + 'Frameworks/file6', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file6 contents\n') + out_path = test.built_file_path(contents_path + 'Frameworks/file7', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file7 contents\n') + out_path = test.built_file_path(contents_path + 'SharedFrameworks/file8', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file8 contents\n') + out_path = test.built_file_path(contents_path + 'SharedSupport/file9', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file9 contents\n') + out_path = test.built_file_path(contents_path + 'PlugIns/file10', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file10 contents\n') + out_path = test.built_file_path(contents_path + 'XPCServices/file11', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file11 contents\n') + test.pass_test() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/copies-with-xcode-envvars.gyp 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,87 @@ +# Copyright (c) 2016 Mark Callow. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +# +# For testing use of the UI settings & environment variables +# available in Xcode's PBXCopyFilesBuildPhase. +{ +'targets': [ + { + 'target_name': 'copies-with-xcode-envvars', + 'type': 'executable', + 'mac_bundle': 1, + 'sources': [ 'empty.c' ], + 'conditions': [ + ['OS == "ios" or OS == "mac"', { + 'copies': [{ + 'destination': '$(BUILT_PRODUCTS_DIR)', + 'files': [ + 'file0', + ], + }, { + 'destination': '$(BUILT_PRODUCTS_DIR)/$(WRAPPER_NAME)', + 'files': [ + 'file1', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(EXECUTABLE_FOLDER_PATH)', + 'files': [ + 'file2', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)', + 'files': [ + 'file3', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/testimages', + 'files': [ + 'file4', + ], + }, { + 'destination': '$(BUILT_PRODUCTS_DIR)/$(JAVA_FOLDER_PATH)', + 'files': [ + 'file5', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(FRAMEWORKS_FOLDER_PATH)', + 'files': [ + 'file6', + ], + }, { + # NOTE: This is not an Xcode macro name but + # xcodeproj_file.py recognizes it and sends + # the output to the same place as + # $(FRAMEWORKS_FOLDER_PATH). xcode_emulation.py + # sets its value to an absolute path. + 'destination': '$(BUILT_FRAMEWORKS_DIR)', + 'files': [ + 'file7', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(SHARED_FRAMEWORKS_FOLDER_PATH)', + 'files': [ + 'file8', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(SHARED_SUPPORT_FOLDER_PATH)', + 'files': [ + 'file9', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(PLUGINS_FOLDER_PATH)', + 'files': [ + 'file10', + ], + }, { + 'destination': '<(PRODUCT_DIR)/$(XPCSERVICES_FOLDER_PATH)', + 'files': [ + 'file11', + ], + }], # copies + }], # OS == "ios" or OS == "mac" + ], # conditions + }], # targets +} + +# vim:ai:ts=4:sts=4:sw=2:expandtab:textwidth=70 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/empty.c new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/empty.c --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/empty.c 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/empty.c 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +int main() {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file0 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file0 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file0 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file0 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file0 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file1 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file1 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file1 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file1 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file1 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file10 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file10 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file10 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file10 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file10 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file11 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file11 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file11 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file11 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file11 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file2 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file2 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file2 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file2 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file2 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file3 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file3 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file3 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file3 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file3 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file4 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file4 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file4 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file4 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file4 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file5 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file5 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file5 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file5 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file5 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file6 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file6 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file6 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file6 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file6 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file7 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file7 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file7 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file7 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file7 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file8 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file8 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file8 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file8 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file8 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file9 new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file9 --- old/gyp-0+git.20160620/test/mac/copies-with-xcode-envvars/file9 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/copies-with-xcode-envvars/file9 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1 @@ +file9 contents diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/gyptest-copies-with-xcode-envvars.py new/gyp-0+git.20160810/test/mac/gyptest-copies-with-xcode-envvars.py --- old/gyp-0+git.20160620/test/mac/gyptest-copies-with-xcode-envvars.py 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/mac/gyptest-copies-with-xcode-envvars.py 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +# Copyright (c) 2016 Mark Callow. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Verifies that files are copied to the correct destinations when those +destinations are specified using environment variables available in +Xcode's PBXCopyFilesBuildPhase. +""" + +import TestGyp + +import os +import stat +import sys + + +test = TestGyp.TestGyp(formats=['make', 'ninja', 'xcode']) + +if sys.platform == 'darwin': + test.run_gyp('copies-with-xcode-envvars.gyp', + chdir='copies-with-xcode-envvars') + + test.build('copies-with-xcode-envvars.gyp', chdir='copies-with-xcode-envvars') + + wrapper_name = 'copies-with-xcode-envvars.app/' + contents_path = wrapper_name + 'Contents/' + out_path = test.built_file_path('file0', chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file0 contents\n') + out_path = test.built_file_path(wrapper_name + 'file1', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file1 contents\n') + out_path = test.built_file_path(contents_path + 'MacOS/file2', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file2 contents\n') + out_path = test.built_file_path(contents_path + 'Resources/file3', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file3 contents\n') + out_path = test.built_file_path(contents_path + 'Resources/testimages/file4', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file4 contents\n') + out_path = test.built_file_path(contents_path + 'Resources/Java/file5', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file5 contents\n') + out_path = test.built_file_path(contents_path + 'Frameworks/file6', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file6 contents\n') + out_path = test.built_file_path(contents_path + 'Frameworks/file7', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file7 contents\n') + out_path = test.built_file_path(contents_path + 'SharedFrameworks/file8', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file8 contents\n') + out_path = test.built_file_path(contents_path + 'SharedSupport/file9', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file9 contents\n') + out_path = test.built_file_path(contents_path + 'PlugIns/file10', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file10 contents\n') + out_path = test.built_file_path(contents_path + 'XPCServices/file11', + chdir='copies-with-xcode-envvars') + test.must_contain(out_path, 'file11 contents\n') + test.pass_test() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/type_envvars/test_bundle_executable.sh new/gyp-0+git.20160810/test/mac/type_envvars/test_bundle_executable.sh --- old/gyp-0+git.20160620/test/mac/type_envvars/test_bundle_executable.sh 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/test/mac/type_envvars/test_bundle_executable.sh 2016-08-10 22:13:45.000000000 +0200 @@ -14,6 +14,16 @@ test "${EXECUTABLE_PATH}" = "My App.app/Contents/MacOS/My App" test "${WRAPPER_NAME}" = "My App.app" +test "${CONTENTS_FOLDER_PATH}" = "My App.app/Contents" +test "${EXECUTABLE_FOLDER_PATH}" = "My App.app/Contents/MacOS" +test "${UNLOCALIZED_RESOURCES_FOLDER_PATH}" = "My App.app/Contents/Resources" +test "${JAVA_FOLDER_PATH}" = "My App.app/Contents/Resources/Java" +test "${FRAMEWORKS_FOLDER_PATH}" = "My App.app/Contents/Frameworks" +test "${SHARED_FRAMEWORKS_FOLDER_PATH}" = "My App.app/Contents/SharedFrameworks" +test "${SHARED_SUPPORT_FOLDER_PATH}" = "My App.app/Contents/SharedSupport" +test "${PLUGINS_FOLDER_PATH}" = "My App.app/Contents/PlugIns" +test "${XPCSERVICES_FOLDER_PATH}" = "My App.app/Contents/XPCServices" + [[ ! $DYLIB_INSTALL_NAME_BASE && ${DYLIB_INSTALL_NAME_BASE-_} ]] [[ ! $LD_DYLIB_INSTALL_NAME && ${LD_DYLIB_INSTALL_NAME-_} ]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/type_envvars/test_bundle_loadable_module.sh new/gyp-0+git.20160810/test/mac/type_envvars/test_bundle_loadable_module.sh --- old/gyp-0+git.20160620/test/mac/type_envvars/test_bundle_loadable_module.sh 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/test/mac/type_envvars/test_bundle_loadable_module.sh 2016-08-10 22:13:45.000000000 +0200 @@ -15,6 +15,20 @@ "bundle_loadable_module.bundle/Contents/MacOS/bundle_loadable_module" test $WRAPPER_NAME = bundle_loadable_module.bundle +test $CONTENTS_FOLDER_PATH = bundle_loadable_module.bundle/Contents +test $EXECUTABLE_FOLDER_PATH = bundle_loadable_module.bundle/Contents/MacOS +test $UNLOCALIZED_RESOURCES_FOLDER_PATH = \ + bundle_loadable_module.bundle/Contents/Resources +test $JAVA_FOLDER_PATH = bundle_loadable_module.bundle/Contents/Resources/Java +test $FRAMEWORKS_FOLDER_PATH = bundle_loadable_module.bundle/Contents/Frameworks +test $SHARED_FRAMEWORKS_FOLDER_PATH = \ + bundle_loadable_module.bundle/Contents/SharedFrameworks +test $SHARED_SUPPORT_FOLDER_PATH = \ + bundle_loadable_module.bundle/Contents/SharedSupport +test $PLUGINS_FOLDER_PATH = bundle_loadable_module.bundle/Contents/PlugIns +test $XPCSERVICES_FOLDER_PATH = \ + bundle_loadable_module.bundle/Contents/XPCServices + [[ ! $DYLIB_INSTALL_NAME_BASE && ${DYLIB_INSTALL_NAME_BASE-_} ]] [[ ! $LD_DYLIB_INSTALL_NAME && ${LD_DYLIB_INSTALL_NAME-_} ]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/type_envvars/test_bundle_shared_library.sh new/gyp-0+git.20160810/test/mac/type_envvars/test_bundle_shared_library.sh --- old/gyp-0+git.20160620/test/mac/type_envvars/test_bundle_shared_library.sh 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/test/mac/type_envvars/test_bundle_shared_library.sh 2016-08-10 22:13:45.000000000 +0200 @@ -15,6 +15,22 @@ "bundle_shared_library.framework/Versions/A/bundle_shared_library" test $WRAPPER_NAME = bundle_shared_library.framework +test $CONTENTS_FOLDER_PATH = bundle_shared_library.framework/Versions/A +test $EXECUTABLE_FOLDER_PATH = bundle_shared_library.framework/Versions/A +test $UNLOCALIZED_RESOURCES_FOLDER_PATH = \ + bundle_shared_library.framework/Versions/A/Resources +test $JAVA_FOLDER_PATH = \ + bundle_shared_library.framework/Versions/A/Resources/Java +test $FRAMEWORKS_FOLDER_PATH = \ + bundle_shared_library.framework/Versions/A/Frameworks +test $SHARED_FRAMEWORKS_FOLDER_PATH = \ + bundle_shared_library.framework/Versions/A/SharedFrameworks +test $SHARED_SUPPORT_FOLDER_PATH = \ + bundle_shared_library.framework/Versions/A/Resources +test $PLUGINS_FOLDER_PATH = bundle_shared_library.framework/Versions/A/PlugIns +test $XPCSERVICES_FOLDER_PATH = \ + bundle_shared_library.framework/Versions/A/XPCServices + test $DYLIB_INSTALL_NAME_BASE = "/Library/Frameworks" test $LD_DYLIB_INSTALL_NAME = \ "/Library/Frameworks/bundle_shared_library.framework/Versions/A/bundle_shared_library" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_executable.sh new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_executable.sh --- old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_executable.sh 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_executable.sh 2016-08-10 22:13:45.000000000 +0200 @@ -16,6 +16,17 @@ test $EXECUTABLE_PATH = nonbundle_executable [[ ! $WRAPPER_NAME && ${WRAPPER_NAME-_} ]] +[[ ! $CONTENTS_FOLDER_PATH && ${CONTENTS_FOLDER_PATH-_} ]] +[[ ! $EXECUTABLE_FOLDER_PATH && ${EXECUTABLE_FOLDER_PATH-_} ]] +[[ ! $UNLOCALIZED_RESOURCES_FOLDER_PATH \ + && ${UNLOCALIZED_RESOURCES_FOLDER_PATH-_} ]] +[[ ! $JAVA_FOLDER_PATH && ${JAVA_FOLDER_PATH-_} ]] +[[ ! $FRAMEWORKS_FOLDER_PATH && ${FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_FRAMEWORKS_FOLDER_PATH && ${SHARED_FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_SUPPORT_FOLDER_PATH && ${SHARED_SUPPORT_FOLDER_PATH-_} ]] +[[ ! $PLUGINS_FOLDER_PATH && ${PLUGINS_FOLDER_PATH-_} ]] +[[ ! $XPCSERVICES_FOLDER_PATH && ${XPCSERVICES_FOLDER_PATH-_} ]] + [[ ! $DYLIB_INSTALL_NAME_BASE && ${DYLIB_INSTALL_NAME_BASE-_} ]] [[ ! $LD_DYLIB_INSTALL_NAME && ${LD_DYLIB_INSTALL_NAME-_} ]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_loadable_module.sh new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_loadable_module.sh --- old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_loadable_module.sh 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_loadable_module.sh 2016-08-10 22:13:45.000000000 +0200 @@ -14,6 +14,17 @@ test $EXECUTABLE_PATH = nonbundle_loadable_module.so [[ ! $WRAPPER_NAME && ${WRAPPER_NAME-_} ]] +[[ ! $CONTENTS_FOLDER_PATH && ${CONTENTS_FOLDER_PATH-_} ]] +[[ ! $EXECUTABLE_FOLDER_PATH && ${EXECUTABLE_FOLDER_PATH-_} ]] +[[ ! $UNLOCALIZED_RESOURCES_FOLDER_PATH \ + && ${UNLOCALIZED_RESOURCES_FOLDER_PATH-_} ]] +[[ ! $JAVA_FOLDER_PATH && ${JAVA_FOLDER_PATH-_} ]] +[[ ! $FRAMEWORKS_FOLDER_PATH && ${FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_FRAMEWORKS_FOLDER_PATH && ${SHARED_FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_SUPPORT_FOLDER_PATH && ${SHARED_SUPPORT_FOLDER_PATH-_} ]] +[[ ! $PLUGINS_FOLDER_PATH && ${PLUGINS_FOLDER_PATH-_} ]] +[[ ! $XPCSERVICES_FOLDER_PATH && ${XPCSERVICES_FOLDER_PATH-_} ]] + test $DYLIB_INSTALL_NAME_BASE = "/usr/local/lib" test $LD_DYLIB_INSTALL_NAME = "/usr/local/lib/nonbundle_loadable_module.so" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_none.sh new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_none.sh --- old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_none.sh 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_none.sh 2016-08-10 22:13:45.000000000 +0200 @@ -15,6 +15,17 @@ [[ ! $EXECUTABLE_PATH && ${EXECUTABLE_PATH-_} ]] [[ ! $WRAPPER_NAME && ${WRAPPER_NAME-_} ]] +[[ ! $CONTENTS_FOLDER_PATH && ${CONTENTS_FOLDER_PATH-_} ]] +[[ ! $EXECUTABLE_FOLDER_PATH && ${EXECUTABLE_FOLDER_PATH-_} ]] +[[ ! $UNLOCALIZED_RESOURCES_FOLDER_PATH \ + && ${UNLOCALIZED_RESOURCES_FOLDER_PATH-_} ]] +[[ ! $JAVA_FOLDER_PATH && ${JAVA_FOLDER_PATH-_} ]] +[[ ! $FRAMEWORKS_FOLDER_PATH && ${FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_FRAMEWORKS_FOLDER_PATH && ${SHARED_FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_SUPPORT_FOLDER_PATH && ${SHARED_SUPPORT_FOLDER_PATH-_} ]] +[[ ! $PLUGINS_FOLDER_PATH && ${PLUGINS_FOLDER_PATH-_} ]] +[[ ! $XPCSERVICES_FOLDER_PATH && ${XPCSERVICES_FOLDER_PATH-_} ]] + [[ ! $DYLIB_INSTALL_NAME_BASE && ${DYLIB_INSTALL_NAME_BASE-_} ]] [[ ! $LD_DYLIB_INSTALL_NAME && ${LD_DYLIB_INSTALL_NAME-_} ]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_shared_library.sh new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_shared_library.sh --- old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_shared_library.sh 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_shared_library.sh 2016-08-10 22:13:45.000000000 +0200 @@ -14,6 +14,17 @@ test $EXECUTABLE_PATH = libnonbundle_shared_library.dylib [[ ! $WRAPPER_NAME && ${WRAPPER_NAME-_} ]] +[[ ! $CONTENTS_FOLDER_PATH && ${CONTENTS_FOLDER_PATH-_} ]] +[[ ! $EXECUTABLE_FOLDER_PATH && ${EXECUTABLE_FOLDER_PATH-_} ]] +[[ ! $UNLOCALIZED_RESOURCES_FOLDER_PATH && \ + ${UNLOCALIZED_RESOURCES_FOLDER_PATH-_} ]] +[[ ! $JAVA_FOLDER_PATH && ${JAVA_FOLDER_PATH-_} ]] +[[ ! $FRAMEWORKS_FOLDER_PATH && ${FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_FRAMEWORKS_FOLDER_PATH && ${SHARED_FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_SUPPORT_FOLDER_PATH && ${SHARED_SUPPORT_FOLDER_PATH-_} ]] +[[ ! $PLUGINS_FOLDER_PATH && ${PLUGINS_FOLDER_PATH-_} ]] +[[ ! $XPCSERVICES_FOLDER_PATH && ${XPCSERVICES_FOLDER_PATH-_} ]] + test $DYLIB_INSTALL_NAME_BASE = "/usr/local/lib" test $LD_DYLIB_INSTALL_NAME = "/usr/local/lib/libnonbundle_shared_library.dylib" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_static_library.sh new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_static_library.sh --- old/gyp-0+git.20160620/test/mac/type_envvars/test_nonbundle_static_library.sh 2016-07-06 14:15:59.000000000 +0200 +++ new/gyp-0+git.20160810/test/mac/type_envvars/test_nonbundle_static_library.sh 2016-08-10 22:13:45.000000000 +0200 @@ -14,6 +14,17 @@ test $EXECUTABLE_PATH = libnonbundle_static_library.a [[ ! $WRAPPER_NAME && ${WRAPPER_NAME-_} ]] +[[ ! $CONTENTS_FOLDER_PATH && ${CONTENTS_FOLDER_PATH-_} ]] +[[ ! $EXECUTABLE_FOLDER_PATH && ${EXECUTABLE_FOLDER_PATH-_} ]] +[[ ! $UNLOCALIZED_RESOURCES_FOLDER_PATH && \ + ${UNLOCALIZED_RESOURCES_FOLDER_PATH-_} ]] +[[ ! $JAVA_FOLDER_PATH && ${JAVA_FOLDER_PATH-_} ]] +[[ ! $FRAMEWORKS_FOLDER_PATH && ${FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_FRAMEWORKS_FOLDER_PATH && ${SHARED_FRAMEWORKS_FOLDER_PATH-_} ]] +[[ ! $SHARED_SUPPORT_FOLDER_PATH && ${SHARED_SUPPORT_FOLDER_PATH-_} ]] +[[ ! $PLUGINS_FOLDER_PATH && ${PLUGINS_FOLDER_PATH-_} ]] +[[ ! $XPCSERVICES_FOLDER_PATH && ${XPCSERVICES_FOLDER_PATH-_} ]] + [[ ! $DYLIB_INSTALL_NAME_BASE && ${DYLIB_INSTALL_NAME_BASE-_} ]] [[ ! $LD_DYLIB_INSTALL_NAME && ${LD_DYLIB_INSTALL_NAME-_} ]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/win/gyptest-sys.py new/gyp-0+git.20160810/test/win/gyptest-sys.py --- old/gyp-0+git.20160620/test/win/gyptest-sys.py 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/win/gyptest-sys.py 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,23 @@ +#!/usr/bin/env python + +# Copyright (c) 2016 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. + +""" +Verifies that Windows drivers are built correctly. +""" + +import TestGyp + +import sys + +if sys.platform == 'win32': + test = TestGyp.TestGyp(formats=['msvs']) + + CHDIR = 'win-driver-target-type' + test.run_gyp('win-driver-target-type.gyp', chdir=CHDIR) + test.build('win-driver-target-type.gyp', 'win_driver_target_type', + chdir=CHDIR) + + test.pass_test() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/win/win-driver-target-type/win-driver-target-type.c new/gyp-0+git.20160810/test/win/win-driver-target-type/win-driver-target-type.c --- old/gyp-0+git.20160620/test/win/win-driver-target-type/win-driver-target-type.c 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/win/win-driver-target-type/win-driver-target-type.c 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,10 @@ +// Copyright (c) 2016 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. + +#include "win-driver-target-type.h" + +NTSTATUS DriverEntry(_In_ struct _DRIVER_OBJECT *DriverObject, + _In_ PUNICODE_STRING RegistryPath) { + return STATUS_SUCCESS; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/win/win-driver-target-type/win-driver-target-type.gyp new/gyp-0+git.20160810/test/win/win-driver-target-type/win-driver-target-type.gyp --- old/gyp-0+git.20160620/test/win/win-driver-target-type/win-driver-target-type.gyp 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/win/win-driver-target-type/win-driver-target-type.gyp 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,32 @@ +# Copyright (c) 2016 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': 'win_driver_target_type', + 'type': 'windows_driver', + 'msvs_target_version': 'Windows7', + 'sources': [ + 'win-driver-target-type.c', + 'win-driver-target-type.h', + 'win-driver-target-type.rc', + ], + 'msvs_settings': { + 'VCLinkerTool': { + 'AdditionalDependencies': [ + 'wdmsec.lib', + 'ntoskrnl.lib', + 'hal.lib', + 'wmilib.lib', + 'bufferoverflowfastfailk.lib', + ], + }, + 'VCCLCompilerTool': { + 'WarnAsError': 'false', + }, + }, + }, + ] +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/win/win-driver-target-type/win-driver-target-type.h new/gyp-0+git.20160810/test/win/win-driver-target-type/win-driver-target-type.h --- old/gyp-0+git.20160620/test/win/win-driver-target-type/win-driver-target-type.h 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/win/win-driver-target-type/win-driver-target-type.h 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,13 @@ +// Copyright (c) 2016 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE + +#ifndef _WIN_DRIVER_TARGET_TYPE_H_ +#define _WIN_DRIVER_TARGET_TYPE_H_ + +#include <ntifs.h> +#include <ntdddisk.h> + +DRIVER_INITIALIZE DriverEntry; + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gyp-0+git.20160620/test/win/win-driver-target-type/win-driver-target-type.rc new/gyp-0+git.20160810/test/win/win-driver-target-type/win-driver-target-type.rc --- old/gyp-0+git.20160620/test/win/win-driver-target-type/win-driver-target-type.rc 1970-01-01 01:00:00.000000000 +0100 +++ new/gyp-0+git.20160810/test/win/win-driver-target-type/win-driver-target-type.rc 2016-08-10 22:13:45.000000000 +0200 @@ -0,0 +1,14 @@ +// Copyright (c) 2016 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. + +#include <windows.h> +#include <ntverp.h> + +#define VER_FILETYPE VFT_DRV +#define VER_FILESUBTYPE VFT2_DRV_SYSTEM +#define VER_FILEDESCRIPTION_STR "Windows Driver GYP target type" +#define VER_INTERNALNAME_STR "win-driver-target-type.sys" +#define VER_ORIGINALFILENAME_STR "win-driver-target-type.sys" + +#include "common.ver"
