diff --git a/CMakeLists.txt b/CMakeLists.txt index 56743bb1b..86d2423ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,7 +124,7 @@ else() # /EHsc - C++-only exception handling semantics # /Zc:throwingNew - let codegen assume `operator new` will never return null # /Zc:inline - let codegen omit inline functions in object files - set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} /EHsc /Zc:throwingNew,inline" CACHE STRING "" FORCE) + set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} /EHsc /std:c++latest /Zc:throwingNew,inline" CACHE STRING "" FORCE) # /MDd - Multi-threaded Debug Runtime DLL set(CMAKE_C_FLAGS_DEBUG "/Od /MDd" CACHE STRING "" FORCE) diff --git a/CMakeModules/CopyYuzuQt5Deps.cmake b/CMakeModules/CopyYuzuQt5Deps.cmake index bfad52c4a..ed24c742c 100644 --- a/CMakeModules/CopyYuzuQt5Deps.cmake +++ b/CMakeModules/CopyYuzuQt5Deps.cmake @@ -1,6 +1,6 @@ function(copy_yuzu_Qt5_deps target_dir) include(WindowsCopyFiles) - set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/") + set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$/") set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin") set(Qt5_PLATFORMS_DIR "${Qt5_DIR}/../../../plugins/platforms/") set(PLATFORMS ${DLL_DEST}platforms/) diff --git a/CMakeModules/CopyYuzuSDLDeps.cmake b/CMakeModules/CopyYuzuSDLDeps.cmake index e6f455960..5963684f4 100644 --- a/CMakeModules/CopyYuzuSDLDeps.cmake +++ b/CMakeModules/CopyYuzuSDLDeps.cmake @@ -1,5 +1,5 @@ function(copy_yuzu_SDL_deps target_dir) include(WindowsCopyFiles) - set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/") + set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$/") windows_copy_files(${target_dir} ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll) endfunction(copy_yuzu_SDL_deps) diff --git a/CMakeModules/CopyYuzuUnicornDeps.cmake b/CMakeModules/CopyYuzuUnicornDeps.cmake index c32f717c8..7af0ef023 100644 --- a/CMakeModules/CopyYuzuUnicornDeps.cmake +++ b/CMakeModules/CopyYuzuUnicornDeps.cmake @@ -1,6 +1,6 @@ function(copy_yuzu_unicorn_deps target_dir) include(WindowsCopyFiles) - set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/") + set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$/") windows_copy_files(${target_dir} ${UNICORN_DLL_DIR} ${DLL_DEST} libgcc_s_seh-1.dll libwinpthread-1.dll diff --git a/appveyor.yml b/appveyor.yml index fb16cae17..72cda26a7 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -36,20 +36,12 @@ install: } before_build: - # Install Ninja - - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip" - - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip - - 7z x ninja.zip -oC:\projects\deps\ninja > nul - - set PATH=C:\projects\deps\ninja;%PATH% - - ninja --version - - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 - - 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 "Ninja" -DCMAKE_BUILD_TYPE=Release -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_BUNDLED_UNICORN=1 .. 2>&1 && exit 0' + cmd /C 'cmake -G "Visual Studio 15 2017 Win64" -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_BUNDLED_UNICORN=1 .. 2>&1 && exit 0' } else { C:\msys64\usr\bin\bash.exe -lc "cmake -G 'MSYS Makefiles' -DYUZU_BUILD_UNICORN=1 -DCMAKE_BUILD_TYPE=Release .. 2>&1" } @@ -59,7 +51,7 @@ build_script: - ps: | if ($env:BUILD_TYPE -eq 'msvc') { # https://www.appveyor.com/docs/build-phase - ninja -C msvc_build + msbuild msvc_build/yuzu.sln /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" } else { C:\msys64\usr\bin\bash.exe -lc 'mingw32-make -C mingw_build/ 2>&1' } @@ -88,7 +80,7 @@ after_build: $env:BUILD_SYMBOLS = $MSVC_BUILD_PDB $env:BUILD_UPDATE = $MSVC_SEVENZIP - $BUILD_DIR = ".\msvc_build\bin" + $BUILD_DIR = ".\msvc_build\bin\Release" # Make a debug symbol upload mkdir pdb diff --git a/externals/cmake-modules/WindowsCopyFiles.cmake b/externals/cmake-modules/WindowsCopyFiles.cmake index a21b2e2d7..cd0c2ce47 100644 --- a/externals/cmake-modules/WindowsCopyFiles.cmake +++ b/externals/cmake-modules/WindowsCopyFiles.cmake @@ -22,7 +22,7 @@ function(windows_copy_files TARGET SOURCE_DIR DEST_DIR) # cmake adds an extra check for command success which doesn't work too well with robocopy # so trick it into thinking the command was successful with the || cmd /c "exit /b 0" add_custom_command(TARGET ${TARGET} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR} + COMMAND if not exist ${DEST_DIR} mkdir ${DEST_DIR} 2> nul COMMAND robocopy ${SOURCE_DIR} ${DEST_DIR} ${ARGN} /NJH /NJS /NDL /NFL /NC /NS /NP || cmd /c "exit /b 0" ) -endfunction() +endfunction() \ No newline at end of file