mirror of https://github.com/stella-emu/stella.git
Hook up SQLite in build system, scaffold SQLite repository.
This commit is contained in:
parent
262084778e
commit
f9554ee3df
|
@ -21,6 +21,7 @@ _build_joystick=yes
|
||||||
_build_cheats=yes
|
_build_cheats=yes
|
||||||
_build_png=yes
|
_build_png=yes
|
||||||
_build_zip=yes
|
_build_zip=yes
|
||||||
|
_build_sqlite=no
|
||||||
_build_static=no
|
_build_static=no
|
||||||
_build_profile=no
|
_build_profile=no
|
||||||
_build_debug=no
|
_build_debug=no
|
||||||
|
@ -201,6 +202,8 @@ Optional Features:
|
||||||
--disable-png
|
--disable-png
|
||||||
--enable-zip enable/disable ZIP file support [enabled]
|
--enable-zip enable/disable ZIP file support [enabled]
|
||||||
--disable-zip
|
--disable-zip
|
||||||
|
--enable-sqlite enable SQLite for storing settings and preferences [disabled]
|
||||||
|
--disable-sqlite
|
||||||
--enable-windowed enable/disable windowed rendering modes [enabled]
|
--enable-windowed enable/disable windowed rendering modes [enabled]
|
||||||
--disable-windowed
|
--disable-windowed
|
||||||
--enable-shared build shared binary [enabled]
|
--enable-shared build shared binary [enabled]
|
||||||
|
@ -215,6 +218,7 @@ Optional Libraries:
|
||||||
--with-sdl-prefix=DIR Prefix where the sdl2-config script is installed (optional)
|
--with-sdl-prefix=DIR Prefix where the sdl2-config script is installed (optional)
|
||||||
--with-libpng-prefix=DIR Prefix where libpng is installed (optional)
|
--with-libpng-prefix=DIR Prefix where libpng is installed (optional)
|
||||||
--with-zlib-prefix=DIR Prefix where zlib is installed (optional)
|
--with-zlib-prefix=DIR Prefix where zlib is installed (optional)
|
||||||
|
--with-sqlite-prefix=DIR PREFIX where sqlite is installed (optional)
|
||||||
|
|
||||||
Some influential environment variables:
|
Some influential environment variables:
|
||||||
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
|
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
|
||||||
|
@ -243,13 +247,15 @@ for ac_option in $@; do
|
||||||
--disable-png) _build_png=no ;;
|
--disable-png) _build_png=no ;;
|
||||||
--enable-zip) _build_zip=yes ;;
|
--enable-zip) _build_zip=yes ;;
|
||||||
--disable-zip) _build_zip=no ;;
|
--disable-zip) _build_zip=no ;;
|
||||||
|
--enable-sqlite) _build_sqlite=yes ;;
|
||||||
|
--disable-sqlite) _build_sqlite=no ;;
|
||||||
--enable-windowed) _build_windowed=yes ;;
|
--enable-windowed) _build_windowed=yes ;;
|
||||||
--disable-windowed) _build_windowed=no ;;
|
--disable-windowed) _build_windowed=no ;;
|
||||||
--enable-shared) _build_static=no ;;
|
--enable-shared) _build_static=no ;;
|
||||||
--enable-static) _build_static=yes ;;
|
--enable-static) _build_static=yes ;;
|
||||||
--disable-static) _build_static=no ;;
|
--disable-static) _build_static=no ;;
|
||||||
--enable-profile) _build_profile=yes ;;
|
--enable-profile) _build_profile=yes ;;
|
||||||
--disable-profile) _build_profile=no ;;
|
# --disable-profile) _build_profile=no ;;
|
||||||
--enable-debug) _build_debug=yes ;;
|
--enable-debug) _build_debug=yes ;;
|
||||||
--disable-debug) _build_debug=false ;;
|
--disable-debug) _build_debug=false ;;
|
||||||
--with-sdl-prefix=*)
|
--with-sdl-prefix=*)
|
||||||
|
@ -265,6 +271,11 @@ for ac_option in $@; do
|
||||||
_prefix=`echo $ac_option | cut -d '=' -f 2`
|
_prefix=`echo $ac_option | cut -d '=' -f 2`
|
||||||
ZLIB_CFLAGS="-I$_prefix/include"
|
ZLIB_CFLAGS="-I$_prefix/include"
|
||||||
ZLIB_LIBS="-L$_prefix/lib"
|
ZLIB_LIBS="-L$_prefix/lib"
|
||||||
|
;;
|
||||||
|
--with-sqlite-prefix=*)
|
||||||
|
_prefix=`echo $ac_option | cut -d '=' -f 2`
|
||||||
|
SQLITE_CFLAGS="-I$_prefix/include"
|
||||||
|
SQLITE_LIBS="-L$_prefix/lib"
|
||||||
;;
|
;;
|
||||||
--host=*)
|
--host=*)
|
||||||
_host=`echo $ac_option | cut -d '=' -f 2`
|
_host=`echo $ac_option | cut -d '=' -f 2`
|
||||||
|
@ -640,6 +651,30 @@ else
|
||||||
_build_png=no
|
_build_png=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check for SQLite
|
||||||
|
#
|
||||||
|
echocheck "SQLite"
|
||||||
|
if test "$_build_sqlite" = yes ; then
|
||||||
|
_sqlite=no
|
||||||
|
cat > $TMPC << EOF
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sqlite3.h>
|
||||||
|
int main(void) { printf("%s\n", SQLITE_VERSION); }
|
||||||
|
EOF
|
||||||
|
cc_check $LDFLAGS $CXXFLAGS $SQLITE_CFLAGS $SQLITE_LIBS -lsqlite3 && _sqlite=yes
|
||||||
|
|
||||||
|
if test "$_sqlite" = yes ; then
|
||||||
|
echo "$_sqlite"
|
||||||
|
else
|
||||||
|
echo "disabled"
|
||||||
|
_build_sqlite=no
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "disabled"
|
||||||
|
_build_sqlite=no
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# figure out installation directories
|
# figure out installation directories
|
||||||
#
|
#
|
||||||
|
@ -699,6 +734,14 @@ else
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$_build_sqlite" = yes ; then
|
||||||
|
echo_n " SQLite enabled"
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
echo_n " SQLite disabled"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$_build_windowed" = "yes" ; then
|
if test "$_build_windowed" = "yes" ; then
|
||||||
echo_n " Windowed rendering modes enabled"
|
echo_n " Windowed rendering modes enabled"
|
||||||
echo
|
echo
|
||||||
|
@ -752,6 +795,7 @@ YACC="$SRC/yacc"
|
||||||
CHEAT="$SRC/cheat"
|
CHEAT="$SRC/cheat"
|
||||||
LIBPNG="$SRC/libpng"
|
LIBPNG="$SRC/libpng"
|
||||||
ZLIB="$SRC/zlib"
|
ZLIB="$SRC/zlib"
|
||||||
|
SQLITE="$SRC/common/repository/sqlite"
|
||||||
|
|
||||||
INCLUDES="-I$CORE -I$COMMON -I$TV -I$GUI -I$TIA -I$TIA_FRAME_MANAGER"
|
INCLUDES="-I$CORE -I$COMMON -I$TV -I$GUI -I$TIA -I$TIA_FRAME_MANAGER"
|
||||||
|
|
||||||
|
@ -828,6 +872,12 @@ if test "$_build_png" = yes ; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$_build_sqlite" = yes; then
|
||||||
|
DEFINES="$DEFINES -DSQLITE_SUPPORT"
|
||||||
|
MODULES="$MODULES $SQLITE"
|
||||||
|
INCLUDES="$INCLUDES -I$SQLITE"
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$_build_zip" = yes ; then
|
if test "$_build_zip" = yes ; then
|
||||||
DEFINES="$DEFINES -DZIP_SUPPORT"
|
DEFINES="$DEFINES -DZIP_SUPPORT"
|
||||||
if test "$_zlib" = yes ; then
|
if test "$_zlib" = yes ; then
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// SSSS tt lll lll
|
||||||
|
// SS SS tt ll ll
|
||||||
|
// SS tttttt eeee ll ll aaaa
|
||||||
|
// SSSS tt ee ee ll ll aa
|
||||||
|
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||||
|
// SS SS tt ee ll ll aa aa
|
||||||
|
// SSSS ttt eeeee llll llll aaaaa
|
||||||
|
//
|
||||||
|
// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
|
||||||
|
// and the Stella Team
|
||||||
|
//
|
||||||
|
// See the file "License.txt" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#include <sqlite3.h>
|
||||||
|
|
||||||
|
#include "KeyValueRepositorySqlite.hxx"
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
KeyValueRepositorySqlite::KeyValueRepositorySqlite(
|
||||||
|
const string& databaseDirectory,
|
||||||
|
const string& databaseName
|
||||||
|
)
|
||||||
|
{}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
KeyValueRepositorySqlite::~KeyValueRepositorySqlite()
|
||||||
|
{}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
std::map<string, Variant> KeyValueRepositorySqlite::load()
|
||||||
|
{
|
||||||
|
std::map<string, Variant> values;
|
||||||
|
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void KeyValueRepositorySqlite::save(const std::map<string, Variant>& values)
|
||||||
|
{}
|
|
@ -0,0 +1,36 @@
|
||||||
|
//============================================================================
|
||||||
|
//
|
||||||
|
// SSSS tt lll lll
|
||||||
|
// SS SS tt ll ll
|
||||||
|
// SS tttttt eeee ll ll aaaa
|
||||||
|
// SSSS tt ee ee ll ll aa
|
||||||
|
// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
|
||||||
|
// SS SS tt ee ll ll aa aa
|
||||||
|
// SSSS ttt eeeee llll llll aaaaa
|
||||||
|
//
|
||||||
|
// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
|
||||||
|
// and the Stella Team
|
||||||
|
//
|
||||||
|
// See the file "License.txt" for information on usage and redistribution of
|
||||||
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
|
//============================================================================
|
||||||
|
|
||||||
|
#ifndef KEY_VALUE_REPOSITORY_SQLITE_HXX
|
||||||
|
#define KEY_VALUE_REPOSITORY_SQLITE_HXX
|
||||||
|
|
||||||
|
#include "repository/KeyValueRepository.hxx"
|
||||||
|
|
||||||
|
class KeyValueRepositorySqlite : public KeyValueRepository
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
KeyValueRepositorySqlite(const string& databaseDirectory, const string& databaseName);
|
||||||
|
|
||||||
|
~KeyValueRepositorySqlite();
|
||||||
|
|
||||||
|
virtual std::map<string, Variant> load();
|
||||||
|
|
||||||
|
virtual void save(const std::map<string, Variant>& values);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // KEY_VALUE_REPOSITORY_SQLITE_HXX
|
|
@ -0,0 +1,10 @@
|
||||||
|
MODULE := src/common/repository/sqlite
|
||||||
|
|
||||||
|
MODULE_OBJS := \
|
||||||
|
src/common/repository/sqlite/KeyValueRepositorySqlite.o
|
||||||
|
|
||||||
|
MODULE_DIRS += \
|
||||||
|
src/common/repository/sqlite
|
||||||
|
|
||||||
|
# Include common rules
|
||||||
|
include $(srcdir)/common.rules
|
|
@ -30,6 +30,10 @@
|
||||||
#include "CheatManager.hxx"
|
#include "CheatManager.hxx"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SQLITE_SUPPORT
|
||||||
|
#include "KeyValueRepositorySqlite.hxx"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "FSNode.hxx"
|
#include "FSNode.hxx"
|
||||||
#include "MD5.hxx"
|
#include "MD5.hxx"
|
||||||
#include "Cart.hxx"
|
#include "Cart.hxx"
|
||||||
|
@ -746,10 +750,14 @@ void OSystem::mainLoop()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
shared_ptr<KeyValueRepository> OSystem::createSettingsRepository()
|
shared_ptr<KeyValueRepository> OSystem::createSettingsRepository()
|
||||||
{
|
{
|
||||||
if (myConfigFile.empty())
|
#ifdef SQLITE_SUPPORT
|
||||||
return make_shared<KeyValueRepositoryNoop>();
|
return make_shared<KeyValueRepositorySqlite>(myBaseDir, "settings");
|
||||||
|
#else
|
||||||
|
if (myConfigFile.empty())
|
||||||
|
return make_shared<KeyValueRepositoryNoop>();
|
||||||
|
|
||||||
return make_shared<KeyValueRepositoryConfigfile>(myConfigFile);
|
return make_shared<KeyValueRepositoryConfigfile>(myConfigFile);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
Loading…
Reference in New Issue