Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vcpkg port 1.8 fixes #1121

Merged
merged 23 commits into from
Jan 24, 2023
Merged

vcpkg port 1.8 fixes #1121

merged 23 commits into from
Jan 24, 2023

Conversation

trueqbit
Copy link
Collaborator

@trueqbit trueqbit commented Jan 15, 2023

In order to update vcpkg's sqlite-orm port, a few things needed to be addressed:

  • pinned appveyor test environment to vcpkg 2023.01.09
  • made type_is_nullable<> a specializable struct again
  • examples are now fully linkable again: chrono_binding.cpp, nullable_enum_binding.cpp, pointer_passing_interface.cpp (those examples wrongly commented out the main() function)
  • updated unit test framework to Catch2 v3 (Compile error: catch2 too old #1114)
  • updated clang-format lint action on github
  • removed dangling submodule reference ("Fetch Content" doesn't work because of catch2-src #1107)
  • made all examples compilable with Visual C++ 2015 Update 3

Update (2023-01-15):
Currently unit tests fail with Visual C++ 2015 Update 3 as the minimal C++14 base compiler, as Catch2 v3 now requires a fully compliant C++14 compiler. Let's see what the decision is on the [feature request] (catchorg/Catch2#2624) I made.

Update (2023-01-24):
Now that Catch2 v3 requires a conforming C++14 compiler, legacy compilers like Visual C++ 2015 Update 3 can't be used anymore for compiling the unit tests. The library itself and its examples are still usable with legacy compilers.

@trueqbit trueqbit marked this pull request as ready for review January 16, 2023 18:44
@trueqbit trueqbit requested a review from fnc12 January 16, 2023 21:21
@trueqbit trueqbit requested a review from fnc12 January 24, 2023 15:38
@@ -15,18 +15,28 @@ struct Rect {
int y = 0;
int width = 0;
int height = 0;

#ifndef SQLITE_ORM_AGGREGATE_NSDMI_SUPPORTED
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how do you repro a bug which requires this macro? IDK how to do that and that's why I forget to put it sometimes

Copy link
Collaborator Author

@trueqbit trueqbit Jan 24, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, NSDMI is a core capability of a compiler, so you have to compile it with a compiler that does not have it.
Anyway, I suggest that the v1.8 band is the last one in which we support pre-C++14 compilers. As you may have noticed, Martin Hořeňovský, the maintainer of Catch2, is not interested in maintaining compatibility. So the problem is that it is becoming more and more expensive to maintain compatibility on our side.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got it. Yes I agree with dropping pre-C++14 compilers support from next releases

@fnc12 fnc12 merged commit f4b8000 into fnc12:dev Jan 24, 2023
@trueqbit trueqbit deleted the vcpkg-port-1.8-fixes branch February 1, 2023 13:28
@trueqbit trueqbit linked an issue Mar 9, 2023 that may be closed by this pull request
@trueqbit trueqbit linked an issue Mar 18, 2023 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants