configure_file: Add support for indented cmakedefine

Optional spaces and/or tabs are now understood between the '#' character
and the 'cmakedefine'/'cmakedefine01' words. This indentation is
preserved in the output lines.

Fixes: #13037
This commit is contained in:
Sylvain Joubert
2017-07-04 12:00:02 +02:00
parent 74112c8da1
commit 58f4744821
11 changed files with 90 additions and 7 deletions

View File

@@ -261,6 +261,12 @@ int main()
cmPassed("ONE_VAR is defined.");
#endif
#ifndef ONE_VAR_AND_INDENTED
cmFailed("cmakedefine is broken, ONE_VAR_AND_INDENTED is not defined.");
#else
cmPassed("ONE_VAR_AND_INDENTED is defined.");
#endif
#ifndef ONE_VAR_IS_DEFINED
cmFailed("cmakedefine, SET or VARIABLE_REQUIRES is broken, "
"ONE_VAR_IS_DEFINED is not defined.");
@@ -274,6 +280,12 @@ int main()
cmPassed("ZERO_VAR is not defined.");
#endif
#ifdef ZERO_VAR_AND_INDENTED
cmFailed("cmakedefine is broken, ZERO_VAR_AND_INDENTED is defined.");
#else
cmPassed("ZERO_VAR_AND_INDENTED is not defined.");
#endif
#ifndef STRING_VAR
cmFailed("the CONFIGURE_FILE command is broken, STRING_VAR is not defined.");
#else
@@ -1030,6 +1042,16 @@ int main()
} else {
cmFailed("cmakedefine01 is not working for 1");
}
if (SHOULD_BE_ZERO_AND_INDENTED == 0) {
cmPassed("cmakedefine01 is working for 0 and indented");
} else {
cmFailed("cmakedefine01 is not working for 0 and indented");
}
if (SHOULD_BE_ONE_AND_INDENTED == 1) {
cmPassed("cmakedefine01 is working for 1 and indented");
} else {
cmFailed("cmakedefine01 is not working for 1 and indented");
}
#ifdef FORCE_TEST
cmFailed("CMake SET CACHE FORCE");
#else