Hi Alex, If you really want to compile for < 10.9, you can check at compile time if the function is available (using the c++ version __cplusplus or the deployment target) and if not you can fall back to the classic new() approach with something like **pseudo code**: template<class T> shared_ptr<T> std::make_shared(args...) { return shared_ptr<T>(new T(args...)); }
Even this approach seems equivalent, make_shared is a bit different see this http://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared so if your dependency want it I guess there is a reason and you should just assume that the minimum target is 10.9. Moreover you won't be able to use such kind of tricks for ever and if one day you use a dependency with c++14 features you will have similar/harder problems to compile for 10.9 or inferior versions. I used these kind of trick many times, and now I think it doesn't worth the price (but it's my opinion). And think that 10.9 is already more than 4 years old and thanks to Apple, the machines that use this version will die in 1 or 2 years due to planned obsolescence... best ever rhetoric ;) Cheers, Pierre 2018-03-19 23:00 GMT+01:00 Alex <x37v.a...@gmail.com>: > ahh yes, i'm using tr1 now in a branch, have to get make_shared going.. > moving along! > > On Mon, Mar 19, 2018 at 2:57 PM, Dan Wilcox <danomat...@gmail.com> wrote: > >> I believe the new feature C++11 namespace before it was finalized to >> std:: was something like tr1::. You could check the C++ version and >> set/typdef the namespace as required. Look in the OpenFrameworks >> ofConstants.h header. >> >> >> >> On Mar 19, 2018, at 10:49 PM, Alex <x37v.a...@gmail.com> wrote: >> >> using my cmake setup in the jit_expr project I was able to build just now >> for 10.9 but no lower, going below 10.9 didn't allow it to find the >> std::shared_ptr >> maybe I can get lower somehow? Either way, this should be more useful for >> more people :) >> >> Thanks for the info Dan! >> >> On Mon, Mar 19, 2018 at 2:15 PM, Dan Wilcox <danomat...@gmail.com> wrote: >> >>> Also, if you're targeting C++11, I think you'll have to use a min of at >>> least 10.7 (from https://stackoverflow.com/questions/7482026/can-i-use- >>> the-latest-features-of-c11-in-xcode-4-or-osx-lion). >>> >>> One thing we've noticed is that Pd builds on my machine running 10.13 >>> don't seems to work on 10.6-10.7 systems, so the deployment target is >>> really a suggestion at best. You'll have to do some testing but it's hard >>> to hit *everyone* and honestly the vast majority of users fall within the >>> newest to maybe 3 versions before anyway (ie. 10.10 - 10.13 now). >>> >>> For plain C/C++, you can have a relatively old deployment target. It's >>> really more important for macOS app development using the Apple frameworks >>> ie. stuff like the changes from QT to AVFoundation, etc. >>> >>> >>> On Mar 19, 2018, at 10:07 PM, Dan Wilcox <danomat...@gmail.com> wrote: >>> >>> The compiler builds for the current system by default. You have to set >>> the min deployment target when building. >>> >>> Add this flag to you makefile: --mmacosx-version-min=10.6 >>> >>> The current version for Pd is 10.6 which is the first version that >>> supported i386 (ie. Intel processors). >>> >>> On Mar 19, 2018, at 12:00 PM, pd-dev-requ...@lists.iem.at wrote: >>> >>> From: Miller Puckette <m...@ucsd.edu> >>> To: Alex <x37v.a...@gmail.com> >>> Cc: pd-dev <pd-dev@lists.iem.at> >>> Subject: Re: [PD-dev] Mac SDK version for externals >>> Message-ID: <20180319015755.GY7620@elroy.localdomain> >>> Content-Type: text/plain; charset=us-ascii >>> >>> This is a very interesting and useful question. >>> >>> At the outset of PD I only worried about having it run on the "current" >>> platforms: Redhat 5.2, Windows 95, and when it arrived, MacOS 10.2. >>> Older >>> platforms weren't important. >>> >>> Since then I've tried to keep back compatibility to whatever those >>> bleeding-edge >>> OSes were, because I assume people can't always afford machine >>> upgrades. But >>> I haven't tried to extend Pd (Or "extra" objects) backward past the >>> original >>> dates. >>> >>> At the moment I can only compile back to OSX 10.5 (PPC) and Windows XP; I >>> don't have real or virtual machines that go back further. >>> >>> So my suggestion would be: make it work on today's OSes, and try to keep >>> it >>> alive on them, but don't worry too hard about older ones. I don't think >>> I'm >>> ever going to be tempted to compile Pd for Windows 3.1. >>> >>> cheers >>> Miller >>> >>> >>> -------- >>> Dan Wilcox >>> @danomatika <http://twitter.com/danomatika> >>> danomatika.com >>> robotcowboy.com >>> >>> >>> >>> >>> -------- >>> Dan Wilcox >>> @danomatika <http://twitter.com/danomatika> >>> danomatika.com >>> robotcowboy.com >>> >>> >>> >>> >> >> -------- >> Dan Wilcox >> @danomatika <http://twitter.com/danomatika> >> danomatika.com >> robotcowboy.com >> >> >> >> > > _______________________________________________ > Pd-dev mailing list > Pd-dev@lists.iem.at > https://lists.puredata.info/listinfo/pd-dev > >
_______________________________________________ Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev