[CMake] findBoost says it finds static unit testing libraries, but does not set them
Michael Jackson
mike.jackson at bluequartz.net
Sat Apr 18 07:45:27 EDT 2009
On Apr 17, 2009, at 11:56 PM, Philip Lowman wrote:
> On Thu, Apr 16, 2009 at 4:27 AM, Jonatan Bijl <jonatan.bijl at 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 link to the c++ runtime. I know OS X does NOT offer that
option. Not sure about linux.
Mike
More information about the CMake
mailing list