Skip to content

Commit 97779dd

Browse files
committed
Turn Maintainer-only EpisodeBox class into static library
That is now shared with the XTConvert.
1 parent d478c37 commit 97779dd

11 files changed

Lines changed: 149 additions & 29 deletions

File tree

CMakeLists.txt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,6 @@ if(NOT EMSCRIPTEN AND NOT ANDROID)
9797
option(PGE_BUILD_PNG2GIFS "Build the GIFs2PNG utility component" ON)
9898
option(PGE_BUILD_LAZYFIXTOOL "Build the LazyFixTool utility component" ON)
9999
option(PGE_BUILD_PALETTEFILTER "Build the PaletteFilter utility component" ON)
100-
option(PGE_BUILD_XTCONVERT "Build the XTConvert utility component" ON)
101-
102-
if(PGE_BUILD_XTCONVERT)
103-
set(AUDIOCODECS_ENABLE_ENCODERS ON)
104-
set(SDLMIXER_USE_OGG_STB OFF)
105-
endif()
106100
endif()
107101

108102
option(PGE_BUILD_ENGINE "Build the Runtime Engine component" ON)
@@ -113,6 +107,12 @@ if(PGE_ENABLE_QT AND NOT ANDROID AND NOT EMSCRIPTEN)
113107
option(PGE_BUILD_MUSICPLAYER "Build the SDL Mixer X Music Player component (Qt5 required)" ON)
114108
option(PGE_BUILD_MAINTAINER "Build the Maintainer utility component (Qt5 required)" ON)
115109
option(PGE_BUILD_TRANSLATOR "Build the Translator utility component (Qt5 required)" ON)
110+
option(PGE_BUILD_XTCONVERT "Build the XTConvert utility component" ON)
111+
112+
if(PGE_BUILD_XTCONVERT)
113+
set(AUDIOCODECS_ENABLE_ENCODERS ON)
114+
set(SDLMIXER_USE_OGG_STB OFF)
115+
endif()
116116
endif()
117117

118118
if(PGE_STATIC_SDLMIXER)
@@ -146,6 +146,10 @@ if(PGE_ENABLE_STATIC_QT AND "${CMAKE_SYSTEM}" MATCHES "Linux")
146146
include(_common/library_tiff.cmake)
147147
endif()
148148

149+
if(PGE_ENABLE_QT AND (PGE_BUILD_MAINTAINER OR PGE_BUILD_XTCONVERT))
150+
add_subdirectory(_common/qt-modules/episode_box)
151+
endif()
152+
149153
if(NOT USE_SYSTEM_LIBPNG)
150154
add_dependencies(libpng_Local AudioCodecs_Local) #Zlib is needed to libPNG
151155
add_dependencies(FREETYPE_Local libpng_Local) #libPNG is needed to FreeType

Maintainer/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,6 @@ list(APPEND PGE_MAINTAINER_SRCS
136136
main.cpp
137137
main_window.cpp main_window.h
138138
Music/audiocvt_sox_gui.cpp Music/audiocvt_sox_gui.h
139-
files/episode_box.cpp files/episode_box.h
140139
common_features/logger.cpp common_features/logger.h common_features/logger_sets.h
141140
EpisodeCvt/episode_converter.cpp EpisodeCvt/episode_converter.h
142141
EpisodeCvt/case_fixer.cpp EpisodeCvt/case_fixer.h
@@ -212,6 +211,7 @@ if(PGE_BUILD_XTCONVERT)
212211
endif()
213212

214213
target_link_libraries(PGE_Maintainer_QtLibs INTERFACE
214+
episode_box
215215
PGE_FileFormatsQt
216216
${QT_LIBS_LIST}
217217
${QT_EXTRA_LIBS}

Maintainer/EpisodeCvt/case_fixer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include <QQueue>
99
#include <QAtomicInteger>
1010

11-
#include <files/episode_box.h>
11+
#include <episode_box.h>
1212

1313
namespace Ui {
1414
class CaseFixer;

Maintainer/EpisodeCvt/episode_converter.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include <QAtomicInteger>
99
#include <QTimer>
1010

11-
#include <files/episode_box.h>
11+
#include <episode_box.h>
1212

1313
namespace Ui {
1414
class EpisodeConverter;

Maintainer/Music/audiocvt_sox_gui.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include <QDialog>
2323
#include <QQueue>
2424
#include <QProcess>
25-
#include <files/episode_box.h>
25+
#include <episode_box.h>
2626
#include <QFuture>
2727

2828
namespace Ui {

XTConvert/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ target_link_libraries(PGE_XTConvert_QtLibs
136136
PGE_FreeImage
137137
PGE_libimagequant
138138
PGE_libspc2it
139+
episode_box
139140
PGE_FileFormatsQt
140141
${QT_LIBS_LIST}
141142
${QT_EXTRA_LIBS}

XTConvert/src/libxtconvert.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@
5959
#include "has_no_mask.h"
6060
#include "extract_archive.h"
6161

62+
#include "episode_box.h"
63+
6264
#include "libxtconvert.h"
6365

6466
static void log_file_callback_default(void*, XTConvert::LogCategory cat, const std::string& str)
@@ -253,6 +255,9 @@ class Converter
253255
EpisodeInfo m_episode_info;
254256
uint32_t m_source_hash = 0;
255257

258+
// All the levels and world maps of the episode gets loaded together to apply various manipulations to all files together
259+
EpisodeBox m_episodeData;
260+
256261
void sync_cur_dir(const QString& in_file)
257262
{
258263
QFileInfo fi(in_file);
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
project(libMoondustEpisodeBox CXX)
2+
3+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
4+
5+
set(CMAKE_INSTALL_RPATH ".")
6+
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
7+
8+
include_directories(
9+
${CMAKE_CURRENT_SOURCE_DIR}
10+
${DEPENDENCIES_INSTALL_DIR}/include
11+
${CMAKE_CURRENT_SOURCE_DIR}/../../ # PGE-FL
12+
)
13+
14+
link_directories(${DEPENDENCIES_INSTALL_DIR}/lib)
15+
16+
set(LIBRARY_PROJECT 1)
17+
18+
# Common building properties and optimization flags
19+
include(../../build_props.cmake)
20+
21+
if(PGE_USE_QT5)
22+
pge_cxx_standard(14)
23+
else()
24+
pge_cxx_standard(17)
25+
endif()
26+
27+
set(QT_DEFS_LIST ${QT_Core_DEFINITIONS})
28+
set(QT_INCLUDES_LIST ${QT_Core_INCLUDE_DIRS})
29+
30+
add_library(episode_box STATIC
31+
episode_box.h
32+
episode_box.cpp
33+
)
34+
35+
add_dependencies(episode_box pgefl_qt)
36+
37+
target_compile_definitions(episode_box PRIVATE ${QT_DEFS_LIST})
38+
target_compile_definitions(episode_box PUBLIC -DPGE_FILES_QT)
39+
target_include_directories(episode_box PRIVATE ${QT_INCLUDES_LIST})
40+
target_include_directories(episode_box PUBLIC ${CMAKE_CURRENT_LIST_DIR})
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Episode Box
2+
3+
It's a small class to load the most of episode content into RAM and manipulate
4+
with various things on the fly and apply various bulk operations over the episode
5+
data.

0 commit comments

Comments
 (0)