Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Build

on: [push]

env:
BUILD_TYPE: Release
# For macOS qt keg-only package
CMAKE_PREFIX_PATH: '/usr/local/opt/qt@5'

jobs:
build:
strategy:
matrix:
os: ['macos-latest', 'ubuntu-20.04', 'ubuntu-18.04']
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v2

- name: Install dependencies (macOS)
run: brew install fftw liquid-dsp qt@5
if: matrix.os == 'macos-latest'

- name: Install dependencies (Ubuntu)
run: sudo apt install libfftw3-dev libliquid-dev qtbase5-dev
if: startsWith(matrix.os, 'ubuntu-')

- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build

- name: Configure CMake
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE

- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE

- name: Test
working-directory: ${{runner.workspace}}/build
shell: bash
run: ctest -C $BUILD_TYPE

43 changes: 0 additions & 43 deletions .travis.yml

This file was deleted.

88 changes: 2 additions & 86 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,89 +1,5 @@
cmake_minimum_required(VERSION 2.8.11)
cmake_minimum_required(VERSION 3.1)
project(inspectrum CXX)
enable_testing()

set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)

# For OSX - don't clear RPATH on install
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

if (MSVC)
#force std::complex<> typedefs in liquiddsp
add_definitions(-D_LIBCPP_COMPLEX)

#enable math definitions in math.h
add_definitions(-D_USE_MATH_DEFINES)

#build a graphical application without the console
option(BUILD_WIN32 "Build win32 app, false for console" TRUE)
if (BUILD_WIN32)
set(EXE_ARGS WIN32)
set(CMAKE_EXE_LINKER_FLAGS "/entry:mainCRTStartup ${CMAKE_EXE_LINKER_FLAGS}")
endif (BUILD_WIN32)
endif (MSVC)

if (NOT CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "-O2")
endif (NOT CMAKE_CXX_FLAGS)

# This only works in cmake >3.1
#set_property(TARGET inspectrum PROPERTY CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")

list(APPEND inspectrum_sources
abstractsamplesource.cpp
amplitudedemod.cpp
cursor.cpp
cursors.cpp
main.cpp
fft.cpp
frequencydemod.cpp
mainwindow.cpp
inputsource.cpp
phasedemod.cpp
plot.cpp
plots.cpp
plotview.cpp
samplebuffer.cpp
samplesource.cpp
spectrogramcontrols.cpp
spectrogramplot.cpp
threshold.cpp
traceplot.cpp
tuner.cpp
tunertransform.cpp
util.cpp
)

find_package(Qt5Widgets REQUIRED)
find_package(Qt5Concurrent REQUIRED)
find_package(FFTW REQUIRED)
find_package(Liquid REQUIRED)

include_directories(
${FFTW_INCLUDES}
${LIQUID_INCLUDES}
)

add_executable(inspectrum ${EXE_ARGS} ${inspectrum_sources})

target_link_libraries(inspectrum
Qt5::Core Qt5::Widgets Qt5::Concurrent
${FFTW_LIBRARIES}
${LIQUID_LIBRARIES}
)
set(INSTALL_DEFAULT_BINDIR "bin" CACHE STRING "Appended to CMAKE_INSTALL_PREFIX")

install(TARGETS inspectrum RUNTIME DESTINATION ${INSTALL_DEFAULT_BINDIR})

# Create uninstall target
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
)
add_subdirectory(src)
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ inspectrum is a tool for analysing captured signals, primarily from software-def
## Try it
### Prerequisites

* cmake >= 2.8.11
* cmake >= 3.1
* fftw 3.x
* [liquid-dsp](https://github.com/jgaeddert/liquid-dsp) >= v1.3.0
* pkg-config
* qt5
* [libsigmf](https://github.com/deepsig/libsigmf) (optional, for SigMF support)

### Build instructions

Expand All @@ -22,6 +23,7 @@ Build instructions can be found here: https://github.com/miek/inspectrum/wiki/Bu

## Input
inspectrum supports the following file types:
* `*.sigmf-meta, *.sigmf-data` - SigMF recordings
* `*.cf32`, `*.cfile` - Complex 32-bit floating point samples (GNURadio, osmocom_fft)
* `*.cs16` - Complex 16-bit signed integer samples (BladeRF)
* `*.cs8` - Complex 8-bit signed integer samples (HackRF)
Expand Down
96 changes: 96 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)

# For OSX - don't clear RPATH on install
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

if (MSVC)
#force std::complex<> typedefs in liquiddsp
add_definitions(-D_LIBCPP_COMPLEX)

#enable math definitions in math.h
add_definitions(-D_USE_MATH_DEFINES)

#build a graphical application without the console
option(BUILD_WIN32 "Build win32 app, false for console" TRUE)
if (BUILD_WIN32)
set(EXE_ARGS WIN32)
set(CMAKE_EXE_LINKER_FLAGS "/entry:mainCRTStartup ${CMAKE_EXE_LINKER_FLAGS}")
endif (BUILD_WIN32)
endif (MSVC)

if (NOT CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "-O2")
endif (NOT CMAKE_CXX_FLAGS)

# This only works in cmake >3.1
set(CMAKE_CXX_STANDARD 14)

list(APPEND inspectrum_sources
abstractsamplesource.cpp
amplitudedemod.cpp
cursor.cpp
cursors.cpp
main.cpp
fft.cpp
frequencydemod.cpp
mainwindow.cpp
inputsource.cpp
phasedemod.cpp
plot.cpp
plots.cpp
plotview.cpp
samplebuffer.cpp
samplesource.cpp
spectrogramcontrols.cpp
spectrogramplot.cpp
threshold.cpp
traceplot.cpp
tuner.cpp
tunertransform.cpp
util.cpp
)

find_package(Qt5Widgets REQUIRED)
find_package(Qt5Concurrent REQUIRED)
find_package(FFTW REQUIRED)
find_package(Liquid REQUIRED)
find_package(libsigmf QUIET)

include_directories(
${FFTW_INCLUDES}
${LIQUID_INCLUDES}
)

add_executable(inspectrum ${EXE_ARGS} ${inspectrum_sources})

target_link_libraries(inspectrum
Qt5::Core Qt5::Widgets Qt5::Concurrent
${FFTW_LIBRARIES}
${LIQUID_LIBRARIES}
)

if (libsigmf_FOUND)
message("-- libsigmf found. Enabling SigMF support")
target_link_libraries(inspectrum
libsigmf::libsigmf
)
add_definitions(-DENABLE_SIGMF)
else()
message("-- libsigmf not found. Disabling SigMF support")
endif()

set(INSTALL_DEFAULT_BINDIR "bin" CACHE STRING "Appended to CMAKE_INSTALL_PREFIX")

install(TARGETS inspectrum RUNTIME DESTINATION ${INSTALL_DEFAULT_BINDIR})

# Create uninstall target
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
)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading