diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 2f7e31c..94672b5 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -63,6 +63,30 @@ set(nghttp3_SOURCES sfparse/sfparse.c ) +set(NGHTTP3_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") +set(NGHTTP3_VERSION_CONFIG "${NGHTTP3_GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") +set(NGHTTP3_PROJECT_CONFIG "${NGHTTP3_GENERATED_DIR}/${PROJECT_NAME}Config.cmake") +set(NGHTTP3_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") +set(NGHTTP3_CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") +set(NGHTTP3_NAMESPACE "${PROJECT_NAME}::") +set(NGHTTP3_VERSION ${PROJECT_VERSION}) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${NGHTTP3_VERSION_CONFIG}" VERSION ${NGHTTP3_VERSION} COMPATIBILITY SameMajorVersion +) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.cmake.in" "${NGHTTP3_PROJECT_CONFIG}" @ONLY) + +# Install cmake config files +install( + FILES "${NGHTTP3_PROJECT_CONFIG}" "${NGHTTP3_VERSION_CONFIG}" + DESTINATION "${NGHTTP3_CONFIG_INSTALL_DIR}") + +install( + EXPORT "${NGHTTP3_TARGETS_EXPORT_NAME}" + NAMESPACE "${NGHTTP3_NAMESPACE}" + DESTINATION "${NGHTTP3_CONFIG_INSTALL_DIR}") + # Public shared library if(ENABLE_SHARED_LIB) add_library(nghttp3 SHARED ${nghttp3_SOURCES}) @@ -73,6 +97,7 @@ if(ENABLE_SHARED_LIB) ) install(TARGETS nghttp3 + EXPORT ${NGHTTP3_TARGETS_EXPORT_NAME} ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") @@ -89,6 +114,7 @@ if(ENABLE_STATIC_LIB) target_compile_definitions(nghttp3_static PUBLIC "-DNGHTTP3_STATICLIB") install(TARGETS nghttp3_static + EXPORT ${NGHTTP3_TARGETS_EXPORT_NAME} DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() diff --git a/lib/Makefile.am b/lib/Makefile.am index 42b731a..4f83499 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -23,7 +23,7 @@ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. SUBDIRS = includes -EXTRA_DIST = CMakeLists.txt sfparse/COPYING +EXTRA_DIST = CMakeLists.txt sfparse/COPYING config.cmake.in AM_CFLAGS = $(WARNCFLAGS) $(DEBUGCFLAGS) $(EXTRACFLAG) AM_CPPFLAGS = -I$(srcdir)/includes -I$(builddir)/includes -DBUILDING_NGHTTP3 diff --git a/lib/config.cmake.in b/lib/config.cmake.in new file mode 100644 index 0000000..fc691dd --- /dev/null +++ b/lib/config.cmake.in @@ -0,0 +1,3 @@ +include(CMakeFindDependencyMacro) + +include("${CMAKE_CURRENT_LIST_DIR}/@NGHTTP3_TARGETS_EXPORT_NAME@.cmake")