Am 10.04.2014 10:44, schrieb Stephen Kelly:
Rolf Eike Beer wrote:

Am 08.04.2014 11:43, schrieb Stephen Kelly:
Rolf Eike Beer wrote:

Of course, it is easier to get features into the
CMAKE_CXX_KNOWN_FEATURES
list when there is only one compiler to test for on the dashboard.
I'll
add one C++98 feature to establish the infrastructure, but I don't
intend
to be exhaustive about C++98 features. If you or anyone else has an
interest in doing so, I'd recommend getting them in early.

Cool. I think it would be good to get the stuff that is enabled by the "-AA +hpxstd98" calls on HP-UX 11i into such a feature so we can make
the
"complex" testcase just select whatever is needed automatically
instead of
fiddling around to get the magic flags getting passed into that test
to
make the C++ compiler behave like something useful.

Ok, I don't know anything about the features or flags of that compiler.

What features do you have in mind to add?

Working <iostream> (IIRC), or anything in std namespace. Basically it
looks like the old HP compiler needs +hpxstd98 as compile flag to behave
like a C++98 compiler at all, likely because that compiler line is
indeed older than 1998 and that simply is not the default as for later
versions of that compiler. And the -AA flag is also needed for, uhm,
something, at least CMake doesn't build without it.

So far, features which have been added are related to the compiler (driver), not the standard library. I've deliberately not considered stdlib features because I don't know how much slower that would make the feature checks. You would have to run many compile tests. Currently, features are recorded by a
single compilation which checks preprocessor defines.

I'm not convinced this features system is the right tool to solve your HP stdlib problem. cxx_working_iostreams or cxx_working_stdlib are not features
I envisioned adding when designing it.

I suggest considering alternative solutions, such as simply adding both
flags in the Compiler/HP.cmake file, a target property or a variable.

I googled a bit around and reread the mails where I was told about that flags.

Basically "-AA" says "use the new C++ lib", which is what we need.

The "I need working <iostreams> and std namespace" is the result of +hpxstd98, which they call "advanced template support", or from the current point of view "C++98 compliant template support". This is really a compiler thing, adding -AA later if +hpxstd98 is needed would be simple by just looking at the compiler flags. From what we currently know these 2 flags are needed only together, but not because they are related. They are needed because the compilers that need them have default settings for both things (C++ lib, language support) that are just too old for what CMake requires.

Eike
--

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:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to