added scconfig gtk4 detection files

This commit is contained in:
Stefan Frederik 2021-11-06 21:02:33 +01:00
parent b62f8b57f7
commit 1a7123dd8a
2 changed files with 100 additions and 0 deletions

View File

@ -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 <stdlib.h>
#include <string.h>
#include <assert.h>
#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 <gtk/gtk.h>"
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;
}

View File

@ -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);