[aspectc-user] Re: Symbian meet Aspect C++
Marti Bayo-alemany
malemany at nero.com
Thu Sep 15 13:09:18 CEST 2005
Hi Olaf,
Thanks for the help and sorry all Aspect user for instensively SPAMING the aspectC mailing list ;-)
After adding the -p option on the command line.
The command line looks like the following...
ac++ --no_line --skip-bodies-non-prj --no_problem_spec_scope --gnu-2.95 -D_DEBUG -D_UNICODE -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__ -D__MARM_ARMI__ -D__DLL__ -e cpp -c src-ah-in\NPlatformGUI_Symbian.cpp -o src-ah-out\NPlatformGUI_Symbian.cpp -p ..\..\..\SDK -p "..\Include" -p "..\..\..\nero_gui\GuiFileService" -p "..\..\Common" -p "..\..\Common\VideoOutputter" -p "..\..\FrameContatcher" -p "..\..\FrameContatcher\Util" -p "..\..\..\..\NeroHAL\include" -p "..\..\..\..\NeroHAL\include\inline" -p "..\..\..\..\GapiDraw35\include\Symbian" -p "..\..\..\..\GapiDraw35\include\Symbian" -p "..\..\..\core" -p "..\..\..\component_manager" -p "..\..\..\..\PerformanceLibs\helpers\armcpuid" -p "..\..\..\..\PerformanceLibs\ipp_wmmx" -p"..\..\..\..\PerformanceLibs\ipp_wmmx" -p"..\..\..\..\DecoderLibs\dm4v" -a aspects\aspect.ah -I\"C:\Symbian\7.0s\Series60_v20\Epoc32\include-aspects\" -I\"C:\Symbian\7.0s\Series60_v20\Epoc32\include-aspects\libc\" -I"..\Include" -I"..\..\..\nero_gui\GuiFileService" -I"..\..\Common" -I"..\..\Common\VideoOutputter" -I"..\..\..\SDK" -I"..\..\FrameContatcher" -I"..\..\FrameContatcher\Util" -I"..\..\..\..\NeroHAL\include" -I"..\..\..\..\NeroHAL\include\inline" -I"..\..\..\..\GapiDraw35\include\Symbian" -I"..\..\..\core" -I"..\..\..\component_manager" -I"..\..\..\..\PerformanceLibs\helpers\armcpuid" -I"..\..\..\..\PerformanceLibs\ipp_wmmx" -I"..\..\..\..\DecoderLibs\dm4v" -I"..\..\..\..\..\..\Symbian\7.0s\Series60_v20\Epoc32\include\mda\common\" -I"\epoc32\include" -I"\epoc32\include\libc" -p "..\..\..\..\NeroHAL\src\symbian"
I get now some errors like internal file is included by external file.
For example that file ...
NeroHAL\src\symbian\os_threads_symbian.h ( called by ac++ as external)
...includes the file ...
NeroHAL\include\os_mutex (called by ac++ as internal)
Following there is the errors which I get...
Symbian\7.0s\Series60_v20\Epoc32\include\mda\common\" -I"\epoc32\include" -I"\epoc32\include\libc"
../../Common/../../SDK/../../NeroHAL/include/../src/symbian/os_mini_symbian.h:14: error: internal file '../../Common/../../SDK/../../NeroHAL/include/..
/src/symbian/../../include/inline/emu_int64.h' is included by external '../../Common/../../SDK/../../NeroHAL/include/../src/symbian/os_mini_symbian.h'
../../Common/../../SDK/../../NeroHAL/include/../src/symbian/os_types_symbian.h:39: error: internal file '../../Common/../../SDK/../../NeroHAL/include/.
./src/symbian/../../include/inline/emu_int64.h' is included by external '../../Common/../../SDK/../../NeroHAL/include/../src/symbian/os_types_symbian.h
'
../../Common/../../SDK/../../NeroHAL/include/../src/symbian/os_threads_symbian.h:5: error: internal file '../../../../NeroHAL/include/os_mutex.h' is in
cluded by external '../../Common/../../SDK/../../NeroHAL/include/../src/symbian/os_threads_symbian.h'
../../Common/../../SDK/../../NeroHAL/include/../src/symbian/os_files_symbian.h:4: error: internal file '../../Common/../../SDK/../../NeroHAL/include/st
dhelpers.h' is included by external '../../Common/../../SDK/../../NeroHAL/include/../src/symbian/os_files_symbian.h'
It seems it is complicated to set up aspect C++ for my concrete project.
I would keep on with another solution using a perl script with some regular expresions. That should be enough to make a progress debugging.
best wishes,
Marti
----- Original Message -----
From: "Olaf Spinczyk" <Olaf.Spinczyk at informatik.uni-erlangen.de>
To: "Marti Bayo-alemany" <malemany at nero.com>
Cc: <fabian.scheler at gmail.com>; <aspectc-user at aspectc.org>
Sent: Thursday, September 15, 2005 11:40 AM
Subject: Re: [aspectc-user] Re: Symbian meet Aspect C++
> Hi Marti,
>
> from looking at your STU command line, I conclude that my assumptions
> was right: the problem is the -p option.
>
> ac++ has the notion of a *project* and it distinguishes between files
> that belong to the project, which is currently being transformed, and
> file that do not. Only files of the project are manipulated!
>
> The directories, which contain files that belong to the project, are
> described with the -p option on the ac++ command line. If your source
> code is distributed over multiple directory trees, you can provide *more
> than one* -p option.
>
> Note that -I options only tell the parser where it can find include
> files. This is completely independent of the -p options.
>
> In the WPT mode, which you prefer, you have to specify a destination
> directory with the -d option for each project directory, i.e. -p <in> -d
> <out> have to be used as pairs.
>
> For example, if src-ah-in and "..\..\..\nero_gui\GuiFileService" belong
> to your project, which means "should be transformed", you would have to
> specify -p src-ah-in -d src-ah-out -p "..\..\..\nero_gui\GuiFileService"
> -d "..\..\..\nero_gui\GuiFileService-out".
>
> To summarize:
>
> First find out, which files belong to your project and which do not.
> Then use appropriate -p options with corresponding -d options on the WPT
> command line. When you compile the generated code, make sure that the
> compiler sees the transformed header files instead of the original
> header files.
>
> This should solve your problems.
>
> Olaf
>
>
> Marti Bayo-alemany wrote:
>> Hi Olaf and Fabian,
>>
>> I am feeling a little bit guilty for the record ,-)
>>
>> That is my line ...
>>
>> STU
>> ac++ --no_line --skip-bodies-non-prj --no_problem_spec_scope --gnu-2.95
>> -D_DEBUG -D_UNICODE -D__SYMBIAN32__ -D__GCC32__ -D__EPOC32__ -D__MARM__
>> -D__MARM_ARMI__ -D__DLL__ -e cpp -c src-ah-in\NPlatformGUI_Symbian.cpp
>> -o src-ah-out\NPlatformGUI_Symbian.cpp -p . -a aspects\aspect.ah
>> -I\"C:\Symbian\7.0s\Series60_v20\Epoc32\include-aspects\"
>> -I\"C:\Symbian\7.0s\Series60_v20\Epoc32\include-aspects\libc\"
>> -I"..\Include" -I"..\..\..\nero_gui\GuiFileService" -I"..\..\Common"
>> -I"..\..\Common\VideoOutputter" -I"..\..\..\SDK"
>> -I"..\..\FrameContatcher" -I"..\..\FrameContatcher\Util"
>> -I"..\..\..\..\NeroHAL\include" -I"..\..\..\..\NeroHAL\include\inline"
>> -I"..\..\..\..\GapiDraw35\include\Symbian" -I"..\..\..\core"
>> -I"..\..\..\component_manager"
>> -I"..\..\..\..\PerformanceLibs\helpers\armcpuid"
>> -I"..\..\..\..\PerformanceLibs\ipp_wmmx"
>> -I"..\..\..\..\DecoderLibs\dm4v"
>> -I"..\..\..\..\..\..\Symbian\7.0s\Series60_v20\Epoc32\include\mda\common\"
>> -I"\epoc32\include" -I"\epoc32\include\libc"
>>
>> I don't know how I should to change it in order to make it work.
>> The cpp files are in only one directory. The headers are splitted into a
>> lot of different directories.
>>
>> Best wishes
>> Marti
>>
>>
>> ----- Original Message ----- From: "Olaf Spinczyk"
>> <Olaf.Spinczyk at informatik.uni-erlangen.de>
>> To: <fabian.scheler at gmail.com>
>> Cc: "Marti Bayo-alemany" <malemany at nero.com>; <aspectc-user at aspectc.org>
>> Sent: Thursday, September 15, 2005 9:25 AM
>> Subject: Re: [aspectc-user] Re: Symbian meet Aspect C++
>>
>>
>>> Hi,
>>>
>>> we just established a new record of postings per month ;-).
>>>
>>> Marti, you don't need the -i option. This is only needed by people who
>>> use the STU mode to produce a library. In this special case, the
>>> *.cc/cpp files are compiled with -c. The weaver expands the header
>>> files that belong to the project (-p option(s)) automatically in the
>>> generated *.cc/cpp files. Therefore, for the translation of the
>>> library itself nothing else is needed. However, users who want to link
>>> their applications with the library need transformed header files. In
>>> order to provide these header files, the library developer has to use
>>> the -i option, which transforms the header files of the project all at
>>> once.
>>>
>>> The bug, which you have described, is strange, because the generation
>>> of the declaration of the exec_old_... function is a quite fundamental
>>> transformation, which definitely works.
>>>
>>> I guess that your header files are located in a different directory
>>> than the *.cpp files and that you didn't use a -p <src> -d <dest> pair
>>> for the header file directory. Therefore, ac++ doesn't *know* that
>>> these files belong to your project and doesn't transform them.
>>>
>>> How does your directory structure (and your command line) look like?
>>>
>>> -Olaf
>>>
>>>
>>> Fabian Scheler wrote:
>>>> Hi Marti,
>>>>
>>>>> However what does it means other_stuff_you_need ?
>>>>> -i <other_stuff_you_need>
>>>>> Do you have to define all your include files behind the -i ?
>>>>
>>>> no, <other_stuff_you_need> has nothing to do with the option '-i',
>>>> <other_stuff_you_need> are just other options you may need for some
>>>> reason. I expressed this a bit awkwardly.
>>>>
>>>>> I am just wondering about that not because I need to do library. The
>>>>> main
>>>>> reason is the error I am having ...
>>>>>
>>>>> ../SRC-AH-OUT/Guihelperclasses.cpp:1248: no `void
>>>>> NConfigDataGUI::__exec_old_SetEqualizerPresetSelection(long unsigned
>>>>> int)'
>>>>> member function declared in class `NConfigDataGUI'
>>>>>
>>>>> It makes sense because the following method is not defined ...
>>>>> __exec_old_SetEqualizerPresetSelection
>>>>
>>>> hm, this is strange. Normally ac++ expands all headers in the woven
>>>> source file, so also the header where class `NConfigDataGUI' is
>>>> defined should be expanded inside Guihelperclasses.cpp, and there a
>>>> proper declaration of __exec_old_SetEqualizerPresetSelection should be
>>>> woven into the class definition. By the way, you are complaining about
>>>> a missing declaration, not a missing definition, do you? In your
>>>> preceeding postings you also posted a definition:
>>>>
>>>> inline void
>>>> NConfigDataGUI::__exec_old_SetEqualizerPresetSelection(unsigned
>>>> long int value){
>>>> m_iEqualizerPresetSelection = value;
>>>> }
>>>> I can only think of two possibilities:
>>>>
>>>> 1. The header containing the definition of class `NConfigDataGUI' is
>>>> somehow not included into the file Guihelperclasses.cpp, but then ac++
>>>> should complain about that. This would be a bug within the parser of
>>>> ac++, that seems pretty improbable to me.
>>>> 2. A bug in the code generation, what in this case seems also quite
>>>> improbable to me.
>>>>
>>>> I must be missing something ... are there any typedefs or macros that
>>>> somehow affect this class?
>>>>
>>>> Maybe Olaf knows more???
>>>>
>>>> Ciao, Fabian
>>>>
>>>> _______________________________________________
>>>> aspectc-user mailing list
>>>> aspectc-user at aspectc.org
>>>> http://www.aspectc.org/mailman/listinfo/aspectc-user
>>>
>>>
>>>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.aspectc.org/pipermail/aspectc-user/attachments/20050915/327f49a5/attachment.html>
More information about the aspectc-user
mailing list