SV: [sldev] Re: CMake 2.4.8 vs 2.6 (Re: Missing cares, apr inMac
build)
Bill Hoffman
bill.hoffman at kitware.com
Mon Jul 28 15:11:09 PDT 2008
Bill Hoffman wrote:
> Carsten Juttner wrote:
>> I have attached all 3 versions, first 2.4.8, then 2.6.1-p13 without
>> the patch from my previous mail and finally 2.6.1-p13 with that patch
>> for the CMakeLists.
>>
>> As you can see, 2.4.8 used -llcommon while 2.6.1-p13 uses
>> ../llcommon/libllcommon.a
>>
> That is not the problem. The problem is that the order of the
> libraries has changed from 2.4.8.
>
> 2.4.8 has this:
> -lexpat -Wl,-Bstatic -lllmessage -Wl,-Bdynamic -lcurl
>
>
> 2.6.1 has this:
> -lcurl /usr/local/lib/libcares.a -lssl -lcrypto
> /usr/local/lib/libxmlrpc-epi.so -laprutil-1 -lapr-1 -lexpat -lcurl
> /usr/local/lib/libcares.a -lssl -lcrypto /usr/local/lib/libxmlrpc-epi.so
> -laprutil-1 -lapr-1 ../llmessage/libllmessage.a
>
Carsten,
I am having a hard time reproducing this one. I went on a linux box and
ran cmake 2.6 on an svn checkout of second life:
svn co
http://svn.secondlife.com/svn/linden/release/
I did not have all the required software, so I hacked up the cmake cache
with bogus entries. However, I was able to get cmake to produce a link
line like this:
/usr/bin/c++ -Wall -Wno-sign-compare -Wno-trigraphs -Werror
-Wno-reorder -DLL_RELEASE=1 -DNDEBUG -DLL_RELEASE_WITH_DEBUG_INFO=1
-fPIC -Wl,--as-needed
CMakeFiles/linux-crash-logger.dir/linux_crash_logger.o
CMakeFiles/linux-crash-logger.dir/llcrashloggerlinux.o -o
linux-crash-logger -rdynamic
-L/home/hoffman/second/release/indra-build/llcrashlogger
-L/home/hoffman/second/release/indra-build/llvfs
-L/home/hoffman/second/release/indra-build/llxml -L/usr
-L/home/hoffman/second/release/indra-build/llmessage
-L/home/hoffman/second/release/indra-build/llmath
-L/home/hoffman/second/release/indra-build/llcommon
../llcrashlogger/libllcrashlogger.a ../llvfs/libllvfs.a
../llxml/libllxml.a -lexpat -lcurl -lssl -lcrypto /usr/libxml.a -lexpat
-lcurl -lssl -lcrypto /usr/libxml.a ../llmessage/libllmessage.a
../llmath/libllmath.a ../llcommon/libllcommon.a -lz -lglib-2.0
-lgmodule-2.0 -ldl -lgthread-2.0 -lrt -lglib-2.0 -lgmodule-2.0 -ldl
-lgthread-2.0 -lrt -lpng12 -lboost_signals-mt -lcurl -lcrypto
/usr/libxml.a ../llvfs/libllvfs.a ../llmath/libllmath.a
../llcommon/libllcommon.a -lglib-2.0 -lgmodule-2.0 -ldl -lglib-2.0
-lgthread-2.0 -lrt -lglib-2.0 -lpng12 -lboost_signals-mt
Not that there is a -lcurl that comes after ../llmessage/libllmessage.a,
and that is key for getting this to work.
On your system where it does not work, can you add a few message
commands to the CMakeLists.txt files, and rerun cmake, and send me the
output?
1.
indra/cmake/LLMessage.cmake
message{"LLMESSAGE_LIBRARIES = ${LLMESSAGE_LIBRARIES}")
2. In indra/linux_crash_logger/CMakeLists.txt:
message(" target link libraries for linux-crash-logger
${LLCRASHLOGGER_LIBRARIES}
${LLVFS_LIBRARIES}
${LLXML_LIBRARIES}
${LLMESSAGE_LIBRARIES}
${LLVFS_LIBRARIES}
${LLMATH_LIBRARIES}
${LLCOMMON_LIBRARIES}
${UI_LIBRARIES}
${BOOST_SIGNALS_LIBRARY}
${DB_LIBRARIES} ")
Also, if you could send me the CMakeCache.txt file from your binary
tree, that would be helpful in figuring out what is wrong. I think this
is the last issue with 2.6.1.
Thanks.
-Bill
More information about the SLDev
mailing list