waf_generator: Copy headers if necessary.

There are some cases, where a header is installed into a directory with
a different name then it's source directory. In that case, the build
might fail because the header is not found. One example would be the
<openssl/opensslv.h>. The source for this file is in
freebsd/crypto/openssl/crypto/opensslv.h.

To allow the build to work in such cases too, copy such files into a
temporary location in the build tree.
This commit is contained in:
Christian Mauderer
2017-08-11 07:27:12 +02:00
committed by Chris Johns
parent 097ccba6b0
commit 307b324a42
3 changed files with 52 additions and 1 deletions

View File

@@ -194,6 +194,10 @@ def includes():
'-ImDNSResponder/mDNSPosix',
'-Itestsuite/include']
def buildInclude():
""" Returns the path where headers will be copied during build. """
return 'build-include'
def cpuIncludes():
return ['-Irtemsbsd/@CPU@/include',
'-Ifreebsd/sys/@CPU@/include']
@@ -205,6 +209,16 @@ def cxxflags():
return []
def headerPaths():
""" Returns a list of information about what header files should be
installed.
The list is also used to find headers with a local path that doesn't match
it's dest path. Due to the difference in the path name such files are
problematic during the build if they are included using their later
installation path (dest path) name. Therefore they are copied into a
sub-directory of the build path so that they can be included with their
normal installation path. """
# local path wildcard dest path
return [('rtemsbsd/include', '*.h', ''),
('rtemsbsd/mghttpd', 'mongoose.h', 'mghttpd'),