15/03/2019 19:20, Bruce Richardson: > Right now with DPDK we have two sources of version information - the > rte_version.h header file containing macros for C use, and the project > version number in the project definition in meson.build. This is not > optimal, so this patchset aims to provide a single source for the DPDK > version. The options considered are: > > * Keep version info in rte_version.h only. The two reasons this was not > chosen were: > 1) parsing the version number from the header is awkward, as seen in the > rte.sdkconfig.mk file, and a script to do so would be needed to > integrate that into the meson build project definition. > 2) rte_version.h is not in an obvious location inside the project when > a user clones from git. It's hidden away in the > "lib/librte_eal/common/include" folder. Ideally the version number > should be evident at the top level of the DPDK tree. > > * Keep version info in meson.build file only. This seemed a better option > than keeping the info in rte_version.h, but it still had disadvantages: > 1) For make, using grep on meson.build to extract the version seemed a > bit awkward, though doable. Splitting the version was tricky too, but > manageable with a small amount of scripting. > 2) There was no easy way to have users access the version number when > "make showversion" was deprecated with the make build system. > > * Store the version number in a new version file at the root level of the > repo. > * This did have the advantage of being easily discoverable on clone > * Still had the disadvantage of needing some parsing to generate the > defines from rte_version.h > > Since the last option seemed best, that is what is implemented in this set. > The file DPDK_VERSION is added to store the version number, and make and > meson both use that as their source of version info. For C code, the > rte_version.h header remains, except that the basic definitions of the > release YEAR, MONTH, MINOR etc. are moved to be automatically generated as > part of rte_config.h. For make builds, this is done via using the > preprocessor to insert the values when it generates the config. For meson > builds, this is done by just adding the values to the dpdk_conf > configuration object. > > --- > V3: Reworked following review from Thomas Monjalon. Main change is to how > the RTE_VER_RELEASE value is computed for non-release candidates. > Also added int() conversion to each version value to remove leading > zeros > V2: Updated following review from David Marchand. > > Bruce Richardson (4): > build: add single source of DPDK version number > build: move meson version handling to config directory > build: use version number from config file > eal: remove unneeded version logic
Applied, thanks