VsPlatformToolset-check.cmake 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. macro(ReadPlatformToolset tgt outvar)
  2. set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/${tgt}.vcxproj")
  3. if(NOT EXISTS "${vcProjectFile}")
  4. set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not exist.")
  5. return()
  6. endif()
  7. set(HAVE_PlatformToolset 0)
  8. file(STRINGS "${vcProjectFile}" lines)
  9. foreach(line IN LISTS lines)
  10. if(line MATCHES "^ *<PlatformToolset>([^<>]+)</PlatformToolset>")
  11. set(${outvar} "${CMAKE_MATCH_1}")
  12. set(HAVE_PlatformToolset 1)
  13. break()
  14. endif()
  15. endforeach()
  16. if(NOT HAVE_PlatformToolset)
  17. set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a <PlatformToolset> field.")
  18. return()
  19. endif()
  20. endmacro()
  21. ReadPlatformToolset(NormalPlatformToolset NORMAL_TOOLSET)
  22. ReadPlatformToolset(OverridenPlatformToolset OVERRIDEN_TOOLSET)
  23. if (NOT "${OVERRIDEN_TOOLSET}" STREQUAL "MyCustomToolset")
  24. set(RunCMake_TEST_FAILED "Failed to override the platform toolset")
  25. return()
  26. endif()
  27. if ("${NORMAL_TOOLSET}" STREQUAL "MyCustomToolset")
  28. set(RunCMake_TEST_FAILED "Main toolset was overridden (it shouldn't)")
  29. return()
  30. endif()