On 11/08/17 20:15, Rolf Eike Beer wrote:
Am Donnerstag, 10. August 2017, 10:28:31 schrieb rle...@codelibre.net:
On 2017-08-10 09:50, Jones J.W. wrote:
I'm building my code on Linux using the g++ flags "-std=c++11". This
means that I must link with the libIce++11 libraries instead of
libIce.

The FindIce module, however as no provision for choosing these
libraries thus resulting in unresolved symbols at link time.

I tried getting around the problem by simply listing Ice++11 as a
COMPONENT which works in Linux but the same CMakeLists.txt file in
Windows won't work as there is no Ice++11. Currently I have resolved
this by having two calls to the FindIce module inside an IF( MSVC )
conditional.

Would it be possible to add a flag to tell the FindIce module whether
C++11 is being used or not?

FindIce certainly needs an update for Ice 3.7.

To me this smells like an imported target with a generator expression that
uses the C++11 or other lib depending on the used interface of the target. No
idea if that is possible, but that would be the direction I would search in.

I'm unsure, but I suspect it's not appropriate. I'm currently treating them as separate libraries because whether C++11 is used by the compiler is orthogonal to whether you're using the C++11 Ice API (and code generator). Ice generates language-specific interfaces and implementations from abstract definitions, and it treats C++ and C++11 as essentially different languages. You need to explicitly opt into using C++11 in the interface definitions for code generation, and with respect to which libraries you link to.

For anyone using Ice who would like to test, I've opened
https://gitlab.kitware.com/cmake/cmake/merge_requests/1137for testing and review. Would be helpful if anyone wanting to use Ice 3.7 could give it a try, but equally if you're using 3.[3456] it would be great to know if there are any regressions. I'll be testing Ice 3.5, but no longer have any of the others lying around (3.3 can probably be removed, it's so old and unsupported).


Regards,
Roger
--

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/mailman/listinfo/cmake

Reply via email to