Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-25603] Windows: Support Windows 10 ARM Desktop

GitHub Issuen/a
TypeNew Feature
PriorityMedium
StatusOpen
ResolutionUnresolved
Affected Version/sRelease 7.0.0
Fix Version/sn/a
ComponentsWindows
Labelsn/a
ReporterKota Iguchi
AssigneeKota Iguchi
Created2017-12-13T03:41:23.000+0000
Updated2019-03-29T01:34:08.000+0000

Description

Currently Titanium is assuming Windows 10 Store app runs on x86/x64 device, but we will need ARM target for the destop app, because Microsoft is going to [launch Windows 10 desktop on ARM](https://techcrunch.com/2017/12/05/windows-10-on-arm-is-here-always-connected-devices/). So in that sense we should be able to specify which architecture to build in command line, such as --architecture ARM on appc run.

Comments

  1. Kota Iguchi 2017-12-19

    https://github.com/appcelerator/titanium_mobile_windows/pull/1169
  2. Ewan Harris 2018-01-15

    [~kiguchi] I can't find where I read it, but I believe that Windows 10 on ARM will be ARM64 only. We might be required to build all libs for ARM64 before enabling this, Microsoft also recently made Xbox x64 only also so we might wish to move to building for x64 too to preempt any other changes. Is there anything I can do to help with that? I assume we'd need to first build JSCore, and then HAL before getting titanium_mobile_windows and titaniumkit building?
  3. Kota Iguchi 2018-01-16

    [~eharris] Hmm I see. I took a quick look at [CMake generators](https://www.mankier.com/7/cmake-generators#Cmake_Generators-Visual_Studio_15_2017) and I see only *ARM* target and it does not have 64 bit build option such as *ARM64* build. I may be wrong but I also don't see ARM 64 target in Visual Studio UWP project..Could you take a time to investigate how to build ARM 64 target in UWP project, and also investigate if there's any chance for CMake to support ARM 64 target?
  4. Ewan Harris 2018-01-16

    [~kiguchi] I played around and believe I've managed to get a ARM64 UWP project building. I had to install the following Individual Components * Visual C++ compilers and libraries for ARM64 * Windows 10 SDK (10.0.16299.0) for Desktop C++ \[ARM and ARM64\] After installing this I then created a new Windows Universal C++ project File-> New-> Visual C++ ->Windows Universal ->Blank App. This gets you a project with ARM, x64, and x86 in the Solution Platforms dropdown. Selecting Configuration Manager and then new in the Platform dropdown allows you to add ARM64 as platform so my best guess is that this is being slightly hidden for now. As for CMake, it looks like they shipped ARM64 support in 3.10 [based off the release notes](https://cmake.org/cmake/help/v3.10/release/3.10.html#id4), I was able to create a project using >C:\Users\ewan\Downloads\cmake-3.10.1-win64-x64\bin\cmake.exe -G "Visual Studio 15 2017" -A ARM64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0" It looks like the ARM64 stuff is limited to Visual Studio 15.4 and up, so I think to get this building we'd have to update some Jenkins instances to VS 2017 (which isn't a bad idea really)
  5. Kota Iguchi 2018-01-16

    [~eharris] Awesome find! (y) I will try it too. Do you think it is possible to detect installed component (ARM64, x64) in windowslib (Is there any directories or registries created?) I would think ARM64 support may be considered optional for Titanium Windows because not everyone needs it. I also think that we might want to support x64 target too for future release.

JSON Source