GtkSharp/NuGet/build.py
stil 5063385d16 AppVeyor integration (#25)
* Fix minor bugs and improve code formatting of Python build tool

* Prepend $PATH to give it higher priority

* Invoke WiX tools through variable to ensure correct path

* Make build script ensure pacman dependencies are installed

* pacman -Sy causes dependency break on AppVeyor

* Skip deps version check and don't show progress bar
2017-02-05 07:07:05 +01:00

92 lines
2.9 KiB
Python

#!/usr/bin/python3
"""Script to build out the .Net dll's and package them into a Nuget Package for gtksharp3"""
import sys
from pybuild.profiles.GtkSharp import GtkSharp
from pybuild.profiles.GtkSharp_Core import GtkSharp_Core
from pybuild.profiles.Glue_Win32 import Glue_Win32
from pybuild.profiles.Glue_Win64 import Glue_Win64
from pybuild.profiles.Gtk_Win32 import Gtk_Win32
from pybuild.profiles.Gtk_Win64 import Gtk_Win64
from pybuild.Helper import Helper
# Ideally I'd like to see the GtkSharp Build system redone via the build system of .Net core (dotnet cli tool)
# and using Scons / Cuppa for the glue libraries
# For now though we rely on the use of make to build the .Net dll's
# under linux we run this natively, under windows we can use MSYS2
class Build(object):
# Clean the Build directory
@staticmethod
def clean():
"""Clean the build dir"""
Helper.emptydir('./build')
print("Clean finished")
# Print Usage
@staticmethod
def usage():
print("Please use GtkSharp3_Build.py <target> where <target> is one of")
print(" clean to clean the output directory: ./build")
print(" gtksharp to build .Net libs for GtkSharp, via .Net 4.5")
print(" gtksharp_core to build .Net libs for GtkSharp, via .Net 4.5 using the dotnet cli tool")
print(" gtk_win32 to build the Nuget package for GtkSharp.Win32")
print(" gtk_win64 to build the Nuget package for GtkSharp.Win64")
print(" all to make all")
def main(self):
if len(sys.argv) != 2:
self.usage()
return
if sys.argv[1] == 'all':
self.runbuild('gtksharp')
self.runbuild('gtk_win32')
self.runbuild('gtk_win64')
return
self.runbuild(sys.argv[1])
def runbuild(self, build_type):
if build_type == 'clean':
self.clean()
return
Helper.install_pacman_deps()
if build_type == 'gtksharp':
profile = GtkSharp()
profile.clean()
profile.build()
profile.copy()
profile.build_nuget()
elif build_type == 'gtksharp_core':
profile = GtkSharp_Core()
profile.clean()
profile.build()
profile.copy_dll()
profile.build_nuget()
elif build_type == 'gtk_win32':
profile_glue = Glue_Win32()
profile_glue.clean()
profile_glue.build()
profile_gtk = Gtk_Win32()
profile_gtk.build()
profile_gtk.build_nuget()
elif build_type == 'gtk_win64':
profile_glue = Glue_Win64()
profile_glue.clean()
profile_glue.build()
profile = Gtk_Win64()
profile.build()
profile.build_nuget()
if __name__ == "__main__":
Build().main()