From 832a78be2d11568d80156dabfad4e21d5a05650d Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 15 Sep 2020 13:57:26 -0400 Subject: 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. --- Tests/BuildDepends/Project/CMakeLists.txt | 4 ++++ Tests/BuildDepends/Project/bar.cxx | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/Tests/BuildDepends/Project/CMakeLists.txt b/Tests/BuildDepends/Project/CMakeLists.txt index 83583c9..c438e1d 100644 --- a/Tests/BuildDepends/Project/CMakeLists.txt +++ b/Tests/BuildDepends/Project/CMakeLists.txt @@ -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. diff --git a/Tests/BuildDepends/Project/bar.cxx b/Tests/BuildDepends/Project/bar.cxx index ec7aa65..825d661 100644 --- a/Tests/BuildDepends/Project/bar.cxx +++ b/Tests/BuildDepends/Project/bar.cxx @@ -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. */ -- cgit v0.12