boost zbudowanie za pomoca cmake tylko wybranych bibliotek

0

boost z tego co widze ma wbudowane narzędzie wspierające budowania b2
za pomocą parametrów mozna wylaczyc/wlaczyc biblioteki
np. b2 --without-wave

a jak to zrobić w cmake ? Nie budowac wszystkiego tylko to co jest mi potrzebne ?

2

W cmake od tego są cached variables.
Np używając option

option(DO_NOT_USE_WAVE "Set to disable use of wave" OFF)

if (NOT DO_NOT_USE_WAVE)
    add_subdirectory(wave)
endif()

Podczas konfiguracji możesz nadać wartość tej zmiennej za pomocą -D i wartość zostanie nadpisana:

cmake -G Ninja .. -DDO_NOT_USE_WAVE=ON

Jest fajny tool ccmake terminalowy, który pokazuje wartość zmiennych konfigurowalnych.
To samo robi graficzny cmake.

Jeśli chcesz bardziej skomplikowaną opcję konfiguracyjną to wtedy trzeba użyć: set.

set(DO_NOT_USE_WAVE OFF CACHE BOOL "Set to disable use of wave")
set(SOME_PATH "/etc/bin" CACHE PATH "some path")

Jak chcesz podejrzeć obecną wartość tych zmiennych:

cmake -L
0

i jeszcze alternatywne rozwiązanie:

pobieramy tylko folder z modułem +zależności np. do zbudowania Boost::json potrzebujemy:

git.exe submodule update  ^
    tools/cmake  libs/align libs/assert libs/config libs/core libs/array  ^
    libs/predef  libs/static_assert libs/type_traits ^
    libs/winapi libs/throw_exception libs/describe libs/mp11 libs/container libs/container_hash ^
    libs/intrusive libs/move libs/system libs/variant2^
    ^
    libs/json 

Bardzo skraca sie czas pobierania i budowania jak nie potrzebujemy wszystkiego :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1