[gnome-chess] Split engine support into a separate internal lib



commit 6ce6d59c4a0b9c2c13b20805ab4d1d13386011be
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Thu Dec 24 12:08:35 2020 -0600

    Split engine support into a separate internal lib
    
    The chess engine support currently lives in src/, which otherwise
    handles only GUI functions. This is a little misplaced, because engines
    are not related to the GUI. So lib/ would be a better location for it.
    
    Except all the engine support is actually higher-level than lib/. So we
    can nicely fit it in between src/ and lib/ by creating a second internal
    lib, libengine.
    
    This is only a small benefit, but it's nice to keep src/ focused on the
    GUI.

 {src => engine}/ai-profile.vala        |  0
 {src => engine}/chess-engine-cecp.vala |  0
 {src => engine}/chess-engine-uci.vala  |  0
 {src => engine}/chess-engine.vala      |  0
 engine/meson.build                     | 33 +++++++++++++++++++++++++++++++++
 meson.build                            |  1 +
 src/meson.build                        |  5 +----
 7 files changed, 35 insertions(+), 4 deletions(-)
---
diff --git a/src/ai-profile.vala b/engine/ai-profile.vala
similarity index 100%
rename from src/ai-profile.vala
rename to engine/ai-profile.vala
diff --git a/src/chess-engine-cecp.vala b/engine/chess-engine-cecp.vala
similarity index 100%
rename from src/chess-engine-cecp.vala
rename to engine/chess-engine-cecp.vala
diff --git a/src/chess-engine-uci.vala b/engine/chess-engine-uci.vala
similarity index 100%
rename from src/chess-engine-uci.vala
rename to engine/chess-engine-uci.vala
diff --git a/src/chess-engine.vala b/engine/chess-engine.vala
similarity index 100%
rename from src/chess-engine.vala
rename to engine/chess-engine.vala
diff --git a/engine/meson.build b/engine/meson.build
new file mode 100644
index 0000000..b7e48cb
--- /dev/null
+++ b/engine/meson.build
@@ -0,0 +1,33 @@
+libengine_sources = [
+  'ai-profile.vala',
+  'chess-engine-cecp.vala',
+  'chess-engine-uci.vala',
+  'chess-engine.vala',
+]
+
+libengine_vala_args = [
+  '--target-glib=@0@'.format(min_glib_version),
+]
+
+libengine_c_args = [
+  '-include', 'config.h',
+]
+
+libengine_deps = [
+  glib,
+  gio,
+  posix,
+  libchess_dep,
+]
+
+libengine = static_library('libengine', libengine_sources,
+  include_directories: config_h_dir,
+  vala_args: libengine_vala_args,
+  c_args: libengine_c_args,
+  dependencies: libengine_deps
+)
+
+libengine_dep = declare_dependency(
+  link_with: libengine,
+  include_directories: include_directories('.'),
+)
diff --git a/meson.build b/meson.build
index 5bd07da..02b4baa 100644
--- a/meson.build
+++ b/meson.build
@@ -57,6 +57,7 @@ meson.add_install_script('meson_post_install.py')
 subdir('data')
 subdir('po')
 subdir('lib')
+subdir('engine')
 subdir('src')
 subdir('tests')
 subdir('help')
diff --git a/src/meson.build b/src/meson.build
index 5052848..bd1166a 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -8,10 +8,6 @@ resources = gnome.compile_resources(application_id, resource_files,
 # The gnome-chess binary
 chess_sources = [
   resources,
-  'ai-profile.vala',
-  'chess-engine-cecp.vala',
-  'chess-engine-uci.vala',
-  'chess-engine.vala',
   'chess-scene.vala',
   'chess-view.vala',
   'gnome-chess.vala',
@@ -32,6 +28,7 @@ chess_deps = [
   librsvg,
   posix,
   libchess_dep,
+  libengine_dep,
 ]
 
 executable('gnome-chess', chess_sources,


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