Переменная CMake или свойство для различения между отладкой и сборками конечных версий

если Вы будете говорить о просто типах, как другие люди сказали, parseInt () и т.д. возвратит корректный тип. Кроме того, если по какой-либо причине значение могло бы быть и числом или строкой, и Вы не хотите называть parseInt (), typeof выражения также бросит к корректному типу:

function f(value:number|string){
  if(typeof value==='number'){
   // value : number
  }else {
   // value : string
  }
}
6
задан Torleif 3 September 2009 в 08:49
поделиться

2 ответа

Вы можете определить свой собственный 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")

Затем, когда вы вызываете cmake, добавьте определение (-D):

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

Для целей у вас есть два решения:

Первое:

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

Второй:

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
ответ дан 11 December 2019 в 00:40
поделиться

Попробуйте использовать CMAKE_BUILD_TYPE вместо

4
ответ дан 11 December 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: