Nick Bolton
Nick Bolton

Reputation: 39630

Is it possible to automatically generate Xcode projects?

Simple question. Are there any tools for generating Xcode projects from the command line? We use SCons to build our cross-platform application, but that doesn't support intrinsic Xcode project generation. We'd like to avoid creating the project manually, since this would involve maintaining multiple file lists.

Upvotes: 6

Views: 6875

Answers (8)

Paul R
Paul R

Reputation: 213060

A promising alternative to CMake which can generate Xcode projects is xmake. I haven’t tried it yet, but it looks good from the documentation.

Install xmake, create a simple project file (xmake.lua):

target("test")
    add_files("src/*.cpp")

Then you can either do a command-line build:

xmake

or create an Xcode project:

xmake project -k xcode

Note that currently xmake seems to invoke CMake to generate the Xcode project, although they say they plan to add native Xcode project generation at some point.

Upvotes: 0

mrmclovin
mrmclovin

Reputation: 1123

You can generate a XCode project using the python based build system called waf. You need to download and install waf with the xcode6 extension:

$ 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

That will create a waf executable which can build your project. You need to configure how to generate your XCode project inside a file called wscript that should reside in your project folder. The wscript file uses Python syntax. Here's an example of how you could configure your project:

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'
    )

There are a bunch of settings you can use to configure it for your project.

Then to actually generate the XCode project, cd into your project folder where the wscript is and run your waf executable like

$ ./waf configure xcode6

Upvotes: 0

al45tair
al45tair

Reputation: 4433

For the benefit of anyone who lands on this question, I’ve actually just pushed an Xcode project file generator for SCons up to Bitbucket.

Upvotes: 2

Mircea Ispas
Mircea Ispas

Reputation: 20790

You can use premake (http://industriousone.com/premake) to generate Xcode projects. It can also generate Visual Studio projects.

Upvotes: 3

IlDan
IlDan

Reputation: 6879

I think that your question should be "Is there a way to generate an XCode project from a SCons one?". I suppose, by your asking and by reading the others, that the answer is 'no'.

SCons people should know it better. I think they will be happy if you contribute a SCons Xcode project generator.

In the meantime you may choose to switch to CMake or to create your XCode project by hand that, given a good source tree organization, may be the best pragmatic solution.

Upvotes: 1

Barry Wark
Barry Wark

Reputation: 107754

qmake in the Qt toolchain generates Xcode projects. You can at least download it and take a look at its source here (LGPL).

Upvotes: 1

Brock Woolf
Brock Woolf

Reputation: 47302

You could use Automator to generate them for you.

I checked and there is no prebuilt action. Therefore you would have to record your actions with Automator to do this.

Upvotes: -2

Jared Oberhaus
Jared Oberhaus

Reputation: 14658

Look at CMake. You can generate XCode projects from it automatically. I found a previous StackOverflow question about its usage here. To get it to generate an XCode project, you use it as such:

CMake -G xcode

Upvotes: 5

Related Questions