mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2024-12-22 19:05:31 +00:00
Merge pull request #117 from cra0zy/windeps2
Better way of including Gtk libs
This commit is contained in:
commit
d59d1e5fe6
|
@ -10,12 +10,15 @@
|
|||
<Description>GtkSharp is a C# wrapper for the Gtk library.</Description>
|
||||
<PackageTags>gtk;gtksharp;gtk-sharp;wrapper</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<OutputPath>..\..\..\BuildOutput\Debug</OutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<OutputPath>..\..\..\BuildOutput\Release</OutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\GLibSharp\GLibSharp.csproj">
|
||||
<Name>GLibSharp</Name>
|
||||
|
@ -36,173 +39,15 @@
|
|||
<Name>PangoSharp</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\Shared\*.cs">
|
||||
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove="windows-x64\atk-1.dll" />
|
||||
<None Remove="windows-x64\bz2.dll" />
|
||||
<None Remove="windows-x64\cairo-gobject.dll" />
|
||||
<None Remove="windows-x64\cairo.dll" />
|
||||
<None Remove="windows-x64\epoxy-0.dll" />
|
||||
<None Remove="windows-x64\expat.dll" />
|
||||
<None Remove="windows-x64\fontconfig.dll" />
|
||||
<None Remove="windows-x64\freetype.dll" />
|
||||
<None Remove="windows-x64\gailutil-3.dll" />
|
||||
<None Remove="windows-x64\gdk-3.dll" />
|
||||
<None Remove="windows-x64\gdk_pixbuf-2.dll" />
|
||||
<None Remove="windows-x64\gio-2.dll" />
|
||||
<None Remove="windows-x64\glib-2.dll" />
|
||||
<None Remove="windows-x64\gmodule-2.dll" />
|
||||
<None Remove="windows-x64\gobject-2.dll" />
|
||||
<None Remove="windows-x64\gthread-2.dll" />
|
||||
<None Remove="windows-x64\gtk-3.dll" />
|
||||
<None Remove="windows-x64\harfbuzz.dll" />
|
||||
<None Remove="windows-x64\libcharset.dll" />
|
||||
<None Remove="windows-x64\libiconv.dll" />
|
||||
<None Remove="windows-x64\libintl.dll" />
|
||||
<None Remove="windows-x64\libpng16.dll" />
|
||||
<None Remove="windows-x64\pango-1.dll" />
|
||||
<None Remove="windows-x64\pangocairo-1.dll" />
|
||||
<None Remove="windows-x64\pangoft2-1.dll" />
|
||||
<None Remove="windows-x64\pangowin32-1.dll" />
|
||||
<None Remove="windows-x64\pcre.dll" />
|
||||
<None Remove="windows-x64\pcre16.dll" />
|
||||
<None Remove="windows-x64\pcre32.dll" />
|
||||
<None Remove="windows-x64\pcrecpp.dll" />
|
||||
<None Remove="windows-x64\pcreposix.dll" />
|
||||
<None Remove="windows-x64\zlib1.dll" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="windows-x64\atk-1.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\bz2.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\cairo-gobject.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\cairo.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\epoxy-0.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\expat.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\fontconfig.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\freetype.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\gailutil-3.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\gdk-3.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\gdk_pixbuf-2.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\gio-2.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\glib-2.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\gmodule-2.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\gobject-2.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\gthread-2.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\gtk-3.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\harfbuzz.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\libcharset.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\libiconv.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\libintl.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\libpng16.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pango-1.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pangocairo-1.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pangoft2-1.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pangowin32-1.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pcre.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pcre16.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pcre32.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pcrecpp.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\pcreposix.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="windows-x64\zlib1.dll">
|
||||
<PackagePath>runtimes\win-x64\native</PackagePath>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="GtkSharp.targets" PackagePath="build\GtkSharp.targets" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
16
Source/Libs/GtkSharp/GtkSharp.targets
Normal file
16
Source/Libs/GtkSharp/GtkSharp.targets
Normal file
|
@ -0,0 +1,16 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<PropertyGroup>
|
||||
<GtkUrl Condition=" '$(GtkUrl)' == '' ">https://github.com/GtkSharp/Dependencies/raw/master/gtk-3.24.zip</GtkUrl>
|
||||
<GtkDir Condition=" '$(GtkDir)' == '' ">$(LOCALAPPDATA)\Gtk\3.24</GtkDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="InstallGtk" BeforeTargets="Build" Condition=" '$(SkipGtkInstall)' != 'True' and !Exists('$(GtkDir)/libgtk-3-0.dll') ">
|
||||
<Message Importance="High" Text="Gtk has not been detected, downloading and installing it, set SkipGtkInstall to True to skip theese steps."/>
|
||||
<Message Importance="High" Text="Ignore Gtk extract errors, bug msbuild/issues/3884"/>
|
||||
<MakeDir Directories="$(GtkDir)"/>
|
||||
<DownloadFile SourceUrl="$(GtkUrl)" DestinationFolder="$(GtkDir)" DestinationFileName="gtk.zip" />
|
||||
<Unzip ContinueOnError="true" SourceFiles="$(GtkDir)/gtk.zip" DestinationFolder="$(GtkDir)" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -36,17 +36,25 @@ class GLibrary
|
|||
return ret;
|
||||
|
||||
if (FuncLoader.IsWindows)
|
||||
ret = LoadLibrary(_libraryDefinitions[library][0]);
|
||||
{
|
||||
ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][0]);
|
||||
|
||||
if (ret == IntPtr.Zero)
|
||||
{
|
||||
SetDllDirectory(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Gtk", "3.24"));
|
||||
ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][0]);
|
||||
}
|
||||
}
|
||||
else if (FuncLoader.IsOSX)
|
||||
ret = LoadLibrary(_libraryDefinitions[library][2]);
|
||||
ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][2]);
|
||||
else
|
||||
ret = LoadLibrary(_libraryDefinitions[library][1]);
|
||||
ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][1]);
|
||||
|
||||
if (ret == IntPtr.Zero)
|
||||
{
|
||||
for (int i = 0; i < _libraryDefinitions[library].Length; i++)
|
||||
{
|
||||
ret = LoadLibrary(_libraryDefinitions[library][i]);
|
||||
ret = FuncLoader.LoadLibrary(_libraryDefinitions[library][i]);
|
||||
|
||||
if (ret != IntPtr.Zero)
|
||||
break;
|
||||
|
@ -62,27 +70,4 @@ class GLibrary
|
|||
_libraries[library] = ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
private static IntPtr LoadLibrary(string libname)
|
||||
{
|
||||
var ret = FuncLoader.LoadLibrary(libname);
|
||||
if (ret != IntPtr.Zero)
|
||||
return ret;
|
||||
|
||||
// Hacky solution to load libraries on Windows
|
||||
if (FuncLoader.IsWindows)
|
||||
{
|
||||
var assemblyLocation = Path.GetDirectoryName(typeof(GLibrary).Assembly.Location);
|
||||
var assemblyVersionDir = Path.GetDirectoryName(Path.GetDirectoryName(assemblyLocation));
|
||||
var version = Path.GetFileName(assemblyVersionDir);
|
||||
var gtkdir = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(assemblyVersionDir)), "gtksharp");
|
||||
var nativeLibDir = Path.Combine(gtkdir, version, "runtimes", "win-x64", "native");
|
||||
|
||||
SetDllDirectory(nativeLibDir);
|
||||
|
||||
ret = FuncLoader.LoadLibrary(Path.Combine(nativeLibDir, libname));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue