[Scons-dev] Checking for a library or header and fail
Florian Lindner
mailinglists at xgm.de
Thu Aug 25 05:07:41 EDT 2016
Hello,
in almost all of my scons projects, I have a piece of code like that one:
def uniqueCheckLib(conf, lib, header = None):
if header:
if not conf.CheckLibWithHeader(lib, header = header, autoadd=0, language="C++"):
print "ERROR: Library '" + lib + "' or header '" + header + "' not found."
Exit(1)
else:
if not conf.CheckLib(lib, autoadd=0, language="C++"):
print "ERROR: Library '" + lib + "' not found!"
Exit(1)
conf.env.AppendUnique(LIBS = [lib])
This is needed because of some shortcommings of CheckLib / CheckLibWithHeader.
1) CheckLib adds the library to LIBS, even if it is already present. That can cause problem. What is the use case for that?
2) In almost all cases, if a library is not found, I want the build to terminate. CheckLib should (optionally) print a nice error message and aborts the build, if the check fails.
Why not having a function:
AssureLibOrHeader(context,
library = None,
header = None,
[...])
If tests for library and the header, if given. If the check fails, it prints a nice error messages and fails.
Another idea what be to enhance the existings checks with a flag, abortOnFail, which prints an error messages and exists.
If such a change would have any chance of inclusion, I would try to implement it into scons.
What do you think? Are there alternatives I overlooked?
Florian
More information about the Scons-dev
mailing list