<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/CMakeLists.txt, branch constexpr_approx</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Use built-in CMake feature for requiring a specific language standard</title>
<updated>2024-03-12T21:54:09+00:00</updated>
<author>
<name>Chris Thrasher</name>
</author>
<published>2024-03-12T19:19:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1a44e6f6616fb9cdcf2758ced3add9bd7d52208c'/>
<id>1a44e6f6616fb9cdcf2758ced3add9bd7d52208c</id>
<content type='text'>
This feature was added in CMake 3.8. Requiring specific language
features is an outdated approach that CMake stopped supporting in
favor of simply specifyin the specific language standard you want.

https://cmake.org/cmake/help/v3.10/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This feature was added in CMake 3.8. Requiring specific language
features is an outdated approach that CMake stopped supporting in
favor of simply specifyin the specific language standard you want.

https://cmake.org/cmake/help/v3.10/prop_gbl/CMAKE_CXX_KNOWN_FEATURES.html
</pre>
</div>
</content>
</entry>
<entry>
<title>Link Android's `log` with PRIVATE visibility (#2815)</title>
<updated>2024-02-19T23:32:12+00:00</updated>
<author>
<name>itacud95</name>
</author>
<published>2024-02-19T23:32:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=024cfb354211b40e368a66c40054d8881e26b8a8'/>
<id>024cfb354211b40e368a66c40054d8881e26b8a8</id>
<content type='text'>
INTERFACE should be used on dependencies from other than our source files.
PRIVATE should be used the include happens in our source files.

In this case (src/catch2/internal/catch_debug_console.cpp:20) the include
is from our source file.

I encountered a issue with this when building Catch2 for Android in
combination with BUILD_SHARED_LIBS. Changing the visibility to PRIVATE
fixes the issue.

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
INTERFACE should be used on dependencies from other than our source files.
PRIVATE should be used the include happens in our source files.

In this case (src/catch2/internal/catch_debug_console.cpp:20) the include
is from our source file.

I encountered a issue with this when building Catch2 for Android in
combination with BUILD_SHARED_LIBS. Changing the visibility to PRIVATE
fixes the issue.

</pre>
</div>
</content>
</entry>
<entry>
<title>Make compiler flags for reproducible builds optional</title>
<updated>2023-12-27T23:41:54+00:00</updated>
<author>
<name>Jan Palus</name>
</author>
<published>2023-12-27T23:41:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1512dac7e4c2fddadcc15f7ab316ce3d5b67e7f3'/>
<id>1512dac7e4c2fddadcc15f7ab316ce3d5b67e7f3</id>
<content type='text'>
no change in default behavior: -ffile-prefix-map is still added if
supported by compiler but add option for disabling it as it breaks
generic tools for extracting debuginfo/debugsource from build artifacts
like: https://sourceware.org/git/?p=debugedit.git;a=blob;f=scripts/find-debuginfo.in
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
no change in default behavior: -ffile-prefix-map is still added if
supported by compiler but add option for disabling it as it breaks
generic tools for extracting debuginfo/debugsource from build artifacts
like: https://sourceware.org/git/?p=debugedit.git;a=blob;f=scripts/find-debuginfo.in
</pre>
</div>
</content>
</entry>
<entry>
<title>Add uniform_integer_distribution</title>
<updated>2023-12-10T18:53:39+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-12-08T21:01:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ed9d672b5ced5647d8420f3b4d040199a3281a2b'/>
<id>ed9d672b5ced5647d8420f3b4d040199a3281a2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add helpers for implementing uniform integer distribution</title>
<updated>2023-12-10T18:53:36+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-11-28T22:26:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=04a829b0e13401049707c7c70e95c3cc0c73ba22'/>
<id>04a829b0e13401049707c7c70e95c3cc0c73ba22</id>
<content type='text'>
* Utility for extended mult n x n bits -&gt; 2n bits
* Utility to adapt output from URBG to target (unsigned) integral
  type
* Utility to reorder signed values into unsigned type while keeping
  the order.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Utility for extended mult n x n bits -&gt; 2n bits
* Utility to adapt output from URBG to target (unsigned) integral
  type
* Utility to reorder signed values into unsigned type while keeping
  the order.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add uniform_floating_point_distribution</title>
<updated>2023-12-10T17:44:12+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-11-20T14:16:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ab1b079e4deb159a6f56c9168031876a697a7d2c'/>
<id>ab1b079e4deb159a6f56c9168031876a697a7d2c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add implementation of helpers for uniform float distribution</title>
<updated>2023-12-10T17:44:10+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-11-19T20:00:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=d139b4ff7cd8823923e8616e8fef954e09e46322'/>
<id>d139b4ff7cd8823923e8616e8fef954e09e46322</id>
<content type='text'>
Specifically we add
 * `gamma(a, b)`, which returns the magnitude of largest 1-ULP
   step in range [a, b].
 * `count_equidistant_float(a, b, distance)`, which returns the
   number of equi-distant floats in range [a, b].
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Specifically we add
 * `gamma(a, b)`, which returns the magnitude of largest 1-ULP
   step in range [a, b].
 * `count_equidistant_float(a, b, distance)`, which returns the
   number of equi-distant floats in range [a, b].
</pre>
</div>
</content>
</entry>
<entry>
<title>Add JSON reporter (#2706)</title>
<updated>2023-11-14T21:52:15+00:00</updated>
<author>
<name>Beartama</name>
</author>
<published>2023-11-14T21:52:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=7bf136b501fef3e189b45091e8a4757a5eaef31f'/>
<id>7bf136b501fef3e189b45091e8a4757a5eaef31f</id>
<content type='text'>

Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>

Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce the number of templates in Benchmarking</title>
<updated>2023-09-08T08:04:31+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-08-31T19:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=47a2c969380259e899f471edde84f06a6d687dc9'/>
<id>47a2c969380259e899f471edde84f06a6d687dc9</id>
<content type='text'>
The basic idea was to reduce the number of things dependent on the `Clock`
type. To that end, I replaced `Duration&lt;Clock&gt;` with `IDuration` typedef
for `std::nanoseconds`, and `FloatDuration&lt;Clock&gt;` with `FDuration`
typedef for `Duration&lt;double, std::nano&gt;`. We can generally assume that
any clock's duration can be expressed in nanoseconds, as long as we insert
`duration_cast`s into the right places.

Note that we cannot remove all dependence on `Clock` as a template
arguments, because functions that actually measure the elapsed time have
to use the Clock.

We also changed some template function arguments to pass plain function
pointers, so that the actual implementation can be placed into a cpp file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The basic idea was to reduce the number of things dependent on the `Clock`
type. To that end, I replaced `Duration&lt;Clock&gt;` with `IDuration` typedef
for `std::nanoseconds`, and `FloatDuration&lt;Clock&gt;` with `FDuration`
typedef for `Duration&lt;double, std::nano&gt;`. We can generally assume that
any clock's duration can be expressed in nanoseconds, as long as we insert
`duration_cast`s into the right places.

Note that we cannot remove all dependence on `Clock` as a template
arguments, because functions that actually measure the elapsed time have
to use the Clock.

We also changed some template function arguments to pass plain function
pointers, so that the actual implementation can be placed into a cpp file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add new config option: STATIC_ANALYSIS_SUPPORT</title>
<updated>2023-05-28T22:55:20+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-05-12T15:13:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=dba9197ec71ed64c6f08c7ce73f1af5bc3331f3c'/>
<id>dba9197ec71ed64c6f08c7ce73f1af5bc3331f3c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
