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
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to