| |
| |
| set(expected_values "SHARED_LIB_MACRO" "INTERFACE_LIB_MACRO" "STATIC_LIB_MACRO") |
| function(checkAutoMocMacroNames FILE_PATH) |
| message(STATUS "Checking for auto moc macro names in ${FILE_PATH}") |
| file(READ ${FILE_PATH} FILE_CONTENT) |
| string(JSON MOC_MACRO_NAMES_ARR GET ${FILE_CONTENT} MOC_MACRO_NAMES) |
| # get the length of MOC_MACRO_NAMES in JSON |
| string(JSON MOC_MACRO_NAMES_LENGTH LENGTH ${MOC_MACRO_NAMES_ARR}) |
| if(${MOC_MACRO_NAMES_LENGTH} EQUAL 0) |
| message(FATAL_ERROR "MOC_MACRO_NAMES is empty") |
| endif() |
| message(STATUS "MOC_MACRO_NAMES: ${MOC_MACRO_NAMES_ARR}") |
| |
| math(EXPR last_index "${MOC_MACRO_NAMES_LENGTH} - 1") |
| set(reverse_index ${last_index}) |
| foreach(expected_value IN LISTS expected_values) |
| string(JSON element GET ${MOC_MACRO_NAMES_ARR} ${reverse_index}) |
| # check if element equals to expected value |
| if(NOT ${element} STREQUAL ${expected_value}) |
| message(FATAL_ERROR "MOC_MACRO_NAMES is expected to contain ${expected_value} but contains ${element}") |
| endif() |
| math(EXPR reverse_index "${reverse_index} - 1") |
| endforeach() |
| endfunction() |
| |
| checkAutoMocMacroNames(${FILE_PATH}) |