# Refer to prefix symbolically to ease relocation by end user,
# as Makefile-generated .pc file does.
+string(FIND "${CMAKE_INSTALL_INCLUDEDIR}" "${CMAKE_INSTALL_PREFIX}/" INCLUDEDIR_POS)
+string(FIND "${CMAKE_INSTALL_LIBDIR}" "${CMAKE_INSTALL_PREFIX}/" LIBDIR_POS)
+string(LENGTH "${CMAKE_INSTALL_PREFIX}/" INSTALL_PREFIX_LEN)
+
if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
set(PC_INC_INSTALL_DIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
-elseif(CMAKE_INSTALL_INCLUDEDIR STREQUAL "${CMAKE_INSTALL_PREFIX}/include")
- set(PC_INC_INSTALL_DIR "\${prefix}/include")
+elseif(INCLUDEDIR_POS EQUAL 0)
+ string(SUBSTRING "${CMAKE_INSTALL_INCLUDEDIR}" "${INSTALL_PREFIX_LEN}" "-1" INCLUDEDIR_RELATIVE)
+ set(PC_INC_INSTALL_DIR "\${prefix}/${INCLUDEDIR_RELATIVE}")
else()
set(PC_INC_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
endif()
+
if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
set(PC_LIB_INSTALL_DIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
-elseif(CMAKE_INSTALL_LIBDIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib")
- set(PC_LIB_INSTALL_DIR "\${exec_prefix}/lib")
+elseif(LIBDIR_POS EQUAL 0)
+ string(SUBSTRING "${CMAKE_INSTALL_LIBDIR}" "${INSTALL_PREFIX_LEN}" "-1" LIBDIR_RELATIVE)
+ set(PC_LIB_INSTALL_DIR "\${exec_prefix}/${LIBDIR_RELATIVE}")
else()
set(PC_LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}")
endif()