--- /dev/null
+\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