1*4882a593SmuzhiyunFUNCTION(im2d_api_extract_version) 2*4882a593Smuzhiyun FILE(READ "${CMAKE_CURRENT_LIST_DIR}/im2d_api/im2d_version.h" version_file) 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun STRING(REGEX MATCH "RGA_API_MAJOR_VERSION ([0-9]+)" _ "${version_file}") 5*4882a593Smuzhiyun if(NOT CMAKE_MATCH_COUNT EQUAL 1) 6*4882a593Smuzhiyun message(FATAL_ERROR "Could not extract major version number from im2d_version.h") 7*4882a593Smuzhiyun endif() 8*4882a593Smuzhiyun set(VER_MAJOR ${CMAKE_MATCH_1}) 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun STRING(REGEX MATCH "RGA_API_MINOR_VERSION ([0-9]+)" _ "${version_file}") 11*4882a593Smuzhiyun if(NOT CMAKE_MATCH_COUNT EQUAL 1) 12*4882a593Smuzhiyun message(FATAL_ERROR "Could not extract minor version number from im2d_version.h") 13*4882a593Smuzhiyun endif() 14*4882a593Smuzhiyun set(VER_MINOR ${CMAKE_MATCH_1}) 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun STRING(REGEX MATCH "RGA_API_REVISION_VERSION ([0-9]+)" _ "${version_file}") 17*4882a593Smuzhiyun if(NOT CMAKE_MATCH_COUNT EQUAL 1) 18*4882a593Smuzhiyun message(FATAL_ERROR "Could not extract revision version number from im2d_version.h") 19*4882a593Smuzhiyun endif() 20*4882a593Smuzhiyun set(VER_REVISION ${CMAKE_MATCH_1}) 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun set(IM2D_API_VERSION_MAJOR ${VER_MAJOR} PARENT_SCOPE) 23*4882a593Smuzhiyun set(IM2D_API_VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_REVISION}" PARENT_SCOPE) 24*4882a593SmuzhiyunENDFUNCTION() 25