<div class="gmail_quote">On Sat, Apr 18, 2009 at 7:45 AM, Michael Jackson <span dir="ltr"><<a href="mailto:mike.jackson@bluequartz.net">mike.jackson@bluequartz.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5"><br>
On Apr 17, 2009, at 11:56 PM, Philip Lowman wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Thu, Apr 16, 2009 at 4:27 AM, Jonatan Bijl <<a href="mailto:jonatan.bijl@tba.nl" target="_blank">jonatan.bijl@tba.nl</a>> wrote:<br>
Boost_Unit_test_framework_library is not in the list.<br>
<br>
<br>
About the filenames: these libs are the result of compiling boost 1.38.0 with cmake under linux. (Cmake for boost is still experimental). It might be that the problem is in boost’s Cmakelists.<br>
<br>
That is definitely a bug that needs to be fixed in Boost's experimental CMake build.<br>
<br>
If you rename the library to "libboost_unit_test_framework-mt-sd.a", however, it's still not going to solve your problem.<br>
<br>
The 's' tag is for static C++ runtime libraries and for some reason it's enabled on Windows in FindBoost.cmake when you set Boost_USE_STATIC_LIBS, but not on other platforms. This has always seemed a bit weird to me and I've wondered why this is.<br>
<br>
SET( _boost_STATIC_TAG "")<br>
set( _boost_ABI_TAG "")<br>
IF (WIN32)<br>
IF(MSVC)<br>
SET (_boost_ABI_TAG "g")<br>
ENDIF(MSVC)<br>
IF( Boost_USE_STATIC_LIBS )<br>
SET( _boost_STATIC_TAG "-s")<br>
<br>
ENDIF( Boost_USE_STATIC_LIBS )<br>
ENDIF(WIN32)<br>
SET (_boost_ABI_TAG "${_boost_ABI_TAG}d")<br>
if(Boost_DEBUG)<br>
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "<br>
<br>
"_boost_STATIC_TAG = ${_boost_STATIC_TAG}")<br>
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "<br>
"_boost_ABI_TAG = ${_boost_ABI_TAG}")<br>
endif()<br>
-- <br>
Philip Lowman<br>
<br>
</blockquote>
<br></div></div>
It is enabled on windows because Windows offers the option to statically linkCMake 2.6.3's to the c++ runtime. I know OS X does NOT offer that option. Not sure about linux.</blockquote><div><br>The same variable name controls whether or not you're searching for a static or a shared boost library, however.<br>
<br><pre> if ( WIN32 AND Boost_USE_STATIC_LIBS )<br> SET (Boost_LIB_PREFIX "lib")<br> endif()<br>...<br> # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES<br> IF( Boost_USE_STATIC_LIBS )<br>
SET( _boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})<br> IF(WIN32)<br> SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})<br> ELSE(WIN32)<br> SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})<br>
ENDIF(WIN32)<br> ENDIF( Boost_USE_STATIC_LIBS )</pre></div></div><br>Shouldn't there be a difference between the two?<br><br>-- <br>Philip Lowman<br>