diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a2beaa..c04fa8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -192,6 +192,17 @@ if (PUGIXML_USE_POSTFIX) endif() endif() +# Handle both relative and absolute paths (e.g. NixOS) for a relocatable package +if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}") + set(PUGIXML_PC_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") +else() + set(PUGIXML_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") +endif() +if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}") + set(PUGIXML_PC_LIBDIR "${CMAKE_INSTALL_LIBDIR}") +else() + set(PUGIXML_PC_LIBDIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") +endif() configure_file(scripts/pugixml.pc.in pugixml.pc @ONLY) export(TARGETS ${install-targets} diff --git a/scripts/pugixml.pc.in b/scripts/pugixml.pc.in index 7958774..cfb81f5 100644 --- a/scripts/pugixml.pc.in +++ b/scripts/pugixml.pc.in @@ -1,7 +1,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@@INSTALL_SUFFIX@ -libdir=@CMAKE_INSTALL_FULL_LIBDIR@@INSTALL_SUFFIX@ +includedir=@PUGIXML_PC_INCLUDEDIR@ +libdir=@PUGIXML_PC_LIBDIR@ Name: pugixml Description: Light-weight, simple and fast XML parser for C++ with XPath support.