microsoftarchive / graphics-dependencies

MSOpenTech graphics projects dependencies
11 stars 10 forks source link

Reusable/updatable? #1

Open lilith opened 9 years ago

lilith commented 9 years ago

Hi, just noticed this repository.

My team has been working on getting multi-platform CI set up for libgd, libtiff, libjpeg-turbo, libpng, zlib, libwebp, libiconv, and freetype.

We're currently using AppVeyor and its nuget support to enable reuse across the dependency graph. Each library runs tests under its own AppVeyor project.

https://github.com/imazen/gd-libgd https://github.com/imazen/libpng https://github.com/imazen/libtiff https://github.com/imazen/libjpeg-turbo https://github.com/imazen/zlib https://github.com/imazen/libiconv https://github.com/imazen/freetype (and freeimage, some day)

Due to the windows package management situation, there's not much in the way of defined protocol for handling updates to these.

What is the reuse and update strategy here? I'd love to de-duplicate effort :)

stammen commented 9 years ago

These libs are for the Windows Store and Windows Phone versions of cocos2d-x which specifies specific versions of the libs. Do the versions you reference build for these platforms?

lilith commented 9 years ago

Our current build targets on windows are msvc x86 and x64 against msvcrt120, mingw x86 & x64 against msvcrt.dll.

We currently use cmake 2.8, but in theory we can add your targets with this fork: http://cmakems.codeplex.com/releases/view/132284

AFAIK, these libs are all portable, and zlib/libpng/libtiff/libjpeg-turbo are ABI compatible to an extreme degree.

stammen commented 9 years ago

Portable for ARM builds?

From: Nathanael Jones [mailto:notifications@github.com] Sent: Tuesday, October 07, 2014 2:04 PM To: MSOpenTech/graphics-dependencies Cc: Dale Stammen (MS OPEN TECH) Subject: Re: [graphics-dependencies] Reusable/updatable? (#1)

Our current build targets on windows are msvc x86 and x64 against msvcrt120, mingw x86 & x64 against msvcrt.dll.

We currently use cmake 2.8, but in theory we can add your targets with this fork: http://cmakems.codeplex.com/releases/view/132284

AFAIK, these libs are all portable, and zlib/libpng/libtiff/libjpeg-turbo are ABI compatible to an extreme degree.

— Reply to this email directly or view it on GitHubhttps://github.com/MSOpenTech/graphics-dependencies/issues/1#issuecomment-58261683.

lilith commented 9 years ago

We can give a try and let you know.

lilith commented 9 years ago

What do you normally use to run each lib's unit test suite when built for Windows Phone?

stammen commented 9 years ago

Each lib would require a uniquely developed test harness for windows phone and winrt. We are investigating how to adapt the test suites for these platforms.

stammen commented 9 years ago

One solution for testing openssl for windows phone and store is part of https://github.com/Microsoft/openssl

We are looking at using this framework.

lilith commented 9 years ago

Ah, so no easy solution with command-line tools inside the WP emulator or QEMU? Are there any docs surrounding the openssl win testing harness? Lots of indirection there; it's a bit hard to follow.

lilith commented 9 years ago

Would a generic ctest compatible harness be possible if all console APIs were redirected to a network stream? This seems like a very bad situation for testing.

stammen commented 9 years ago

Another option might be to modify the DLL with

link.exe /edit /appcontainer:NO?

so it can be used from a console test app.


From: Nathanael Jones notifications@github.com Sent: Tuesday, October 7, 2014 5:26 PM To: MSOpenTech/graphics-dependencies Cc: Dale Stammen (MS OPEN TECH) Subject: Re: [graphics-dependencies] Reusable/updatable? (#1)

Would a generic ctest compatible harness be possible if all console APIs were redirected to a network stream? This seems like a very bad situation for testing.

Reply to this email directly or view it on GitHubhttps://github.com/MSOpenTech/graphics-dependencies/issues/1#issuecomment-58285824.

tostercx commented 9 years ago

Nathanael probably meant - is there a way to run ARM binaries and test them on x86/x64 machines. I don't think there is one.

Haven't heard of the /appcontainer switch before. Is it needed when building libraries for WP/WS? Are there any other build steps that differ from a regular desktop build?

stammen commented 9 years ago

?As far as I understand, ARM builds can only run on arm devices which makes automated testing more difficult.

The appcontainer switch is added by the visual studio compiler when building for WP/WS. Depending on what you are building (app vs dll), there can be a lot of hidden packaging steps done by visual studio.

?


From: tostercx notifications@github.com Sent: Wednesday, October 8, 2014 3:30 AM To: MSOpenTech/graphics-dependencies Cc: Dale Stammen (MS OPEN TECH) Subject: Re: [graphics-dependencies] Reusable/updatable? (#1)

Nathanael meant - is there a way to run ARM binaries and test them on x86/x64 machines. I don't think there is one.

Haven't heard of the /appcontainer switch before. Is it needed when building libraries for WP/WS? Are there any other build steps that differ from a regular desktop build?

Reply to this email directly or view it on GitHubhttps://github.com/MSOpenTech/graphics-dependencies/issues/1#issuecomment-58338695.

tostercx commented 9 years ago

Oh, cmake-ms seems to take care of all of that automatically.

I did manage to compile ARM builds of zlib for WS and WP. Also added a x86 build for them (I believe that's what the phone/tablet emulator uses?). Interestingly WP x86 tests run without any additional flags (WS and ARM (obviously) tests don't run; I've disabled them).

https://ci.appveyor.com/project/nathanaeljones/zlib/build/1.2.7.63

I don't have a machine with windows 8 or a windows phone/tablet to see if everything works as it should tho. Do you have any projects you could drop the library in to see if it works as expected?

If it does I could proceed copying the build settings to other deps as well.