From 0efac83ac5c7a7d977359cd4009712733903eb87 Mon Sep 17 00:00:00 2001 From: olebeck <31539311+olebeck@users.noreply.github.com> Date: Mon, 7 Jul 2025 15:02:57 +0200 Subject: [PATCH] move CONFIG_vita --- CMakeLists.txt | 91 ++---------------- CMakePresets.json | 19 ++-- CONFIG/{ => qt}/AboutDlg.cpp | 0 CONFIG/{ => qt}/AboutDlg.h | 0 CONFIG/qt/CMakeLists.txt | 57 +++++++++++ CONFIG/{ => qt}/MainDlg.cpp | 0 CONFIG/{ => qt}/MainDlg.h | 0 CONFIG/{ => qt}/config.cpp | 0 CONFIG/{ => qt}/config.h | 0 CONFIG/{ => qt}/detectdx5.cpp | 0 CONFIG/{ => qt}/detectdx5.h | 0 CONFIG/{ => qt}/res/about.ui | 0 CONFIG/{ => qt}/res/config.qrc | 0 CONFIG/{ => qt}/res/config.rc | 0 CONFIG/{ => qt}/res/lego.ico | Bin CONFIG/{ => qt}/res/lego1.png | Bin CONFIG/{ => qt}/res/lego2.png | Bin CONFIG/{ => qt}/res/maindialog.ui | 0 CONFIG/{ => qt}/res/shark.png | Bin {CONFIG_vita => CONFIG/vita}/.gitignore | 0 .../vita/CMakeLists.txt | 22 ++++- .../vita}/cxml/config_plugin.xml | 0 {CONFIG_vita => CONFIG/vita}/exports.yml | 0 {CONFIG_vita => CONFIG/vita}/src/app.cpp | 0 {CONFIG_vita => CONFIG/vita}/src/main.cpp | 0 ISLE/vita/config.cpp | 7 +- miniwin/CMakeLists.txt | 2 +- 27 files changed, 96 insertions(+), 102 deletions(-) rename CONFIG/{ => qt}/AboutDlg.cpp (100%) rename CONFIG/{ => qt}/AboutDlg.h (100%) create mode 100644 CONFIG/qt/CMakeLists.txt rename CONFIG/{ => qt}/MainDlg.cpp (100%) rename CONFIG/{ => qt}/MainDlg.h (100%) rename CONFIG/{ => qt}/config.cpp (100%) rename CONFIG/{ => qt}/config.h (100%) rename CONFIG/{ => qt}/detectdx5.cpp (100%) rename CONFIG/{ => qt}/detectdx5.h (100%) rename CONFIG/{ => qt}/res/about.ui (100%) rename CONFIG/{ => qt}/res/config.qrc (100%) rename CONFIG/{ => qt}/res/config.rc (100%) rename CONFIG/{ => qt}/res/lego.ico (100%) rename CONFIG/{ => qt}/res/lego1.png (100%) rename CONFIG/{ => qt}/res/lego2.png (100%) rename CONFIG/{ => qt}/res/maindialog.ui (100%) rename CONFIG/{ => qt}/res/shark.png (100%) rename {CONFIG_vita => CONFIG/vita}/.gitignore (100%) rename CONFIG_vita/CONFIG_vita.cmake => CONFIG/vita/CMakeLists.txt (63%) rename {CONFIG_vita => CONFIG/vita}/cxml/config_plugin.xml (100%) rename {CONFIG_vita => CONFIG/vita}/exports.yml (100%) rename {CONFIG_vita => CONFIG/vita}/src/app.cpp (100%) rename {CONFIG_vita => CONFIG/vita}/src/main.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 82f91b5b..838eaa87 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,23 +39,17 @@ option(ISLE_BUILD_APP "Build isle application" ON) option(ISLE_ASAN "Enable Address Sanitizer" OFF) option(ISLE_UBSAN "Enable Undefined Behavior Sanitizer" OFF) option(ISLE_WERROR "Treat warnings as errors" OFF) -option(ISLE_DEBUG "Enable imgui debug" ON) +cmake_dependent_option(ISLE_DEBUG "Enable imgui debug" ON "NOT VITA" OFF) cmake_dependent_option(ISLE_USE_DX5 "Build with internal DirectX 5 SDK" "${NOT_MINGW}" "WIN32;CMAKE_SIZEOF_VOID_P EQUAL 4" OFF) cmake_dependent_option(ISLE_MINIWIN "Use miniwin" ON "NOT ISLE_USE_DX5" OFF) cmake_dependent_option(ISLE_BUILD_CONFIG "Build CONFIG.EXE application" ON "MSVC OR ISLE_MINIWIN;NOT NINTENDO_3DS;NOT WINDOWS_STORE;NOT VITA" OFF) cmake_dependent_option(ISLE_COMPILE_SHADERS "Compile shaders" ON "SDL_SHADERCROSS_BIN;TARGET Python3::Interpreter" OFF) -option(CMAKE_POSITION_INDEPENDENT_CODE "Build with -fPIC" ON) +cmake_dependent_option(CMAKE_POSITION_INDEPENDENT_CODE "Build with -fPIC" ON "NOT VITA" OFF) option(ENABLE_CLANG_TIDY "Enable clang-tidy") option(DOWNLOAD_DEPENDENCIES "Download dependencies" ON) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" CACHE PATH "Directory where to put executables and dll") set(ISLE_EMSCRIPTEN_HOST "" CACHE STRING "Host URL for Emscripten streaming (e.g., https://test.com)") -cmake_dependent_option(BUILD_SHARED_LIBS "Build lego1 as a shared library" ON "NOT EMSCRIPTEN" OFF) - -if(VITA) - set(BUILD_SHARED_LIBS OFF) - set(ISLE_DEBUG OFF) - set(CMAKE_POSITION_INDEPENDENT_CODE OFF) -endif() +cmake_dependent_option(BUILD_SHARED_LIBS "Build lego1 as a shared library" ON "NOT EMSCRIPTEN;NOT VITA" OFF) message(STATUS "Isle app: ${ISLE_BUILD_APP}") message(STATUS "Config app: ${ISLE_BUILD_CONFIG}") @@ -86,14 +80,7 @@ if (DOWNLOAD_DEPENDENCIES) EXCLUDE_FROM_ALL ) endif() - - block() - if(VITA) - set(SDL_RENDER OFF) - set(SDL_GPU OFF) - endif() - FetchContent_MakeAvailable(SDL3) - endblock() + FetchContent_MakeAvailable(SDL3) FetchContent_Declare( iniparser @@ -172,12 +159,7 @@ target_link_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdpar add_library(Vec::Vec INTERFACE IMPORTED) target_include_directories(Vec::Vec INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/vec") -set(LIBRARY_TYPE "STATIC") -if(BUILD_SHARED_LIBS) - set(LIBRARY_TYPE "SHARED") -endif() - -add_library(lego1 ${LIBRARY_TYPE} +add_library(lego1 LEGO1/main.cpp ) target_precompile_headers(lego1 PRIVATE "LEGO1/lego1_pch.h") @@ -611,35 +593,7 @@ if (ISLE_BUILD_APP) endif() if (ISLE_BUILD_CONFIG) - find_package(Qt6 REQUIRED COMPONENTS Core Widgets) - qt_standard_project_setup() - qt_add_executable(isle-config WIN32 - LEGO1/mxdirectx/mxdirectxinfo.cpp - LEGO1/mxdirectx/legodxinfo.cpp - CONFIG/config.cpp - CONFIG/AboutDlg.cpp - CONFIG/MainDlg.cpp - CONFIG/detectdx5.cpp - CONFIG/res/config.rc - CONFIG/res/config.qrc - ) - target_link_libraries(isle-config PRIVATE Qt6::Core Qt6::Widgets) - set_property(TARGET isle-config PROPERTY AUTOMOC ON) - set_property(TARGET isle-config PROPERTY AUTORCC ON) - set_property(TARGET isle-config PROPERTY AUTOUIC ON) - set_property(TARGET isle-config PROPERTY AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/CONFIG/res") - list(APPEND isle_targets isle-config) - target_compile_definitions(isle-config PRIVATE _AFXDLL MXDIRECTX_FOR_CONFIG) - target_include_directories(isle-config PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/LEGO1") - target_include_directories(isle-config PUBLIC "$") - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14) - target_link_libraries(isle-config PRIVATE DirectX5::DirectX5) - endif() - target_compile_definitions(isle-config PRIVATE DIRECT3D_VERSION=0x500) - target_link_libraries(isle-config PRIVATE SDL3::SDL3 Isle::iniparser) - if (NOT ISLE_MINIWIN) - target_link_libraries(isle-config PRIVATE ddraw dxguid) - endif() + add_subdirectory(CONFIG/qt) endif() if (ISLE_MINIWIN) @@ -734,30 +688,6 @@ if (NOT (NINTENDO_3DS OR WINDOWS_STORE)) LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) endif() -if (ISLE_BUILD_CONFIG) - if(WIN32) - find_program(WINDEPLOYQT_EXECUTABLE windeployqt) - if(WINDEPLOYQT_EXECUTABLE) - install(CODE "message(STATUS \"Running windeployqt with minimal dependencies\") - execute_process(COMMAND \"${WINDEPLOYQT_EXECUTABLE}\" - \"$\" - --dir QTLibs - --no-compiler-runtime - --no-opengl-sw - --no-system-d3d-compiler - --no-translations - --no-quick-import - )" - ) - install(DIRECTORY "Build/QTLibs/" DESTINATION "${CMAKE_INSTALL_BINDIR}") - else() - message(STATUS "windeployqt not found: Qt binaries will not be installed") - endif() - endif() - install(TARGETS isle-config - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - ) -endif() if(EMSCRIPTEN) install(FILES "$/isle.js" "$/isle.wasm" DESTINATION "${CMAKE_INSTALL_BINDIR}" @@ -793,17 +723,17 @@ endif() if(VITA) include("${VITASDK}/share/vita.cmake" REQUIRED) - include(CONFIG_vita/CONFIG_vita.cmake) + add_subdirectory(CONFIG/vita) set(ISLE_PACKAGE_NAME "vita-isle") set(VITA_APP_NAME "Lego Island") set(VITA_TITLEID "LEGO00001") set(VITA_VERSION "01.00") - + vita_create_self(isle.self isle UNSAFE) - list(APPEND VPK_FILE_ARGS FILE ${CMAKE_CURRENT_BINARY_DIR}/isle-config.self isle-config.self) - list(APPEND VPK_FILE_ARGS FILE ${CMAKE_CURRENT_BINARY_DIR}/config_plugin.rco config_plugin.rco) + list(APPEND VPK_FILE_ARGS FILE ${ISLE_CONFIG_SELF} isle-config.self) + list(APPEND VPK_FILE_ARGS FILE ${ISLE_CONFIG_RCO} config_plugin.rco) list(APPEND VPK_FILE_ARGS FILE packaging/vita/sce_sys/icon0.png sce_sys/icon0.png) list(APPEND VPK_FILE_ARGS FILE packaging/vita/sce_sys/pic0.png sce_sys/pic0.png) @@ -843,7 +773,6 @@ if(VITA) list(APPEND VPK_FILE_ARGS FILE packaging/vita/sce_sys/manual/027.png sce_sys/manual/027.png) list(APPEND VPK_FILE_ARGS FILE packaging/vita/sce_sys/manual/028.png sce_sys/manual/028.png) - vita_create_vpk(isle.vpk ${VITA_TITLEID} isle.self VERSION ${VITA_VERSION} NAME ${VITA_APP_NAME} diff --git a/CMakePresets.json b/CMakePresets.json index 3611ff65..93051221 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -7,22 +7,25 @@ }, "configurePresets": [ { - "name": "release", + "name": "base", "generator": "Ninja", "binaryDir": "${sourceDir}/build/${presetName}", + "hidden": true + }, + { + "name": "release", + "inherits": ["base"], "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" } }, { "name": "debug", - "inherits": ["release"], + "inherits": ["base"], "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug", - "ISLE_BUILD_CONFIG": false + "CMAKE_BUILD_TYPE": "Debug" } }, - { "name": "vita", "inherits": ["release"], @@ -30,13 +33,9 @@ "CMAKE_TOOLCHAIN_FILE": "$env{VITASDK}/share/vita.toolchain.cmake" } }, - { "name": "vita-debug", - "inherits": ["debug"], - "cacheVariables": { - "CMAKE_TOOLCHAIN_FILE": "$env{VITASDK}/share/vita.toolchain.cmake" - } + "inherits": ["vita", "debug"] } ] } \ No newline at end of file diff --git a/CONFIG/AboutDlg.cpp b/CONFIG/qt/AboutDlg.cpp similarity index 100% rename from CONFIG/AboutDlg.cpp rename to CONFIG/qt/AboutDlg.cpp diff --git a/CONFIG/AboutDlg.h b/CONFIG/qt/AboutDlg.h similarity index 100% rename from CONFIG/AboutDlg.h rename to CONFIG/qt/AboutDlg.h diff --git a/CONFIG/qt/CMakeLists.txt b/CONFIG/qt/CMakeLists.txt new file mode 100644 index 00000000..f6219432 --- /dev/null +++ b/CONFIG/qt/CMakeLists.txt @@ -0,0 +1,57 @@ +cmake_minimum_required(VERSION 3.25...4.0 FATAL_ERROR) + +project(isle-config LANGUAGES CXX C VERSION 0.1) + +find_package(Qt6 REQUIRED COMPONENTS Core Widgets) +qt_standard_project_setup() +qt_add_executable(isle-config WIN32 + ../../LEGO1/mxdirectx/mxdirectxinfo.cpp + ../../LEGO1/mxdirectx/legodxinfo.cpp + config.cpp + AboutDlg.cpp + MainDlg.cpp + detectdx5.cpp + res/config.rc + res/config.qrc +) +target_link_libraries(isle-config PRIVATE Qt6::Core Qt6::Widgets) +set_property(TARGET isle-config PROPERTY AUTOMOC ON) +set_property(TARGET isle-config PROPERTY AUTORCC ON) +set_property(TARGET isle-config PROPERTY AUTOUIC ON) +set_property(TARGET isle-config PROPERTY AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/res") +target_compile_definitions(isle-config PRIVATE _AFXDLL MXDIRECTX_FOR_CONFIG) +target_include_directories(isle-config PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../LEGO1") +target_include_directories(isle-config PUBLIC "$") +if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 14) + target_link_libraries(isle-config PRIVATE DirectX5::DirectX5) +endif() +target_compile_definitions(isle-config PRIVATE DIRECT3D_VERSION=0x500) +target_link_libraries(isle-config PRIVATE SDL3::SDL3 Isle::iniparser) +if (NOT ISLE_MINIWIN) + target_link_libraries(isle-config PRIVATE ddraw dxguid) +endif() + +if(WIN32) + find_program(WINDEPLOYQT_EXECUTABLE windeployqt) + if(WINDEPLOYQT_EXECUTABLE) + install(CODE "message(STATUS \"Running windeployqt with minimal dependencies\") + execute_process(COMMAND \"${WINDEPLOYQT_EXECUTABLE}\" + \"$\" + --dir QTLibs + --no-compiler-runtime + --no-opengl-sw + --no-system-d3d-compiler + --no-translations + --no-quick-import + )" + ) + install(DIRECTORY "Build/QTLibs/" DESTINATION "${CMAKE_INSTALL_BINDIR}") + else() + message(STATUS "windeployqt not found: Qt binaries will not be installed") + endif() +endif() +install(TARGETS isle-config + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" +) + +set(isle_targets ${isle_targets};isle-config PARENT_SCOPE) diff --git a/CONFIG/MainDlg.cpp b/CONFIG/qt/MainDlg.cpp similarity index 100% rename from CONFIG/MainDlg.cpp rename to CONFIG/qt/MainDlg.cpp diff --git a/CONFIG/MainDlg.h b/CONFIG/qt/MainDlg.h similarity index 100% rename from CONFIG/MainDlg.h rename to CONFIG/qt/MainDlg.h diff --git a/CONFIG/config.cpp b/CONFIG/qt/config.cpp similarity index 100% rename from CONFIG/config.cpp rename to CONFIG/qt/config.cpp diff --git a/CONFIG/config.h b/CONFIG/qt/config.h similarity index 100% rename from CONFIG/config.h rename to CONFIG/qt/config.h diff --git a/CONFIG/detectdx5.cpp b/CONFIG/qt/detectdx5.cpp similarity index 100% rename from CONFIG/detectdx5.cpp rename to CONFIG/qt/detectdx5.cpp diff --git a/CONFIG/detectdx5.h b/CONFIG/qt/detectdx5.h similarity index 100% rename from CONFIG/detectdx5.h rename to CONFIG/qt/detectdx5.h diff --git a/CONFIG/res/about.ui b/CONFIG/qt/res/about.ui similarity index 100% rename from CONFIG/res/about.ui rename to CONFIG/qt/res/about.ui diff --git a/CONFIG/res/config.qrc b/CONFIG/qt/res/config.qrc similarity index 100% rename from CONFIG/res/config.qrc rename to CONFIG/qt/res/config.qrc diff --git a/CONFIG/res/config.rc b/CONFIG/qt/res/config.rc similarity index 100% rename from CONFIG/res/config.rc rename to CONFIG/qt/res/config.rc diff --git a/CONFIG/res/lego.ico b/CONFIG/qt/res/lego.ico similarity index 100% rename from CONFIG/res/lego.ico rename to CONFIG/qt/res/lego.ico diff --git a/CONFIG/res/lego1.png b/CONFIG/qt/res/lego1.png similarity index 100% rename from CONFIG/res/lego1.png rename to CONFIG/qt/res/lego1.png diff --git a/CONFIG/res/lego2.png b/CONFIG/qt/res/lego2.png similarity index 100% rename from CONFIG/res/lego2.png rename to CONFIG/qt/res/lego2.png diff --git a/CONFIG/res/maindialog.ui b/CONFIG/qt/res/maindialog.ui similarity index 100% rename from CONFIG/res/maindialog.ui rename to CONFIG/qt/res/maindialog.ui diff --git a/CONFIG/res/shark.png b/CONFIG/qt/res/shark.png similarity index 100% rename from CONFIG/res/shark.png rename to CONFIG/qt/res/shark.png diff --git a/CONFIG_vita/.gitignore b/CONFIG/vita/.gitignore similarity index 100% rename from CONFIG_vita/.gitignore rename to CONFIG/vita/.gitignore diff --git a/CONFIG_vita/CONFIG_vita.cmake b/CONFIG/vita/CMakeLists.txt similarity index 63% rename from CONFIG_vita/CONFIG_vita.cmake rename to CONFIG/vita/CMakeLists.txt index 72d0c31e..8a9a339d 100644 --- a/CONFIG_vita/CONFIG_vita.cmake +++ b/CONFIG/vita/CMakeLists.txt @@ -1,4 +1,9 @@ -# config app +cmake_minimum_required(VERSION 3.25...4.0 FATAL_ERROR) + +project(isle-config LANGUAGES CXX C VERSION 0.1) + +include("${VITASDK}/share/vita.cmake" REQUIRED) + include(FetchContent) FetchContent_Declare( ScePaf_External @@ -7,8 +12,12 @@ FetchContent_Declare( FetchContent_MakeAvailable(ScePaf_External) add_executable(isle-config - ${CMAKE_CURRENT_LIST_DIR}/src/app.cpp - ${CMAKE_CURRENT_LIST_DIR}/src/main.cpp + src/app.cpp + src/main.cpp +) + +set_target_properties(isle-config PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) target_compile_options(isle-config PRIVATE @@ -34,7 +43,7 @@ target_link_libraries(isle-config PRIVATE block() set(VITA_MAKE_FSELF_FLAGS "${VITA_MAKE_FSELF_FLAGS} -a 0x2F00000000000101") vita_create_self(isle-config.self isle-config - CONFIG CONFIG_vita/exports.yml + CONFIG exports.yml UNSAFE STRIPPED REL_OPTIMIZE @@ -42,4 +51,7 @@ block() endblock() include(${scepaf_external_SOURCE_DIR}/rco.cmake) -make_rco(${CMAKE_CURRENT_LIST_DIR}/cxml/config_plugin.xml config_plugin.rco) +make_rco(cxml/config_plugin.xml config_plugin.rco) + +set(ISLE_CONFIG_SELF ${CMAKE_CURRENT_BINARY_DIR}/isle-config.self PARENT_SCOPE) +set(ISLE_CONFIG_RCO ${CMAKE_CURRENT_BINARY_DIR}/config_plugin.rco PARENT_SCOPE) diff --git a/CONFIG_vita/cxml/config_plugin.xml b/CONFIG/vita/cxml/config_plugin.xml similarity index 100% rename from CONFIG_vita/cxml/config_plugin.xml rename to CONFIG/vita/cxml/config_plugin.xml diff --git a/CONFIG_vita/exports.yml b/CONFIG/vita/exports.yml similarity index 100% rename from CONFIG_vita/exports.yml rename to CONFIG/vita/exports.yml diff --git a/CONFIG_vita/src/app.cpp b/CONFIG/vita/src/app.cpp similarity index 100% rename from CONFIG_vita/src/app.cpp rename to CONFIG/vita/src/app.cpp diff --git a/CONFIG_vita/src/main.cpp b/CONFIG/vita/src/main.cpp similarity index 100% rename from CONFIG_vita/src/main.cpp rename to CONFIG/vita/src/main.cpp diff --git a/ISLE/vita/config.cpp b/ISLE/vita/config.cpp index 3ea39064..153e2f3b 100644 --- a/ISLE/vita/config.cpp +++ b/ISLE/vita/config.cpp @@ -7,11 +7,8 @@ void VITA_SetupDefaultConfigOverrides(dictionary* p_dictionary) { SDL_Log("Overriding default config for VITA"); - iniparser_set(p_dictionary, "isle:diskpath", "ux0:isledecompile/isle/disk"); - iniparser_set(p_dictionary, "isle:cdpath", "ux0:isledecompile/isle/cd"); + iniparser_set(p_dictionary, "isle:diskpath", "ux0:data/isledecompile/isle/disk"); + iniparser_set(p_dictionary, "isle:cdpath", "ux0:data/isledecompile/isle/cd"); iniparser_set(p_dictionary, "isle:UseJoystick", "true"); iniparser_set(p_dictionary, "isle:Draw Cursor", "true"); - - // Use e_noAnimation/cut transition - // iniparser_set(p_dictionary, "isle:Transition Type", "1"); } diff --git a/miniwin/CMakeLists.txt b/miniwin/CMakeLists.txt index aaca849d..611f2eba 100644 --- a/miniwin/CMakeLists.txt +++ b/miniwin/CMakeLists.txt @@ -34,7 +34,7 @@ target_compile_definitions(miniwin PRIVATE list(APPEND GRAPHICS_BACKENDS USE_SOFTWARE_RENDER) list(APPEND GRAPHICS_BACKENDS USE_SDL_GPU) -if(NOT VITA AND NOT WINDOWS_STORE) +if(NOT (VITA OR WINDOWS_STORE)) find_package(OpenGL) if(OpenGL_FOUND) message(STATUS "Found OpenGL: enabling OpenGL 1.x renderer")