diff --git a/README.md b/README.md index 821b210..9c1a796 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ If you are wishing to use threeSD with a portable install of Citra (i.e. that ha * You will need a graphics card compatible with OpenGL 3.3 and install the latest graphics drivers from your vendor's website. * Operating system requirements: **64-bit** Windows (7+), Linux (flatpak compatible) or macOS (10.13+). Note that Citra on macOS 10.13 is currently broken. It is recommended to update to 10.14. * SD / microSD card reader - * Make sure it can be well connected to your PC + * Make sure it can be well connected to your PC (i.e. do not use a 10-year-old dusty one) ### On Your 3DS diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..7592664 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,70 @@ +# shallow clone +clone_depth: 5 + +os: Visual Studio 2017 + +environment: + MSYSTEM: MINGW64 + # Tell msys2 to add mingw64 to the path + MSYSTEM: MINGW64 + # Tell msys2 to inherit the current directory when starting the shell + CHERE_INVOKING: 1 + matrix: + - BUILD_TYPE: mingw + - BUILD_TYPE: msvc + +platform: + - x64 + +configuration: + - Release + +install: + - git submodule update --init --recursive + - ps: | + if ($env:BUILD_TYPE -eq 'mingw') { + $dependencies = "mingw64/mingw-w64-x86_64-cmake mingw64/mingw-w64-x86_64-qt5-static" + C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S $dependencies" + # (HACK) ignore errors + 0 + } + +before_build: + - mkdir %BUILD_TYPE%_build + - cd %BUILD_TYPE%_build + - ps: | + if ($env:BUILD_TYPE -eq 'msvc') { + # redirect stderr and change the exit code to prevent powershell from cancelling the build if cmake prints a warning + cmd /C 'cmake -G "Visual Studio 15 2017 Win64" - .. 2>&1 && exit 0' + } else { + C:\msys64\usr\bin\bash.exe -lc "cmake -G 'MSYS Makefiles' -DCMAKE_BUILD_TYPE=Release -DMINGW_STATIC_BUILD=ON .. 2>&1" + } + - cd .. + +build_script: + - ps: | + if ($env:BUILD_TYPE -eq 'msvc') { + # https://www.appveyor.com/docs/build-phase + msbuild msvc_build/threeSD.sln /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" + } else { + C:\msys64\usr\bin\bash.exe -lc 'mingw32-make -j4 -C mingw_build/ 2>&1' + } + +after_build: + - ps: | + mkdir release + + if ($env:BUILD_TYPE -eq 'msvc') { + Copy-Item .\msvc_build\bin\release\* -Destination release -Recurse + } else { + Copy-Item .\mingw_build\bin\threeSD.exe -Destination release + } + + Copy-Item .\license.txt -Destination release + Copy-Item .\README.md -Destination release + + 7z a release.7z release + +artifacts: + - path: release.7z + name: build diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8808a20..5abd8b3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -75,12 +75,10 @@ else() -Wall -Wno-attributes -pedantic - -pedantic-errors - -Wno-missing-braces ) if (WARNINGS_AS_ERRORS) - add_compile_options(-Werror -Wfatal-errors) + add_compile_options(-Werror -Wfatal-errors -pedantic-errors) endif() if (APPLE AND CMAKE_CXX_COMPILER_ID STREQUAL Clang) @@ -107,6 +105,10 @@ else() add_compile_options("-static") endif() endif() + + if (NOT DEBUG) + add_compile_options("-flto") + endif() endif() add_subdirectory(common) diff --git a/src/frontend/main.cpp b/src/frontend/main.cpp index 2a30a0e..58d2d12 100644 --- a/src/frontend/main.cpp +++ b/src/frontend/main.cpp @@ -18,6 +18,15 @@ #include "common/common_paths.h" #endif +#ifdef QT_STATICPLUGIN +#include + +Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) +#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) +Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin) +#endif +#endif + bool IsConfigGood(const Core::Config& config) { return !config.sdmc_path.empty() && !config.user_path.empty() && !config.movable_sed_path.empty() && !config.bootrom_path.empty();