{ "id": "170612", "key": "TIMOB-25603", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2017-12-13T03:41:23.000+0000", "epic": { "id": 170948, "key": "TIMOB-25716", "name": "Support ARM64 and x64", "summary": "Windows: Support ARM64 and x64", "color": { "key": "color_4" }, "done": false }, "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [ { "id": "17609", "description": "", "name": "Release 7.0.0", "archived": false, "released": true, "releaseDate": "2017-12-07" } ], "issuelinks": [ { "id": "56254", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "170808", "key": "TIMOB-25681", "fields": { "summary": "Windows: Support ARM64 build target", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2019-03-29T01:34:08.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "12642", "name": "Windows", "description": "Windows authoring support" } ], "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}}.\r\n\r\n\r\n", "attachment": [], "flagged": false, "summary": "Windows: Support Windows 10 ARM Desktop", "creator": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 984, "state": "closed", "name": "2017 Sprint 26 SDK", "startDate": "2017-12-17T22:34:59.726Z", "endDate": "2017-12-31T22:34:00.000Z", "completeDate": "2018-01-02T16:57:05.655Z", "originBoardId": 114 }, { "id": 985, "state": "closed", "name": "2018 Sprint 01 SDK", "startDate": "2017-12-31T16:58:54.631Z", "endDate": "2018-01-14T16:58:00.000Z", "completeDate": "2018-01-17T22:44:27.028Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "432383", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "https://github.com/appcelerator/titanium_mobile_windows/pull/1169", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-12-19T08:49:11.000+0000", "updated": "2017-12-19T08:49:11.000+0000" }, { "id": "433161", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "[~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?", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2018-01-15T16:57:10.000+0000", "updated": "2018-01-15T16:57:10.000+0000" }, { "id": "433165", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~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?", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-01-16T01:46:27.000+0000", "updated": "2018-01-16T01:46:27.000+0000" }, { "id": "433179", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "[~kiguchi] I played around and believe I've managed to get a ARM64 UWP project building. I had to install the following Individual Components\r\n\r\n* Visual C++ compilers and libraries for ARM64\r\n* Windows 10 SDK (10.0.16299.0) for Desktop C++ \\[ARM and ARM64\\]\r\n\r\nAfter 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.\r\n\r\nAs 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\"}}\r\n\r\nIt 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)", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2018-01-16T12:25:38.000+0000", "updated": "2018-01-16T12:25:38.000+0000" }, { "id": "433183", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~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.", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2018-01-16T13:00:07.000+0000", "updated": "2018-01-16T13:00:07.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }