[gegl] docs: build.txt - add dependencies - add external links to dependency project pages - update buil
- From: Øyvind "pippin" Kolås <ok src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gegl] docs: build.txt - add dependencies - add external links to dependency project pages - update buil
- Date: Sat, 27 Mar 2021 20:30:43 +0000 (UTC)
commit c719f91e8e11af281565ca253399e3e95b61f4e4
Author: John Marshall <jtm home gmail com>
Date: Tue Jan 26 15:51:56 2021 +0000
docs: build.txt
- add dependencies
- add external links to dependency project pages
- update build instructions
docs/build.txt | 51 ----------------
docs/build.txt.in | 102 +++++++++++++++++++++++++++++++
docs/meson.build | 6 +-
meson.build | 176 +++++++++++++++++++++++++++++++++++++++++-------------
4 files changed, 238 insertions(+), 97 deletions(-)
---
diff --git a/docs/build.txt.in b/docs/build.txt.in
new file mode 100644
index 000000000..82ec497e5
--- /dev/null
+++ b/docs/build.txt.in
@@ -0,0 +1,102 @@
+Building from source
+--------------------
+GEGL and its dependencies are known to build and run work on Linux, Microsoft
+Windows with MSYS2/MINGW and Mac OSX. It probably can be built on other systems
+where glib and gtk+ work. More information is available on the
+https://wiki.gimp.org/wiki/Hacking:Building[GIMP] website although some of the
+information is out of date.
+
+Download
+~~~~~~~~
+The latest development snapshot, and eventually stable versions of GEGL are
+available at http://download.gimp.org/pub/gegl/[].
+
+The current code under development can be
+https://gitlab.gnome.org/GNOME/gegl[browsed online] and cloned from
+GNOME git using:
+
+..................................
+$ git clone https://gitlab.gnome.org/gnome/babl.git/
+$ git clone https://gitlab.gnome.org/gnome/gegl.git/
+..................................
+
+Dependencies
+~~~~~~~~~~~~
+
+GEGL currently builds and works on linux, windows and OSX most probably also on
+other systems where glib and gtk+ work.
+
+ - Core dependencies (required)
+ * link:https://wiki.gnome.org/Projects/GLib[glib (including gobject, gio,
+ and gmodule)] (@glib@) -- provides inheritance, dynamic modules, common
+ algorithms and data structures for C programming.
+ * link:https://wiki.gnome.org/Projects/JsonGlib[json-glib] (@json-glib@)
+ -- load operations in .json format.
+ * link:http://gegl.org/babl/[babl] (@babl@) -- pixel-format
+ agnosticism.
+ * link:http://www.libpng.org/pub/png/libpng.html[libpng] (@libpng@) -- png
+ load/export operations, and image magick import fallback.
+
+ - Core dependencies (optional).
+ * gexiv2
+ * link:http://libspiro.sourceforge.net/[libspiro]
+ * luajit (@luajit@)
+ * mrg
+ * gobject_introspection
+ * vapigen
+
+ - Dependencies for operations (optional).
+ * gdk-pixbuf-2.0
+ * cairo, pango, pangocairo (text source op)
+ * link:https://github.com/jasper-software/jasper[jasper] (@jasper@) --
+ jpeg2000 load.
+ * link:https://www.littlecms.com/[lcms2] (@lcms@) -- color management
+ load.
+ * link:https://jpegclub.org/reference/[libjpeg] (@libjpeg@) -- jpg
+ load/save.
+ * link:https://www.libraw.org/[libraw] (>=0.15.4) -- raw image load.
+ * link:https://wiki.gnome.org/Projects/LibRsvg[librsvg] (@librsvg@) --
+ svg load.
+ * link:http://www.libtiff.org/[libtiff] (@libtiff@) - tiff load/save
+ * link:https://www.kernel.org/doc/html/v4.8/media/uapi/v4l/libv4l-introduction.html[libv4l1]
+ (@libv4l1@) -- Video4Linux.
+ * link:https://www.kernel.org/doc/html/v4.8/media/uapi/v4l/libv4l-introduction.html[libv4l2]
+ (@libv4l2@) -- Video4Linux.
+ * link:https://developers.google.com/speed/webp[libwebp] (@libwebp@) --
+ webp load/save.
+ * link:https://www.openexr.com/[openexr] (@openexr@) -- exr load/save.
+ * link:https://poppler.freedesktop.org/[poppler] (@poppler@) -- pdf load.
+
+ * link:https://www.libsdl.org/[sdl2] (@sdl2@).
+ * libavcodec, libavformat, libavutil, libswscale
+ (ff-load and experimental ff-save)
+ * umfpack
+
+ - Dependencies for workshop operations (optional).
+ * lensfun
+ * maxflow
+
+ - Build utilities (optional) - to build documentation. For cross-compiles
+ these are build environment dependencies (native to the build system).
+ * asciidoc
+ * dot
+ * gtkdoc_scan
+ * rsvg_convert
+ * ruby
+ * source-highlight
+ * w3m
+
+ - Tests (optional) - to run tests
+ * pygobject3 ( to run python test suite)
+
+Compiling
+~~~~~~~~~
+To build GEGL type the following in the toplevel source directory:
+
+..................................
+$ meson _build
+$ cd _build
+$ ninja
+$ ninja test
+$ sudo ninja install
+..................................
diff --git a/docs/meson.build b/docs/meson.build
index e597e8927..6a6bb6fe0 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -104,10 +104,10 @@ website_asciidoc_files = files(
)
website_asciidoc_files += [
configure_file(
- input : 'copyright.txt.in',
+ input : 'build.txt.in',
output: '@BASENAME@',
- configuration: asciidoc_config,
- )
+ configuration: dep_ver,
+ ),
]
# Inheritance diagram
diff --git a/meson.build b/meson.build
index 0603ccb4f..faf60be3a 100644
--- a/meson.build
+++ b/meson.build
@@ -38,6 +38,65 @@ project_build_root = meson.current_build_dir()
project_source_root = meson.current_source_dir()
+################################################################################
+# Dependency versions
+#
+# Core - required
+dep_ver = {
+ 'babl' : '>=0.1.78',
+ 'glib' : '>=2.44.0',
+ 'json-glib' : '>=1.0.0',
+ 'poly2tri-c' : '>=0.0.0',
+}
+
+# Core - optional
+dep_ver += {
+ 'g-ir' : '>=1.32.0',
+ 'vapigen' : '>=0.20.0',
+}
+
+# GEGL binary - optional
+dep_ver += {
+ 'gexiv2' : '>=0.0.0',
+ 'libpng' : '>=1.6.0',
+ 'luajit' : '>=2.0.4',
+ 'mrg' : '>=0.0.0',
+}
+
+# Operations - optional
+dep_ver += {
+ 'gdk-pixbuf' : '>=2.32.0',
+ 'cairo' : '>=1.12.2',
+ 'pango' : '>=1.38.0',
+ 'pangocairo' : '>=1.38.0',
+ 'jasper' : '>=1.900.1',
+ 'lcms' : '>=2.8',
+ 'lensfun' : '>=0.2.5',
+ 'libjpeg' : '>=1.0.0',
+ 'libraw' : '>=0.15.4',
+ 'librsvg' : '>=2.40.6',
+ 'libspiro' : '>=0.5.0',
+ 'libtiff' : '>=4.0.0',
+ 'libv4l1' : '>=1.0.1',
+ 'libv4l2' : '>=1.0.1',
+ 'libwebp' : '>=0.5.0',
+ 'maxflow' : '>=3.0.4',
+ 'openexr' : '>=1.6.1',
+ 'poppler' : '>=0.71.0',
+ 'sdl1' : '>=1.2.0',
+ 'sdl2' : '>=2.0.5',
+ 'libavcodec' : '>=55.69.100',
+ 'libavformat' : '>=55.48.100',
+ 'libavutil' : '>=55.92.100',
+ 'libswscale' : '>=2.6.100',
+}
+
+# Tests (runtime) - optional
+dep_ver += {
+ 'pygobject' : '>=3.2.0',
+}
+
+
################################################################################
# Project infos
@@ -166,27 +225,29 @@ config.set('HAVE_FSYNC', cc.has_function('fsync'))
config.set('HAVE_MALLOC_TRIM', cc.has_function('malloc_trim'))
config.set('HAVE_STRPTIME', cc.has_function('strptime'))
-math = cc.find_library('m', required: false)
+math = cc.find_library('m', required: false)
libdl = cc.find_library('dl', required : false)
thread = dependency('threads')
-babl = dependency('babl', version: '>=0.1.78')
-glib = dependency('glib-2.0', version: '>=2.44.0')
-gobject = dependency('gobject-2.0', version: '>=2.44.0')
-gmodule = dependency('gmodule-2.0', version: '>=2.44.0')
-gthread = dependency('gthread-2.0', version: '>=2.44.0')
+babl = dependency('babl', version: dep_ver.get('babl'))
+glib = dependency('glib-2.0', version: dep_ver.get('glib'))
+gobject = dependency('gobject-2.0', version: dep_ver.get('glib'))
+gmodule = dependency('gmodule-2.0', version: dep_ver.get('glib'))
+gthread = dependency('gthread-2.0', version: dep_ver.get('glib'))
gio_os = os_win32 ? 'gio-windows-2.0' : 'gio-unix-2.0'
gio = [
- dependency('gio-2.0', version: '>=2.44.0'),
- dependency(gio_os, version: '>=2.44.0'),
+ dependency('gio-2.0', version: dep_ver.get('glib')),
+ dependency(gio_os, version: dep_ver.get('glib')),
]
-json_glib = dependency('json-glib-1.0', version: '>=1.2.6')
-libjpeg = dependency('libjpeg', version: '>=1.0.0')
-libpng = dependency('libpng', version: '>=1.6.0')
+json_glib = dependency('json-glib-1.0',
+ version: dep_ver.get('json-glib')
+)
+libjpeg = dependency('libjpeg', version: dep_ver.get('libjpeg'))
+libpng = dependency('libpng', version: dep_ver.get('libpng'))
# Required libraries eventually provided in subprojects/ subdir
-
-poly2tri_c= dependency('poly2tri-c', version: '>=0.0.0',
+poly2tri_c = dependency('poly2tri-c',
+ version: dep_ver.get('poly2tri-c'),
fallback: ['poly2tri-c', 'poly2tri_c'],
required: false,
)
@@ -200,14 +261,16 @@ libnsgif = dependency('libnsgif',
# GEGL library
if get_option('introspection') != 'false'
- g_ir = dependency('gobject-introspection-1.0', version: '>=1.32.0',
+ g_ir = dependency('gobject-introspection-1.0',
+ version: dep_ver.get('g-ir'),
required: get_option('introspection') == 'true' ? true : false,
)
else
g_ir = disabler()
endif
if g_ir.found()
- vapigen = dependency('vapigen', version:'>=0.20.0',
+ vapigen = dependency('vapigen',
+ version: dep_ver.get('vapigen'),
required: get_option('vapigen')
)
else
@@ -215,90 +278,116 @@ else
endif
# GEGL binary
-gexiv2 = dependency('gexiv2', version: '>=0.0.0',
+gexiv2 = dependency('gexiv2',
+ version: dep_ver.get('gexiv2'),
required: get_option('gexiv2')
)
config.set('HAVE_GEXIV2', gexiv2.found())
-lua = dependency('luajit', version: '>=2.0.4',
+lua = dependency('luajit',
+ version: dep_ver.get('luajit'),
required: get_option('lua')
)
config.set('HAVE_LUA', lua.found())
-mrg = dependency('mrg', version: '>=0.0.0',
+mrg = dependency('mrg',
+ version: dep_ver.get('mrg'),
required: get_option('mrg')
)
config.set('HAVE_MRG', mrg.found())
# Operations
-gdk_pixbuf= dependency('gdk-pixbuf-2.0', version:'>=2.32.0',
+gdk_pixbuf= dependency('gdk-pixbuf-2.0',
+ version: dep_ver.get('gdk-pixbuf'),
required: get_option('gdk-pixbuf')
)
-cairo = dependency('cairo', version: '>=1.12.2',
+cairo = dependency('cairo',
+ version: dep_ver.get('cairo'),
required: get_option('cairo')
)
-pango = dependency('pango', version: '>=1.38.0',
+pango = dependency('pango',
+ version: dep_ver.get('pango'),
required: get_option('pango')
)
-pangocairo= dependency('pangocairo', version: '>=1.38.0',
+pangocairo = dependency('pangocairo',
+ version: dep_ver.get('pangocairo'),
required: get_option('pangocairo')
)
-jasper = dependency('jasper', version: '>=1.900.1',
+jasper = dependency('jasper',
+ version: dep_ver.get('jasper'),
required: get_option('jasper')
)
-lcms = dependency('lcms2', version: '>=2.8',
+lcms = dependency('lcms2',
+ version: dep_ver.get('lcms'),
required: get_option('lcms')
)
-lensfun = dependency('lensfun', version: '>=0.2.5',
+lensfun = dependency('lensfun',
+ version: dep_ver.get('lensfun'),
required: get_option('lensfun')
)
-libraw = dependency('libraw', version: '>=0.15.4',
+libraw = dependency('libraw',
+ version: dep_ver.get('libraw'),
required: get_option('libraw')
)
-librsvg = dependency('librsvg-2.0', version: '>=2.40.6',
+librsvg = dependency('librsvg-2.0',
+ version: dep_ver.get('librsvg'),
required: get_option('librsvg')
)
-libspiro = dependency('libspiro', version: '>=0.5.0',
+libspiro = dependency('libspiro',
+ version: dep_ver.get('libspiro'),
required: get_option('libspiro')
)
-libtiff = dependency('libtiff-4', version: '>=4.0.0',
+libtiff = dependency('libtiff-4',
+ version: dep_ver.get('libtiff'),
required: get_option('libtiff')
)
-libv4l1 = dependency('libv4l1', version: '>=1.0.1',
+libv4l1 = dependency('libv4l1',
+ version: dep_ver.get('libv4l1'),
required: get_option('libv4l')
)
-libv4l2 = dependency('libv4l2', version: '>=1.0.1',
+libv4l2 = dependency('libv4l2',
+ version: dep_ver.get('libv4l2'),
required: get_option('libv4l2')
)
-libwebp = dependency('libwebp', version:'>=0.5.0',
+libwebp = dependency('libwebp',
+ version: dep_ver.get('libwebp'),
required: get_option('webp')
)
-maxflow = dependency('maxflow', version: '>=3.0.4',
+maxflow = dependency('maxflow',
+ version: dep_ver.get('maxflow'),
required: get_option('maxflow')
)
-openexr = dependency('OpenEXR', version: '>=1.6.1',
+openexr = dependency('OpenEXR',
+ version: dep_ver.get('openexr'),
required: get_option('openexr')
)
-poppler = dependency('poppler-glib', version: '>=0.71.0',
+poppler = dependency('poppler-glib',
+ version: dep_ver.get('poppler'),
required: get_option('poppler')
)
-sdl1 = dependency('sdl', version: '>=1.2.0',
+sdl1 = dependency('sdl',
+ version: dep_ver.get('sdl1'),
required: get_option('sdl1')
)
-sdl2 = dependency('sdl2', version: '>=2.0.5',
+sdl2 = dependency('sdl2',
+ version: dep_ver.get('sdl2'),
required: get_option('sdl2')
)
# AV libs
-libavcodec = dependency('libavcodec', version: '>=55.69.100',
+libavcodec = dependency('libavcodec',
+ version: dep_ver.get('libavcodec'),
required: get_option('libav')
)
-libavformat = dependency('libavformat', version: '>=55.48.100',
+libavformat = dependency('libavformat',
+ version: dep_ver.get('libavformat'),
required: get_option('libav')
)
-libavutil = dependency('libavutil', version: '>=55.92.100',
+libavutil = dependency('libavutil',
+ version: dep_ver.get('libavutil'),
required: get_option('libav')
)
-libswscale = dependency('libswscale', version: '>=2.6.100',
+libswscale = dependency('libswscale',
+ version: dep_ver.get('libswscale'),
required: get_option('libav')
)
avlibs_found = (
@@ -331,7 +420,8 @@ endif
# Tests
if g_ir.found()
- pygobject3 = dependency('pygobject-3.0', version: '>=3.2.0',
+ pygobject3 = dependency('pygobject-3.0',
+ version: dep_ver.get('pygobject'),
required: get_option('pygobject')
)
else
@@ -379,7 +469,7 @@ subdir('po')
subdir('docs')
-if w3m.found()
+if w3m.found()
# Create NEWS file from html file
if is_variable('news_html')
custom_target('NEWS',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]