From adcda2361992b7e0f65b2a882c6c33588ea0ed9a260b35158c1ce73e8e40398b Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sun, 11 Oct 2020 09:19:07 +0000 Subject: [PATCH] - Disable Lua bindings as those fail to build OBS-URL: https://build.opensuse.org/package/show/games:tools/slade?expand=0&rev=33 --- ...e-option-to-skip-Lua-components-1175.patch | 231 ++++++++++++++++++ gcc10.patch | 22 ++ slade.changes | 7 + slade.spec | 11 +- 4 files changed, 268 insertions(+), 3 deletions(-) create mode 100644 0001-build-add-cmake-option-to-skip-Lua-components-1175.patch create mode 100644 gcc10.patch diff --git a/0001-build-add-cmake-option-to-skip-Lua-components-1175.patch b/0001-build-add-cmake-option-to-skip-Lua-components-1175.patch new file mode 100644 index 0000000..a618942 --- /dev/null +++ b/0001-build-add-cmake-option-to-skip-Lua-components-1175.patch @@ -0,0 +1,231 @@ +From a54f12b4c29e949458949d5bede2f74b1aa8a34a Mon Sep 17 00:00:00 2001 +From: jengelh +Date: Mon, 29 Jun 2020 03:43:01 +0200 +Subject: [PATCH] build: add cmake option to skip Lua components (#1175) + +sol.hpp has a lot of templates which, when building with -g +-fsanitize=address -fsanitize=undefined, incur long compile time and +high memory usage (~8500MB) [applies to Scripting/Export/Archive.cpp +and Scripting/Export/Graphics.cpp]. + +Add a cmake option so I can skip building some parts and focus on +the rest. + +Co-authored-by: Simon Judd +--- + src/Application/App.cpp | 8 ++++++++ + src/CMakeLists.txt | 11 ++++++++++- + src/MainEditor/UI/ArchivePanel.cpp | 10 ++++++++++ + src/MainEditor/UI/MainWindow.cpp | 2 ++ + src/MapEditor/UI/MapEditorWindow.cpp | 6 ++++++ + 5 files changed, 36 insertions(+), 1 deletion(-) + +Index: SLADE-3.1.12/src/Application/App.cpp +=================================================================== +--- SLADE-3.1.12.orig/src/Application/App.cpp ++++ SLADE-3.1.12/src/Application/App.cpp +@@ -450,8 +450,10 @@ bool App::init(vector& args, dou + SAction::setBaseWxId(26000); + SAction::initActions(); + ++#ifdef USE_LUA + // Init lua + Lua::init(); ++#endif + + // Init UI + UI::init(ui_scale); +@@ -515,8 +517,10 @@ bool App::init(vector& args, dou + Log::info("Loading game configurations"); + Game::init(); + ++#ifdef USE_LUA + // Init script manager + ScriptManager::init(); ++#endif + + // Show the main window + MainEditor::windowWx()->Show(true); +@@ -644,8 +648,10 @@ void App::exit(bool save_config) + // Save custom special presets + Game::saveCustomSpecialPresets(); + ++#ifdef USE_LUA + // Save custom scripts + ScriptManager::saveUserScripts(); ++#endif + } + + // Close all open archives +@@ -666,8 +672,10 @@ void App::exit(bool save_config) + files = temp.GetNext(&filename); + } + ++#ifdef USE_LUA + // Close lua + Lua::close(); ++#endif + + // Close DUMB + dumb_exit(); +Index: SLADE-3.1.12/src/CMakeLists.txt +=================================================================== +--- SLADE-3.1.12.orig/src/CMakeLists.txt ++++ SLADE-3.1.12/src/CMakeLists.txt +@@ -105,6 +105,9 @@ find_package(OpenGL REQUIRED) + find_package(GLEW REQUIRED) + find_package(Freetype REQUIRED) + find_package(CURL REQUIRED) ++if (NOT NO_LUA) ++ find_package(Lua REQUIRED) ++endif() + include_directories( + ${FREEIMAGE_INCLUDE_DIR} + ${SFML_INCLUDE_DIR} +@@ -133,6 +136,7 @@ endif () + + set(SLADE_SOURCES + ) ++set(SLADE_SCRIPTING_SOURCES) + # Don't include external libraries here as they should be compiled separately + file(GLOB_RECURSE SLADE_SOURCES + Application/*.cpp +@@ -147,9 +151,14 @@ file(GLOB_RECURSE SLADE_SOURCES + OpenGL/*.cpp + UI/*.cpp + Utility/*.cpp +- Scripting/*.cpp + TextEditor/*.cpp + ) ++if (NOT NO_LUA) ++ file(GLOB_RECURSE SLADE_SCRIPTING_SOURCES Scripting/*.cpp) ++ set(SLADE_SOURCES ${SLADE_SOURCES} ${SLADE_SCRIPTING_SOURCES}) ++ ADD_DEFINITIONS(-DUSE_LUA) ++else () ++endif () + set(SLADE_HEADERS + ) + file(GLOB_RECURSE SLADE_HEADERS *.h *.hpp) +Index: SLADE-3.1.12/src/MainEditor/UI/ArchivePanel.cpp +=================================================================== +--- SLADE-3.1.12.orig/src/MainEditor/UI/ArchivePanel.cpp ++++ SLADE-3.1.12/src/MainEditor/UI/ArchivePanel.cpp +@@ -522,7 +522,9 @@ void ArchivePanel::addMenus() + SAction::fromId("arch_replace_maps")->addToMenu(menu_clean); + menu_archive->AppendSubMenu(menu_clean, "&Maintenance"); + auto menu_scripts = new wxMenu(); ++#ifdef USE_LUA + ScriptManager::populateEditorScriptMenu(menu_scripts, ScriptManager::ScriptType::Archive, "arch_script"); ++#endif + menu_archive->AppendSubMenu(menu_scripts, "&Run Script"); + } + if (!menu_entry) +@@ -546,7 +548,9 @@ void ArchivePanel::addMenus() + menu_entry->AppendSeparator(); + SAction::fromId("arch_entry_bookmark")->addToMenu(menu_entry); + auto menu_scripts = new wxMenu(); ++#ifdef USE_LUA + ScriptManager::populateEditorScriptMenu(menu_scripts, ScriptManager::ScriptType::Entry, "arch_entry_script"); ++#endif + menu_entry->AppendSubMenu(menu_scripts, "&Run Script"); + } + +@@ -3189,9 +3193,11 @@ bool ArchivePanel::handleAction(string i + dlg.ShowModal(); + } + ++#ifdef USE_LUA + // Archive->Scripts->... + else if (id == "arch_script") + ScriptManager::runArchiveScript(archive_, wx_id_offset); ++#endif + + + // ------------------------------------------------------------------------ +@@ -3269,9 +3275,11 @@ bool ArchivePanel::handleAction(string i + else if (id == "arch_entry_openext") + openEntryExternal(); + ++#ifdef USE_LUA + // Entry->Run Script + else if (id == "arch_entry_script") + ScriptManager::runEntryScript(entry_list_->getSelectedEntries(), wx_id_offset, MainEditor::windowWx()); ++#endif + + + // Context menu actions +@@ -3785,6 +3793,7 @@ void ArchivePanel::onEntryListRightClick + #endif + } + ++#ifdef USE_LUA + // Entry scripts + if (!ScriptManager::editorScripts(ScriptManager::ScriptType::Entry).empty()) + { +@@ -3793,6 +3802,7 @@ void ArchivePanel::onEntryListRightClick + context.AppendSeparator(); + context.AppendSubMenu(menu_scripts, "Run &Script"); + } ++#endif + + // Popup the context menu + PopupMenu(&context); +Index: SLADE-3.1.12/src/MainEditor/UI/MainWindow.cpp +=================================================================== +--- SLADE-3.1.12.orig/src/MainEditor/UI/MainWindow.cpp ++++ SLADE-3.1.12/src/MainEditor/UI/MainWindow.cpp +@@ -661,12 +661,14 @@ bool MainWindow::handleAction(string id) + if (id == "main_showstartpage") + openStartPageTab(); + ++#ifdef USE_LUA + // Tools->Run Script + if (id == "main_runscript") + { + ScriptManager::open(); + return true; + } ++#endif + + // Help->About + if (id == "main_about") +Index: SLADE-3.1.12/src/MapEditor/UI/MapEditorWindow.cpp +=================================================================== +--- SLADE-3.1.12.orig/src/MapEditor/UI/MapEditorWindow.cpp ++++ SLADE-3.1.12/src/MapEditor/UI/MapEditorWindow.cpp +@@ -269,7 +269,9 @@ void MapEditorWindow::setupMenu() + // Tools menu + wxMenu* menu_tools = new wxMenu(""); + menu_scripts_ = new wxMenu(); ++#ifdef USE_LUA + ScriptManager::populateEditorScriptMenu(menu_scripts_, ScriptManager::ScriptType::Map, "mapw_script"); ++#endif + menu_tools->AppendSubMenu(menu_scripts_, "Run Script"); + SAction::fromId("mapw_runscript")->addToMenu(menu_tools); + menu->Append(menu_tools, "&Tools"); +@@ -1136,7 +1138,9 @@ void MapEditorWindow::reloadScriptsMenu( + while (menu_scripts_->FindItemByPosition(0)) + menu_scripts_->Delete(menu_scripts_->FindItemByPosition(0)); + ++#ifdef USE_LUA + ScriptManager::populateEditorScriptMenu(menu_scripts_, ScriptManager::ScriptType::Map, "mapw_script"); ++#endif + } + + // ---------------------------------------------------------------------------- +@@ -1436,6 +1440,7 @@ bool MapEditorWindow::handleAction(strin + return true; + } + ++#ifdef USE_LUA + // Tools->Run Script + else if (id == "mapw_script") + { +@@ -1449,6 +1454,7 @@ bool MapEditorWindow::handleAction(strin + ScriptManager::open(); + return true; + } ++#endif + + return false; + } diff --git a/gcc10.patch b/gcc10.patch new file mode 100644 index 0000000..673e53b --- /dev/null +++ b/gcc10.patch @@ -0,0 +1,22 @@ +--- + src/External/sol/sol.hpp | 2 ++ + 1 file changed, 2 insertions(+) + +Index: SLADE-3.1.12/src/External/sol/sol.hpp +=================================================================== +--- SLADE-3.1.12.orig/src/External/sol/sol.hpp ++++ SLADE-3.1.12/src/External/sol/sol.hpp +@@ -4537,11 +4537,13 @@ namespace sol { + return pusher>{}.push(L, std::forward(t), std::forward(args)...); + } + ++#if 0 + // overload allows to use a pusher of a specific type, but pass in any kind of args + template::value>> + inline int push(lua_State* L, Arg&& arg, Args&&... args) { + return pusher>{}.push(L, std::forward(arg), std::forward(args)...); + } ++#endif + + template + inline int push_reference(lua_State* L, T&& t, Args&&... args) { diff --git a/slade.changes b/slade.changes index be85145..dae0559 100644 --- a/slade.changes +++ b/slade.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Oct 11 09:18:41 UTC 2020 - Jan Engelhardt + +- Disable Lua bindings as those fail to build +- Add 0001-build-add-cmake-option-to-skip-Lua-components-1175.patch + for Factory. + ------------------------------------------------------------------- Sun Jun 28 10:44:36 UTC 2020 - Jan Engelhardt diff --git a/slade.spec b/slade.spec index 2dd6343..6503eb2 100644 --- a/slade.spec +++ b/slade.spec @@ -31,12 +31,13 @@ Patch2: wx.diff Patch3: clzma.diff Patch4: 0001-build-allow-deactivating-the-crash-handler-at-build-.patch Patch10: disable_sse.patch +Patch11: 0001-build-add-cmake-option-to-skip-Lua-components-1175.patch # slade 3.2 will need gcc-c++>=8 and pkgconfig(fmt)>=6 BuildRequires: ImageMagick BuildRequires: cmake >= 3.1 BuildRequires: freeimage-devel BuildRequires: gcc-c++ >= 6 -BuildRequires: pkgconfig +BuildRequires: pkg-config BuildRequires: strip-nondeterminism BuildRequires: update-desktop-files BuildRequires: wxWidgets-3_0-devel @@ -63,13 +64,17 @@ from/to other generic formats such as PNG. %ifnarch %ix86 x86_64 %patch10 -p0 %endif +%if 0%{?suse_version} >= 1550 +%patch -P 11 -p1 +%endif %build %define _lto_cflags %nil %cmake -DNO_WEBVIEW=ON -DWX_GTK3=OFF -DNO_CRASHHANDLER=ON \ -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="%optflags" \ - -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="%optflags" -make %{?_smp_mflags} + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="%optflags" \ + -DNO_LUA:BOOL=TRUE +%cmake_build %install strip-nondeterminism build/slade.pk3