This commit re-enables the keep_last_cmd member variable in the TaskBase class
(which was disabled by default in Waf 2.0.9) when clang_compilation_database.py
is used. The clang_compilation_database.py file was correctly updated in the
relevant Waf commit introducing the change [1], but is missing in ns-3's bundled
version of Waf.
[1] 7778868718
*) Platform was no longer recognized as a attribute of Options. Used waf
Utils call to obtain unversioned platform name.
*) Task classes renamed from <taskname>_task to <taskname>.
Waf was not finding the classes when named with _task suffix.
*) Waf removed check option for 'type_name' check.
Added explicit embedded code snippet based on previous Waf versions to perform uint128 checks.
*) Waf source attribute is now strings, need to convert to nodes to retrieve parent node.
# Orig 1.8.19 testdir = self.source[-1].parent.path_from(self.bld.srcnode)
testdir = self.to_nodes(self.source[-1])[0].parent.path_from(self.bld.srcnode)
Changes:
* run_c_code() is replaced by check()
* nice_path() got removed, and is replaced by bldpath()
* check_compilation_flag() is updated to work with 1.8 API
Clang packages in Debian are sometimes broken. In that case, compiler fails
with "fatal error: 'bits/c++config.h' file not found". We should detect that
better. This patch updates boost.py to latest waf version which works, and also
handles empty apsican variable.
This is a massive upgrade removing almost all pre-waf 1.6 script code. In addition, this does away with custom pkgconfig.py script for making .pc files and replaces it with waf's builtin mechanism.
Massive thanks to Alex Afanasyev for ideas and bugfixing, to Alina Quereilhac for bugfixing and testing, and to Tom Henderson for thorough testing.