Quentin Mathé wrote:
> Le 27 févr. 2010 à 18:02, Truls Becken a écrit :
>
>> Also, UnitKit has a non-standard structure, which has the effect that
>> etoile.make does not create symlink Build/UnitKit.
>
> It shouldn't be a problem because no modules should link UnitKit
> (unless 'make test=yes' is used to build the Étoilé tree).
> If you get linking error related to UnitKit, there is a module that
> now wrongly links it or old object files still around.
The problem is with headers, not object files, but I just realized
this is related to a change I made for the tree to compile with Clang.
Originally, I got;
Build Project: IconKit
Making build-headers in subprojects of framework IconKit...
Making build-headers for subproject libIconKit...
make[4]: Nothing to be done for `internal-subproject-build-headers'.
Making build-headers for framework IconKit... Creating
IconKit.framework/Versions/0/Headers/IKIconTheme.h...
Making all in subprojects of framework IconKit...
Making all for subproject libIconKit...
Compiling file IKIcon.m ...
In file included from IKIcon.m:20:
/home/tbe/etoile/Frameworks/IconKit/IconKit/IKIconTheme.h:22:36:
error: cannot find protocol definition for 'UKTest'
@interface IKIconTheme : NSObject <UKTest>
^
1 diagnostic generated.
So I made the following change;
$ svn diff Frameworks/IconKit/IconKit/IKIconTheme.h
Index: Frameworks/IconKit/IconKit/IKIconTheme.h
===================================================================
--- Frameworks/IconKit/IconKit/IKIconTheme.h (revision 5933)
+++ Frameworks/IconKit/IconKit/IKIconTheme.h (working copy)
@@ -15,10 +15,8 @@
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>
+#import <UnitKit/UKTest.h>
-...@protocol UKTest;
-
-
@interface IKIconTheme : NSObject <UKTest>
{
NSString *_themeName;
$
I had to do similar changes in all other places where a protocol is
declared this way. Is this a bug in Clang, or is it correct to require
a full protocol definition? It helps to define an empty protocol with
@protocol UKTest
@end
rather than merely declaring its existence, as in
@protocol UKTest;
Smells like a compiler bug, I guess. David?
-Truls
_______________________________________________
Etoile-dev mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-dev