2009-07-11 98 views
6

简单的问题。是否有任何工具从命令行生成Xcode项目?我们使用SCons来构建我们的跨平台应用程序,但是这不支持内在的Xcode项目生成。我们希望避免手动创建项目,因为这将涉及维护多个文件列表。是否可以自动生成Xcode项目?

回答

1

我认为你的问题应该是“是否有方法从SCons生成一个XCode项目?”。我想,通过你的询问和阅读其他人,答案是'不'。

SCons people应该知道它更好。我认为如果您贡献SCons Xcode项目生成器,他们会很高兴。

与此同时,您可以选择切换到CMake或手动创建您的XCode项目,如果源代码树组织良好,可能是最好的实用解决方案。

4

看看CMake。您可以自动从中生成XCode项目。我发现了一个关于其用法的前一个StackOverflow问题here。为了让它生成一个XCode项目,您可以这样使用它:

CMake -G xcode 
+0

是的,我们正在努力,以避免项目转换为CMake的...我猜测我们可以从SCons生成一个CMakeLists.txt文件,或者可能不是;) – 2009-07-11 17:27:18

-1

您可以使用Automator为您生成它们。

我检查过,没有预先构建的操作。 因此,您必须使用Automator记录您的操作才能执行此操作。

+0

刚刚签出Automator,我不确定它在找什么,因为它使用GUI来执行操作。我在想更像是一种基于命令的方法......不管怎么说,还是要谢谢你。 – 2009-07-11 17:25:06

1

Qma工具链中的qmake生成Xcode项目。您至少可以下载它,并看看它的来源here(LGPL)。

1

为了这个问题的任何人的利益,我实际上只是推an Xcode project file generator for SCons达到Bitbucket。

+0

+1 - 有趣的。这可能会与Homebrew兼容吗?如果可以选择以.swift文件开头,也会很好。 – 2017-01-03 01:26:31

+0

@TommieC。生成器根本不在乎源文件的内容(所以Swift资源将Just Work™)。生成器故意构造运行SCons的外部构建系统目标,因此构建不会偏离SConstruct文件中指定的内容。我不认为SCons本身支持Swift,尽管如果你能胜任Python,你可以轻松地为它写一个构建器。至于自制的支持,我不知道你想要什么;您只需要复制一个文件即可 - 我无法了解brew的功能。 – alastair 2017-01-03 15:07:46

0

您可以使用基于python的构建系统waf来生成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 
相关问题