[gegl] build: build non-external workshop ops as bundle



commit 0016a82a0f99a78185016fda816b9783ccc552c6
Author: Øyvind Kolås <pippin gimp org>
Date:   Sun May 10 16:39:30 2020 +0200

    build: build non-external workshop ops as bundle
    
    This removes the problem in our workflow where ops that were in workshop
    in one release, cause warnings in subsequent releases - if still
    installed, when the ops also are part of gegl-common.so, by having them
    all live in gegl-workshop.so removal in subsequent builds and installs
    is automatically achieved also when tracking upstream git, without
    needing uninstalling or wiping out the prefix.

 operations/workshop/external/meson.build           | 19 +++++
 .../workshop/{ => external}/voronoi-diagram.cc     |  0
 operations/workshop/meson.build                    | 88 +++++++++++-----------
 po/POTFILES.in                                     |  4 +-
 4 files changed, 67 insertions(+), 44 deletions(-)
---
diff --git a/operations/workshop/external/meson.build b/operations/workshop/external/meson.build
index 9c93a523c..c349ed95e 100644
--- a/operations/workshop/external/meson.build
+++ b/operations/workshop/external/meson.build
@@ -1,4 +1,23 @@
 
+
+gegl_operations += shared_library('voroni_diagram',
+  'voronoi-diagram.cc',
+    include_directories: [ rootInclude, geglInclude, seamlessInclude, ],
+    dependencies: [
+      babl,
+      glib,
+      gobject,
+      math,
+    ],
+    link_with: [
+      gegl_lib,
+    ],
+    name_prefix: '',
+    install: true,
+    install_dir: get_option('libdir') / api_name,
+)
+
+
 if lua.found()
   gegl_operations += shared_library('gluas',
     'gluas.c',
diff --git a/operations/workshop/voronoi-diagram.cc b/operations/workshop/external/voronoi-diagram.cc
similarity index 100%
rename from operations/workshop/voronoi-diagram.cc
rename to operations/workshop/external/voronoi-diagram.cc
diff --git a/operations/workshop/meson.build b/operations/workshop/meson.build
index 116cf4adf..9a8c5918d 100644
--- a/operations/workshop/meson.build
+++ b/operations/workshop/meson.build
@@ -1,46 +1,50 @@
 subdir('external')
 subdir('generated')
 
-libraries = [
-  { 'name': 'aces-rrt', },
-  { 'name': 'alpha-inpaint', },
-  { 'name': 'bilateral-filter-fast', },
-  { 'name': 'boxblur-1d', },
-  { 'name': 'boxblur', },
-  { 'name': 'connected-components', },
-  { 'name': 'demosaic-bimedian', },
-  { 'name': 'demosaic-simple', },
-  { 'name': 'ditto', },
-  { 'name': 'band-tune', },
-  { 'name': 'gcr', },
-  { 'name': 'gradient-map', },
-  { 'name': 'hstack', },
-  { 'name': 'integral-image', },
-  { 'name': 'rawbayer-load', },
-  { 'name': 'segment-kmeans', },
-  { 'name': 'selective-hue-saturation', },
-  { 'name': 'voronoi-diagram', 'srcs': 'voronoi-diagram.cc', },
-]
+gegl_workshop_sources = files(
+  'aces-rrt.c', 
+  'alpha-inpaint.c', 
+  'bilateral-filter-fast.c', 
+  'boxblur-1d.c', 
+  'boxblur.c', 
+  'connected-components.c', 
+  'demosaic-bimedian.c', 
+  'demosaic-simple.c', 
+  'ditto.c', 
+  'band-tune.c', 
+  'gcr.c', 
+  'gradient-map.c', 
+  'hstack.c', 
+  'integral-image.c', 
+  'rawbayer-load.c', 
+  'segment-kmeans.c', 
+  'selective-hue-saturation.c', 
+)
 
-foreach lib : libraries
-  libname = lib.get('name')
-  libsrcs = lib.get('srcs', libname + '.c')
-  gegl_operations += shared_library(libname,
-    libsrcs,
-    opencl_headers,
-    include_directories: [ rootInclude, geglInclude, seamlessInclude, ],
-    dependencies: [
-      babl,
-      glib,
-      gobject,
-      math,
-    ],
-    link_with: [
-      gegl_lib,
-      seamlessclone_lib,
-    ],
-    name_prefix: '',
-    install: true,
-    install_dir: get_option('libdir') / api_name,
-  )
-endforeach
+gegl_workshop_sources += custom_target('module_workshop.c',
+  input : gegl_workshop_sources,
+  output: 'module_workshop.c',
+  command: [ gen_loader, '@INPUT@', ],
+  capture: true
+)
+
+gegl_workshop = shared_library('gegl-workshop',
+  gegl_workshop_sources,
+  include_directories: [ rootInclude, geglInclude, ],
+  dependencies: [
+    babl,
+    glib,
+    gmodule,
+    json_glib,
+    math,
+  ],
+  link_with: [
+    gegl_lib,
+  ],
+  c_args: [
+    '-DGEGL_OP_BUNDLE',
+  ],
+  name_prefix: '',
+  install: true,
+  install_dir: get_option('libdir') / api_name,
+)
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 7d08ffd5c..084c98153 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -260,6 +260,7 @@ operations/transform/transform.c
 operations/transform/transform-core.c
 operations/transform/translate.c
 operations/workshop/aces-rrt.c
+operations/workshop/band-tune.c
 operations/workshop/bilateral-filter-fast.c
 operations/workshop/boxblur-1d.c
 operations/workshop/boxblur.c
@@ -267,12 +268,12 @@ operations/workshop/connected-components.c
 operations/workshop/demosaic-bimedian.c
 operations/workshop/demosaic-simple.c
 operations/workshop/ditto.c
-operations/workshop/edges-and-details.c
 operations/workshop/external/gluas.c
 operations/workshop/external/lens-correct.c
 operations/workshop/external/line-profile.c
 operations/workshop/external/spyrograph.c
 operations/workshop/external/v4l2.c
+operations/workshop/external/voronoi-diagram.cc
 operations/workshop/generated/average.c
 operations/workshop/generated/blend-reflect.c
 operations/workshop/generated/negation.c
@@ -285,4 +286,3 @@ operations/workshop/integral-image.c
 operations/workshop/rawbayer-load.c
 operations/workshop/segment-kmeans.c
 operations/workshop/selective-hue-saturation.c
-operations/workshop/voronoi-diagram.cc


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]