@ -29,24 +29,31 @@ still useful, but it doesn't support `.nvmrc` files.
Then you need `git` , if you don't have that yet: https://git-scm.com/
Then you need `git` , if you don't have that yet: https://git-scm.com/
And for the final step before we actually get started, you'll need build tools to install
### macOS
the native modules used by the application. On Windows, it's easiest to open the [Command
Prompt (`cmd.exe`) as Administrator](< https: / / technet . microsoft . com / en-us / library / cc947813 ( v = ws.10).aspx > )
and run this:
```
1. Install the [Xcode Command-Line Tools ](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/ ).
npm install --global --production windows-build-tools
```
### Windows
1. **Windows 7 only:** Install Microsoft .NET Framework 4.5.1:
https://www.microsoft.com/en-us/download/details.aspx?id=40773
1. Install _Windows Build Tools_ : Open the [Command Prompt (`cmd.exe`) as Administrator ](<https://technet.microsoft.com/en-us/library/cc947813(v=ws.10 ).aspx>)
and run: `npm install --global --production --add-python-to-path windows-build-tools`
### Linux
1. Pick your favorite package manager.
1. Install Python 2.x.
1. Install GCC.
On OSX you can install the [XCode Command-line tools ](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/ ). On Linux you'll need to take a trip to your
### All platforms
favorite package manager. Python 2.x and GCC are two key necessary components.
Now, run these commands in your preferred terminal in a good directory for development:
Now, run these commands in your preferred terminal in a good directory for development:
```
```
git clone https://github.com/signalapp/Signal-Desktop.git
git clone https://github.com/signalapp/Signal-Desktop.git
cd Signal-Desktop
cd Signal-Desktop
npm install --global yarn # (only if you don’ t already have yarn)
npm install --global yarn # (only if you don’ t already have ` yarn` )
yarn install --frozen-lockfile # Install and build dependencies (this will take a while)
yarn install --frozen-lockfile # Install and build dependencies (this will take a while)
yarn grunt # Generate final JS and CSS assets
yarn grunt # Generate final JS and CSS assets
yarn icon-gen # Generate full set of icons for Electron
yarn icon-gen # Generate full set of icons for Electron
@ -54,11 +61,14 @@ yarn test # A good idea to make sure tests run first
yarn start # Start Signal!
yarn start # Start Signal!
```
```
You'll need to restart the application regularly to see your changes, as there is no
You'll need to restart the application regularly to see your changes, as there
automatic restart mechanism.
is no automatic restart mechanism. Alternatively, keep the developer tools open
(`View > Toggle Developer Tools`), hover over them, and press
< kbd > Cmd< / kbd > + < kbd > R< / kbd > (macOS) or < kbd > Ctrl< / kbd > + < kbd > R< / kbd >
(Windows & Linux).
Also, note that the assets loaded by the application are not necessarily the same files
Also, note that the assets loaded by the application are not necessarily the same files
you're touching. You may not see your changes until you run `yarn grunt` on the
you’ re touching. You may not see your changes until you run `yarn grunt` on the
command-line like you did during setup. You can make it easier on yourself by generating
command-line like you did during setup. You can make it easier on yourself by generating
the latest built assets when you change a file. Run this in its own terminal instance
the latest built assets when you change a file. Run this in its own terminal instance
while you make changes:
while you make changes: