@@ -14,33 +14,37 @@ else()
1414 set (CMAKE_BUILD_TYPE Release)
1515endif ()
1616
17- find_package (Qt5 COMPONENTS Core Gui Test Widgets WebEngineWidgets Sql REQUIRED)
17+ find_package (Qt6 COMPONENTS Core Gui Test Widgets WebEngineWidgets Sql REQUIRED)
1818
1919find_package (CURL REQUIRED)
2020
21+ # Add miniz as a subdirectory
2122if (NOT EXISTS "${CMAKE_SOURCE_DIR} /libs/miniz/CMakeLists.txt" )
2223 message (STATUS "Submodule 'libs/miniz' not found. Updating submodules..." )
2324 execute_process (
2425 COMMAND git submodule update --init --recursive
2526 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
2627 )
27- file (READ "${CMAKE_SOURCE_DIR} /libs/miniz/CMakeLists.txt" cmake )
28+ file (READ "${CMAKE_SOURCE_DIR} /libs/miniz/CMakeLists.txt" MINIZ_CMAKE )
2829 string (REPLACE "cmake_minimum_required(VERSION 3.5)"
29- "cmake_minimum_required(VERSION 3.16)" my_cmake "${cmake} " )
30- file (WRITE "${CMAKE_SOURCE_DIR} /libs/miniz/CMakeLists.txt" "${my_cmake} " )
31- endif ()
32-
33- if (NOT EXISTS "${CMAKE_SOURCE_DIR} /database/tombll.db" )
34- message (STATUS "Database not found, running get_trle.sh..." )
35- execute_process (
36- COMMAND bash "${CMAKE_SOURCE_DIR} /database/get_trle.sh"
37- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} "
30+ "cmake_minimum_required(VERSION 3.16)"
31+ NEW_MINIZ_CMAKE
32+ "${MINIZ_CMAKE} "
33+ )
34+ file (WRITE "${CMAKE_SOURCE_DIR} /libs/miniz/CMakeLists.txt"
35+ "${NEW_MINIZ_CMAKE} "
3836 )
3937endif ()
40-
4138add_subdirectory (libs/miniz)
4239
4340# Add LIEF as a subdirectory
41+ if (NOT EXISTS "${CMAKE_SOURCE_DIR} /libs/LIEF/CMakeLists.txt" )
42+ message (STATUS "Submodule 'libs/LIEF' not found. Updating submodules..." )
43+ execute_process (
44+ COMMAND git submodule update --init --recursive
45+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
46+ )
47+ endif ()
4448set (LIEF_INSTALL OFF CACHE BOOL "Disable installation of LIEF" )
4549set (LIEF_EXAMPLES OFF )
4650set (LIEF_TESTS OFF )
@@ -51,29 +55,60 @@ set(LIEF_PE ON)
5155set (LIEF_MACHO OFF )
5256set (LIEF_DEX OFF )
5357set (LIEF_ART OFF )
58+ add_subdirectory (libs/LIEF)
5459
55- if (NOT EXISTS "${CMAKE_SOURCE_DIR} /libs/LIEF/CMakeLists.txt"
56- AND NOT NO_DATABASE
60+ # Add libbacktrace as a subdirectory
61+ if (NOT EXISTS "${CMAKE_SOURCE_DIR} /libs/libbacktrace/configure" )
62+ message (STATUS
63+ "Submodule 'libs/libbacktrace' not found. Updating submodules..."
5764 )
58- message (STATUS "Submodule 'libs/LIEF' not found. Updating submodules..." )
5965 execute_process (
6066 COMMAND git submodule update --init --recursive
6167 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
6268 )
6369endif ()
70+ if (EXISTS "${CMAKE_SOURCE_DIR} /libs/libbacktrace/configure" )
71+ message (STATUS "Running autoconf to prepare libbacktrace" )
72+ execute_process (
73+ COMMAND bash "${CMAKE_SOURCE_DIR} /libs/libbacktrace/configure"
74+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} /libs/libbacktrace"
75+ RESULT_VARIABLE AUTOCONF_RESULT
76+ )
77+ if (NOT AUTOCONF_RESULT EQUAL 0)
78+ message (
79+ FATAL_ERROR
80+ "Autoconf failed with exit code ${AUTOCONF_RESULT} "
81+ )
82+ endif ()
83+ execute_process (
84+ COMMAND make
85+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} /libs/libbacktrace"
86+ RESULT_VARIABLE MAKE_RESULT
87+ )
88+ if (NOT MAKE_RESULT EQUAL 0)
89+ message (
90+ FATAL_ERROR
91+ "Make failed with exit code ${MAKE__RESULT} "
92+ )
93+ endif ()
94+ endif ()
6495
65- add_subdirectory (libs/LIEF)
6696
67- # Update submodules if we forget
68- # git submodule update --init --recursive
69- # git submodule update --remote --merge
70- # git submodule sync # (optional) if URL change
97+ if (NOT EXISTS "${CMAKE_SOURCE_DIR} /database/tombll.db" )
98+ message (STATUS "Database not found, running get_trle.sh..." )
99+ execute_process (
100+ COMMAND bash "${CMAKE_SOURCE_DIR} /database/get_trle.sh"
101+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR} "
102+ )
103+ endif ()
71104
72105set (SOURCES_TESTS
73106 test /test .hpp
74107)
75108
76109set (SOURCES_MC
110+ src/CommandLineParser.hpp
111+ src/CommandLineParser.cpp
77112 src/Controller.hpp
78113 src/Controller.cpp
79114 src/Data.hpp
@@ -82,6 +117,8 @@ set(SOURCES_MC
82117 src/FileManager.cpp
83118 src/GameFileTree.hpp
84119 src/GameFileTree.cpp
120+ src/LevelViewList.hpp
121+ src/LevelViewList.cpp
85122 src/LoadingIndicator.hpp
86123 src/LoadingIndicator.cpp
87124 src/Model.hpp
@@ -94,9 +131,9 @@ set(SOURCES_MC
94131 src/PyRunner.hpp
95132 src/Runner.cpp
96133 src/Runner.hpp
134+ src/assert.hpp
97135 src/binary.hpp
98136 src/binary.cpp
99- src/levelViewList.hpp
100137 src/main.cpp
101138 src/staticData.hpp
102139)
@@ -109,23 +146,25 @@ set(SOURCES_VIEW
109146)
110147
111148set (LINK_COMMON
112- Qt5 ::Core
113- Qt5 ::Widgets
114- Qt5 ::WebEngineWidgets
115- Qt5 ::Sql
149+ Qt6 ::Core
150+ Qt6 ::Widgets
151+ Qt6 ::WebEngineWidgets
152+ Qt6 ::Sql
116153 miniz
117154 LIEF::LIEF
118155 ${CURL_LIBRARY}
156+ "${CMAKE_SOURCE_DIR} /libs/libbacktrace/.libs/libbacktrace.a"
119157)
120158
121159set (LINK_GUI
122- Qt5 ::Gui
160+ Qt6 ::Gui
123161)
124162
125163set (INCLUDE_DIR
126164 ${CURL_INCLUDE_DIR}
127165 libs/miniz
128166 libs/LIEF/include
167+ libs/libbacktrace
129168 src
130169)
131170
@@ -137,7 +176,7 @@ if(TEST)
137176 set (SOURCES ${SOURCES_MC} ${SOURCES_TESTS} )
138177 add_executable (${PROJECT_NAME} Test ${SOURCES} )
139178 add_test (NAME ${PROJECT_NAME} Test COMMAND ${PROJECT_NAME} Test )
140- target_link_libraries (${PROJECT_NAME} Test PUBLIC ${LINK_COMMON} Qt5 ::Test )
179+ target_link_libraries (${PROJECT_NAME} Test PUBLIC ${LINK_COMMON} Qt6 ::Test )
141180 target_include_directories (${PROJECT_NAME} Test PRIVATE ${INCLUDE_DIR} test )
142181 target_compile_definitions (${PROJECT_NAME} Test PRIVATE TEST )
143182 set_target_properties (${PROJECT_NAME} Test PROPERTIES
0 commit comments