【发布时间】:2009-07-11 16:58:59
【问题描述】:
简单的问题。是否有任何工具可以从命令行生成 Xcode 项目?我们使用 SCons 来构建我们的跨平台应用程序,但这不支持内部 Xcode 项目生成。我们希望避免手动创建项目,因为这将涉及维护多个文件列表。
【问题讨论】:
简单的问题。是否有任何工具可以从命令行生成 Xcode 项目?我们使用 SCons 来构建我们的跨平台应用程序,但这不支持内部 Xcode 项目生成。我们希望避免手动创建项目,因为这将涉及维护多个文件列表。
【问题讨论】:
您可以使用 premake (http://industriousone.com/premake) 来生成 Xcode 项目。它还可以生成 Visual Studio 项目。
【讨论】:
为了解决这个问题的任何人的利益,我实际上只是将an Xcode project file generator for SCons 推到了 Bitbucket。
【讨论】:
site_scons 目录之一中,但由于必须从 SConstruct 文件中进行调用,我宁愿认为个别项目维护者会想要制作一个项目级 @ 987654323@ 并将其粘贴在那里。 brew 对此无济于事,并且在系统范围内安装只会使其成为每个人都必须安装的构建依赖项;最好将工具包含在我认为的相关来源中(也意味着没有版本控制问题,这与 autotools 有时会发生的情况不同)。
我认为您的问题应该是“有没有办法从 SCons 生成 XCode 项目?”。我想,通过您的询问和阅读其他人,答案是否定的。
SCons people 应该更了解它。我想如果你贡献一个 SCons Xcode 项目生成器,他们会很高兴的。
与此同时,您可以选择切换到 CMake 或手动创建您的 XCode 项目,如果有良好的源代码树组织,这可能是最好的实用解决方案。
【讨论】:
Qt 工具链中的qmake 生成Xcode 项目。你至少可以下载它并查看它的源代码here (LGPL)。
【讨论】:
您可以使用名为waf 的基于python 的构建系统生成XCode 项目。你需要 download and install waf 使用 xcode6 扩展:
$ curl -o waf-1.9.7.tar.bz2 https://waf.io/waf-1.9.7.tar.bz2
$ tar xjvf waf-1.9.7.tar.bz2
$ cd waf-1.9.7
$ ./waf-light --tools=xcode6
这将创建一个可以构建您的项目的waf 可执行文件。您需要配置如何在名为 wscript 的文件中生成 XCode 项目,该文件应位于项目文件夹中。 wscript 文件使用 Python 语法。下面是an example 说明如何配置项目:
def configure(conf):
# Use environment variables to set default project configuration
# settings
conf.env.FRAMEWORK_VERSION = '1.0'
conf.env.ARCHS = 'x86_64'
# This must be called at the end of configure()
conf.load('xcode6')
# This will build a XCode project with one target with type 'framework'
def build(bld):
bld.load('xcode6')
bld.framework(
includes='include',
# Specify source files.
# This will become the groups (folders) inside XCode.
# Pass a dictionary to group by name. Use a list to add everything in one
source_files={
'MyLibSource': bld.path.ant_glob('src/MyLib/*.cpp|*.m|*.mm'),
'Include': bld.path.ant_glob(incl=['include/MyLib/*.h', 'include'], dir=True)
},
# export_headers will put the files in the
# 'Header Build Phase' in Xcode - i.e tell XCode to ship them with your .framework
export_headers=bld.path.ant_glob(incl=['include/MyLib/*.h', 'include/MyLib/SupportLib'], dir=True),
target='MyLib',
install='~/Library/Frameworks'
)
您可以使用许多设置来为您的项目配置它。
然后实际生成 XCode 项目,cd 到您的项目文件夹中,wscript 所在的位置并运行您的 waf 可执行文件,如
$ ./waf configure xcode6
【讨论】:
您可以使用 Automator 为您生成它们。
我检查并没有预建操作。 因此,您必须使用 Automator 记录您的操作才能执行此操作。
【讨论】: