| # 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() |