Skip to content

CMake build system #11

@surligas

Description

@surligas

Hello all,

on behalf of the Skynet team, we were thinking that the existing Makefile build is a little bit "problematic" and slow. Also, the linking is a liitle bit obscure. Adding news CEs alters a lot of core files, so merging every time the new changes of CRTS into our own tree is a time consuming task.

Instead we propose the use of CMake as build system. Here you can check CRTS with CMake as build system. To compile it just follow the instructions below:

  1. mkdir build
  2. cd build
  3. cmake ..
  4. make (parallel compilation is supported through the -j option)

All resulting executable binaries for now are located into build/src but this can change of course.

The advantages of CMake are:

  • Parallel compilation jobs -> faster compilation
  • Very easy and automatic integration of new CEs and controllers (just take a look at cognitive_engines/CMakeLists.txt)

Of course our CMake integration is not 100% ready yet. If you agree to accept it, we could improve it to be even more modular and efficient. For example, instead of using the config_cognitive_engines tool to alter the affected core files, we could let CMake to generate a header file, let's say imported_cognitive_engines.h with all the #include<> directives of cognitive engines header files.

Thus core files like extensible_cognitive_radio.cpp will include only the auto-generated header file and their code will remain unaffected even with new CEs or controllers integration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions