move CONFIG_vita

This commit is contained in:
olebeck 2025-07-07 15:02:57 +02:00
parent 53e57a0ccb
commit 0efac83ac5
27 changed files with 96 additions and 102 deletions

View File

@ -39,23 +39,17 @@ option(ISLE_BUILD_APP "Build isle application" ON)
option(ISLE_ASAN "Enable Address Sanitizer" OFF) option(ISLE_ASAN "Enable Address Sanitizer" OFF)
option(ISLE_UBSAN "Enable Undefined Behavior Sanitizer" OFF) option(ISLE_UBSAN "Enable Undefined Behavior Sanitizer" OFF)
option(ISLE_WERROR "Treat warnings as errors" 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_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_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_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) 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(ENABLE_CLANG_TIDY "Enable clang-tidy")
option(DOWNLOAD_DEPENDENCIES "Download dependencies" ON) option(DOWNLOAD_DEPENDENCIES "Download dependencies" ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" CACHE PATH "Directory where to put executables and dll") 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)") 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) cmake_dependent_option(BUILD_SHARED_LIBS "Build lego1 as a shared library" ON "NOT EMSCRIPTEN;NOT VITA" OFF)
if(VITA)
set(BUILD_SHARED_LIBS OFF)
set(ISLE_DEBUG OFF)
set(CMAKE_POSITION_INDEPENDENT_CODE OFF)
endif()
message(STATUS "Isle app: ${ISLE_BUILD_APP}") message(STATUS "Isle app: ${ISLE_BUILD_APP}")
message(STATUS "Config app: ${ISLE_BUILD_CONFIG}") message(STATUS "Config app: ${ISLE_BUILD_CONFIG}")
@ -86,14 +80,7 @@ if (DOWNLOAD_DEPENDENCIES)
EXCLUDE_FROM_ALL EXCLUDE_FROM_ALL
) )
endif() endif()
FetchContent_MakeAvailable(SDL3)
block()
if(VITA)
set(SDL_RENDER OFF)
set(SDL_GPU OFF)
endif()
FetchContent_MakeAvailable(SDL3)
endblock()
FetchContent_Declare( FetchContent_Declare(
iniparser iniparser
@ -172,12 +159,7 @@ target_link_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdpar
add_library(Vec::Vec INTERFACE IMPORTED) add_library(Vec::Vec INTERFACE IMPORTED)
target_include_directories(Vec::Vec INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/vec") target_include_directories(Vec::Vec INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/vec")
set(LIBRARY_TYPE "STATIC") add_library(lego1
if(BUILD_SHARED_LIBS)
set(LIBRARY_TYPE "SHARED")
endif()
add_library(lego1 ${LIBRARY_TYPE}
LEGO1/main.cpp LEGO1/main.cpp
) )
target_precompile_headers(lego1 PRIVATE "LEGO1/lego1_pch.h") target_precompile_headers(lego1 PRIVATE "LEGO1/lego1_pch.h")
@ -611,35 +593,7 @@ if (ISLE_BUILD_APP)
endif() endif()
if (ISLE_BUILD_CONFIG) if (ISLE_BUILD_CONFIG)
find_package(Qt6 REQUIRED COMPONENTS Core Widgets) add_subdirectory(CONFIG/qt)
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 "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/util>")
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()
endif() endif()
if (ISLE_MINIWIN) if (ISLE_MINIWIN)
@ -734,30 +688,6 @@ if (NOT (NINTENDO_3DS OR WINDOWS_STORE))
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
) )
endif() 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}\"
\"$<TARGET_FILE:isle-config>\"
--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) if(EMSCRIPTEN)
install(FILES "$<TARGET_FILE_DIR:isle>/isle.js" "$<TARGET_FILE_DIR:isle>/isle.wasm" install(FILES "$<TARGET_FILE_DIR:isle>/isle.js" "$<TARGET_FILE_DIR:isle>/isle.wasm"
DESTINATION "${CMAKE_INSTALL_BINDIR}" DESTINATION "${CMAKE_INSTALL_BINDIR}"
@ -793,17 +723,17 @@ endif()
if(VITA) if(VITA)
include("${VITASDK}/share/vita.cmake" REQUIRED) include("${VITASDK}/share/vita.cmake" REQUIRED)
include(CONFIG_vita/CONFIG_vita.cmake) add_subdirectory(CONFIG/vita)
set(ISLE_PACKAGE_NAME "vita-isle") set(ISLE_PACKAGE_NAME "vita-isle")
set(VITA_APP_NAME "Lego Island") set(VITA_APP_NAME "Lego Island")
set(VITA_TITLEID "LEGO00001") set(VITA_TITLEID "LEGO00001")
set(VITA_VERSION "01.00") set(VITA_VERSION "01.00")
vita_create_self(isle.self isle UNSAFE) 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 ${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_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/icon0.png sce_sys/icon0.png)
list(APPEND VPK_FILE_ARGS FILE packaging/vita/sce_sys/pic0.png sce_sys/pic0.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/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) 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 vita_create_vpk(isle.vpk ${VITA_TITLEID} isle.self
VERSION ${VITA_VERSION} VERSION ${VITA_VERSION}
NAME ${VITA_APP_NAME} NAME ${VITA_APP_NAME}

View File

@ -7,22 +7,25 @@
}, },
"configurePresets": [ "configurePresets": [
{ {
"name": "release", "name": "base",
"generator": "Ninja", "generator": "Ninja",
"binaryDir": "${sourceDir}/build/${presetName}", "binaryDir": "${sourceDir}/build/${presetName}",
"hidden": true
},
{
"name": "release",
"inherits": ["base"],
"cacheVariables": { "cacheVariables": {
"CMAKE_BUILD_TYPE": "Release" "CMAKE_BUILD_TYPE": "Release"
} }
}, },
{ {
"name": "debug", "name": "debug",
"inherits": ["release"], "inherits": ["base"],
"cacheVariables": { "cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug", "CMAKE_BUILD_TYPE": "Debug"
"ISLE_BUILD_CONFIG": false
} }
}, },
{ {
"name": "vita", "name": "vita",
"inherits": ["release"], "inherits": ["release"],
@ -30,13 +33,9 @@
"CMAKE_TOOLCHAIN_FILE": "$env{VITASDK}/share/vita.toolchain.cmake" "CMAKE_TOOLCHAIN_FILE": "$env{VITASDK}/share/vita.toolchain.cmake"
} }
}, },
{ {
"name": "vita-debug", "name": "vita-debug",
"inherits": ["debug"], "inherits": ["vita", "debug"]
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{VITASDK}/share/vita.toolchain.cmake"
}
} }
] ]
} }

57
CONFIG/qt/CMakeLists.txt Normal file
View File

@ -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 "$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/util>")
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}\"
\"$<TARGET_FILE:isle-config>\"
--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)

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 477 B

After

Width:  |  Height:  |  Size: 477 B

View File

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 397 B

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -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) include(FetchContent)
FetchContent_Declare( FetchContent_Declare(
ScePaf_External ScePaf_External
@ -7,8 +12,12 @@ FetchContent_Declare(
FetchContent_MakeAvailable(ScePaf_External) FetchContent_MakeAvailable(ScePaf_External)
add_executable(isle-config add_executable(isle-config
${CMAKE_CURRENT_LIST_DIR}/src/app.cpp src/app.cpp
${CMAKE_CURRENT_LIST_DIR}/src/main.cpp src/main.cpp
)
set_target_properties(isle-config PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
) )
target_compile_options(isle-config PRIVATE target_compile_options(isle-config PRIVATE
@ -34,7 +43,7 @@ target_link_libraries(isle-config PRIVATE
block() block()
set(VITA_MAKE_FSELF_FLAGS "${VITA_MAKE_FSELF_FLAGS} -a 0x2F00000000000101") set(VITA_MAKE_FSELF_FLAGS "${VITA_MAKE_FSELF_FLAGS} -a 0x2F00000000000101")
vita_create_self(isle-config.self isle-config vita_create_self(isle-config.self isle-config
CONFIG CONFIG_vita/exports.yml CONFIG exports.yml
UNSAFE UNSAFE
STRIPPED STRIPPED
REL_OPTIMIZE REL_OPTIMIZE
@ -42,4 +51,7 @@ block()
endblock() endblock()
include(${scepaf_external_SOURCE_DIR}/rco.cmake) 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)

View File

@ -7,11 +7,8 @@ void VITA_SetupDefaultConfigOverrides(dictionary* p_dictionary)
{ {
SDL_Log("Overriding default config for VITA"); SDL_Log("Overriding default config for VITA");
iniparser_set(p_dictionary, "isle:diskpath", "ux0:isledecompile/isle/disk"); iniparser_set(p_dictionary, "isle:diskpath", "ux0:data/isledecompile/isle/disk");
iniparser_set(p_dictionary, "isle:cdpath", "ux0:isledecompile/isle/cd"); iniparser_set(p_dictionary, "isle:cdpath", "ux0:data/isledecompile/isle/cd");
iniparser_set(p_dictionary, "isle:UseJoystick", "true"); iniparser_set(p_dictionary, "isle:UseJoystick", "true");
iniparser_set(p_dictionary, "isle:Draw Cursor", "true"); iniparser_set(p_dictionary, "isle:Draw Cursor", "true");
// Use e_noAnimation/cut transition
// iniparser_set(p_dictionary, "isle:Transition Type", "1");
} }

View File

@ -34,7 +34,7 @@ target_compile_definitions(miniwin PRIVATE
list(APPEND GRAPHICS_BACKENDS USE_SOFTWARE_RENDER) list(APPEND GRAPHICS_BACKENDS USE_SOFTWARE_RENDER)
list(APPEND GRAPHICS_BACKENDS USE_SDL_GPU) list(APPEND GRAPHICS_BACKENDS USE_SDL_GPU)
if(NOT VITA AND NOT WINDOWS_STORE) if(NOT (VITA OR WINDOWS_STORE))
find_package(OpenGL) find_package(OpenGL)
if(OpenGL_FOUND) if(OpenGL_FOUND)
message(STATUS "Found OpenGL: enabling OpenGL 1.x renderer") message(STATUS "Found OpenGL: enabling OpenGL 1.x renderer")