Merge pull request #149 from tocic/master

Fix typos
This commit is contained in:
Jason Turner
2022-09-19 10:16:22 -06:00
committed by GitHub

View File

@@ -27,12 +27,12 @@ Use an industry standard widely accepted build tool. This prevents you from rein
* [Waf](https://waf.io/) * [Waf](https://waf.io/)
* [FASTBuild](http://www.fastbuild.org/) * [FASTBuild](http://www.fastbuild.org/)
* [Ninja](https://ninja-build.org/) - Can greatly improve the incremental build time of your larger projects. Can be used as a target for CMake. * [Ninja](https://ninja-build.org/) - Can greatly improve the incremental build time of your larger projects. Can be used as a target for CMake.
* [Bazel](http://bazel.io/) - Fast incremental builds using network artefact caching and remote execution. * [Bazel](http://bazel.io/) - Fast incremental builds using network artifact caching and remote execution.
* [Buck](http://buckbuild.com/) - Similar to Bazel, with very good support for iOS and Andoid. * [Buck](http://buckbuild.com/) - Similar to Bazel, with very good support for iOS and Android.
* [gyp](https://chromium.googlesource.com/external/gyp/) - Google's build tool for chromium. * [gyp](https://chromium.googlesource.com/external/gyp/) - Google's build tool for chromium.
* [maiken](https://github.com/Dekken/maiken) - Crossplatform build tool with Maven-esque configuration style. * [maiken](https://github.com/Dekken/maiken) - Crossplatform build tool with Maven-esque configuration style.
* [Qt Build Suite](http://doc.qt.io/qbs/) - Crossplatform build tool From Qt. * [Qt Build Suite](http://doc.qt.io/qbs/) - Crossplatform build tool From Qt.
* [meson](http://mesonbuild.com/index.html) - Open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. * [meson](http://mesonbuild.com/index.html) - Open source build system meant to be both extremely fast, and, even more importantly, as user-friendly as possible.
* [premake](https://premake.github.io/) * [premake](https://premake.github.io/)
* [xmake](https://xmake.io) - A cross-platform build utility based on Lua. Modern C/C++ build tools, Support multi-language hybrid compilation * [xmake](https://xmake.io) - A cross-platform build utility based on Lua. Modern C/C++ build tools, Support multi-language hybrid compilation
* [build2](https://build2.org) - A cargo-like complete toolchain (build system, package manager, project manager) * [build2](https://build2.org) - A cargo-like complete toolchain (build system, package manager, project manager)
@@ -49,7 +49,7 @@ Package management is an important topic in C++, with currently no clear winner.
* [qpm](https://www.qpm.io/) - Package manager for Qt * [qpm](https://www.qpm.io/) - Package manager for Qt
* [build2](https://build2.org/) - A cargo-like complete toolchain (build system, package manager, project manager) * [build2](https://build2.org/) - A cargo-like complete toolchain (build system, package manager, project manager)
* [Buckaroo](https://buckaroo.pm) - Truly decentralized cross-platform dependency manager for C/C++ and more * [Buckaroo](https://buckaroo.pm) - Truly decentralized cross-platform dependency manager for C/C++ and more
* [Vcpkg](https://github.com/microsoft/vcpkg) - Microsoft C++ Library Manager for Windows, Linux, and MacOS - [description](https://docs.microsoft.com/en-us/cpp/build/vcpkg) * [Vcpkg](https://github.com/microsoft/vcpkg) - Microsoft C++ Library Manager for Windows, Linux, and macOS - [description](https://docs.microsoft.com/en-us/cpp/build/vcpkg)
* [CPM](https://github.com/cpm-cmake/CPM.cmake) - CMake package manager for modern CMake * [CPM](https://github.com/cpm-cmake/CPM.cmake) - CMake package manager for modern CMake
## Continuous Integration ## Continuous Integration
@@ -88,7 +88,7 @@ Continuous Integration (CI) tools automatically build the source code as changes
If you have an open source, publicly-hosted project on GitHub: If you have an open source, publicly-hosted project on GitHub:
* go enable Travis Ci and AppVeyor integration right now. We'll wait for you to come back. For a simple example of how to enable it for your C++ CMake-based application, see here: https://github.com/ChaiScript/ChaiScript/blob/master/.travis.yml * go enable Travis CI and AppVeyor integration right now. We'll wait for you to come back. For a simple example of how to enable it for your C++ CMake-based application, see here: https://github.com/ChaiScript/ChaiScript/blob/master/.travis.yml
* enable one of the coverage tools listed below (Codecov or Coveralls) * enable one of the coverage tools listed below (Codecov or Coveralls)
* enable [Coverity Scan](https://scan.coverity.com) * enable [Coverity Scan](https://scan.coverity.com)
@@ -122,8 +122,8 @@ You should use as many compilers as you can for your platform(s). Each compiler
* `-Wlogical-op` (only in GCC) warn about logical operations being used where bitwise were probably wanted * `-Wlogical-op` (only in GCC) warn about logical operations being used where bitwise were probably wanted
* `-Wnull-dereference` (only in GCC >= 6.0) warn if a null dereference is detected * `-Wnull-dereference` (only in GCC >= 6.0) warn if a null dereference is detected
* `-Wuseless-cast` (only in GCC >= 4.8) warn if you perform a cast to the same type * `-Wuseless-cast` (only in GCC >= 4.8) warn if you perform a cast to the same type
* `-Wdouble-promotion` (GCC >= 4.6, Clang >= 3.8) warn if `float` is implicit promoted to `double` * `-Wdouble-promotion` (GCC >= 4.6, Clang >= 3.8) warn if `float` is implicitly promoted to `double`
* `-Wformat=2` warn on security issues around functions that format output (ie `printf`) * `-Wformat=2` warn on security issues around functions that format output (i.e., `printf`)
* `-Wlifetime` (only special branch of Clang currently) shows object lifetime issues * `-Wlifetime` (only special branch of Clang currently) shows object lifetime issues
* `-Wimplicit-fallthrough` Warns when case statements fall-through. (Included with `-Wextra` in GCC, not in clang) * `-Wimplicit-fallthrough` Warns when case statements fall-through. (Included with `-Wextra` in GCC, not in clang)
@@ -153,7 +153,7 @@ Consider using `-Weverything` and disabling the few warnings you need to on Clan
* `/w14549` 'operator': operator before comma has no effect; did you intend 'operator'? * `/w14549` 'operator': operator before comma has no effect; did you intend 'operator'?
* `/w14555` expression has no effect; expected expression with side-effect * `/w14555` expression has no effect; expected expression with side-effect
* `/w14619` pragma warning: there is no warning number 'number' * `/w14619` pragma warning: there is no warning number 'number'
* `/w14640` Enable warning on thread un-safe static member initialization * `/w14640` Enable warning on thread unsafe static member initialization
* `/w14826` Conversion from 'type1' to 'type_2' is sign-extended. This may cause unexpected runtime behavior. * `/w14826` Conversion from 'type1' to 'type_2' is sign-extended. This may cause unexpected runtime behavior.
* `/w14905` wide string literal cast to 'LPSTR' * `/w14905` wide string literal cast to 'LPSTR'
* `/w14906` string literal cast to 'LPWSTR' * `/w14906` string literal cast to 'LPWSTR'
@@ -208,7 +208,7 @@ Notes:
* For correct work it requires well formed path for headers, so before usage don't forget to pass: `--check-config`. * For correct work it requires well formed path for headers, so before usage don't forget to pass: `--check-config`.
* Finding unused headers does not work with `-j` more than 1. * Finding unused headers does not work with `-j` more than 1.
* Remember to add `--force` for code with a lot number of `#ifdef` if you need check all of them. * Remember to add `--force` for code with a lot number of `#ifdef` if you need to check all of them.
### cppclean ### cppclean
@@ -258,7 +258,7 @@ Qt Creator can plug into the clang static analyzer.
### IKOS ### IKOS
[IKOS](https://ti.arc.nasa.gov/opensource/ikos/) is an open source static analyzer, developed by NASA. It is based on the Abstract Interpretation. It is written in C++ and provides an analyzer for C and C++, using LLVM. [IKOS](https://ti.arc.nasa.gov/opensource/ikos/) is an open source static analyzer, developed by NASA. It is based on the Abstract Interpretation. It is written in C++ and provides an analyzer for C and C++, using LLVM.
The source code is [available on Github](https://github.com/NASA-SW-VnV/ikos). The source code is [available on GitHub](https://github.com/NASA-SW-VnV/ikos).
## Runtime Checkers ## Runtime Checkers
@@ -286,7 +286,7 @@ A coverage analysis tool shall be run when tests are executed to make sure the e
* [Valgrind](http://www.valgrind.org/) * [Valgrind](http://www.valgrind.org/)
* Valgrind is a runtime code analyzer that can detect memory leaks, race conditions, and other associated problems. It is supported on various Unix platforms. * Valgrind is a runtime code analyzer that can detect memory leaks, race conditions, and other associated problems. It is supported on various Unix platforms.
* [Heaptrack](https://github.com/KDE/heaptrack) * [Heaptrack](https://github.com/KDE/heaptrack)
* A profiler created by a Valgrind's Massif developper. Quite similar to Massif with pros and cons over it, way more intuitive though. * A profiler created by a Valgrind's Massif developer. Quite similar to Massif with pros and cons over it, way more intuitive though.
* [Dr Memory](http://www.drmemory.org) * [Dr Memory](http://www.drmemory.org)
* [Memoro](https://epfl-vlsc.github.io/memoro/) - A detailed heap profiler. * [Memoro](https://epfl-vlsc.github.io/memoro/) - A detailed heap profiler.
@@ -352,7 +352,7 @@ Be sure to reenable the warning after disabling it for a section of code. You do
## Testing ## Testing
CMake, mentioned above, has a built in framework for executing tests. Make sure whatever build system you use has a way to execute tests built in. CMake, mentioned above, has a built-in framework for executing tests. Make sure whatever build system you use has a way to execute tests built in.
To further aid in executing tests, consider a library such as [Google Test](https://github.com/google/googletest), [Catch](https://github.com/philsquared/Catch), [CppUTest](https://github.com/cpputest/cpputest) or [Boost.Test](http://www.boost.org/doc/libs/release/libs/test/) to help you organize the tests. To further aid in executing tests, consider a library such as [Google Test](https://github.com/google/googletest), [Catch](https://github.com/philsquared/Catch), [CppUTest](https://github.com/cpputest/cpputest) or [Boost.Test](http://www.boost.org/doc/libs/release/libs/test/) to help you organize the tests.