cmake: Fix path relocation in pkgconfig file for mingw

This fixes path relocation in mingw environment by using predefined
Libs and Cflags variable in pkgconfig file. Otherwise, libdir and
includedir are not shown in pkgconf output. e.g.
* Without predefined variables:
  - pkgconf -cflags cmocka: No output
  - pkgconf -libs cmocka: -lcmocka
* With predefined variables:
  - pkgconf -cflags cmocka: -IC:/msys64/mingw64/include
  - pkgconf -libs cmocka: -LC:/msys64/mingw64/lib -lcmocka

Also official documentation suggests to use predefiend keywords here
https://people.freedesktop.org/~dbn/pkg-config-guide.html

Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Biswapriyo Nath 2022-06-24 23:51:20 +05:30 committed by Andreas Schneider
parent 7057bba5b2
commit 08853ca354
2 changed files with 11 additions and 5 deletions

View File

@ -65,7 +65,7 @@ if (WITH_EXAMPLES)
endif ()
# pkg-config file
configure_file(cmocka.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/cmocka.pc)
configure_file(cmocka.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/cmocka.pc @ONLY)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/cmocka.pc

View File

@ -1,5 +1,11 @@
Name: ${PROJECT_NAME}
# cmocka pkg-config source file
prefix=@CMAKE_INSTALL_PREFIX@
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
Name: @PROJECT_NAME@
Description: The cmocka unit testing library
Version: ${PROJECT_VERSION}
Libs: -L${CMAKE_INSTALL_FULL_LIBDIR} -lcmocka
Cflags: -I${CMAKE_INSTALL_FULL_INCLUDEDIR}
Version: @PROJECT_VERSION@
Libs: -L${libdir} -lcmocka
Cflags: -I${includedir}