2009-09-03 12 views
6

Hata ayıklamak ve oluşturmak için farklı bir CMake değişkeni ayarlamak istiyorum. Böyle CMAKE_CFG_INTDIR kullanmaya çalıştık:Hata ayıklama ve yayınlama hatalarını ayırt etmek için CMake değişkeni veya özelliği

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") 

Ama bu değişken CKağıt onun şeyi yapar anda $ (OUTDIR) olarak değerlendirilir.

Hata ayıklama ve sürüm oluşturma işlemleri arasında ayrım yapmak için kullanabileceğim bir CMake değişkeni veya TARGET_LINK_LIBRARIES öğesinin hata ayıklama ve en iyileştirilmiş kitaplıkları belirleyebileceği satırlar boyunca kullanabileceğim bir CMake değişkeni var mı?

DÜZENLEME: CMAKE_BUILD_TYPE kullanamıyorum çünkü bu yalnızca üretici tabanlı jeneratörler tarafından destekleniyor ve bunu Visual Studio'yla çalışmam gerekiyor.

cevap

3

kullanmak size cmake Tanımı (-D) ekleyin çağırdığınızda: hedefler için

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

, İki çözümünüz var:

Birincisi:

İkincisi
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") 

: CKağıt belgelerine göre

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") 

Sonra bağlantıdan

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

deneyin Sen Öyleyse kendi CMAKE_CFG_INTDIR

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") 

tanımlayabilirsiniz CMAKE_BUILD_TYPE yerine

+1

bu değişken yapmak bazlı jeneratörler için kullanılabilir. Bunun hem görsel hem de stüdyo için çalışmasına ihtiyacım var. Visual Studio 2005 için – Torleif

+1

(ve ben de oldukça eminim 2003) VS 'yerel Build türü seçeneğini kullanır ve her zamanki Debug, RelWithDeb, Release, vb ile doldurur. Sadece cmake'de mevcut olanı kullanın. –

İlgili konular