1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-11-24 08:12:24 +02:00
joplin/BUILD.md

82 lines
3.4 KiB
Markdown
Raw Normal View History

2019-04-30 19:26:58 +02:00
[![Travis Build Status](https://travis-ci.org/laurent22/joplin.svg?branch=master)](https://travis-ci.org/laurent22/joplin) [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/github/laurent22/joplin?branch=master&passingText=master%20-%20OK&svg=true)](https://ci.appveyor.com/project/laurent22/joplin)
# General information
2017-12-15 02:10:47 +02:00
- All the applications share the same library, which, for historical reasons, is in ReactNativeClient/lib. This library is copied to the relevant directories when building each app.
2019-09-22 11:54:14 +02:00
- In general, most of the backend (anything to do with the database, synchronisation, data import or export, etc.) is shared across all the apps, so when making a change please consider how it will affect all the apps.
## macOS dependencies
2017-12-07 01:34:31 +02:00
brew install yarn node
echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
2018-03-06 09:42:29 +02:00
2017-12-07 01:34:31 +02:00
## Linux and Windows (WSL) dependencies
2017-12-01 01:02:14 +02:00
- Install yarn - https://yarnpkg.com/lang/en/docs/install/
- Install node v8.x (check with `node --version`) - https://nodejs.org/en/
2017-12-07 01:34:31 +02:00
- If you get a node-gyp related error you might need to manually install it: `npm install -g node-gyp`
2018-02-06 11:42:20 +02:00
# Building the tools
Before building any of the applications, you need to build the tools and pre-commit hooks:
2018-02-06 11:42:20 +02:00
```
npm install && cd Tools && npm install
2018-02-06 11:42:20 +02:00
```
# Building the Electron application
2017-12-01 01:02:14 +02:00
```
cd ElectronClient/app
2017-12-14 20:12:14 +02:00
rsync --delete -a ../../ReactNativeClient/lib/ lib/
2017-12-01 01:02:14 +02:00
npm install
yarn dist
```
If there's an error `while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory`, run `sudo apt-get install libgconf-2-4`
2018-09-13 20:46:06 +02:00
If you get a node-gyp related error you might need to manually install it: `npm install -g node-gyp`.
If you get the error `libtool: unrecognized option '-static'`, follow the instructions [in this post](https://stackoverflow.com/a/38552393/561309) to use the correct libtool version.
2017-12-01 01:02:14 +02:00
That will create the executable file in the `dist` directory.
From `/ElectronClient` you can also run `run.sh` to run the app for testing.
2018-03-06 09:42:29 +02:00
## Building Electron application on Windows
```
cd Tools
npm install
cd ..\ElectronClient\app
xcopy /C /I /H /R /Y /S ..\..\ReactNativeClient\lib lib
npm install
yarn dist
```
2018-04-02 18:38:34 +02:00
If node-gyp does not works (MSBUILD: error MSB3428: Could not load the Visual C++ component "VCBuild.exe"), you might need to install the `windows-build-tools` using `npm install --global windows-build-tools`.
If `yarn dist` fails, it may need administrative rights.
If you get an `error MSB8020: The build tools for v140 cannot be found.` try to run with a different toolset version, eg `npm install --toolset=v141` (See [here](https://github.com/mapbox/node-sqlite3/issues/1124) for more info).
The [building\_win32\_tips on this page](./readme/building_win32_tips.md) might be helpful.
# Building the Mobile application
2017-12-01 01:02:14 +02:00
First you need to setup React Native to build projects with native code. For this, follow the instructions on the [Get Started](https://facebook.github.io/react-native/docs/getting-started.html) tutorial, in the "React Native CLI Quickstart" tab.
2017-12-15 09:31:57 +02:00
Then, from `/ReactNativeClient`, run `npm install`, then `react-native run-ios` or `react-native run-android`.
2017-12-01 01:02:14 +02:00
# Building the Terminal application
2017-12-01 01:02:14 +02:00
2017-12-15 09:31:57 +02:00
```
cd CliClient
npm install
./build.sh
rsync --delete -aP ../ReactNativeClient/locales/ build/locales/
```
2019-09-22 11:54:14 +02:00
Run `run.sh` to start the application for testing.