| |
| set(TARGET_NAMES "static_lib" "shared_lib" "interface_lib") |
| set(static_lib_FOUND "0") |
| set(shared_lib_FOUND "0") |
| set(interface_lib_FOUND "0") |
| |
| macro(checkExportTargets FOLDER_PATH) |
| message("Checking folder: ${FOLDER_PATH}") |
| file(GLOB sources_list LIST_DIRECTORIES true RELATIVE ${FOLDER_PATH} ${FOLDER_PATH}/*) |
| message("Found files and folders: ${sources_list}") |
| foreach(source ${sources_list}) |
| set(SOURCE_ABS "${FOLDER_PATH}/${source}") |
| if(IS_DIRECTORY ${SOURCE_ABS}) |
| message("Found subfolder: ${source}") |
| checkExportTargets(${SOURCE_ABS}) |
| else() |
| message("Found file: ${source}") |
| foreach(TARGET_NAME ${TARGET_NAMES}) |
| set(TARGETS_FILE "${TARGET_NAME}Targets.cmake") |
| if(${source} STREQUAL ${TARGETS_FILE}) |
| message("Found ${TARGETS_FILE} in ${FOLDER_PATH}") |
| string(TOUPPER ${TARGET_NAME} TARGET_NAME_UPPER) |
| set(expected_macro "${TARGET_NAME_UPPER}_MACRO") |
| set(expected_string "INTERFACE_AUTOMOC_MACRO_NAMES \"${expected_macro}\"") |
| file(READ ${FOLDER_PATH}/${source} contents) |
| if (NOT contents MATCHES ${expected_string}) |
| message(FATAL_ERROR "Expected ${expected_string} in ${FOLDER_PATH}/${source}") |
| else() |
| message("Found ${expected_string} in ${FOLDER_PATH}/${source}") |
| set(${TARGET_NAME}_FOUND "1") |
| endif() |
| endif() |
| endforeach() |
| endif() |
| endforeach() |
| endmacro() |
| |
| checkExportTargets(${FOLDER_PATH}) |
| |
| foreach(TARGET_NAME ${TARGET_NAMES}) |
| # check if the target found equals the expected value |
| if(NOT ${TARGET_NAME}_FOUND STREQUAL "1") |
| message(FATAL_ERROR "Did not find ${TARGET_NAME}Targets.cmake") |
| endif() |
| endforeach() |