Skip to content

Commit d9e62b5

Browse files
authored
[baresip-libre] Add new port (#31735)
* libre 3.2.0 * update hash * vcpkg_cmake_config_fixup: add PACKAGE_NAME * update hash * update usage: See example usage from testcode here: https://github.com/baresip/re/blob/main/test/CMakeLists.txt#L62 * update hash * patch from Kai * update hash * patch: fix Libs (thanks Kai) * update hash * update patch * update hash * patch: fix bug with libre::re_shared (thanks Kai) * update hash * rename from libre to baresip-libre * update hash * delete libre.json
1 parent c799d5e commit d9e62b5

File tree

6 files changed

+226
-0
lines changed

6 files changed

+226
-0
lines changed

Diff for: ports/baresip-libre/portfile.cmake

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
if(VCPKG_TARGET_IS_WINDOWS)
2+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
3+
endif()
4+
5+
vcpkg_from_github(
6+
OUT_SOURCE_PATH SOURCE_PATH
7+
REPO baresip/re
8+
REF "v${VERSION}"
9+
SHA512 fce61b96fd4a330c82045c470486e90e1128e242b7c311e9c6002d9752b775bbc430bf256de85f63841172c60630be3aa91e11bfa1501c71599d213701c6b459
10+
HEAD_REF main
11+
PATCHES
12+
wip.patch
13+
)
14+
15+
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBRE_BUILD_SHARED)
16+
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBRE_BUILD_STATIC)
17+
18+
vcpkg_cmake_configure(
19+
SOURCE_PATH "${SOURCE_PATH}"
20+
OPTIONS
21+
-DLIBRE_BUILD_SHARED=${LIBRE_BUILD_SHARED}
22+
-DLIBRE_BUILD_STATIC=${LIBRE_BUILD_STATIC}
23+
-DCMAKE_DISABLE_FIND_PACKAGE_Backtrace=ON
24+
-DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=ON
25+
-DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON
26+
)
27+
vcpkg_cmake_install()
28+
vcpkg_fixup_pkgconfig()
29+
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libre)
30+
31+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
32+
33+
file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
34+
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

Diff for: ports/baresip-libre/usage

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
baresip-libre provides CMake targets:
2+
3+
find_package(libre CONFIG REQUIRED)
4+
target_link_libraries(main PRIVATE libre::libre)
5+

Diff for: ports/baresip-libre/vcpkg.json

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "baresip-libre",
3+
"version": "3.2.0",
4+
"description": "Generic library for real-time communications with async IO support",
5+
"homepage": "https://github.com/baresip/re",
6+
"license": "BSD-3-Clause",
7+
"supports": "!uwp",
8+
"dependencies": [
9+
"openssl",
10+
{
11+
"name": "vcpkg-cmake",
12+
"host": true
13+
},
14+
{
15+
"name": "vcpkg-cmake-config",
16+
"host": true
17+
},
18+
"zlib"
19+
]
20+
}

Diff for: ports/baresip-libre/wip.patch

+154
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index f85cb1e..b364219 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -93,7 +93,7 @@ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
6+
endif()
7+
8+
set(re_DIR ${CMAKE_CURRENT_LIST_DIR}/cmake)
9+
-find_package(re CONFIG REQUIRED)
10+
+include("${CMAKE_CURRENT_LIST_DIR}/cmake/re-config.cmake")
11+
12+
list(APPEND RE_DEFINITIONS
13+
-DVERSION="${PROJECT_VERSION_FULL}"
14+
@@ -642,7 +642,7 @@ if(WIN32)
15+
dbghelp
16+
)
17+
else()
18+
- list(APPEND LINKLIBS -lm)
19+
+ list(APPEND LINKLIBS m)
20+
endif()
21+
22+
if(UNIX)
23+
@@ -668,7 +668,7 @@ target_include_directories(re-objs PRIVATE
24+
${OPENSSL_INCLUDE_DIR} ${ZLIB_INCLUDE_DIRS})
25+
target_include_directories(re-objs PUBLIC
26+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
27+
- $<INSTALL_INTERFACE:include>
28+
+ $<INSTALL_INTERFACE:include> # pointless, object libs don't get installed.
29+
)
30+
31+
32+
@@ -697,11 +697,14 @@ endif()
33+
if(LIBRE_BUILD_STATIC)
34+
list(APPEND RE_INSTALL_TARGETS re)
35+
add_library(re STATIC $<TARGET_OBJECTS:re-objs>)
36+
- target_link_libraries(re PUBLIC ${LINKLIBS})
37+
+ target_link_libraries(re PRIVATE ${LINKLIBS})
38+
add_library(libre::re ALIAS re)
39+
40+
if(MSVC)
41+
set_target_properties(re PROPERTIES OUTPUT_NAME "re-static")
42+
+ if(NOT LIBRE_BUILD_SHARED)
43+
+ set(PC_LIBNAME "re-static")
44+
+ endif()
45+
endif()
46+
endif()
47+
48+
@@ -714,6 +717,28 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
49+
add_subdirectory(packaging)
50+
endif()
51+
52+
+if(NOT PC_LIBNAME)
53+
+ set(PC_LIBNAME "re")
54+
+endif()
55+
+set(PC_REQUIRES "")
56+
+set(PC_LINKLIBS "")
57+
+foreach(item IN LISTS LINKLIBS)
58+
+ if(item STREQUAL "Threads::Threads")
59+
+ list(APPEND PC_LINKLIBS ${CMAKE_THREADS_LIBS_INIT})
60+
+ elseif(item STREQUAL "OpenSSL::Crypto")
61+
+ list(APPEND PC_REQUIRES "libcrypto")
62+
+ elseif(item STREQUAL "OpenSSL::SSL")
63+
+ list(APPEND PC_REQUIRES "libssl")
64+
+ elseif(item STREQUAL "ZLIB::ZLIB")
65+
+ list(APPEND PC_REQUIRES "zlib")
66+
+ elseif(item MATCHES "^-|/")
67+
+ list(APPEND PC_LINKLIBS "${item}")
68+
+ else()
69+
+ list(APPEND PC_LINKLIBS "-l${item}")
70+
+ endif()
71+
+endforeach()
72+
+list(JOIN PC_LINKLIBS " " PC_LINKLIBS)
73+
+list(JOIN PC_REQUIRES " " PC_REQUIRES)
74+
configure_file(packaging/libre.pc.in libre.pc @ONLY)
75+
76+
77+
@@ -725,6 +750,9 @@ configure_file(packaging/libre.pc.in libre.pc @ONLY)
78+
79+
install(TARGETS ${RE_INSTALL_TARGETS}
80+
EXPORT libre
81+
+ RUNTIME
82+
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
83+
+ COMPONENT Libraries
84+
LIBRARY
85+
DESTINATION ${CMAKE_INSTALL_LIBDIR}
86+
COMPONENT Libraries
87+
@@ -743,7 +771,9 @@ install(FILES ${HEADERS}
88+
89+
install(EXPORT libre
90+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libre
91+
+ FILE libre-targets.cmake
92+
NAMESPACE libre::
93+
+ COMPONENT Development
94+
)
95+
96+
if(LIBRE_BUILD_SHARED)
97+
@@ -755,12 +785,8 @@ if(LIBRE_BUILD_SHARED)
98+
)
99+
endif()
100+
101+
-install(FILES cmake/re-config.cmake
102+
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/re
103+
- COMPONENT Development
104+
-)
105+
-
106+
-install(FILES cmake/libre-config.cmake
107+
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/libre-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake/libre-config.cmake" @ONLY)
108+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake/libre-config.cmake"
109+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libre
110+
COMPONENT Development
111+
)
112+
diff --git a/cmake/libre-config.cmake b/cmake/libre-config.cmake
113+
index 0965b84..af7f2de 100644
114+
--- a/cmake/libre-config.cmake
115+
+++ b/cmake/libre-config.cmake
116+
@@ -1 +1,23 @@
117+
-include("${CMAKE_CURRENT_LIST_DIR}/libre.cmake")
118+
+if("@LIBRE_BUILD_STATIC@")
119+
+ include(CMakeFindDependencyMacro)
120+
+ find_dependency(Threads)
121+
+ if("@USE_OPENSSL@")
122+
+ find_dependency(OpenSSL)
123+
+ endif()
124+
+ if("@ZLIB_FOUND@")
125+
+ find_dependency(ZLIB)
126+
+ endif()
127+
+endif()
128+
+
129+
+include("${CMAKE_CURRENT_LIST_DIR}/libre-targets.cmake")
130+
+
131+
+# convenience target libre::libre for uniform usage
132+
+if(NOT TARGET libre::libre)
133+
+ if(TARGET libre::re_shared AND (BUILD_SHARED_LIBS OR NOT TARGET libre::re))
134+
+ add_library(libre::libre INTERFACE IMPORTED)
135+
+ set_target_properties(libre::libre PROPERTIES INTERFACE_LINK_LIBRARIES libre::re_shared)
136+
+ elseif(TARGET libre::re AND (NOT BUILD_SHARED_LIBS OR NOT TARGET libre::re_shared))
137+
+ add_library(libre::libre INTERFACE IMPORTED)
138+
+ set_target_properties(libre::libre PROPERTIES INTERFACE_LINK_LIBRARIES libre::re)
139+
+ endif()
140+
+endif()
141+
diff --git a/packaging/libre.pc.in b/packaging/libre.pc.in
142+
index 5817066..2df8f6c 100644
143+
--- a/packaging/libre.pc.in
144+
+++ b/packaging/libre.pc.in
145+
@@ -7,6 +7,7 @@ Name: libre
146+
Description: @CMAKE_PROJECT_DESCRIPTION@
147+
Version: @PROJECT_VERSION@
148+
URL: @CMAKE_PROJECT_HOMEPAGE_URL@
149+
-Libs: -L${libdir} -lre
150+
-Libs.private: -L${libdir} -lre -ldl -lssl -lcrypto -lz -lpthread
151+
+Libs: -L${libdir} -l@PC_LIBNAME@
152+
+Libs.private: @PC_LINKLIBS@
153+
+Requires.private: @PC_REQUIRES@
154+
Cflags: -I${includedir}

Diff for: versions/b-/baresip-libre.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"versions": [
3+
{
4+
"git-tree": "64ff48f8f4f42472f614ddece58f1249217d252c",
5+
"version": "3.2.0",
6+
"port-version": 0
7+
}
8+
]
9+
}

Diff for: versions/baseline.json

+4
Original file line numberDiff line numberDiff line change
@@ -4480,6 +4480,10 @@
44804480
"baseline": "2.1.1",
44814481
"port-version": 0
44824482
},
4483+
"baresip-libre": {
4484+
"baseline": "3.2.0",
4485+
"port-version": 0
4486+
},
44834487
"libredwg": {
44844488
"baseline": "0.12.5.5178",
44854489
"port-version": 1

0 commit comments

Comments
 (0)