# Print values for human reference. foreach(v configuration perconfig_file_dir perconfig_file_name perconfig_file pcStatic_file pcStatic_linker_file pcShared_file pcShared_linker_file pcShared_soname_file ) message(STATUS "${v}=${${v}}") endforeach() # Verify that file names match as expected. set(pc_file_components ${perconfig_file_dir}/${perconfig_file_name}) if(NOT "${pc_file_components}" STREQUAL "${perconfig_file}") message(SEND_ERROR "File components ${pc_file_components} do not match ${perconfig_file}") endif() if(NOT "${pcStatic_file}" STREQUAL "${pcStatic_linker_file}") message(SEND_ERROR "pcStatic_file does not match pcStatic_linker_file:\n" " ${pcStatic_file}\n" " ${pcStatic_linker_file}\n" ) endif() # Verify that the implementation files are named correctly. foreach(lib pcStatic pcShared) file(STRINGS "${${lib}_file}" info LIMIT_COUNT 1 REGEX "INFO:[A-Za-z0-9_]+\\[[^]]*\\]") if(NOT "${info}" MATCHES "INFO:symbol\\[${lib}\\]") message(SEND_ERROR "No INFO:symbol[${lib}] found in:\n ${${lib}_file}") endif() endforeach() execute_process(COMMAND ${perconfig_file} RESULT_VARIABLE result) if(result) message(SEND_ERROR "Error running:\n ${perconfig_file}\n(${result})") endif()