Bug 414554

Summary: Installed CMake target contains absolute paths and cannot be relocated
Product: [Applications] marble Reporter: Samuel OMalley <7g7o5v4t>
Component: generalAssignee: marble-bugs
Status: RESOLVED FIXED    
Severity: normal CC: rahn
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Samuel OMalley 2019-11-26 23:16:08 UTC
SUMMARY

There is an absolute path in MarbleTarget.cmake (INCLUDE_INSTALL_DIR). This absolute path means that the installed files cannot be moved and still used by CMake's find_package().

There should be _no_ absolute paths in any outputs of install.

STEPS TO REPRODUCE
1. Marble: make install
2. Rename install dir
3. Attempt to depend on Marble libraries with find_package(Marble REQUIRED)

OBSERVED RESULT

CMake Error in src/libs/geo/CMakeLists.txt
  Imported target "Marble" includes non-existent path

    "/absolute/path/to/include/dirs/that/doesnt/exist"

  in its INTERFACE_INCLUDE_DIRECTORIES.  Possible reasons include:

  * The path was deleted, renamed, or moved to another location.
  * An install or uninstall procedure did not complete successfully.
  * The installation package was faulty and references files it does not provide.

EXPECTED RESULT

No error.

SOFTWARE/OS VERSIONS
CMake: 3.11
Qt Version: 5.10

ADDITIONAL INFORMATION
Comment 1 Samuel OMalley 2019-11-26 23:31:02 UTC
Patch submitted: https://phabricator.kde.org/D25456
Comment 2 Torsten Rahn 2020-01-02 20:55:26 UTC
Closed by commit R34:3eb10f4339df: Patch from Samuel OMalley to make the include directory movable.