You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.8 KiB
65 lines
1.8 KiB
#
|
|
# Check C# VS project for required elements.
|
|
#
|
|
set(csProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.csproj")
|
|
if(NOT EXISTS "${csProjectFile}")
|
|
set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.")
|
|
return()
|
|
endif()
|
|
|
|
|
|
set(inDebug FALSE)
|
|
set(inRelease FALSE)
|
|
set(debugOK FALSE)
|
|
set(releaseOK FALSE)
|
|
|
|
|
|
file(STRINGS "${csProjectFile}" lines)
|
|
foreach(line IN LISTS lines)
|
|
#message(STATUS ${line})
|
|
if(line MATCHES "^ *<PropertyGroup .*Debug\\|(Win32|x64|ARM64).*")
|
|
set(inDebug TRUE)
|
|
elseif(line MATCHES "^ *<PropertyGroup .*Release\\|(Win32|x64|ARM64).*")
|
|
set(inRelease TRUE)
|
|
elseif(line MATCHES "^ *</PropertyGroup> *$")
|
|
set(inRelease FALSE)
|
|
set(inDebug FALSE)
|
|
elseif(inDebug AND
|
|
(line MATCHES "^ *<NoWarn>.*505.*</NoWarn> *$") AND
|
|
(line MATCHES "^ *<NoWarn>.*707.*</NoWarn> *$") AND
|
|
(line MATCHES "^ *<NoWarn>.*808.*</NoWarn> *$") AND
|
|
(line MATCHES "^ *<NoWarn>.*909.*</NoWarn> *$")
|
|
)
|
|
set(debugOK TRUE)
|
|
elseif(inRelease AND
|
|
(NOT (line MATCHES "^ *<NoWarn>.*505.*</NoWarn> *$")) AND
|
|
(line MATCHES "^ *<NoWarn>.*707.*</NoWarn> *$") AND
|
|
(line MATCHES "^ *<NoWarn>.*808.*</NoWarn> *$") AND
|
|
(line MATCHES "^ *<NoWarn>.*909.*</NoWarn> *$")
|
|
)
|
|
set(releaseOK TRUE)
|
|
endif()
|
|
endforeach()
|
|
|
|
function(print_csprojfile)
|
|
file(STRINGS "${csProjectFile}" lines)
|
|
foreach(line IN LISTS lines)
|
|
message(STATUS ${line})
|
|
endforeach()
|
|
endfunction()
|
|
|
|
|
|
if(NOT debugOK)
|
|
message(STATUS "Failed to set Debug configuration warning config correctly.")
|
|
set(RunCMake_TEST_FAILED "Failed to set Debug configuration defines correctly.")
|
|
print_csprojfile()
|
|
return()
|
|
endif()
|
|
|
|
if(NOT releaseOK)
|
|
message(STATUS "Failed to set Release configuration warning config correctly.")
|
|
set(RunCMake_TEST_FAILED "Failed to set Release configuration defines correctly.")
|
|
print_csprojfile()
|
|
return()
|
|
endif()
|