1. 14 Jan, 2020 1 commit
    • Alias CMake Targets. Fixes #921 (#926) · daff5fea
      Jordan Williams authored
      * add Jordan Williams to both CONTRIBUTORS and AUTHORS
      
      * alias benchmark libraries
      
      Provide aliased CMake targets for the benchmark and benchmark_main targets.
      The alias targets are namespaced under benchmark::, which is the namespace when they are exported.
      I chose not to use either the PROJECT_NAME or the namespace variable but to hard-code the namespace.
      This is because the benchmark and benchmark_main targets are hard-coded by name themselves.
      Hard-coding the namespace is also much cleaner and easier to read.
      
      * link to aliased benchmark targets
      
      It is safer to link against namespaced targets because of how CMake interprets the double colon.
      Typo's will be caught by CMake at configuration-time instead of during compile / link time.
      
      * document the provided alias targets
      
      * add "Usage with CMake" section in documentation
      
      This section covers linking against the alias/import CMake targets and including them using either find_package or add_subdirectory.
      
      * format the "Usage with CMake" README section
      
      Added a newline after the "Usage with CMake" section header.
      Dropped the header level of the section by one to make it a direct subsection of the "Usage" section.
      Wrapped lines to be no longer than 80 characters in length.
  2. 05 Jan, 2020 1 commit
    • Add d postfix to Debug libraries (#923) · 5ce2429a
      Szitár Gergő authored
      * Add DEBUG_POSTFIX to libraries.
      
      Makes it possible to install Debug and Release versions on the
      same system. Without this, there were only linker errors when using
      the wrong configuration.
      
      * Update CONTRIBUTORS and AUTHORS according to guide
  3. 15 Dec, 2019 1 commit
  4. 02 Dec, 2019 1 commit
  5. 01 Dec, 2019 2 commits
  6. 25 Nov, 2019 1 commit
  7. 22 Nov, 2019 6 commits
  8. 05 Nov, 2019 1 commit
    • CMake: use full add_test(NAME <> COMMAND <>) signature (#901) · c50ac68c
      Gregor Jasny authored
      * CTest must use proper paths to executables
      
      With the following syntax:
      
      ```
        add_test(NAME <name> COMMAND <command> [<arg>...])
      ```
      
      if `<command>` specifies an executable target it will automatically
      be replaced by the location of the executable created at build time.
      
      This is important if a `<Configuration>_POSTFIX` like `_d` is used.
      
      * Fix typo in ctest invocation
      
      Instead of `-c` the uppercase `-C` must be used to select a config.
      But better use the longopt.
  9. 24 Oct, 2019 1 commit
  10. 23 Oct, 2019 2 commits
  11. 08 Oct, 2019 1 commit
  12. 04 Oct, 2019 1 commit
  13. 27 Sep, 2019 1 commit
  14. 23 Sep, 2019 2 commits
    • Guard definition of __STDC_FORMAT_MACROS in ifndef (#875) · b874e722
      Geoffrey Martin-Noble authored
      This macro is sometimes already defined and redefining it results
      in build errors.
    • Define HOST_NAME_MAX for NaCl and RTEMS (#876) · 7411874d
      Geoffrey Martin-Noble authored
      These OS's don't always have HOST_NAME_MAX defined, resulting in
      build errors.
      
      A few related changes as well:
      * Only define HOST_NAME_MAX if it's not already defined. There are
        some cases where this is already defined, e.g. with NaCl if
        __USE_POSIX is set. To avoid all of these, only define it if it's
        not already defined.
      * Default HOST_NAME_MAX to 64 and issue a #warning. Having the wrong
        max length is pretty harmless. The name just ends up getting
        truncated and this is only for printing debug info. Because we're
        constructing a std::string from a char[] (so defined length), we
        don't need to worry about gethostname's undefined behavior for
        whether the truncation is null-terminated when the hostname
        doesn't fit in HOST_NAME_MAX. Of course, this doesn't help people
        who have -Werror set, since they'll still get a warning.
  15. 21 Sep, 2019 1 commit
  16. 20 Sep, 2019 1 commit
  17. 16 Sep, 2019 1 commit
    • Addresses issue #634. (#866) · bf4f2ea0
      sharpe5 authored
      * Update with instructions to build under Visual Studio
      
      Fixes Issue #634.
      
      I spent 3 days trying to build this library under Visual Studio 2017, only to discover on has to link to `Shlwapi.lib`.
      
      Became so frustrated with the docs that I added full build instructions for Visual Studio 2015, 2017 and Intel Comiler 2015 and 2019.
      
      * Update headings
  18. 15 Sep, 2019 1 commit
  19. 21 Aug, 2019 4 commits
  20. 12 Aug, 2019 1 commit
    • Custom user counters: add invert modifier. (#850) · 7d97a057
      Roman Lebedev authored
      While current counters can e.g. answer the question
      "how many items is processed per second", it is impossible to get
      it to tell "how many seconds it takes to process a single item".
      
      The solution is to add a yet another modifier `kInvert`,
      that is *always* considered last, which simply inverts the answer.
      
      Fixes #781, #830, #848.
  21. 07 Aug, 2019 1 commit
  22. 06 Aug, 2019 1 commit
  23. 30 Jul, 2019 1 commit
  24. 29 Jul, 2019 2 commits
  25. 27 Jul, 2019 1 commit
    • Bugfix/wsl selftest fixes. Fixes #839 (#843) · 32a1e397
      Eric Backus authored
      * Update AUTHORS and CONTRIBUTORS
      
      * Fix WSL self-test failures
      
      Some of the benchmark self-tests expect and check for a particular
      output format from the benchmark library. The numerical values must
      not be infinity or not-a-number, or the test will report an error.
      Some of the values are computed bytes-per-second or items-per-second
      values, so these require that the measured CPU time for the test to be
      non-zero. But the loop that is being measured was empty, so the
      measured CPU time for the loop was extremely small. On systems like
      Windows Subsystem for Linux (WSL) the timer doesn't have enough
      resolution to measure this, so the measured CPU time was zero.
      
      This fix just makes sure that these tests have something within the
      timing loop, so that the benchmark library will not decide that the
      loop takes zero CPU time. This makes these tests more robust, and in
      particular makes them pass on WSL.
  26. 22 Jul, 2019 1 commit
  27. 17 Jul, 2019 1 commit
  28. 05 Jul, 2019 1 commit
    • Add RISC-V support in cycleclock::Now (#833) · 4abdfbb8
      Sam Elliott authored
      The RISC-V implementation of `cycleclock::Now` uses the user-space
      `rdcycle` instruction to query how many cycles have happened since the
      core started.
      
      The only complexity here is on 32-bit RISC-V, where `rdcycle` can only
      read the lower 32 bits of the 64-bit hardware counter. In this case,
      `rdcycleh` reads the higher 32 bits of the counter. We match the powerpc
      implementation to detect and correct for overflow in the high bits.