mirror of
https://github.com/avinal/avinal.github.io.git
synced 2026-07-04 07:40:09 +05:30
feat: use new theme for the website
Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com> rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
---
|
||||
category: gsoc
|
||||
date: 2021-06-11T23:30:40
|
||||
description: In this third meeting, I demoed the working build system, currently building
|
||||
executables and libraries, a lot of queries were resolved about writing version
|
||||
files and attaching commits and hashes to the build.
|
||||
image: /images/tech-wallpaper-3.webp
|
||||
tags:
|
||||
- gsoc
|
||||
- FOSSology
|
||||
title: Coding Week 1 Meeting
|
||||
---
|
||||
|
||||
In this third meeting, I demoed the working build system, currently building executables and libraries, a lot of queries were resolved about writing version files and attaching commits and hashes to the build.
|
||||
|
||||
## Week 1 Progress
|
||||
|
||||
> This week was mainly focused on analyzing the previous build system and framing a skeleton for the new build system.
|
||||
>
|
||||
> - Created the build configuration [analysis table](https://github.com/avinal/FOSSology/wiki/agents-spec#agents-configuration-list).
|
||||
> - Completed the basic skeleton.
|
||||
> - Completed the CMake configuration for libraries
|
||||
> - To test the current progress, follow the instructions [here](https://github.com/avinal/FOSSology/wiki#test-the-new-system-only-gcc-with-make-and-ninja-tested-for-now)
|
||||
> - Test on [GitPod](https://gitpod.io/#https://github.com/avinal/FOSSology/tree/avinal/feat/cmake-buildsystem) right inside your browser.
|
||||
|
||||
## Discussions
|
||||
|
||||
- **What are the flags needed for C and C++?**
|
||||
- The `-g` flag enables debug.
|
||||
- The `-O2` flag is used for optimizing.
|
||||
- In FOSSology these two flags are used together by default for all
|
||||
build purposes because it is desired to have an optimized binary but
|
||||
some level of debugging information is also desired.
|
||||
- **The Makefiles have some compile-time preprocessor macro definitions
|
||||
that need to be passed to each build.** The Makefiles have all the
|
||||
path values passed as `'"..value.."'` format *(double quote inside
|
||||
single quotes)*, however the commands produced by CMake have
|
||||
`\"..value..\"` format *(escaped double quotes)*. Are they the same or
|
||||
it needs to be changed?
|
||||
- Currently, there is nothing to determine if they work the same or
|
||||
not, but if the compiler would not have accepted them then, it would
|
||||
have thrown an error. As long it is working these should be fine,
|
||||
but will need to be checked in the final build.
|
||||
- **Are all libraries in FOSSology static?**
|
||||
- No, by default no library is static. The format
|
||||
`lib<library-name>.a` is confusing but no need to worry about it for
|
||||
now, if this is working fine then no problem.
|
||||
- In general, this format denotes a static library.
|
||||
- **How to add the version and commit information to the builds?**
|
||||
- I have gone through [this
|
||||
thread](https://cmake.org/pipermail/cmake/2018-October/068383.html)
|
||||
on CMake's official mailing list. And they have suggested a lot of
|
||||
options, but unable to decide which option to use. Gaurav said he
|
||||
will see into this thread and for now, I should try writing a shell
|
||||
script and test if that works.
|
||||
- Same can be tested for the version too.
|
||||
- **What is** `_squareVisitor.h.pre` **used for?**
|
||||
- They are used to generate source code at build time.
|
||||
- **Is there any inheritance structure in the build system?**
|
||||
*(Michael)*
|
||||
- For now, I am writing separate modules for the default operations
|
||||
needed in most configurations. The final structure will be decided
|
||||
in the final build.
|
||||
- **Where are all the binaries produced?** *(Gaurav)*
|
||||
- They are located in the build folder with the same directory
|
||||
structure as the original project.
|
||||
- While installing the same will be used and none of the source
|
||||
folders are ever disturbed.
|
||||
- **Are all flags taken from the Makefiles itself?** *(Anupam)*
|
||||
- Yes and No, there are some flags that CMake uses by default, they
|
||||
can be altered by changing the value for `CMAKE_C_FLAGS` and
|
||||
`CMAKE_CXX_FLAGS`. One can also append their flags. Since not all
|
||||
compilation requires all the flags, I have taken the default one
|
||||
into cache variables, and others are appended while configuring for
|
||||
a particular project.
|
||||
|
||||
## Conclusion and Further Plans
|
||||
|
||||
- Try the `monkbulk` in monk and `makefile.sa` in nomos.
|
||||
- Try adding the version and commit hash info.
|
||||
- Implement writing version files for each build.
|
||||
- Add proper comments in the `CMakeLists.txt` files.
|
||||
|
||||
## Attendees
|
||||
|
||||
- [Michael C. Jaeger](https://github.com/mcjaeger)
|
||||
- [Shaheem Azmal M MD](https://github.com/shaheemazmalmmd)
|
||||
- [Gaurav Mishra](https://github.com/GMishx)
|
||||
- [Anupam Ghosh](https://github.com/ag4ums)
|
||||
- [Ayush Bhardwaj](https://github.com/hastagAB)
|
||||
- [Avinal Kumar](https://github.com/avinal)
|
||||
Reference in New Issue
Block a user