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

28 Коммитов

Автор SHA1 Сообщение Дата
Ruben Guerrero 679aad9d9a Add new c file in crypto_sources.cmake 2019-02-08 14:55:20 -08:00
Adrian Mascarenhas 75b7bdd6ad Merged PR 2475924: compiler switches to reduce binary size.
trying out a few compiler optimization switches to reduce binary size. (thanks to some tips from https://ptspts.blogspot.com/2013/12/how-to-make-smaller-c-and-c-binaries.html)
On MacOs/ios, got gains of ~200K. Not much on android for some reason, could be that the android toolchain is interfering somehow.

Related work items: #19337401
2018-10-22 13:56:05 -07:00
Adrian Mascarenhas 6ff2c74f1a Merged PR 2467160: reduce size of openssl static lib in the msix sdk binary.
reduce size of openssl static lib by getting rid of unused crypto algos. This reduces size of msix SDK binary by ~400K
current size is now down from 1.6MB to ~1.2MB.

Related work items: #19319090
2018-10-22 13:55:39 -07: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
Ruben Guerrero Samaniego 508de650e7 Merged PR 2275263: Support for Flat Bundles
Adding support for flat bundles. There are two ways a flat bundle can be unpacked:
1. Payload packages are in the same directory as the flat bundle.
1. Payload packages are in a different directory as the flat bundle.

For case 1, we create the stream of the package given the path of the bundle plus the information on the bundle manifest. A flat bundle and payload packages for testing can be found under test/appx/flat.

For case 2, two new public interfaces are defined: IMsixFactoryOverrides and IMsixStreamFactory. IMsixFactoryOverrides is implemented by the AppxFactory. The user can QI for this interface and specify an override via SpecifyExtension and the extension it wants to override defined in the MSIX_FACTORY_EXTENSION enum before creating the bundle/package reader. For now, we only have MSIX_FACTORY_EXTENSION_STREAM_FACTORY but it is design to be extended if we need to (eg. override applicability logic)

For MSIX_FACTORY_EXTENSION_STREAM_FACTORY, the user needs to set an object that implements IMsixStreamFactory. When the bundle being unpacked is a flat bundle, we get the override via GetCurrentSpecifiedExtension and QI for IMsixStreamFactory. IMsixStreamFactory has only one method, CreateStreamOnRelativePath that takes a path of the package and returns an IStream for that package. We then validate this stream as normal.

sample/OverrideStreamSample contains a sample implementation of IMsixStreamFactory and IStream. An easy way to play with the sample is to copy FlatBundleWithAsset.appxbundle in a different folder and try to unpack it.

Extras: refactor to improve readability of the code.

Related work items: #18607747, #18607753
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 c5a76f64c5 Merged PR 1964543: Modify windows build scripts to set up MSVC environments for all Visual Studio 2017 versions
We used to require Visual Studio 2017 Enterprise to be installed. This change enables other versions of Visual Studio 2017, like Community.
2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego 5e14b6cc29 Changes in Xerces for AppxBundle 2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego bfac59f297 Initial parse of bundle manifest 2018-09-21 15:57:06 -07:00
Ruben Guerrero Samaniego 41b3df6e61 Merged PR 1609222: Unpack appx bundles
In this change:
- Enable unpacking appx bundles and recursive unpacking of the packages in the bundle.
- Generate PublsiherId using the Windows implementation
- Take out the bundles xsds from the RESOURCES_APPXBUNDLEMANIFEST set
- Remove cache semantics in DirectoryObject to avoid errono = 24 (too many files open) while unpacking a bundle
- Add appx bundle packages for testing
- Enable some tests on non-mobile platforms. On non-mobile we use the public APIs. This functionality will be enable in another PR.
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
Phil Smith 9275d95e84 Feedback taken into account. 2018-03-29 17:07:49 -07:00
Phil Smith 3a46722da7 XSD validation works, still need to remove unknown namespaces. 2018-03-29 17:07:41 -07:00
Ruben Guerrero Samaniego 4a377460b4 Select the resources to be compressed depending on the OS and XML parser being used and generate the MSIXResource.hpp only witht he applicable resources. Re-add missing AppxManifest schemas. Add AppxManifest schemas to the resources zip file when the parser is MSXML6 in Windows. 2018-03-29 17:06:30 -07:00
Ruben Guerrero Samaniego a117edec78 Use const std::uint8_t instead of std::vector 2018-03-29 17:06:20 -07:00
Ruben Guerrero Samaniego 2604b9a0bc Delete AppxCerts.hpp to use the new resource zip file. Rename resource file to MSIXResource. Create a helper methods to obtain the resources and move CreateBufferFromStream to its own header. 2018-03-29 17:06:17 -07:00
Ruben Guerrero Samaniego 3ef3cdc208 Validate that zip file works 2018-03-29 17:06:16 -07:00
Ruben Guerrero Samaniego 875a0ccab8 Remove AppxBlockMapSchemas.hpp and ContentTypesSchemas.hpp to use the zip file 2018-03-29 17:06:15 -07:00
Ruben Guerrero Samaniego 5f160e0645 Create a zip folder from the resouces directory using CMake at processing time 2018-03-29 17:06:14 -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 2b62861123 Merged PR 1322910: Enable arm64 ios build
Enable arm64 ios build, and fix a bug found during integration of x86 simulator as part of the normal build integration

Related work items: #15424167
2018-01-18 00:51:06 +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 9292ca1a88 uncomment OpenSSL_add_all_algorithms and fix resulting linker error. 2017-11-27 12:00:21 -08:00
Phil Smith b1f669e368 Fix missing import dependencies 2017-11-21 17:19:49 -08:00
Phillip Smith 482e0bf305 re-enable blowfish, bio, des, and es components, and remove clearly bad/broken components (that were already commented out anyway) 2017-11-11 00:28:53 -08:00
Phillip Smith 62bda0ff04 Everything builds on Mac. 2017-11-10 23:31:50 -08:00
Phil Smith 1204c3c385 Point OpenSSL @ latest FIPS2.0 module; 1.0.2.m and commit CMake file changes to build OpenSSL. Need to moving sources back from latest layout to 1.0.2 layout 2017-11-10 18:31:36 -08: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