Cmake, nasıl olursa derleyici Çınlama varsa test edebilirim?
cross platform CMake build scripts, bir set var ve MSVC GCC bina destekliyoruz.
Clang, kurmaya çalışıyoruz ama ya derleyici CMake script ile Çınlama olup olmadığını test etmek için nasıl çözemiyorum.
Eğer derleyici Çınlama olup olmadığını test etmek için ne yapmalıyım? Şu anda MSVC
CMAKE_COMPILER_IS_GNU<LANG>
GCC ve MSVC için, sırasıyla test etmek için kullanıyoruz.
CEVAP
Güvenilir bir kontrol CMAKE_<LANG>_COMPILER_ID
değişkenleri kullanmaktır. E. g., C derleyici kontrol etmek için:
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
# using Clang
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
# using GCC
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
# using Intel C
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
# using Visual Studio C
endif()
Bu da eğer ccache gibi bir derleyici sarıcı kullanılması durumunda düzgün çalışır.
CMake 3.0.0 olarak Apple tarafından sağlanan CMAKE_<LANG>_COMPILER_ID
artık değer AppleClang
Çınlama. Hem Apple tarafından sağlanan Çınlama ve düzenli Çınlama test etmek için koşul, aşağıdaki kullanın:
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# using regular Clang or AppleClang
endif()
Ayrıca AppleClang policy description bkz.
Nasıl bir dizi belirli bir değeri vars...
Nasıl bir dize Amaç C boşsa test edebi...
Objective-C, nesne türü nasıl test ede...
Nasıl bir Java dosyası varsa kontrol e...
Nasıl olursa NSDictionary veya bir NSM...