added FreeBSD support and fixed gtk2 build

Sat, 23 Jan 2016 18:37:30 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 23 Jan 2016 18:37:30 +0100
changeset 105
86d729874ff4
parent 104
3efe0210e27e
child 106
a4f4123ca12a

added FreeBSD support and fixed gtk2 build

configure file | annotate | diff | comparison | revisions
make/clang.mk file | annotate | diff | comparison | revisions
ui/gtk/draw_cairo.c file | annotate | diff | comparison | revisions
--- a/configure	Thu Jan 21 20:40:14 2016 +0100
+++ b/configure	Sat Jan 23 18:37:30 2016 +0100
@@ -29,7 +29,7 @@
 
 OS=`uname -s`
 OS_VERSION=`uname -r`
-PREFIX=/opt/mk12
+PREFIX=/opt/toolkit
 
 #
 # parse arguments
@@ -87,6 +87,11 @@
     echo "gcc"
 fi
 
+if [ $OS = FreeBSD ]; then
+    BUILD_CONFIG=clang
+    echo "clang"
+fi
+
 if [ $OS = Darwin ]; then
     BUILD_CONFIG=osx
     echo "gcc"
@@ -98,6 +103,11 @@
 	echo "mingw"
 fi
 
+if [ -z "BUILD_CONFIG" ]; then
+    BUILD_CONFIG=gcc
+    echo "gcc"
+fi
+
 
 #if [ $OS != Darwin ]; then
 #    check_pkgconfig_lib "libxml2" "libxml-2.0"
@@ -125,11 +135,18 @@
             pkg-config gtk+-2.0
             RESULT=$?
             if [ $RESULT -eq 0 ]; then
-                TOOLKIT=gtk2legacy
+                TOOLKIT=gtk2
                 echo "gtk2"
             else
-                echo "not found"
-                exit 1
+                which qmake-qt4 > /dev/null
+                RESULT=$?
+                if [ $RESULT -eq 0 ]; then
+                    TOOLKIT=qt4
+                    echo "qt4"
+                else
+                    echo "not found"
+                    exit 1
+                fi
             fi
         fi
     fi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/clang.mk	Sat Jan 23 18:37:30 2016 +0100
@@ -0,0 +1,46 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 2015 Olaf Wintermann. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#   1. Redistributions of source code must retain the above copyright
+#      notice, this list of conditions and the following disclaimer.
+#
+#   2. Redistributions in binary form must reproduce the above copyright
+#      notice, this list of conditions and the following disclaimer in the
+#      documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+CC = clang
+CXX = clang++
+LD = clang
+AR = ar
+RM = rm
+
+CFLAGS  += -g -c
+CXXFLAGS += -g
+LDFLAGS += 
+ARFLAGS = -r
+RMFLAGS = -f
+
+OBJ_EXT = o
+LIB_EXT = a
+APP_EXT =
+
+PACKAGE_SCRIPT = package_unix.sh
+
--- a/ui/gtk/draw_cairo.c	Thu Jan 21 20:40:14 2016 +0100
+++ b/ui/gtk/draw_cairo.c	Sat Jan 23 18:37:30 2016 +0100
@@ -59,8 +59,13 @@
     g.widget = w;
     g.cr = gdk_cairo_create(w->window);
     
-    UiExposeEvent *event = data;
-    event->callback(&g.g, event->document, event->data);
+    UiDrawEvent *event = data;
+    UiEvent ev;
+    ev.obj = event->obj;
+    ev.window = event->obj->window;
+    ev.document = event->obj->ctx->document;
+    
+    event->callback(&ev, &g.g, event->userdata);
     
     return FALSE;
 }
@@ -77,7 +82,7 @@
 #else
     g_signal_connect(G_OBJECT(widget),
             "expose_event",
-            G_CALLBACK(ui_drawingarea_expose),
+            G_CALLBACK(ui_canvas_expose),
             event);
 #endif
 }

mercurial