web-dev-qa-db-ja.com

CMake、Xcode、Unix Makefile

CMakeが「cmake-GXcode」を使用してNicexcodeプロジェクトファイルを生成できることを説明するWebページが見つかるまで、従来のUnix Makefileジェネレーターを使用していたので、ソースディレクトリでそのコマンドを実行すると、Nicexcodeプロジェクトが取得されます。これは素晴らしいですが、私はいくつかの欠点に直面しており、これらの解決策があるかどうか疑問に思っていました:

  • 現在、unix makefileを使用してツリーからビルドすることはできません(ビルドディレクトリでcmake ../myprojを実行してからmakeコマンドを実行するために使用します)これはもう機能しません(プロジェクトディレクトリの一時ファイルが原因であると思います)

  • 一部のヘッダーはcmakeによって生成されます(myproj.h.inはmyproj.hになり、たとえばいくつかのテストに含まれています)が、取得したxcodeプロジェクトでそれらのファイルが見つかりません。

Xcodeプロジェクトとunixmakefileを組み合わせて両方を使用できるようにする方法についての良いアドバイスを事前に感謝します。

26
claf

私は自分で答えを見つけました(私は良い人に尋ねることを意味します):

ビルドファイルのタイプごとに2つの別々のビルドディレクトリを使用します。これにより、各ビルドディレクトリに、使用するための正しいビルドファイルと生成されたファイルが確実に含まれます。

Add_executable()コマンドには、ソースファイルに加えて、Xcodeに表示されるヘッダーと生成されたヘッダーも含まれます。

14
claf

Xcodebuildを使用して、適切なXcodeプロジェクトを保持し、コマンドライン/シェルスクリプト/ Makefileからビルドできます。

xcodebuild -project MyProject.xcodeproj -target MyTarget -configuration Release
3
Martin