Tests: Update BuildDepends test for Xcode "new build system"

Xcode somehow tracks what we're running inside a custom command,
so we cannot prevent it from regenerating the `noregen.h` header
even though we do not declare any dependencies of it.
This commit is contained in:
Brad King
2020-09-15 13:57:26 -04:00
parent ff76c51ec3
commit 832a78be2d
2 changed files with 10 additions and 0 deletions

View File

@@ -59,6 +59,10 @@ add_executable(bar bar.cxx
${CMAKE_CURRENT_BINARY_DIR}/noregen.h
)
if(CMAKE_XCODE_BUILD_SYSTEM VERSION_GREATER_EQUAL 12)
target_compile_definitions(bar PRIVATE XCODE_NEW_BUILD_SYSTEM)
endif()
#-----------------------------------------------------------------------------
if("${CMAKE_GENERATOR}" MATCHES "Make")
# Test the IMPLICIT_DEPENDS feature.

View File

@@ -7,8 +7,14 @@ int main(int argc, char** argv)
{
/* Make sure the noregen header was not regenerated. */
if (strcmp("foo", noregen_string) != 0) {
#ifdef XCODE_NEW_BUILD_SYSTEM
fprintf(stderr,
"Known limitation: noregen.h was regenerated "
"but we cannot stop Xcode from doing this!\n");
#else
printf("FAILED: noregen.h was regenerated!\n");
return 1;
#endif
}
/* Print out the string that should have been regenerated. */