From 1a7123dd8a26f7d7357d245fe13cd548f938528a Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Sat, 6 Nov 2021 21:02:33 +0100 Subject: [PATCH] added scconfig gtk4 detection files --- scconfig/src/gui/find_gtk4.c | 96 ++++++++++++++++++++++++++++++++++++ scconfig/src/gui/find_gtk4.h | 4 ++ 2 files changed, 100 insertions(+) create mode 100644 scconfig/src/gui/find_gtk4.c create mode 100644 scconfig/src/gui/find_gtk4.h diff --git a/scconfig/src/gui/find_gtk4.c b/scconfig/src/gui/find_gtk4.c new file mode 100644 index 00000000..869f74ce --- /dev/null +++ b/scconfig/src/gui/find_gtk4.c @@ -0,0 +1,96 @@ +/* + scconfig - gui lib detection - gtk4 + Copyright (C) 2017 Alain Vigne + Copyright (C) 2021 Tibor 'Igor2' Palinkas + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Project page: http://repo.hu/projects/scconfig + Contact via email: scconfig [at] igor2.repo.hu +*/ +#include +#include +#include +#include "libs.h" +#include "log.h" +#include "db.h" +#include "dep.h" + +static const char *node = "libs/gui/gtk4"; +static const char *pkgname = "gtk4"; + +int find_gtk4(const char *name, int logdepth, int fatal, const char *call, const char *arg) +{ + const char *test_c = + NL "#include " + NL + NL "static void activate (GtkApplication* app, gpointer user_data)" + NL "{" + NL " GtkWidget *window;" + NL + NL " window = gtk_application_window_new(app);" + NL " gtk_window_set_title(GTK_WINDOW(window), \"Window\");" + NL " gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);" + NL " gtk_widget_show(window);" + NL "}" + NL + NL "int main (int argc, char **argv)" + NL "{" + NL " GtkApplication *app;" + NL " int status;" + NL + NL " app = gtk_application_new(\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);" + NL " g_signal_connect(app, \"activate\", G_CALLBACK(activate), NULL);" + NL " status = g_application_run(G_APPLICATION(app), argc, argv);" + NL " g_object_unref(app);" + NL + NL " return status;" + NL "}" + NL; + char *cflags; + char *ldflags; + (void) call; /* not used */ + (void) arg; /* not used */ + + if (require("cc/cc", logdepth, fatal)) + return try_fail(logdepth, node); + + report("Checking for gtk-4... "); + logprintf(logdepth, "find_gtk4: running pkg-config...\n"); + logdepth++; + + if (run_pkg_config(logdepth, pkgname, &cflags, &ldflags) != 0) { + return try_fail(logdepth, node); + } + + if (try_icl_norun(logdepth, node, test_c, NULL, cflags, ldflags) == 0) { + free(cflags); + free(ldflags); + return try_fail(logdepth, node); + } + + free(cflags); + free(ldflags); + return 0; +} + +int find_gtk4_modversion(const char *name, int logdepth, int fatal) +{ + if (run_pkg_config_modversion_db(logdepth, node, pkgname) != 0) + return try_fail(logdepth, node); + return 0; +} + + diff --git a/scconfig/src/gui/find_gtk4.h b/scconfig/src/gui/find_gtk4.h new file mode 100644 index 00000000..274c9bea --- /dev/null +++ b/scconfig/src/gui/find_gtk4.h @@ -0,0 +1,4 @@ +int find_gtk4(const char *name, int logdepth, int fatal); +int find_gtk4_modversion(const char *name, int logdepth, int fatal); + +