2017-06-08 8 views
1

Xcodeはビルド構成(コンパイラ&リンカオプションとフラグ)をMakefileにエクスポートすることをサポートしていますか?または、そのようなタスクのためにサードパーティの実装が利用可能ですか?ビルドコンフィギュレーションからMakefileを作成する

私たちは(ネイティブコードの)ほとんどの開発をXcodeで行いますが、Windows/Linuxライブラリに対してもコンパイルする必要があります。一般に、Xcodeには有効なビルド設定があり、コード変更を行う前にMakefileを手動で編集します。このプロセスはエラーが発生しやすく、開発環境とビルドシステムの間に望ましくない違いが生じます。

ビルド設定をMakefileに自動的にエクスポートすると、我々のフローが大幅に簡素化されます。私はあなたの答えはxcodebuild -showBuildSettings

$ xcodebuild -showBuildSettings 
Build settings for action build and target YourApp: 
ACTION = build 
AD_HOC_CODE_SIGNING_ALLOWED = NO 
ALTERNATE_GROUP = staff 
ALTERNATE_MODE = u+w,go-w,a+rX 
ALTERNATE_OWNER = Stanislaw 
... 

であるあなたが-scheme-configurationのような通常のオプションとそれを組み合わせることができると思い

+0

これはC言語とC++にどのように関連していますか?その上に、2つの異なる言語がありますか? – Badda

+0

このタグはObjective-C/Swift関連ではないことを強調しています。 – Elist

答えて

1

-targetなど

それが来るとき、人々はそう.xcconfigと呼ばれるファイルを操作してみてくださいいくつかのカスタムフラグの注入についてこのパスはあなたをどこかに導くことができますが、Mac上でしか動作しないため、クロスプラットフォーム開発を行うための非常に便利な方法ではありません。たとえば、Using xcconfig files for your XCode Projectなどを参照してください。

情報を取得する別の間接的な方法は、Xcodeからすべてのコンパイルコマンドのダンプを取得することです。この回答はHow can I get all the compile commands from Xcode?です。

私が知る限り、Xcodeはすべてのフラグを別々に処理するのにはあまり面白いものではありません。


もう1つのオプションは、MakefileからCMakeに切り替えることです。 CMakeは完璧ではありませんが、これまでのところ、Xcodeプロジェクトを生成することができ、さまざまなプラットフォーム向けのライブラリを作成するのに役立ちます。

+0

CMakeを調べることをお勧めします。おそらくそれはあなたの問題を解決するでしょう。これは: '一般的にXcodeで有効なビルド設定があり、コード変更を行う前にMakefileを手動で編集します.'良いとは思いません:) –

+0

' xcodebuild -showBuildSettings'は良いスタートですが、 – Elist

+0

私は、xcconfigファイルを使用してコンパイルコマンドをもう一度やり直すという2つの間接的なオプションを使って答えを更新しました。私はCMakeを調べることをお勧めします。これは、最近のクロスプラットフォーム開発の絶対的なデフォルトです。 –

関連する問題