我正在使用CMake
应该针对ScriptingBridge
.
我看到数以万计的日志行,例如:
In file included from /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Security.framework/Headers/cssmapple.h:30,
from /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Security.framework/Headers/Security.h:25,
from /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSURLCredential.h:9,
from /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:70,
from /Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:10,
from /Users/codebeaker/Projects/watchedit-client-code/src/libwhatsplaying/include/apple/itunes.h:5,
from /Users/codebeaker/Projects/watchedit-client-code/src/libwhatsplaying/src/osx/itunes_scripting_bridge.m:1:
/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Security.framework/Headers/cssmtype.h:142: warning: ‘CSSM_GUID’ is deprecated
/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Security.framework/Headers/cssmtype.h:143: warning: ‘CSSM_VERSION’ is deprecated
/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Security.framework/Headers/cssmtype.h:156: warning: ‘CSSM_GUID’ is deprecated
/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Security.framework/Headers/cssmtype.h:197: warning: ‘CSSM_DATA’ is deprecated
/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Security.framework/Headers/cssmtype.h:217: warning: ‘CSSM_DATA_PTR’ is deprecated
/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/Security.framework/Headers/cssmtype.h:220: warning: ‘CSSM_DATA’ is deprecated
(这里有完整的广泛输出)
这些文件正在编译:
/usr/bin/c++ -I/Users/codebeaker/Projects/watchedit-client-code/src/libwhatsplaying/include -I/Users/codebeaker/Projects/watchedit-client-code/src/libwhatsplaying/../libwatchedit/include -x objective-c -o CMakeFiles/whatsplaying.dir/src/osx/itunes_scripting_bridge.m.o -c /Users/codebeaker/Projects/watchedit-client-code/src/libwhatsplaying/src/osx/itunes_scripting_bridge.m
/usr/bin/gcc -I/Users/codebeaker/Projects/watchedit-client-code/src/libwhatsplaying/include -I/Users/codebeaker/Projects/watchedit-client-code/src/libwhatsplaying/../libwatchedit/include -F/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks -x objective-c -o CMakeFiles/whatsplaying.dir/src/osx/itunes_scripting_bridge.m.o -c /Users/codebeaker/Projects/watchedit-client-code/src/libwhatsplaying/src/osx/itunes_scripting_bridge.m
在我的 Mac 上查看了 (Clang) 的手册页后,gcc
这听起来很有趣:
-Fdir 将框架目录 dir 添加到要搜索头文件的目录列表的头部。这些目录与那些交错 由 -I 选项指定并按从左到右的顺序扫描。 框架目录是其中包含框架的目录。框架是包含“Headers”和/或“PrivateHeaders”目录的目录 直接在它以“.framework”结尾。框架的名称是该目录的名称,不包括“.framework”。与相关的标头 该框架位于这两个目录之一中,首先搜索“标题”。子框架是一个框架目录,它位于 框架的“框架”目录。子框架标题的包含只能出现在包含子框架的框架的标题中,或者 同级子框架标头。如果两个子框架出现在同一个框架中,则它们是兄弟框架。子框架不应与 框架,如果违反,将发出警告。目前一个子框架是不能有子框架的,以后可能会有这个机制 扩展以支持这一点。标准框架可以在“/System/Library/Frameworks”和“/Library/Frameworks”中找到。一个例子包括外观 如“#include”,其中 Framework 表示框架的名称,而 header.h 位于“PrivateHeaders”或“Headers”中 目录。 -iframeworkdir 像 -F 一样,除了目录被视为系统目录。主要效果是不对找到的头文件中包含的构造发出警告 通过目录。
也许我应该寻找-iframework
。在终端上构建时-iframework
,手动完成,没有任何弃用警告。
但是 CMake 不支持使用-framework
. 从他们的find_library()
文档中:
CMake 将使用 -framework A 和 -F 将框架链接到目标。
我正在寻找任何方法来安静地构建。我还有来自 OpenSSL'x EVA 接口的 (4x) 更小的警告,我可以处理这些警告......在此先感谢。