Accepting request 841069 from games:tools
- Disable Lua bindings as those fail to build OBS-URL: https://build.opensuse.org/request/show/841069 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/slade?expand=0&rev=11
This commit is contained in:
commit
c870977e9f
231
0001-build-add-cmake-option-to-skip-Lua-components-1175.patch
Normal file
231
0001-build-add-cmake-option-to-skip-Lua-components-1175.patch
Normal file
@ -0,0 +1,231 @@
|
||||
From a54f12b4c29e949458949d5bede2f74b1aa8a34a Mon Sep 17 00:00:00 2001
|
||||
From: jengelh <jengelh@inai.de>
|
||||
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 <sirjuddington@gmail.com>
|
||||
---
|
||||
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<string>& 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<string>& 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;
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
From 519a5a5f87527a344ab04efa0947d5d8e75294e5 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Sun, 28 Jun 2020 12:38:40 +0200
|
||||
Subject: [PATCH] build: allow deactivating the crash handler at build time
|
||||
(#1166)
|
||||
|
||||
SLADE's own crash handler has two problems:
|
||||
|
||||
* it inhibits the generation of a proper crashdump
|
||||
|
||||
* it calls functions that not async-signal safe and/or re-entrant,
|
||||
such as malloc (by way of backtrace(3)), which can lead to a hang
|
||||
when the initial crash happened in malloc,
|
||||
|
||||
Fixes: #1166
|
||||
---
|
||||
COMPILE.md | 1 +
|
||||
src/Application/SLADEWxApp.cpp | 2 +-
|
||||
src/CMakeLists.txt | 4 ++++
|
||||
3 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Application/SLADEWxApp.cpp b/src/Application/SLADEWxApp.cpp
|
||||
index 375f62b8..d9196355 100644
|
||||
--- a/src/Application/SLADEWxApp.cpp
|
||||
+++ b/src/Application/SLADEWxApp.cpp
|
||||
@@ -523,7 +523,7 @@ bool SLADEWxApp::OnInit()
|
||||
#endif
|
||||
|
||||
// Handle exceptions using wxDebug stuff, but only in release mode
|
||||
-#ifdef NDEBUG
|
||||
+#if defined(USE_CRASHHANDLER) && defined(NDEBUG)
|
||||
wxHandleFatalExceptions(true);
|
||||
#endif
|
||||
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 4ce2403d..5eabe4c7 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -132,6 +132,10 @@ if (NOT NO_FLUIDSYNTH)
|
||||
include_directories(${FLUIDSYNTH_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
+if (NOT NO_CRASHHANDLER)
|
||||
+ add_definitions(-DUSE_CRASHHANDLER)
|
||||
+endif ()
|
||||
+
|
||||
set(SLADE_SOURCES
|
||||
)
|
||||
# Don't include external libraries here as they should be compiled separately
|
||||
--
|
||||
2.27.0
|
||||
|
24
clzma.diff
Normal file
24
clzma.diff
Normal file
@ -0,0 +1,24 @@
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: 2020-06-22 21:16:10.343429323 +0200
|
||||
|
||||
Make use of the clzma library in openSUSE.
|
||||
---
|
||||
src/External/CMakeLists.txt | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
Index: SLADE-3.1.12/src/External/CMakeLists.txt
|
||||
===================================================================
|
||||
--- SLADE-3.1.12.orig/src/External/CMakeLists.txt
|
||||
+++ SLADE-3.1.12/src/External/CMakeLists.txt
|
||||
@@ -26,10 +26,9 @@ file(GLOB_RECURSE EXTERNAL_SOURCES
|
||||
*.cxx
|
||||
dumb/*.c
|
||||
lua/*.c
|
||||
- lzma/C/LzmaDec.c
|
||||
${SLADE_HEADERS}
|
||||
)
|
||||
|
||||
add_library(external STATIC ${EXTERNAL_SOURCES})
|
||||
-target_link_libraries(external ${ZLIB_LIBRARY} ${wxWidgets_LIBRARIES})
|
||||
+target_link_libraries(external ${ZLIB_LIBRARY} ${wxWidgets_LIBRARIES} -lclzma)
|
||||
set(EXTERNAL_LIBRARIES external PARENT_SCOPE)
|
@ -1,3 +1,22 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 11 09:18:41 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
- 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 <jengelh@inai.de>
|
||||
|
||||
- Add 0001-build-allow-deactivating-the-crash-handler-at-build-.patch
|
||||
Deactivate the crash handler, because it hangs. Let the kernel
|
||||
generate a standard dump instead.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 22 20:16:13 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
- Add clzma.diff to use system-provided clzma library.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 26 08:26:11 UTC 2020 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
|
28
slade.spec
28
slade.spec
@ -28,16 +28,21 @@ Source2: slade.desktop
|
||||
Source100: slade.appdata.xml
|
||||
Patch1: basepk3.diff
|
||||
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
|
||||
BuildRequires: zip
|
||||
BuildRequires: pkgconfig(clzma)
|
||||
BuildRequires: pkgconfig(fluidsynth)
|
||||
BuildRequires: pkgconfig(ftgl)
|
||||
BuildRequires: pkgconfig(gl)
|
||||
@ -45,24 +50,31 @@ BuildRequires: pkgconfig(glew)
|
||||
BuildRequires: pkgconfig(libcurl)
|
||||
BuildRequires: pkgconfig(sfml-all)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
Provides: bundled(dumb) = 0.9.3
|
||||
|
||||
%description
|
||||
SLADE3 is an editor for Doom-engine based games and source
|
||||
SLADE is an editor for Doom-engine based games and source
|
||||
ports. It has the ability to view, modify, and write many different
|
||||
game-specific formats, and even convert between some of them, or
|
||||
from/to other generic formats such as PNG.
|
||||
|
||||
%prep
|
||||
%setup -q -n SLADE-%version
|
||||
%patch -P 1 -P 2 -p1
|
||||
%patch -P 1 -P 2 -P 3 -P 4 -p1
|
||||
%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
|
||||
make %{?_smp_mflags}
|
||||
%cmake -DNO_WEBVIEW=ON -DWX_GTK3=OFF -DNO_CRASHHANDLER=ON \
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="%optflags" \
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="%optflags" \
|
||||
-DNO_LUA:BOOL=TRUE
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
strip-nondeterminism build/slade.pk3
|
||||
@ -75,10 +87,10 @@ install -Dpm0644 "%name.png" "$b/%_datadir/pixmaps/%name.png"
|
||||
install -Dpm0644 %{SOURCE100} "$b/%_datadir/appdata/%name.appdata.xml"
|
||||
|
||||
pushd misc
|
||||
for txtfile in detect_functions.txt old-simage-formats.txt stuff.txt udmf11.txt \
|
||||
udmf_zdoom.txt usdf.txt usdf_zdoom.txt
|
||||
for txtfile in detect_functions.txt old-simage-formats.txt stuff.txt \
|
||||
udmf11.txt udmf_zdoom.txt usdf.txt usdf_zdoom.txt
|
||||
do
|
||||
install -Dm644 $txtfile "$b/%_datadir/slade3/misc/$txtfile"
|
||||
install -Dm644 "$txtfile" "$b/%_datadir/slade3/misc/$txtfile"
|
||||
done
|
||||
popd
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user