[CMake] FindBoost.cmake updated on the bugtracker
Timenkov Yuri
ytimenkov at parallels.com
Mon Apr 7 11:47:03 EDT 2008
On Monday 07 April 2008 19:37:26 Mathias Dalheimer wrote:
> Hi,
>
> as a new cmake user I am pretty impressed how painless software builds
> can be - so first of all, thanks for releasing this software.
I came to different solution. I have to build statically with some libraries
(including boost), and I use following approach to force CMake
build with static libs.
The question to other gurus: is it moral/correct to use CMake this way? :)
# Macro file
macro(MACRO_PUSH_VARIABLES)
if(NOT DEFINED _PUSH_VERIABLES_COUNTER)
set(_PUSH_VERIABLES_COUNTER 0)
endif(NOT DEFINED _PUSH_VERIABLES_COUNTER)
math(EXPR _PUSH_VERIABLES_COUNTER "${_PUSH_VERIABLES_COUNTER}+1")
foreach(_CURRENT_VAR ${ARGN})
set(_PUSH_VARIABLES_SAVE_${_CURRENT_VAR}_${_PUSH_REQUIRED_VARS_COUNTER} ${${_CURRENT_VAR}})
endforeach(_CURRENT_VAR)
endmacro(MACRO_PUSH_VARIABLES)
macro(MACRO_POP_VARIABLES)
# don't pop more than we pushed
if("${_PUSH_VERIABLES_COUNTER}" GREATER "0")
foreach(_CURRENT_VAR ${ARGN})
set(${_CURRENT_VAR} ${_PUSH_VARIABLES_SAVE_${_CURRENT_VAR}_${_PUSH_REQUIRED_VARS_COUNTER}})
endforeach(_CURRENT_VAR)
math(EXPR _PUSH_VERIABLES_COUNTER "${_PUSH_VERIABLES_COUNTER}-1")
endif("${_PUSH_VERIABLES_COUNTER}" GREATER "0")
endmacro(MACRO_POP_VARIABLES)
# Find boost file.
set(WITH_BOOST_STATIC TRUE CACHE BOOL "Link statically with Boost libraries")
macro_push_variables(CMAKE_FIND_LIBRARY_SUFFIXES)
if(UNIX AND WITH_BOOST_STATIC)
# Find only static libraries
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
endif(UNIX AND WITH_BOOST_STATIC)
find_library(BOOST_THREAD_LIBRARY_RELEASE
NAMES "libboost_thread-${BOOST_TOOLSET}-mt-${BOOST_VERSION}" "boost_thread-mt" "boost_thread"
PATH_SUFFIXES third
DOC "Boost.Thread library"
)
find_library(BOOST_THREAD_LIBRARY_DEBUG
NAMES "libboost_thread-${BOOST_TOOLSET}-mt-gd-${BOOST_VERSION}" "boost_thread-mt" "boost_thread"
PATH_SUFFIXES third
DOC "Boost.Thread debug library"
)
macro_pop_variables(CMAKE_FIND_LIBRARY_SUFFIXES)
More information about the CMake
mailing list