GLK: Remove sub-engine enablement

As with the Ultima engine, it's simpler to just have a single
enablement for the entire Glk engine
This commit is contained in:
Paul Gilbert 2020-05-17 18:20:13 -07:00
parent 384a1753f6
commit 2393b5460f
3 changed files with 31 additions and 316 deletions

View File

@ -1,18 +1,3 @@
# This file is included from the main "configure" script
# add_engine [name] [desc] [build-by-default] [subengines] [base games] [deps]
add_engine glk "Glk Interactive Fiction games" no "glk_adrift glk_advsys glk_agt glk_alan2 glk_alan3 glk_archetype glk_frotz glk_glulxe glk_hugo glk_jacl glk_level9 glk_magnetic glk_quest glk_scott glk_tads" "Base" "16bit freetype2 jpeg png"
add_engine glk_adrift "ADRIFT" no
add_engine glk_advsys "AdvSys" no
add_engine glk_agt "AGT" no
add_engine glk_alan2 "Alan2" no
add_engine glk_alan3 "Alan3" no
add_engine glk_archetype "Archetype" no
add_engine glk_frotz "Frotz" no
add_engine glk_glulxe "Glulxe" no
add_engine glk_hugo "Hugo" no
add_engine glk_jacl "JACL" no
add_engine glk_level9 "Level9" no
add_engine glk_magnetic "Magnetic" no
add_engine glk_quest "Quest" no
add_engine glk_scott "Scott" no
add_engine glk_tads "TADS" no
add_engine glk "Glk Interactive Fiction games" no "" "" "16bit freetype2 jpeg png"

View File

@ -23,82 +23,37 @@
#include "glk/glk.h"
#include "glk/detection.h"
#include "glk/quetzal.h"
#ifdef ENABLE_GLK_ADRIFT
#include "glk/adrift/detection.h"
#include "glk/adrift/adrift.h"
#endif
#ifdef ENABLE_GLK_ADVSYS
#include "glk/advsys/detection.h"
#include "glk/advsys/advsys.h"
#endif
#ifdef ENABLE_GLK_AGT
#include "glk/agt/detection.h"
#include "glk/agt/agt.h"
#endif
#ifdef ENABLE_GLK_ALAN2
#include "glk/alan2/detection.h"
#include "glk/alan2/alan2.h"
#endif
#ifdef ENABLE_GLK_ALAN3
#include "glk/alan3/detection.h"
#include "glk/alan3/alan3.h"
#endif
#ifdef ENABLE_GLK_ARCHETYPE
#include "glk/archetype/archetype.h"
#include "glk/archetype/detection.h"
#endif
#ifdef ENABLE_GLK_FROTZ
#include "glk/frotz/detection.h"
#include "glk/frotz/frotz.h"
#endif
#ifdef ENABLE_GLK_GLULXE
#include "glk/glulxe/detection.h"
#include "glk/glulxe/glulxe.h"
#endif
#ifdef ENABLE_GLK_HUGO
#include "glk/hugo/detection.h"
#include "glk/hugo/hugo.h"
#endif
#ifdef ENABLE_GLK_JACL
#include "glk/jacl/detection.h"
#include "glk/jacl/jacl.h"
#endif
#ifdef ENABLE_GLK_LEVEL9
#include "glk/level9/detection.h"
#include "glk/level9/level9.h"
#endif
#ifdef ENABLE_GLK_MAGNETIC
#include "glk/magnetic/detection.h"
#include "glk/magnetic/magnetic.h"
#endif
#ifdef ENABLE_GLK_QUEST
#include "glk/quest/detection.h"
#include "glk/quest/quest.h"
#endif
#ifdef ENABLE_GLK_SCOTT
#include "glk/scott/detection.h"
#include "glk/scott/scott.h"
#endif
#ifdef ENABLE_GLK_TADS
#include "glk/tads/detection.h"
#include "glk/tads/tads2/tads2.h"
#include "glk/tads/tads3/tads3.h"
#endif
#include "base/plugins.h"
#include "common/md5.h"
@ -211,71 +166,26 @@ Common::Error GlkMetaEngine::createInstance(OSystem *syst, Engine **engine) cons
// Create the correct engine
*engine = nullptr;
#ifdef ENABLE_GLK_ADRIFT
if ((*engine = create<Glk::Adrift::AdriftMetaEngine, Glk::Adrift::Adrift>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_ADVSYS
if ((*engine = create<Glk::AdvSys::AdvSysMetaEngine, Glk::AdvSys::AdvSys>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_AGT
if ((*engine = create<Glk::AGT::AGTMetaEngine, Glk::AGT::AGT>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_ALAN2
if ((*engine = create<Glk::Alan2::Alan2MetaEngine, Glk::Alan2::Alan2>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_ALAN3
if ((*engine = create<Glk::Alan3::Alan3MetaEngine, Glk::Alan3::Alan3>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_ARCHETYPE
if ((*engine = create<Glk::Archetype::ArchetypeMetaEngine, Glk::Archetype::Archetype>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_FROTZ
if ((*engine = create<Glk::Frotz::FrotzMetaEngine, Glk::Frotz::Frotz>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_GLULXE
if ((*engine = create<Glk::Glulxe::GlulxeMetaEngine, Glk::Glulxe::Glulxe>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_HUGO
if ((*engine = create<Glk::Hugo::HugoMetaEngine, Glk::Hugo::Hugo>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_JACL
if ((*engine = create<Glk::JACL::JACLMetaEngine, Glk::JACL::JACL>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_LEVEL9
if ((*engine = create<Glk::Level9::Level9MetaEngine, Glk::Level9::Level9>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_MAGNETIC
if ((*engine = create<Glk::Magnetic::MagneticMetaEngine, Glk::Magnetic::Magnetic>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_QUEST
if ((*engine = create<Glk::Quest::QuestMetaEngine, Glk::Quest::Quest>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_SCOTT
if ((*engine = create<Glk::Scott::ScottMetaEngine, Glk::Scott::Scott>(syst, gameDesc)) != nullptr) {}
else
#endif
#ifdef ENABLE_GLK_TADS
if ((td = Glk::TADS::TADSMetaEngine::findGame(gameDesc._gameId.c_str()))._description) {
else if ((*engine = create<Glk::AdvSys::AdvSysMetaEngine, Glk::AdvSys::AdvSys>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::AGT::AGTMetaEngine, Glk::AGT::AGT>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Alan2::Alan2MetaEngine, Glk::Alan2::Alan2>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Alan3::Alan3MetaEngine, Glk::Alan3::Alan3>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Archetype::ArchetypeMetaEngine, Glk::Archetype::Archetype>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Frotz::FrotzMetaEngine, Glk::Frotz::Frotz>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Glulxe::GlulxeMetaEngine, Glk::Glulxe::Glulxe>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Hugo::HugoMetaEngine, Glk::Hugo::Hugo>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::JACL::JACLMetaEngine, Glk::JACL::JACL>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Level9::Level9MetaEngine, Glk::Level9::Level9>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Magnetic::MagneticMetaEngine, Glk::Magnetic::Magnetic>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Quest::QuestMetaEngine, Glk::Quest::Quest>(syst, gameDesc)) != nullptr) {}
else if ((*engine = create<Glk::Scott::ScottMetaEngine, Glk::Scott::Scott>(syst, gameDesc)) != nullptr) {}
else if ((td = Glk::TADS::TADSMetaEngine::findGame(gameDesc._gameId.c_str()))._description) {
if (td._options & Glk::TADS::OPTION_TADS3)
*engine = new Glk::TADS::TADS3::TADS3(syst, gameDesc);
else
*engine = new Glk::TADS::TADS2::TADS2(syst, gameDesc);
} else
#endif
{
} else {
return Common::kNoGameDataFoundError;
}
@ -306,51 +216,21 @@ Common::String GlkMetaEngine::findFileByGameId(const Common::String &gameId) con
PlainGameList GlkMetaEngine::getSupportedGames() const {
PlainGameList list;
#ifdef ENABLE_GLK_ADRIFT
Glk::Adrift::AdriftMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_ADVSYS
Glk::AdvSys::AdvSysMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_AGT
Glk::AGT::AGTMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_ALAN2
Glk::Alan2::Alan2MetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_ALAN3
Glk::Alan3::Alan3MetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_ARCHETYPE
Glk::Archetype::ArchetypeMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_FROTZ
Glk::Frotz::FrotzMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_GLULXE
Glk::Glulxe::GlulxeMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_HUGO
Glk::Hugo::HugoMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_JACL
Glk::JACL::JACLMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_LEVEL9
Glk::Level9::Level9MetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_MAGNETIC
Glk::Magnetic::MagneticMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_QUEST
Glk::Quest::QuestMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_SCOTT
Glk::Scott::ScottMetaEngine::getSupportedGames(list);
#endif
#ifdef ENABLE_GLK_TADS
Glk::TADS::TADSMetaEngine::getSupportedGames(list);
#endif
return list;
}
@ -360,51 +240,21 @@ PlainGameList GlkMetaEngine::getSupportedGames() const {
if (gd##SUBENGINE._description) return gd##SUBENGINE
PlainGameDescriptor GlkMetaEngine::findGame(const char *gameId) const {
#ifdef ENABLE_GLK_ADRIFT
FIND_GAME(Adrift);
#endif
#ifdef ENABLE_GLK_ADVSYS
FIND_GAME(AdvSys);
#endif
#ifdef ENABLE_GLK_ALAN2
FIND_GAME(Alan2);
#endif
#ifdef ENABLE_GLK_AGT
FIND_GAME(AGT);
#endif
#ifdef ENABLE_GLK_ALAN3
FIND_GAME(Alan3);
#endif
#ifdef ENABLE_GLK_ARCHETYPE
FIND_GAME(Archetype);
#endif
#ifdef ENABLE_GLK_FROTZ
FIND_GAME(Frotz);
#endif
#ifdef ENABLE_GLK_GLULXE
FIND_GAME(Glulxe);
#endif
#ifdef ENABLE_GLK_HUGO
FIND_GAME(Hugo);
#endif
#ifdef ENABLE_GLK_JACL
FIND_GAME(JACL);
#endif
#ifdef ENABLE_GLK_LEVEL9
FIND_GAME(Level9);
#endif
#ifdef ENABLE_GLK_MAGNETIC
FIND_GAME(Magnetic);
#endif
#ifdef ENABLE_GLK_QUEST
FIND_GAME(Quest);
#endif
#ifdef ENABLE_GLK_SCOTT
FIND_GAME(Scott);
#endif
#ifdef ENABLE_GLK_TADS
FIND_GAME(TADS);
#endif
return PlainGameDescriptor();
}
@ -416,102 +266,42 @@ DetectedGames GlkMetaEngine::detectGames(const Common::FSList &fslist) const {
detectClashes();
DetectedGames detectedGames;
#ifdef ENABLE_GLK_ADRIFT
Glk::Adrift::AdriftMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_ADVSYS
Glk::AdvSys::AdvSysMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_AGT
Glk::AGT::AGTMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_ALAN2
Glk::Alan2::Alan2MetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_ALAN3
Glk::Alan3::Alan3MetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_ARCHETYPE
Glk::Archetype::ArchetypeMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_FROTZ
Glk::Frotz::FrotzMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_GLULXE
Glk::Glulxe::GlulxeMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_HUGO
Glk::Hugo::HugoMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_JACL
Glk::JACL::JACLMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_LEVEL9
Glk::Level9::Level9MetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_MAGNETIC
Glk::Magnetic::MagneticMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_QUEST
Glk::Quest::QuestMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_SCOTT
Glk::Scott::ScottMetaEngine::detectGames(fslist, detectedGames);
#endif
#ifdef ENABLE_GLK_TADS
Glk::TADS::TADSMetaEngine::detectGames(fslist, detectedGames);
#endif
return detectedGames;
}
void GlkMetaEngine::detectClashes() const {
Common::StringMap map;
#ifdef ENABLE_GLK_ADRIFT
Glk::Adrift::AdriftMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_ADVSYS
Glk::AdvSys::AdvSysMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_AGT
Glk::AGT::AGTMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_ALAN2
Glk::Alan2::Alan2MetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_ALAN3
Glk::Alan3::Alan3MetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_ARCHETYPE
Glk::Archetype::ArchetypeMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_FROTZ
Glk::Frotz::FrotzMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_GLULXE
Glk::Glulxe::GlulxeMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_HUGO
Glk::Hugo::HugoMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_JACL
Glk::JACL::JACLMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_LEVEL9
Glk::Level9::Level9MetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_MAGNETIC
Glk::Magnetic::MagneticMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_QUEST
Glk::Quest::QuestMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_SCOTT
Glk::Scott::ScottMetaEngine::detectClashes(map);
#endif
#ifdef ENABLE_GLK_TADS
Glk::TADS::TADSMetaEngine::detectClashes(map);
#endif
}
SaveStateList GlkMetaEngine::listSaves(const char *target) const {

View File

@ -26,10 +26,7 @@ MODULE_OBJS := \
window_graphics.o \
window_pair.o \
window_text_buffer.o \
window_text_grid.o
ifdef ENABLE_GLK_ADRIFT
MODULE_OBJS += \
window_text_grid.o \
adrift/adrift.o \
adrift/detection.o \
adrift/os_glk.o \
@ -57,20 +54,12 @@ MODULE_OBJS += \
adrift/serialization.o \
adrift/sxfile.o \
adrift/sxglob.o \
adrift/sxutils.o
endif
ifdef ENABLE_GLK_ADVSYS
MODULE_OBJS += \
adrift/sxutils.o \
advsys/advsys.o \
advsys/detection.o \
advsys/game.o \
advsys/glk_interface.o \
advsys/vm.o
endif
ifdef ENABLE_GLK_AGT
MODULE_OBJS += \
advsys/vm.o \
agt/agil.o \
agt/agt.o \
agt/agtread.o \
@ -91,11 +80,7 @@ MODULE_OBJS += \
agt/savegame.o \
agt/token.o \
agt/util.o \
agt/vars.o
endif
ifdef ENABLE_GLK_ALAN2
MODULE_OBJS += \
agt/vars.o \
alan2/alan2.o \
alan2/detection.o \
alan2/alan_version.o \
@ -112,11 +97,7 @@ MODULE_OBJS += \
alan2/rules.o \
alan2/stack.o \
alan2/sysdep.o \
alan2/types.o
endif
ifdef ENABLE_GLK_ALAN3
MODULE_OBJS += \
alan2/types.o \
alan3/acode.o \
alan3/act.o \
alan3/actor.o \
@ -164,11 +145,7 @@ MODULE_OBJS += \
alan3/syserr.o \
alan3/types.o \
alan3/utils.o \
alan3/word.o
endif
ifdef ENABLE_GLK_ARCHETYPE
MODULE_OBJS += \
alan3/word.o \
archetype/archetype.o \
archetype/array.o \
archetype/crypt.o \
@ -188,11 +165,7 @@ MODULE_OBJS += \
archetype/string.o \
archetype/sys_object.o \
archetype/timestamp.o \
archetype/token.o
endif
ifdef ENABLE_GLK_FROTZ
MODULE_OBJS += \
archetype/token.o \
frotz/bitmap_font.o \
frotz/config.o \
frotz/detection.o \
@ -216,11 +189,7 @@ MODULE_OBJS += \
frotz/quetzal.o \
frotz/screen.o \
frotz/sound_folder.o \
frotz/windows.o
endif
ifdef ENABLE_GLK_GLULXE
MODULE_OBJS += \
frotz/windows.o \
glulxe/accel.o \
glulxe/detection.o \
glulxe/exec.o \
@ -234,11 +203,7 @@ MODULE_OBJS += \
glulxe/search.o \
glulxe/serial.o \
glulxe/string.o \
glulxe/vm.o
endif
ifdef ENABLE_GLK_HUGO
MODULE_OBJS += \
glulxe/vm.o \
hugo/detection.o \
hugo/heexpr.o \
hugo/heglk.o \
@ -251,11 +216,7 @@ MODULE_OBJS += \
hugo/heset.o \
hugo/htokens.o \
hugo/hugo.o \
hugo/stringfn.o
endif
ifdef ENABLE_GLK_JACL
MODULE_OBJS += \
hugo/stringfn.o \
jacl/detection.o \
jacl/display.o \
jacl/encapsulate.o \
@ -271,28 +232,16 @@ MODULE_OBJS += \
jacl/logging.o \
jacl/parser.o \
jacl/resolvers.o \
jacl/utils.o
endif
ifdef ENABLE_GLK_LEVEL9
MODULE_OBJS += \
jacl/utils.o \
level9/bitmap.o \
level9/detection.o \
level9/level9.o \
level9/level9_main.o \
level9/os_glk.o
endif
ifdef ENABLE_GLK_MAGNETIC
MODULE_OBJS += \
level9/os_glk.o \
magnetic/detection.o \
magnetic/emu.o \
magnetic/glk.o \
magnetic/magnetic.o
endif
ifdef ENABLE_GLK_QUEST
MODULE_OBJS += \
magnetic/magnetic.o \
quest/detection.o \
quest/geas_file.o \
quest/geas_glk.o \
@ -302,17 +251,9 @@ MODULE_OBJS += \
quest/quest.o \
quest/read_file.o \
quest/string.o \
quest/streams.o
endif
ifdef ENABLE_GLK_SCOTT
MODULE_OBJS += \
quest/streams.o \
scott/detection.o \
scott/scott.o
endif
ifdef ENABLE_GLK_TADS
MODULE_OBJS += \
scott/scott.o \
tads/detection.o \
tads/os_banners.o \
tads/os_buffer.o \
@ -354,7 +295,6 @@ MODULE_OBJS += \
tads/tads2/vocabulary.o \
tads/tads2/vocabulary_parser.o \
tads/tads3/tads3.o
endif
# This module can be built as a plugin
ifeq ($(ENABLE_GLK), DYNAMIC_PLUGIN)