-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
MSVC ARM builds #6682
Comments
Log from attempt at building x86-uwp version:
@IntelOrca any chance you can help out with any of that? |
These will all be things that are not available in UWP, e.g. registry, common file dialogs etc. You will have to exclude those features from compilation until you find an alternative. |
Yeah, I know. I was hoping more of you could look into path resolution, as this will need to be implemented anyway. There are also some instances of We can live without file deletion. |
You would have to move to using Windows 10 API. When I looked into using the game bar API awhile ago, I found using these APIs a pain in C++ because they are built for .NET and therefore have to be accessed via COM mechanisms. |
This is an example of how you might get files in C++: auto folderPicker = ref new FolderPicker();
folderPicker->SuggestedStartLocation = PickerLocationId::DocumentsLibrary;
folderPicker->FileTypeFilter->Append("*");
create_task(folderPicker->PickSingleFolderAsync()).then(
[](StorageFolder^ folder)
{
create_task(folder->GetFilesAsync()).then(
[](IVectorView<StorageFile^>^ files)
{
for each (auto file in files)
{
wprintf(L"%s\n", file->Path->Data());
}
});
}); Access is granted to a folder when the user selects it via the folder picker. Or in C#: var folderPicker = new FolderPicker();
folderPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
folderPicker.FileTypeFilter.Add("*");
var folder = await folderPicker.PickSingleFolderAsync();
foreach (var file in await folder.GetFilesAsync())
{
Console.WriteLine(file.Path);
} |
So far this has mostly concerned UWP builds, but it is possible to target desktop as well: http://pete.akeo.ie/2017/05/compiling-desktop-arm-applications-with.html |
With microsoft/vcpkg#2633 merged ask the libraries we use are capable of producing builds targeting UWP. The remaining work is in OpenRCT2 itself. |
vcpkg now supports I haven't yet checked status of our required libraries when using this triplet. |
There were builds uploaded to https://github.com/janisozaur/arm64-binaries/tree/master/openrct2 |
OS: Windows 10
Commit/Build: 36236d8
List of (known) issues preventing MSVC from creating ARM (UWP) builds. This is also collecting all the roadblocks not in OpenRCT2 itself, but also in its dependencies.
libzip does not compile, it tries to use deprecated POSIX functions, mainly WinCryptoAPI. See Implement a dummy zip #6629 for a workaround.Fix for UWP got merged upstream: Fix MSVC UWP builds nih-at/libzip#16, still need to wait for another release to update vcpkg.merged in [libzip] bump to 1.4.0 microsoft/vcpkg#2633discord-rpc does not build due toNot a strict requirement, will skip it for initial versionCreateFileW
,lstrcpyW
,RegCreateKeyExW
are not available. This can possibly be triggered on x86 as well for UWP packaging.jansson uses unavailableFixed in [jansson] Don't use WinCryptoApi for UWP builds microsoft/vcpkg#2244GetModuleHandle
injson_object_seed
sdl2 does not build properly for ARM with MSVC, looks like setup issue, where it uses VS2015 directory even with VS2017?works as of e6c65b93b125cf0be13254cf2f5a9d27cb009707speexdsp cmake hardcodesFixed in [speexdsp] Only use SSE on x86/amd64 microsoft/vcpkg#2245_USE_SSE
define, which makes speexdsp pull in x86/x86-64-onlyxmmintrin.h
(and then use it)freetype works as of 1b2f75b
zlib works as of 1b2f75b
libpng works as of 1b2f75b
curl works as of 1b2f75b
Google benchmark requires an update to gather clocks: Add MSVC ARM64 support google/benchmark#1052
The text was updated successfully, but these errors were encountered: