5

ビルドホストが使用するディストリビューションに関係なく、Linuxビルドが同一であることを確認するために、コンパイラとsysrootファイルを再配置可能なtarファイルにパッケージ化し、ソース管理にチェックインしました。

したがって、ビルドの最初のステップ(または、少なくとも、コンパイルステップの前に呼び出す必要のあるステップ)は、このtarファイルを抽出する必要があります。

makefileを使用している場合、これは簡単に実行できます。しかし、プロジェクトはcmakeを使用しており、cmakeでそれを行う方法がわかりません。cmakeがコンパイラの検出を開始する前に、この抽出ステップを呼び出す必要がある場合もあります。コンパイラ名をハードコーディングできますが、コンパイラが見つからない場合にcmakeが失敗した場合は、そのテストの前にアンパックを実行する必要があります。

これはcmakeで可能ですか?

4

1 に答える 1

10

を使用execute_processして、cmake のクロスプラットフォーム コマンド モードを呼び出すことができます ( cmake -E tar)。コマンドは次のようになります。

execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf MyCompiler.bz2)

CMake に有効なコンパイラをチェックさせるコマンドはであるため、呼び出しの前に呼び出しprojectがある限り、コンパイラ チェックの前に解凍が行われます。execute_processproject

于 2013-01-30T22:30:08.693 に答える