==================================== Research on Self-Awareness Framework ==================================== Build: ----- The provided CMake project supports only out-of-tree builds, i.e. one needs to create a build directory and run cmake in that using the source directory path as argument. Prerequisites: ------------- Nothing yet. Build options: ------------- Beyond the usual CMake options, the following project-related options are available: * ROSA_INCLUDE_TOOLS, defaults to ON * ROSA_INCLUDE_EXAMPLES, defaults to ON * ROSA_ENABLE_CXX1Y, defaults to ON * ROSA_ENABLE_PEDANTIC, defaults to ON * ROSA_ENABLE_ASSERTIONS, defaults to ON only for debug builds, and its value is respected only for non-debug builds * ROSA_LOG_LEVEL, defaults to none, use a valid integer value to enable logging ** 0 - ERROR ** 1 - WARNING ** 2 - INFO ** 3 - DEBUG ** 4 - TRACE Set C and C++ compilers with the environment variables CC and CXX, respectively. Use the CMake variable CMAKE_BUILD_TYPE for single-configuration generators to set the type of build: Debug, Release. Using YCM: --------- If you happen to use YMC, just make a copy of the provided ycm_extra_conf.py.template file as .ycm_extra_conf.py in the project directory, and set the following two variables in it: * compilation_database_folder: the absolute path of your build directory * extra_system_include_dirs: any system include directory which might not be search by libclang. See: https://github.com/Valloric/YouCompleteMe/issues/303; use the following command to figure out the used system directories: 'echo | clang -std=c++11 -v -E -x c++ -'. You probably want compile with clang if you use YCM, so run cmake with environment variables CC=clang and CXX=clang++ set. Also note that headers file in the include directory are compiled for YCM with the compiler flags of a corresponding source file in the lib directory, if any. Header files in other locations are supposed to have a corresponding source file in the same directory. If the project's include directory (include/rosa) would be ever changed, then that needs to be also modified in the YCM configuration file.