From: LI Qingwu <Qing-wu.Li@leica-geosystems.com.cn>
To: Qing-wu.Li@leica-geosystems.com.cn, oss-tools@pengutronix.de
Subject: [OSS-Tools] [PATCH platsch 1/3] convert to meson build
Date: Wed, 12 Jun 2024 06:06:52 +0200 [thread overview]
Message-ID: <20240612040654.2472120-1-Qing-wu.Li@leica-geosystems.com.cn> (raw)
Signed-off-by: LI Qingwu <Qing-wu.Li@leica-geosystems.com.cn>
---
Makefile.am | 29 -----------------------------
README.rst | 27 +++++++++++++++++++++++++++
cairo.c | 4 ++--
configure.ac | 32 --------------------------------
meson.build | 26 ++++++++++++++++++++++++++
meson_options.txt | 1 +
6 files changed, 56 insertions(+), 63 deletions(-)
delete mode 100644 Makefile.am
delete mode 100644 configure.ac
create mode 100644 meson.build
create mode 100644 meson_options.txt
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index d486994..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,29 +0,0 @@
-EXTRA_DIST = README.rst LICENSE
-
-sbin_PROGRAMS = platsch
-
-platsch_SOURCES = platsch.c
-platsch_CFLAGS = $(LIBDRM_CFLAGS)
-platsch_LDADD = $(LIBDRM_LIBS)
-
-if ENABLE_CAIRO
-platsch_SOURCES += cairo.c
-platsch_CFLAGS += $(CAIRO_CFLAGS)
-platsch_LDADD += $(CAIRO_LIBS)
-endif
-
-CLEANFILES = \
- $(DIST_ARCHIVES)
-
-DISTCLEAN = \
- config.log \
- config.status \
- Makefile
-
-MAINTAINERCLEANFILES = \
- aclocal.m4 \
- configure \
- depcomp \
- install-sh \
- Makefile.in \
- missing
diff --git a/README.rst b/README.rst
index e318120..2af29e4 100644
--- a/README.rst
+++ b/README.rst
@@ -141,3 +141,30 @@ By adding a Signed-off-by line (e.g. using ``git commit -s``) saying::
(using your real name and e-mail address), you state that your contributions
are in line with the DCO.
+
+Cross compiling instructions
+----------------------------
+
+To cross-compile the project, use the following commands:
+
+.. code-block:: shell
+
+ meson build --cross-file=<path-to-meson-cross-file>
+ ninja -C build
+
+Build options
+-------------
+
+The following build options are available:
+
+.. list-table::
+ :header-rows: 1
+
+ * - Option name
+ - Values
+ - Default
+ - Notes
+ * - HAVE_CAIRO
+ - true, false
+ - true
+ - Enable Cairo support
diff --git a/cairo.c b/cairo.c
index d29b3a4..8ced3b2 100644
--- a/cairo.c
+++ b/cairo.c
@@ -79,7 +79,7 @@ static const char *image_format_to_string(cairo_format_t format)
return "RGB128F";
#endif
case CAIRO_FORMAT_INVALID:
- defaul:
+ default:
return "invalid";
}
}
@@ -90,7 +90,6 @@ static int png_import_backend_import_picture(cairo_t *cr, const char *filename)
cairo_format_t image_fmt, surface_fmt;
cairo_surface_t *image, *surface;
cairo_status_t status;
- cairo_format_t format;
int ret = 0;
image = cairo_image_surface_create_from_png(filename);
@@ -253,6 +252,7 @@ static uint32_t convert_to_cairo_format(uint32_t format)
case DRM_FORMAT_XRGB8888:
return CAIRO_FORMAT_ARGB32;
}
+ return CAIRO_FORMAT_INVALID;
}
static cairo_t *cairo_init(struct modeset_dev *dev, const char *dir, const char *base)
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index 11cdded..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,32 +0,0 @@
-AC_PREREQ([2.69])
-AC_INIT([platsch], [2019.12.0], [oss-tools@pengutronix.de])
-AC_CONFIG_SRCDIR([platsch.c])
-AM_INIT_AUTOMAKE([foreign dist-xz])
-
-AC_PROG_CC
-AC_PROG_MAKE_SET
-
-PKG_CHECK_MODULES([LIBDRM], [libdrm >= 2.4.112])
-
-AC_ARG_ENABLE([cairo],
- [AS_HELP_STRING([--disable-cairo],
- [Enable CAIRO support @<:@default=check@:>@])],
- [],
- [enable_cairo=check])
-
-AS_IF([test "$enable_cairo" != "no"],
- [PKG_CHECK_MODULES([CAIRO],
- [cairo >= 1.0],
- [enable_cairo=yes
- AC_DEFINE(HAVE_CAIRO)],
- [AS_IF([test "$enable_cairo" = "yes"],
- [AC_MSG_ERROR([cairo required, but not found.])],
- [enable_cairo=no])
- ])
- ])
-
-AM_CONDITIONAL([ENABLE_CAIRO], [test "$enable_cairo" = "yes"])
-
-AC_CONFIG_FILES([Makefile])
-
-AC_OUTPUT
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..e7e8e80
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,26 @@
+project('platsch', 'c')
+
+# Define dependencies conditionally based on the HAVE_CAIRO option
+platsch_dep = [dependency('libdrm', required: true)]
+sources = ['platsch.c']
+args = []
+
+have_cairo = get_option('HAVE_CAIRO')
+
+if have_cairo
+ platsch_dep += dependency('cairo', required: true)
+ sources += 'cairo.c'
+ args += ['-DHAVE_CAIRO']
+endif
+
+# Define the headers
+headers = ['platsch.h']
+
+# Create the platsch executable
+executable('platsch',
+ sources,
+ dependencies: platsch_dep,
+ c_args: args,
+ install: true,
+ include_directories: include_directories('.')
+)
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..1adfef3
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1 @@
+option('HAVE_CAIRO', type: 'boolean', value: true, description: 'Enable Cairo support')
--
2.34.1
next reply other threads:[~2024-06-12 9:26 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-12 4:06 LI Qingwu [this message]
2024-06-12 4:06 ` [OSS-Tools] [PATCH platsch 2/3] platsch: split into platsch and libplatsch LI Qingwu
2024-06-12 4:06 ` [OSS-Tools] [PATCH platsch 3/3] Add spinner executable for boot animation and text show LI Qingwu
2024-06-12 7:53 [OSS-Tools] [PATCH platsch 1/3] convert to meson build LI Qingwu
2024-06-12 8:05 ` Marco Felsch
2024-06-12 8:19 ` LI Qingwu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240612040654.2472120-1-Qing-wu.Li@leica-geosystems.com.cn \
--to=qing-wu.li@leica-geosystems.com.cn \
--cc=oss-tools@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox