2017-10-30 13:35:00 +00:00
# GtkSharp
2019-11-04 21:02:06 +00:00
[![Build Status ](https://dev.azure.com/cra0zy/GtkSharp/_apis/build/status/GtkSharp.GtkSharp?branchName=develop )](https://dev.azure.com/cra0zy/GtkSharp/_build/latest?definitionId=1& branchName=develop)
2018-07-30 19:39:01 +00:00
GtkSharp is a C# wrapper for Gtk and its related components. The component list includes the following libraries: glib, gio, cairo, pango, atk, gdk. This is a fork of https://github.com/mono/gtk-sharp and is maintained completly separatly from that project.
2017-10-30 13:35:00 +00:00
2018-07-30 19:39:01 +00:00
Differences can be seen with the following table:
| | Target framework | Target Gtk Version | Extra notes |
|:--------------|:-------------------|:---------------------------------------------------|:------------------------------|
| GtkSharp | .NET Standard 2.0 | Gtk 3.22 | Does not need glue libraries. |
| mono/gtksharp | .NET Framework 4.5 | Gtk 2 (also Gtk 3.0 but never officially released) | |
2017-10-30 13:35:00 +00:00
* [Building from source ](#building-from-source )
* [Using the library ](#using-the-library )
* [License ](#license )
## Building from source
Pre requirements for building from source are that you have .Net Core and msbuild installed on the system.
To build the repository, first clone it:
```sh
2017-10-30 19:43:08 +00:00
git clone https://github.com/GtkSharp/GtkSharp.git
2017-10-30 13:35:00 +00:00
cd GtkSharp
```
2019-08-17 05:47:51 +00:00
and then simply run either `.\build.ps1` or `./build.sh` depending your operating system. If you have [Cake ](https://cakebuild.net/ ) installed as a .NET global tool just run `dotnet-cake` .
2017-10-30 13:35:00 +00:00
If you wish to generate the nuget packages simply add the `--BuildTarget=PackageNuGet` as an argument when calling the build script.
A breakdown on how the source is structured:
* Tools that are needed to generate wrapper code are found in [Tools ](Source/Tools ) folder
* The actual wrappers code is found in [Libs ](Source/Libs ) folder
* Templates are located in [Templates ](Source/Templates ) folder
* Build script is separated between [build.cake ](build.cake ) and [CakeScripts ](CakeScripts ) folder
## Using the library
2019-11-10 19:00:57 +00:00
On macOS, you'll need to manually install Gtk, see [Installing Gtk on Mac ](https://github.com/GtkSharp/GtkSharp/wiki/Installing-Gtk-on-Mac ) wiki page for more details on how to do it.
2017-10-30 13:35:00 +00:00
2017-10-30 13:44:32 +00:00
Available NuGet packages:
* [GtkSharp ](https://www.nuget.org/packages/GtkSharp/ )
* [GdkSharp ](https://www.nuget.org/packages/GdkSharp/ )
* [GioSharp ](https://www.nuget.org/packages/GioSharp/ )
* [GLibSharp ](https://www.nuget.org/packages/GLibSharp/ )
* [AtkSharp ](https://www.nuget.org/packages/AtkSharp/ )
* [PangoSharp ](https://www.nuget.org/packages/PangoSharp/ )
* [CairoSharp ](https://www.nuget.org/packages/CairoSharp/ )
2017-10-30 13:35:00 +00:00
To create a new gtk app project, simply use `dotnet new` templating engine:
* install: `dotnet new --install GtkSharp.Template.CSharp`
* uninstall: `dotnet new --uninstall GtkSharp.Template.CSharp`
* generate project: `dotnet new gtkapp`
## License
2018-01-25 23:13:36 +00:00
GtkSharp and its related components are licensed under [LGPL v2.0 license ](LICENSE ), while [Samples ](Source/Samples ) are licenced under [The Unlicense ](Source/Samples/LICENSE ).