1 # We follow the stable channel on https://omahaproxy.appspot.com/
2 # https://chromium.googlesource.com/v8/v8/+/refs/heads/9.9-lkgr
5 PORTVERSION= 9.9.115.10
7 MASTER_SITES= LOCAL/sunpoet/v8/${PORTVERSION:R:R}
8 DISTFILES= v8-${PORTVERSION}.tar.gz \
9 build-${BUILD_REV}.tar.gz \
10 buildtools-${BUILDTOOLS_REV}.tar.gz \
11 clang-${CLANG_REV}.tar.gz \
12 common-${COMMON_REV}.tar.gz \
13 googletest-${GOOGLETEST_REV}.tar.gz \
14 icu-${ICU_REV}.tar.gz \
15 zlib-${ZLIB_REV}.tar.gz
16 DIST_SUBDIR= v8/${PORTVERSION:R:R}
17 EXTRACT_ONLY= ${DISTNAME}.tar.gz
19 MAINTAINER= sunpoet@FreeBSD.org
20 COMMENT= Open source JavaScript engine by Google
23 LICENSE_FILE= ${WRKSRC}/LICENSE
25 ONLY_FOR_ARCHS= aarch64 amd64 i386
27 BUILD_DEPENDS= binutils>=0:devel/binutils \
29 ${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR}
30 LIB_DEPENDS= libicudata.so:devel/icu
32 USES= compiler:c++17-lang cpe gnome ninja pkgconfig python:3.5+,build tar:xz
35 BINARY_ALIAS= python3=${PYTHON_CMD}
36 MAKE_ARGS= -C out/Release
40 SUB_FILES= v8.pc v8_libbase.pc v8_libplatform.pc
44 CONFLICTS_INSTALL= v8-beta
46 BUILD_REV= f3be6e847f004923466a350274aae3fbf048c19c
47 BUILDTOOLS_REV= f78b4b9f33bd8ef9944d5ce643daff1c31880189
48 CLANG_REV= df50898d39a35c2467fa89f8d7a6eedac1fd6aa4
49 COMMON_REV= 7f36dbc19d31e2aad895c60261ca8f726442bfbb
50 GOOGLETEST_REV= c9643a2e45ed0cb18b8409c62994be7c6e66dc1b
51 ICU_REV= b9f6d0a5c5375dc4643f35360d257dba37c1d3e1
52 ZLIB_REV= fc5cfd78a357d5bb7735a58f383634faaafe706a
54 # Run "gn args --list out/Release" for all variables.
55 # Some parts don't have use_system_* flag, and can be turned on/off by using
56 # replace_gn_files.py script, some parts just turned on/off for target host
57 # OS "target_os == is_bsd", like libusb, libpci.
58 GN_ARGS+= clang_use_chrome_plugins=false \
59 extra_cxxflags="${CXXFLAGS}" \
60 extra_ldflags="${LDFLAGS}" \
62 treat_warnings_as_errors=false \
65 use_custom_libcxx=false \
66 v8_use_external_startup_data=false
69 @${MKDIR} ${WRKSRC}/base/trace_event/common ${WRKSRC}/build ${WRKSRC}/buildtools ${WRKSRC}/third_party/googletest/src ${WRKSRC}/third_party/icu ${WRKSRC}/third_party/zlib ${WRKSRC}/tools/clang
70 @${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/build-${BUILD_REV}.tar.gz -C ${WRKSRC}/build
71 @${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/buildtools-${BUILDTOOLS_REV}.tar.gz -C ${WRKSRC}/buildtools
72 @${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/clang-${CLANG_REV}.tar.gz -C ${WRKSRC}/tools/clang
73 @${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/common-${COMMON_REV}.tar.gz -C ${WRKSRC}/base/trace_event/common
74 @${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/googletest-${GOOGLETEST_REV}.tar.gz -C ${WRKSRC}/third_party/googletest/src
75 @${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/icu-${ICU_REV}.tar.gz -C ${WRKSRC}/third_party/icu
76 @${TAR} -xf ${DISTDIR}/${DIST_SUBDIR}/zlib-${ZLIB_REV}.tar.gz -C ${WRKSRC}/third_party/zlib
79 @${REINPLACE_CMD} -i '' 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/build/toolchain/gcc_toolchain.gni ${WRKSRC}/buildtools/third_party/libc++/BUILD.gn
80 # https://github.com/klzgrad/naiveproxy/blob/master/src/build/config/gclient_args.gni
81 @${ECHO_CMD} 'checkout_google_benchmark = false' > ${WRKSRC}/build/config/gclient_args.gni
83 # Use ICU from ports and create needed directory
85 @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} ./build/linux/unbundle/replace_gn_files.py --system-libraries icu # || ${FALSE}
86 @${MKDIR} ${WRKSRC}/out/Release/gen/shim_headers/icui18n_shim/third_party/icu/source/i18n/unicode ${WRKSRC}/out/Release/gen/shim_headers/icuuc_shim/third_party/icu/source/common/unicode
87 @${MKDIR} ${WRKSRC}/out/Release/gen/include
88 @${CP} -R ${LOCALBASE}/include/unicode ${WRKSRC}/out/Release/gen/include/unicode
91 @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} gn gen out/Release --args='${GN_ARGS}'
94 ${MKDIR} ${STAGEDIR}${PREFIX}/include/cppgc ${STAGEDIR}${PREFIX}/include/libplatform
95 ${INSTALL_PROGRAM} ${WRKSRC}/out/Release/d8 ${STAGEDIR}${PREFIX}/bin/d8
96 ${INSTALL_PROGRAM} ${WRKSRC}/out/Release/mkgrokdump ${STAGEDIR}${PREFIX}/bin/mkgrokdump
97 ${INSTALL_PROGRAM} ${WRKSRC}/out/Release/mksnapshot ${STAGEDIR}${PREFIX}/bin/mksnapshot
98 ${INSTALL_LIB} ${WRKSRC}/out/Release/libchrome_zlib.so ${STAGEDIR}${PREFIX}/lib/libchrome_zlib.so
99 ${INSTALL_LIB} ${WRKSRC}/out/Release/libcppgc.so ${STAGEDIR}${PREFIX}/lib/libcppgc.so
100 ${INSTALL_LIB} ${WRKSRC}/out/Release/libv8.so ${STAGEDIR}${PREFIX}/lib/libv8.so
101 ${INSTALL_LIB} ${WRKSRC}/out/Release/libv8_libbase.so ${STAGEDIR}${PREFIX}/lib/libv8_libbase.so
102 ${INSTALL_LIB} ${WRKSRC}/out/Release/libv8_libplatform.so ${STAGEDIR}${PREFIX}/lib/libv8_libplatform.so
103 ${INSTALL_DATA} ${WRKSRC}/include/*.h ${STAGEDIR}${PREFIX}/include/
104 cd ${WRKSRC}/include/cppgc && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/include/cppgc '-name *\.h'
105 ${INSTALL_DATA} ${WRKSRC}/include/libplatform/*.h ${STAGEDIR}${PREFIX}/include/libplatform/
106 ${INSTALL_DATA} ${WRKDIR}/v8*.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig/
108 .include <bsd.port.mk>