Skip to content

Commit

Permalink
Fix Platform matching bug in CPP projects - references #1467
Browse files Browse the repository at this point in the history
  • Loading branch information
forki committed Feb 13, 2016
1 parent 0b8cbd4 commit e914a7a
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 59 deletions.
3 changes: 3 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
#### 2.50.8 - 13.02.2016
* Experimental Visual C++ support in binding redirects - https://github.com/fsprojects/Paket/issues/1467

#### 2.50.7 - 13.02.2016
* Do not pack absolute paths - https://github.com/fsprojects/Paket/issues/1472

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,28 +115,23 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="true">
<PropertyGroup>
<__paket__cpprestsdk_v120_winapp_msvcstl_dyn_rt-dyn_targets>native\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn</__paket__cpprestsdk_v120_winapp_msvcstl_dyn_rt-dyn_targets>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
<ItemGroup>
<Reference Include="cpprest120d_app_2_7">
<HintPath>..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\lib\native\v120\winapp\msvcstl\dyn\rt-dyn\arm\Debug\cpprest120d_app_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="cpprest120_app_2_7">
<HintPath>..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\lib\native\v120\winapp\msvcstl\dyn\rt-dyn\arm\Release\cpprest120_app_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Debug|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ItemGroup>
<Reference Include="cpprest120d_app_2_7">
<HintPath>..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\lib\native\v120\winapp\msvcstl\dyn\rt-dyn\x64\Debug\cpprest120d_app_2_7.dll</HintPath>
Expand All @@ -145,7 +140,7 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ItemGroup>
<Reference Include="cpprest120_app_2_7">
<HintPath>..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\lib\native\v120\winapp\msvcstl\dyn\rt-dyn\x86\Release\cpprest120_app_2_7.dll</HintPath>
Expand All @@ -154,7 +149,16 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
<ItemGroup>
<Reference Include="cpprest120_app_2_7">
<HintPath>..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\lib\native\v120\winapp\msvcstl\dyn\rt-dyn\arm\Release\cpprest120_app_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ItemGroup>
<Reference Include="cpprest120_app_2_7">
<HintPath>..\packages\cpprestsdk.v120.winapp.msvcstl.dyn.rt-dyn\lib\native\v120\winapp\msvcstl\dyn\rt-dyn\x64\Release\cpprest120_app_2_7.dll</HintPath>
Expand All @@ -165,14 +169,14 @@
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="true">
<PropertyGroup>
<__paket__cpprestsdk_v120_windesktop_msvcstl_dyn_rt-dyn_targets>native\cpprestsdk.v120.windesktop.msvcstl.dyn.rt-dyn</__paket__cpprestsdk_v120_windesktop_msvcstl_dyn_rt-dyn_targets>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ItemGroup>
<Reference Include="cpprest120d_2_7">
<HintPath>..\packages\cpprestsdk.v120.windesktop.msvcstl.dyn.rt-dyn\lib\native\v120\windesktop\msvcstl\dyn\rt-dyn\x64\Debug\cpprest120d_2_7.dll</HintPath>
Expand All @@ -181,7 +185,7 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ItemGroup>
<Reference Include="cpprest120_2_7">
<HintPath>..\packages\cpprestsdk.v120.windesktop.msvcstl.dyn.rt-dyn\lib\native\v120\windesktop\msvcstl\dyn\rt-dyn\x86\Release\cpprest120_2_7.dll</HintPath>
Expand All @@ -190,7 +194,7 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ItemGroup>
<Reference Include="cpprest120_2_7">
<HintPath>..\packages\cpprestsdk.v120.windesktop.msvcstl.dyn.rt-dyn\lib\native\v120\windesktop\msvcstl\dyn\rt-dyn\x64\Release\cpprest120_2_7.dll</HintPath>
Expand All @@ -201,78 +205,86 @@
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="true">
<PropertyGroup>
<__paket__cpprestsdk_v120_winphone_msvcstl_dyn_rt-dyn_targets>native\cpprestsdk.v120.winphone.msvcstl.dyn.rt-dyn</__paket__cpprestsdk_v120_winphone_msvcstl_dyn_rt-dyn_targets>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
<ItemGroup>
<Reference Include="cpprest120d_wp81_2_7">
<HintPath>..\packages\cpprestsdk.v120.winphone.msvcstl.dyn.rt-dyn\lib\native\v120\winphone\msvcstl\dyn\rt-dyn\arm\Debug\cpprest120d_wp81_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ItemGroup>
<Reference Include="cpprest120_wp81_2_7">
<HintPath>..\packages\cpprestsdk.v120.winphone.msvcstl.dyn.rt-dyn\lib\native\v120\winphone\msvcstl\dyn\rt-dyn\arm\Release\cpprest120_wp81_2_7.dll</HintPath>
<HintPath>..\packages\cpprestsdk.v120.winphone.msvcstl.dyn.rt-dyn\lib\native\v120\winphone\msvcstl\dyn\rt-dyn\x86\Release\cpprest120_wp81_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
<ItemGroup>
<Reference Include="cpprest120_wp81_2_7">
<HintPath>..\packages\cpprestsdk.v120.winphone.msvcstl.dyn.rt-dyn\lib\native\v120\winphone\msvcstl\dyn\rt-dyn\x86\Release\cpprest120_wp81_2_7.dll</HintPath>
<HintPath>..\packages\cpprestsdk.v120.winphone.msvcstl.dyn.rt-dyn\lib\native\v120\winphone\msvcstl\dyn\rt-dyn\arm\Release\cpprest120_wp81_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="true">
<PropertyGroup>
<__paket__cpprestsdk_v120_winphonesl_msvcstl_dyn_rt-dyn_targets>native\cpprestsdk.v120.winphonesl.msvcstl.dyn.rt-dyn</__paket__cpprestsdk_v120_winphonesl_msvcstl_dyn_rt-dyn_targets>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
<ItemGroup>
<Reference Include="cpprest120d_wps81_2_7">
<HintPath>..\packages\cpprestsdk.v120.winphonesl.msvcstl.dyn.rt-dyn\lib\native\v120\winphonesl\msvcstl\dyn\rt-dyn\arm\Debug\cpprest120d_wps81_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ItemGroup>
<Reference Include="cpprest120_wps81_2_7">
<HintPath>..\packages\cpprestsdk.v120.winphonesl.msvcstl.dyn.rt-dyn\lib\native\v120\winphonesl\msvcstl\dyn\rt-dyn\arm\Release\cpprest120_wps81_2_7.dll</HintPath>
<HintPath>..\packages\cpprestsdk.v120.winphonesl.msvcstl.dyn.rt-dyn\lib\native\v120\winphonesl\msvcstl\dyn\rt-dyn\x86\Release\cpprest120_wps81_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
<ItemGroup>
<Reference Include="cpprest120_wps81_2_7">
<HintPath>..\packages\cpprestsdk.v120.winphonesl.msvcstl.dyn.rt-dyn\lib\native\v120\winphonesl\msvcstl\dyn\rt-dyn\x86\Release\cpprest120_wps81_2_7.dll</HintPath>
<HintPath>..\packages\cpprestsdk.v120.winphonesl.msvcstl.dyn.rt-dyn\lib\native\v120\winphonesl\msvcstl\dyn\rt-dyn\arm\Release\cpprest120_wps81_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="true">
<PropertyGroup>
<__paket__cpprestsdk_v120_winxp_msvcstl_dyn_rt-dyn_targets>native\cpprestsdk.v120.winxp.msvcstl.dyn.rt-dyn</__paket__cpprestsdk_v120_winxp_msvcstl_dyn_rt-dyn_targets>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ItemGroup>
<Reference Include="cpprest120d_xp_2_7">
<HintPath>..\packages\cpprestsdk.v120.winxp.msvcstl.dyn.rt-dyn\lib\native\v120\winxp\msvcstl\dyn\rt-dyn\x64\Debug\cpprest120d_xp_2_7.dll</HintPath>
Expand All @@ -281,7 +293,7 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ItemGroup>
<Reference Include="cpprest120_xp_2_7">
<HintPath>..\packages\cpprestsdk.v120.winxp.msvcstl.dyn.rt-dyn\lib\native\v120\winxp\msvcstl\dyn\rt-dyn\x86\Release\cpprest120_xp_2_7.dll</HintPath>
Expand All @@ -290,7 +302,7 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ItemGroup>
<Reference Include="cpprest120_xp_2_7">
<HintPath>..\packages\cpprestsdk.v120.winxp.msvcstl.dyn.rt-dyn\lib\native\v120\winxp\msvcstl\dyn\rt-dyn\x64\Release\cpprest120_xp_2_7.dll</HintPath>
Expand All @@ -301,28 +313,23 @@
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="true">
<PropertyGroup>
<__paket__cpprestsdk_v140_winapp_msvcstl_dyn_rt-dyn_targets>native\cpprestsdk.v140.winapp.msvcstl.dyn.rt-dyn</__paket__cpprestsdk_v140_winapp_msvcstl_dyn_rt-dyn_targets>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|arm'">
<ItemGroup>
<Reference Include="cpprest140d_uwp_2_7">
<HintPath>..\packages\cpprestsdk.v140.winapp.msvcstl.dyn.rt-dyn\lib\native\v140\winapp\msvcstl\dyn\rt-dyn\arm\Debug\cpprest140d_uwp_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
<Reference Include="cpprest140_uwp_2_7">
<HintPath>..\packages\cpprestsdk.v140.winapp.msvcstl.dyn.rt-dyn\lib\native\v140\winapp\msvcstl\dyn\rt-dyn\arm\Release\cpprest140_uwp_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Debug|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ItemGroup>
<Reference Include="cpprest140d_uwp_2_7">
<HintPath>..\packages\cpprestsdk.v140.winapp.msvcstl.dyn.rt-dyn\lib\native\v140\winapp\msvcstl\dyn\rt-dyn\x64\Debug\cpprest140d_uwp_2_7.dll</HintPath>
Expand All @@ -331,7 +338,7 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ItemGroup>
<Reference Include="cpprest140_uwp_2_7">
<HintPath>..\packages\cpprestsdk.v140.winapp.msvcstl.dyn.rt-dyn\lib\native\v140\winapp\msvcstl\dyn\rt-dyn\x86\Release\cpprest140_uwp_2_7.dll</HintPath>
Expand All @@ -340,7 +347,16 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|arm'">
<ItemGroup>
<Reference Include="cpprest140_uwp_2_7">
<HintPath>..\packages\cpprestsdk.v140.winapp.msvcstl.dyn.rt-dyn\lib\native\v140\winapp\msvcstl\dyn\rt-dyn\arm\Release\cpprest140_uwp_2_7.dll</HintPath>
<Private>True</Private>
<Paket>True</Paket>
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ItemGroup>
<Reference Include="cpprest140_uwp_2_7">
<HintPath>..\packages\cpprestsdk.v140.winapp.msvcstl.dyn.rt-dyn\lib\native\v140\winapp\msvcstl\dyn\rt-dyn\x64\Release\cpprest140_uwp_2_7.dll</HintPath>
Expand All @@ -351,14 +367,14 @@
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|Win32'">
<When Condition="true">
<PropertyGroup>
<__paket__cpprestsdk_v140_windesktop_msvcstl_dyn_rt-dyn_targets>native\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn</__paket__cpprestsdk_v140_windesktop_msvcstl_dyn_rt-dyn_targets>
</PropertyGroup>
</When>
</Choose>
<Choose>
<When Condition="'$(Platform)'=='Debug|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ItemGroup>
<Reference Include="cpprest140d_2_7">
<HintPath>..\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn\lib\native\v140\windesktop\msvcstl\dyn\rt-dyn\x64\Debug\cpprest140d_2_7.dll</HintPath>
Expand All @@ -367,7 +383,7 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|Win32'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ItemGroup>
<Reference Include="cpprest140_2_7">
<HintPath>..\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn\lib\native\v140\windesktop\msvcstl\dyn\rt-dyn\x86\Release\cpprest140_2_7.dll</HintPath>
Expand All @@ -376,7 +392,7 @@
</Reference>
</ItemGroup>
</When>
<When Condition="'$(Platform)'=='Release|x64'">
<When Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ItemGroup>
<Reference Include="cpprest140_2_7">
<HintPath>..\packages\cpprestsdk.v140.windesktop.msvcstl.dyn.rt-dyn\lib\native\v140\windesktop\msvcstl\dyn\rt-dyn\x64\Release\cpprest140_2_7.dll</HintPath>
Expand Down
14 changes: 9 additions & 5 deletions src/Paket.Core/FrameworkHandling.fs
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ type FrameworkIdentifier =
| MonoAndroid -> [ ]
| MonoTouch -> [ ]
| MonoMac -> [ ]
| Native _ -> [ ]
| Native(_) -> [ ]
| XamariniOS -> [ ]
| XamarinMac -> [ ]
| DotNetFramework FrameworkVersion.V1 -> [ ]
Expand Down Expand Up @@ -198,11 +198,13 @@ module FrameworkDetection =
| "monomac" | "monomac10" | "monomac1" -> Some MonoMac
| "xamarinios" | "xamarinios10" | "xamarinios1" | "xamarin.ios10" -> Some XamariniOS
| "xamarinmac" | "xamarinmac20" | "xamarin.mac20" -> Some XamarinMac
| "native" -> Some(Native("Debug","Win32"))
| "native/x86/debug" -> Some(Native("Debug","Win32"))
| "native/x64/debug" -> Some(Native("Debug","x64"))
| "native/arm/debug" -> Some(Native("Debug","arm"))
| "native/x86/release" -> Some(Native("Release","Win32"))
| "native/x64/release" -> Some(Native("Release","x64"))
| "native/arm/release" -> Some(Native("Release","arm"))
| "native" -> Some(Native("",""))
| "sl" | "sl3" | "sl30" -> Some (Silverlight "v3.0")
| "sl4" | "sl40" -> Some (Silverlight "v4.0")
| "sl5" | "sl50" -> Some (Silverlight "v5.0")
Expand Down Expand Up @@ -230,8 +232,7 @@ module FrameworkDetection =
let endPos = path.LastIndexOf(fi.Name,StringComparison.OrdinalIgnoreCase)
if startPos < 0 || endPos < 0 then None
else
path.Substring(startPos + 4, endPos - startPos - 5)
|> Extract
Extract(path.Substring(startPos + 4, endPos - startPos - 5))


type TargetProfile =
Expand Down Expand Up @@ -340,10 +341,13 @@ module KnownTargetProfiles =
SinglePlatform(MonoTouch)
SinglePlatform(XamariniOS)
SinglePlatform(XamarinMac)
SinglePlatform(Native("",""))
SinglePlatform(Native("Debug","Win32"))
SinglePlatform(Native("Release","Win32"))
SinglePlatform(Native("Debug","arm"))
SinglePlatform(Native("Debug","x64"))
SinglePlatform(Native("Release","Win32"))
SinglePlatform(Native("Release","x64"))
SinglePlatform(Native("Release","arm"))
SinglePlatform(WindowsPhoneApp "v8.1")
PortableProfile("Profile2", [ DotNetFramework FrameworkVersion.V4; Silverlight "v4.0"; Windows "v4.5"; WindowsPhoneSilverlight "v7.0" ])
PortableProfile("Profile3", [ DotNetFramework FrameworkVersion.V4; Silverlight "v4.0" ])
Expand Down
6 changes: 3 additions & 3 deletions src/Paket.Core/InstallModel.fs
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ module InstallModel =

let calcLibFolders libs =
libs
|> Seq.choose extractLibFolder
|> Seq.choose extractLibFolder
|> Seq.distinct
|> List.ofSeq
|> PlatformMatching.getSupportedTargetProfiles
Expand Down Expand Up @@ -216,7 +216,7 @@ module InstallModel =

Seq.fold (fun (model:InstallModel) file ->
match extractLibFolder file with
| Some folderName ->
| Some folderName ->
match Seq.tryFind (fun folder -> folder.Name = folderName) model.ReferenceFileFolders with
| Some path -> addPackageFile path file references model
| _ -> model
Expand Down Expand Up @@ -329,7 +329,7 @@ module InstallModel =

Seq.fold (fun model file ->
match extractBuildFolder file with
| Some folderName ->
| Some folderName ->
match Seq.tryFind (fun folder -> folder.Name = folderName) model.TargetsFileFolders with
| Some path -> addTargetsFile path file model
| _ -> model
Expand Down
3 changes: 2 additions & 1 deletion src/Paket.Core/PlatformMatching.fs
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@ let getTargetCondition (target:TargetProfile) =
| MonoMac -> "$(TargetFrameworkIdentifier) == 'MonoMac'", ""
| XamariniOS -> "$(TargetFrameworkIdentifier) == 'Xamarin.iOS'", ""
| XamarinMac -> "$(TargetFrameworkIdentifier) == 'Xamarin.Mac'", ""
| Native(profile,bits) -> (sprintf "'$(Platform)'=='%s|%s'" profile bits), ""
| Native("","") -> "true", ""
| Native(profile,bits) -> (sprintf "'$(Configuration)|$(Platform)'=='%s|%s'" profile bits), ""
| PortableProfile(name, _) -> sprintf "$(TargetFrameworkProfile) == '%O'" name,""

let getCondition (referenceCondition:string option) (targets : TargetProfile list) =
Expand Down
Loading

0 comments on commit e914a7a

Please sign in to comment.