]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/v8/portfile.cmake
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / v8 / portfile.cmake
diff --git a/ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/v8/portfile.cmake b/ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/v8/portfile.cmake
new file mode 100644 (file)
index 0000000..42dc0fb
--- /dev/null
@@ -0,0 +1,198 @@
+\r
+set(pkgver "9.0.257.17")\r
+\r
+set(ENV{DEPOT_TOOLS_WIN_TOOLCHAIN} 0)\r
+\r
+get_filename_component(GIT_PATH ${GIT} DIRECTORY)\r
+vcpkg_find_acquire_program(PYTHON2)\r
+get_filename_component(PYTHON2_PATH ${PYTHON2} DIRECTORY)\r
+vcpkg_find_acquire_program(GN)\r
+get_filename_component(GN_PATH ${GN} DIRECTORY)\r
+vcpkg_find_acquire_program(NINJA)\r
+get_filename_component(NINJA_PATH ${NINJA} DIRECTORY)\r
+\r
+vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin")\r
+vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin")\r
+vcpkg_add_to_path(PREPEND "${GIT_PATH}")\r
+vcpkg_add_to_path(PREPEND "${PYTHON2_PATH}")\r
+vcpkg_add_to_path(PREPEND "${GN_PATH}")\r
+vcpkg_add_to_path(PREPEND "${NINJA_PATH}")\r
+if(WIN32)\r
+  vcpkg_acquire_msys(MSYS_ROOT PACKAGES pkg-config)\r
+  vcpkg_add_to_path("${MSYS_ROOT}/usr/bin")\r
+endif()\r
+\r
+set(VCPKG_KEEP_ENV_VARS PATH;DEPOT_TOOLS_WIN_TOOLCHAIN)\r
+\r
+function(v8_fetch)\r
+  set(oneValueArgs DESTINATION URL REF SOURCE)\r
+  set(multipleValuesArgs PATCHES)\r
+  cmake_parse_arguments(V8 "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN})\r
+\r
+  if(NOT DEFINED V8_DESTINATION)\r
+    message(FATAL_ERROR "DESTINATION must be specified.")\r
+  endif()\r
+\r
+  if(NOT DEFINED V8_URL)\r
+    message(FATAL_ERROR "The git url must be specified")\r
+  endif()\r
+\r
+  if(NOT DEFINED V8_REF)\r
+    message(FATAL_ERROR "The git ref must be specified.")\r
+  endif()\r
+\r
+  if(EXISTS ${V8_SOURCE}/${V8_DESTINATION})\r
+        vcpkg_execute_required_process(\r
+                COMMAND ${GIT} reset --hard\r
+                WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION}\r
+                LOGNAME build-${TARGET_TRIPLET})\r
+  else()\r
+        vcpkg_execute_required_process(\r
+                COMMAND ${GIT} clone --depth 1 ${V8_URL} ${V8_DESTINATION}\r
+                WORKING_DIRECTORY ${V8_SOURCE}\r
+                LOGNAME build-${TARGET_TRIPLET})\r
+        vcpkg_execute_required_process(\r
+                COMMAND ${GIT} fetch --depth 1 origin ${V8_REF}\r
+                WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION}\r
+                LOGNAME build-${TARGET_TRIPLET})\r
+        vcpkg_execute_required_process(\r
+                COMMAND ${GIT} checkout FETCH_HEAD\r
+                WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION}\r
+                LOGNAME build-${TARGET_TRIPLET})\r
+  endif()\r
+  foreach(PATCH ${V8_PATCHES})\r
+        vcpkg_execute_required_process(\r
+                        COMMAND ${GIT} apply ${PATCH}\r
+                        WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION}\r
+                        LOGNAME build-${TARGET_TRIPLET})\r
+  endforeach()\r
+endfunction()\r
+\r
+vcpkg_from_git(\r
+    OUT_SOURCE_PATH SOURCE_PATH\r
+    URL https://chromium.googlesource.com/v8/v8.git\r
+    REF 462fc27a2892702a4d42ffd647789c58ffcee747\r
+    PATCHES ${CURRENT_PORT_DIR}/v8.patch\r
+)\r
+\r
+message(STATUS "Fetching submodules")\r
+v8_fetch(\r
+        DESTINATION build\r
+        URL https://chromium.googlesource.com/chromium/src/build.git\r
+        REF acacc4cc0668cb4dc7f44a3f4430635f438d7478 \r
+        SOURCE ${SOURCE_PATH}\r
+        PATCHES ${CURRENT_PORT_DIR}/build.patch)\r
+v8_fetch(\r
+        DESTINATION third_party/zlib\r
+        URL https://chromium.googlesource.com/chromium/src/third_party/zlib.git\r
+        REF 156be8c52f80cde343088b4a69a80579101b6e67\r
+        SOURCE ${SOURCE_PATH})\r
+v8_fetch(\r
+        DESTINATION base/trace_event/common\r
+        URL https://chromium.googlesource.com/chromium/src/base/trace_event/common.git\r
+        REF dab187b372fc17e51f5b9fad8201813d0aed5129\r
+        SOURCE ${SOURCE_PATH})\r
+v8_fetch(\r
+        DESTINATION third_party/googletest/src\r
+        URL https://chromium.googlesource.com/external/github.com/google/googletest.git\r
+        REF 10b1902d893ea8cc43c69541d70868f91af3646b\r
+        SOURCE ${SOURCE_PATH})\r
+v8_fetch(\r
+        DESTINATION third_party/jinja2\r
+        URL https://chromium.googlesource.com/chromium/src/third_party/jinja2.git\r
+        REF b41863e42637544c2941b574c7877d3e1f663e25\r
+        SOURCE ${SOURCE_PATH})\r
+v8_fetch(\r
+        DESTINATION third_party/markupsafe\r
+        URL https://chromium.googlesource.com/chromium/src/third_party/markupsafe.git\r
+        REF 8f45f5cfa0009d2a70589bcda0349b8cb2b72783\r
+        SOURCE ${SOURCE_PATH})\r
+\r
+vcpkg_execute_required_process(\r
+        COMMAND ${PYTHON2} build/util/lastchange.py -o build/util/LASTCHANGE\r
+        WORKING_DIRECTORY ${SOURCE_PATH}\r
+        LOGNAME build-${TARGET_TRIPLET}\r
+)\r
+\r
+file(MAKE_DIRECTORY "${SOURCE_PATH}/third_party/icu")\r
+configure_file(${CURRENT_PORT_DIR}/zlib.gn ${SOURCE_PATH}/third_party/zlib/BUILD.gn COPYONLY)\r
+configure_file(${CURRENT_PORT_DIR}/icu.gn ${SOURCE_PATH}/third_party/icu/BUILD.gn COPYONLY)\r
+file(WRITE ${SOURCE_PATH}/build/config/gclient_args.gni "checkout_google_benchmark = false\n")\r
+if(WIN32)\r
+       string(REGEX REPLACE "\\\\+$" "" WindowsSdkDir $ENV{WindowsSdkDir})\r
+       file(APPEND ${SOURCE_PATH}/build/config/gclient_args.gni "windows_sdk_path = \"${WindowsSdkDir}\"\n")\r
+endif()\r
+\r
+if(UNIX)\r
+    set(UNIX_CURRENT_INSTALLED_DIR ${CURRENT_INSTALLED_DIR})\r
+    set(LIBS "-ldl -lpthread")\r
+    set(REQUIRES ", gmodule-2.0, gobject-2.0, gthread-2.0")\r
+elseif(WIN32)\r
+    execute_process(COMMAND cygpath "${CURRENT_INSTALLED_DIR}" OUTPUT_VARIABLE UNIX_CURRENT_INSTALLED_DIR)\r
+    string(STRIP ${UNIX_CURRENT_INSTALLED_DIR} UNIX_CURRENT_INSTALLED_DIR)\r
+    set(LIBS "-lWinmm -lDbgHelp")\r
+endif()\r
+\r
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)\r
+    set(is_component_build true)\r
+    set(v8_monolithic false)\r
+    set(v8_use_external_startup_data true)\r
+    set(targets :v8_libbase :v8_libplatform :v8)\r
+else()\r
+    set(is_component_build false)\r
+    set(v8_monolithic true)\r
+    set(v8_use_external_startup_data false)\r
+    set(targets :v8_monolith)\r
+endif()\r
+\r
+message(STATUS "Generating v8 build files. Please wait...")\r
+\r
+vcpkg_configure_gn(\r
+    SOURCE_PATH ${SOURCE_PATH}\r
+    OPTIONS "is_component_build=${is_component_build} target_cpu=\"${VCPKG_TARGET_ARCHITECTURE}\" v8_monolithic=${v8_monolithic} v8_use_external_startup_data=${v8_use_external_startup_data} use_sysroot=false is_clang=false use_custom_libcxx=false v8_enable_verify_heap=false icu_use_data_file=false" \r
+    OPTIONS_DEBUG "is_debug=true enable_iterator_debugging=true pkg_config_libdir=\"${UNIX_CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig\""\r
+    OPTIONS_RELEASE "is_debug=false enable_iterator_debugging=false pkg_config_libdir=\"${UNIX_CURRENT_INSTALLED_DIR}/lib/pkgconfig\""\r
+)\r
+\r
+message(STATUS "Building v8. Please wait...")\r
+\r
+vcpkg_install_gn(\r
+    SOURCE_PATH ${SOURCE_PATH}\r
+    TARGETS ${targets}\r
+)\r
+\r
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")\r
+    set(CFLAGS "-DV8_COMPRESS_POINTERS -DV8_31BIT_SMIS_ON_64BIT_ARCH")\r
+endif()\r
+\r
+file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h")\r
+\r
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)\r
+    set(PREFIX ${CURRENT_PACKAGES_DIR})\r
+    configure_file(${CURRENT_PORT_DIR}/v8.pc.in ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8.pc @ONLY)\r
+    configure_file(${CURRENT_PORT_DIR}/v8_libbase.pc.in ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_libbase.pc @ONLY)\r
+    configure_file(${CURRENT_PORT_DIR}/v8_libplatform.pc.in ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_libplatform.pc @ONLY)\r
+    file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/snapshot_blob.bin DESTINATION ${CURRENT_PACKAGES_DIR}/bin)\r
+\r
+    set(PREFIX ${CURRENT_PACKAGES_DIR}/debug)\r
+    configure_file(${CURRENT_PORT_DIR}/v8.pc.in ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8.pc @ONLY)\r
+    configure_file(${CURRENT_PORT_DIR}/v8_libbase.pc.in ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_libbase.pc @ONLY)\r
+    configure_file(${CURRENT_PORT_DIR}/v8_libplatform.pc.in ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_libplatform.pc @ONLY)\r
+    configure_file(${CURRENT_PORT_DIR}/V8Config-shared.cmake ${CURRENT_PACKAGES_DIR}/share/v8/V8Config.cmake @ONLY)\r
+    file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/snapshot_blob.bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)\r
+else()\r
+    set(PREFIX ${CURRENT_PACKAGES_DIR})\r
+    configure_file(${CURRENT_PORT_DIR}/v8_monolith.pc.in ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_monolith.pc @ONLY)\r
+    set(PREFIX ${CURRENT_PACKAGES_DIR}/debug)\r
+    configure_file(${CURRENT_PORT_DIR}/v8_monolith.pc.in ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_monolith.pc @ONLY)\r
+    configure_file(${CURRENT_PORT_DIR}/V8Config-static.cmake ${CURRENT_PACKAGES_DIR}/share/v8/V8Config.cmake @ONLY)\r
+endif()\r
+\r
+\r
+vcpkg_copy_pdbs()\r
+\r
+# v8 libraries are listed as SYSTEM_LIBRARIES because the pc files reference each other.\r
+vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES m dl pthread Winmm DbgHelp v8_libbase v8_libplatform v8)\r
+\r
+# Handle copyright\r
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)\r