Czy CMAKE_BUILD_TYPE=Release
domyślnie implikuje -DNDEBUG
?Czy CMAKE_BUILD_TYPE = Wydanie impli -DNDEBUG?
Jeśli nie: czy nie należy oczekiwać, że ta implikacja ma miejsce?
Chcę wiedzieć, czy następujący kod CMake jest zbędny w moim CMakeLists.txt:
if (NOT CMAKE_BUILD_TYPE MATCHES Debug)
add_definitions(-DNDEBUG)
endif()
Sprawdziłem to i okazało się, że * CMake * dopisuje flagę '-DNDEBUG', ale nadal jest problematyczne, ponieważ [Dokumentacja CMakeka] (https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE. html) robi ** not ** jawnie wspomina, jeśli flaga '-DNDEBUG' jest dodana, gdy jest dostępna opcja' CMAKE_BUILD_TYPE = Debug'. Wolę unikać pisania kodu w oparciu o nieudokumentowane zachowanie, ponieważ może się ono zmienić w przyszłych wersjach CMake (chociaż potencjalne konsekwencje byłyby niewielkie). –
Masz na myśli! = W tytule? Zdecydowanie spodziewam się, że kompilacje debugowania będą ** NOT ** definiować 'NDEBUG'. – immibis
@immibis - dzięki. Oczywiście to był literówka. Zmieniłem moje pytanie. +1 –