Commit graph

375 commits

Author SHA1 Message Date
Matt Clarkson 36c1eb6975 Coverage support with LCOV and GCOV
This patch adds a `coverage` target that allows coverage statisitics to be
retrieved for the project. It requires that lcov and gcov is installed and
that the generator is unix makefiles but this can be improved upon in
future releases.

To make it work use the coverage build type:

```
cmake -DCMAKE_BUILD_TYPE=Coverage .
make coverage
```
2015-05-13 09:17:38 +01:00
Dominic Hamon d8c7605341 Update README.md 2015-05-12 11:32:44 -07:00
Matt Clarkson 3314aa43c2 Allow the user to set the C++ standard to use
This is useful to test the library at different standard levels. Currently
doesn't search for C++14 in 'auto' mode. Can enable in the future
2015-05-12 17:15:41 +01:00
Matt Clarkson 8b5016034f Ignore tests 2015-05-12 17:15:41 +01:00
Matt Clarkson e44ee2d005 Group common C++ flags 2015-05-12 17:15:41 +01:00
Matt Clarkson bb23a9b9f2 Compile with link time optimisation
Can provide speed improvements
2015-05-12 17:15:38 +01:00
Dominic Hamon 375e66c825 Update README.md 2015-05-11 12:34:03 -07:00
Matt Clarkson 7418bbbbac Only warn on errors in release mode
This improves development iterations when working in debug mode as you
don't have to fix up warnings to get the code to compile. Once a feature
is complete you can then run a release build and fix up all the warnings.
2015-05-05 12:11:43 +01:00
Matt Clarkson fc883f6742 Improve the CMake C++ flag checker
This checks the flag on the compiler AND linker which allows it to work
with flags such as -flto and -fsanitize=address
2015-05-01 11:09:56 +01:00
Eric d51ba32791 Merge pull request #120 from google/benchmark-fixtures
Add ability to use benchmark fixtures
2015-04-06 19:38:16 -04:00
Eric Fiselier 9c25a67c1a address more review comments 2015-04-06 19:04:12 -04:00
Eric Fiselier 9ed538f511 address review comments 2015-04-06 17:56:05 -04:00
Eric Fiselier 12f4405870 add ability to use benchmark filters 2015-04-06 17:00:06 -04:00
Dominic Hamon 2b954213f9 Merge branch 'geoffromer-cmake-patch' 2015-04-03 13:35:00 -07:00
Dominic Hamon 1e0ed3a21c Rearrange the pieces 2015-04-03 13:33:54 -07:00
Geoff Romer dcb1a3dad4 Drop down to CMake 2.8.11, and drop INTERFACE since that version doesn't
support it.
2015-04-03 13:30:59 -07:00
Geoff Romer 3078ce9bc5 Link pthread as an INTERFACE library. 2015-04-03 13:30:59 -07:00
Geoff Romer 89a1edae15 Require cmake 2.8.12 in order to support target_include_directories, and
simplify thread linking logic.
2015-04-03 13:30:59 -07:00
Geoff Romer a6ad799a4d Configure 'benchmark' cmake target so that when other targets depend on it,
they get the appropriate include directories and link libraries automatically.
2015-04-03 13:30:59 -07:00
Dominic Hamon 42d2b8d11a Merge pull request #118 from davidreynolds/master
Fix typos: rangeY -> range_y()
2015-04-03 16:29:12 -04:00
Eric Fiselier 818c9fcc2f Upgrade travis to use CMake 2.8.12 and add Clang builders 2015-04-03 14:43:42 -04:00
David Reynolds 30ae37b923 Fix typos: rangeY -> range_y() 2015-04-02 18:34:52 -07:00
Eric Fiselier bf063941d4 Print information about travis enviroment 2015-04-02 13:32:18 -04:00
Eric bf58a90067 Merge pull request #115 from google/build-shared
Remove BENCHMARK_ENABLE_SHARED and prefer BUILD_SHARED_LIBS
2015-04-01 13:45:12 -04:00
Eric Fiselier 8fcfa81d51 Fix comment about linking threading 2015-04-01 11:40:22 -04:00
Eric Fiselier 8bb991d099 Remove BENCHMARK_ENABLE_SHARED and prefer BUILD_SHARED_LIBS 2015-04-01 11:34:38 -04:00
Dominic Hamon 9934396e1f Add missing paranthesis and documentation 2015-04-01 10:51:37 -04:00
Dominic Hamon 738bd82b35 Merge pull request #113 from mattyclarkson/install-fix
Libraries are treated as runtime objects on Windows
2015-04-01 10:23:08 -04:00
Matt Clarkson d676c5b375 Libraries are treated as runtime objects on Windows
When the library is created as a *.dll on Windows it is treated like a
runtime object so we must proivde the destination for the runtime
objects in our install command
2015-04-01 10:57:08 +01:00
Dominic Hamon 6674744639 Merge pull request #111 from google/buildtype_log
Clarify build type warning
2015-03-31 15:32:36 -04:00
Dominic Hamon 25e46848f9 Clarify build type warning 2015-03-31 14:43:38 -04:00
Eric 006d23ccca Merge pull request #108 from google/list-tests
Add --benchmark_list_tests option and change filter to match generated name.
2015-03-31 14:16:58 -04:00
Eric Fiselier ba1becca1a Add braces for one line conditionals and loops 2015-03-31 13:28:41 -04:00
Dominic Hamon 65ed470c0f Merge pull request #64 from mattyclarkson/nt
MinGW support
2015-03-31 09:49:56 -04:00
Matt Clarkson 36d7dc67c1 appveyor configuration file
This file provides scripting to build the benchmark library in the cloud
on the appveyor build system. It provides a matrix of configurations to
cover as many possibilities as it can. Eventually MSVC can be added to the
matrix to provide coverage of the Visual Studio solutions.
2015-03-31 11:24:41 +01:00
Matt Clarkson 60910b3de7 Added a script that can download MinGW
The python script provides a method to get the repository of mingw-builds
gcc compilers and download one of them. This is useful for providing a
matrix of compilations on appveyor.

The versions of compilers are seperated by multiple things:

  - version
  - threading model
  - exception model
  - revision

All four of those things need to be matched if using the libraries built
by MinGW. The script allows you to specify all of those variations. If
a variation isn't defined it picks the most common or latest settings.

For example, if the version isn't specified the latest will be selected
and if the exception model isn't defined then the zero exception model
(seh) will be selected if available.
2015-03-31 10:13:11 +01:00
Matt Clarkson b35b581e76 Ignore windows shared libraries 2015-03-31 10:13:11 +01:00
Matt Clarkson 07de09c94c Ignore python compiled files 2015-03-31 10:13:10 +01:00
Matt Clarkson b2a43b491c NT definition of MyCPUUsage and ChildrenCPUUsage
The children CPU usage doesn't seem to have a equivalent on NT systems
so it just returns zero.
2015-03-31 10:13:10 +01:00
Matt Clarkson 05eb1f2545 Use int64_t rather than int64
For cross platform and cross compiler portability we use the
standard integer type for a 64-bit integer. MinGW on Windows doesn't
have the definition for `int64`.
2015-03-31 10:13:09 +01:00
Matt Clarkson 65a5ebd638 Use the WINAPI Sleep function 2015-03-31 10:13:09 +01:00
Matt Clarkson 6bc54ba028 Use CMake to link Shlwapi on Windows
We use the SHGetValueA on Windows to retrieve the MHz of the processor
but this requires the shlwapi library. Previous to this patch the
library was linked with a MSVC specific pragma but there is no
guarantee that on Windows we will be using MSVC. Therefore, it is much
compile agnostic to use the standard CMAKE library linking mechanism
to provide the definition of SHGetValueA
2015-03-31 10:13:08 +01:00
Matt Clarkson dd61391c5d Only include the correct platform headers 2015-03-31 10:13:08 +01:00
Matt Clarkson 6880244eea Added windows executables to the ignore list 2015-03-31 10:13:07 +01:00
Eric Fiselier e97a96f9e7 redo filter test 2015-03-31 00:05:02 -04:00
Eric Fiselier 12f1c5f471 add list test internals 2015-03-30 23:32:37 -04:00
Eric Fiselier 805145847b add workaround to DoNotOptimize(...) for clang inline assembly bug. 2015-03-30 22:14:08 -04:00
Dominic Hamon b5dd1506d8 Merge pull request #107 from google/csv
Introduce CSV reporter
2015-03-30 14:45:10 -07:00
Dominic Hamon 2924aaa747 Deal with names with embedded quotes 2015-03-30 10:41:22 -07:00
Dominic Hamon b6e4f67d75 Add csv to help output 2015-03-27 14:08:46 -07:00