Вопрос по scons, xcode – Можно ли автоматически генерировать проекты Xcode?

6

Простой вопрос Существуют ли инструменты для генерации проектов Xcode из командной строки? Мы используем SCons для создания нашего кроссплатформенного приложения, но оно не поддерживает внутреннюю генерацию проекта XCode. Мы хотели бы избежать создания проекта вручную, поскольку это потребовало бы поддержки нескольких списков файлов.

Ваш Ответ

7   ответов
4

смотреть наCMake, Вы можете генерировать проекты XCode из него автоматически. Я нашел предыдущий вопрос StackOverflow о его использованииВот, Чтобы получить его для создания проекта XCode, вы используете его следующим образом:

CMake -G xcode
Да, мы пытаемся избежать преобразования проекта в CMake ... Я думаю, мы могли бы сгенерировать файл CMakeLists.txt из SCons, а может и нет;) Nick Bolton
-1

Вы можете использовать Automator для их генерации.

Я проверил и нет готовых действий. Поэтому вам придется записывать свои действия с Automator, чтобы сделать это.

Только что проверил Automator, я не уверен, что это то, что я ищу, так как он использует GUI для выполнения операций. Я думал больше как командный подход ... В любом случае, спасибо. Nick Bolton
3

Вы можете использовать premake (http://industriousone.com/premake) создавать проекты Xcode. Он также может генерировать проекты Visual Studio.

1

Я думаю, что ваш вопрос должен звучать так: «Есть ли способ сгенерировать проект XCode из проекта SCons?». Я полагаю, что благодаря вашему запросу и прочтению других ответ будет «нет».

SCons люди должен знать это лучше. Я думаю, что они будут счастливы, если вы поможете генератору проекта SCons Xcode.

В то же время вы можете переключиться на CMake или создать свой проект XCode вручную, что, при хорошей организации дерева исходных текстов, может быть лучшим прагматическим решением.

1

В интересах любого, кто задается этим вопросом, я просто подтолкнулгенератор файлов проекта Xcode для SCons до битбакета.

+1 - интересно. Есть ли шанс сделать это совместимым с Homebrew? Также было бы неплохо, если бы он мог опционально начинаться с файлов .swift.
Спасибо за внимание к этому ~ Я агностический кодер, так что я буду смотреть на варианты Python. Пакет brew сделает код «управляемым» и делает обновления прозрачными, в то же время, вероятно, увеличивая объем пользовательской базы.
@TommieC. Я полагаю, вы могли бы сделать пакет brew, чтобы установить его в один из общесистемныхsite_scons каталоги, но так как вызов должен происходить из файла SConstruct, я скорее представляю, что отдельные сопровождающие проекта захотят сделать уровень проектаsite_scons и воткни туда. brew не поможет с этим, а установка всей системы просто сделает его зависимостью сборки, которую должен будет установить каждый; Я думаю, что лучше включать инструмент в соответствующие источники (это также означает, что проблем с версиями нет, в отличие от того, что иногда случается с автоинструментами).
@TommieC. Генератор вообще не заботится о содержимом исходного файла (поэтому источники Swift будут просто работать & # x2122;). Генератор намеренно создает внешние цели системы сборки, на которых запускаются SCons, поэтому сборка не будет отличаться от того, что указано в файле SConstruct. Я не думаю, что SCons сама поддерживает Swift из коробки, хотя вы могли бы написать конструктор для нее достаточно легко, если вы компетентны в Python. Что касается поддержки Homebrew, я не знаю, чего вы хотите; все, что вам нужно для установки генератора, - это скопировать файл & # x2014; Я не вижу, как помогает варево.
1

qmake в цепочке инструментов Qt генерирует проекты Xcode. Вы можете хотя бы скачать его и взглянуть на его источникВот (LGPL).

0

Вы можете создать проект XCode, используя основанную на Python систему сборки под названиемWAF, Вам нужноскачать и установить 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 исполняемый файл, который может построить ваш проект. Вам нужно настроить, как генерировать ваш проект XCode внутри файла с именемwscript это должно находиться в папке вашего проекта.wscript Файл использует синтаксис Python. Здесь & APOS; sпример о том, как вы можете настроить свой проект:

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
Но когда я запускаю ./waf build, я получаю ошибку в python - AttributeError: & apos; BuildContext & apos; объект не имеет атрибута "framework"
попробуйте написать & quot; ./ waf xcode6 & quot; вместо "сборки". И не забудьте также запустить сначала конфигурацию, то есть "./ waf configure". @Отметка. Надеюсь, поможет!

Похожие вопросы