diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b09122e..f67cae38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,29 +97,35 @@ if (NOT MSVC) find_package(Restinio REQUIRED) # llhttp - find_path(LLHTTP_INCLUDE_DIR llhttp.h) - find_library(LLHTTP_LIBRARY NAMES llhttp libllhttp) - if (LLHTTP_INCLUDE_DIR AND LLHTTP_LIBRARY) - message(STATUS "Found llhttp ${LLHTTP_INCLUDE_DIR} ${LLHTTP_LIBRARY}") - add_library(llhttp_static STATIC IMPORTED) - set_target_properties(llhttp_static PROPERTIES - IMPORTED_LOCATION ${LLHTTP_LIBRARY} - INTERFACE_INCLUDE_DIRECTORIES ${LLHTTP_INCLUDE_DIR} - ) - set(llhttp_target llhttp_static) + pkg_search_module(LLHTTP IMPORTED_TARGET llhttp libllhttp) + if (LLHTTP_FOUND) + message(STATUS "Found llhttp ${LLHTTP_INCLUDE_DIRS}") + set(llhttp_target PkgConfig::LLHTTP) else() - FetchContent_Declare(llhttp-local URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v9.2.1.tar.gz") - if (BUILD_SHARED_LIBS) - set(BUILD_SHARED_LIBS ON CACHE INTERNAL "") - else() - set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "") - set(BUILD_STATIC_LIBS ON CACHE INTERNAL "") - endif() - FetchContent_MakeAvailable(llhttp-local) - if (BUILD_SHARED_LIBS) - set(llhttp_target llhttp_shared) - else() + find_path(LLHTTP_INCLUDE_DIR llhttp.h) + find_library(LLHTTP_LIBRARY NAMES llhttp libllhttp) + if (LLHTTP_INCLUDE_DIR AND LLHTTP_LIBRARY) + message(STATUS "Found llhttp ${LLHTTP_INCLUDE_DIR} ${LLHTTP_LIBRARY}") + add_library(llhttp_static STATIC IMPORTED) + set_target_properties(llhttp_static PROPERTIES + IMPORTED_LOCATION ${LLHTTP_LIBRARY} + INTERFACE_INCLUDE_DIRECTORIES ${LLHTTP_INCLUDE_DIR} + ) set(llhttp_target llhttp_static) + else() + FetchContent_Declare(llhttp-local URL "https://github.com/nodejs/llhttp/archive/refs/tags/release/v9.2.1.tar.gz") + if (BUILD_SHARED_LIBS) + set(BUILD_SHARED_LIBS ON CACHE INTERNAL "") + else() + set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "") + set(BUILD_STATIC_LIBS ON CACHE INTERNAL "") + endif() + FetchContent_MakeAvailable(llhttp-local) + if (BUILD_SHARED_LIBS) + set(llhttp_target llhttp_shared) + else() + set(llhttp_target llhttp_static) + endif() endif() endif() set(http_lib "-lllhttp")