[x265] [PATCH] cmake: generate and install pkgconfig file
Steve Borho
steve at borho.org
Wed Oct 23 07:16:10 CEST 2013
# HG changeset patch
# User Steve Borho <steve at borho.org>
# Date 1382480398 18000
# Tue Oct 22 17:19:58 2013 -0500
# Node ID a8d4928926e82026ed71ca0af210a5f4f16d405d
# Parent 6d96d64c4e9a2c526b57274760a7147241328cb3
cmake: generate and install pkgconfig file
This installs the x265.pc into /usr/local/lib/pkgconfig/ with these contents:
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: x265
Description: H.265/HEVC video encoder
Version: 0.4.1
Libs: -L${libdir} -lx265
Libs.private: -lstdc++ -lm -lc -lpthread -lrt
Cflags: -I${includedir}
The pkg-config file is only generated and installed if CMake finds pkg-config
Q1: it seems unwise to hard-code "/lib" in a few places, what if lib64 is
used or something else?
Q2: Should x265.pc have a version number like x265-0.4.1.pc?
diff -r 6d96d64c4e9a -r a8d4928926e8 source/CMakeLists.txt
--- a/source/CMakeLists.txt Tue Oct 22 23:36:36 2013 +0530
+++ b/source/CMakeLists.txt Tue Oct 22 17:19:58 2013 -0500
@@ -108,7 +108,7 @@
endif(YASM_FOUND)
if(UNIX)
- SET(PLATFORM_LIBS pthread m)
+ SET(PLATFORM_LIBS pthread)
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
SET(PLATFORM_LIBS ${PLATFORM_LIBS} rt)
endif(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
@@ -182,6 +182,18 @@
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
+
+ include(FindPkgConfig QUIET)
+ if(PKG_CONFIG_FOUND)
+ # convert lists of link libraries into -lstdc++ -lm etc..
+ foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
+ set(PRIVATE_LIBS "${PRIVATE_LIBS} -l${LIB}")
+ endforeach()
+ # Produce a pkg-config file for linking against the shared lib
+ configure_file("x265.pc.in" "x265.pc" @ONLY)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/x265.pc"
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
+ endif()
endif()
install(TARGETS x265-static
RUNTIME DESTINATION bin
diff -r 6d96d64c4e9a -r a8d4928926e8 source/x265.pc.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/source/x265.pc.in Tue Oct 22 17:19:58 2013 -0500
@@ -0,0 +1,11 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: @CMAKE_PROJECT_NAME@
+Description: H.265/HEVC video encoder
+Version: @X265_LATEST_TAG@
+Libs: -L${libdir} -lx265
+Libs.private: @PRIVATE_LIBS@
+Cflags: -I${includedir}
More information about the x265-devel
mailing list