{ "id": "165219", "key": "TIMOB-24282", "fields": { "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "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": [ { "id": "17608", "name": "Release 6.1.0", "archived": false, "released": true, "releaseDate": "2017-05-26" } ], "resolution": { "id": "10000", "description": "", "name": "Done" }, "resolutiondate": "2017-05-10T04:36:22.000+0000", "created": "2017-01-06T21:18:11.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "eng-priority" ], "versions": [ { "id": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "issuelinks": [ { "id": "54506", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "166426", "key": "TIMOB-24454", "fields": { "summary": "Windows: Improve library integration with module", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "54507", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "166427", "key": "TIMOB-24455", "fields": { "summary": "Windows: Allow custom Extensions in manifest root", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2017-05-10T04:36:22.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "12642", "name": "Windows", "description": "Windows authoring support" }, { "id": "15101", "name": "Windows phone", "description": "Windows phone platform" } ], "description": "h5. Problem Description:\r\n\r\nWe have received the following query on exposing the third party SDK to Titanium. Please find below the detailed info from customer:\r\n\r\nbq. We need a way to expose SAP's SMP SDK to Titanium in Windows.\r\nbq. Background:\r\nbq. --------------------\r\nbq. We recently needed to do this for an Android app - What we did was to build a native module that interfaced with all methods from SMP we needed so that Titanium could consume them. This module was a native module, written in Java and Kroll APIs.\r\nbq. \r\nbq. We need to do something similar with Windows, but we know Kroll is not an option, so we're wondering if Hyperloop would be the right choice for accomplishing this. We need to somehow build something (for Windows) that interfaces with SAP's SMP SDK for Windows and be able to consume these methods from Titanium. As discussed in a call with the Appcelerator team the ability to do this is a go/no-go decision to use Titanium for Cintas.\r\n\r\n\r\n\r\n\r\n", "attachment": [ { "id": "61305", "filename": "sap.jpg", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-01-21T00:25:56.000+0000", "size": 107304, "mimeType": "image/jpeg" } ], "flagged": false, "summary": "Windows: Ability to expose a 3rd party SDK to Titanium", "creator": { "name": "nmishra", "key": "nmishra", "displayName": "Neeraj Mishra", "active": true, "timeZone": "America/Phoenix" }, "subtasks": [], "reporter": { "name": "nmishra", "key": "nmishra", "displayName": "Neeraj Mishra", "active": true, "timeZone": "America/Phoenix" }, "environment": "Windows", "comment": { "comments": [ { "id": "404263", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-01-09T03:57:30.000+0000", "updated": "2017-01-09T03:57:30.000+0000" }, { "id": "404749", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Followed up on the same topic here: TIMOB-24283.", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-01-18T00:58:19.000+0000", "updated": "2017-01-18T00:58:19.000+0000" }, { "id": "406497", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~nmishra] Yes please :)", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-02-07T05:48:54.000+0000", "updated": "2017-02-07T05:48:54.000+0000" }, { "id": "408295", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{quote}\r\n1) Modify the Application's manifest to add the Extensions\r\n{quote}\r\n\r\nYou can define any {{Extensions}} in your applications config ({{tiapp.xml}}). Titanium puts them into Appx manifest as it is. For instance.\r\n\r\n{code:xml|title=tiapp.xml}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n{code}\r\n\r\n{quote}\r\n2) That our Titanium Module or Application (which consumes such libraries), be set in such a way that, the Application package contain the third party libraries. \r\n{quote}\r\n\r\nIn order to package 3rd party libraries with your module, dealing with {{CMakeLists.txt}} in your module project is needed to make sure the module includes required libraries since our build system is based on {{CMake}}. This will need some CMake commands like [target_link_libraries|https://cmake.org/cmake/help/v3.3/command/target_link_libraries.html], [target_include_directories|https://cmake.org/cmake/help/v3.3/command/target_include_directories.html] and so on. After updating CMakeList.txt, you can re-create Visual Studio project files by using {{--run-cmake}} option (See TIMOB-24331)\r\n\r\nSo CMake is very flexible tool but I guess the real problem there is that dealing with {{CMake}} is generally pain for the most of Titanium developers maybe? We might want to add simple commands or something to deal with those common tasks like this. Feel free to create new ticket for it when you have ideas about this kind of additional functionalities.\r\n", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-02T08:08:29.000+0000", "updated": "2017-03-02T08:08:29.000+0000" }, { "id": "408307", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "After some consideration about having easier way to package 3rd party library other than \"dealing with CMake manually\", I'm planning to come up with following packaging ideas just like what Titanium Android module does for use of 3rd party JARs. \r\n\r\n- Every \\*.lib, \\*.dll and \\*.winmd files in *lib* folder will be packaged into module and also copied/linked during Ti app build.\r\n- Every files in *platform* folder are packaged into module and copied into Ti app so module can overwrite files during Ti app build.", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-02T13:27:18.000+0000", "updated": "2017-03-02T13:27:18.000+0000" }, { "id": "409274", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Thanks for the info. Created TIMOB-24455 and TIMOB-24454. ", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-06T00:57:26.000+0000", "updated": "2017-03-06T00:57:26.000+0000" }, { "id": "416985", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Status: \r\n\r\n- Library integration improvement is In Review: TIMOB-24454\r\n- Added documentation on integration with .NET code: [Integrating Windows Runtime Components in C#|https://wiki.appcelerator.org/pages/viewpage.action?pageId=49158655] TIMOB-24378\r\n\r\nYou can try it out once TIMOB-24454 is merged to 6.1.0 branch.\r\n", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-04-06T23:17:30.000+0000", "updated": "2017-04-06T23:17:30.000+0000" }, { "id": "419439", "author": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing this as Done, this is implemented in 6.1.0. (TIMOB-24454 and TIMOB-24378)\r\n", "updateAuthor": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-05-10T04:36:22.000+0000", "updated": "2017-05-10T04:36:22.000+0000" } ], "maxResults": 25, "total": 25, "startAt": 0 } } }