Coding Week 4 Meeting-1

Coding Week 4 Meeting-1

Avinal Kumar | | 445 words | ~3 mins
In this post, we'll take a look at:

In this seventh meeting question related to installing the FOSSology were discussed.

Week 4 Progress #

CMake configuration files have been refactored to make each agent as a separate sub-project.

  • Symbolic links are installing.
  • VERSION files can be generated now during configure step
  • To test the current progress, follow the instructions here

Discussions #

  • There are two types of replacements CMake can configure file with. @VARIABLE@ and ${VARIABLE} . Since in PHP $variable is used, it may create problem for CMake replacements. So may I replace them?
    • Yeah sure, go ahead. It will be more robust.
    • The replacement of $VARIABLE can be stopped by using @ONLY option in configure_file(...) command.
  • How to generate vendor directory?
    • The code for generating vendor directory is in src/Makefile.
    • Before executing code for the generation, make sure to copy composer.json and composer.lock to the target directory.
    • There is also a patch that FOSSology needs to function as intended. Make sure to run that patch to check and apply.
    • For now, we generate vendor while building, but it would be nice if it can be generated in the build step.
  • Currently I am generating the VERSION file in configure step itself. Should I move it to the build or install step?
    • Yeah, please move it to the build step. As in configure step the data might be outdated.
  • Is there any configuration for Release that we can use to install or test? (Michael)
    • Yeah, there are 4 inbuilt configurations for various levels of optimization and can be applied to tests and installation.
  • Is the VERSION file is generated for each agent or whole project at once? Because in the latter case, the VERSION file can be generated as the last step.
    • No agent has a VERSION file along with the main VERSION file for FOSSology.
  • How I can build and install a single agent or component?
    • There are two ways you can build and install a specific agent or component only.

    • The first one is quite simple. Just change your directory to the specific agent’s directory and run all the usual commands for building and installing.

    • The second one is a bit for typing work. This can be used directly from the top-level directory. After configuring the CMake, you can run the following command to install the specific component.

      # for Unix Makefiles
      make list_install_component # this will list all the available components
      cmake -DCOMPONENT=<component-name> -P cmake_install.cmake
      
    • I am writing a macro that will let us install a component by simply running make install component.

Conclusion and Further Plans #

  • Implement generation of vendor directory.
  • Move VERSION file generation to build step.

Attendees #

#Gsoc #Fossology