On Wed, Aug 22, 2018 at 7:18 AM, Robert Dailey <rcdailey.li...@gmail.com> wrote:
> On Tue, Aug 21, 2018 at 3:47 PM Craig Scott <craig.sc...@crascit.com> > wrote: > > Excuse the brevity, but it sounds like you might be looking for the > CXX_EXTENSIONS target property (sorry if I've misunderstood your problem, > let me know why it isn't appropriate if so). See the following article for > a more complete overview of this and related properties: > > > > https://crascit.com/2015/03/28/enabling-cxx11-in-cmake/ > > Unfortunately that's not the same. Extensions manage C++ language > features and STL capabilities, but -stdlib is for selecting an STL > implementation, AFAIK. Such as GNU STL and LLVM STL (which is libc++ > to clang). > Sorry, yes I misunderstood your problem. After a little digging, it seems like you probably shouldn't be using the -stdlib option on Linux <https://stackoverflow.com/a/50407611/1938798> anyway. FWIW, for Android, the roadmap <https://android.googlesource.com/platform/ndk/+/master/docs/Roadmap.md> is converging on a single STL implementation too. Regarding your earlier comment: I'll explain a bit why I'm asking. I noticed that for code bases that > work on Android plus other UNIX platforms, they unconditionally > specify `-stdlib=libc++`, however this doesn't work on Ubuntu by > default, which uses gnu stl + gcc/clang. So you get compiler errors. > There's no way for me to "search" a platform to see if it is eligible > for the libc++ flag, I simply have to either disable it completely or > conditionally include it based on target platform and/or toolchain. > None of these really address the root cause. If you are trying to control which STL to use for Android builds, CMake variables like CMAKE_ANDROID_STL_TYPE are probably the more appropriate way to do that rather than hard-coding compiler flags. This would also mean that non-Android builds won't be affected since they would simply ignore that variable (and target properties it may affect) and should then pick up the right STL implementation automatically.The Android-specific variable would ideally be set in a toolchain file rather than in the project itself. -- Craig Scott Melbourne, Australia https://crascit.com New book released: Professional CMake: A Practical Guide <https://crascit.com/professional-cmake/>
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake-developers