C ++ только для заголовков библиотека с waf

Добрый день,
перед полной миграцией на waf (1.7.5) я попытался создать простой проект такой структуры:

wafproject
├── application
│   ├── main.cpp
│   └── wscript
├── library1
│   ├── foo1.hpp
│   ├── foo2.hpp
│   └── wscript
└── wscript

Это корень wscript:

def options(opt) :
opt.load('compiler_cxx')

def configure(cnf) :
cnf.load('compiler_cxx')

def build(bld) :
bld.recurse('library1')
bld.recurse('application')

Это application wscript:

def build(bld) :
bld( features = 'cxx cxxprogram'
, target = 'application'
, source = 'main.cpp'
, use = ['library1']
)

Это library1 wscript

def build(bld) :
bld( name = 'library1'
, inludes = '../../'
, export_inludes = '../../'
)

(Примечание: я пытался использовать target вместо name за library1и у меня тоже
попытался включить cxx cxxshlib особенности для library1.)

Это main.cpp:

#include <wafproject/library1/foo1.hpp>
#include <wafproject/library1/foo2.hpp>

int main()
{
}

И это ошибка, которую я получаю:

Setting top to                           : /home/<path>/wafproject
Setting out to                           : /home/<path>/wafproject/build
Checking for 'g++' (c++ compiler)        : /usr/bin/g++
'configure' finished successfully (0.038s)
Waf: Entering directory `/home/<path>/wafproject/build'
[1/3] cxxshlib:  -> build/library1/liblibrary1.so
[2/3] cxx: application/main.cpp -> build/application/main.cpp.1.o
../application/main.cpp:1:40: fatal error: wafproject/library1/foo1.hpp: Directory or file does not exist.
compilation terminated.
Waf: Leaving directory `/home/<path>/wafproject/build'
Build failed
-> task in 'application' failed (exit status 1):
{task 139729350901264: cxx main.cpp -> main.cpp.1.o}
['/usr/bin/g++', '../application/main.cpp', '-c', '-o', 'application/main.cpp.1.o']

Я не хочу менять способ включения заголовков, но для этого мне нужно изменить способ настройки моего проекта.

Я был бы рад за любой вклад, спасибо.

РЕДАКТИРОВАТЬ: решено, это была просто опечатка (inludes вместо includes а также export_inludes вместо export_includes).

4

Решение

Так как это первое, что есть в google для «библиотеки заголовков только для waf», я решил опубликовать общее решение.

bld(name = 'libname', export_includes = 'PATH/TO/lib/')

Который работает для меня.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]