6

schemesどのように働き、何のために働くのかを正確に理解しようとしxcodeています。外部ビルド システム ( scons) を使用して OS X 上にビルドされたクロスプラットフォーム製品があります。主にシンボル検索とデバッガーのために、からビルド/デバッグできるようにしたいと思います。Xcode私はeclipse CDTほとんどうまく機能するものを使用してきましたが、いくつかの癖があります。

ほとんどの場合、空のプロジェクトを作成し、「外部ビルド システム」ターゲットを追加することで、これを機能させることができます。次に、ターゲットの「情報」の一部として、 「ビルド ツール」/usr/local/bin/sconsとして指定します。 「引数」は、scons に送信するビルド パラメータです。基本的には、次のビルド変数が呼び出され$(TARGET)$(BUILD_TYPE)ビルドがデバッグかリリースかによって異なるため、条件付きの「ビルド設定」として指定できます。

問題は、私が働きたいということですMenu->Project->Clean。変数をXcode/xcodebuilder使用してこれを渡すように見えます-どこに'build''clean'、またはその他のビルドアクションがあります。xcodebuild ACTIONを参照してください。Scons は少し異なります。コマンド ラインで. したがって、最初に考えたのは、条件付きの「ビルド設定」を使用してこのパラメーターを渡すことでしたが、条件付きの「ビルド設定」はビルドによって異なるようには見えません。ビルド アーキテクチャと SDK だけです。$(ACTION)$(ACTTION)scons -cACTION

の「ビルド設定」に式を追加することはできXcode/xcodebuilderますか? 「Clean」Xcodeをsconsで動作させる別の良い方法はありますか?

4

4 に答える 4

5

のラッパー スクリプトを作成しSCons、プロジェクトに配置します。例えば:

外部ビルド ツールの構成

  • ビルドツール:$(PROJECT_DIR)/scons-xcode-wrapper.sh
  • 引数:$(ACTION)

ラッパー スクリプト

実験的に$(ACTION)はビルド時は空、cleanクリーニング時はオンのようです。

#!/bin/sh
cd "$PROJECT_DIR"
case $1 in
  clean)
    scons -c
    ;;
  *)
    scons
    ;;
esac

chmod +xスクリプトを忘れないでください。

于 2013-04-15T02:51:14.563 に答える
1

「Arguments」パラメーターを次のように設定します。

--$(ACTION)

これは次のように変換されます。

scons [all your arguments] --clean

ここでscons のドキュメントを確認すると、それが--clean同様に機能することがわかります-c

Clean は機能する唯一のものですが、他のビルドアクションは常に空白になります。

于 2014-05-27T14:07:49.587 に答える
0

上記の回答を組み合わせて使用​​できます。つまり、次のようになります。

  1. 引数を次のように設定します--xcode-action=$(ACTION)

  2. 次のように SConstruct にコードを入れます。

    env.AddOption('--xcode-action',
                  dest='xcode_action',
                  type='string',
                  action='store',
                  default='',
                  help='The action Xcode wishes to perform')
    
    if GetOption('xcode_action') == 'clean':
        SetOption('clean', True)
    

これは基本的に、私がscons-xcodeで使用しているソリューションです。

于 2016-05-03T16:57:33.173 に答える