The Android NDK 16b has a bug that sets the ANDROID_NDK_REVISION
variable incorrectly, generating an unexpected line break in the
middle of the string. This breaks the build as the generated
version_string.inc presents an invalid C string.
Remove leading and trailing line breaks, warns for line breaks in the
middle of 'msg' and escape them before appending to
OPENCV_BUILD_INFO_STR.
message(STATUS "${msg}")
string(REPLACE "\\" "\\\\" msg "${msg}")
string(REPLACE "\"" "\\\"" msg "${msg}")
+ string(REGEX REPLACE "^\n+|\n+$" "" msg "${msg}")
+ if(msg MATCHES "\n")
+ message(WARNING "String to be inserted to version_string.inc has an unexpected line break: '${msg}'")
+ string(REPLACE "\n" "\\n" msg "${msg}")
+ endif()
set(OPENCV_BUILD_INFO_STR "${OPENCV_BUILD_INFO_STR}\"${msg}\\n\"\n" CACHE INTERNAL "")
endfunction()