mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-09 22:49:53 +08:00
[ocaml] use glib from gtk3 if gtk2 is not found (#3290)
Gtk3 doesn't support all features of gtk2 (or have a different interface), so if only gtk3 is found, GUI tools are not compiled, only CLI tools based only on glib. If no gtk found, tools based on glib/gtk are not compiled. Remove two old tools not used and not supported by gtk3.
This commit is contained in:
committed by
GitHub
parent
308a698bf4
commit
c158c856f3
+17
-2
@@ -30,8 +30,8 @@ endif
|
||||
endif
|
||||
|
||||
OCAML = ocaml
|
||||
OCAMLC = ocamlfind ocamlc -safe-string -g
|
||||
OCAMLOPT = ocamlfind ocamlopt -safe-string -g
|
||||
OCAMLC = ocamlfind ocamlc -safe-string -g -thread
|
||||
OCAMLOPT = ocamlfind ocamlopt -safe-string -g -thread
|
||||
OCAMLDEP = ocamlfind ocamldep
|
||||
OCAMLMKLIB = ocamlmklib
|
||||
OCAMLLEX=ocamllex
|
||||
@@ -50,3 +50,18 @@ OCAMLXDLL = -dllpath $(LIBPPRZDIR),$(LIBPPRZLINKDIR)
|
||||
|
||||
OCAMLPATH:=$(shell echo $(LIBPPRZLINKDIR):$(LIBPPRZDIR):$(OCAMLPATH))
|
||||
export OCAMLPATH
|
||||
|
||||
# Test lablgtk version, use V2 if available, V3 otherwise
|
||||
# disable ocaml/gtk tools if none ?
|
||||
LABLGTK2_VER = $(shell ocamlfind query -p-format lablgtk2 2>/dev/null)
|
||||
LABLGTK3_VER = $(shell ocamlfind query -p-format lablgtk3 2>/dev/null)
|
||||
ifneq ($(LABLGTK2_VER),)
|
||||
USE_LABELGTK = $(LABLGTK2_VER)
|
||||
else
|
||||
ifneq ($(LABLGTK3_VER),)
|
||||
USE_LABELGTK = $(LABLGTK3_VER)
|
||||
else
|
||||
USE_LABELGTK=
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -29,9 +29,17 @@ include ../../Makefile.ocaml
|
||||
OCAMLPATH:=$(shell echo $(PAPARAZZI_SRC)/sw/ground_segment/cockpit/lib:$(OCAMLPATH))
|
||||
export OCAMLPATH
|
||||
|
||||
ifneq ($(USE_LABELGTK),lablgtk2)
|
||||
all :
|
||||
@echo Skipping legacy GCS build \(missing lablgtk2\)
|
||||
|
||||
opt :
|
||||
@echo Skipping legacy GCS.opt build \(missing lablgtk2\)
|
||||
|
||||
else
|
||||
INCLUDES=
|
||||
PKG = -package pprzlink,gcslib
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprzlink,gcslib,pprz
|
||||
PKG = -package lablgtk2,pprzlink,gcslib
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg lablgtk2,pprzlink,gcslib,pprz
|
||||
|
||||
LABLGTK2INIT = $(shell ocamlfind query -p-format lablgtk2.init 2>/dev/null)
|
||||
ifeq ($(LABLGTK2INIT),)
|
||||
@@ -68,6 +76,7 @@ all : $(MAIN)
|
||||
|
||||
opt : $(MAIN).opt
|
||||
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
@@ -47,8 +47,8 @@ PKGCOMMON=pprzlink
|
||||
XINCLUDES=
|
||||
XPKGCOMMON=pprzlink,xml-light,glibivy,$(LABLGTK2GNOMECANVAS),lablgtk2.glade
|
||||
|
||||
PKG = -package pprzlink,pprz.xlib
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz.xlib,pprzlink
|
||||
PKG = -package lablgtk2,pprzlink,pprz.xlib
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg lablgtk2,pprz.xlib,pprzlink
|
||||
|
||||
XSRC = contrastLabel.ml acIcon.ml wind_sock.ml gtk_papget_editor.ml gtk_papget_text_editor.ml gtk_papget_gauge_editor.ml gtk_papget_led_editor.ml papget_common.ml papget_renderer.ml papget.ml mapCanvas.ml mapWaypoints.ml mapTrack.ml mapGoogle.ml mapIGN.ml ml_gtk_drag.o xmlEdit.ml mapFP.ml
|
||||
XCMO = $(XSRC:.ml=.cmo)
|
||||
|
||||
@@ -32,8 +32,8 @@ CAML_LD_LIBRARY_PATH := /usr/lib/$(shell uname -m)-linux-gnu/:$(CAML_LD_LIBRARY_
|
||||
export CAML_LD_LIBRARY_PATH
|
||||
|
||||
|
||||
PKG = -package pprz,glibivy
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink
|
||||
PKG = -package pprz,glibivy,$(USE_LABELGTK)
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink,$(USE_LABELGTK)
|
||||
|
||||
GLIB_CFLAGS = -Wall -fPIC $(shell pkg-config glib-2.0 --cflags)
|
||||
GLIB_LDFLAGS = $(shell pkg-config glib-2.0 --libs)
|
||||
@@ -71,7 +71,11 @@ else
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(USE_LABELGTK),)
|
||||
all: test_stick input2ivy
|
||||
else
|
||||
all: test_stick
|
||||
endif
|
||||
|
||||
test_stick: test_sdl_stick.o
|
||||
@echo BUILD $@
|
||||
|
||||
@@ -35,9 +35,14 @@ else
|
||||
LIBRARYS =
|
||||
endif
|
||||
|
||||
GTK2_INC = $(shell pkg-config gtk+-2.0 --cflags 2> /dev/null)
|
||||
GTK2_LDFLAGS = $(shell pkg-config gtk+-2.0 --libs 2> /dev/null)
|
||||
|
||||
ifneq ($(GTK2_INC),)
|
||||
CFLAGS += -Wall -fPIC -g
|
||||
GTK_CFLAGS = $(shell pkg-config gtk+-2.0 --cflags) -DGTK_DISABLE_DEPRECATED
|
||||
GTK_LDFLAGS = $(shell pkg-config gtk+-2.0 --libs) $(shell pkg-config --libs ivy-glib) $(shell pcre-config --libs) -fPIC
|
||||
GTK_CFLAGS = $(GTK2_INC) -DGTK_DISABLE_DEPRECATED
|
||||
GTK_LDFLAGS = $(GTK2_LDFLAGS) $(shell pkg-config --libs ivy-glib) $(shell pcre-config --libs) -fPIC
|
||||
endif
|
||||
|
||||
GLIBIVY_CFLAGS = $(shell pkg-config --cflags ivy-glib)
|
||||
GLIBIVY_LDFLAGS = $(shell pkg-config --libs ivy-glib) $(shell pcre-config --libs)
|
||||
@@ -57,7 +62,11 @@ GLIB_LDFLAGS = $(shell pkg-config glib-2.0 --libs) -lglibivy -lm $(shell pcre-co
|
||||
INCLUDES += $(shell pkg-config glib-2.0 --cflags) -I$(PAPARAZZI_SRC)/sw/airborne/ -I$(PAPARAZZI_SRC)/sw/include/ $(IVY_INC)
|
||||
INCLUDES += -I$(PAPARAZZI_SRC)/sw/ext/libsbp/c/include/ -I$(PAPARAZZI_SRC)/sw/airborne/modules/gps/librtcm3/ -I$(PAPARAZZI_SRC)/sw/airborne/arch/linux/
|
||||
|
||||
ifeq ($(GTK2_INC),)
|
||||
all: davis2ivy kestrel2ivy sbp2ivy rtcm2ivy ublox2ivy
|
||||
else
|
||||
all: davis2ivy kestrel2ivy sbp2ivy video_synchronizer sbs2ivy rtcm2ivy ublox2ivy
|
||||
endif
|
||||
|
||||
clean:
|
||||
$(Q)rm -f *.o davis2ivy kestrel2ivy sbp2ivy video_synchronizer sbs2ivy rtcm2ivy ublox2ivy
|
||||
|
||||
@@ -29,21 +29,24 @@ CONF = ../../../conf
|
||||
VAR = ../../../var
|
||||
|
||||
INCLUDES=
|
||||
PKG = -package glibivy,pprz
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink
|
||||
XPKG = -package pprz.xlib
|
||||
XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg pprz.xlib,pprzlink
|
||||
PKG = -package glibivy,pprz,$(USE_LABELGTK)
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink,$(USE_LABELGTK)
|
||||
XPKG = -package pprz.xlib,$(USE_LABELGTK)
|
||||
XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg pprz.xlib,pprzlink,$(USE_LABELGTK)
|
||||
|
||||
SERVERCMO = server_globals.cmo aircraft_server.cmo wind.cmo airprox.cmo kml.cmo parse_messages_v1.ml intruder.cmo server.cmo
|
||||
SERVERCMX = $(SERVERCMO:.cmo=.cmx)
|
||||
|
||||
all: link server ivy_tcp_aircraft ivy_tcp_controller broadcaster ivy2udp ivy2serial app_server ivy2nmea gpsd2ivy gtk_tools
|
||||
|
||||
all: link server messages ivy_tcp_aircraft ivy_tcp_controller broadcaster ivy2udp ivy2serial ivy_serial_bridge app_server ivy2nmea gpsd2ivy
|
||||
ifeq ($(USE_LABELGTK),lablgtk2)
|
||||
gtk_tools: messages
|
||||
endif
|
||||
|
||||
opt: server.opt
|
||||
|
||||
clean:
|
||||
$(Q)rm -f link server messages *.bak *~ core *.o .depend *.opt *.out *.cm* ivy_tcp_aircraft ivy_tcp_controller broadcaster ivy2udp ivy2serial ivy_serial_bridge app_server gpsd2ivy c_ivy_client_example_1 c_ivy_client_example_2 c_ivy_client_example_3 ivy2nmea
|
||||
$(Q)rm -f link server messages *.bak *~ core *.o .depend *.opt *.out *.cm* ivy_tcp_aircraft ivy_tcp_controller broadcaster ivy2udp ivy2serial ivy_serial_bridge app_server gpsd2ivy c_ivy_client_example_1 c_ivy_client_example_2 ivy2nmea
|
||||
|
||||
messages : messages.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA)
|
||||
@echo OL $@
|
||||
@@ -105,9 +108,6 @@ ivy2serial : ivy2serial.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA)
|
||||
|
||||
CC = gcc
|
||||
|
||||
GTK_CFLAGS = $(shell pkg-config gtk+-2.0 --cflags) -DGTK_DISABLE_DEPRECATED
|
||||
GTK_LDFLAGS = $(shell pkg-config gtk+-2.0 --libs) $(shell pcre-config --libs)
|
||||
|
||||
GLIBIVY_CFLAGS = -Wall -fPIC $(shell pkg-config --cflags ivy-glib)
|
||||
GLIBIVY_LDFLAGS = $(shell pkg-config --libs ivy-glib) $(shell pcre-config --libs)
|
||||
|
||||
@@ -143,15 +143,7 @@ c_ivy_client_example_1: c_ivy_client_example_1.c Makefile
|
||||
c_ivy_client_example_2: c_ivy_client_example_2.c Makefile
|
||||
$(CC) $(GLIBIVY_CFLAGS) -o $@ $< $(GLIBIVY_LDFLAGS)
|
||||
|
||||
c_ivy_client_example_3: c_ivy_client_example_3.c Makefile
|
||||
$(CC) $(GLIBIVY_CFLAGS) $(GTK_CFLAGS) -o $@ $< $(GLIBIVY_LDFLAGS) $(GTK_LDFLAGS)
|
||||
|
||||
ivy_serial_bridge: ivy_serial_bridge.c Makefile
|
||||
@echo OL $@
|
||||
$(Q)$(CC) $(GLIBIVY_CFLAGS) $(GTK_CFLAGS) -o $@ $< $(GLIBIVY_LDFLAGS) $(GTK_LDFLAGS)
|
||||
|
||||
|
||||
.PHONY: all opt clean
|
||||
.PHONY: all opt clean gtk_tools
|
||||
|
||||
#
|
||||
# Dependencies
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
#include <glib.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <Ivy/ivy.h>
|
||||
#include <Ivy/ivyglibloop.h>
|
||||
|
||||
|
||||
static void on_button_clicked (GtkWidget *widget, gpointer data) {
|
||||
g_message("hello world");
|
||||
int foo = 42;
|
||||
IvySendMsg("ME HELLO_WORLD 1234 5678 %d", foo);
|
||||
}
|
||||
|
||||
|
||||
int main ( int argc, char** argv) {
|
||||
|
||||
gtk_init(&argc, &argv);
|
||||
|
||||
IvyInit ("Example1", "Example1 READY", NULL, NULL, NULL, NULL);
|
||||
IvyStart("127.255.255.255");
|
||||
|
||||
|
||||
GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_window_set_title (GTK_WINDOW (window), "HelloWorld");
|
||||
|
||||
GtkWidget* button = gtk_toggle_button_new_with_label( "ClickMe" );
|
||||
gtk_container_add (GTK_CONTAINER (window), button);
|
||||
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_button_clicked), NULL);
|
||||
|
||||
gtk_widget_show_all(window);
|
||||
|
||||
gtk_main();
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
description = "Paparazzi UAS package"
|
||||
requires = "unix,str,pprzlink,xml-light,lablgtk2,glibivy,netclient,nettls-gnutls"
|
||||
requires = "unix,str,pprzlink,xml-light,glibivy,netclient,nettls-gnutls"
|
||||
version = "1.0"
|
||||
directory = ""
|
||||
|
||||
|
||||
@@ -30,16 +30,20 @@ include ../../Makefile.ocaml
|
||||
VERBOSITY =
|
||||
|
||||
INCLUDES=
|
||||
PKGCOMMON=pprzlink,xml-light,netclient,nettls-gnutls,glibivy,lablgtk2
|
||||
PKGCOMMON=pprzlink,xml-light,netclient,nettls-gnutls,glibivy
|
||||
XINCLUDES=
|
||||
XPKGCOMMON=pprzlink,xml-light,glibivy,lablgtk2
|
||||
XPKGCOMMON=pprzlink,xml-light,glibivy,$(USE_LABELGTK)
|
||||
|
||||
SRC = fig.ml debug.ml base64.ml serial.ml ocaml_tools.ml expr_syntax.ml expr_parser.ml expr_lexer.ml extXml.ml env.ml xml2h.ml latlong.ml egm96.ml srtm.ml http.ml gm.ml iGN.ml geometry_2d.ml cserial.o ubx.ml xmlCom.ml os_calls.ml editAirframe.ml defivybus.ml fp_proc.ml quaternion.ml
|
||||
SRC += gen_common.ml radio.ml settings.ml module.ml flight_plan.ml autopilot.ml airframe.ml telemetry.ml aircraft.ml
|
||||
CMO = $(SRC:.ml=.cmo)
|
||||
CMX = $(SRC:.ml=.cmx)
|
||||
|
||||
ifeq ($(USE_LABELGTK),lablgtk2)
|
||||
XSRC = gtk_tools.ml
|
||||
else
|
||||
XSRC =
|
||||
endif
|
||||
XCMO = $(XSRC:.ml=.cmo)
|
||||
XCMX = $(XSRC:.ml=.cmx)
|
||||
|
||||
|
||||
@@ -25,21 +25,25 @@ Q=@
|
||||
|
||||
include ../Makefile.ocaml
|
||||
INCLUDES=
|
||||
PKG = -package glibivy,pprz
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink
|
||||
PKG = -package glibivy,pprz,$(USE_LABELGTK)
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink,$(USE_LABELGTK)
|
||||
|
||||
LABLGTK2GLADE = $(shell ocamlfind query -p-format lablgtk2.glade 2>/dev/null)
|
||||
|
||||
ifeq ($(USE_LABELGTK),lablgtk2)
|
||||
# only compile it lablgtk2.glade is installed
|
||||
ifeq ($(LABLGTK2GLADE),)
|
||||
XPKG = -package pprz.xlib
|
||||
XPKG = -package pprz.xlib,lablgtk2
|
||||
XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg pprz.xlib,pprzlink
|
||||
all : play plotter sd2log plotprofile openlog2tlm sdlogger_download
|
||||
else
|
||||
XPKG = -package pprz.xlib,lablgtk2.glade
|
||||
XPKG = -package lablgtk2,pprz.xlib,lablgtk2.glade
|
||||
XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg pprz.xlib,pprzlink
|
||||
all : play plotter logplotter sd2log plotprofile openlog2tlm sdlogger_download
|
||||
endif
|
||||
else # no gtk2
|
||||
all: sd2log plotprofile openlog2tlm sdlogger_download
|
||||
endif
|
||||
|
||||
|
||||
play : log_file.cmo play_core.cmo play.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA)
|
||||
|
||||
@@ -28,8 +28,8 @@ include ../Makefile.ocaml
|
||||
|
||||
OCAMLC += -g
|
||||
INCLUDES =
|
||||
PKG = -package glibivy,pprz
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink
|
||||
PKG = -package glibivy,pprz,$(USE_LABELGTK)
|
||||
LINKPKG = $(PKG) -linkpkg -dllpath-pkg pprz,pprzlink,$(USE_LABELGTK)
|
||||
|
||||
AIRBORNE = ../airborne
|
||||
VARINCLUDE=$(PAPARAZZI_HOME)/var/include
|
||||
@@ -37,7 +37,11 @@ ACINCLUDE = $(PAPARAZZI_HOME)/var/$(AIRCRAFT)
|
||||
|
||||
CAML_CFLAGS = -I $(shell $(OCAMLC) -where)
|
||||
|
||||
ifeq ($(USE_LABELGTK),lablgtk2)
|
||||
all : gaia
|
||||
else
|
||||
all :
|
||||
endif
|
||||
|
||||
gaia : gaia.cmo $(LIBPPRZCMA) $(LIBPPRZLINKCMA)
|
||||
@echo OL $@
|
||||
|
||||
@@ -32,6 +32,7 @@ else
|
||||
MKTEMP = mktemp
|
||||
endif
|
||||
|
||||
ifeq ($(USE_LABELGTK),lablgtk2)
|
||||
LABLGTK2GNOMEUI = $(shell ocamlfind query -p-format lablgtk2-gnome.gnomeui 2>/dev/null)
|
||||
ifeq ($(LABLGTK2GNOMEUI),)
|
||||
LABLGTK2GNOMEUI = $(shell ocamlfind query -p-format lablgtk2.gnomeui 2>/dev/null)
|
||||
@@ -40,18 +41,20 @@ endif
|
||||
LABLGTK2GLADE = $(shell ocamlfind query -p-format lablgtk2.glade 2>/dev/null)
|
||||
|
||||
INCLUDES =
|
||||
XPKG = -package pprz.xlib,lablgtk2.glade,$(LABLGTK2GNOMEUI)
|
||||
XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg pprz.xlib,pprzlink
|
||||
XPKG = -package lablgtk2,pprz.xlib,lablgtk2.glade,$(LABLGTK2GNOMEUI)
|
||||
XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg lablgtk2,pprz.xlib,pprzlink
|
||||
|
||||
PAPARAZZICENTERCMO = gtk_pc.cmo gtk_process.cmo pc_common.cmo pc_control_panel.cmo pc_aircraft.cmo paparazzicenter.cmo
|
||||
|
||||
|
||||
# only compile it lablgtk2.glade is installed
|
||||
ifeq ($(LABLGTK2GLADE),)
|
||||
ifneq ($(LABLGTK2GLADE),)
|
||||
all: paparazzicenter
|
||||
|
||||
endif
|
||||
|
||||
else # no gtk2
|
||||
all :
|
||||
@echo Skipping legacy Paparazzi Center build
|
||||
else
|
||||
all: paparazzicenter
|
||||
endif
|
||||
|
||||
paparazzicenter : $(PAPARAZZICENTERCMO) $(LIBPPRZCMA) $(LIBPPRZLINKCMA) $(XLIBPPRZCMA)
|
||||
|
||||
Reference in New Issue
Block a user