1
1
Fork 0
mirror of https://github.com/oxen-io/lokinet synced 2023-12-14 06:53:00 +01:00
lokinet/cmake/check_for_std_optional.cmake
Jason Rhinelander ebd2142114 Don't use std::optional::value() because f u macos
This replaces all use of std::optional's `opt.value()` with `*opt`
because macOS is great and the ghost of Steve Jobs says that actually
supporting std::optional's value() method is not for chumps before macOS
10.14.  So don't use it because Apple is great.

Pretty much all of our use of it actually is done better with operator*
anyway (since operator* doesn't do a check that the optional has a
value).

Also replaced *most* of the `has_value()` calls with direct bool
context, except for one in the config section which looked really
confusing at a glance without a has_value().
2020-05-20 19:18:28 -03:00

19 lines
410 B
CMake

# check for std::optional because macos is broke af sometimes
set(std_optional_code [[
#include <optional>
int main() {
std::optional<int> maybe;
maybe = 1;
return *maybe == 1;
}
]])
check_cxx_source_compiles("${std_optional_code}" was_compiled)
if(was_compiled)
message(STATUS "we have std::optional")
else()
message(FATAL_ERROR "we dont have std::optional your compiler is broke af")
endif()