Merge pull request #526 from janisozaur/appveyor-ninja
Use Ninja for MSVC AppVeyor builds
This commit is contained in:
commit
ea1880f47c
|
@ -124,7 +124,7 @@ else()
|
||||||
# /EHsc - C++-only exception handling semantics
|
# /EHsc - C++-only exception handling semantics
|
||||||
# /Zc:throwingNew - let codegen assume `operator new` will never return null
|
# /Zc:throwingNew - let codegen assume `operator new` will never return null
|
||||||
# /Zc:inline - let codegen omit inline functions in object files
|
# /Zc:inline - let codegen omit inline functions in object files
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} /EHsc /std:c++latest /Zc:throwingNew,inline" CACHE STRING "" FORCE)
|
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} /EHsc /Zc:throwingNew,inline" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
# /MDd - Multi-threaded Debug Runtime DLL
|
# /MDd - Multi-threaded Debug Runtime DLL
|
||||||
set(CMAKE_C_FLAGS_DEBUG "/Od /MDd" CACHE STRING "" FORCE)
|
set(CMAKE_C_FLAGS_DEBUG "/Od /MDd" CACHE STRING "" FORCE)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
function(copy_yuzu_Qt5_deps target_dir)
|
function(copy_yuzu_Qt5_deps target_dir)
|
||||||
include(WindowsCopyFiles)
|
include(WindowsCopyFiles)
|
||||||
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/")
|
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/")
|
||||||
set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin")
|
set(Qt5_DLL_DIR "${Qt5_DIR}/../../../bin")
|
||||||
set(Qt5_PLATFORMS_DIR "${Qt5_DIR}/../../../plugins/platforms/")
|
set(Qt5_PLATFORMS_DIR "${Qt5_DIR}/../../../plugins/platforms/")
|
||||||
set(PLATFORMS ${DLL_DEST}platforms/)
|
set(PLATFORMS ${DLL_DEST}platforms/)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
function(copy_yuzu_SDL_deps target_dir)
|
function(copy_yuzu_SDL_deps target_dir)
|
||||||
include(WindowsCopyFiles)
|
include(WindowsCopyFiles)
|
||||||
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/")
|
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/")
|
||||||
windows_copy_files(${target_dir} ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll)
|
windows_copy_files(${target_dir} ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll)
|
||||||
endfunction(copy_yuzu_SDL_deps)
|
endfunction(copy_yuzu_SDL_deps)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
function(copy_yuzu_unicorn_deps target_dir)
|
function(copy_yuzu_unicorn_deps target_dir)
|
||||||
include(WindowsCopyFiles)
|
include(WindowsCopyFiles)
|
||||||
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/")
|
set(DLL_DEST "${CMAKE_BINARY_DIR}/bin/")
|
||||||
windows_copy_files(${target_dir} ${UNICORN_DLL_DIR} ${DLL_DEST}
|
windows_copy_files(${target_dir} ${UNICORN_DLL_DIR} ${DLL_DEST}
|
||||||
libgcc_s_seh-1.dll
|
libgcc_s_seh-1.dll
|
||||||
libwinpthread-1.dll
|
libwinpthread-1.dll
|
||||||
|
|
14
appveyor.yml
14
appveyor.yml
|
@ -36,12 +36,20 @@ install:
|
||||||
}
|
}
|
||||||
|
|
||||||
before_build:
|
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
|
- mkdir %BUILD_TYPE%_build
|
||||||
- cd %BUILD_TYPE%_build
|
- cd %BUILD_TYPE%_build
|
||||||
- ps: |
|
- ps: |
|
||||||
if ($env:BUILD_TYPE -eq 'msvc') {
|
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
|
# 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" -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_BUNDLED_UNICORN=1 .. 2>&1 && exit 0'
|
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'
|
||||||
} else {
|
} else {
|
||||||
C:\msys64\usr\bin\bash.exe -lc "cmake -G 'MSYS Makefiles' -DYUZU_BUILD_UNICORN=1 -DCMAKE_BUILD_TYPE=Release .. 2>&1"
|
C:\msys64\usr\bin\bash.exe -lc "cmake -G 'MSYS Makefiles' -DYUZU_BUILD_UNICORN=1 -DCMAKE_BUILD_TYPE=Release .. 2>&1"
|
||||||
}
|
}
|
||||||
|
@ -51,7 +59,7 @@ build_script:
|
||||||
- ps: |
|
- ps: |
|
||||||
if ($env:BUILD_TYPE -eq 'msvc') {
|
if ($env:BUILD_TYPE -eq 'msvc') {
|
||||||
# https://www.appveyor.com/docs/build-phase
|
# https://www.appveyor.com/docs/build-phase
|
||||||
msbuild msvc_build/yuzu.sln /maxcpucount /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
ninja -C msvc_build
|
||||||
} else {
|
} else {
|
||||||
C:\msys64\usr\bin\bash.exe -lc 'mingw32-make -C mingw_build/ 2>&1'
|
C:\msys64\usr\bin\bash.exe -lc 'mingw32-make -C mingw_build/ 2>&1'
|
||||||
}
|
}
|
||||||
|
@ -80,7 +88,7 @@ after_build:
|
||||||
$env:BUILD_SYMBOLS = $MSVC_BUILD_PDB
|
$env:BUILD_SYMBOLS = $MSVC_BUILD_PDB
|
||||||
$env:BUILD_UPDATE = $MSVC_SEVENZIP
|
$env:BUILD_UPDATE = $MSVC_SEVENZIP
|
||||||
|
|
||||||
$BUILD_DIR = ".\msvc_build\bin\Release"
|
$BUILD_DIR = ".\msvc_build\bin"
|
||||||
|
|
||||||
# Make a debug symbol upload
|
# Make a debug symbol upload
|
||||||
mkdir pdb
|
mkdir pdb
|
||||||
|
|
|
@ -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
|
# 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"
|
# so trick it into thinking the command was successful with the || cmd /c "exit /b 0"
|
||||||
add_custom_command(TARGET ${TARGET} POST_BUILD
|
add_custom_command(TARGET ${TARGET} POST_BUILD
|
||||||
COMMAND if not exist ${DEST_DIR} mkdir ${DEST_DIR} 2> nul
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${DEST_DIR}
|
||||||
COMMAND robocopy ${SOURCE_DIR} ${DEST_DIR} ${ARGN} /NJH /NJS /NDL /NFL /NC /NS /NP || cmd /c "exit /b 0"
|
COMMAND robocopy ${SOURCE_DIR} ${DEST_DIR} ${ARGN} /NJH /NJS /NDL /NFL /NC /NS /NP || cmd /c "exit /b 0"
|
||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
Reference in New Issue