Building On Windows
- Instructions for building modules
|These are instructions for building on Windows
The build family of pages:
Instructions in win/build.txt
Instructions for building on Windows. Fuller instructions that include * Portable Settings * Building an Installer can be found on our wiki at http://wiki.audacityteam.org/wiki/Building_On_Windows 1. MSVC 2019: Download and install Microsoft Visual Studio 2019 https://docs.microsoft.com/en-us/visualstudio/install/install-visual-studio?view=vs-2019 2. Git: Download and install Git, for example by installing: Git for Windows: https://git-scm.com/download/win and optionally GitExtensions: http://gitextensions.github.io/ download and run the .msi installer. GitExtensions has a GUI interface, includes Git for Windows and has a Git bash command line in the bottom panel of the screen. 3. Python We used to depend on Python 2.7.18 during the build. We recently switched to Python 3, and that should now work. Python must be on your path. 4. wxWidgets: 1) Clone wxWidgets and checkout 3.1.3 from the Audacity fork of the wxWidgets project: https://github.com/audacity/wxWidgets/ for example, in the git-bash command line mkdir ./wxWidgets cd ./wxWidgets git clone --recurse-submodules https://github.com/audacity/wxWidgets/ IF you forgot the --recurse-submodules, you can correct that later by: git submodule update --init 2) Follow instructions for building at https://github.com/audacity/wxWidgets/blob/audacity-fixes-3.1.3/README-GIT.md https://github.com/audacity/wxWidgets/blob/audacity-fixes-3.1.3/docs/msw/install.md We (currently) build the 32 bit DLL version, and Audacity is built 32 bit too. Set WXWIN environment variable to the appropriate directory where you installed wxWidgets. This will tell CMake where to find wxWidgets later. To set WXWIN, click on Settings (the cogwheel icon from the start menu) Then in the 'find settings' search box type 'env'. Choose 'Edit the system environment variables' Then the 'Environment Variables' button Then in system variables, for variable and value, add (for example) WXWIN C:\wxWidgets You will be building a dll version with MSVC2019 IDE, so... In MSVC 2019 open wx_vc16.sln present in %WXWIN%\wxWidgets\build\msw, and select dll, release. Then build. (If you are using an earlier version of MSVC, then choose the file wx_vcN.sln file, where N=7, 8, 9, 10, 11, 12, 14, 15 and 16 (for the versions MSVS 2003, 2005, 2008, 2010, 2012, 2013, 2015, 2017 and 2019 respectively) ). 3) Having got this far, it is well worth trying out building some wxWidgets examples to confirm that building has worked OK. If you do decide to do this, $ copy %WXWIN%\include\msvc\wx\setup.h %WXWIN%\include\wx\ This means that the examples will see setup.h, which they need. To run the samples, if you don't put the dll libs on your path, you'll need to copy the .exe file to the directory where the .dll files are ( %WXWIN%\lib\vcc_dll\ ). Alternatively there is a 'working directory' setting in properties->configuration-properties->debugging, and you can set that to the dll release or debug directory. 5. Audacity 1) Clone Audacity from the Audacity GitHub project. https://github.com/audacity/audacity/ for example, in the git-bash command line mkdir ./audacity cd ./audacity git clone https://github.com/audacity/audacity/ Audacity itself does not use/need git submodules. 2) Open the CMake GUI. Set the 'Where is the source code' location to where your copy of the Audacity git repo is. Set the 'Where to build the binaries' to where you want the results (For 'Where to build the binaries' we suggest a location that is not under git version control. You can make a new directory for it). Click on configure. (notice where it found / did not find wxWidgets if it did not find wxwidgets check that you set WXWIN correctly ) 3) Click on Generate. 4) Click on Open Project. From here on you should be able to use the project. 5) Choose Release or Debug. Click compile.
Official Full Releases
Official full releases:
- Have a GitIdent, visible in the about box build information, that says what branch was used in building.
- Come with translations
- May be as a zip file
- No manual provided
- May be as a windows installer.
- These come with help files in html format.
- Are signed.
Fetching The Manual
We have instructions for fetching the manual on another page.
Building the Installer
The Inno setup installer requires certain files in certain places to be able to produce the installer.
1. Copy msvcp140.dll and vcruntime140.dll from C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.14.26405\x86\Microsoft.VC141.CRT to \win\release The 64 bit version will not work on 32 bit machines.
Now to actually make the installer...
1. Install the latest Unicode Inno Setup (http://www.jrsoftware.org/isinfo.php). 2. Open the Inno Setup script: \win\Inno_Setup_Wizard\audacity.iss 3. Click 'Compile'.
Making the Zip File
Do this step after making and testing the installer.
Having installed from the installer 1. Use 7-zip to create a new archive from the installed files excluding: - The manual - The unins* files - FirstTimeInit.txt
Note that the .exe in this zip file and dlls are not code signed. Audacity loads dlls dynamically at run time, possibly unsigned ones, so signing the exe itself is misleading for security. The integrity and security of the zip file is provided by its published checksukm. The situation is different for the installer where the code signature protects the entire bundle.
Signing the Installer
Codesigning uses a USB dongle (smart card reader) and a timestamp server at certum:
signtool sign /n "James Crook" /t http://time.certum.pl/ /fd sha256 /v <path-to-audacity-git>\win\Output\audacity-win-2.3.0.exe
If you don;t have the path to signtool.exe pre set, you might find it here:
C:\Program Files (x86)\Windows Kits\8.1\bin\x64\signtool.exe