fix to make it compile for v1.0.x again
This commit is contained in:
parent
ec7b8a7760
commit
67618a6119
4 changed files with 23 additions and 16 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
= High level GTK3 (and GTK4) bindings for the Nim programming language
|
= High level GTK3 (and GTK4) bindings for the Nim programming language
|
||||||
(c) Stefan Salewski
|
(c) Stefan Salewski
|
||||||
//Version 0.7.1
|
//Version 0.7.2
|
||||||
:experimental:
|
:experimental:
|
||||||
:imagesdir: http://ssalewski.de/tmp
|
:imagesdir: http://ssalewski.de/tmp
|
||||||
:source-highlighter: pygments
|
:source-highlighter: pygments
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Package
|
# Package
|
||||||
|
|
||||||
version = "0.7.1"
|
version = "0.7.2"
|
||||||
author = "Stefan Salewski"
|
author = "Stefan Salewski"
|
||||||
description = "High level GObject-Introspection based GTK3/GTK4 bindings"
|
description = "High level GObject-Introspection based GTK3/GTK4 bindings"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# This is the high level cairo module for Nim -- based on the low level ngtk3 module, manually tuned.
|
# This is the high level cairo module for Nim -- based on the low level ngtk3 module, manually tuned.
|
||||||
# (c) S. Salewski 2017, cairo 1.15.6
|
# (c) S. Salewski 2017, cairo 1.15.6
|
||||||
# v0.7.1
|
# v0.7.2
|
||||||
# 01-FEB-2020
|
# 23-FEB-2020
|
||||||
|
|
||||||
# starting with gintro v.0.6.0 we split cairo into the gobject-introspection generated cairo.nim and this file.
|
# starting with gintro v.0.6.0 we split cairo into the gobject-introspection generated cairo.nim and this file.
|
||||||
|
|
||||||
|
|
@ -138,7 +138,8 @@ var NUDK: ptr UserDataKey = cast[ptr UserDataKey](alloc(sizeof(UserDataKey)))
|
||||||
|
|
||||||
# copy from glib.nim
|
# copy from glib.nim
|
||||||
template fnew(a: untyped; finalizer: untyped) =
|
template fnew(a: untyped; finalizer: untyped) =
|
||||||
when compileOption("gc", "arc"):
|
# when compileOption("gc", "arc"):
|
||||||
|
when defined(gcDestructors):
|
||||||
new(a)
|
new(a)
|
||||||
else:
|
else:
|
||||||
new(a, finalizer)
|
new(a, finalizer)
|
||||||
|
|
@ -2640,5 +2641,5 @@ when CAIRO_HAS_TEE_SURFACE:
|
||||||
discard cairo_tee_surface_index(surface.impl, index.cuint)
|
discard cairo_tee_surface_index(surface.impl, index.cuint)
|
||||||
return surface
|
return surface
|
||||||
|
|
||||||
# 2636 lines new(
|
# 2644 lines
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# High level gobject-introspection based GTK3/GTK4 bindings for the Nim programming language
|
# High level gobject-introspection based GTK3/GTK4 bindings for the Nim programming language
|
||||||
# nimpretty --maxLineLen:130 gen.nim
|
# nimpretty --maxLineLen:130 gen.nim
|
||||||
# v 0.7.1 2020-FEB-20
|
# v 0.7.2 2020-FEB-23
|
||||||
# (c) S. Salewski 2018
|
# (c) S. Salewski 2018
|
||||||
|
|
||||||
# https://wiki.gnome.org/Projects/GObjectIntrospection
|
# https://wiki.gnome.org/Projects/GObjectIntrospection
|
||||||
|
|
@ -1170,7 +1170,8 @@ template genBoxedFree =
|
||||||
else:
|
else:
|
||||||
output.writeLine(" if not self.ignoreFinalizer:")
|
output.writeLine(" if not self.ignoreFinalizer:")
|
||||||
output.writeLine(" boxedFree(", getTypeProc, "(), ", "cast[ptr " & mangleName(gBaseInfoGetName(info)) & "00](self.impl))")
|
output.writeLine(" boxedFree(", getTypeProc, "(), ", "cast[ptr " & mangleName(gBaseInfoGetName(info)) & "00](self.impl))")
|
||||||
output.writeLine("\nwhen compileOption(\"gc\", \"arc\"):") # the when is not really needed, currently default gc ignores destructor
|
#output.writeLine("\nwhen compileOption(\"gc\", \"arc\"):") # the when is not really needed, currently default gc ignores destructor
|
||||||
|
output.writeLine("\nwhen defined(gcDestructors):")
|
||||||
output.writeLine(" proc `=destroy`*(self: var typeof(" & mangleName(gBaseInfoGetName(info)) & "()[])) =")
|
output.writeLine(" proc `=destroy`*(self: var typeof(" & mangleName(gBaseInfoGetName(info)) & "()[])) =")
|
||||||
output.writeLine(" if not self.ignoreFinalizer and self.impl != nil:")
|
output.writeLine(" if not self.ignoreFinalizer and self.impl != nil:")
|
||||||
output.writeLine(" boxedFree(", getTypeProc, "(), ", "cast[ptr " & mangleName(gBaseInfoGetName(info)) & "00](self.impl))")
|
output.writeLine(" boxedFree(", getTypeProc, "(), ", "cast[ptr " & mangleName(gBaseInfoGetName(info)) & "00](self.impl))")
|
||||||
|
|
@ -1214,7 +1215,8 @@ template genDestroyFreeUnref =
|
||||||
if freeMe.isNil:
|
if freeMe.isNil:
|
||||||
freeMe = gStructInfoFindMethod(info, "unref")
|
freeMe = gStructInfoFindMethod(info, "unref")
|
||||||
if freeMe != nil and gCallableInfoGetNArgs(freeMe) == (if gCallableInfoIsMethod(freeMe): 0 else: 1):
|
if freeMe != nil and gCallableInfoGetNArgs(freeMe) == (if gCallableInfoIsMethod(freeMe): 0 else: 1):
|
||||||
methodBuffer.writeLine("\nwhen compileOption(\"gc\", \"arc\"):")
|
# methodBuffer.writeLine("\nwhen compileOption(\"gc\", \"arc\"):")
|
||||||
|
methodBuffer.writeLine("\nwhen defined(gcDestructors):")
|
||||||
methodBuffer.writeLine(" proc `=destroy`*(self: var typeof(" & mangleName(gBaseInfoGetName(info)) & "()[])) =")
|
methodBuffer.writeLine(" proc `=destroy`*(self: var typeof(" & mangleName(gBaseInfoGetName(info)) & "()[])) =")
|
||||||
methodBuffer.writeLine(" if not self.ignoreFinalizer and self.impl != nil:")
|
methodBuffer.writeLine(" if not self.ignoreFinalizer and self.impl != nil:")
|
||||||
methodBuffer.writeLine(" $1(self.impl)" % [$gFunctionInfoGetSymbol(freeMe)])
|
methodBuffer.writeLine(" $1(self.impl)" % [$gFunctionInfoGetSymbol(freeMe)])
|
||||||
|
|
@ -1687,7 +1689,8 @@ proc writeObj(info: GIObjectInfo) =
|
||||||
output.writeLine(" impl*: ptr Object00")
|
output.writeLine(" impl*: ptr Object00")
|
||||||
output.writeLine(" ignoreFinalizer*: bool")
|
output.writeLine(" ignoreFinalizer*: bool")
|
||||||
if gObjectInfoGetFundamental(info) == GFalse: # guess work, ignore fake GObjects like GParamSpec and such
|
if gObjectInfoGetFundamental(info) == GFalse: # guess work, ignore fake GObjects like GParamSpec and such
|
||||||
output.writeLine("\nwhen compileOption(\"gc\", \"arc\"):")
|
#output.writeLine("\nwhen compileOption(\"gc\", \"arc\"):")
|
||||||
|
output.writeLine("\nwhen defined(gcDestructors):")
|
||||||
output.writeLine(" proc `=destroy`*(self: var typeof(" & mangleName(gBaseInfoGetName(info)) & "()[])) =")
|
output.writeLine(" proc `=destroy`*(self: var typeof(" & mangleName(gBaseInfoGetName(info)) & "()[])) =")
|
||||||
output.writeLine(" if not self.ignoreFinalizer and self.impl != nil:")
|
output.writeLine(" if not self.ignoreFinalizer and self.impl != nil:")
|
||||||
output.writeLine(" g_object_remove_toggle_ref(self.impl, toggleNotify, addr(self))")
|
output.writeLine(" g_object_remove_toggle_ref(self.impl, toggleNotify, addr(self))")
|
||||||
|
|
@ -2089,7 +2092,7 @@ proc main(namespace: string; version: cstring = nil) =
|
||||||
output.writeLine("""
|
output.writeLine("""
|
||||||
#proc fnew*[T](a: var ref T; finalizer: proc (x: ref T)) =
|
#proc fnew*[T](a: var ref T; finalizer: proc (x: ref T)) =
|
||||||
template fnew*(a: untyped; finalizer: untyped) =
|
template fnew*(a: untyped; finalizer: untyped) =
|
||||||
when compileOption("gc", "arc"):
|
when defined(gcDestructors):
|
||||||
new(a)
|
new(a)
|
||||||
else:
|
else:
|
||||||
new(a, finalizer)
|
new(a, finalizer)
|
||||||
|
|
@ -2516,10 +2519,13 @@ proc get$1*(builder: Builder; name: string): $1 =
|
||||||
echo gBaseInfoGetName(el[1])
|
echo gBaseInfoGetName(el[1])
|
||||||
|
|
||||||
proc launch() =
|
proc launch() =
|
||||||
when compileOption("gc", "arc"):
|
when defined(gcDestructors):
|
||||||
echo "GC is arc"
|
echo "defined(gcDestructors)"
|
||||||
when compileOption("gc", "refc"):
|
echo "maybe GC is arc"
|
||||||
echo "GC is refc"
|
#when compileOption("gc", "arc"):
|
||||||
|
# echo "GC is arc"
|
||||||
|
#when compileOption("gc", "refc"):
|
||||||
|
# echo "GC is refc"
|
||||||
|
|
||||||
ISGTK3 = paramCount() == 0 # we have to launch the generator two times, as typelibs can not be unloaded!
|
ISGTK3 = paramCount() == 0 # we have to launch the generator two times, as typelibs can not be unloaded!
|
||||||
supmod3 = newStringStream()
|
supmod3 = newStringStream()
|
||||||
|
|
@ -2598,4 +2604,4 @@ proc launch() =
|
||||||
supmod4.close
|
supmod4.close
|
||||||
|
|
||||||
launch()
|
launch()
|
||||||
# 2601 lines construct benil
|
# 2607 lines
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue