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)
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to