| # |
| # This code validates that the install trees of the shared and static builds |
| # of "mfc1" have the expected contents: |
| # |
| set(binary_dir "@binary_dir@") |
| message("binary_dir='${binary_dir}'") |
| |
| # There should be exactly one file in the static install tree "bin" directory |
| # and it should be named "mfc1.exe" |
| # |
| message(STATUS "===== mfcStatic install tree =====") |
| file(GLOB_RECURSE files "${binary_dir}/mfcStatic-prefix/bin/*.*") |
| message(STATUS "mfcStatic files='${files}'") |
| list(LENGTH files len) |
| if(NOT len EQUAL 1) |
| message(FATAL_ERROR |
| "len='${len}' is not '1' (count of static 'bin' files)") |
| endif() |
| get_filename_component(name "${files}" NAME) |
| string(TOLOWER "${name}" name) |
| if(NOT "${name}" STREQUAL "mfc1.exe") |
| message(FATAL_ERROR "unexpected mfcStatic file name '${name}'") |
| endif() |
| |
| # There should be at least 3 files in the shared install tree "bin" |
| # directory: mfc1.exe, the main MFC dll and the C runtime dll. With more |
| # recent versions of VS, there will also be an MFC language dll and a |
| # manifest file. |
| # |
| message(STATUS "===== mfcShared install tree =====") |
| file(GLOB_RECURSE files "${binary_dir}/mfcShared-prefix/bin/*.*") |
| message(STATUS "mfcShared files='${files}'") |
| list(LENGTH files len) |
| |
| set(msvc6 "@MSVC60@") |
| if("${msvc6}" STREQUAL "1") |
| set(expected_minimum_file_count 1) |
| else() |
| set(expected_minimum_file_count 3) |
| endif() |
| |
| if(len LESS ${expected_minimum_file_count}) |
| message(FATAL_ERROR |
| "len='${len}' is less than '${expected_minimum_file_count}' (count of shared 'bin' files)") |
| endif() |
| foreach(f ${files}) |
| message(STATUS "file '${f}'") |
| get_filename_component(ext "${f}" EXT) |
| string(TOLOWER "${ext}" ext) |
| |
| if("${ext}" MATCHES "\\.exe$") |
| message(STATUS " exe file") |
| get_filename_component(name "${f}" NAME) |
| string(TOLOWER "${name}" name) |
| if(NOT "${name}" STREQUAL "mfc1.exe") |
| message(FATAL_ERROR "unexpected mfcShared .exe file name '${name}'") |
| endif() |
| elseif("${ext}" MATCHES "\\.dll$") |
| message(STATUS " dll file") |
| elseif("${ext}" MATCHES "\\.manifest$") |
| message(STATUS " manifest file") |
| else() |
| message(STATUS " unknown file") |
| message(FATAL_ERROR "unexpected mfcShared ${ext} file name '${f}'") |
| endif() |
| endforeach() |
| |
| message(STATUS "All mfc1 build validation tests pass.") |