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 inconfigure_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
andcomposer.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.
- The code for generating vendor directory is in
- 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.