/// <summary> /// Return the assets from the bardescriptor.xml /// </summary> /// <returns></returns> private ITaskItem[] GetAssetsFile() { //make sure the _descriptor is loaded if (_descriptor == null) { _descriptor = BarDescriptor.Parser.Load(Path.Combine(ProjectDir, ApplicationDescriptorXml)); } BarDescriptor.asset[] globalAssets = _descriptor.assets; BarDescriptor.asset[] configAssets = null; // You can call a configuration whatever you like, but these are the ones Momentics uses for its various // platform + configuration combinations. Usually this is the same as the output directory, but asset paths // don't have anything to do with the configuration name. I've based the config names on the platform // + configuration combination, not the output directory. BarDescriptor.qnxConfiguration[] configs = _descriptor.configurations; foreach (BarDescriptor.qnxConfiguration config in configs) { if (Configuration == "Debug" && Platform == "BlackBerry" && config.name == "Device-Debug") { configAssets = config.asset; break; } else if (Configuration == "Release" && Platform == "BlackBerry" && config.name == "Device-Release") { configAssets = config.asset; break; } else if (Configuration == "Profile" && Platform == "BlackBerry" && config.name == "Device-Profile") { configAssets = config.asset; break; } else if (Configuration == "Coverage" && Platform == "BlackBerry" && config.name == "Device-Coverage") { configAssets = config.asset; break; } else if (Configuration == "Debug" && Platform == "BlackBerrySimulator" && (config.name == "Simulator" || config.name == "Simulator-Debug")) { configAssets = config.asset; break; } else if (Configuration == "Profile" && Platform == "BlackBerrySimulator" && config.name == "Simulator-Profile") { configAssets = config.asset; break; } else if (Configuration == "Coverage" && Platform == "BlackBerrySimulator" && config.name == "Simulator-Coverage") { configAssets = config.asset; break; } else if (Configuration == "Release" && Platform == "BlackBerrySimulator" && config.name == "Simulator-Release") { configAssets = config.asset; break; } } ITaskItem[] items = null; int clen = (configAssets == null) ? 0 : configAssets.Length; int glen = (globalAssets == null) ? 0 : globalAssets.Length; items = new ITaskItem[glen + clen]; for (int i = 0; i < glen; i++) { string path = globalAssets[i].path; path = path.Replace("}", string.Empty).Replace(WORKSPACE_LOC, SolutionDir); string target = globalAssets[i].Value; items[i] = new TaskItem(path); items[i].SetMetadata("target", target); } if (configAssets != null) { for (int i = 0; i < configAssets.Length; i++) { string path = configAssets[i].path; path = path.Replace("}", string.Empty).Replace(WORKSPACE_LOC, SolutionDir); string target = configAssets[i].Value; items[i + glen] = new TaskItem(path); items[i + glen].SetMetadata("target", target); } } return(items); }
/// <summary> /// Return the assets from the bardescriptor.xml /// </summary> /// <returns></returns> private ITaskItem[] GetAssetsFile() { //make sure the _descriptor is loaded if (_descriptor == null) _descriptor = BarDescriptor.Parser.Load(Path.Combine(ProjectDir, ApplicationDescriptorXml)); BarDescriptor.asset[] globalAssets = _descriptor.assets; BarDescriptor.asset[] configAssets = null; // You can call a configuration whatever you like, but these are the ones Momentics uses for its various // platform + configuration combinations. Usually this is the same as the output directory, but asset paths // don't have anything to do with the configuration name. I've based the config names on the platform // + configuration combination, not the output directory. BarDescriptor.qnxConfiguration[] configs = _descriptor.configurations; foreach (BarDescriptor.qnxConfiguration config in configs) { if (Configuration == "Debug" && Platform == "BlackBerry" && config.name == "Device-Debug") { configAssets = config.asset; break; } else if (Configuration == "Release" && Platform == "BlackBerry" && config.name == "Device-Release") { configAssets = config.asset; break; } else if (Configuration == "Profile" && Platform == "BlackBerry" && config.name == "Device-Profile") { configAssets = config.asset; break; } else if (Configuration == "Coverage" && Platform == "BlackBerry" && config.name == "Device-Coverage") { configAssets = config.asset; break; } else if (Configuration == "Debug" && Platform == "BlackBerrySimulator" && (config.name == "Simulator" || config.name == "Simulator-Debug")) { configAssets = config.asset; break; } else if (Configuration == "Profile" && Platform == "BlackBerrySimulator" && config.name == "Simulator-Profile") { configAssets = config.asset; break; } else if (Configuration == "Coverage" && Platform == "BlackBerrySimulator" && config.name == "Simulator-Coverage") { configAssets = config.asset; break; } } if (globalAssets != null && globalAssets.Length > 0) { ITaskItem[] items = null; if (configAssets != null) { items = new ITaskItem[globalAssets.Length + configAssets.Length]; } else { items = new ITaskItem[globalAssets.Length]; } for (int i = 0; i < globalAssets.Length; i++) { string path = globalAssets[i].path; path = path.Replace("}", string.Empty).Replace(WORKSPACE_LOC, SolutionDir); string target = globalAssets[i].Value; items[i] = new TaskItem(path); items[i].SetMetadata("target", target); } if (configAssets != null && configAssets.Length > 0) { for (int i = 0; i < configAssets.Length; i++) { string path = configAssets[i].path; path = path.Replace("}", string.Empty).Replace(WORKSPACE_LOC, SolutionDir); string target = configAssets[i].Value; items[i + globalAssets.Length] = new TaskItem(path); items[i + globalAssets.Length].SetMetadata("target", target); } } return items; } return null; }