[msbuild] Don't put gcc/linker flags in the response file, since Mono.Options doesn't support escaping quotes. Fixes vsts#649776. (#4495)
Mono.Options doesn't (yet) support escaped quotes when parsing response files, which becomes a problem because escaped quotes are necessary when passing paths with spaces as gcc/linker flags. So don't write gcc/linker flags in the response file, and instead pass them as normal command line arguments, and to be on the safe side, do the same thing for all extra arguments passed to mmp/mtouch. Also add tests. Fixes https://devdiv.visualstudio.com/DevDiv/_workitems/edit/649776.
|
@ -20,7 +20,7 @@ MSBUILD_DIRECTORIES =
|
||||||
MSBUILD_SYMLINKS =
|
MSBUILD_SYMLINKS =
|
||||||
MSBUILD_TASK_ASSEMBLIES =
|
MSBUILD_TASK_ASSEMBLIES =
|
||||||
|
|
||||||
ALL_SOURCES = $(wildcard $(TOP)/msbuild/*/*.cs) $(wildcard $(TOP)/msbuild/*/*/*.cs) $(wildcard $(TOP)/msbuild/*/*/*/*.cs) *.sln $(wildcard */*.csproj) $(wildcard */packages.config)
|
ALL_SOURCES:= $(shell git ls-files | sed 's/ /\\ /g')
|
||||||
CONFIG = Debug
|
CONFIG = Debug
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -102,6 +102,7 @@ namespace Xamarin.Mac.Tasks
|
||||||
protected override string GenerateCommandLineCommands ()
|
protected override string GenerateCommandLineCommands ()
|
||||||
{
|
{
|
||||||
var args = new CommandLineArgumentBuilder ();
|
var args = new CommandLineArgumentBuilder ();
|
||||||
|
var actualArgs = new CommandLineArgumentBuilder ();
|
||||||
bool msym;
|
bool msym;
|
||||||
|
|
||||||
args.AddLine ("/verbose");
|
args.AddLine ("/verbose");
|
||||||
|
@ -203,7 +204,7 @@ namespace Xamarin.Mac.Tasks
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace (ExtraArguments))
|
if (!string.IsNullOrWhiteSpace (ExtraArguments))
|
||||||
args.AddLine (ExtraArguments);
|
actualArgs.Add (ExtraArguments);
|
||||||
|
|
||||||
if (NativeReferences != null) {
|
if (NativeReferences != null) {
|
||||||
foreach (var nr in NativeReferences)
|
foreach (var nr in NativeReferences)
|
||||||
|
@ -237,10 +238,9 @@ namespace Xamarin.Mac.Tasks
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use only the response file
|
// Use only the response file
|
||||||
args = new CommandLineArgumentBuilder ();
|
actualArgs.AddQuoted ($"@{responseFile}");
|
||||||
args.AddQuotedLine ($"@{responseFile}");
|
|
||||||
|
|
||||||
return args.ToString ();
|
return actualArgs.ToString ();
|
||||||
}
|
}
|
||||||
|
|
||||||
string GetMonoBundleDirName ()
|
string GetMonoBundleDirName ()
|
||||||
|
|
|
@ -360,6 +360,7 @@ namespace Xamarin.iOS.Tasks
|
||||||
protected override string GenerateCommandLineCommands ()
|
protected override string GenerateCommandLineCommands ()
|
||||||
{
|
{
|
||||||
var args = new CommandLineArgumentBuilder ();
|
var args = new CommandLineArgumentBuilder ();
|
||||||
|
var actualArgs = new CommandLineArgumentBuilder ();
|
||||||
TargetArchitecture architectures;
|
TargetArchitecture architectures;
|
||||||
bool msym;
|
bool msym;
|
||||||
|
|
||||||
|
@ -560,7 +561,7 @@ namespace Xamarin.iOS.Tasks
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// other user-defined mtouch arguments
|
// other user-defined mtouch arguments
|
||||||
args.AddQuotedLine (StringParserService.Parse (argument, customTags));
|
actualArgs.AddQuoted (StringParserService.Parse (argument, customTags));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -578,7 +579,7 @@ namespace Xamarin.iOS.Tasks
|
||||||
args.AddLine ("--cxx");
|
args.AddLine ("--cxx");
|
||||||
|
|
||||||
if (gcc.Arguments.Length > 0)
|
if (gcc.Arguments.Length > 0)
|
||||||
args.AddQuotedLine ($"--gcc_flags={gcc.Arguments.ToString ()}");
|
actualArgs.AddQuoted ($"--gcc_flags={gcc.Arguments.ToString ()}");
|
||||||
|
|
||||||
foreach (var asm in References) {
|
foreach (var asm in References) {
|
||||||
if (IsFrameworkItem(asm)) {
|
if (IsFrameworkItem(asm)) {
|
||||||
|
@ -618,10 +619,9 @@ namespace Xamarin.iOS.Tasks
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use only the response file
|
// Use only the response file
|
||||||
args = new CommandLineArgumentBuilder ();
|
actualArgs.AddQuoted ($"@{responseFile}");
|
||||||
args.AddQuoted ($"@{responseFile}");
|
|
||||||
|
|
||||||
return args.ToString ();
|
return actualArgs.ToString ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool IsFrameworkItem (ITaskItem item)
|
static bool IsFrameworkItem (ITaskItem item)
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Foundation;
|
||||||
|
using UIKit;
|
||||||
|
|
||||||
|
namespace MySpacedApp
|
||||||
|
{
|
||||||
|
// The UIApplicationDelegate for the application. This class is responsible for launching the
|
||||||
|
// User Interface of the application, as well as listening (and optionally responding) to
|
||||||
|
// application events from iOS.
|
||||||
|
[Register ("AppDelegate")]
|
||||||
|
public partial class AppDelegate : UIApplicationDelegate
|
||||||
|
{
|
||||||
|
// class-level declarations
|
||||||
|
public override UIWindow Window {
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
// This method is invoked when the application is about to move from active to inactive state.
|
||||||
|
// OpenGL applications should use this method to pause.
|
||||||
|
public override void OnResignActivation (UIApplication application)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
// This method should be used to release shared resources and it should store the application state.
|
||||||
|
// If your application supports background exection this method is called instead of WillTerminate
|
||||||
|
// when the user quits.
|
||||||
|
public override void DidEnterBackground (UIApplication application)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// This method is called as part of the transiton from background to active state.
|
||||||
|
public override void WillEnterForeground (UIApplication application)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// This method is called when the application is about to terminate. Save data, if needed.
|
||||||
|
public override void WillTerminate (UIApplication application)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?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>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?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>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1 @@
|
||||||
|
BundleResource
|
|
@ -0,0 +1 @@
|
||||||
|
Content
|
|
@ -0,0 +1 @@
|
||||||
|
EmbeddedResource
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4469" systemVersion="13A476u" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3694" />
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" />
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder" />
|
||||||
|
<view contentMode="scaleToFill" id="1">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="320" height="568" />
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" />
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite" />
|
||||||
|
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" />
|
||||||
|
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4" />
|
||||||
|
</view>
|
||||||
|
</objects>
|
||||||
|
</document>
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?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>UIDeviceFamily</key>
|
||||||
|
<array>
|
||||||
|
<integer>1</integer>
|
||||||
|
</array>
|
||||||
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
|
<array>
|
||||||
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||||
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||||
|
</array>
|
||||||
|
<key>UIMainStoryboardFile</key>
|
||||||
|
<string>MainStoryboard</string>
|
||||||
|
<key>MinimumOSVersion</key>
|
||||||
|
<string>7.0</string>
|
||||||
|
<key>CFBundleDisplayName</key>
|
||||||
|
<string>ApplicationName</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.your-company.mysingleview</string>
|
||||||
|
<key>XSAppIconAssets</key>
|
||||||
|
<string>Resources/Images.xcassets/AppIcons.appiconset</string>
|
||||||
|
<key>XSLaunchImageAssets</key>
|
||||||
|
<string>Resources/Images.xcassets/LaunchImage.launchimage</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1 @@
|
||||||
|
Linked Bundle Resource
|
|
@ -0,0 +1 @@
|
||||||
|
Linked Content
|
|
@ -0,0 +1 @@
|
||||||
|
Linked embedded resource
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Foundation;
|
||||||
|
using UIKit;
|
||||||
|
|
||||||
|
namespace MySpacedApp
|
||||||
|
{
|
||||||
|
public class Application
|
||||||
|
{
|
||||||
|
// This is the main entry point of the application.
|
||||||
|
static void Main (string[] args)
|
||||||
|
{
|
||||||
|
// if you want to use a different Application Delegate class from "AppDelegate"
|
||||||
|
// you can specify it here.
|
||||||
|
UIApplication.Main (args, null, "AppDelegate");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="1.0" toolsVersion="1938" systemVersion="11C74" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="1">
|
||||||
|
<dependencies>
|
||||||
|
<development defaultVersion="4200" identifier="xcode"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="933"/>
|
||||||
|
</dependencies>
|
||||||
|
<scenes>
|
||||||
|
<scene sceneID="0">
|
||||||
|
<objects>
|
||||||
|
<viewController id="1" sceneMemberID="viewController" customClass="">
|
||||||
|
<view key="view" contentMode="scaleToFill" id="2">
|
||||||
|
<rect key="frame" x="0.0" y="20" width="320" height="460"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||||
|
<subviews>
|
||||||
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="5">
|
||||||
|
<rect key="frame" x="124" y="81" width="72" height="37"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
|
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||||
|
<state key="normal" title="Button">
|
||||||
|
<color key="titleColor" red="0.196078" green="0.3098" blue="0.52157" alpha="1" colorSpace="calibratedRGB"/>
|
||||||
|
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
</state>
|
||||||
|
<state key="highlighted">
|
||||||
|
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
|
</state>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
</view>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="3" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="-313" y="-220"/>
|
||||||
|
</scene>
|
||||||
|
</scenes>
|
||||||
|
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||||
|
<simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
|
||||||
|
<simulatedOrientationMetrics key="orientation"/>
|
||||||
|
<simulatedScreenMetrics key="destination"/>
|
||||||
|
</simulatedMetricsContainer>
|
||||||
|
<resources/>
|
||||||
|
</document>
|
|
@ -0,0 +1,151 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">iPhoneSimulator</Platform>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{CD172548-2120-4FDA-9323-534F7EB019E3}</ProjectGuid>
|
||||||
|
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<RootNamespace>MySpacedApp</RootNamespace>
|
||||||
|
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
|
||||||
|
<AssemblyName>MySpacedApp</AssemblyName>
|
||||||
|
<TargetFrameworkIdentifier>Xamarin.iOS</TargetFrameworkIdentifier>
|
||||||
|
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\iPhoneSimulator\Debug</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<MtouchLink>None</MtouchLink>
|
||||||
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<MtouchDebug>true</MtouchDebug>
|
||||||
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\iPhoneSimulator\Release</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<MtouchLink>None</MtouchLink>
|
||||||
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhone' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\iPhone\Debug</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<MtouchDebug>true</MtouchDebug>
|
||||||
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<CodesignKey>iPhone Developer</CodesignKey>
|
||||||
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
|
<MtouchArch>ARMv7</MtouchArch>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\iPhone\Release</OutputPath>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<CodesignKey>iPhone Developer</CodesignKey>
|
||||||
|
<ConsolePause>false</ConsolePause>
|
||||||
|
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
|
||||||
|
<MtouchArch>ARMv7, ARM64</MtouchArch>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="Xamarin.iOS" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Resources\" />
|
||||||
|
<Folder Include="Folder\" />
|
||||||
|
<Folder Include="Resources\Archer\" />
|
||||||
|
<Folder Include="Resources\Archer\Archer_Attack.atlas\" />
|
||||||
|
<Folder Include="en.lproj\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<NativeReference Include="..\..\..\tests\test-libraries\.libs\ios\libtest2.a">
|
||||||
|
<Kind>Static</Kind>
|
||||||
|
<Link>libtest2.a</Link>
|
||||||
|
</NativeReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Info.plist" />
|
||||||
|
<None Include="Entitlements.plist" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Main.cs" />
|
||||||
|
<Compile Include="AppDelegate.cs" />
|
||||||
|
<Compile Include="MySpacedAppViewController.cs" />
|
||||||
|
<Compile Include="MySpacedAppViewController.designer.cs">
|
||||||
|
<DependentUpon>MySpacedAppViewController.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BundleResource Include="LinkedBundleResource.txt">
|
||||||
|
<Link>Folder\LinkedBundleResource.txt</Link>
|
||||||
|
</BundleResource>
|
||||||
|
<BundleResource Include="Folder\BundleResource.txt" />
|
||||||
|
<BundleResource Include="Resources\image.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="LinkedEmbeddedResource.txt">
|
||||||
|
<Link>Folder\LinkedEmbeddedResource.txt</Link>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Folder\EmbeddedResource.txt" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="Folder\Content.txt" />
|
||||||
|
<Content Include="LinkedContent.txt">
|
||||||
|
<Link>Folder\LinkedContent.txt</Link>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<InterfaceDefinition Include="MainStoryboard.storyboard" />
|
||||||
|
<InterfaceDefinition Include="iPhoneView.xib" />
|
||||||
|
<InterfaceDefinition Include="en.lproj\TranslatedView.xib" />
|
||||||
|
<InterfaceDefinition Include="Folder\FolderView.xib" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ITunesArtwork Include="iTunesArtwork" />
|
||||||
|
<ITunesArtwork Include="iTunesArtwork%402x" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\Contents.json" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\Icon.png" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\Icon%402x.png" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\Icon-60%402x.png" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\Icon-Small.png" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\Icon-Small%402x.png" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\AppIcons.appiconset\Icon-Small-40%402x.png" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\LaunchImage.launchimage\Contents.json" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\LaunchImage.launchimage\Default.png" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\LaunchImage.launchimage\Default%402x.png" />
|
||||||
|
<ImageAsset Include="Resources\Images.xcassets\LaunchImage.launchimage\Default-568h%402x.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0001.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0002.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0003.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0004.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0005.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0006.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0007.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0008.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0009.png" />
|
||||||
|
<AtlasTexture Include="Resources\Archer\Archer_Attack.atlas\archer_attack_0010.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
|
||||||
|
</Project>
|
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
|
# Visual Studio 2010
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "My Spaced App", "My Spaced App.csproj", "{CD172548-2120-4FDA-9323-534F7EB019E3}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|iPhoneSimulator = Debug|iPhoneSimulator
|
||||||
|
Release|iPhoneSimulator = Release|iPhoneSimulator
|
||||||
|
Debug|iPhone = Debug|iPhone
|
||||||
|
Release|iPhone = Release|iPhone
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{8F2D37C2-BF1F-408A-8E7E-1B89D2126DFB}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||||
|
{8F2D37C2-BF1F-408A-8E7E-1B89D2126DFB}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||||
|
{8F2D37C2-BF1F-408A-8E7E-1B89D2126DFB}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{8F2D37C2-BF1F-408A-8E7E-1B89D2126DFB}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{8F2D37C2-BF1F-408A-8E7E-1B89D2126DFB}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||||
|
{8F2D37C2-BF1F-408A-8E7E-1B89D2126DFB}.Release|iPhone.Build.0 = Release|iPhone
|
||||||
|
{8F2D37C2-BF1F-408A-8E7E-1B89D2126DFB}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{8F2D37C2-BF1F-408A-8E7E-1B89D2126DFB}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||||
|
{CD172548-2120-4FDA-9323-534F7EB019E3}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
|
||||||
|
{CD172548-2120-4FDA-9323-534F7EB019E3}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
|
||||||
|
{CD172548-2120-4FDA-9323-534F7EB019E3}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
|
||||||
|
{CD172548-2120-4FDA-9323-534F7EB019E3}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
|
||||||
|
{CD172548-2120-4FDA-9323-534F7EB019E3}.Debug|iPhone.ActiveCfg = Debug|iPhone
|
||||||
|
{CD172548-2120-4FDA-9323-534F7EB019E3}.Debug|iPhone.Build.0 = Debug|iPhone
|
||||||
|
{CD172548-2120-4FDA-9323-534F7EB019E3}.Release|iPhone.ActiveCfg = Release|iPhone
|
||||||
|
{CD172548-2120-4FDA-9323-534F7EB019E3}.Release|iPhone.Build.0 = Release|iPhone
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(MonoDevelopProperties) = preSolution
|
||||||
|
StartupItem = My Spaced App.csproj
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,60 @@
|
||||||
|
using System;
|
||||||
|
using CoreGraphics;
|
||||||
|
using Foundation;
|
||||||
|
using UIKit;
|
||||||
|
|
||||||
|
namespace MySpacedApp
|
||||||
|
{
|
||||||
|
public partial class MySpacedAppViewController : UIViewController
|
||||||
|
{
|
||||||
|
public MySpacedAppViewController (IntPtr handle) : base (handle)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DidReceiveMemoryWarning ()
|
||||||
|
{
|
||||||
|
// Releases the view if it doesn't have a superview.
|
||||||
|
base.DidReceiveMemoryWarning ();
|
||||||
|
|
||||||
|
// Release any cached data, images, etc that aren't in use.
|
||||||
|
}
|
||||||
|
|
||||||
|
#region View lifecycle
|
||||||
|
|
||||||
|
public override void ViewDidLoad ()
|
||||||
|
{
|
||||||
|
base.ViewDidLoad ();
|
||||||
|
|
||||||
|
// Perform any additional setup after loading the view, typically from a nib.
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ViewWillAppear (bool animated)
|
||||||
|
{
|
||||||
|
base.ViewWillAppear (animated);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ViewDidAppear (bool animated)
|
||||||
|
{
|
||||||
|
base.ViewDidAppear (animated);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ViewWillDisappear (bool animated)
|
||||||
|
{
|
||||||
|
base.ViewWillDisappear (animated);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ViewDidDisappear (bool animated)
|
||||||
|
{
|
||||||
|
base.ViewDidDisappear (animated);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)
|
||||||
|
{
|
||||||
|
// Return true for supported orientations
|
||||||
|
return (toInterfaceOrientation != UIInterfaceOrientation.PortraitUpsideDown);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
//
|
||||||
|
// This file has been generated automatically by MonoDevelop to store outlets and
|
||||||
|
// actions made in the Xcode designer. If it is removed, they will be lost.
|
||||||
|
// Manual changes to this file may not be handled correctly.
|
||||||
|
//
|
||||||
|
using Foundation;
|
||||||
|
|
||||||
|
namespace MySpacedApp
|
||||||
|
{
|
||||||
|
[Register ("MySpacedAppViewController")]
|
||||||
|
partial class MySpacedAppViewController
|
||||||
|
{
|
||||||
|
void ReleaseDesignerOutlets ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0001.png
Executable file
После Ширина: | Высота: | Размер: 39 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0002.png
Executable file
После Ширина: | Высота: | Размер: 42 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0003.png
Executable file
После Ширина: | Высота: | Размер: 40 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0004.png
Executable file
После Ширина: | Высота: | Размер: 33 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0005.png
Executable file
После Ширина: | Высота: | Размер: 33 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0006.png
Executable file
После Ширина: | Высота: | Размер: 34 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0007.png
Executable file
После Ширина: | Высота: | Размер: 34 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0008.png
Executable file
После Ширина: | Высота: | Размер: 34 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0009.png
Executable file
После Ширина: | Высота: | Размер: 39 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Archer/Archer_Attack.atlas/archer_attack_0010.png
Executable file
После Ширина: | Высота: | Размер: 40 KiB |
|
@ -0,0 +1,94 @@
|
||||||
|
{
|
||||||
|
"images": [
|
||||||
|
{
|
||||||
|
"filename": "Icon-Small.png",
|
||||||
|
"size": "29x29",
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "Icon-Small@2x.png",
|
||||||
|
"size": "29x29",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "Icon-Small-40@2x.png",
|
||||||
|
"size": "40x40",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "Icon.png",
|
||||||
|
"size": "57x57",
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "Icon@2x.png",
|
||||||
|
"size": "57x57",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename": "Icon-60@2x.png",
|
||||||
|
"size": "60x60",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "iphone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "29x29",
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "29x29",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "40x40",
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "40x40",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "50x50",
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "50x50",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "72x72",
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "72x72",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "76x76",
|
||||||
|
"scale": "1x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"size": "76x76",
|
||||||
|
"scale": "2x",
|
||||||
|
"idiom": "ipad"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info": {
|
||||||
|
"version": 1,
|
||||||
|
"author": "xcode"
|
||||||
|
},
|
||||||
|
}
|
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/AppIcons.appiconset/Icon-60@2x.png
Normal file
После Ширина: | Высота: | Размер: 15 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/AppIcons.appiconset/Icon-Small-40@2x.png
Normal file
После Ширина: | Высота: | Размер: 8.6 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/AppIcons.appiconset/Icon-Small.png
Normal file
После Ширина: | Высота: | Размер: 2.0 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/AppIcons.appiconset/Icon-Small@2x.png
Normal file
После Ширина: | Высота: | Размер: 5.2 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/AppIcons.appiconset/Icon.png
Normal file
После Ширина: | Высота: | Размер: 5.1 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/AppIcons.appiconset/Icon@2x.png
Normal file
После Ширина: | Высота: | Размер: 14 KiB |
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"images": [
|
||||||
|
{
|
||||||
|
"orientation": "portrait",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"extent": "full-screen",
|
||||||
|
"filename": "Default.png",
|
||||||
|
"size": "320x480",
|
||||||
|
"scale": "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"orientation": "portrait",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"extent": "full-screen",
|
||||||
|
"filename": "Default@2x.png",
|
||||||
|
"size": "320x480",
|
||||||
|
"scale": "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"orientation": "portrait",
|
||||||
|
"idiom": "iphone",
|
||||||
|
"extent": "full-screen",
|
||||||
|
"filename": "Default-568h@2x.png",
|
||||||
|
"size": "320x568",
|
||||||
|
"subtype": "retina4",
|
||||||
|
"scale": "2x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info": {
|
||||||
|
"version": 1,
|
||||||
|
"author": "xcode"
|
||||||
|
}
|
||||||
|
}
|
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png
Normal file
После Ширина: | Высота: | Размер: 12 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/LaunchImage.launchimage/Default.png
Normal file
После Ширина: | Высота: | Размер: 5.2 KiB |
Двоичные данные
msbuild/tests/My Spaced App/Resources/Images.xcassets/LaunchImage.launchimage/Default@2x.png
Normal file
После Ширина: | Высота: | Размер: 12 KiB |
После Ширина: | Высота: | Размер: 3.5 KiB |
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4469" systemVersion="13A476u" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3694" />
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" />
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder" />
|
||||||
|
<view contentMode="scaleToFill" id="1">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="320" height="568" />
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" />
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite" />
|
||||||
|
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" />
|
||||||
|
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4" />
|
||||||
|
</view>
|
||||||
|
</objects>
|
||||||
|
</document>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4469" systemVersion="13A476u" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||||
|
<dependencies>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3694" />
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" />
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder" />
|
||||||
|
<view contentMode="scaleToFill" id="1">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="320" height="568" />
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" />
|
||||||
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite" />
|
||||||
|
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" />
|
||||||
|
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4" />
|
||||||
|
</view>
|
||||||
|
</objects>
|
||||||
|
</document>
|
После Ширина: | Высота: | Размер: 106 KiB |
После Ширина: | Высота: | Размер: 273 KiB |
|
@ -78,7 +78,7 @@ namespace Xamarin.iOS.Tasks
|
||||||
TestFilesExists (AppBundlePath, ExpectedAppFiles);
|
TestFilesExists (AppBundlePath, ExpectedAppFiles);
|
||||||
TestFilesDoNotExist (AppBundlePath, UnexpectedAppFiles);
|
TestFilesDoNotExist (AppBundlePath, UnexpectedAppFiles);
|
||||||
|
|
||||||
var coreFiles = GetCoreAppFiles (platform, config, appName + ".exe", appName);
|
var coreFiles = GetCoreAppFiles (platform, config, appName.Replace (" ", "") + ".exe", appName.Replace (" ", ""));
|
||||||
var baseDirs = new string [] {
|
var baseDirs = new string [] {
|
||||||
Path.Combine (AppBundlePath, ".monotouch-32"),
|
Path.Combine (AppBundlePath, ".monotouch-32"),
|
||||||
Path.Combine (AppBundlePath, ".monotouch-64"),
|
Path.Combine (AppBundlePath, ".monotouch-64"),
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using NUnit.Framework;
|
||||||
|
|
||||||
|
namespace Xamarin.iOS.Tasks
|
||||||
|
{
|
||||||
|
[TestFixture ("iPhone")]
|
||||||
|
[TestFixture ("iPhoneSimulator")]
|
||||||
|
public class ProjectWithSpacesTests : ProjectTest
|
||||||
|
{
|
||||||
|
public ProjectWithSpacesTests (string platform) : base (platform)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void BasicTest ()
|
||||||
|
{
|
||||||
|
this.BuildProject ("My Spaced App", Platform, "Debug", clean: false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -107,7 +107,7 @@ namespace Xamarin.iOS.Tasks
|
||||||
Task.ExtraArgs = "--customarg";
|
Task.ExtraArgs = "--customarg";
|
||||||
|
|
||||||
var args = Task.GenerateCommandLineCommands ();
|
var args = Task.GenerateCommandLineCommands ();
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("--customarg"), "#1");
|
Assert.IsTrue (args.Contains ("--customarg"), "#1");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -187,13 +187,13 @@ namespace Xamarin.iOS.Tasks
|
||||||
Task.ProjectDir = "path/to";
|
Task.ProjectDir = "path/to";
|
||||||
Task.ExtraArgs = "xyz-${ProjectDir}-xyz xxx-${AppBundleDir}-xxx yyy-${TargetPath}-yyy yzy-${TargetDir}-yzy zzz-${TargetName}-zzz zyx-${TargetExt}-zyx";
|
Task.ExtraArgs = "xyz-${ProjectDir}-xyz xxx-${AppBundleDir}-xxx yyy-${TargetPath}-yyy yzy-${TargetDir}-yzy zzz-${TargetName}-zzz zyx-${TargetExt}-zyx";
|
||||||
var args = Task.GenerateCommandLineCommands ();
|
var args = Task.GenerateCommandLineCommands ();
|
||||||
Assert.IsFalse (Task.ResponseFile.Contains ("$"), "#1");
|
Assert.IsFalse (args.Contains ("$"), "#1");
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("xyz-path/to-xyz"), "#ProjectDir");
|
Assert.IsTrue (args.Contains ("xyz-path/to-xyz"), "#ProjectDir");
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("xxx-../MySingleView/bin/iPhoneSimulator/Debug/MySingleView.app-xxx"), "#AppBundleDir");
|
Assert.IsTrue (args.Contains ("xxx-../MySingleView/bin/iPhoneSimulator/Debug/MySingleView.app-xxx"), "#AppBundleDir");
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("yyy-Main.exe-yyy"), "#TargetPath");
|
Assert.IsTrue (args.Contains ("yyy-Main.exe-yyy"), "#TargetPath");
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("yzy--yzy"), "#TargetDir");
|
Assert.IsTrue (args.Contains ("yzy--yzy"), "#TargetDir");
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("zzz-Main.exe-zzz"), "#TargetName");
|
Assert.IsTrue (args.Contains ("zzz-Main.exe-zzz"), "#TargetName");
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("zyx-.exe-zyx"), "#TargetExt");
|
Assert.IsTrue (args.Contains ("zyx-.exe-zyx"), "#TargetExt");
|
||||||
} finally {
|
} finally {
|
||||||
Task.ExtraArgs = null;
|
Task.ExtraArgs = null;
|
||||||
}
|
}
|
||||||
|
@ -203,8 +203,8 @@ namespace Xamarin.iOS.Tasks
|
||||||
public void BuildEntitlementFlagsTest ()
|
public void BuildEntitlementFlagsTest ()
|
||||||
{
|
{
|
||||||
var args = Task.GenerateCommandLineCommands ();
|
var args = Task.GenerateCommandLineCommands ();
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("\"--gcc_flags=-Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker"), "#1");
|
Assert.IsTrue (args.Contains ("\"--gcc_flags=-Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker"), "#1");
|
||||||
Assert.IsTrue (Task.ResponseFile.Contains ("Entitlements.plist"), "#2");
|
Assert.IsTrue (args.Contains ("Entitlements.plist"), "#2");
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -104,7 +104,7 @@ namespace Xamarin.iOS.Tasks
|
||||||
ProjectBinPath = binPath,
|
ProjectBinPath = binPath,
|
||||||
ProjectObjPath = objPath,
|
ProjectObjPath = objPath,
|
||||||
ProjectCSProjPath = Path.Combine (projectPath, csprojName + ".csproj"),
|
ProjectCSProjPath = Path.Combine (projectPath, csprojName + ".csproj"),
|
||||||
AppBundlePath = Path.Combine (binPath, projectName + ".app"),
|
AppBundlePath = Path.Combine (binPath, projectName.Replace (" ", "") + ".app"),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
<Compile Include="..\..\..\tests\common\ExecutionHelper.cs">
|
<Compile Include="..\..\..\tests\common\ExecutionHelper.cs">
|
||||||
<Link>ExecutionHelper.cs</Link>
|
<Link>ExecutionHelper.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="ProjectsTests\ProjectWithSpaces.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
|
|