37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| macro(RuntimeLibrary_check tgt rtl_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_Runtimelibrary 0)
 | |
| 
 | |
|   file(STRINGS "${vcProjectFile}" lines)
 | |
|   foreach(line IN LISTS lines)
 | |
|     if(line MATCHES "^ *<RuntimeLibrary>([^<>]+)</RuntimeLibrary>")
 | |
|       set(rtl_actual "${CMAKE_MATCH_1}")
 | |
|       if(NOT "${rtl_actual}" STREQUAL "${rtl_expect}")
 | |
|         set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj has RuntimeLibrary '${rtl_actual}', not '${rtl_expect}'.")
 | |
|         return()
 | |
|       endif()
 | |
|       set(HAVE_Runtimelibrary 1)
 | |
|       break()
 | |
|     endif()
 | |
|   endforeach()
 | |
| 
 | |
|   if(NOT HAVE_Runtimelibrary AND NOT "${rtl_expect}" STREQUAL "")
 | |
|     set(RunCMake_TEST_FAILED "Project file ${tgt}.vcxproj does not have a RuntimeLibrary field.")
 | |
|     return()
 | |
|   endif()
 | |
| endmacro()
 | |
| 
 | |
| RuntimeLibrary_check(default-C MultiThreadedDebugDLL)
 | |
| RuntimeLibrary_check(default-CXX MultiThreadedDebugDLL)
 | |
| RuntimeLibrary_check(empty-C "")
 | |
| RuntimeLibrary_check(empty-CXX "")
 | |
| RuntimeLibrary_check(MTd-C MultiThreadedDebug)
 | |
| RuntimeLibrary_check(MTd-CXX MultiThreadedDebug)
 | |
| RuntimeLibrary_check(MT-C MultiThreaded)
 | |
| RuntimeLibrary_check(MT-CXX MultiThreaded)
 |