2009-09-03 13 views
6

デバッグビルドおよびリリースビルドにCMake変数を異なる方法で設定したい。私はこのようなCMAKE_CFG_INTDIRを使用しようとしました:デバッグビルドとリリースビルドを区別するための変数またはプロパティを呼び出す

IF(${CMAKE_CFG_INTDIR} STREQUAL "Debug") 
    SET(TESTRUNNER DllPlugInTesterd_dll) 
ELSE(${CMAKE_CFG_INTDIR} STREQUAL "Debug") 
    SET(TESTRUNNER DllPlugInTester_dll) 
ENDIF(${CMAKE_CFG_INTDIR} STREQUAL "Debug") 

しかし、この変数はcmakeのは、そのことをやっ時に$(OUTDIR)と評価されます。

デバッグビルドとリリースビルドを区別するために使用できるCMake変数がありますか?デバッグライブラリと最適化ライブラリをどこで指定できるのかをTARGET_LINK_LIBRARIESがどのようにして表示しているのか、

EDIT:CMAKE_BUILD_TYPEを使用することはできません。これはmakeベースの発電機でのみサポートされているため、Visual Studioでこの機能を使用する必要があります。ターゲットの

cmake -DCMAKE_CFG_INTDIR=Debug /path/of/your/CMakeLists.txt 

、:

答えて

3

CMAKE_BUILD_TYPEを使用してみてください

最初の1つ:

IF(CMAKE_CFG_INTDIR MATCHES "Debug") 

TARGET_LINK_LIBRARIES(YOUR_EXE DllPlugInTesterd...) 

ELSE(CMAKE_CFG_INTDIR MATCHES "Debug") 

TARGET_LINK_LIBRARIES(YOUR_EXE DllPlugInTester...) 

ENDIF(CMAKE_CFG_INTDIR MATCHES "Debug") 

第二1:

IF(CMAKE_CFG_INTDIR MATCHES "Debug") 

FIND_LIBRARY(DLL_PLUGIN DllPlugInTesterd_dll /path/of/your/lib) 

ELSE(CMAKE_CFG_INTDIR MATCHES "Debug") 

FIND_LIBRARY(DLL_PLUGIN PlugInTester_dll /path/of/your/lib) 

ENDIF(CMAKE_CFG_INTDIR MATCHES "Debug") 

次にリンク

TARGET_LINK_LIBRARIES(YOUR_EXE ${DLL_PLUGIN}...) 
3

することで、cmakeのは、定義(-D)を追加呼び出すときは、次に

IF(NOT CMAKE_CFG_INTDIR) 
SET(CMAKE_CFG_INTDIR "Release") 
ENDIF(NOT CMAKE_CFG_INTDIR) 

IF(CMAKE_CFG_INTDIR MATCHES "Debug") 

...Debug PART... 

ELSE(CMAKE_CFG_INTDIR MATCHES "Debug") 

...Release PART... 

ENDIF(CMAKE_CFG_INTDIR MATCHES "Debug") 

独自のCMAKE_CFG_INTDIR

を定義することができる代わりに、

+1

ためにcmakeのドキュメントによると、この変数はメイクベースの発電機のためにのみ使用可能です。私はmakeとVisual Studioの両方でこれを動作させる必要があります。 – Torleif

+1

Visual Studio 2005(そして私もかなり確信しています2003)VS 'ネイティブのビルドタイプのオプションを使用し、通常のデバッグ、RelWithDeb、リリースなどでそれを設定します。既にcmakeで利用可能なものだけを使用してください。 –

関連する問題