2013-05-20 40 views
11

古いメイクファイルをCMakeに変換しようとしています。手伝って頂けますか?これは私が現在立ち往生している部分です。これらの引数をコンパイラに渡す方法はわかりません。古いメイクファイルをCMakeに変換する

COMPILE_FLAGS = -c -m32 -O3 -fPIC -w -DSOMETHING -Wall -I src/sdk/core 

ifdef STATIC 
    OUTFILE = "bin/test_static.so" 
    COMPILE_FLAGS_2 = ./lib/ABC.a 
else 
    OUTFILE = "bin/test.so" 
    COMPILE_FLAGS_2 = -L/usr/lib/mysql -lABC 
endif 

all: 
    g++ $(COMPILE_FLAGS) src/sdk/*.cpp 
    g++ $(COMPILE_FLAGS) src/*.cpp 
    g++ -fshort-wchar -shared -o $(OUTFILE) *.o $(COMPILE_FLAGS_2) 
    rm -f *.o 

ありがとうございました!

答えて

18

のはCMakeMakefile構文をマッピングしてみましょう:

COMPILE_FLAGS = -c -m32 -O3 -fPIC -w -DSOMETHING -Wall -I src/sdk/core 

この文は、直接にマップ:

SET(COMPILE_FLAGS "-c -m32 -O3 -fPIC -w -DSOMETHING -Wall") 
INCLUDE_DIRECTORIES(src/sdk/core) 

タイプの条件:

ifdef STATIC 
    # Do something 
else 
    # Do something else 
endif 

はCMakeので翻訳されこのようにして:

OPTION(STATIC "Brief description" ON) 
IF(STATIC) 
    # Do something 
ELSE() 
    # Do something else 
ENDIF() 

デフォルトのコンパイルフラグを変更するには、変数CMAKE_<LANG>_FLAGS_RELEASE,CMAKE_<LANG>_FLAGS_DEBUGなどを適切に設定することができます。

最後に、実行可能ファイルのコンパイルでは、多くのCMakeチュートリアルで説明されているADD_EXECUTABLEコマンドを使用する必要があります。

いずれにしても、詳しい説明はオンラインdocumentationを参照することをお勧めします。

関連する問題