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