mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-23 03:05:48 +03:00
207 lines
6.1 KiB
Diff
207 lines
6.1 KiB
Diff
Patch-Source: https://github.com/nodejs/llhttp/pull/125
|
|
|
|
From 56a26d66afc9a918e68c96a7d3eeb807384ecd27 Mon Sep 17 00:00:00 2001
|
|
From: Jack Liar <15205739+JackLiar@users.noreply.github.com>
|
|
Date: Wed, 7 Jul 2021 20:10:14 +0800
|
|
Subject: [PATCH] enhance CMakeLists.txt
|
|
|
|
---
|
|
CMakeLists.txt | 116 +++++++++++++++++++++++++++++++++++++------------
|
|
1 file changed, 89 insertions(+), 27 deletions(-)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 41d2000..c234222 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -1,53 +1,115 @@
|
|
cmake_minimum_required(VERSION 3.5.1)
|
|
cmake_policy(SET CMP0069 NEW)
|
|
|
|
-project(llhttp C)
|
|
+project(llhttp VERSION 6.0.5)
|
|
+include(GNUInstallDirs)
|
|
|
|
set(CMAKE_C_STANDARD 99)
|
|
|
|
+# By default build in relwithdebinfo type, supports both lowercase and uppercase
|
|
+if(NOT CMAKE_CONFIGURATION_TYPES)
|
|
+ set(allowableBuileTypes DEBUG RELEASE RELWITHDEBINFO MINSIZEREL)
|
|
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${allowableBuileTypes}")
|
|
+ if(NOT CMAKE_BUILD_TYPE)
|
|
+ set(CMAKE_BUILD_TYPE RELWITHDEBINFO CACHE STRING "" FORCE)
|
|
+ else()
|
|
+ string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
|
|
+ if(NOT CMAKE_BUILD_TYPE IN_LIST allowableBuileTypes)
|
|
+ message(FATEL_ERROR "Invalid build type: ${CMAKE_BUILD_TYPE}")
|
|
+ endif()
|
|
+ endif()
|
|
+endif()
|
|
+
|
|
#
|
|
# Options
|
|
#
|
|
# Generic option
|
|
-option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so) instead of static ones (.lib/.a)" OFF)
|
|
+option(BUILD_SHARED_LIBS "Build shared libraries (.dll/.so)" ON)
|
|
+option(BUILD_STATIC_LIBS "Build static libraries (.lib/.a)" OFF)
|
|
|
|
# Source code
|
|
set(LLHTTP_SOURCES
|
|
- src/llhttp.c
|
|
- src/http.c
|
|
- src/api.c
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/llhttp.c
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/http.c
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/api.c
|
|
)
|
|
|
|
set(LLHTTP_HEADERS
|
|
- include/llhttp.h
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/llhttp.h
|
|
)
|
|
|
|
-add_library(llhttp)
|
|
-add_library(llhttp::llhttp ALIAS llhttp)
|
|
+configure_file(
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/libllhttp.pc.in
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/libllhttp.pc
|
|
+ @ONLY
|
|
+)
|
|
|
|
-target_sources(llhttp PRIVATE ${LLHTTP_SOURCES} ${LLHTTP_HEADERS})
|
|
+function(config_library target)
|
|
+ target_sources(${target} PRIVATE ${LLHTTP_SOURCES} ${LLHTTP_HEADERS})
|
|
|
|
-# On windows with Visual Studio, add a debug postfix so that release
|
|
-# and debug libraries can coexist.
|
|
-if(MSVC)
|
|
- set(CMAKE_DEBUG_POSTFIX "d")
|
|
-endif()
|
|
+ target_include_directories(${target} PRIVATE
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
+ )
|
|
|
|
-target_include_directories(llhttp PUBLIC
|
|
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
- $<INSTALL_INTERFACE:include>
|
|
-)
|
|
+ set_target_properties(${target} PROPERTIES
|
|
+ OUTPUT_NAME llhttp
|
|
+ VERSION ${PROJECT_VERSION}
|
|
+ SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
|
+ PUBLIC_HEADER ${LLHTTP_HEADERS}
|
|
+ )
|
|
|
|
-set_target_properties(llhttp PROPERTIES PUBLIC_HEADER ${LLHTTP_HEADERS})
|
|
+ install(TARGETS ${target}
|
|
+ EXPORT llhttp
|
|
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
+ )
|
|
|
|
-install(TARGETS llhttp
|
|
- EXPORT llhttp
|
|
- ARCHIVE DESTINATION lib
|
|
- PUBLIC_HEADER DESTINATION include/
|
|
-)
|
|
+ install(FILES
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/libllhttp.pc
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
|
+ )
|
|
|
|
-# This is required to work with FetchContent
|
|
-install(EXPORT llhttp
|
|
+ # This is required to work with FetchContent
|
|
+ install(EXPORT llhttp
|
|
FILE llhttp-config.cmake
|
|
NAMESPACE llhttp::
|
|
- DESTINATION lib/cmake/llhttp)
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/llhttp)
|
|
+endfunction(config_library target)
|
|
+
|
|
+if(BUILD_SHARED_LIBS)
|
|
+ add_library(llhttp_shared SHARED
|
|
+ ${llhttp_src}
|
|
+ )
|
|
+ add_library(llhttp::llhttp ALIAS llhttp_shared)
|
|
+ config_library(llhttp_shared)
|
|
+endif()
|
|
+
|
|
+if(BUILD_STATIC_LIBS)
|
|
+ add_library(llhttp_static STATIC
|
|
+ ${llhttp_src}
|
|
+ )
|
|
+ if(BUILD_SHARED_LIBS)
|
|
+ add_library(llhttp::llhttp ALIAS llhttp_shared)
|
|
+ else()
|
|
+ add_library(llhttp::llhttp ALIAS llhttp_static)
|
|
+ endif()
|
|
+ config_library(llhttp_static)
|
|
+endif()
|
|
+
|
|
+# On windows with Visual Studio, add a debug postfix so that release
|
|
+# and debug libraries can coexist.
|
|
+if(MSVC)
|
|
+ set(CMAKE_DEBUG_POSTFIX "d")
|
|
+endif()
|
|
+
|
|
+# Print project configure summary
|
|
+message(STATUS "")
|
|
+message(STATUS "")
|
|
+message(STATUS "Project configure summary:")
|
|
+message(STATUS "")
|
|
+message(STATUS " CMake build type .................: ${CMAKE_BUILD_TYPE}")
|
|
+message(STATUS " Install prefix ...................: ${CMAKE_INSTALL_PREFIX}")
|
|
+message(STATUS " Build shared library .............: ${BUILD_SHARED_LIBS}")
|
|
+message(STATUS " Build static library .............: ${BUILD_STATIC_LIBS}")
|
|
+message(STATUS "")
|
|
From d576df23f2c087da536cec1f380e80db69501d1e Mon Sep 17 00:00:00 2001
|
|
From: Jack Liar <15205739+JackLiar@users.noreply.github.com>
|
|
Date: Wed, 7 Jul 2021 21:03:17 +0800
|
|
Subject: [PATCH] add missing libllhttp.pc.in
|
|
|
|
---
|
|
libllhttp.pc.in | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
create mode 100644 libllhttp.pc.in
|
|
|
|
diff --git a/libllhttp.pc.in b/libllhttp.pc.in
|
|
new file mode 100644
|
|
index 0000000..67d280a
|
|
--- /dev/null
|
|
+++ b/libllhttp.pc.in
|
|
@@ -0,0 +1,10 @@
|
|
+prefix=@CMAKE_INSTALL_PREFIX@
|
|
+exec_prefix=@CMAKE_INSTALL_PREFIX@
|
|
+libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@
|
|
+includedir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@
|
|
+
|
|
+Name: libllhttp
|
|
+Description: Node.js llhttp Library
|
|
+Version: @PROJECT_VERSION@
|
|
+Libs: -L${libdir} -lllhttp
|
|
+Cflags: -I${includedir}
|
|
|
|
Patch-Source: https://github.com/nodejs/llhttp/pull/141
|
|
|
|
From dcaea9bd4e9389b930dca61cb5e6b16be1278665 Mon Sep 17 00:00:00 2001
|
|
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
|
Date: Tue, 14 Dec 2021 09:41:35 -0500
|
|
Subject: [PATCH] Also copy libllhttp.pc.in to release directory
|
|
|
|
---
|
|
Makefile | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
diff --git a/Makefile b/Makefile
|
|
index 283c3d3..47f18e1 100644
|
|
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -51,6 +51,7 @@ release: generate
|
|
cp -rf src/llhttp.gyp release/
|
|
cp -rf src/common.gypi release/
|
|
cp -rf CMakeLists.txt release/
|
|
+ cp -rf libllhttp.pc.in release/
|
|
cp -rf README.md release/
|
|
cp -rf LICENSE-MIT release/
|