Remove Appveyor CI, update README (#4578)
- Remove Appveyor CI - Write new "Getting the source" subsection, consolidating material from a couple of places. Emphasize using the utils/git-sync-deps script for getting a known-good combination of sources. - Built artifacts: - top of tree artifacts are from Kokoro CI bots - mention Vulkan SDK and Android NDK as alternatives Fixes: #4577
This commit is contained in:
Родитель
3e6a85303d
Коммит
10343e53ed
|
@ -1,90 +0,0 @@
|
||||||
# Windows Build Configuration for AppVeyor
|
|
||||||
# http://www.appveyor.com/docs/appveyor-yml
|
|
||||||
|
|
||||||
# version format
|
|
||||||
version: "{build}"
|
|
||||||
|
|
||||||
# The most recent compiler gives the most interesting new results.
|
|
||||||
# Put it first so we get its feedback first.
|
|
||||||
os:
|
|
||||||
- Visual Studio 2017
|
|
||||||
#- Visual Studio 2013
|
|
||||||
|
|
||||||
platform:
|
|
||||||
- x64
|
|
||||||
|
|
||||||
configuration:
|
|
||||||
- Debug
|
|
||||||
#- Release
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
|
|
||||||
# Travis advances the master-tot tag to current top of the tree after
|
|
||||||
# each push into the master branch, because it relies on that tag to
|
|
||||||
# upload build artifacts to the master-tot release. This will cause
|
|
||||||
# double testing for each push on Appveyor: one for the push, one for
|
|
||||||
# the tag advance. Disable testing tags.
|
|
||||||
skip_tags: true
|
|
||||||
|
|
||||||
clone_depth: 1
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
fast_finish: true # Show final status immediately if a test fails.
|
|
||||||
#exclude:
|
|
||||||
# - os: Visual Studio 2013
|
|
||||||
# configuration: Debug
|
|
||||||
|
|
||||||
# scripts that run after cloning repository
|
|
||||||
install:
|
|
||||||
# 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:\ninja > nul
|
|
||||||
- set PATH=C:\ninja;C:\Python36;%PATH%
|
|
||||||
|
|
||||||
before_build:
|
|
||||||
- git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers
|
|
||||||
- git clone https://github.com/google/googletest.git external/googletest
|
|
||||||
- cd external && cd googletest && git reset --hard 1fb1bb23bb8418dc73a5a9a82bbed31dc610fec7 && cd .. && cd ..
|
|
||||||
- git clone --depth=1 https://github.com/google/effcee.git external/effcee
|
|
||||||
- git clone --depth=1 https://github.com/google/re2.git external/re2
|
|
||||||
# Set path and environment variables for the current Visual Studio version
|
|
||||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2013" (call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64)
|
|
||||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" (call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64)
|
|
||||||
|
|
||||||
build:
|
|
||||||
parallel: true # enable MSBuild parallel builds
|
|
||||||
verbosity: minimal
|
|
||||||
|
|
||||||
build_script:
|
|
||||||
- mkdir build && cd build
|
|
||||||
- cmake -GNinja -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DCMAKE_INSTALL_PREFIX=install -DRE2_BUILD_TESTING=OFF ..
|
|
||||||
- ninja install
|
|
||||||
|
|
||||||
test_script:
|
|
||||||
- ctest -C %CONFIGURATION% --output-on-failure --timeout 310
|
|
||||||
|
|
||||||
after_test:
|
|
||||||
# Zip build artifacts for uploading and deploying
|
|
||||||
- cd install
|
|
||||||
- 7z a SPIRV-Tools-master-windows-"%PLATFORM%"-"%CONFIGURATION%".zip *\*
|
|
||||||
|
|
||||||
artifacts:
|
|
||||||
- path: build\install\*.zip
|
|
||||||
name: artifacts-zip
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
- provider: GitHub
|
|
||||||
auth_token:
|
|
||||||
secure: TMfcScKzzFIm1YgeV/PwCRXFDCw8Xm0wY2Vb2FU6WKlbzb5eUITTpr6I5vHPnAxS
|
|
||||||
release: master-tot
|
|
||||||
description: "Continuous build of the latest master branch by Appveyor and Travis CI"
|
|
||||||
artifact: artifacts-zip
|
|
||||||
draft: false
|
|
||||||
prerelease: false
|
|
||||||
force_update: true
|
|
||||||
on:
|
|
||||||
branch: master
|
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
84
README.md
84
README.md
|
@ -53,7 +53,7 @@ These versions undergo extra testing.
|
||||||
Releases are not directly related to releases (or versions) of
|
Releases are not directly related to releases (or versions) of
|
||||||
[SPIRV-Headers][spirv-headers].
|
[SPIRV-Headers][spirv-headers].
|
||||||
Releases of SPIRV-Tools are tested against the version of SPIRV-Headers listed
|
Releases of SPIRV-Tools are tested against the version of SPIRV-Headers listed
|
||||||
in the DEPS file.
|
in the [DEPS](DEPS) file.
|
||||||
The release generally uses the most recent compatible version of SPIRV-Headers
|
The release generally uses the most recent compatible version of SPIRV-Headers
|
||||||
available at the time of release.
|
available at the time of release.
|
||||||
No version of SPIRV-Headers other than the one listed in the DEPS file is
|
No version of SPIRV-Headers other than the one listed in the DEPS file is
|
||||||
|
@ -256,6 +256,34 @@ Contributions via merge request are welcome. Changes should:
|
||||||
|
|
||||||
We intend to maintain a linear history on the GitHub `master` branch.
|
We intend to maintain a linear history on the GitHub `master` branch.
|
||||||
|
|
||||||
|
### Getting the source
|
||||||
|
|
||||||
|
Example of getting sources, assuming SPIRV-Tools is configured as a standalone project:
|
||||||
|
|
||||||
|
git clone https://github.com/KhronosGroup/SPIRV-Tools.git spirv-tools
|
||||||
|
cd spirv-tools
|
||||||
|
|
||||||
|
# Check out sources for dependencies, at versions known to work together,
|
||||||
|
# as listed in the DEPS file.
|
||||||
|
python3 utils/git-sync-deps
|
||||||
|
|
||||||
|
For some kinds of development, you may need the latest sources from the third-party projects:
|
||||||
|
|
||||||
|
git clone https://github.com/KhronosGroup/SPIRV-Headers.git spirv-tools/external/spirv-headers
|
||||||
|
git clone https://github.com/google/googletest.git spirv-tools/external/googletest
|
||||||
|
git clone https://github.com/google/effcee.git spirv-tools/external/effcee
|
||||||
|
git clone https://github.com/google/re2.git spirv-tools/external/re2
|
||||||
|
|
||||||
|
#### Dependency on Effcee
|
||||||
|
|
||||||
|
Some tests depend on the [Effcee][effcee] library for stateful matching.
|
||||||
|
Effcee itself depends on [RE2][re2].
|
||||||
|
|
||||||
|
* If SPIRV-Tools is configured as part of a larger project that already uses
|
||||||
|
Effcee, then that project should include Effcee before SPIRV-Tools.
|
||||||
|
* Otherwise, SPIRV-Tools expects Effcee sources to appear in `external/effcee`
|
||||||
|
and RE2 sources to appear in `external/re2`.
|
||||||
|
|
||||||
### Source code organization
|
### Source code organization
|
||||||
|
|
||||||
* `example`: demo code of using SPIRV-Tools APIs
|
* `example`: demo code of using SPIRV-Tools APIs
|
||||||
|
@ -274,14 +302,6 @@ We intend to maintain a linear history on the GitHub `master` branch.
|
||||||
* `test/`: Tests, using the [googletest][googletest] framework
|
* `test/`: Tests, using the [googletest][googletest] framework
|
||||||
* `tools/`: Command line executables
|
* `tools/`: Command line executables
|
||||||
|
|
||||||
Example of getting sources, assuming SPIRV-Tools is configured as a standalone project:
|
|
||||||
|
|
||||||
git clone https://github.com/KhronosGroup/SPIRV-Tools.git spirv-tools
|
|
||||||
git clone https://github.com/KhronosGroup/SPIRV-Headers.git spirv-tools/external/spirv-headers
|
|
||||||
git clone https://github.com/google/googletest.git spirv-tools/external/googletest
|
|
||||||
git clone https://github.com/google/effcee.git spirv-tools/external/effcee
|
|
||||||
git clone https://github.com/google/re2.git spirv-tools/external/re2
|
|
||||||
|
|
||||||
### Tests
|
### Tests
|
||||||
|
|
||||||
The project contains a number of tests, used to drive development
|
The project contains a number of tests, used to drive development
|
||||||
|
@ -295,46 +315,12 @@ tests:
|
||||||
`googletest` source into the `<spirv-dir>/external/googletest` directory before
|
`googletest` source into the `<spirv-dir>/external/googletest` directory before
|
||||||
configuring and building the project.
|
configuring and building the project.
|
||||||
|
|
||||||
*Note*: You must use a version of googletest that includes
|
|
||||||
[a fix][googletest-pull-612] for [googletest issue 610][googletest-issue-610].
|
|
||||||
The fix is included on the googletest master branch any time after 2015-11-10.
|
|
||||||
In particular, googletest must be newer than version 1.7.0.
|
|
||||||
|
|
||||||
### Dependency on Effcee
|
|
||||||
|
|
||||||
Some tests depend on the [Effcee][effcee] library for stateful matching.
|
|
||||||
Effcee itself depends on [RE2][re2].
|
|
||||||
|
|
||||||
* If SPIRV-Tools is configured as part of a larger project that already uses
|
|
||||||
Effcee, then that project should include Effcee before SPIRV-Tools.
|
|
||||||
* Otherwise, SPIRV-Tools expects Effcee sources to appear in `external/effcee`
|
|
||||||
and RE2 sources to appear in `external/re2`.
|
|
||||||
|
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
Instead of building manually, you can also download the binaries for your
|
*Note*: Prebuilt binaries are available from the [downloads](docs/downloads.md) page.
|
||||||
platform directly from the [master-tot release][master-tot-release] on GitHub.
|
|
||||||
Those binaries are automatically uploaded by the buildbots after successful
|
|
||||||
testing and they always reflect the current top of the tree of the master
|
|
||||||
branch.
|
|
||||||
|
|
||||||
In order to build the code, you first need to sync the external repositories
|
First [get the sources](#getting-the-source).
|
||||||
that it depends on. Assume that `<spirv-dir>` is the root directory of the
|
Then build using CMake, Bazel, or Android ndk-build.
|
||||||
checked out code:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd <spirv-dir>
|
|
||||||
git clone https://github.com/KhronosGroup/SPIRV-Headers.git external/spirv-headers
|
|
||||||
git clone https://github.com/google/effcee.git external/effcee
|
|
||||||
git clone https://github.com/google/re2.git external/re2
|
|
||||||
git clone https://github.com/google/googletest.git external/googletest # optional
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
*Note*:
|
|
||||||
The script `utils/git-sync-deps` can be used to checkout and/or update the
|
|
||||||
contents of the repos under `external/` instead of manually maintaining them.
|
|
||||||
|
|
||||||
### Build using CMake
|
### Build using CMake
|
||||||
You can build the project using [CMake][cmake]:
|
You can build the project using [CMake][cmake]:
|
||||||
|
@ -435,7 +421,7 @@ via setting `SPIRV_TOOLS_EXTRA_DEFINITIONS`. For example, by setting it to
|
||||||
`/D_ITERATOR_DEBUG_LEVEL=0` on Windows, you can disable checked iterators and
|
`/D_ITERATOR_DEBUG_LEVEL=0` on Windows, you can disable checked iterators and
|
||||||
iterator debugging.
|
iterator debugging.
|
||||||
|
|
||||||
### Android
|
### Android ndk-build
|
||||||
|
|
||||||
SPIR-V Tools supports building static libraries `libSPIRV-Tools.a` and
|
SPIR-V Tools supports building static libraries `libSPIRV-Tools.a` and
|
||||||
`libSPIRV-Tools-opt.a` for Android:
|
`libSPIRV-Tools-opt.a` for Android:
|
||||||
|
@ -456,7 +442,8 @@ $ANDROID_NDK/ndk-build -C ../android_test \
|
||||||
```
|
```
|
||||||
|
|
||||||
### Updating DEPS
|
### Updating DEPS
|
||||||
Occasionally the entries in DEPS will need to be updated. This is done on demand
|
|
||||||
|
Occasionally the entries in [DEPS](DEPS) will need to be updated. This is done on demand
|
||||||
when there is a request to do this, often due to downstream breakages. There is
|
when there is a request to do this, often due to downstream breakages. There is
|
||||||
a script `utils/roll_deps.sh` provided, which will generate a patch with the
|
a script `utils/roll_deps.sh` provided, which will generate a patch with the
|
||||||
updated DEPS values. This will still need to be tested in your checkout to
|
updated DEPS values. This will still need to be tested in your checkout to
|
||||||
|
@ -743,4 +730,3 @@ limitations under the License.
|
||||||
[CMake]: https://cmake.org/
|
[CMake]: https://cmake.org/
|
||||||
[cpp-style-guide]: https://google.github.io/styleguide/cppguide.html
|
[cpp-style-guide]: https://google.github.io/styleguide/cppguide.html
|
||||||
[clang-sanitizers]: http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
|
[clang-sanitizers]: http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
|
||||||
[master-tot-release]: https://github.com/KhronosGroup/SPIRV-Tools/releases/tag/master-tot
|
|
||||||
|
|
|
@ -1,14 +1,28 @@
|
||||||
# Downloads
|
# Downloads
|
||||||
Download the latest builds.
|
|
||||||
|
|
||||||
## Release
|
## Latest builds
|
||||||
|
|
||||||
|
Download the latest builds of the [master](https://github.com/KhronosGroup/SPIRV-Tools/tree/master) branch.
|
||||||
|
|
||||||
|
### Release build
|
||||||
| Windows | Linux | MacOS |
|
| Windows | Linux | MacOS |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| [MSVC 2017](https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2017_release.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_clang_release.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_macos_clang_release.html) |
|
| [MSVC 2017](https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2017_release.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_clang_release.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_macos_clang_release.html) |
|
||||||
| | [gcc](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_gcc_release.html) | |
|
| | [gcc](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_gcc_release.html) | |
|
||||||
|
|
||||||
## Debug
|
### Debug build
|
||||||
| Windows | Linux | MacOS |
|
| Windows | Linux | MacOS |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| [MSVC 2017](https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2017_debug.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_clang_debug.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_macos_clang_debug.html) |
|
| [MSVC 2017](https://storage.googleapis.com/spirv-tools/badges/build_link_windows_vs2017_debug.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_clang_debug.html) | [clang](https://storage.googleapis.com/spirv-tools/badges/build_link_macos_clang_debug.html) |
|
||||||
| | [gcc](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_gcc_debug.html) | |
|
| | [gcc](https://storage.googleapis.com/spirv-tools/badges/build_link_linux_gcc_debug.html) | |
|
||||||
|
|
||||||
|
|
||||||
|
## Vulkan SDK
|
||||||
|
|
||||||
|
SPIRV-Tools is published as part of the [LunarG Vulkan SDK](https://www.lunarg.com/vulkan-sdk/).
|
||||||
|
The Vulkan SDK is updated approximately every six weeks.
|
||||||
|
|
||||||
|
## Android NDK
|
||||||
|
|
||||||
|
SPIRV-Tools host executables, and library sources are published as
|
||||||
|
part of the [Android NDK](https://developer.android.com/ndk/downloads).
|
||||||
|
|
Загрузка…
Ссылка в новой задаче