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) project(lua CXX)
#[====[ #[====[
Updating this list: This list contains all .c files except lua.c and onelua.c
remove all listed files Use the following command from the repository root to get these file:
go to line below, ^y2j4j$@" and then reindent the file names perl -e 'print s/^lib\/lua\///r . "\n" for grep { /\.c$/ && !/(lua|onelua)\.c$/ } glob "lib/lua/src/*.c"'
/LUA_SRC
:r!ls lib/lua/src | grep '\.c' | grep -Ev 'lua\.c|onelua\.c' | sed 's#^#src/#'
#]====] #]====]
set(LUA_SRC set(LUA_SRC
"src/lapi.c" src/lapi.c
"src/lauxlib.c" src/lauxlib.c
"src/lbaselib.c" src/lbaselib.c
"src/lcode.c" src/lcode.c
"src/lcorolib.c" src/lcorolib.c
"src/lctype.c" src/lctype.c
"src/ldblib.c" src/ldblib.c
"src/ldebug.c" src/ldebug.c
"src/ldo.c" src/ldo.c
"src/ldump.c" src/ldump.c
"src/lfunc.c" src/lfunc.c
"src/lgc.c" src/lgc.c
"src/linit.c" src/linit.c
"src/liolib.c" src/liolib.c
"src/llex.c" src/llex.c
"src/lmathlib.c" src/lmathlib.c
"src/lmem.c" src/lmem.c
"src/loadlib.c" src/loadlib.c
"src/lobject.c" src/lobject.c
"src/lopcodes.c" src/lopcodes.c
"src/loslib.c" src/loslib.c
"src/lparser.c" src/lparser.c
"src/lstate.c" src/lstate.c
"src/lstring.c" src/lstring.c
"src/lstrlib.c" src/lstrlib.c
"src/ltable.c" src/ltable.c
"src/ltablib.c" src/ltablib.c
"src/ltests.c" src/ltests.c
"src/ltm.c" src/ltm.c
"src/lua.c" src/lundump.c
"src/lundump.c" src/lutf8lib.c
"src/lutf8lib.c" src/lvm.c
"src/lvm.c" src/lzio.c
"src/lzio.c"
) )
add_library(lua STATIC ${LUA_SRC}) add_library(lua STATIC ${LUA_SRC})
@ -50,4 +46,10 @@ target_include_directories(lua
PUBLIC PUBLIC
${LUA_INCLUDE_DIRS} ${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 "messages/MessageBuilder.hpp"
# include "providers/twitch/TwitchIrcServer.hpp" # include "providers/twitch/TwitchIrcServer.hpp"
extern "C" {
# include <lauxlib.h> # include <lauxlib.h>
# include <lua.h> # include <lua.h>
# include <lualib.h> # include <lualib.h>
}
# include <QFileInfo> # include <QFileInfo>
# include <QLoggingCategory> # include <QLoggingCategory>
# include <QTextCodec> # include <QTextCodec>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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