aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/jaeger-client-cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/jaeger-client-cpp')
-rw-r--r--vcpkg/ports/jaeger-client-cpp/fix-CMakeLists.patch41
-rw-r--r--vcpkg/ports/jaeger-client-cpp/portfile.cmake65
-rw-r--r--vcpkg/ports/jaeger-client-cpp/vcpkg.json22
3 files changed, 128 insertions, 0 deletions
diff --git a/vcpkg/ports/jaeger-client-cpp/fix-CMakeLists.patch b/vcpkg/ports/jaeger-client-cpp/fix-CMakeLists.patch
new file mode 100644
index 0000000..c35d356
--- /dev/null
+++ b/vcpkg/ports/jaeger-client-cpp/fix-CMakeLists.patch
@@ -0,0 +1,41 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 53e4598..4220910 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -60,7 +60,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND
+ endif()
+
+ hunter_add_package(thrift)
+-find_package(thrift ${hunter_config} REQUIRED)
++find_package(Thrift CONFIG REQUIRED)
+ if(HUNTER_ENABLED)
+ list(APPEND LIBS thrift::thrift_static)
+ else()
+@@ -74,7 +74,7 @@ hunter_add_package(opentracing-cpp)
+ # OpenTracingConfig.cmake file
+ find_package(OpenTracing CONFIG REQUIRED)
+ # Under Windows, link dynamically with OpenTracing
+-if (WIN32)
++if (TARGET OpenTracing::opentracing)
+ list(APPEND LIBS OpenTracing::opentracing)
+ set(OPENTRACING_LIB OpenTracing::opentracing)
+ else()
+@@ -273,6 +273,9 @@ if(JAEGERTRACING_PLUGIN)
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/export.map
+ "{ global: OpenTracingMakeTracerFactory; local: *; };")
+ add_library(jaegertracing_plugin MODULE ${SRC})
++ if (WIN32)
++ target_link_libraries(jaegertracing_plugin PUBLIC Iphlpapi Ws2_32)
++ endif()
+ add_lib_deps(jaegertracing_plugin)
+ target_link_libraries(jaegertracing_plugin PUBLIC
+ -static-libgcc
+@@ -418,7 +421,7 @@ include(GNUInstallDirs)
+ # * <prefix>/lib*/cmake/<PROJECT-NAME>
+ # * <prefix>/lib*/
+ # * <prefix>/include/
+-set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
++set(config_install_dir "${CMAKE_INSTALL_DATAROOTDIR}/jaeger-client-cpp")
+
+ set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
+
diff --git a/vcpkg/ports/jaeger-client-cpp/portfile.cmake b/vcpkg/ports/jaeger-client-cpp/portfile.cmake
new file mode 100644
index 0000000..7210d67
--- /dev/null
+++ b/vcpkg/ports/jaeger-client-cpp/portfile.cmake
@@ -0,0 +1,65 @@
+# Get jaeger-idl from github
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jaegertracing/jaeger-idl
+ REF b9acaab7b20fd4f984225657ffe272799ebdfefb #commit on 2021-08-04
+ SHA512 d136e68e54f39779a48b1c5bc61f81dc06b312120dc8d3788a9c360f89aa924ca4cc074c6515743a930982637f9fca94299000a4b2dca1f9c243d8d9d1c62de2
+ HEAD_REF master
+)
+
+# Create target directory for proxy/stub generation
+file(MAKE_DIRECTORY "${SOURCE_PATH}/data")
+# List of input files
+set(THRIFT_SOURCE_FILES agent.thrift jaeger.thrift sampling.thrift zipkincore.thrift crossdock/tracetest.thrift baggage.thrift dependency.thrift aggregation_validator.thrift)
+
+# Generate proxy/stubs for the input files
+foreach(THRIFT_SOURCE_FILE IN LISTS THRIFT_SOURCE_FILES)
+vcpkg_execute_required_process(
+ COMMAND "${CURRENT_INSTALLED_DIR}/tools/thrift/thrift" --gen cpp:no_skeleton -o "${SOURCE_PATH}/data" ${THRIFT_SOURCE_FILE}
+ WORKING_DIRECTORY "${SOURCE_PATH}/thrift"
+ LOGNAME jaeger-idl-${TARGET_TRIPLET}
+)
+endforeach()
+
+# Save generated proxy/stub target directory
+set(IDL_SOURCE_DIR "${SOURCE_PATH}/data/gen-cpp")
+
+# Get jaeger-client-cpp from github
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO jaegertracing/jaeger-client-cpp
+ REF 277fdd75e413c914bff04d510afafc7f0811a31a #v0.7.0
+ SHA512 5112bda5ec24621044bbcd5393922564de70f4d696b1d4248e889dd3d49e492155bfc88626fea214ce4e4cb50e9a49ea031ddb8efbaafc6f1753a586db534a50
+ HEAD_REF master
+ PATCHES
+ fix-CMakeLists.patch
+)
+
+# Do not use hunter, not testtools and build opentracing plugin
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DHUNTER_ENABLED=0
+ -DBUILD_TESTING=0
+ -DJAEGERTRACING_PLUGIN=0
+ -DJAEGERTRACING_BUILD_EXAMPLES=0
+)
+
+# Copy generated files over to jaeger-client-cpp
+file(GLOB IDL_SOURCE_FILES LIST_DIRECTORIES false "${IDL_SOURCE_DIR}/*")
+file(COPY ${IDL_SOURCE_FILES} DESTINATION "${SOURCE_PATH}/src/jaegertracing/thrift-gen")
+
+# Generate Jaeger client
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup()
+
+# Cleanup unused Debug files
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+# Handle copyright
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+
+# Cleanup
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/jaegertracing/testutils")
diff --git a/vcpkg/ports/jaeger-client-cpp/vcpkg.json b/vcpkg/ports/jaeger-client-cpp/vcpkg.json
new file mode 100644
index 0000000..3dc2b32
--- /dev/null
+++ b/vcpkg/ports/jaeger-client-cpp/vcpkg.json
@@ -0,0 +1,22 @@
+{
+ "name": "jaeger-client-cpp",
+ "version-semver": "0.7.0",
+ "port-version": 2,
+ "description": "C++ OpenTracing binding for Jaeger https://jaegertracing.io/",
+ "homepage": "https://github.com/jaegertracing/jaeger-client-cpp",
+ "supports": "!arm64",
+ "dependencies": [
+ "nlohmann-json",
+ "opentracing",
+ "thrift",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "yaml-cpp"
+ ]
+}