diff --git a/cmake/libappimage.pc.in b/cmake/libappimage.pc.in
index 32682d86..6bff1e1a 100644
--- a/cmake/libappimage.pc.in
+++ b/cmake/libappimage.pc.in
@@ -1,7 +1,6 @@
prefix=@CMAKE_INSTALL_PREFIX@
-# Use prefix as base path to make the package relocatable
-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+libdir=@CMAKE_INSTALL_REL_LIBDIR@
+includedir=@CMAKE_INSTALL_REL_INCLUDEDIR@
Name: @PROJECT_NAME@
Description: AppImage management and desktop integration
diff --git a/cmake/scripts.cmake b/cmake/scripts.cmake
index 0228e739..6482440a 100644
--- a/cmake/scripts.cmake
+++ b/cmake/scripts.cmake
@@ -257,6 +257,6 @@ function(configure_libappimage_module target)
target_include_directories(${target}
PUBLIC $
PRIVATE $
- INTERFACE $
+ INTERFACE $
)
endfunction()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9737205b..17a6cb3f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -47,6 +47,17 @@ install(
if(NOT LIBAPPIMAGE_SHARED_ONLY)
# pkg-config
+ # Use prefix as base path to make the package relocatable, when possible
+ if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
+ set(CMAKE_INSTALL_REL_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
+ else()
+ set(CMAKE_INSTALL_REL_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
+ endif()
+ if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+ set(CMAKE_INSTALL_REL_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}")
+ else()
+ set(CMAKE_INSTALL_REL_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
+ endif()
configure_file("${PROJECT_SOURCE_DIR}/cmake/libappimage.pc.in" "${PROJECT_BINARY_DIR}/libappimage.pc" @ONLY)
install(FILES "${PROJECT_BINARY_DIR}/libappimage.pc"
diff --git a/src/libappimage/CMakeLists.txt b/src/libappimage/CMakeLists.txt
index 47005221..992b5fad 100644
--- a/src/libappimage/CMakeLists.txt
+++ b/src/libappimage/CMakeLists.txt
@@ -70,13 +70,13 @@ install(
# install public headers
install(
DIRECTORY ${PROJECT_SOURCE_DIR}/include/appimage/
- DESTINATION include/appimage
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/appimage"
COMPONENT libappimage-dev
)
install(
DIRECTORY ${PROJECT_BINARY_DIR}/generated-headers/appimage/
- DESTINATION include/appimage
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/appimage"
COMPONENT libappimage-dev
)
diff --git a/src/libappimage_shared/CMakeLists.txt b/src/libappimage_shared/CMakeLists.txt
index ef7238bb..234414d3 100644
--- a/src/libappimage_shared/CMakeLists.txt
+++ b/src/libappimage_shared/CMakeLists.txt
@@ -13,7 +13,7 @@ add_library(libappimage_shared STATIC
set_target_properties(libappimage_shared PROPERTIES PREFIX "")
target_include_directories(libappimage_shared PUBLIC
$
- $
+ $
)
set_property(TARGET libappimage_shared PROPERTY PUBLIC_HEADER ${libappimage_shared_public_header})
target_link_libraries(libappimage_shared PRIVATE libappimage_hashlib)