<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Oct 19, 2014 at 10:42 AM, Leon Pollak <span dir="ltr"><<a href="mailto:leonp@plris.com" target="_blank">leonp@plris.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello, all.<br>
My previous mail (attached below) was not answered, so I continued to<br>
experiment.<br>
My experiments showed that none of the definitions made in the CMakeLists.txt<br>
file are not recognized by the parser.<br>
I have no idea why and how BUILD_PPC gets defined, no visible reason. I tried<br>
tochange its place to be the first - no influence.<br>
<br>
So, if nobody comments on this, I am going to fill report in bugs.kde.org...<br>
Thanks.<br>
-----------------------------------------------------------------------<br>
It seems that code browser/parser does not see correctly the definitions<br>
dependent on the variables defined in cmake file. I understand the complexity<br>
of the issue next to impossible.<br>
Still, may be kdevelop gurus may be so kind to suggest something to solve<br>
this?<br>
---<br>
I have the same code for several different architectures. Thus I have build<br>
dirs for each CPU type named as BuildARM, BuildPPC, BuildPC, etc...<br>
My cmake.txt contains:<br>
<br>
#define build type XXX: /Projects/CSU/BuildXXX<br>
string(REPLACE "/" ";" LIST ${CMAKE_BINARY_DIR})<br>
list(GET LIST 3 BUILD_TYPE)<br>
if (BUILD_TYPE MATCHES BuildPC)<br>
add_definitions(-DBUILD_PC)<br>
elseif (BUILD_TYPE MATCHES BuildARM2)<br>
add_definitions(-DBUILD_ARM2)<br>
elseif (BUILD_TYPE MATHES BuildPPC)<br>
add_definitions(-DBUILD_PPC)<br>
elseif (BUILD_TYPE MATCHES BuildARM)<br>
add_definitions(-DBUILD_ARM)<br>
endif()<br>
<br>
<br>
There is also main system.h file which contains:<br>
<br>
#ifdef BUILD_PC<br>
#define BUILD_ARM<br>
#endif<br>
<br>
#ifdef BUILD_ARM<br>
#include "system-DVRM.h"<br>
#elif defined(BUILD_PPC)<br>
#include "system-TDR.h"<br>
#elif defined(BUILD_ARM2)<br>
#include "system-HDVR.h"<br>
#endif<br>
#if !defined(SYS_CPU)<br>
#error No CPU definition<br>
#endif<br>
<br>
(for accuracy - I debug some code in PC for different configurations, in the<br>
example - for ARM).<br>
<br>
What is unclear to me, that parser for some reason ALWAYS(!!!) thinks that<br>
only variable BUILD_PPC is defined! Independent of what configuration is<br>
chosen, it always thinks that BUILD_PPC is defined.<br>
I tried to delete all ~.cache and ~.ccashe directories, rebuild DB, recompile<br>
- nothing helps! Only BUILD_PPC is defined all the time.<br>
<br>
Is there any way to get out of this?<br>
<br>
Many thanks ahead.<br>
<span class="HOEnZb"><font color="#888888">--<br>
Leon<br></font></span></blockquote><div><br></div><div>Hi Leon,</div><div>Sorry for taking so much time to answer.</div><div><br></div><div>In general, the kdev-cmake parser should get this information from the CMakeCache. Also this should work.</div><div><br></div><div>Can you provide a (small) test project I can try with?</div><div><br></div><div>Thanks,</div><div>Aleix</div></div></div></div>