Fix issue for gtk sample where the default include dir for mac is incorrecly set. Added the possibility to pass a custom -I prefix to build.sh (#899)

This commit is contained in:
Francis Lavoie
2017-10-06 03:48:16 -04:00
committed by Nikolay Igotti
parent c90985ea8a
commit 7a4aae5ff3
3 changed files with 29 additions and 7 deletions
+23 -4
View File
@@ -3,18 +3,37 @@
This example shows how one may use _Kotlin/Native_ to build GUI This example shows how one may use _Kotlin/Native_ to build GUI
applications with the GTK toolkit. applications with the GTK toolkit.
To build use `../gradlew build` or `./build.sh`. To build use `../gradlew build` or `./build.sh [-I=/include/path]`.
Do not forget to install GTK3. Do not forget to install GTK3. See bellow.
On Mac use `port install gtk3`, on Debian flavours of Linux - `apt-get install libgtk-3-dev`. On Mac use `port install gtk3`, on Debian flavours of Linux - `apt-get install libgtk-3-dev`.
To run on Mac also install XQuartz X server (https://www.xquartz.org/), and then To run on Mac also install XQuartz X server (https://www.xquartz.org/), and then
../gradlew run ../gradlew run
Alternatively you can run artifact directly Alternatively you can run artifact directly
./build/konan/bin/Gtk3Demo/Gtk3Demo.kexe ./build/konan/bin/Gtk3Demo/Gtk3Demo.kexe
Dialog box with the button will be shown, and application will print message Dialog box with the button will be shown, and application will print message
and terminate on button click. and terminate on button click.
#### GTK3 Install
on Mac use
brew install gtk+3
or
port install gtk3
on Debian flavours of Linux
sudo apt-get install libgtk-3-dev
on Fedora
sudo dnf install gtk3-devel
+2 -3
View File
@@ -27,9 +27,8 @@ mkdir -p $DIR/build/bin/
echo "Generating GTK stubs, may take few mins depending on the hardware..." echo "Generating GTK stubs, may take few mins depending on the hardware..."
cinterop -J-Xmx8g -copt $IPREFIX/atk-1.0 -compilerOpts $IPREFIX/gdk-pixbuf-2.0 -copt $IPREFIX/cairo -copt $IPREFIX/pango-1.0 \ cinterop -J-Xmx8g -copt $IPREFIX/atk-1.0 -compilerOpts $IPREFIX/gdk-pixbuf-2.0 -copt $IPREFIX/cairo -copt $IPREFIX/pango-1.0 \
-copt -I/opt/local/lib/glib-2.0/include -copt -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -copt -I/usr/local/lib/glib-2.0/include \ -copt -I/opt/local/lib/glib-2.0/include -copt $IPREFIX/gtk-3.0 -copt $IPREFIX/glib-2.0 \
-copt $IPREFIX/gtk-3.0 -copt $IPREFIX/glib-2.0 -def $DIR/src/main/c_interop/gtk3.def \ -def $DIR/src/main/c_interop/gtk3.def -target $TARGET -o $DIR/build/c_interop/gtk3 || exit 1
-target $TARGET -o $DIR/build/c_interop/gtk3 || exit 1
konanc -target $TARGET $DIR/src/main/kotlin -library $DIR/build/c_interop/gtk3 \ konanc -target $TARGET $DIR/src/main/kotlin -library $DIR/build/c_interop/gtk3 \
-o $DIR/build/bin/Gtk3Demo || exit 1 -o $DIR/build/bin/Gtk3Demo || exit 1
+4
View File
@@ -1,4 +1,8 @@
headers = gtk/gtk.h headers = gtk/gtk.h
headerFilter = gtk/* gobject/* gio/* headerFilter = gtk/* gobject/* gio/*
compilerOpts.osx = -I/usr/local/include/gtk-3.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include \
-I/usr/local/include/pango-1.0 -I/usr/local/include/cairo -I/usr/local/include -I/usr/local/include/gdk-pixbuf-2.0 \
-I/usr/local/include/atk-1.0
compilerOpts.linux = -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/local/lib/glib-2.0/include -I/usr/lib64/glib-2.0/include
linkerOpts.osx = -L/opt/local/lib -L/usr/local/lib -lglib-2.0 -lgdk-3.0 -lgtk-3 -lgio-2.0 -lgobject-2.0 linkerOpts.osx = -L/opt/local/lib -L/usr/local/lib -lglib-2.0 -lgdk-3.0 -lgtk-3 -lgio-2.0 -lgobject-2.0
linkerOpts.linux = -L/usr/lib/x86_64-linux-gnu -lglib-2.0 -lgdk-3 -lgtk-3 -lgio-2.0 -lgobject-2.0 linkerOpts.linux = -L/usr/lib/x86_64-linux-gnu -lglib-2.0 -lgdk-3 -lgtk-3 -lgio-2.0 -lgobject-2.0