diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 00000000..3ae51d15 --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,39 @@ +version: '{build}' + +image: + - Visual Studio 2017 + +build: + verbosity: detailed + +configuration: + - Release + +platform: + - x64 + +environment: + matrix: + - arch: Win64 + +matrix: + fast_finish: true + +install: + - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip" + - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip + - 7z x ninja.zip -oc:\projects\ninja > nul + - set PATH=c:\projects\ninja;%PATH% + - ninja --version + +before_build: + - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 + +build_script: + - mkdir build + - cd build + - cmake .. -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_BUILD_TYPE=Release -G Ninja + - ninja + +cache: + - c:\projects\vcpkg\installed diff --git a/README.md b/README.md index 84510e22..356428aa 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ make -j`nproc` Solus, OpenSUSE, Gentoo and RHEL/CentOS) and Mac OS X (homebrew, macports or fink.) -The Ninja cmake generator is also now supported (except for Visual Studio.) +The Ninja cmake generator is also now supported. ## Building a Libretro core @@ -88,8 +88,8 @@ To build in the visual studio command prompt, use something like this: ``` mkdir build cd build -cmake .. -DVCPKG_TARGET_TRIPLET=x64-windows -msbuild -m -p:BuildInParallel=true -p:Configuration=Release .\ALL_BUILD.vcxproj +cmake .. -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_BUILD_TYPE=Release -G Ninja +ninja ``` This support is new and we are still working out some issues, including support diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 6983df94..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '{build}' - -image: - - Visual Studio 2017 - -configuration: - - Release - -platform: - - x64 - -environment: - matrix: - - arch: Win64 - -matrix: - fast_finish: true - -before_build: -- cmd: |- - mkdir build - cd build - cmake .. -DVCPKG_TARGET_TRIPLET=x64-windows - -build_script: - - msbuild -m -p:BuildInParallel=true -p:Configuration=Release ALL_BUILD.vcxproj - -cache: - - c:\projects\vcpkg\installed diff --git a/cmake/Set-Toolchain-vcpkg.cmake b/cmake/Set-Toolchain-vcpkg.cmake index 21f214e2..ac35c3f2 100644 --- a/cmake/Set-Toolchain-vcpkg.cmake +++ b/cmake/Set-Toolchain-vcpkg.cmake @@ -95,10 +95,16 @@ if(VCPKG_TARGET_TRIPLET) WORKING_DIRECTORY ${VCPKG_ROOT} ) - if(WIN32 AND VCPKG_TARGET_TRIPLET MATCHES x64) + if(WIN32 AND VCPKG_TARGET_TRIPLET MATCHES x64 AND CMAKE_GENERATOR MATCHES "Visual Studio") set(CMAKE_GENERATOR_PLATFORM x64 CACHE STRING "visual studio build architecture" FORCE) endif() + if(NOT CMAKE_GENERATOR MATCHES "Visual Studio") + # set toolchain to VS for e.g. Ninja or jom + set(CMAKE_C_COMPILER cl CACHE STRING "Microsoft C/C++ Compiler" FORCE) + set(CMAKE_CXX_COMPILER cl CACHE STRING "Microsoft C/C++ Compiler" FORCE) + endif() + set(CMAKE_TOOLCHAIN_FILE ${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake CACHE FILEPATH "vcpkg toolchain" FORCE) include(${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake) endif()