<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/83802>83802</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Findzstd.cmake: string sub-command REGEX, mode REPLACE: regex "$" matched an empty string.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          vgvassilev
      </td>
    </tr>
</table>

<pre>
    When using find_package(llvm) on windows we get:

```
CMake Error at D:/bld/cppinterop_1709495262007/_h_env/Library/lib/cmake/llvm/Findzstd.cmake:39 (string):
2024-03-03T19:54:48.3232894Z   string sub-command REGEX, mode REPLACE: regex "$" matched an empty string.
2024-03-03T19:54:48.3233394Z Call Stack (most recent call first):
2024-03-03T19:54:48.3233750Z D:/bld/cppinterop_1709495262007/_h_env/Library/lib/cmake/llvm/LLVMConfig.cmake:278 (find_package)
2024-03-03T19:54:48.3234068Z   CMakeLists.txt:121 (find_package)

```


Our diagnosis is that `find_package(LLVM REQUIRED CONFIG)` triggers `LLVMConfig.cmake` to call `find_package(zstd)`. In the MSVC branch we use `string(REGEX REPLACE "${CMAKE_INSTALL_LIBDIR}$" "${CMAKE_INSTALL_BINDIR}" zstd_DIRNAME "${zstd_DIRNAME}")`, however, `CMAKE_INSTALL_LIBDIR` is not defined yet and we error out:

https://github.com/llvm/llvm-project/blob/da5966e0c102f03ab853b906377814675db3623c/llvm/cmake/modules/Findzstd.cmake#L36-L47

Adding `include(GNUInstallDirs)` which defines `CMAKE_INSTALL_LIBDIR` in the calling cmake fixes the problem but it's difficult to debug and and far from optimal.

Full log is here: https://dev.azure.com/conda-forge/84710dde-1620-425b-80d0-4cf5baca359d/_apis/build/builds/888296/logs/24
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0lUuP2zYQgH8NfRnYoEg9Dz54_QiMejet82iRi0GJI4ldiTRIys7m1xeU7WSTTZoWaAFbEofkcB7fDIVzqtGIc5LckWQ1EYNvjZ2fmlOY6fA0KY18mv_eoobBKd1ArbQ8HEX1KBokLO-6U09YAUbDWWlpzg7OCA16wheErgi9PVN6_Y3D5b14RFhbaywID6uwmm3KThK2qY5HpT1aczxEGS3iImEpozQjbHNoD6hPhG12qrTCPhG26VQZ9vTiEcNoNGezUVp-cl7OLnK-4AUQljtvlW4IKz4bxyiLp5RPKX8bBWkSE76I8xlnnOVF_AEALpvADeW0Mn0vtIT9-tX6D8KW0BuJsF__ulss14QvwGKDH4EwRlhMGINe-KpFCUID9kf_dFU2--nhnIfDl6Lr4I0X1WOwvjfOg8UKtYcqzNTKOv8PveFZQj_853He7d7fL42uVfM50izLg7FfY1L81L6YpnmI9gjGTjnvZv5jgChi0Q_1fRet58_XgwWpRKONUw6UA98KDySl31Ac_ID9-rd32_16BcvXD5vtq3BKSsFb1TRoXdj1wt0wby7JeKk0AHhRMoOtBt8i3L95v4TSCl21oUwGh2HfDct85OrG0w2j7G55v_hlfdg-vHm72O0Ou-3darsn2erK2A-W3W0fbssYBFMOq-3-YXH_TO9z6WXhxdxAdmvOeEIbPklKv2tBSkNEtfEgsVYaJTyhh1AfZwQcS9sM3_aB1vuju1BI2KZRvh3KWWX6L0yF1_RozZ9Y-ZFVE8CTIinSFGkVUVZTLso84WVBU55leRSnWSJLnjJefdFzQ7U3cujQvewKjO94Ot3F2XP7FlKGaicpVbrqBhkS-erh3VY7L7pupay7cnFuVdVePXd_G6NL6gMkQfN4NtTqI7pRfrSm7LCHcvCgPGGZA6nqWlVD5wNcEsuhGaMa_rWwUFvTgzl61Ytu9tz2zdB10JkmpKVFG6oRvo63xNNMfBosXkNeGS3FtDY2ALvJ4yyiUuI0ShmdxiwppzmVdBpXdVKKSvCkCH3jII4qhLMc1NhHxncQ5HnOijRkwDRhzOKJnHNZ8EJMcB56TBLzJOeTdl4hLSWnFaeyqmlU1UUZZ0VeRzRKkwxxouahWVBOY1pEnPJZxgSXWVoVaVqUUSlITLEXqpuFdM-MbSbKuQHnOc8pm3SixM6NtxpjGs8wTgbCk9XEzkfGyqFxJKbd2Gw-a_HKdzh_cYH8L9fAZLDd_F9XxOjKGO_g6l8BAAD__-70UWk">