-
Notifications
You must be signed in to change notification settings - Fork 24
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
Clean up lots of win32 crustiness #77
Open
tari
wants to merge
20
commits into
alberthdev:master
Choose a base branch
from
tari:uncrustify
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
When unable to parse an operand to something that appears to be a macro, ensure the required string for the error message is passed. Failing to do so causes undefined behavior when the error message is formatted, and reliably crashes. Fixes alberthdev#71.
Travis hasn't been truly free for open-source projects since 2021, and is no longer used by this project.
This should permit unification of the makefile and msbuild projects.
Support building with cmake
This is unneeded after c++11, and broken from c++17. Fixes alberthdev#73
Take the relative path of each automatically-discovered test case, rather than the absolute path returned by file(GLOB). This makes the test names much simpler.
This replaces TCHAR with explicit unicode and swaps windows-specific types like DWORD with standard equivalents, as well as removing the COM interface.
This is a peculiar windows idiom for precompiled headers that isn't important to us.
CMake should be used going forward.
c++17's std::filesystem allows us to get rid of some mess using either bare win32 or POSIX APIs depending on the target platform. The code is easier to understand and shorter.
"consider using sprintf_s instead" and the like is not helpful because it's not portable.
This removes the dependency on the Windows cryptography libraries and OpenSSL, at the cost of including a little bit more code.
This allows cmake to use PKG_CONFIG without any other installs. microsoft/vcpkg#17481
This avoids including Windows.h except where actually required, and deletes more uses of windows type names like WORD. bitmap.cpp is normalized to use the windows names because it uses them extensively, but it no longer includes Windows.h. Some former DWORDs that were incorrectly converted to int32_t are changed to be unsigned again.
In particular this requests UTF-8 mode for versions of Windows that support using the UTF-8 codepage. This is useful because it allows us to use bytestrings and assume they're always UTF-8, without needing to deal with the mess that is Windows wide characters and UCS-2 being completely unusable for non-BMP characters.
We don't actually care, but it's still probably useful to enable -Wall.
If textual output ends up containing garbage, we'd like to know. This will display badly-encoded data if we find it, making that somewhat easier to debug.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This builds on top of #74 to remove a lot of old crusty patterns that mostly relate to targeting Windows as a primary platform. Using CMake, vcpkg and C++17 features: