On Sat, 2015-01-24 at 01:43 -0500, Braden McDaniel wrote: > On Sat, 2015-01-24 at 13:41 +1000, Adam wrote: > > > The library contains a static which registers itself in its > > constructor. This problem is described here > > http://stackoverflow.com/a/842770 > > As something of an aside to your question, I don't know that I accept > that as a sane use case. C++ doesn't guarantee that (in that example) m > will be constructed before h. If m is not constructed first, > construction of h calls operator[] on an uninitialized object. >
I agree. The actually legacy library I'm using has wrapped the global map 'm' inside a singleton which I believe resolves the static ordering issue. I currently have to specify something like the following for every application that wants to use this library target_link_libraries( Application -Wl,--whole-archive -llegacyLib -Wl,--no-whole-archive libA libB ) I was hoping there might have been a better way to do this with target properties of legacyLib. ~Adam -- 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
