diff --git a/appveyor.yml b/appveyor.yml index 4869b2a0..93bb2a46 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -3,8 +3,9 @@ clone_depth: 1 configuration: - Release - - Debug +init: + - C:\"Program Files (x86)"\"Microsoft Visual Studio 14.0"\VC\vcvarsall.bat %PLATFORM% install: - appveyor DownloadFile "https://downloads.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.21/libusb-1.0.21.7z?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Flibusb%2Ffiles%2Flibusb-1.0%2Flibusb-1.0.21%2F&ts=1485478643&use_mirror=cytranet" -FileName "C:\libusb.7z" - 7z x -y "C:\libusb.7z" -o"C:\libusb" @@ -12,7 +13,10 @@ install: - 7z x -y "C:\pthreads-w32-release.zip" -o"C:\pthreads" - appveyor DownloadFile "http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.26-1_win32.zip" -FileName "C:\pkg-config_win32.zip" - 7z x -y "C:\pkg-config_win32.zip" -o"C:\pkg-config" - + - curl -fsS -o "C:\fftw-3.3.5.zip" "ftp://ftp.fftw.org/pub/fftw/fftw-3.3.5-dll64.zip" + - 7z x -y "C:\fftw-3.3.5.zip" -o"C:\fftw" + - cd c:\fftw + - ps: lib /machine:x64 /def:libfftw3f-3.def build_script: - mkdir c:\projects\hackrf\host\build @@ -23,5 +27,7 @@ build_script: -DTHREADS_PTHREADS_INCLUDE_DIR=c:\pthreads\Pre-built.2\include \ -DTHREADS_PTHREADS_WIN32_LIBRARY=c:\pthreads\Pre-built.2\lib\x64\pthreadVC2.lib \ -DPKG_CONFIG_EXECUTABLE="C:\pkg-config\bin\pkg-config.exe" \ + -DFFTW_INCLUDES=C:\fftw \ + -DFFTW_LIBRARIES=C:\fftw\libfftw3f-3.lib \ .. - - msbuild .\ALL_BUILD.vcxproj /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" + - msbuild HackRF.sln /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt index 874163f8..34136f09 100644 --- a/host/CMakeLists.txt +++ b/host/CMakeLists.txt @@ -1,7 +1,7 @@ #top dir cmake project for libhackrf + tools cmake_minimum_required(VERSION 2.8) -project (hackrf_all) +project (HackRF) add_subdirectory(libhackrf) add_subdirectory(hackrf-tools) diff --git a/host/README.md b/host/README.md index a0af41e8..48070312 100644 --- a/host/README.md +++ b/host/README.md @@ -33,8 +33,9 @@ rm -rf * ##How to build host software on Windows: ###Prerequisites for cygwin, mingw, or Visual Studio: -* cmake-2.8.12.1 or more see http://www.cmake.org/cmake/resources/software.html -* libusbx-1.0.18 or more see http://sourceforge.net/projects/libusbx/files/latest/download?source=files +* cmake-2.8.12.1 or later from http://www.cmake.org/cmake/resources/software.html +* libusbx-1.0.18 or later from http://sourceforge.net/projects/libusbx/files/latest/download?source=files +* fftw-3.3.5 or later from http://www.fftw.org/install/windows.html * Install Windows driver for HackRF hardware or use Zadig see http://sourceforge.net/projects/libwdi/files/zadig - If you want to use Zadig select HackRF USB device and just install/replace it with WinUSB driver. @@ -61,22 +62,22 @@ make install ``` ###For Visual Studio 2015 x64 +Create library definition for MSVC to link to +`C:\fftw-3.3.5-dll64> lib /machine:x64 /def:libfftw3f-3.def` + ``` c:\hackrf\host\build> cmake ../ -G "Visual Studio 14 2015 Win64" \ -DLIBUSB_INCLUDE_DIR=c:\libusb-1.0.21\libusb \ --DLIBUSB_LIBRARIES=c:\libusb-1.0.21\x64\Release\lib\libusb-1.0.lib \ +-DLIBUSB_LIBRARIES=c:\libusb-1.0.21\MS64\dll\lib\libusb-1.0.lib \ -DTHREADS_PTHREADS_INCLUDE_DIR=c:\pthreads-w32-2-9-1-release\Pre-built.2\include \ -DTHREADS_PTHREADS_WIN32_LIBRARY=c:\pthreads-w32-2-9-1-release\Pre-built.2\lib\x64\pthreadVC2.lib \ --DFFTW_INCLUDES=C:\hackrf-2017.02.1\host\hackrf-tools\fftw-3.3.5-dll64 \ --DFFTW_LIBRARIES=C:\hackrf-2017.02.1\host\hackrf-tools\fftw-3.3.5-dll64\libfftw3f-3.lib +-DFFTW_INCLUDES=C:\fftw-3.3.5-dll64 \ +-DFFTW_LIBRARIES=C:\fftw-3.3.5-dll64\libfftw3f-3.lib ``` -unpack precompiled fftw-3.3.5-dll64.zip from http://www.fftw.org/install/windows.html to C:\hackrf-2017.02.1\host\hackrf-tools\fftw-3.3.5-dll64 -Create library from VS command shell -C:\hackrf-2017.02.1\host\hackrf-tools\fftw-3.3.5-dll6> lib /machine:x64 /def:libfftw3f-3.def -Cmake will produce a solution file named `hackrf_all.sln` and a series of -project files which can be used with msbuild as follows: -`c:\hackrf\host\build> msbuild ALL_BUILD.vcxproj` +Cmake will produce a solution file named `HackRF.sln` and a series of +project files which can be built with msbuild as follows: +`c:\hackrf\host\build> msbuild HackRF.sln` ##How to build host the software on FreeBSD You can use the binary package: diff --git a/host/hackrf-tools/CMakeLists.txt b/host/hackrf-tools/CMakeLists.txt index fd9f83be..5ba52832 100644 --- a/host/hackrf-tools/CMakeLists.txt +++ b/host/hackrf-tools/CMakeLists.txt @@ -49,13 +49,12 @@ add_subdirectory(src) # Create uninstall target ######################################################################## -if(NOT hackrf_all_SOURCE_DIR) +if(NOT HackRF_SOURCE_DIR) configure_file( ${PROJECT_SOURCE_DIR}/../cmake/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake @ONLY) - add_custom_target(uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake ) diff --git a/host/hackrf-tools/src/CMakeLists.txt b/host/hackrf-tools/src/CMakeLists.txt index 0d223ead..bc8270f3 100644 --- a/host/hackrf-tools/src/CMakeLists.txt +++ b/host/hackrf-tools/src/CMakeLists.txt @@ -23,7 +23,7 @@ set(INSTALL_DEFAULT_BINDIR "bin" CACHE STRING "Appended to CMAKE_INSTALL_PREFIX") -INCLUDE(FindPkgConfig) +find_package(FFTW REQUIRED) SET(TOOLS hackrf_transfer @@ -39,9 +39,7 @@ if(MSVC) ../getopt/getopt.c ) LIST(APPEND TOOLS_LINK_LIBS ${FFTW_LIBRARIES}) - include_directories(${FFTW_INCLUDES}) else() - pkg_check_modules(FFTW REQUIRED fftw3f) LIST(APPEND TOOLS_LINK_LIBS m fftw3f) endif() diff --git a/host/libhackrf/CMakeLists.txt b/host/libhackrf/CMakeLists.txt index 08168941..c6ec0718 100644 --- a/host/libhackrf/CMakeLists.txt +++ b/host/libhackrf/CMakeLists.txt @@ -156,7 +156,7 @@ endif(SYSTEM_IS_LINUX) ######################################################################## # Create uninstall target ######################################################################## -if(NOT hackrf_all_SOURCE_DIR) +if(NOT HackRF_SOURCE_DIR) configure_file( ${PROJECT_SOURCE_DIR}/../cmake/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake