Skip to content
This repository has been archived by the owner on Jan 18, 2024. It is now read-only.

add Windows ifuse support via Dokany #23

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions get-source.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ git clone --single-branch --branch msvc/master https://github.com/libimobiledevi
git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/idevicerestore
git clone --single-branch --branch master-msvc https://github.com/libimobiledevice-win32/usbmuxd
git clone --single-branch --branch msvc/master https://github.com/libimobiledevice-win32/ios-webkit-debug-proxy
git clone --single-branch --branch msvc/master https://github.com/stijnvdb88/ifuse
git clone --single-branch --branch master https://github.com/dokan-dev/dokany

echo "libplist revision:"
git -C libplist rev-parse HEAD
Expand Down
137 changes: 137 additions & 0 deletions ifuse.vcxproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A6DB61C4-073B-46E3-A973-948B56577759}</ProjectGuid>
<RootNamespace>idevicerestore</RootNamespace>
<WindowsTargetPlatformVersion>10</WindowsTargetPlatformVersion>
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>$(ProjectDir)\dokany\dokan_fuse\include;$(ProjectDir)\polyfill\;$(ProjectDir)\libplist\include\;$(ProjectDir)\libusbmuxd\include\;$(ProjectDir)\libimobiledevice\include\;$(ProjectDir)ifuse\src;$(IncludePath)</IncludePath>
<OutDir>$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)</IntDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>HAVE_CONFIG_H;_MBCS;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_WINSOCK_DEPRECATED_NO_WARNINGS;HAVE_REALPATH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="ifuse\src\ifuse.c" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="dokany\dokan_fuse\dokan_fuse.vcxproj">
<Project>{4af8149d-c526-4d38-a4bc-9ffa67edf924}</Project>
</ProjectReference>
<ProjectReference Include="imobiledevice.vcxproj">
<Project>{ee16e7f2-ac27-4e30-ab22-b02a9c2380b4}</Project>
</ProjectReference>
<ProjectReference Include="libplist.vcxproj">
<Project>{75352a45-bcb8-4774-8c66-3af9ea6b6b42}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
7 changes: 7 additions & 0 deletions libimobiledevice-vs.sln
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ideviceinstaller", "idevice
{EE16E7F2-AC27-4E30-AB22-B02A9C2380B4} = {EE16E7F2-AC27-4E30-AB22-B02A9C2380B4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dokan_fuse", "dokany\dokan_fuse\dokan_fuse.vcxproj", "{4AF8149D-C526-4D38-A4BC-9FFA67EDF924}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ifuse", "ifuse.vcxproj", "{A6DB61C4-073B-46E3-A973-948B56577759}"
EndProject

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{EDA94425-DDD6-4DD0-AB80-5B3ED502A551}"
ProjectSection(SolutionItems) = preProject
azure-pipelines.yml = azure-pipelines.yml
Expand Down Expand Up @@ -500,6 +505,7 @@ Global
{C524F5B4-EDB1-4622-8EA5-8CA9DFACA09D} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
{A68FA899-3363-4E9D-91A5-0C413FED5CC0} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
{10E88C2B-E98B-4EAA-AA34-9CA59136BBFD} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
{A6DB61C4-073B-46E3-A973-948B56577759} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
{1F5B7A30-B170-4D4C-89F8-33E4A24CF9CE} = {3D82DA5A-AC7F-42CC-8F68-0B7D701C1140}
{85BB4A0B-C219-42A5-BDA1-79CF05B5A5A1} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
{E775C6D0-C295-4D09-9ADC-60FC95526993} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
Expand All @@ -513,6 +519,7 @@ Global
{E6694D68-7D6C-4540-9833-E90B535B0CD3} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
{D5F1A4D4-C23A-47EF-91E9-E2C08F6E31B2} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
{B3202DE4-A933-46D3-B268-9C2156ECCAF6} = {BD71AAE2-2013-4CBF-A6C8-8FEA7ECDC77D}
{4AF8149D-C526-4D38-A4BC-9FFA67EDF924} = {3D82DA5A-AC7F-42CC-8F68-0B7D701C1140}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {22F8E3CD-A6BA-4F08-9695-1B4A2EE751B2}
Expand Down
4 changes: 4 additions & 0 deletions polyfill/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,8 @@

#ifndef strcasecmp
#define strcasecmp _stricmp
#endif

#ifndef O_ACCMODE
#define O_ACCMODE (_O_RDONLY | _O_WRONLY | _O_RDWR)
#endif