Initial project scaffold for Setec Partition Wizard

C++17/Qt6 application for disk recovery, repair, flashing, formatting,
and USB security key creation on Windows. Includes CMake build system,
tabbed UI shell with 6 main tabs, core type system with Result<T>
monadic error handling, admin elevation, and dark Catppuccin theme.
This commit is contained in:
DigiJ
2026-03-11 19:11:25 -07:00
commit 179bb85c4f
42 changed files with 2399 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
# Compiler warning settings for MSVC and GCC/Clang
if(MSVC)
add_compile_options(/W4 /permissive- /utf-8)
# Treat warnings as errors in CI builds
if(DEFINED ENV{CI})
add_compile_options(/WX)
endif()
else()
add_compile_options(-Wall -Wextra -Wpedantic)
if(DEFINED ENV{CI})
add_compile_options(-Werror)
endif()
endif()

9
cmake/FindWMI.cmake Normal file
View File

@@ -0,0 +1,9 @@
# FindWMI.cmake - Locate WMI libraries on Windows
# Sets WMI_FOUND, WMI_LIBRARIES
if(WIN32)
set(WMI_LIBRARIES wbemuuid ole32 oleaut32 setupapi)
set(WMI_FOUND TRUE)
else()
set(WMI_FOUND FALSE)
endif()

View File

@@ -0,0 +1,16 @@
# QtDeployHelper.cmake - Post-build windeployqt integration
function(spw_deploy_qt TARGET)
if(WIN32)
find_program(WINDEPLOYQT windeployqt HINTS "${Qt6_DIR}/../../../bin")
if(WINDEPLOYQT)
add_custom_command(TARGET ${TARGET} POST_BUILD
COMMAND "${WINDEPLOYQT}"
--no-translations
--no-system-d3d-compiler
--no-opengl-sw
"$<TARGET_FILE:${TARGET}>"
COMMENT "Running windeployqt on ${TARGET}..."
)
endif()
endif()
endfunction()

12
cmake/Version.cmake Normal file
View File

@@ -0,0 +1,12 @@
# Version.cmake - Parse version from project and expose as definitions
set(SPW_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(SPW_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(SPW_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(SPW_VERSION_STRING "${PROJECT_VERSION}")
add_compile_definitions(
SPW_VERSION_MAJOR=${SPW_VERSION_MAJOR}
SPW_VERSION_MINOR=${SPW_VERSION_MINOR}
SPW_VERSION_PATCH=${SPW_VERSION_PATCH}
SPW_VERSION_STRING="${SPW_VERSION_STRING}"
)