scons和ObjC ++

时间:2015-01-26 23:47:46

标签: objective-c macos scons

我尝试使用scons构建跨平台cpp项目。一些文件包含ObjC代码,该代码仅包含在OSX中,隐藏在其他平台上的ifdef警卫后面。

在OSX上,我需要包含一些-framework编译器/链接器选项,我这样做

 env.AppendUnique(FRAMEWORKS = Split('Cocoa CoreAudio AudioToolbox AudioUnit GLUT OpenGL'))

在我的SConstruct文件中,如文档中所述。

但是,FRAMEWORKS变量仅用于.m.mm个文件,而我的所有文件都有.cpp个扩展名。我想保持这种方式,因为他们只是OSX上的ObjC文件,而只是其他平台上的cpp。

有没有办法让scons.cpp扩展名为ObjC ++的源文件处理,以使其使用FRAMEWORKS env var?

1 个答案:

答案 0 :(得分:1)

我检查了当前版本2.3.4的源代码,并且在编译源文件时不支持FRAMEWORKS变量,仅用于链接(applelink.py工具)。 因此,您必须定义自己的ObjC Builder,然后可以使用已定义的变量,如$ _FRAMEWORKPATH,$ _FRAMEWORKS和$ FRAMEWORKSFLAGS。 如果您需要更多帮助,可能需要访问我们的用户邮件列表scons-users@scons.org(http://www.scons.org/lists.php),我们可以在这里向您介绍所有详细信息。 ;)