diff options
author | Guillaume Chatelet <gchatelet@google.com> | 2018-02-09 19:04:20 +0300 |
---|---|---|
committer | Guillaume Chatelet <gchatelet@google.com> | 2018-02-09 19:04:20 +0300 |
commit | 8818e6ac6ebbc4cf6c504bb07e6472eea5d193c5 (patch) | |
tree | f19734f5db253859495f35b7fa70a28b46153d87 | |
parent | 6395af0fc6ac20afcd2b5c4c60fd53d1c2b76df9 (diff) |
Updating documentation part 1.v0.1.0
-rw-r--r-- | README.md | 22 | ||||
-rw-r--r-- | cmake/README.md | 28 |
2 files changed, 50 insertions, 0 deletions
@@ -3,6 +3,15 @@ A cross-platform C library to retrieve CPU features (such as available instructions) at runtime. +## Table of Contents + +- [Design Rationale](#rationale) +- [Code samples](#codesample) +- [What's supported](#support) +- [License](#license) +- [Build with cmake](#cmake) + +<a name="rationale"></a> ## Design Rationale - **Simple to use.** See the snippets below for examples. @@ -18,6 +27,7 @@ instructions) at runtime. `malloc`, `memcpy`, and `memcmp`. - **Unit tested.** +<a name="codesample"></a> ### Checking features at runtime Here's a simple example that executes a codepath if the CPU supports both the @@ -94,6 +104,7 @@ static const bool has_fast_avx = info.features.avx && uarch != INTEL_SNB; This feature is currently available only for x86 microarchitectures. +<a name="support"></a> ## What's supported | | x86 | ARM | AArch64 | MIPS | POWER | @@ -116,3 +127,14 @@ This feature is currently available only for x86 microarchitectures. implemented efficiently in hardware (e.g. AVX on Sandybridge). Exposing the microarchitecture allows the client to reject particular microarchitectures. + +<a name="license"></a> +## License + +The cpu_features library is licensed under the terms of the Apache license. +See [LICENSE](LICENSE) for more information. + +<a name="cmake"></a> +## Build with CMake + +Please check the [CMake build instructions](cmake/README.md) diff --git a/cmake/README.md b/cmake/README.md new file mode 100644 index 0000000..b6baeaa --- /dev/null +++ b/cmake/README.md @@ -0,0 +1,28 @@ +# CMake build instructions + +## Recommended usage : Incorporating cpu_features into a CMake project + + For API / ABI compatibility reasons, it is recommended to build and use + cpu_features in a subdirectory of your project or as an embedded dependency. + + This is similar to the recommended usage of the googletest framework + ( https://github.com/google/googletest/blob/master/googletest/README.md ) + + Build and use step-by-step + + + 1- Download cpu_features and copy it in a sub-directory in your project. + or add cpu_features as a git-submodule in your project + + 2- You can then use the cmake command `add_subdirectory()` to include + cpu_features directly and use the `cpu_features` target in your project. + + 3- Add the `cpu_features` target to the `target_link_libraries()` section of + your executable or of your library. + +## Enabling tests + + CMake default options for cpu_features is Release built type with tests + disabled. To enable testing set cmake `BUILD_TESTING` variable to `ON`, + [.travis.yml](../.travis.yml) and [appveyor.yml](../appveyor.yml) have up to + date examples. |