Skip to content

Commit c11ebdc

Browse files
Changming Sunguschmue
authored andcommitted
Add custom vcpkg ports (#23456)
### Description Add custom vcpkg ports for the following packages: 1. cpuinfo 2. onnx 3. pthreadpool 4. xnnpack Because: - The cpuinfo/pthreadpool/xnnpack packages in the official vcpkg repo are too old. - XNNPack's version is updated from 2022-12-22 to 2025-01-17 - CPUINFO's version is updated from 2022-07-19 to 2024-12-09 - Pthreadpool's version is updated from 2020-04-10 to 2024-12-17, and the source code location is changed from https://github.com/Maratyszcza/pthreadpool to https://github.com/google/pthreadpool - The onnx package in the official repo requires building python from source, which then requires a lot of additional dependencies to be installed. This PR removes them. - Added a disable_gcc_warning.patch file for xnnpack for addressing the issue reported in google/XNNPACK#7650. I will remove this patch when the issue is fully addressed. - Added " -DONNX_DISABLE_STATIC_REGISTRATION=ON" to ONNX's config options. -
1 parent 08dc9a1 commit c11ebdc

File tree

13 files changed

+552
-0
lines changed

13 files changed

+552
-0
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# On Windows, we can get a cpuinfo.dll, but it exports no symbols.
2+
if(VCPKG_TARGET_IS_WINDOWS)
3+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
4+
endif()
5+
6+
vcpkg_from_github(
7+
OUT_SOURCE_PATH SOURCE_PATH
8+
REPO pytorch/cpuinfo
9+
REF 8a1772a0c5c447df2d18edf33ec4603a8c9c04a6
10+
SHA512 b94ccbfa886221d6bb16513d074675af0a72928a9dd9485dcacdc1124a8a60aacbbe91913a1579e766dfb024f0be1d52eeead40342004ff0238a8b94a095ed08
11+
HEAD_REF master
12+
)
13+
14+
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
15+
FEATURES
16+
tools CPUINFO_BUILD_TOOLS
17+
)
18+
19+
set(LINK_OPTIONS "")
20+
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
21+
list(APPEND LINK_OPTIONS -DCPUINFO_LIBRARY_TYPE=shared)
22+
else()
23+
list(APPEND LINK_OPTIONS -DCPUINFO_LIBRARY_TYPE=static)
24+
endif()
25+
26+
if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
27+
list(APPEND LINK_OPTIONS -DCPUINFO_RUNTIME_TYPE=shared)
28+
else()
29+
list(APPEND LINK_OPTIONS -DCPUINFO_RUNTIME_TYPE=static)
30+
endif()
31+
32+
vcpkg_cmake_configure(
33+
SOURCE_PATH "${SOURCE_PATH}"
34+
OPTIONS
35+
${FEATURE_OPTIONS}
36+
${LINK_OPTIONS}
37+
-DCPUINFO_BUILD_UNIT_TESTS=OFF
38+
-DCPUINFO_BUILD_MOCK_TESTS=OFF
39+
-DCPUINFO_BUILD_BENCHMARKS=OFF
40+
OPTIONS_DEBUG
41+
-DCPUINFO_LOG_LEVEL=debug
42+
OPTIONS_RELEASE
43+
-DCPUINFO_LOG_LEVEL=default
44+
)
45+
vcpkg_cmake_install()
46+
vcpkg_cmake_config_fixup()
47+
vcpkg_copy_pdbs()
48+
vcpkg_fixup_pkgconfig() # pkg_check_modules(libcpuinfo)
49+
50+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
51+
52+
if("tools" IN_LIST FEATURES)
53+
set(additional_tools "")
54+
if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/cpuid-dump${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
55+
list(APPEND additional_tools "cpuid-dump")
56+
endif()
57+
vcpkg_copy_tools(
58+
TOOL_NAMES cache-info cpu-info isa-info ${additional_tools}
59+
AUTO_CLEAN
60+
)
61+
endif()
62+
63+
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "cpuinfo",
3+
"version-date": "2024-12-09",
4+
"port-version": 3,
5+
"description": "CPU INFOrmation library (x86/x86-64/ARM/ARM64, Linux/Windows/Android/macOS/iOS)",
6+
"homepage": "https://github.com/pytorch/cpuinfo",
7+
"license": "BSD-2-Clause",
8+
"supports": "!(uwp & arm32)",
9+
"dependencies": [
10+
{
11+
"name": "vcpkg-cmake",
12+
"host": true
13+
},
14+
{
15+
"name": "vcpkg-cmake-config",
16+
"host": true
17+
}
18+
],
19+
"features": {
20+
"tools": {
21+
"description": "Build cpuinfo command-line tools",
22+
"supports": "!uwp"
23+
}
24+
}
25+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 4dd56b6..2ff3e29 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -65,6 +65,27 @@ endif()
6+
7+
include(GNUInstallDirs)
8+
9+
+# install protobuf files
10+
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-data.proto
11+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-data.proto3
12+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-ml.proto
13+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-ml.proto3
14+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-operators-ml.proto
15+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx-operators-ml.proto3
16+
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnx
17+
+)
18+
+# install python files
19+
+if(BUILD_ONNX_PYTHON)
20+
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_data_pb.py
21+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_data_pb2.py
22+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_ml_pb2.py
23+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_operators_ml_pb2.py
24+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_operators_pb.py
25+
+ ${CMAKE_CURRENT_BINARY_DIR}/onnx/onnx_pb.py
26+
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/onnx
27+
+ )
28+
+endif()
29+
+
30+
set(ONNX_ROOT ${PROJECT_SOURCE_DIR})
31+
32+
# Read ONNX version
33+
@@ -116,7 +137,8 @@ endif()
34+
# find_package Python has replaced PythonInterp and PythonLibs since cmake 3.12
35+
# Use the following command in the future; now this is only compatible with the latest pybind11
36+
# find_package(Python ${PY_VERSION} COMPONENTS Interpreter Development REQUIRED)
37+
-find_package(PythonInterp ${PY_VERSION} REQUIRED)
38+
+find_package(Python3 ${PY_VERSION} COMPONENTS Interpreter REQUIRED)
39+
+set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
40+
if(BUILD_ONNX_PYTHON)
41+
find_package(PythonLibs ${PY_VERSION})
42+
endif()
43+
@@ -434,6 +456,7 @@ target_link_libraries(onnx PUBLIC onnx_proto)
44+
add_onnx_global_defines(onnx)
45+
46+
if(BUILD_ONNX_PYTHON)
47+
+ find_package(Python3 ${PY_VERSION} COMPONENTS Development REQUIRED)
48+
if("${PY_EXT_SUFFIX}" STREQUAL "")
49+
if(MSVC)
50+
set(PY_EXT_SUFFIX ".pyd")
51+
@@ -452,10 +475,14 @@ if(BUILD_ONNX_PYTHON)
52+
target_include_directories(onnx_cpp2py_export PRIVATE
53+
$<BUILD_INTERFACE:${ONNX_ROOT}>
54+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
55+
- $<INSTALL_INTERFACE:include>)
56+
+ ${Python3_INCLUDE_DIRS})
57+
+ target_link_directories(onnx_cpp2py_export PRIVATE
58+
+ ${Python3_LIBRARY_DIRS})
59+
+ target_link_libraries(onnx_cpp2py_export PRIVATE
60+
+ ${Python3_LIBRARIES})
61+
62+
# pybind11 is a header only lib
63+
- find_package(pybind11 2.2 CONFIG)
64+
+ find_package(pybind11 2.2 CONFIG REQUIRED)
65+
if(NOT pybind11_FOUND)
66+
if(EXISTS "${ONNX_ROOT}/third_party/pybind11/include/pybind11/pybind11.h")
67+
add_subdirectory("${ONNX_ROOT}/third_party/pybind11")
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index d81ac1d..9f97998 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -149,6 +149,7 @@ if(ONNX_BUILD_TESTS)
6+
set(googletest_STATIC_LIBRARIES GTest::gtest)
7+
endif()
8+
9+
+find_package(protobuf CONFIG REQUIRED)
10+
if((ONNX_USE_LITE_PROTO AND TARGET protobuf::libprotobuf-lite) OR ((NOT ONNX_USE_LITE_PROTO) AND TARGET protobuf::libprotobuf))
11+
# Sometimes we need to use protoc compiled for host architecture while linking
12+
# libprotobuf against target architecture. See https://github.com/caffe2/caffe
13+
diff --git a/cmake/ONNXConfig.cmake.in b/cmake/ONNXConfig.cmake.in
14+
index d588f8a..dbd4398 100644
15+
--- a/cmake/ONNXConfig.cmake.in
16+
+++ b/cmake/ONNXConfig.cmake.in
17+
@@ -6,9 +6,8 @@
18+
# library version information
19+
set(ONNX_VERSION "@ONNX_VERSION@")
20+
21+
-list(APPEND CMAKE_PREFIX_PATH "@PROTOBUF_DIR@")
22+
-set(Protobuf_INCLUDE_DIR "@PROTOBUF_INCLUDE_DIR@")
23+
-find_package(Protobuf REQUIRED)
24+
+include(CMakeFindDependencyMacro)
25+
+find_dependency(protobuf CONFIG)
26+
27+
# import targets
28+
include ("${CMAKE_CURRENT_LIST_DIR}/ONNXTargets.cmake")
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
2+
3+
vcpkg_from_github(
4+
OUT_SOURCE_PATH SOURCE_PATH
5+
REPO onnx/onnx
6+
REF "v${VERSION}"
7+
SHA512 5a18e2b19ec9c18c8b115fb7e12ed98eddaa581c95f15c4dd420cd6c86e7caa04f9a393da589e76b89cf9b3544abd3749a8c77c2446782f37502eb74e9b1f661
8+
PATCHES
9+
fix-cmakelists.patch
10+
fix-dependency-protobuf.patch
11+
)
12+
13+
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_STATIC_RUNTIME)
14+
15+
# ONNX_USE_PROTOBUF_SHARED_LIBS: find the library and check its file extension
16+
find_library(PROTOBUF_LIBPATH NAMES protobuf PATHS "${CURRENT_INSTALLED_DIR}/bin" "${CURRENT_INSTALLED_DIR}/lib" REQUIRED)
17+
get_filename_component(PROTOBUF_LIBNAME "${PROTOBUF_LIBPATH}" NAME)
18+
19+
set(USE_PROTOBUF_SHARED OFF)
20+
21+
22+
23+
# Like protoc, python is required for codegen.
24+
vcpkg_find_acquire_program(PYTHON3)
25+
26+
# PATH for .bat scripts so it can find 'python'
27+
get_filename_component(PYTHON_DIR "${PYTHON3}" PATH)
28+
vcpkg_add_to_path(PREPEND "${PYTHON_DIR}")
29+
30+
vcpkg_cmake_configure(
31+
SOURCE_PATH "${SOURCE_PATH}"
32+
OPTIONS
33+
${FEATURE_OPTIONS}
34+
-DPython3_EXECUTABLE=${PYTHON3}
35+
-DONNX_ML=ON
36+
-DONNX_GEN_PB_TYPE_STUBS=ON
37+
-DONNX_USE_PROTOBUF_SHARED_LIBS=${USE_PROTOBUF_SHARED}
38+
-DONNX_USE_LITE_PROTO=OFF
39+
-DONNX_USE_MSVC_STATIC_RUNTIME=${USE_STATIC_RUNTIME}
40+
-DONNX_BUILD_TESTS=OFF
41+
-DONNX_BUILD_BENCHMARKS=OFF
42+
-DONNX_DISABLE_STATIC_REGISTRATION=ON
43+
MAYBE_UNUSED_VARIABLES
44+
ONNX_USE_MSVC_STATIC_RUNTIME
45+
)
46+
47+
vcpkg_cmake_install()
48+
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ONNX)
49+
50+
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
51+
52+
file(REMOVE_RECURSE
53+
"${CURRENT_PACKAGES_DIR}/debug/include"
54+
"${CURRENT_PACKAGES_DIR}/debug/share"
55+
# the others are empty
56+
"${CURRENT_PACKAGES_DIR}/include/onnx/backend"
57+
"${CURRENT_PACKAGES_DIR}/include/onnx/bin"
58+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/controlflow"
59+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/generator"
60+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/image"
61+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/logical"
62+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/math"
63+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/nn"
64+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/object_detection"
65+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/optional"
66+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/quantization"
67+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/reduction"
68+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/rnn"
69+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/sequence"
70+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/text"
71+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/traditionalml"
72+
"${CURRENT_PACKAGES_DIR}/include/onnx/defs/training"
73+
"${CURRENT_PACKAGES_DIR}/include/onnx/examples"
74+
"${CURRENT_PACKAGES_DIR}/include/onnx/frontend"
75+
"${CURRENT_PACKAGES_DIR}/include/onnx/onnx_cpp2py_export"
76+
"${CURRENT_PACKAGES_DIR}/include/onnx/test"
77+
"${CURRENT_PACKAGES_DIR}/include/onnx/tools"
78+
"${CURRENT_PACKAGES_DIR}/include/onnx/onnx_ml"
79+
"${CURRENT_PACKAGES_DIR}/include/onnx/onnx_data"
80+
"${CURRENT_PACKAGES_DIR}/include/onnx/onnx_operators_ml"
81+
"${CURRENT_PACKAGES_DIR}/include/onnx/reference/ops"
82+
"${CURRENT_PACKAGES_DIR}/include/onnx/reference"
83+
)

cmake/vcpkg-ports/onnx/vcpkg.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "onnx",
3+
"version-semver": "1.17.0",
4+
"description": "Open standard for machine learning interoperability",
5+
"homepage": "https://onnx.ai",
6+
"license": "Apache-2.0",
7+
"supports": "!uwp",
8+
"dependencies": [
9+
"protobuf",
10+
{
11+
"name": "protobuf",
12+
"host": true
13+
},
14+
{
15+
"name": "vcpkg-cmake",
16+
"host": true
17+
},
18+
{
19+
"name": "vcpkg-cmake-config",
20+
"host": true
21+
}
22+
]
23+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index f06aada..3c6c6e2 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -31,8 +31,6 @@ IF(CCACHE_BINARY)
6+
ENDIF()
7+
8+
# ---[ Options.
9+
-SET(PTHREADPOOL_LIBRARY_TYPE "default" CACHE STRING "Type of library (shared, static, or default) to build")
10+
-SET_PROPERTY(CACHE PTHREADPOOL_LIBRARY_TYPE PROPERTY STRINGS default static shared)
11+
OPTION(PTHREADPOOL_ALLOW_DEPRECATED_API "Enable deprecated API functions" ON)
12+
SET(PTHREADPOOL_SYNC_PRIMITIVE "default" CACHE STRING "Synchronization primitive (condvar, futex, gcd, event, or default) for worker threads")
13+
SET_PROPERTY(CACHE PTHREADPOOL_SYNC_PRIMITIVE PROPERTY STRINGS default condvar futex gcd event)
14+
@@ -41,7 +39,7 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?)$")
15+
ELSE()
16+
OPTION(PTHREADPOOL_ENABLE_FASTPATH "Enable fast path using atomic decrement instead of atomic compare-and-swap" OFF)
17+
ENDIF()
18+
-IF("${CMAKE_SOURCE_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}")
19+
+IF(FALSE)
20+
OPTION(PTHREADPOOL_BUILD_TESTS "Build pthreadpool unit tests" ON)
21+
OPTION(PTHREADPOOL_BUILD_BENCHMARKS "Build pthreadpool micro-benchmarks" ON)
22+
ELSE()
23+
@@ -67,7 +65,8 @@ MACRO(PTHREADPOOL_TARGET_ENABLE_CXX11 target)
24+
ENDMACRO()
25+
26+
# ---[ Download deps
27+
-IF(NOT DEFINED FXDIV_SOURCE_DIR)
28+
+find_path(FXDIV_INCLUDE_DIRS "fxdiv.h")
29+
+IF(FALSE)
30+
MESSAGE(STATUS "Downloading FXdiv to ${CMAKE_BINARY_DIR}/FXdiv-source (define FXDIV_SOURCE_DIR to avoid it)")
31+
CONFIGURE_FILE(cmake/DownloadFXdiv.cmake "${CMAKE_BINARY_DIR}/FXdiv-download/CMakeLists.txt")
32+
EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
33+
@@ -118,21 +117,13 @@ ELSE()
34+
ENDIF()
35+
36+
ADD_LIBRARY(pthreadpool_interface INTERFACE)
37+
-TARGET_INCLUDE_DIRECTORIES(pthreadpool_interface INTERFACE include)
38+
+TARGET_INCLUDE_DIRECTORIES(pthreadpool_interface INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
39+
IF(NOT PTHREADPOOL_ALLOW_DEPRECATED_API)
40+
TARGET_COMPILE_DEFINITIONS(pthreadpool_interface INTERFACE PTHREADPOOL_NO_DEPRECATED_API=1)
41+
ENDIF()
42+
INSTALL(FILES include/pthreadpool.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
43+
44+
-IF(PTHREADPOOL_LIBRARY_TYPE STREQUAL "default")
45+
- ADD_LIBRARY(pthreadpool ${PTHREADPOOL_SRCS})
46+
-ELSEIF(PTHREADPOOL_LIBRARY_TYPE STREQUAL "shared")
47+
- ADD_LIBRARY(pthreadpool SHARED ${PTHREADPOOL_SRCS})
48+
-ELSEIF(PTHREADPOOL_LIBRARY_TYPE STREQUAL "static")
49+
- ADD_LIBRARY(pthreadpool STATIC ${PTHREADPOOL_SRCS})
50+
-ELSE()
51+
- MESSAGE(FATAL_ERROR "Unsupported library type ${PTHREADPOOL_LIBRARY_TYPE}")
52+
-ENDIF()
53+
+ADD_LIBRARY(pthreadpool ${PTHREADPOOL_SRCS})
54+
55+
IF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "condvar")
56+
TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=0)
57+
@@ -181,18 +172,22 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
58+
ENDIF()
59+
60+
# ---[ Configure FXdiv
61+
-IF(NOT TARGET fxdiv)
62+
+IF(FALSE)
63+
SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
64+
SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
65+
ADD_SUBDIRECTORY(
66+
"${FXDIV_SOURCE_DIR}"
67+
"${CMAKE_BINARY_DIR}/FXdiv")
68+
ENDIF()
69+
-TARGET_LINK_LIBRARIES(pthreadpool PRIVATE fxdiv)
70+
+TARGET_INCLUDE_DIRECTORIES(pthreadpool PRIVATE ${FXDIV_INCLUDE_DIRS})
71+
72+
-INSTALL(TARGETS pthreadpool
73+
+INSTALL(TARGETS pthreadpool pthreadpool_interface
74+
+ EXPORT unofficial-pthreadpool-config
75+
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
76+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
77+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
78+
+install(EXPORT unofficial-pthreadpool-config NAMESPACE unofficial::
79+
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-${PROJECT_NAME}) # share/unofficial-pthreadpool
80+
81+
IF(PTHREADPOOL_BUILD_TESTS)
82+
# ---[ Build google test

0 commit comments

Comments
 (0)