diff options
-rwxr-xr-x | configure | 36 | ||||
-rw-r--r-- | engines/configure.engines | 2 |
2 files changed, 32 insertions, 6 deletions
@@ -72,6 +72,7 @@ add_engine() { set_var _engine_${1}_build "${3}" set_var _engine_${1}_build_default "${3}" set_var _engine_${1}_subengines "${4}" + set_var _engine_${1}_deps "${5}" for sub in ${4}; do set_var _engine_${sub}_sub "yes" done @@ -464,6 +465,11 @@ get_engine_subengines() { get_var _engine_$1_subengines } +# Get the dependencies +get_engine_dependencies() { + get_var _engine_$1_deps +} + # Ask if this is a subengine get_engine_sub() { sub=`get_var _engine_$1_sub` @@ -532,6 +538,28 @@ engine_disable() { fi } +# Check whether the engine's dependencies are met +# If that is not the case disable the engine +check_engine_deps() { + unmet_deps="" + + # Check whether the engine is enabled + if test `get_engine_build $1` = yes ; then + # Collect unmet dependencies + for dep in `get_engine_dependencies $1`; do + if test `get_var _${dep}` = no ; then + unmet_deps="${unmet_deps}${dep} " + fi + done + + # Check whether there is any unmet dependency + if test -n "$unmet_deps"; then + echo "WARNING: Disabling engine "`get_engine_name $1`" because the following dependencies are unmet: "$unmet_deps + engine_disable $1 + fi + fi +} + # Show the configure help line for a given engine show_engine_help() { name=`get_engine_name $1` @@ -3204,11 +3232,6 @@ fi define_in_config_if_yes "$_png" 'USE_PNG' echo "$_png" -if test `get_engine_build sword25` = yes && test ! "$_png" = yes ; then - echo "...disabling Broken Sword 2.5 engine. PNG is required" - engine_disable sword25 -fi - # # Check for Theora Decoder # @@ -3870,6 +3893,9 @@ sh -c " fi" 2>/dev/null & for engine in $_engines; do + # Check whether all dependencies are available + check_engine_deps $engine + if test "`get_engine_sub $engine`" = "no" ; then # It's a main engine if test `get_engine_build $engine` = no ; then diff --git a/engines/configure.engines b/engines/configure.engines index 8eaee730cc..f88b3fe3e5 100644 --- a/engines/configure.engines +++ b/engines/configure.engines @@ -36,7 +36,7 @@ add_engine sci32 "SCI32 games" no add_engine sky "Beneath a Steel Sky" yes add_engine sword1 "Broken Sword" yes add_engine sword2 "Broken Sword II" yes -add_engine sword25 "Broken Sword 2.5" no +add_engine sword25 "Broken Sword 2.5" no "" "png" add_engine teenagent "Teen Agent" yes add_engine testbed "TestBed: the Testing framework" no add_engine tinsel "Tinsel" yes |