* Add --enable-build-version option to control build version feature
* Disable build version when --enable-build-version is not specified
* Update getting started tutorial to reflect the new build option
* Change version tag and ClosestTag values to be ns-3.xx
* Fix string values to have the proper format
* Allow check-version to proceed even if git task is not present
* Remove git package requirement from Docker containers
* Create git_ns3_version_info task only when HAVE_NS3_REPO is defined
* Change tag glob from ns-3* to ns-3.[0-9]*
* Use version tag to make output consistent with waf --check-version
Changes
* Adds a new class named Version to the core module
* Adds a template file to the core module named version-defines.h.in
* Adds --PrintVersion and --version arguments to the CommandLine class.
* Creates a new waf tool which queries the local git repository and extracts build information from itCreate a waf task to extract version information from git repository
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.