2012-01-16 8 views
5

C++からJSに移行するためにconfigureファイルが必要です。プロジェクトでemscriptenを使用しようとしています。 Emscripteには、emconfigureというautoconfの設定を置き換えるツールが付属しています。CMakeは設定ファイルを生成できますか?

私がビルドしているプロジェクトは、ビルドシステムとしてcmakeを使用しています。現在、emscriptenはautoconfのみをサポートしています。 configureを生成し、makeでポートを実行することによって、cmakeからconfigureファイルを作成する方法がありますか?私はmakeファイルについては言及していませんが、ファイル自体を設定しています。

+0

。あなたはもっと具体的になりますか? – Neox

+1

この質問は不明です。 CMakeは、autoconfのやり方でconfigureというスクリプトを生成することはできません。これは、同様の仕事をするために異なった働きをします。しかし、ソースツリーのファイルに対して設定操作を行うことができます。どのような言語の翻訳が行われていますか? emscripteと何が関係していますか? – mabraham

答えて

15

はい、それができる:

configure_file(<input> <output> 
       [COPYONLY] [ESCAPE_QUOTES] [@ONLY] 
       [NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ]) 

Example.h.in

#ifndef EXAMPLE_H 
#define EXAMPLE_H 

/* 
* These values are automatically set according to their cmake variables. 
*/ 
#define EXAMPLE "${VALUE}" 
#define VERSION "${VERSION}" 
#define NUMBER ${NUMBER} 

#endif /* EXAMPLE_H */ 

あなたのcmakeのファイルで:設定済み

set(EXAMPLE "This is an example") 
set(VERSION "1.0") 
set(NUMBER 3) 

configure_file(Example.h.in Example.h) 

Example.h

#ifndef EXAMPLE_H 
#define EXAMPLE_H 

/* 
* These values are automatically set according to their cmake variables. 
*/ 
#define EXAMPLE "This is an example" 
#define VERSION "1.0" 
#define NUMBER 3 

#endif /* EXAMPLE_H */ 

ドキュメント:あなたは言語を翻訳したいところで

+0

すごく、答えてくれてありがとう。非常に役立ちます !! – Jacko

+0

変数がfalseと評価された場合、CMakeはundefを返します。例えば番号が0の場合は、定義しません。とにかくそれを修正するには?私はそれを解決するためにifndefを使用しています。 –

+0

'#cmakedefine'や普通の' #define'を使っていますか?後者はこれを行うべきではありません。それでもうまくいかない場合は、テンプレートファイルに '#ifnedf ... #define ...'を追加することができます。 – ollo

0

はいcmakeは、ターゲットプラットフォームに応じてプロジェクトを構築するために必要なファイルを生成します。 CMakeのためのCMakelist.txtのファイルをあなた自身で書く必要があります。そうしないと、他の人からCMakeを入手する必要があります。 emscriptenにそれらがあり、cmakeがインストールされている場合は、courceディレクトリのルートに移動し、cmakeを起動して使用できる引数のリストを表示してください。

-7

Cmakeはビルドシステムです。 Makefilesを生成します。詳細はhereをご覧ください。しかし、あなたの質問に簡単に答えてもらうために、cmakeを使ってconfigureファイルを生成することはできません。

+2

平易な間違った、受け入れられた答えと比較してください。 – usr1234567

0

実際には、「セット」を生成しないでください。ただし、データ型、ベクトルヘッダーなどのように、すべての機能を使用することができます。

さて、これらの機能をすべて含むプロジェクトへのリンクを作成します。私はそれの研究、何か私にあなたの質問をするための電子メールまたは何かを送ることをお勧めします。ここで

:私たちが作成した機能を表示するには、あまりにも/ DEPS/cmakeのフォルダenter link description here

チェック。

関連する問題