Build Javet¶
It's quite hard for developers to build Javet successfully for various reasons.
Node.js needs to be built to static libraries.
V8 needs to be built to monolith.
Every OS platform has its own pitfalls which usually make developers frustrated, or even desperate.
Here are 3 ways of building Javet.
All of them share the same build environment in the next section.
Build Environment¶
Linux Environment¶
Ubuntu 20.04+
CMake 3.25.1+
JDK 8
Gradle 8.5+
GCC 11+
Python 3.11+
MacOS Environment¶
MacOS Catalina+
Latest Brew
Xcode 11.4.1+
Cmake 3.16+
JDK 8
Gradle 8.5+
Python 3.11+
Windows Environment¶
Latest Windows 10
Visual Studio 2022 Community v17.9.3+
CMake 3.24+ (comes with Visual Studio 2022)
Latest Windows 10 SDK with WinDbg
JDK 8
Gradle 8.5+
Python 3.11+
Android Environment¶
Ubuntu 20.04+ or Ubuntu 20.04+ in the WSL2 on the Latest Windows 10
CMake 3.25.1+
JDK 8
Gradle 8.5+
Python 3.11+
Latest Android Studio (Optional)
Android NDK r27
Android SDK 30
Environment Variables¶
${JAVET_HOME}
is the home directory of Javet.${NODE_HOME}
is the home directory of Node.${V8_HOME}
is the home directory of V8.${DEPOT_TOOLS_HOME}
is the home directory of Google depot tools.${ANDROID_NDK_HOME}
is the home directory of Android NDK.${ANDROID_SDK_HOME}
is the home directory of Android SDK.
V8 Feature Flags¶
Feature |
Flag |
Description |
---|---|---|
Custom libcxx |
Off |
The official release doesn't support custom libcxx. |
Debug |
Off |
The official release is a release build. |
External Startup Data |
Off |
The official release doesn't support external startup data. |
i18n |
Off |
The official release doesn't support i18n. Please contact the maintainer for private builds supporting this feature. |
Pointer Compression |
Off |
The official release doesn't support pointer compression. |
Sandbox |
Off |
The official release doesn't support sandbox. Please contact the maintainer for private builds supporting this feature. |
Snapshot |
Off |
The official release doesn't support snapshot. Please contact the maintainer for private builds supporting this feature. |