Build Error w/ msvc-141 while targeting Universal Windows Platform
- Dominant language
- C++
- Stars
- 10.4k
- Forks
- 1.8k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 8
Description
### Summary
While attempting to build google/benchmark with cmake for a Windows UWP (Universal Windows Platform) target the following errors can be observed.

These symbols are disabled/undefined by `VersionHelper.h:18 -- #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)`
Yet required in the `sysinfo.cc:526 -- #elif defined BENCHMARK_OS_WINDOWS` block.
### Steps to reproduce
The above can be reproduced (so long as you have VS2017 or can compile with the MSVC v141 toolchain) with the following steps:
```bash
$ git clone https://github.com/google/benchmark.git
$ cd benchmark
$ mkdir -p build && cd build
$ cmake -G "Visual Studio 15" -DBENCHMARK_ENABLE_GTEST_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0 ..
```
*Note: the CMAKE_SYSTEM_NAME/VERSION settings drive the cmake config step for UWP apps*
Then open the .sln in build/ and run a build.
### Fix
* The issue:

* The fix:

### Alternative
The frequency estimation in the block in question is sampling/inferring the MHz of the system (presumably for performance measures). As this particular block is platform(Windows Specific) wouldn't usage of the [`QueryPerformanceFreq()` API (windows.h)](https://msdn.microsoft.com/en-us/library/windows/desktop/ms644905(v=vs.85).aspx) be more appropriate/accurate ?
Happy to try and submit a PR for this if our thinking on this is correct and acceptable.
Contributor guide
Assessment
This issue has not been assessed yet.