From 1da6f4f18bdc7f47cd84f58a427835f2b790cb29 Mon Sep 17 00:00:00 2001 From: Millian Poquet Date: Mon, 22 Feb 2021 19:23:38 +0100 Subject: [PATCH] [CMake] generate pkg-config flatbuffers.pc file (#6455) This commit enables CMake to generate a flatbuffers.pc file on install. pkg-config eases the utilization of software libraries by enabling the developers of a library to define how the library should be used. It can be used as a tool by build systems to find and manage dependencies, this is notably the default Meson behavior and optionally used by CMake. --- CMake/flatbuffers.pc.in | 9 +++++++++ CMakeLists.txt | 8 ++++++++ 2 files changed, 17 insertions(+) create mode 100644 CMake/flatbuffers.pc.in diff --git a/CMake/flatbuffers.pc.in b/CMake/flatbuffers.pc.in new file mode 100644 index 000000000..110770aba --- /dev/null +++ b/CMake/flatbuffers.pc.in @@ -0,0 +1,9 @@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + +Name: FlatBuffers +Description: Memory Efficient Serialization Library +Version: @VERSION_MAJOR@.@VERSION_MINOR@.@VERSION_PATCH@ + +Libs: -L${libdir} -lflatbuffers +Cflags: -I${includedir} diff --git a/CMakeLists.txt b/CMakeLists.txt index a7c0b0a75..f56f844f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -629,6 +629,14 @@ if(FLATBUFFERS_INSTALL) DESTINATION ${FB_CMAKE_DIR} ) endif() + + if(FLATBUFFERS_BUILD_SHAREDLIB OR FLATBUFFERS_BUILD_FLATLIB) + configure_file(CMake/flatbuffers.pc.in flatbuffers.pc @ONLY) + install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/flatbuffers.pc" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + ) + endif() endif() if(FLATBUFFERS_BUILD_TESTS)