• Ben Keller's avatar
    install: Fix computed import prefix in export files when it is "/" · 290e4ce8
    Ben Keller authored
    When exporting from a project (with install(EXPORT ...)), the
    `<PROJECT>Targets.cmake` file contains logic for computing the
    `_IMPORT_PREFIX` from its own location.  This `_IMPORT_PREFIX` is then
    used in the `<PROJECT>Targets-<config>.cmake` file to generate the
    `IMPORTED_LOCATION_<CONFIG>`.  The generation unconditionally appends a
    "/" to `_IMPORT_PREFIX` before appending the rest of the path.  If
    `_IMPORT_PREFIX` is "/", then the `IMPORTED_LOCATION_<CONFIG>`
    properties all start with exactly two leading slashes ("//").
    
    Exactly two leading slashes is a special case in POSIX file paths, such
    that its interpretation is left up to the implementation.  This means
    that changing the path prefix from "/" to "//" should not be allowed.
    
    Since references to `_IMPORT_PREFIX` are always followed by a "/",
    simply check the value to replace "/" with "".
    290e4ce8
cmExportInstallFileGenerator.cxx 17.3 KB