4

waf wscript ファイルでライブラリとヘッダーを検索しようとしています。一般に、次の場合に可能です。

def configure( conf ):
  conf.load( "compiler_cxx" )
  conf.check_cxx( lib = "thelib" )
  conf.check_cxx( header_name "header.hpp" )

これは、ライブラリとヘッダーがほとんど共通の場所にある Unix のようなシステムでは問題なく機能します。ただし、コマンドにカスタム検索パスを追加したいと考えていますcheck_cxx()。特に、Windows システムのユーザーが、ファイル システムのどこかにあることが多いライブラリを検索できるようにするためです。

私はlibpath議論を認識していますが、それはまだ何らかの形で満たされる必要があります.

また、waf でそのようなことを行うための他のアプローチ、ソリューション、または優れたプラクティスについても喜んでお聞きします。

4

3 に答える 3

4

ベスト プラクティスはuse、チェックに WAF の機能を使用し ( wafbook の §10.3 )、外部/システム ライブラリのパスを定義することです ( §10.3.3 ) 。

次のようになります。

def configure(conf):

    conf.load('compiler_cxx')
    conf.env.LIBPATH_MYLIB = ['/usr/local/lib']
    conf.env.INCLUDES_MYLIB  = ['/usr/local/include']

    if sys.platform == 'win32':
            conf.env.LIBPATH_MYLIB   = ['/custom/windows/path/lib']
            conf.env.INCLUDES_MYLIB  = ['/custom/windows/path/include']

    # use MYLIB in your check
    conf.check_cxx(lib = 'somelib', use = 'MYLIB', cxxflags = '-O2')

def build(bld):

    # Of course you can use the defined MYLIB in build ^^
    bld.program(source = 'main.cpp', use = 'MYLIB')
于 2013-03-19T11:10:26.990 に答える
1
def build(bld):
    bld.program(
        ...
        stdlibpath=['list/of','various/paths','the/linker/checks/for','libraries'],
        ...
    )
于 2013-01-22T15:38:23.463 に答える