New build system - Week 3
· 2 min read
Attendees
- Michael C. Jaeger https://github.com/mcjaeger
- Gaurav Mishra https://github.com/GMishx
- Sarita Singh https://github.com/itssingh
- Avinal Kumar https://github.com/avinal
Week 2 Progress
- Version file Implementation
- Initial functions on obtaining commit and branch info
- To test the current progress, follow the instructions here
Discussions
-
What is the regex expression used for obtaining version information?
- The regex has recently been modified to cover recent versions. The latest form is as below:
([[:digit:]]+.[[:digit:]]+.[[:digit:]]+)(-?rc[[:digit:]]+)?-?([[:digit:]]*)-?[[:alnum:]]*
- You can also try alternatives to regex if possible for CMake.
- The regex has recently been modified to cover recent versions. The latest form is as below:
-
Should I use
git describe --tags
orgit describe --always HEAD
for obtaining version information?- In FOSSology we always use :code:
git describe --tags
, no exception whatsoever.
- In FOSSology we always use :code:
-
CMake provides a preset configuration for the install path on GNU systems, you can see the description here based on the configuration suggested by the GNU. After comparing the variables defined in Makefile.conf with these, it seems directly taken from GNU standards. So I wanted to ask if this would be okay to stick to the presets, instead of manually declaring the same paths? The former step will reduce the number of variables we are currently caching and will make it flexible for different installation scenarios.
- Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under
/usr/local/share/fossology/
with their individual folders instead of going to/usr/local/bin/
. - If the same results can be achieved by using the
CMAKE_INSTALL_<dir>
andCMAKE_INSTALL_PREFIX
then yeah, it will be preferred.
- Using the GNU standards is the ideal situation but FOSSology uses slightly different locations. For example, all agents end up under
Conclusion and Further Plans
- Try adding the version and commit hash info.
- Implement writing version files for each build.