WIP updated Windows build instructions : done for now

Vincent Sonnier 2018-05-18 11:42:51 +02:00
parent bb5779b97f
commit 2bc163e48a

@ -8,7 +8,7 @@ Visual Studio 2017 also has a better optimizing compiler which may result a fast
Interesting point, VS2017 produces binaries compatible with VS2015 ones, so there is no point of not using VS2017. Interesting point, VS2017 produces binaries compatible with VS2015 ones, so there is no point of not using VS2017.
Alternatively if you don't want to compile anything and install pre-built binaries instead of an almost up to date CubicSDR (typically a month-old), you can install the amazing [PothosSDR distribution](https://github.com/pothosware/PothosSDR/wiki/Tutorial) (Rsources / Download installer) Alternatively if you don't want to compile anything and install pre-built binaries instead of an almost up to date CubicSDR (typically a month-old), you can install the amazing [PothosSDR distribution](https://github.com/pothosware/PothosSDR/wiki/Tutorial) (Resources / Download installer)
# Install Visual Studio Community 2017 # Install Visual Studio Community 2017
@ -94,6 +94,7 @@ Configure variables to indicate CubicSDR that modules files will be searched in
Easiest way: use a pre-compiled `librtlsdr` binary which also package `libusb` from the [librtlsdr Releases](https://github.com/librtlsdr/librtlsdr/releases) page and choose the "x64" version. Easiest way: use a pre-compiled `librtlsdr` binary which also package `libusb` from the [librtlsdr Releases](https://github.com/librtlsdr/librtlsdr/releases) page and choose the "x64" version.
Or re-compile both libraries : (not complete) Or re-compile both libraries : (not complete)
* Clone or download https://github.com/libusb/libusb to C:\MSVCDev\libusb and build it using `C:\MSVCDev\libusb\msvc\libusb_2017.sln` choosing the `Release` and `x64` configuration. * Clone or download https://github.com/libusb/libusb to C:\MSVCDev\libusb and build it using `C:\MSVCDev\libusb\msvc\libusb_2017.sln` choosing the `Release` and `x64` configuration.
* Clone or download https://github.com/librtlsdr/librtlsdr to C:\MSVCDev\librtlsdr * Clone or download https://github.com/librtlsdr/librtlsdr to C:\MSVCDev\librtlsdr
* Launch CMake, set source path to C:/MSVCDev/librtlsdr/ * Launch CMake, set source path to C:/MSVCDev/librtlsdr/
@ -101,8 +102,8 @@ Or re-compile both libraries : (not complete)
* Click "Configure" and choose "Visual Studio 15 2017 Win64" and Finish * Click "Configure" and choose "Visual Studio 15 2017 Win64" and Finish
* Set LIBUSB_INCLUDE_DIR to C:/MSVCDev/libusb/ * Set LIBUSB_INCLUDE_DIR to C:/MSVCDev/libusb/
* Set LIBUSB_LIBRARIES to C:/MSVCDev/libusb/x64/Release/dll/libusb-1.0.lib * Set LIBUSB_LIBRARIES to C:/MSVCDev/libusb/x64/Release/dll/libusb-1.0.lib
* Set THREADS_PTHREADS_INCLUDE_DIR to (TBD) * Set THREADS_PTHREADS_INCLUDE_DIR to (TODO, decribe pthreads-win32 installation)
* Set THREADS_PTHREADS_WIN32_LIBRARY to (TBD) * Set THREADS_PTHREADS_WIN32_LIBRARY to (TODO, decribe pthreads-win32 installation)
* Click "Configure" again and then click "Generate" * Click "Configure" again and then click "Generate"
Open "Developer Command Prompt for VS2017" by right-clicking and "Run as Administrator". Open "Developer Command Prompt for VS2017" by right-clicking and "Run as Administrator".
@ -125,7 +126,7 @@ Either way, copy the files `rtlsdr.dll` and `libusb-1.0.dll` in the `C:\MSVCDev\
* Set destination to C:/MSVCDev/SoapyRTLSDR_win64/ * Set destination to C:/MSVCDev/SoapyRTLSDR_win64/
* Click "Configure" and choose "Visual Studio 15 2017 Win64" and Finish * Click "Configure" and choose "Visual Studio 15 2017 Win64" and Finish
* Set RTLSDR_INCLUDE_DIR to C:/MSVCDev/librtlsdr/include * Set RTLSDR_INCLUDE_DIR to C:/MSVCDev/librtlsdr/include
* Set RTLSDR_LIBRARY to C:/MSVCDev/librtlsdr_win64/x64/rtlsdr.lib * Set RTLSDR_LIBRARY to C:/MSVCDev/librtlsdr_win64/src/Release/rtlsdr.lib
* Click "Configure" again and then click "Generate" * Click "Configure" again and then click "Generate"
Open "Developer Command Prompt for VS2017" by right-clicking and "Run as Administrator". Open "Developer Command Prompt for VS2017" by right-clicking and "Run as Administrator".
@ -143,57 +144,17 @@ Copy the generated module file `rtlsdrSupport.dll` in the C:\MSVCDev\CubicSDR_wi
## SoapySDRPlay ## SoapySDRPlay
* Clone or download ZIP from https://github.com/pothosware/SoapySDRPlay to C:\MSVCDev\SoapySDRPlay * Clone or download ZIP from https://github.com/pothosware/SoapySDRPlay to C:\MSVCDev\SoapySDRPlay
* Download "Windows API & Hardware Driver Installer" from http://sdrplay.com/windows.html and install it with defaults. * Download "API/HW Driver" from https://www.sdrplay.com/downloads/ and install it with defaults.
* Copy C:\Program Files\MiricsSDR\API\x64\mir_sdr_api.dll to C:\Program Files\SoapySDR\bin * Launch CMake, set source path to C:/MSVCDev/SoapySDRPlay /
Open "Developer Command Prompt for VS2015" by right-clicking and "Run as Administrator".
From the prompt:
```
C:\> cd "C:\Program Files\MiricsSDR\API\x64"
C:\Program Files\MiricsSDR\API\x64>dumpbin /exports mir_sdr_api.dll > mir_sdr_api.def
```
Leave prompt open and edit the .def file down so it looks like this; remove some lines and prefixes and add "EXPORTS" at the top.
(reference only, these are the functions at the time of this instruction)
```
EXPORTS
mir_sdr_ApiVersion
mir_sdr_DownConvert
mir_sdr_Init
mir_sdr_ReadPacket
mir_sdr_ResetUpdateFlags
mir_sdr_SetDcMode
mir_sdr_SetDcTrackTime
mir_sdr_SetFs
mir_sdr_SetGr
mir_sdr_SetGrParams
mir_sdr_SetParam
mir_sdr_SetRf
mir_sdr_SetSyncUpdatePeriod
mir_sdr_SetSyncUpdateSampleNum
mir_sdr_SetTransferMode
mir_sdr_Uninit
```
From the prompt:
```
C:\Program Files\MiricsSDR\API\x64>lib /MACHINE:x64 /def:mir_sdr_api.def /OUT:mir_sdr_api.lib
Microsoft (R) Library Manager Version 14.00.23026.0
Copyright (C) Microsoft Corporation. All rights reserved.
Creating library mir_sdr_api.lib and object mir_sdr_api.exp
C:\Program Files\MiricsSDR\API\x64>
```
* Launch CMake, set source path to C:/MSVCDev/SoapySDRPlay/
* Set destination to C:/MSVCDev/SoapySDRPlay_win64/ * Set destination to C:/MSVCDev/SoapySDRPlay_win64/
* Click "Configure" and choose "Visual Studio 14 2015 Win64" and Finish * Click "Configure" and choose "Visual Studio 15 2017 Win64" and Finish
* Click "Generate" * Set LIBSDRPLAY_INCLUDE_DIRS to C:/Program Files/SDRplay/API/inc
* Set LIBSDRPLAY_LIBRARIES to C:/Program Files/SDRplay/API/x64/mir_sdr_api.lib
* Set SOAPY_SDR_INCLUDE_DIR to C:/MSVCDev/SoapySDR/include
* Set SOAPY_SDR_LIBRARY to C:/MSVCDev/SoapySDR_win64/lib/Release/SoapySDR.lib
* Click "Configure" again and then click "Generate"
Open "Developer Command Prompt for VS2017" by right-clicking and "Run as Administrator".
From the prompt: From the prompt:
@ -203,4 +164,15 @@ C:\MSVCDEV> cmake --build SoapySDRPlay_win64 --config Release --target install
... Bunch of building ... ... Bunch of building ...
0 Error(s) 0 Error(s)
``` ```
Copy the generated module file `sdrPlaySupport.dll` in the C:\MSVCDev\CubicSDR_win64\x64\modules directory where CubicSDR can find it. Copy the generated module file `sdrPlaySupport.dll` in the C:\MSVCDev\CubicSDR_win64\x64\modules directory where CubicSDR can find it.
# Debugging CubicSDR
Although all binaries are compiled in `Release`, it doesn't prevent debugging with it.
In Visual Studio, select the `RelWithDebInfo` configuration. Then go to CubicSDR subproject Configuration Properties => C++ => Optimization and modify the following options:
* Optimization: Disabled (/Od)
* Inline Function Expansion: Disabled (/Ob0)
This particular binary is generated in C:\MSVCDev\CubicSDR_win64\x64\RelWithDbInfo\, so take care of copying all the Cubic resources (`modules`, `fonts` and additional libraries) in this directory so it can execute properly.