[gnome-sudoku] Split off backend files into libsudoku



commit 8513bb5a5edafabaaf7297812a62c14d5f2b1910
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Sun Jun 29 17:19:41 2014 -0500

    Split off backend files into libsudoku
    
    Let's prohibit these files from using any of the GUI-related code.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=579836

 Makefile.am                        |    7 ++++-
 configure.ac                       |   14 +++++++++++++
 lib/Makefile.am                    |   38 ++++++++++++++++++++++++++++++++++++
 {src => lib}/sudoku-board.vala     |    0
 {src => lib}/sudoku-game.vala      |    0
 {src => lib}/sudoku-generator.vala |    0
 {src => lib}/sudoku-saver.vala     |    0
 {src => lib}/sudoku-solver.vala    |    2 +-
 src/Makefile.am                    |   15 +++++--------
 9 files changed, 64 insertions(+), 12 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index cadee0c..0e1da46 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,10 @@
-SUBDIRS = data help po src
+SUBDIRS = data lib src help po
+
+ACLOCAL_AMFLAGS = -I m4
 
 MAINTAINERCLEANFILES = \
        $(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
-       $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN)
+       $(GITIGNORE_MAINTAINERCLEANFILES_MAKEFILE_IN) \
+       $(GITIGNORE_MAINTAINERCLEANFILES_M4_LIBTOOL)
 
 -include $(top_srcdir)/git.mk
diff --git a/configure.ac b/configure.ac
index a59690c..b3c8e58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,8 +9,13 @@ GNOME_MAINTAINER_MODE_DEFINES
 AM_PROG_VALAC([0.24.0])
 AM_PROG_CC_C_O
 
+LT_PREREQ([2.4])
+LT_INIT
+
 GLIB_GSETTINGS
 
+AC_CONFIG_MACRO_DIR([m4])
+
 dnl ###########################################################################
 dnl Dependencies
 dnl ###########################################################################
@@ -23,12 +28,20 @@ PKG_CHECK_MODULES(GNOME_SUDOKU, [
   gio-2.0 >= $GLIB_REQUIRED
   gtk+-3.0 >= $GTK_REQUIRED
   gee-0.8
+])
+
+PKG_CHECK_MODULES(LIBSUDOKU, [
+  glib-2.0 >= $GLIB_REQUIRED
+  gio-2.0 >= $GLIB_REQUIRED
+  gee-0.8
   json-glib-1.0
 ])
 
 AC_PATH_PROG([APPDATA_VALIDATE], [appdata-validate], [/bin/true])
 AC_PATH_PROG([DESKTOP_FILE_VALIDATE], [desktop-file-validate], [/bin/true])
 
+AC_CHECK_LIB([m],[floor])
+
 dnl ###########################################################################
 dnl GResources
 dnl ###########################################################################
@@ -59,6 +72,7 @@ data/Makefile
 data/icons/Makefile
 data/icons/hicolor/Makefile
 data/icons/HighContrast/Makefile
+lib/Makefile
 help/Makefile
 src/Makefile
 src/gnome-sudoku.gresource.xml
diff --git a/lib/Makefile.am b/lib/Makefile.am
new file mode 100644
index 0000000..c8a14d4
--- /dev/null
+++ b/lib/Makefile.am
@@ -0,0 +1,38 @@
+noinst_LTLIBRARIES = libsudoku.la
+
+libsudoku_la_SOURCES = \
+       sudoku-board.vala \
+       sudoku-game.vala \
+       sudoku-generator.vala \
+       sudoku-saver.vala \
+       sudoku-solver.vala
+
+libsudoku_la_CFLAGS = -w
+
+libsudoku_la_CPPFLAGS = \
+       -DPKGDATADIR=\"@datadir@/gnome-sudoku\" \
+       -DLOCALEDIR=\"@localedir \" \
+       -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" \
+       $(LIBSUDOKU_CFLAGS)
+
+libsudoku_la_LIBADD = \
+       $(LIBSUDOKU_LIBS)
+
+libsudoku_la_VALAFLAGS = \
+       --pkg gee-0.8 \
+       --pkg glib-2.0 \
+       --pkg gio-2.0 \
+       --pkg json-glib-1.0 \
+       --pkg posix \
+       --header=libsudoku.h \
+       --vapi=libsudoku.vapi
+
+EXTRA_DIST = \
+       libsudoku.h \
+       libsudoku.vapi
+
+MAINTAINERCLEANFILES = \
+       libsudoku.h \
+       libsudoku.vapi
+
+-include $(top_srcdir)/git.mk
diff --git a/src/sudoku-board.vala b/lib/sudoku-board.vala
similarity index 100%
rename from src/sudoku-board.vala
rename to lib/sudoku-board.vala
diff --git a/src/sudoku-game.vala b/lib/sudoku-game.vala
similarity index 100%
rename from src/sudoku-game.vala
rename to lib/sudoku-game.vala
diff --git a/src/sudoku-generator.vala b/lib/sudoku-generator.vala
similarity index 100%
rename from src/sudoku-generator.vala
rename to lib/sudoku-generator.vala
diff --git a/src/sudoku-saver.vala b/lib/sudoku-saver.vala
similarity index 100%
rename from src/sudoku-saver.vala
rename to lib/sudoku-saver.vala
diff --git a/src/sudoku-solver.vala b/lib/sudoku-solver.vala
similarity index 99%
rename from src/sudoku-solver.vala
rename to lib/sudoku-solver.vala
index 6931db6..1a33cef 100644
--- a/src/sudoku-solver.vala
+++ b/lib/sudoku-solver.vala
@@ -486,7 +486,7 @@ public class SudokuSolver : Object
     }
 }
 
-class SudokuRater : SudokuSolver {
+public class SudokuRater : SudokuSolver {
 
     private bool guessing;
     private bool fake_add;
diff --git a/src/Makefile.am b/src/Makefile.am
index 7f1fd7f..ba8cba3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -5,34 +5,31 @@ BUILT_SOURCES = gnome-sudoku-resources.c
 gnome_sudoku_SOURCES = \
        config.vapi \
        gnome-sudoku.vala \
-       sudoku-board.vala \
-       sudoku-game.vala \
-       sudoku-generator.vala \
        sudoku-store.vala \
-       sudoku-solver.vala \
        sudoku-view.vala \
        number-picker.vala \
        sudoku-printer.vala \
-       sudoku-saver.vala \
        $(BUILT_SOURCES)
 
-gnome_sudoku_CFLAGS = \
+gnome_sudoku_CFLAGS = -w
+
+gnome_sudoku_CPPFLAGS = \
        -DPKGDATADIR=\"@datadir@/gnome-sudoku\" \
        -DLOCALEDIR=\"@localedir \" \
        -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" \
-       -w \
+       -I$(top_srcdir)/lib \
        $(GNOME_SUDOKU_CFLAGS)
 
 gnome_sudoku_LDADD = \
        $(GNOME_SUDOKU_LIBS) \
-       -lm
+       $(top_builddir)/lib/libsudoku.la
 
 gnome_sudoku_VALAFLAGS = \
        --pkg posix \
        --pkg gio-2.0 \
        --pkg gtk+-3.0 \
        --pkg gee-0.8 \
-       --pkg json-glib-1.0
+       $(top_builddir)/lib/libsudoku.vapi
 
 gnome-sudoku-resources.c: gnome-sudoku.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) 
--generate-dependencies gnome-sudoku.gresource.xml)
        $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $<


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