mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
This change was originally made by commit74b1c9fc8e(Explicitly specify language flag when source LANGUAGE property is set, 2020-06-01, v3.19.0-rc1~722^2), but it was reverted by commit30aa715fac(Revert "specify language flag when source LANGUAGE property is set", 2020-11-19) to restore compatibility with pre-3.19 behavior. Implement the change again, but add policy CMP0119 to make this change while preserving compatibility with existing projects. Note that the `Compiler/{Clang,Intel,MSVC}-CXX` modules do not need to specify `-TP` for their MSVC-like variants because we already use the flag in `CMAKE_CXX_COMPILE_OBJECT`. Similarly for `Compiler/XL-CXX` and `Platform/Windows-Embarcadero`. Note also that this does not seem possible to implement for XL C. Even with `-qsourcetype=c`, `xlc` complains about an unknown suffix: `1501-218 (W) file /.../AltExtC.zzz contains an incorrect file suffix`. It returns non-zero even with `-qsuppress=1501-218`. Co-Author: Robert Maynard <robert.maynard@kitware.com> Fixes: #14516, #20716
33 lines
335 B
C
33 lines
335 B
C
#include <stdio.h>
|
|
|
|
int foo();
|
|
|
|
#ifdef WITH_ZOOM
|
|
int zoom();
|
|
#endif
|
|
|
|
class A
|
|
{
|
|
public:
|
|
A()
|
|
{
|
|
this->i = foo();
|
|
#ifdef WITH_ZOOM
|
|
i += zoom();
|
|
i -= zoom();
|
|
#endif
|
|
}
|
|
int i;
|
|
};
|
|
|
|
int main()
|
|
{
|
|
A a;
|
|
if (a.i == 21) {
|
|
printf("passed foo is 21\n");
|
|
return 0;
|
|
}
|
|
printf("Failed foo is not 21\n");
|
|
return -1;
|
|
}
|