[gnome-chess] Split several files off into an internal library



commit 17f0005f342e30c41cd089470f69eb8f3a2caa72
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Tue Apr 8 18:41:55 2014 -0500

    Split several files off into an internal library
    
    This will be a static convenience library, so we don't have to recompile
    all of these files for each test binary.

 Makefile.am                         |   10 ++++-
 configure.ac                        |   16 ++++++++-
 lib/Makefile.am                     |   39 ++++++++++++++++++++++
 {src => lib}/chess-bitboard.vala    |    0
 {src => lib}/chess-clock.vala       |    2 +-
 {src => lib}/chess-game.vala        |    8 ++--
 {src => lib}/chess-move.vala        |    0
 {src => lib}/chess-pgn.vala         |    4 +-
 {src => lib}/chess-piece.vala       |    0
 {src => lib}/chess-player.vala      |    0
 {src => lib}/chess-state.vala       |    0
 po/POTFILES.in                      |    6 ---
 po/POTFILES.skip                    |    7 ----
 src/Makefile.am                     |   62 +++++++---------------------------
 tests/Makefile.am                   |   45 +++++++++++++++++++++++++
 {src => tests}/test-chess-game.vala |    0
 {src => tests}/test-chess-pgn.vala  |    0
 17 files changed, 127 insertions(+), 72 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 27375b8..66c3e32 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,6 @@
-SUBDIRS = data src help po
+SUBDIRS = data lib src tests help po
+
+ACLOCAL_AMFLAGS = -I m4
 
 EXTRA_DIST = autogen.sh NEWS
 
@@ -6,6 +8,10 @@ DISTCLEANFILES = test-driver
 
 MAINTAINERCLEANFILES = \
        $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
-       $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN)
+       $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \
+       $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL)
+
+# We currently have no custom macros
+GITIGNOREFILES = m4
 
 -include $(top_srcdir)/git.mk
diff --git a/configure.ac b/configure.ac
index 2b7999b..85e2a0a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,11 @@
 AC_PREREQ([2.63])
 AC_INIT([GNOME Chess], [3.12.0], [https://bugzilla.gnome.org/],
         [gnome-chess], [https://wiki.gnome.org/Apps/Chess])
-AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz foreign])
+
+AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_SRCDIR([src/gnome-chess.vala])
+
+AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz foreign])
 AM_SILENT_RULES([yes])
 AM_MAINTAINER_MODE([enable])
 GNOME_MAINTAINER_MODE_DEFINES
@@ -10,6 +13,9 @@ GNOME_MAINTAINER_MODE_DEFINES
 AM_PROG_VALAC([0.23.1.11])
 AM_PROG_CC_C_O
 
+LT_PREREQ([2.2])
+LT_INIT
+
 GLIB_GSETTINGS
 
 dnl ###########################################################################
@@ -30,7 +36,13 @@ PKG_CHECK_MODULES(GNOME_CHESS, [
   x11
 ])
 
+PKG_CHECK_MODULES(LIBCHESS, [
+  glib-2.0
+  gio-2.0
+])
+
 PKG_CHECK_MODULES(TEST, [
+  glib-2.0
   gio-2.0
 ])
 
@@ -67,7 +79,9 @@ data/pieces/fancy/Makefile
 data/pieces/simple/Makefile
 data/textures/Makefile
 help/Makefile
+lib/Makefile
 po/Makefile.in
 src/Makefile
+tests/Makefile
 ])
 AC_OUTPUT
diff --git a/lib/Makefile.am b/lib/Makefile.am
new file mode 100644
index 0000000..8ed5fff
--- /dev/null
+++ b/lib/Makefile.am
@@ -0,0 +1,39 @@
+noinst_LTLIBRARIES = libchess.la
+
+libchess_la_SOURCES = \
+       chess-bitboard.vala \
+       chess-clock.vala \
+       chess-game.vala \
+       chess-move.vala \
+       chess-pgn.vala \
+       chess-piece.vala \
+       chess-player.vala \
+       chess-state.vala
+
+libchess_la_CFLAGS = \
+       -w
+
+libchess_la_CPPFLAGS = \
+       $(LIBCHESS_CFLAGS)
+
+libchess_la_LIBADD = \
+       $(LIBCHESS_LIBS)
+
+libchess_la_VALAFLAGS = \
+       --pkg glib-2.0 \
+       --pkg gio-2.0 \
+       --pkg posix \
+       --header=libchess.h \
+       --vapi=libchess.vapi
+
+EXTRA_DIST = libchess.h
+
+CLEANFILES = \
+       $(patsubst %.vala,%.c,$(filter %.vala, $(SOURCES))) \
+       *_vala.stamp \
+       *.log \
+       *.trs \
+       libchess.vapi \
+       libchess.h
+
+-include $(top_srcdir)/git.mk
diff --git a/src/chess-bitboard.vala b/lib/chess-bitboard.vala
similarity index 100%
rename from src/chess-bitboard.vala
rename to lib/chess-bitboard.vala
diff --git a/src/chess-clock.vala b/lib/chess-clock.vala
similarity index 99%
rename from src/chess-clock.vala
rename to lib/chess-clock.vala
index 5cbb9ae..6809c7d 100644
--- a/src/chess-clock.vala
+++ b/lib/chess-clock.vala
@@ -52,7 +52,7 @@ public class ChessClock : Object
     {
         get { return timer != null && expire_timeout_id != 0; }
     }
-    
+
     public void start ()
     {
         if (is_active)
diff --git a/src/chess-game.vala b/lib/chess-game.vala
similarity index 99%
rename from src/chess-game.vala
rename to lib/chess-game.vala
index c255489..ab5603e 100644
--- a/src/chess-game.vala
+++ b/lib/chess-game.vala
@@ -38,7 +38,7 @@ public class ChessGame
     public ChessResult result;
     public ChessRule rule;
     public List<ChessState> move_stack;
-    
+
     private int hold_count = 0;
 
     public const string STANDARD_SETUP = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
@@ -51,7 +51,7 @@ public class ChessGame
     public signal void ended ();
 
     public bool is_paused { get; private set; default = false; }
-    
+
     public ChessState current_state
     {
        get { return move_stack.data; }
@@ -168,7 +168,7 @@ public class ChessGame
         /* Wait until the hold is removed */
         if (hold_count > 0)
             return;
-            
+
         ChessRule rule;
         var result = current_state.get_result (out rule);
         if (result != ChessResult.IN_PROGRESS)
@@ -253,7 +253,7 @@ public class ChessGame
         else
             stop (ChessResult.WHITE_WON, ChessRule.TIMEOUT);
     }
-    
+
     public ChessPiece? get_piece (int rank, int file, int move_number = -1)
     {
         if (move_number < 0)
diff --git a/src/chess-move.vala b/lib/chess-move.vala
similarity index 100%
rename from src/chess-move.vala
rename to lib/chess-move.vala
diff --git a/src/chess-pgn.vala b/lib/chess-pgn.vala
similarity index 99%
rename from src/chess-pgn.vala
rename to lib/chess-pgn.vala
index 0b94a87..edf227e 100644
--- a/src/chess-pgn.vala
+++ b/lib/chess-pgn.vala
@@ -174,7 +174,7 @@ public class PGNGame
     }
 
     public string escape (string value)
-    {    
+    {
         var a = value.replace ("\\", "\\\\");
         return a.replace ("\"", "\\\"");
     }
@@ -247,7 +247,7 @@ public class PGN
                line++;
                line_offset = offset + 1;
             }
-            
+
             switch (state)
             {
             case State.TAGS:
diff --git a/src/chess-piece.vala b/lib/chess-piece.vala
similarity index 100%
rename from src/chess-piece.vala
rename to lib/chess-piece.vala
diff --git a/src/chess-player.vala b/lib/chess-player.vala
similarity index 100%
rename from src/chess-player.vala
rename to lib/chess-player.vala
diff --git a/src/chess-state.vala b/lib/chess-state.vala
similarity index 100%
rename from src/chess-state.vala
rename to lib/chess-state.vala
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 59981e0..73275bb 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -10,17 +10,11 @@ data/org.gnome.gnome-chess.gschema.xml
 [type: gettext/glade]data/promotion-type-selector.ui
 src/3ds.vala
 src/ai-profile.vala
-src/chess-bitboard.vala
-src/chess-clock.vala
 src/chess-engine-cecp.vala
 src/chess-engine-uci.vala
 src/chess-engine.vala
-src/chess-game.vala
-src/chess-pgn.vala
 src/chess-scene.vala
 src/chess-view-2d.vala
 src/chess-view-3d.vala
 src/chess-view.vala
 src/gnome-chess.vala
-src/test-chess-game.vala
-src/test-chess-pgn.vala
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 5cb8a44..ce1b2c3 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -1,17 +1,10 @@
 data/glchess.desktop.in
 src/3ds.c
 src/ai-profile.c
-src/chess-bitboard.c
-src/chess-clock.c
 src/chess-engine.c
 src/chess-engine-cecp.c
 src/chess-engine-uci.c
-src/chess-game.c
-src/chess-pgn.c
-src/chess-scene.c
 src/chess-view-2d.c
 src/chess-view-3d.c
 src/chess-view.c
 src/gnome-chess.c
-src/test-chess-game.c
-src/test-chess-pgn.c
diff --git a/src/Makefile.am b/src/Makefile.am
index 3ba1c88..c587586 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,9 +1,5 @@
 bin_PROGRAMS = gnome-chess
 
-noinst_PROGRAMS = test-chess-game test-chess-pgn
-
-TESTS = test-chess-game test-chess-pgn
-
 gnome_chess_SOURCES = \
        config.vapi \
        gl.vapi \
@@ -15,70 +11,38 @@ gnome_chess_SOURCES = \
        3ds.vala \
        gnome-chess.vala \
        ai-profile.vala \
-       chess-bitboard.vala \
-       chess-clock.vala \
        chess-engine.vala \
        chess-engine-cecp.vala \
        chess-engine-uci.vala \
-       chess-game.vala \
-       chess-move.vala \
-       chess-piece.vala \
-       chess-player.vala \
-       chess-pgn.vala \
        chess-scene.vala \
-       chess-state.vala \
        chess-view.vala \
        chess-view-2d.vala \
        chess-view-3d.vala
 
-test_chess_game_SOURCES = \
-       chess-bitboard.vala \
-       chess-clock.vala \
-       chess-game.vala \
-       chess-move.vala \
-       chess-piece.vala \
-       chess-player.vala \
-       chess-state.vala \
-       test-chess-game.vala
-test_chess_game_CFLAGS = \
-       -w \
-       $(TEST_CFLAGS)
-test_chess_game_LDADD = \
-       $(TEST_LIBS)
-test_chess_game_VALAFLAGS = \
-    --pkg gobject-2.0 \
-    --pkg posix
-
-test_chess_pgn_SOURCES = \
-       chess-pgn.vala \
-       test-chess-pgn.vala
-test_chess_pgn_CFLAGS = \
-       -w \
-       $(TEST_CFLAGS)
-test_chess_pgn_LDADD = \
-       $(TEST_LIBS)
-test_chess_pgn_VALAFLAGS = \
-    --pkg gio-2.0
-
 gnome_chess_CFLAGS = \
+       -w
+
+gnome_chess_CPPFLAGS = \
        -DVERSION=\"$(VERSION)\" \
        -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" \
        -DPKGDATADIR=\"$(pkgdatadir)/\" \
        -DLOCALEDIR=\"$(localedir)\" \
        -DSYSCONFDIR=\"$(sysconfdir)\" \
-       -w \
+       -I$(top_srcdir)/lib \
        $(GNOME_CHESS_CFLAGS)
 
 gnome_chess_LDADD = \
-       $(GNOME_CHESS_LIBS)
+       $(GNOME_CHESS_LIBS) \
+       $(top_builddir)/lib/libchess.la
 
 gnome_chess_VALAFLAGS = \
-    --pkg gtk+-3.0 \
-    --pkg gdk-x11-3.0 \
-    --pkg gmodule-2.0 \
-    --pkg librsvg-2.0 \
-    --pkg posix \
-    --pkg sqlite3
+       --pkg gdk-x11-3.0 \
+       --pkg glib-2.0 \
+       --pkg gmodule-2.0 \
+       --pkg gtk+-3.0 \
+       --pkg librsvg-2.0 \
+       --pkg posix \
+       $(top_builddir)/lib/libchess.vapi
 
 CLEANFILES = \
        $(patsubst %.vala,%.c,$(filter %.vala, $(SOURCES))) \
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..3b869d6
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,45 @@
+noinst_PROGRAMS = test-chess-game test-chess-pgn
+
+TESTS = test-chess-game test-chess-pgn
+
+AM_CFLAGS = -w
+
+test_chess_game_SOURCES = \
+       test-chess-game.vala
+
+test_chess_game_CPPFLAGS = \
+       -I$(top_srcdir)/lib \
+       $(TEST_CFLAGS)
+
+test_chess_game_LDADD = \
+       $(top_builddir)/lib/libchess.la \
+       $(TEST_LIBS)
+
+test_chess_game_VALAFLAGS = \
+       --pkg glib-2.0 \
+       --pkg gio-2.0 \
+       $(top_builddir)/lib/libchess.vapi
+
+test_chess_pgn_SOURCES = \
+       test-chess-pgn.vala
+
+test_chess_pgn_CPPFLAGS = \
+       -I$(top_srcdir)/lib \
+       $(TEST_CFLAGS)
+
+test_chess_pgn_LDADD = \
+       $(top_builddir)/lib/libchess.la \
+       $(TEST_LIBS)
+
+test_chess_pgn_VALAFLAGS = \
+       --pkg glib-2.0 \
+       --pkg gio-2.0 \
+       $(top_builddir)/lib/libchess.vapi
+
+CLEANFILES = \
+       $(patsubst %.vala,%.c,$(filter %.vala, $(SOURCES))) \
+       *_vala.stamp \
+       *.log \
+       *.trs
+
+-include $(top_srcdir)/git.mk
diff --git a/src/test-chess-game.vala b/tests/test-chess-game.vala
similarity index 100%
rename from src/test-chess-game.vala
rename to tests/test-chess-game.vala
diff --git a/src/test-chess-pgn.vala b/tests/test-chess-pgn.vala
similarity index 100%
rename from src/test-chess-pgn.vala
rename to tests/test-chess-pgn.vala


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