From 2cc95d85493a14ca3b8c8b3ef5f384a75c9fdd13 Mon Sep 17 00:00:00 2001 From: FrogTheFrog Date: Thu, 8 Aug 2024 11:55:40 +0300 Subject: [PATCH 1/5] fix: make library MSVC-compatible --- CMakeLists.txt | 6 ++++-- src/windows/include/display_device/windows/types.h | 1 + src/windows/settings_utils.cpp | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index abe368b..c87a062 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,8 +39,10 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTS) # Additional setup for coverage # https://gcovr.com/en/stable/guide/compiling.html#compiler-options # - set(CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage -O0") - set(CMAKE_C_FLAGS "-fprofile-arcs -ftest-coverage -O0") + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage -O0") + set(CMAKE_C_FLAGS "-fprofile-arcs -ftest-coverage -O0") + endif() enable_testing() add_subdirectory(tests) diff --git a/src/windows/include/display_device/windows/types.h b/src/windows/include/display_device/windows/types.h index 86cdf43..feeecee 100644 --- a/src/windows/include/display_device/windows/types.h +++ b/src/windows/include/display_device/windows/types.h @@ -5,6 +5,7 @@ #pragma once // the most stupid and smelly windows include +#define NOMINMAX #include // system includes diff --git a/src/windows/settings_utils.cpp b/src/windows/settings_utils.cpp index 7152547..a442fd4 100644 --- a/src/windows/settings_utils.cpp +++ b/src/windows/settings_utils.cpp @@ -300,7 +300,7 @@ namespace display_device::win_utils { // It's hard to deal with floating values, so we just multiply it // to keep 4 decimal places (if any) and let Windows deal with it! // Genius idea if I'm being honest. - constexpr auto multiplier { static_cast(std::pow(10, 4)) }; + static const auto multiplier { static_cast(std::pow(10, 4)) }; const double transformed_value { std::round(std::get(value) * multiplier) }; return Rational { static_cast(transformed_value), multiplier }; } }; From 46ee35aaa905614cf548878f37f6779f220a60be Mon Sep 17 00:00:00 2001 From: FrogTheFrog Date: Thu, 8 Aug 2024 12:31:56 +0300 Subject: [PATCH 2/5] whoops --- src/windows/include/display_device/windows/types.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/windows/include/display_device/windows/types.h b/src/windows/include/display_device/windows/types.h index feeecee..e1b51d7 100644 --- a/src/windows/include/display_device/windows/types.h +++ b/src/windows/include/display_device/windows/types.h @@ -5,7 +5,9 @@ #pragma once // the most stupid and smelly windows include +#ifndef NOMINMAX #define NOMINMAX +#endif #include // system includes From 305138ce3935764b24af342295777a9d14b6f638 Mon Sep 17 00:00:00 2001 From: FrogTheFrog Date: Thu, 8 Aug 2024 12:33:05 +0300 Subject: [PATCH 3/5] whoops v2 --- src/windows/include/display_device/windows/types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/windows/include/display_device/windows/types.h b/src/windows/include/display_device/windows/types.h index e1b51d7..1d1ff1b 100644 --- a/src/windows/include/display_device/windows/types.h +++ b/src/windows/include/display_device/windows/types.h @@ -6,7 +6,7 @@ // the most stupid and smelly windows include #ifndef NOMINMAX -#define NOMINMAX + #define NOMINMAX #endif #include From 6a38bdbb522f409e20fabb247dd258edd496180c Mon Sep 17 00:00:00 2001 From: Lukas Senionis Date: Thu, 8 Aug 2024 12:59:58 +0300 Subject: [PATCH 4/5] Update src/windows/settings_utils.cpp Co-authored-by: ns6089 <61738816+ns6089@users.noreply.github.com> --- src/windows/settings_utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/windows/settings_utils.cpp b/src/windows/settings_utils.cpp index a442fd4..209d426 100644 --- a/src/windows/settings_utils.cpp +++ b/src/windows/settings_utils.cpp @@ -300,7 +300,7 @@ namespace display_device::win_utils { // It's hard to deal with floating values, so we just multiply it // to keep 4 decimal places (if any) and let Windows deal with it! // Genius idea if I'm being honest. - static const auto multiplier { static_cast(std::pow(10, 4)) }; + constexpr auto multiplier { 10000 }; const double transformed_value { std::round(std::get(value) * multiplier) }; return Rational { static_cast(transformed_value), multiplier }; } }; From 0fe0b6eb29ac266a7f5d5ffe5e8e5cb85c1ff2cf Mon Sep 17 00:00:00 2001 From: Lukas Senionis Date: Thu, 8 Aug 2024 13:30:01 +0300 Subject: [PATCH 5/5] Update settings_utils.cpp --- src/windows/settings_utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/windows/settings_utils.cpp b/src/windows/settings_utils.cpp index 209d426..c6bbb3a 100644 --- a/src/windows/settings_utils.cpp +++ b/src/windows/settings_utils.cpp @@ -300,7 +300,7 @@ namespace display_device::win_utils { // It's hard to deal with floating values, so we just multiply it // to keep 4 decimal places (if any) and let Windows deal with it! // Genius idea if I'm being honest. - constexpr auto multiplier { 10000 }; + constexpr unsigned int multiplier { 10000 }; const double transformed_value { std::round(std::get(value) * multiplier) }; return Rational { static_cast(transformed_value), multiplier }; } };