macro(VsJustMyCode_check tgt jmc_expect) set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/${tgt}.vcxproj") if(NOT EXISTS "${vcProjectFile}") set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not exist.") return() endif() set(HAVE_JMC 0) file(STRINGS "${vcProjectFile}" lines) foreach(line IN LISTS lines) if(line MATCHES "^ *([^<>]+)") set(jmc_actual "${CMAKE_MATCH_1}") if(NOT "${jmc_actual}" STREQUAL "${jmc_expect}") set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj has '${jmc_actual}', not '${jmc_expect}'.") return() endif() set(HAVE_JMC 1) break() endif() endforeach() if(NOT HAVE_JMC AND NOT "${jmc_expect}" STREQUAL "") set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a property group.") return() endif() endmacro() VsJustMyCode_check(JMC-default-C "") VsJustMyCode_check(JMC-default-CXX "") VsJustMyCode_check(JMC-ON-C true) VsJustMyCode_check(JMC-ON-CXX true) VsJustMyCode_check(JMC-OFF-C "") VsJustMyCode_check(JMC-OFF-CXX "") VsJustMyCode_check(JMC-TGT-ON-C true) VsJustMyCode_check(JMC-TGT-ON-CXX true) VsJustMyCode_check(JMC-TGT-OFF-C "") VsJustMyCode_check(JMC-TGT-OFF-CXX "")