How to build boost for ARM (to use on Windows Phone)

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

How to build boost for ARM (to use on Windows Phone)

mmeshref
I am trying to use Boost for Windows phone 8 (or 8.1). How can I build and generate boost libraries to be used by Windows Phone?
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

stgates
I've started making portions of Boost build for Windows Phone. See my previous post on the Boost dev mailing list:

http://boost.2283326.n4.nabble.com/winrt-support-Adding-support-for-Windows-8-store-phone-to-Boost-libraries-tc4661713.html#a4661724

I'm in the process of contributing some of the changes back now. What Boost libraries are you interested in using on Windows Phone?

Steve
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

Michael Austin
In reply to this post by mmeshref
We are also just starting the process of porting a project to Windows Phone, our current application links to atomic, chrono, date_time, regex, system, thread.

I have actually started an attempt to get this working by cloning modular-boost and swapping in your github repositories (from the link in your other post) so I could build them. I have had mixed results so far, but I will keep debugging to see if it's a problem I have caused or whatnot.

Boost::Date_Time has an error in bjam - rule "supported-windows-api" unknown in module - jamfile.  for all builds.
Boost::System  seems to build perfectly for windows-api=store, but for windows-api=phone does not compile at all. (over 100 errors in error_code.ipp, I have just started debugging.)

At any rate, I just thought I'd pipe in and mention my interest in having those libraries working as well.


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

stgates
Hi Michael,

Thanks for the feedback on the Boost libraries you are using.

For date_time, I made some changes to make it easier to contribute back to Boost from what I originally had in the repositories. Initially by default if you built on an Windows machine that supported store it would produce both the store and desktop (existing) binaries. However this made contributing back more complicated so I changed it to be opt in. Date_Time doesn't use any banned APIs to my knowledge so you can just use straight from the master or develop branch.

To try out my work for date_time, system, or any of the other libraries. You will need at least the following:

    'winrt' branch from my Boost.Build fork.
    'winrt' branch from my Boost.Predef fork.

I don't have any trouble building Boost.System locally from my fork for store or phone. Here is the command I was using: b2 toolset=msvc-11.0 windows-api=phone

Steve
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

Michael Austin
Thanks for your quick response!

I got around that date_time problem by switching back to master and it does work. I had already switched submodules to the winrt branch for both Build and Predef so that was not an issue.

Your reply did highlight the problem for building Boost.System. In your command line I noticed you had specified toolset=msvc-11.0 - I had not done so, and it seems it was defaulting to msvc-12.0 which still does not build when windows-api=phone - However, I was able to successfully build it using your command.

Just for a quick sanity test I went through and tested the build in Boost.System with each command as follows

Builds Succesfully:
b2 toolset=msvc-11.0 windows-api=phone
b2 toolset=msvc-11.0 windows-api=store
b2 toolset=msvc-12.0 windows-api=store

Fails:
b2 toolset=msvc-12.0 windows-api=phone

So for now, I think I can just work around the problem using the other toolset.

I will be sure to post here if I run into any other troubles getting these libraries to work.

Thanks again,
Michael

On May 21, 2014, at 3:24 PM, stgates <[hidden email]> wrote:

> Hi Michael,
>
> Thanks for the feedback on the Boost libraries you are using.
>
> For date_time, I made some changes to make it easier to contribute back to
> Boost from what I originally had in the repositories. Initially by default
> if you built on an Windows machine that supported store it would produce
> both the store and desktop (existing) binaries. However this made
> contributing back more complicated so I changed it to be opt in. Date_Time
> doesn't use any banned APIs to my knowledge so you can just use straight
> from the master or develop branch.
>
> To try out my work for date_time, system, or any of the other libraries. You
> will need at least the following:
>
>    'winrt' branch from my Boost.Build fork.
>    'winrt' branch from my Boost.Predef fork.
>
> I don't have any trouble building Boost.System locally from my fork for
> store or phone. Here is the command I was using: b2 toolset=msvc-11.0
> windows-api=phone
>
> Steve
>
>
>
> --
> View this message in context: http://boost.2283326.n4.nabble.com/How-to-build-boost-for-ARM-to-use-on-Windows-Phone-tp4662579p4662687.html
> Sent from the Boost - Build mailing list archive at Nabble.com.
> _______________________________________________
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

Michael Austin
I think I might have said something stupid here. We were trying to use VS2013 because it seems to be the first VS to support "Universal Phone / Store Apps" which means I need to get these builds working using toolset=msvc-12.0 or I will have to go back to VS2012. 

Have you been able to build using msvc-12.0? 

On May 21, 2014, at 3:59 PM, Michael Austin <[hidden email]> wrote:

So for now, I think I can just work around the problem using the other toolset. 


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

stgates
The problem is there weren't any vcvars setup scripts for Windows phone 8.1 in Visual Studio Update 2. I'm looking into options about what can be done. For now you will have to stick with toolset=msvc-11.0 when targeting phone.

Thanks,
Steve
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

easonh00
This post has NOT been accepted by the mailing list yet.
Hi Steve,

I am stuck when build library Thread, and get the following error:
.\boost/thread/win32/thread_heap_alloc.hpp(13) : fatal error C1083: Cannot open include file: 'boost/core/no_exceptions_support.hpp': No such file or directory

I searched the file "no_exceptions_support.hpp", and found it under "detail" folder not "core". I tried to modify it to #include "boost/detail/no_exceptions_support.hpp", however I still got many other errors. I doubt I got the incorrect code which is incompatible with your code in Github https://github.com/MSOpenTech/thread.git.

Can you throw me some light about how to build it step by step?

BTW, I sent your 2 emails to request the build instruction, but didn't get reply from you. Maybe you missed my mail . So I send this mail to the mail list again.
I DO need your help. Thanks in advance!

Yuxiang
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

easonh00
In reply to this post by stgates
Hi Steve,

I am stuck when build library Thread, and get the following error:
.\boost/thread/win32/thread_heap_alloc.hpp(13) : fatal error C1083: Cannot open include file: 'boost/core/no_exceptions_support.hpp': No such file or directory

I searched the file "no_exceptions_support.hpp", and found it under "detail" folder not "core". I tried to modify it to #include "boost/detail/no_exceptions_support.hpp", however I still got many other errors. I doubt I got the incorrect code which is incompatible with your code in Github https://github.com/MSOpenTech/thread.git.

Can you throw me some light about how to build it step by step?

BTW, I sent your 2 emails to request the build instruction, but didn't get reply from you. Maybe you missed my mail . So I send this mail to the mail list again.
I DO need your help. Thanks in advance!

Yuxiang
Reply | Threaded
Open this post in threaded view
|

RE: How to build boost for ARM (to use on Windows Phone)

stgates

Hi Yuxiang,

 

I’ve responded to your email with instructions. I was on vacation over the 4th of July holiday when you emailed. From what you describe below it makes me think you potentially have stale boost sources, Boost.Core was added last month.

 

Please note some of these contributions have been accepted back to Boost and others are still in progress and might change.

 

Steve

 

From: easonh00 [via Boost] [mailto:ml-node+[hidden email]]
Sent: Friday, July 4, 2014 1:37 AM
To: Steve Gates
Subject: Re: How to build boost for ARM (to use on Windows Phone)

 

Hi Steve,

I am stuck when build library Thread, and get the following error:
.\boost/thread/win32/thread_heap_alloc.hpp(13) : fatal error C1083: Cannot open include file: 'boost/core/no_exceptions_support.hpp': No such file or directory

I searched the file "no_exceptions_support.hpp", and found it under "detail" folder not "core". I tried to modify it to #include "boost/detail/no_exceptions_support.hpp", however I still got many other errors. I doubt I got the incorrect code which is incompatible with your code in Github https://github.com/MSOpenTech/thread.git.

Can you throw me some light about how to build it step by step?

BTW, I sent your 2 emails to request the build instruction, but didn't get reply from you. Maybe you missed my mail . So I send this mail to the mail list again.
I DO need your help. Thanks in advance!

Yuxiang


If you reply to this email, your message will be added to the discussion below:

http://boost.2283326.n4.nabble.com/How-to-build-boost-for-ARM-to-use-on-Windows-Phone-tp4662579p4664734.html

To unsubscribe from How to build boost for ARM (to use on Windows Phone), click here.
NAML

Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

Michael Austin
For boost::thread I have had to set BOOST_NO_ANSI_APIS manually or it won't build for me.

b2 windows-api=phone cflags=-DBOOST_NO_ANSI_APIS link=static variant=release,debug architecture=arm,x86

(this is using default toolset msvc-12.0)

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

stgates
Yes this is because you need the changes to Boost.Config where I defined BOOST_NO_ANSI_APIS. I have a pending pull request for this:

    https://github.com/boostorg/config/pull/16

Please note that when building using the 11.0 toolset you are targeting Windows Phone 8.0, when using the 12.0 toolset Windows Phone 8.1 is targeted. Unfortunately Visual Studio 2013 (toolset 12.0) didn't include the vcvars setup scripts for phone 8.1 so you won't be successful yet.

I'm working on writing up a blog post explaining everything and containing the vcvars setup scripts for phone 8.1 that should be done by the end of the week.
Reply | Threaded
Open this post in threaded view
|

Re: How to build boost for ARM (to use on Windows Phone)

stgates
I wrote up a blog post with more instructions on how to use. It also includes a set of vcvars setup scripts you can now use for targeting Windows Phone 8.1