diff --git a/src/gui/lua/Makefile.am b/src/gui/lua/Makefile.am index 187e5af19..a04fca60e 100644 --- a/src/gui/lua/Makefile.am +++ b/src/gui/lua/Makefile.am @@ -38,3 +38,19 @@ libneutrino_gui_lua_a_SOURCES = \ lua_messagebox.cpp \ lua_misc.cpp \ lua_video.cpp + +# the continuous changes of LUA_API_VERSION_* in luainstance.h +# are not only of questionable usefulness, but they also cause +# rebuilds all over the place, even though it is only used in +# 2(!) source files. So split out those two definitions into an +# autogenerated separate file, they are #if 0'ed in luainstance.h +# already and the rest is dealt with via ccache... +BUILT_SOURCES = lua_api_version.h +lua_api_version.h: luainstance.h + @rm -f $@ + grep '^#define.*LUA_API' $(srcdir)/luainstance.h > $@ + +noinst_HEADERS = lua_api_version.h + +# so that lua_api_version.h can be found... +AM_CPPFLAGS += -I$(builddir) diff --git a/src/gui/lua/lua_misc.cpp b/src/gui/lua/lua_misc.cpp index 072b44802..b82e49205 100644 --- a/src/gui/lua/lua_misc.cpp +++ b/src/gui/lua/lua_misc.cpp @@ -33,6 +33,9 @@ #include "luainstance.h" #include "lua_misc.h" +/* autogenerated from luainstance.h */ +#include "lua_api_version.h" + CLuaInstMisc* CLuaInstMisc::getInstance() { static CLuaInstMisc* LuaInstMisc = NULL; diff --git a/src/gui/lua/luainstance.cpp b/src/gui/lua/luainstance.cpp index 5ac2c986d..51e1912b3 100644 --- a/src/gui/lua/luainstance.cpp +++ b/src/gui/lua/luainstance.cpp @@ -48,6 +48,9 @@ #include "lua_misc.h" #include "lua_video.h" +/* autogenerated from luainstance.h */ +#include "lua_api_version.h" + extern CPictureViewer * g_PicViewer; static void set_lua_variables(lua_State *L) diff --git a/src/gui/lua/luainstance.h b/src/gui/lua/luainstance.h index e2bf16a8d..4b4d0fe41 100644 --- a/src/gui/lua/luainstance.h +++ b/src/gui/lua/luainstance.h @@ -30,8 +30,10 @@ extern "C" { #include "luainstance_helpers.h" +#if 0 #define LUA_API_VERSION_MAJOR 1 #define LUA_API_VERSION_MINOR 27 +#endif /* inspired by Steve Kemp http://www.steve.org.uk/ */ class CLuaInstance