Граф коммитов

46 Коммитов

Автор SHA1 Сообщение Дата
Ruben Guerrero 5a6c06e91b
Turn on Azure Pipelines for Windows for CI and PRs. (#52) 2019-03-05 14:14:11 -08:00
Ruben Guerrero Samaniego 2e4dbe8436 Use CMAKE_BINARY_DIR to CMAKE_CURRENT_BINARY_DIR 2019-03-01 15:10:32 -08:00
Ruben Guerrero Samaniego 965ca5e953 Merged PR 2853269: Provide platform-specific nuget packages for msix
CMake changes to enable creating independent nuget packages according to the platform.

Packages names are:
- Microsoft.MSIX.Packaging.n.n.n.nupkg
- Microsoft.MSIX.Packaging.AOSP.n.n.n.nupkg
- Microsoft.MSIX.Packaging.iOS.n.n.n.nupkg
- Microsoft.MSIX.Packaging.Linux.n.n.n.nupkg
- Microsoft.MSIX.Packaging.MacOS.n.n.n.nupkg
- Microsoft.MSIX.Packaging.Windows.n.n.n.nupkg

where n.n.n is the version of the SDK.

Other changes:
1. Fix bug where iOS couldn't find git, so the SDK version was always 0.0.0
2. Change iOS BVT to link agains libmsix.dylib and libmsixtestcommon.dylib instead of libmsix.0.0.0.dylib and libmsixtestcommon.0.0.0.dylib
3. Change testios.sh to exit if compiling the test app fails
4. Remove extra space between THIRD and PARTY in "THIRD PARTY CODE NOTICE" file name
5. Removed unnecessary cmakein files
2019-02-08 20:32:35 -08:00
Ruben Guerrero Samaniego a1c8c698f7 Merged PR 2416703: Clean up on CMakeLists.txt and DirectoryObject.cpp
Clean up to follow CMake conventions and best practices.
2018-10-09 13:44:15 -07:00
Adrian Mascarenhas 08c6b2cc0c Merged PR 2342853: [MSIX SDK] reduce binary size on android by switching to use inbox java xml parser on android instead of xerces
reducing the msix sdk binary size for android by ~3.5MB by switching to use the inbox android java xml no validation parser instead of xerces. This reduces the libmsix.so from ~5.8MB to ~2.3 MB.
- Need to use JNI interop for accessing the java xml parser elements. Made sure that local refs to java objects are released when done.
-by default on android, it will use javaxml. For flexibility, if one still wants to use the native xerces parse, they can use the -parser-xerces build flag.
- verified that androidBVT tests pass.

Related work items: #18565184
2018-10-09 13:44:15 -07:00
Ruben Guerrero Samaniego dea2e72be9 Merged PR 2308191: [MSIX SDK] add a c-make switch to exclude bundles from unpack
Enable the user to disable bundle support for the SDK by specifying -DSKIP_BUNDLES=on on CMake. If the user tries to unpack a bundle or create a bundle factory they will get 0x80070032 (E_NOTSUPPORTED). The binary size decreases ~60k.

Win x64
- bundle: 464 k
- no bundle: 413 k

Win x86
- bundle: 330 k
- no bundle: 293 k

Linux
- bundle: 5,424 k
- no bundle: 5,330 k

AOSP arm
- bundle: 4,381 k
- no bundle: 4,313 k

AOSP arm v7a
- bundle: 4,288 k
- no bundle: 4,220 k

MacOS
- bundle: 4,487 k
- no bundle: 4,413 k

iOS arm64
- bundle: 4,516 k
- no bundle: 4,458 k

Related work items: #18753331
2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego d60af3bc20 Merged PR 2285323: MSIX SDK improvements
This changes includes
- Adding version number to makemsix
- Fix multiple warning in different platforms
- Add implementation for IStream::Stat. This is specially required for Gdiplus::Image::FromStream, otherwise the image won't load.

Related work items: #18849745, #18849764, #18849775
2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego bd45ddfcba Merged PR 2098454: Add cmake option to statically link the runtime library for Windows by passing /MT or /MTd
To enable statically link the runtime library use "makewin <arch> -mt" or pass "-DUSE_STATIC_MSVC=on". Default is off.
Note: This increase the size of the binary considerably.

Related work items: #18288248
2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego b48b443d71 Merged PR 2009143: [MSIX SDK] Allow user to get more information about the AppxManifest
Implement missing functionality of IAppxManifestReader (except two methods that didn't seem relevant for now) and new public API to get any element from the AppxManifest.xml.

IMSIXDocumentElement
- GetDocumentElement - returns a IMSIXElement.

IMSIXElement
- GetAttributeValue - takes an attribute name and returns its value. Null if not present.
- GetText - returns the text of the node. Null if not present.
- GetElements - takes an xpath string and returns an IMSIXElementEnumerator with the result.

IMSIXElementEnumerator
- GetCurrent - returns current IMSIXElement
- GetHasCurrent - return true if there's an element in the current position of the list, false if not
- MoveNext - move to the next element on the list.

For example, the Appx Packaging APIs don't have a way to obtain the extension element.  With the new interfaces, this can be done like this:

`ComPtr<IMSIXDocumentElement> msixDocument;`
`RETURN_IF_FAILED(manifestReader->QueryInterface(UuidOfImpl<IMSIXDocumentElement>::iid, reinterpret_cast<void**>(&msixDocument)));`
`ComPtr<IMSIXElementEnumerator> elementEnum;`
`//  xpath valid for MSXML6`
`RETURN_IF_FAILED(manifestElement->GetElements(L"/*[local-name()='Package']/*[local-name()='Extensions']/*[local-name()='Extension']", &elementEnum));`
`// iterate the elementEnum...`

Related work items: #17990214
2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego 3722f3fd2c Merged PR 1959478: Clean up openssl sources files
Remove test files build for openssl. Also allow users to have a dynamic dependency on openssl by adding a cmake switch. Use -DUSE_SHARED_OPENSSL=on in the cmake command to enable it.

Related work items: #17881939
2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego 3808542355 Change in Windows 7 Implementation 2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego 95c361b53d Enable a switch to make zlib a dynamic dependency for msix.dll 2018-09-21 15:57:06 -07:00
Phil Smith b7364bccf0 Enable turning-off schema validation regardless of XML PAL. 2018-03-29 17:08:25 -07:00
Ruben Guerrero Samaniego 9f529df04c Move generation of headers to its own cmake module 2018-03-29 17:06:13 -07:00
Phil Smith 3d65864170 Add standard headers. 2018-03-29 17:06:06 -07:00
Phil Smith fe110564c4 Move xerces from the always-default to parser of last restort.
Add probe for MSXML6 XML PAL in CMake project root,
and plumb that bit through to the MSIX shared module.
Stub-out MSXML6 XmlObject implementation.
2018-03-05 17:51:10 -08:00
Phil Smith ba72a5ffea Move ParsingException into Xerces-C PAL.
Create XML_PARSER CMAKE switch for selecting parser PAL implementation.
Create USING_XERCES #define for use in ResultOf ABI boundary.
Make inclusion of Xerces-C project dependent on XML_PARSER setting.
2018-03-05 13:41:56 -08:00
Ruben Guerrero Samaniego 7e05b7959b Merged PR 1424038: Rename CrossPlat files from appx to MSIX
This change contains the renaming from xPlatAppx to MSIX Packaging SDK

Binaries
- xPlatAppx.dll -> msix.dll
- MakexPlatAppx.exe -> makemsix.exe

Export rename
- UnpackAppx ->UnpackPackage

Related work items: #15704951
2018-02-13 21:25:38 +00:00
Phil Smith 8c648bdbaf Merged PR 1386317: Enable iOS BVT
Vide proof of life available at: https://microsoft-my.sharepoint.com/✌️/p/psmith_ntdev/EZBv5Wwz6g5ModJ0i4JU_hoBZjFD0XCL8_4lOEz-V-3USw?e=QOpsnU

Related work items: #15424308
2018-02-01 01:48:01 +00:00
Phil Smith 7dcd4345ea Merged PR 1321539: Copy license and certificates into build folder for publishing into nuget
Copy license and certificates into build folder for publishing into nuget package for consumption by clients.

Related work items: #13953197, #15427176
2018-01-17 21:59:19 +00:00
Phil Smith ef4a7ac5c1 Merged PR 1310448: Initial changes to enable iOS symulator cross compilation
Change enables cross compilation for simulator

Related work items: #15424167
2018-01-13 02:53:15 +00:00
Phil Smith b7ff4d10b3 Push release builds to as small as possible. Will add chk builds in a subsequent patch. 2017-12-12 14:55:32 -08:00
Ruben Guerrero Samaniego 91c4aa6ede Merged PR 1208715: Enable Android build
Scripts for building Android on Linux for our build system and for windows for local development.
Archs:
- x86
- arm
- armv7a
- arm64
2017-12-12 20:50:36 +00:00
Phil Smith 1b00949302 Merged PR 1168121: Set the NDEBUG flag (to turn-off asserts) on every build flavor except for Debug
Asserts should NOT be turned-on for any release build type.

Related work items: #14265946
2017-12-01 00:59:55 +00:00
Phil Smith 4030af0a4f Merged PR 1116842: Merge bug_14681942 to feature
Basically, we needed to implement Zip64 support as HelloWorld.appx (SDX) was, under the covers built with a Zip64-based OPC container.  None of our prior collateral was built as such. Also, we didn't have the ability for a client to override unpacking an unsigned appx package (which was blocking end-to-end validation of HelloWorld.appx as it was not signed).

Related work items: #14681942
2017-11-17 19:14:02 +00:00
Ruben Guerrero Samaniego 3e09f7041d Merged PR 1116488: Create a real native nuget package
Verified that it builds and releases successfully and downloaded the package and installed it on a dummy project in VS.
Added Microsoft.xPlat.AppxPackaging.targets which allows everyone that installs the package to already have our headers in their include path.
Move stuff around in our CMakeLists.txt so we can complete the NUSPEC on clean runs without depending on an specific target.

Structure of the nuget package
- build
-- native
---MACOS
---WIN32
---Microsoft.xPlat.AppxPackaging.targets
2017-11-17 01:15:02 +00:00
Ruben Guerrero Samaniego 9a780f3706 Merged PR 1096935: Build on Linux
A bug on the CMakeLists.txt file that zlib provides makes zlib fail to compile when is used via add_subdirectory() by another project. For some reason, this issue only happens for Linux.

There's an already existing open PR since Feb 2017 with the fix (https://github.com/madler/zlib/pull/219). This PR changes the zlib submodule to point to that commit.
2017-11-14 01:44:06 +00:00
Phillip Smith c04961b588 Reverts the revert that went into the wrong branch. This should head-off any merge conflicts that arise when this branche's payload hits the payload that was in origin/helpphil. 2017-11-03 00:20:08 -07:00
Phillip Smith 8922a45334 Revert Packing up for the day. This was inadvertently pushed to the wrong branch. 2017-11-02 20:09:32 -07:00
Phil Smith dda88911c9 Packing up for the day. 2017-11-02 18:13:34 -07:00
Phil Smith 621d2da23c Feedback taken into account. 2017-11-02 11:55:48 -07:00
Phillip Smith 1fb1d3c68b Fixed the zlib decompression error, now need to fix IStream::CopyTo's implementation to figure out when to quit copying. 2017-11-02 01:23:17 -07:00
Phil Smith b21266a687 Fix debug symbols not being produce. Ensure that we're always building release builds. Insert temporary dynamic dependency on OpenSSL to unblock ThomasOl until we get CMake building the OpenSSL submodule. Add additional output via CMake to make diagnosing issues in the build a bit clearer. 2017-10-30 13:04:28 -07:00
Phil Smith 62ab396c02 Lesson learned: DO NOT use STREQUAL in CMakeLists 2017-10-27 15:20:16 -07:00
Phil Smith 10959a28e8 Fix release break due to CMakeList.txt dependency on description containing 3+ parts (which doesn't happen on first build with specified tag)
Also added release_master script to automate creating release forks from master as part of release process.
2017-10-27 15:05:33 -07:00
Phil Smith 5c05e3310c Merged PR 1028022: Merge xerces to feature
The latest round of ES changes that I had to make to get NuGet package publishing working.  You can see what the release logs look like here: https://microsoft.visualstudio.com/xPlatAppx/_apps/hub/ms.vss-releaseManagement-web.hub-explorer?definitionId=2&releaseId=17&_a=release-logs and you can find the published package here: https://microsoft.visualstudio.com/xPlatAppx/_packaging?feed=xPlatAppx&_a=feed .
2017-10-27 18:48:31 +00:00
Phil Smith 7637db9f57 Feedback taken into account and hooked-up git tags to version. 2017-10-25 18:08:30 -07:00
Phillip Smith 3e8bc53836 fix bad merge 2017-10-25 00:56:41 -07:00
Phillip Smith ade7403e45 Merge with origin/feature 2017-10-25 00:53:20 -07:00
Phillip Smith 49d4618287 Enable debugging on Mac via VSCode 2017-10-25 00:46:21 -07:00
Phil Smith abbabc9b3d Merged PR 1015588: Merge cmake to feature
This change replaces the series of VS build solutions and one-off Xcode workspace/projects that had to constantly be kept in sync with each other with a single CMake-based build system.  This new system has a single build authoring mechanism (CMakeLists.txt) that describes each logical sub-project of the entire project.  Builds in VS2017, Xcode, VS NMake, and unix make have been confirmed as working.  Automated continuous integration of this new build system is now turned-on, meaning that once this change goes live, you'll need to update your client view of the project.  At a minimum, you'll need to run: git submodule update && git submodule init once this change is pulled into your branch.  For those not entirely familiar with CMake, you can use https://cmake.org/Wiki/CMake as a good starting point for how to get up and running.

Related work items: #13953155, #13953165
2017-10-25 00:40:45 +00:00
Phil Smith bec7a19212 Now can switch between projects and get builds from root 2017-10-20 17:35:25 -07:00
Phil Smith 02e8f4d3d4 Move zlib to tag 'v1.2.9' and fix building xPlatAppx and MakeXplat via CMake on Win32 2017-10-20 16:18:01 -07:00
Phil Smith 9c474077f9 Made more progress on building everything except zlib on win32 now. 2017-10-20 00:51:19 -07:00
Phil Smith 46c15b8641 Make some more headway into authoring cmake files. 2017-10-19 18:17:46 -07:00
Phil Smith ff199e4fab remove all the VS projects, rename FTS FileSystem PAL -> POSIX, and stub-out CMakeLists.txt for everything. 2017-10-19 17:08:56 -07:00