On Sat, Apr 18, 2009 at 7:45 AM, Michael Jackson < mike.jack...@bluequartz.net> wrote:
> > On Apr 17, 2009, at 11:56 PM, Philip Lowman wrote: > > On Thu, Apr 16, 2009 at 4:27 AM, Jonatan Bijl <jonatan.b...@tba.nl> >> wrote: >> Boost_Unit_test_framework_library is not in the list. >> >> >> 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. >> >> That is definitely a bug that needs to be fixed in Boost's experimental >> CMake build. >> >> If you rename the library to "libboost_unit_test_framework-mt-sd.a", >> however, it's still not going to solve your problem. >> >> 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. >> >> SET( _boost_STATIC_TAG "") >> set( _boost_ABI_TAG "") >> IF (WIN32) >> IF(MSVC) >> SET (_boost_ABI_TAG "g") >> ENDIF(MSVC) >> IF( Boost_USE_STATIC_LIBS ) >> SET( _boost_STATIC_TAG "-s") >> >> ENDIF( Boost_USE_STATIC_LIBS ) >> ENDIF(WIN32) >> SET (_boost_ABI_TAG "${_boost_ABI_TAG}d") >> if(Boost_DEBUG) >> message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} >> ] " >> >> "_boost_STATIC_TAG = ${_boost_STATIC_TAG}") >> message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} >> ] " >> "_boost_ABI_TAG = ${_boost_ABI_TAG}") >> endif() >> -- >> Philip Lowman >> >> > 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. The same variable name controls whether or not you're searching for a static or a shared boost library, however. if ( WIN32 AND Boost_USE_STATIC_LIBS ) SET (Boost_LIB_PREFIX "lib") endif() ... # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES IF( Boost_USE_STATIC_LIBS ) SET( _boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) IF(WIN32) SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) ELSE(WIN32) SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) ENDIF(WIN32) ENDIF( Boost_USE_STATIC_LIBS ) Shouldn't there be a difference between the two? -- Philip Lowman
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake