VerifyHeaderSets-check.cmake 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. function(check_file target filename)
  2. set(full_filename "${RunCMake_TEST_BINARY_DIR}/${target}_verify_interface_header_sets/${filename}")
  3. if(NOT EXISTS "${full_filename}")
  4. string(APPEND RunCMake_TEST_FAILED "File ${full_filename} should exist but does not\n")
  5. set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE)
  6. return()
  7. endif()
  8. if(filename MATCHES "^(.*)(\\.[a-z]+)$")
  9. set(header_filename "${CMAKE_MATCH_1}")
  10. endif()
  11. set(expected_contents "#include <${header_filename}>\n")
  12. file(READ "${full_filename}" actual_contents)
  13. if(NOT actual_contents STREQUAL expected_contents)
  14. string(REPLACE "\n" "\n " expected_contents_formatted "${expected_contents}")
  15. string(REPLACE "\n" "\n " actual_contents_formatted "${actual_contents}")
  16. string(APPEND RunCMake_TEST_FAILED "Expected contents of ${full_filename}:\n ${expected_contents_formatted}\nActual contents:\n ${actual_contents_formatted}\n")
  17. set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE)
  18. return()
  19. endif()
  20. endfunction()
  21. check_file(static a.h.c)
  22. check_file(static dir/c.h.c)
  23. check_file(static dir/cxx.h.cxx)
  24. if(NOT RunCMake_GENERATOR STREQUAL "Xcode")
  25. check_file(config debug.h.c)
  26. if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
  27. check_file(config release.h.c)
  28. endif()
  29. endif()