Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Neto <dneto@google.com>2017-11-08 08:23:42 +0300
committerDavid Neto <dneto@google.com>2017-11-13 19:34:21 +0300
commit76555bd4bae0f751ca01a219de5b5fdb7e68f460 (patch)
tree68576ebf22954815cdbe28e7d34a8cae68f9f7b0 /README.md
parentefe12ff5a1b34d0e23d6a5515bfe0eb18aaa1761 (diff)
Tests: Add optional dependency on Effcee stateful matcher
Add Effcee as an optional dependency for use in tests. In future it will be a required dependency. Effcee is a stateful pattern matcher that has much of the functionality of LLVM's FileCheck, except in library form. Effcee makes it much easier to write tests for optimization passes. Demonstrate its use in a test for the strength-reduction pass. Update README.md with example commands of how to get sources. Update Appveyor and Travis-CI build rules. Also: Include test libraries if not SPIRV_SKIP_TESTS - SPIRV_SKIP_TESTS is implied by SPIRV_SKIP_EXECUTABLES
Diffstat (limited to 'README.md')
-rw-r--r--README.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/README.md b/README.md
index 2e61851da..1daefb586 100644
--- a/README.md
+++ b/README.md
@@ -171,6 +171,11 @@ We intend to maintain a linear history on the GitHub `master` branch.
* `example`: demo code of using SPIRV-Tools APIs
* `external/googletest`: Intended location for the
[googletest][googletest] sources, not provided
+* `external/effcee`: Location of [Effcee][effcee] sources, if the `effcee` library
+ is not already configured by an enclosing project.
+* `external/re2`: Location of [RE2][re2] sources, if the `effcee` library is not already
+ configured by an enclosing project.
+ (The Effcee project already requires RE2.)
* `include/`: API clients should add this directory to the include search path
* `external/spirv-headers`: Intended location for
[SPIR-V headers][spirv-headers], not provided
@@ -179,6 +184,14 @@ We intend to maintain a linear history on the GitHub `master` branch.
* `test/`: Tests, using the [googletest][googletest] framework
* `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
The project contains a number of tests, used to drive development
@@ -197,6 +210,18 @@ tests:
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.
+### Optional 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`.
+
+Currently Effcee is an optional dependency, but soon it will be required.
+
## Build
The project uses [CMake][cmake] to generate platform-specific build
@@ -470,6 +495,8 @@ limitations under the License.
[googletest]: https://github.com/google/googletest
[googletest-pull-612]: https://github.com/google/googletest/pull/612
[googletest-issue-610]: https://github.com/google/googletest/issues/610
+[effcee]: https://github.com/google/effcee
+[re2]: https://github.com/google/re2
[CMake]: https://cmake.org/
[cpp-style-guide]: https://google.github.io/styleguide/cppguide.html
[clang-sanitizers]: http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation