26e6162a82
1. The generator handles just the COMPILE_DEFINITIONS. (See: __ZEPHYR_SUPERVISOR__) For the defines in INTERFACE_COMPILE_DEFINITIONS a special handling is necessary. Solution: The amendment function generates a macro header file ${CMAKE_BINARY_DIR}/zephyr/include/generated/cmake_intdef.h based on INTERFACE_COMPILE_DEFINITIONS and appends the defines from the file to CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS. 2. Eclipse CDT4 indexer has problems with CMake 'Eclipse CDT4 - x' generator projects that use mixed C/C++. The Eclipse CDT4 indexer is showing a lot of unresolved symbol errors, when the project was created with CMake generator and the code is a mix of C and C++. The root cause of the problem is the g++ built-in __cplusplus macro, that is passed by CMake generator in the '.cproject' file. The defines in '.cproject' are always the same for C and C++. In mixed C/C++ projects, the header files often contain the following lines to let C++ code call the C functions: #ifdef __cplusplus extern "C" { #endif < header content > #ifdef __cplusplus } #endif Whenever the Eclipse CDT4 indexer compiles the code for code analysis, it has the macro __cplusplus set, independent of whether standard C or C++ source files are compiled. The 'extern "C"' confuses the standard C compilation and the indexer is messed up. Solution: The amendment function deletes the __cplusplus entry from CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS. 3. The amendment function appends the defines from ${CMAKE_BINARY_DIR}/zephyr/include/generated/autoconf.h to CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS. Signed-off-by: Istvan Bisz <istvan.bisz@t-online.hu> |
||
---|---|---|
.. | ||
boilerplate.cmake |