Support absolute path for CMAKE_INSTALL_*DIR #1121
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
When
CMAKE_INSTALL_LIBDIR
andCMAKE_INSTALL_INCLUDEDIR
are set to absolute paths, themsgpack-c.pc
file generated by CMake improperly configureslibdir
andincludedir
. This leads to incorrect paths that prevent the compiler from locating necessary header and library files.How to reproduce
Build and install
msgpack-c
.Compile
example/simple_c.c
using installed msgpack-c. The following error happens because the linker cannot find paths provided by pkg-config.Expected
Successfully compile
example/simple_c.c
using installed msgpack-c. We can executesimple_c
like the following.Explain the problem in detail
The generated
msgpack-c.pc
file does not handle absolute paths correctly. Here is the result of the incorrect configuration inHow to reproduce
section. In the followingmsgpack-c.pc
file,libdir
andincludedir
are showing unrecognized paths, leading to incorrect paths.Solution
Modify the
CMakeLists.txt
file to ensure thatlibdir
andincludedir
use absolute paths. This change addresses the issue by providing correct paths to the compiler and linker.