extras/boost.py が追加された waf 1.7.9 を使用すると、構成時にライブラリを取得する必要があることがわかりました。これにより、さまざまなライブラリ セットでターゲットをビルドすることが難しくなります。たとえば、boost のヘッダー ファイルのみを必要とするプログラム (プログラム 'a') と、いくつかのライブラリを使用するプログラム (プログラム 'b') の 2 つのプログラムがあります。これが私の解決策ですが、私の質問は次のとおりです。これを行うためのより良い/好ましい方法はありますか?
#! /usr/bin/env python
# encoding: utf-8
def options(opt):
opt.load('compiler_cxx boost')
def configure(conf):
conf.load('compiler_cxx boost')
conf.check_boost()
conf.env.DEFINES_BOOST = ['NDEBUG']
conf.env.LIB_BOOST_FILESYSTEM = conf.boost_get_libs('filesystem system')[-1]
conf.env.LIB_BOOST_PROGRAM_OPTIONS = conf.boost_get_libs('program_options')[-1]
def build(bld):
# program 'a' requires header-only part of boost
bld.program(
target = 'a',
source = 'a.cpp',
use = ['BOOST'] )
# program 'b' requires link to some boost libraries
bld.program(
target = 'b',
source = 'b.cpp',
use = ['BOOST', 'BOOST_FILESYSTEM', 'BOOST_PROGRAM_OPTIONS'] )