From a4030cd82903f713f429d1ad044713a37e0333ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Wed, 21 Jun 2023 09:35:40 -0400
Subject: [PATCH] add pkgconfig file

Change-Id: I8948adf1e15a2baad3d67400d8940902807bf9ed
---
 CMakeLists.txt | 14 ++++++++++++--
 dhtnet.pc.in   | 10 ++++++++++
 2 files changed, 22 insertions(+), 2 deletions(-)
 create mode 100644 dhtnet.pc.in

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b84dcfa..161d535 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,6 +5,10 @@ set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 include(CTest)
 include(GNUInstallDirs)
+set (prefix ${CMAKE_INSTALL_PREFIX})
+set (exec_prefix "\${prefix}")
+set (libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
+set (includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
 
 find_package (PkgConfig REQUIRED)
 find_package(msgpack REQUIRED QUIET CONFIG NAMES msgpack msgpack-cxx)
@@ -39,12 +43,18 @@ target_include_directories(dhtnet PUBLIC
     $<INSTALL_INTERFACE:include>
 )
 target_compile_definitions(dhtnet PUBLIC PJ_AUTOCONF=1)
-
 set_target_properties(dhtnet PROPERTIES PUBLIC_HEADER "${dhtnet_HEADERS}")
+
+configure_file(dhtnet.pc.in dhtnet.pc @ONLY)
+
 install(TARGETS dhtnet
     PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dhtnet
 )
 
+# Install targets
+install (DIRECTORY include DESTINATION ${CMAKE_INSTALL_PREFIX})
+install (FILES ${CMAKE_CURRENT_BINARY_DIR}/opendht.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+
 if (BUILD_TESTING AND NOT MSVC)
     pkg_search_module(Cppunit REQUIRED IMPORTED_TARGET cppunit)
     add_executable(tests_certstore tests/certstore.cpp)
@@ -62,4 +72,4 @@ if (BUILD_TESTING AND NOT MSVC)
     #add_executable(tests_stringutils tests/testString_utils.cpp)
     #target_link_libraries(tests_stringutils PRIVATE dhtnet fmt::fmt PkgConfig::Cppunit)
     #add_test(NAME tests_stringutils COMMAND tests_stringutils)
-endif()
\ No newline at end of file
+endif()
diff --git a/dhtnet.pc.in b/dhtnet.pc.in
new file mode 100644
index 0000000..1e3faa6
--- /dev/null
+++ b/dhtnet.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+Name: dhtnet
+Description: C++ peer to peer networking library
+Version: @VERSION@
+Requires: opendht >= 2.6
+Requires.private: pjproject
+Cflags: -I${includedir}
-- 
GitLab