J'ai une règle objc_library qui me dit qu'elle ne trouve pas d'en-tête de framework SDK (ce problème n'est pas spécifique à IOKit, je ne trouve aucun framework du tout).Où bazel cherche-t-il les SDK OSX (et que faire s'il ne les trouve pas)?
#import <IOKit/IOKitLib.h>
erreur fatale: 'IOKit/IOKitLib.h' fichier non trouvé
J'ai déjà "IOKit" dans mes sdk_frameworks. Si je jette un coup d'oeil dans /System/Library/Frameworks/IOKit.framework, je trouve qu'il n'y a pas de répertoire Headers qui contiendrait ce fichier. Peut-être pas de surprise si c'est là que Bazel regarde.
Si je regarde un peu plus fort, je trouve plus de résultats pour le SDK. Je pense que c'est celui que je veux, puisque je suis en train de développer pour Mac OS X. Puis-je dire à Bazel d'utiliser ce SDK?
/Applications/Xcode.app//Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/IOKit.framework
Devrais-je devoir? Comment puis-je savoir où Bazel cherche ces choses? Je suis assez familier avec l'utilisation de Bazel, mais je ne sais vraiment pas comment déboguer lorsque les choses les plus élémentaires échouent.
Voici l'exemple le plus simple qui échoue.
BUILD:
objc_library(
name = "test",
srcs = ["test.cpp"],
copts = ["-ObjC++"],
sdk_frameworks = ["IOKit"],
)
// test.cpp
#import <IOKit/IOKitLib.h>
J'ai posté ceci sur Bazel-discuter, mais il ne reçoit pas beaucoup de traction. J'utilise Bazel 0.5.2. https://groups.google.com/forum/#!topic/bazel-discuss/HhAjKblwHwk