mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-06 22:30:07 -05:00
2ae880fa8f
Since commit v3.9.0-rc4~3^2~1 (VS: Fix target_compile_options for CUDA, 2017-06-21), the evaluation of `COMPILE_LANGUAGE` receives the proper language. The set of compile flags used for a target's C and C++ sources is based on the linker language. By default this is always the C++ flags if any C++ sources appear in the target, and otherwise the C flags. Therefore we can define the `COMPILE_LANGUAGE` generator expression in `COMPILE_OPTIONS` to match the selected language. This is not exactly the same as for other generators, but is the best VS can do. It is also sufficient for many use cases since the set of allowed flags for C and C++ is almost the same in Visual Studio. Furthermore, since the VS generator moves many of the flags to declarative `.vcxproj` elements, it will automatically avoid passing C++ flags for C sources. Issue: #17435
38 lines
500 B
C++
38 lines
500 B
C++
|
|
#ifdef DO_GNU_TESTS
|
|
|
|
#ifdef MY_PRIVATE_DEFINE
|
|
#error Unexpected MY_PRIVATE_DEFINE
|
|
#endif
|
|
|
|
#ifndef MY_PUBLIC_DEFINE
|
|
#error Expected MY_PUBLIC_DEFINE
|
|
#endif
|
|
|
|
#ifndef MY_INTERFACE_DEFINE
|
|
#error Expected MY_INTERFACE_DEFINE
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#ifndef CONSUMER_LANG_CXX
|
|
#error Expected CONSUMER_LANG_CXX
|
|
#endif
|
|
|
|
#ifdef CONSUMER_LANG_C
|
|
#error Unexpected CONSUMER_LANG_C
|
|
#endif
|
|
|
|
#if !LANG_IS_CXX
|
|
#error Expected LANG_IS_CXX
|
|
#endif
|
|
|
|
#if LANG_IS_C
|
|
#error Unexpected LANG_IS_C
|
|
#endif
|
|
|
|
int main()
|
|
{
|
|
return 0;
|
|
}
|