Compile Lua as C++

Co-authored-by: Nerixyz <nerixdev@outlook.de>
This commit is contained in:
Mm2PL 2024-09-04 13:30:08 +02:00
parent f04e7e54e4
commit 58a553cf3f
No known key found for this signature in database
GPG key ID: 94AC9B80EFA15ED9
12 changed files with 46 additions and 64 deletions

View file

@ -1,48 +1,44 @@
project(lua CXX)
#[====[
Updating this list:
remove all listed files
go to line below, ^y2j4j$@" and then reindent the file names
/LUA_SRC
:r!ls lib/lua/src | grep '\.c' | grep -Ev 'lua\.c|onelua\.c' | sed 's#^#src/#'
This list contains all .c files except lua.c and onelua.c
Use the following command from the repository root to get these file:
perl -e 'print s/^lib\/lua\///r . "\n" for grep { /\.c$/ && !/(lua|onelua)\.c$/ } glob "lib/lua/src/*.c"'
#]====]
set(LUA_SRC
"src/lapi.c"
"src/lauxlib.c"
"src/lbaselib.c"
"src/lcode.c"
"src/lcorolib.c"
"src/lctype.c"
"src/ldblib.c"
"src/ldebug.c"
"src/ldo.c"
"src/ldump.c"
"src/lfunc.c"
"src/lgc.c"
"src/linit.c"
"src/liolib.c"
"src/llex.c"
"src/lmathlib.c"
"src/lmem.c"
"src/loadlib.c"
"src/lobject.c"
"src/lopcodes.c"
"src/loslib.c"
"src/lparser.c"
"src/lstate.c"
"src/lstring.c"
"src/lstrlib.c"
"src/ltable.c"
"src/ltablib.c"
"src/ltests.c"
"src/ltm.c"
"src/lua.c"
"src/lundump.c"
"src/lutf8lib.c"
"src/lvm.c"
"src/lzio.c"
src/lapi.c
src/lauxlib.c
src/lbaselib.c
src/lcode.c
src/lcorolib.c
src/lctype.c
src/ldblib.c
src/ldebug.c
src/ldo.c
src/ldump.c
src/lfunc.c
src/lgc.c
src/linit.c
src/liolib.c
src/llex.c
src/lmathlib.c
src/lmem.c
src/loadlib.c
src/lobject.c
src/lopcodes.c
src/loslib.c
src/lparser.c
src/lstate.c
src/lstring.c
src/lstrlib.c
src/ltable.c
src/ltablib.c
src/ltests.c
src/ltm.c
src/lundump.c
src/lutf8lib.c
src/lvm.c
src/lzio.c
)
add_library(lua STATIC ${LUA_SRC})
@ -50,4 +46,10 @@ target_include_directories(lua
PUBLIC
${LUA_INCLUDE_DIRS}
)
set_source_files_properties(${LUA_SRC} PROPERTIES LANGUAGE C)
set_target_properties(${liblua} PROPERTIES
LANGUAGE CXX
LINKER_LANGUAGE CXX
CXX_STANDARD 98
CXX_EXTENSIONS TRUE
)
set_source_files_properties(${LUA_SRC} PROPERTIES LANGUAGE CXX)

View file

@ -9,11 +9,9 @@
# include "messages/MessageBuilder.hpp"
# include "providers/twitch/TwitchIrcServer.hpp"
extern "C" {
# include <lauxlib.h>
# include <lua.h>
# include <lualib.h>
}
# include <QFileInfo>
# include <QLoggingCategory>
# include <QTextCodec>

View file

@ -2,9 +2,7 @@
#ifdef CHATTERINO_HAVE_PLUGINS
extern "C" {
# include <lua.h>
}
# include "controllers/plugins/LuaUtilities.hpp"
# include <QString>

View file

@ -7,10 +7,8 @@
# include "controllers/plugins/api/ChannelRef.hpp"
# include "controllers/plugins/LuaAPI.hpp"
extern "C" {
# include <lauxlib.h>
# include <lua.h>
}
# include <climits>
# include <cstdlib>

View file

@ -4,10 +4,8 @@
# include "common/QLogging.hpp"
extern "C" {
# include <lua.h>
# include <lualib.h>
}
# include <magic_enum/magic_enum.hpp>
# include <QList>

View file

@ -7,9 +7,7 @@
# include "controllers/plugins/PluginPermission.hpp"
# include "util/QMagicEnum.hpp"
extern "C" {
# include <lua.h>
}
# include <magic_enum/magic_enum.hpp>
# include <QJsonArray>
# include <QJsonObject>

View file

@ -17,11 +17,9 @@
# include "singletons/Paths.hpp"
# include "singletons/Settings.hpp"
extern "C" {
# include <lauxlib.h>
# include <lua.h>
# include <lualib.h>
}
# include <QJsonDocument>
# include <memory>

View file

@ -9,10 +9,8 @@
# include "providers/twitch/TwitchChannel.hpp"
# include "providers/twitch/TwitchIrcServer.hpp"
extern "C" {
# include <lauxlib.h>
# include <lua.h>
}
# include <cassert>
# include <memory>

View file

@ -10,10 +10,8 @@
# include "controllers/plugins/LuaUtilities.hpp"
# include "util/DebugCount.hpp"
extern "C" {
# include <lauxlib.h>
# include <lua.h>
}
# include <QRandomGenerator>
# include <QUrl>

View file

@ -5,9 +5,8 @@
# include "controllers/plugins/LuaAPI.hpp"
# include "util/DebugCount.hpp"
extern "C" {
# include <lauxlib.h>
}
# include <utility>
namespace chatterino::lua::api {

View file

@ -3,10 +3,9 @@
# include "common/network/NetworkResult.hpp"
# include "controllers/plugins/LuaUtilities.hpp"
# include <memory>
extern "C" {
# include <lua.h>
}
# include <memory>
namespace chatterino {
class PluginController;

View file

@ -5,10 +5,8 @@
# include "controllers/plugins/LuaUtilities.hpp"
# include "controllers/plugins/PluginController.hpp"
extern "C" {
# include <lauxlib.h>
# include <lua.h>
}
# include <cerrno>