# JetBrains Runtime [![official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
JetBrains Runtime is a runtime environment for running [IntelliJ Platform](https://github.com/JetBrains/intellij-community)-based products on Windows, macOS, and Linux. It is based on the [OpenJDK project](http://hg.openjdk.java.net/jdk8u/jdk8u/), with some modifications, including:
* Subpixel anti-aliasing
* Enhanced font rendering on Linux
* HiDPI support
* Ligatures
* Some fixes for native crashes not presented in official build
* Other small enhancements
JetBrains Runtime is not a certified build of OpenJDK. Please, use at your own risk.
# Downloads
|Windows-x86 |Windows-x64 |macOS |Linux-x86 |Linux-x64 |
|-------------|-------------|-------------|-------------|-------------|
| | | | ||
# How JetBrains Runtime is organised
## Workspaces
[github.com/JetBrains/jdk8u](https://github.com/JetBrains/jdk8u/)
[github.com/JetBrains/jdk8u_corba](https://github.com/JetBrains/jdk8u_corba/)
[github.com/JetBrains/jdk8u_hotspot](https://github.com/JetBrains/jdk8u_hotspot/)
[github.com/JetBrains/jdk8u_jaxp](https://github.com/JetBrains/jdk8u_jaxp/)
[github.com/JetBrains/jdk8u_jaxws](https://github.com/JetBrains/jdk8u_jaxws/)
[github.com/JetBrains/jdk8u_jdk](https://github.com/JetBrains/jdk8u_jdk/)
[github.com/JetBrains/jdk8u_langtools](https://github.com/JetBrains/jdk8u_langtools/)
[github.com/JetBrains/jdk8u_nashorn](https://github.com/JetBrains/jdk8u_nashorn/)
Usually, we do not modify any of the repositories except [jdk](https://github.com/JetBrains/jdk8u_jdk/) module. Other repositories are needed for build purposes.
## Getting sources
__OSX, Linux:__
```
git config --global core.autocrlf input
git clone git@github.com:JetBrains/jdk8u.git
cd jdk8u
./getModules.sh
```
__Windows:__
```
git config --global core.autocrlf false
git clone git@github.com:JetBrains/jdk8u.git
cd jdk8u
getModules.bat
```
# Configure Local Build Environment
## Linux
```
sudo apt-get install git zip bzip2 unzip tar curl
sudo apt-get install ccache make gcc g++ ca-certificates ca-certificates-java
sudo apt-get install libxext-dev libxrender-dev libxtst-dev libxt-dev
sudo apt-get install libasound2-dev libcups2-dev libfreetype6-dev
git clone git@github.com:JetBrains/jdk8u.git
cd jdk8u
./getModules.sh
download jdk8 from Oracle into /home/user/jdk1.8.0_102
export JAVA_HOME=/home/user/jdk1.8.0_102
sh ./configure
make
```
## Windows
Install:
* [Cygwin x64](http://www.cygwin.com/)
Required packages (binutils, cpio, diffutils, file, gawk, gcc-core, make, m4, unzip, zip)
* Windows SDK 7.1 offline installer [GRMSDKX_EN_DVD.iso](https://download.microsoft.com/download/F/1/0/F10113F5-B750-4969-A255-274341AC6BCE/GRMSDKX_EN_DVD.iso)
Run Setup\SDKSetup
* Visual Studio Express 2010 offline installer [VS2010Express1.iso](http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso)
* [Virtual CloneDrive](http://www.elby.ch/products/vcd.html) may help to mount ISO images
* [DirectX 9.0 SDK](http://www.microsoft.com/en-us/download/details.aspx?id=6812)
* [Java 8](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
Build Freetype:
* Download [sources](https://www.freetype.org/download.html)
* Execute the following script in builds\windows\vc2010
```
(echo ^
echo ^
echo ^
echo ^freetype^
echo ^.^
echo ^
echo ^
echo ^
echo ^jb_custom.h^
echo ^
echo ^
echo ^) > freetype.user.props
(echo #ifndef __JB_CUSTOM_H__
echo #define __JB_CUSTOM_H__
echo #define FT_EXPORT^(x^) __declspec^(dllexport^) x
echo #define FT_BASE^(x^) __declspec^(dllexport^) x
echo #endif) > jb_custom.h
```
* Build with VC Express for **x64** or **win32** target
* Put freetype.dll, freetype.lib, freetype.exp in lib folder at the same level with include:
```
freetype
include
lib
```
Configure and run make in cygwin shell
* __32 bit__ (use --with-msvcr-dll=/cygdrive/c/windows/SysWOW64/msvcr100.dll on 64 bit windows)
```
cd /cygdrive/c/jdk8/
./configure --with-target-bits=32 --with-freetype=/cygdrive/freetype/
make images
```
* __64 bit__
```
cd /cygdrive/c/jdk8/
./configure --with-target-bits=64 --with-freetype=/cygdrive/freetype/
make images
```
## OSX
XCode
* Login to https://developer.apple.com with your Apple ID. Download
[Xcode 4.6.3](https://developer.apple.com/devcenter/download.action?path=/Developer_Tools/xcode_4.6.3/xcode4630916281a.dmg)
and put Xcode.app into /Applications/Xcode4
_The latest XCode can be used, but you need to run make with COMPILER_WARNINGS_FATAL=false_
Command Line Tools
* Download and install Command Line Tools via XCode Preferences / Downloads or from https://developer.apple.com (for example, [Command Line Tools, April 2014](https://developer.apple.com/downloads/download.action?path=Developer_Tools/command_line_tools_os_x_mountain_lion_for_xcode__april_2014/command_line_tools_for_osx_mountain_lion_april_2014.dmg) for OS X Mountain Lion).
Freetype
* Install [XQuartz](https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.9.dmg) or build Freetype from
[sources](https://www.freetype.org/download.html)
```
cd freetype
./configure
./make
mkdir lib
cp objs/.libs/libfreetype.dylib lib/
```
Configure and build jdk
```
export MACOSX_DEPLOYMENT_TARGET=10.8
cd /path_to_jdk8/
bash configure --with-xcode-path=/Applications/Xcode4/Xcode4.app --with-freetype=/opt/X11/lib --with-freetype-include=/usr/X11/include/freetype2
make images
```
or
```
make COMPILER_WARNINGS_FATAL=false images
```
for the latest XCode
## Contribution
We will be happy to receive your pull requests. Before you submit one, please sign our Contributor License Agreement (CLA) https://www.jetbrains.com/agreements/cla/