mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-29 12:52:28 -04:00
Merge branch 'develop' into feat-fst280
This commit is contained in:
commit
dcc9ac11ee
94
CMake/Modules/VersionInfo.h.in
Normal file
94
CMake/Modules/VersionInfo.h.in
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef VERSION_INFO_@PRODUCT_NAME@_H__
|
||||||
|
#define VERSION_INFO_@PRODUCT_NAME@_H__
|
||||||
|
|
||||||
|
#include "scs_version.h"
|
||||||
|
|
||||||
|
#ifndef PRODUCT_VERSION_MAJOR
|
||||||
|
#define PRODUCT_VERSION_MAJOR @PRODUCT_VERSION_MAJOR@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_VERSION_MINOR
|
||||||
|
#define PRODUCT_VERSION_MINOR @PRODUCT_VERSION_MINOR@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_VERSION_PATCH
|
||||||
|
#define PRODUCT_VERSION_PATCH @PRODUCT_VERSION_PATCH@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_VERSION_TWEAK
|
||||||
|
#define PRODUCT_VERSION_TWEAK @PRODUCT_VERSION_TWEAK@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_VERSION_REVISION
|
||||||
|
#define PRODUCT_VERSION_REVISION @PRODUCT_VERSION_REVISION@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FILE_VERSION_MAJOR
|
||||||
|
#define FILE_VERSION_MAJOR @PRODUCT_VERSION_MAJOR@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FILE_VERSION_MINOR
|
||||||
|
#define FILE_VERSION_MINOR @PRODUCT_VERSION_MINOR@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FILE_VERSION_PATCH
|
||||||
|
#define FILE_VERSION_PATCH @PRODUCT_VERSION_PATCH@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FILE_VERSION_TWEAK
|
||||||
|
#define FILE_VERSION_TWEAK @PRODUCT_VERSION_TWEAK@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TO_STRING__
|
||||||
|
#define TO_STRING_IMPL__(x) #x
|
||||||
|
#define TO_STRING__(x) TO_STRING_IMPL__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PRODUCT_VERSION_MAJOR_MINOR_STR TO_STRING__ (PRODUCT_VERSION_MAJOR) "." TO_STRING__(PRODUCT_VERSION_MINOR)
|
||||||
|
#define PRODUCT_VERSION_MAJOR_MINOR_PATCH_STR PRODUCT_VERSION_MAJOR_MINOR_STR "." TO_STRING__ (PRODUCT_VERSION_PATCH)
|
||||||
|
#define PRODUCT_VERSION_FULL_STR PRODUCT_VERSION_MAJOR_MINOR_PATCH_STR TO_STRING__ (PRODUCT_VERSION_REVISION)
|
||||||
|
#define PRODUCT_VERSION_RESOURCE PRODUCT_VERSION_MAJOR,PRODUCT_VERSION_MINOR,PRODUCT_VERSION_PATCH,PRODUCT_VERSION_TWEAK
|
||||||
|
#define PRODUCT_VERSION_RESOURCE_STR PRODUCT_VERSION_FULL_STR " " SCS_VERSION_STR "\0"
|
||||||
|
|
||||||
|
#define FILE_VERSION_MAJOR_MINOR_STR TO_STRING__ (FILE_VERSION_MAJOR) "." TO_STRING__ (FILE_VERSION_MINOR)
|
||||||
|
#define FILE_VERSION_MAJOR_MINOR_PATCH_STR FILE_VERSION_MAJOR_MINOR_STR "." TO_STRING__ (FILE_VERSION_PATCH)
|
||||||
|
#define FILE_VERSION_FULL_STR FILE_VERSION_MAJOR_MINOR_PATCH_STR TO_STRING__ (PRODUCT_VERSION_REVISION)
|
||||||
|
#define FILE_VERSION_RESOURCE FILE_VERSION_MAJOR,FILE_VERSION_MINOR,FILE_VERSION_PATCH,FILE_VERSION_TWEAK
|
||||||
|
#define FILE_VERSION_RESOURCE_STR FILE_VERSION_FULL_STR "\0"
|
||||||
|
|
||||||
|
#ifndef PRODUCT_ICON
|
||||||
|
#define PRODUCT_ICON "@PRODUCT_ICON@"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_COMMENTS
|
||||||
|
#define PRODUCT_COMMENTS "@PRODUCT_COMMENTS@\0"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_VENDOR_NAME
|
||||||
|
#define PRODUCT_VENDOR_NAME "@PRODUCT_VENDOR_NAME@\0"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_LEGAL_COPYRIGHT
|
||||||
|
#define PRODUCT_LEGAL_COPYRIGHT "@PRODUCT_LEGAL_COPYRIGHT@\0"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_FILE_DESCRIPTION
|
||||||
|
#define PRODUCT_FILE_DESCRIPTION "@PRODUCT_FILE_DESCRIPTION@\0"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_INTERNAL_NAME
|
||||||
|
#define PRODUCT_INTERNAL_NAME "@PRODUCT_NAME@\0"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_ORIGINAL_FILENAME
|
||||||
|
#define PRODUCT_ORIGINAL_FILENAME "@PRODUCT_ORIGINAL_FILENAME@\0"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PRODUCT_BUNDLE
|
||||||
|
#define PRODUCT_BUNDLE "@PRODUCT_BUNDLE@\0"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
73
CMake/Modules/VersionResource.rc.in
Normal file
73
CMake/Modules/VersionResource.rc.in
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
#include "VersionInfo_@PRODUCT_NAME@.h"
|
||||||
|
|
||||||
|
#ifdef RC_INVOKED
|
||||||
|
|
||||||
|
#if defined (__MINGW64__) || defined (__MINGW32__)
|
||||||
|
/* MinGW-w64 or MinGW */
|
||||||
|
#if defined (__has_include) && __has_include (<windres.h>)
|
||||||
|
#include <windres.h>
|
||||||
|
#else
|
||||||
|
#include <afxres.h>
|
||||||
|
#include <winresrc.h>
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
/* MSVC, Windows SDK */
|
||||||
|
#include <winres.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _NDEBUG
|
||||||
|
#define PRODUCT_DEBUGFLAG 0x0L
|
||||||
|
#else
|
||||||
|
#define PRODUCT_DEBUGFLAG VS_FF_DEBUG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SCS_VERSION_IS_DIRTY
|
||||||
|
#define PRODUCT_SPECIALFLAG VS_FF_SPECIALBUILD
|
||||||
|
#else
|
||||||
|
#define PRODUCT_SPECIALFLAG 0x0L
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if PRODUCT_PRERELEASE
|
||||||
|
#define PRODUCT_PRERELEASEFLAG VS_FF_PRERELEASE
|
||||||
|
#else
|
||||||
|
#define PRODUCT_PRERELEASEFLAG 0x0L
|
||||||
|
#endif
|
||||||
|
|
||||||
|
IDI_ICON1 ICON DISCARDABLE PRODUCT_ICON
|
||||||
|
|
||||||
|
LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
|
VS_VERSION_INFO VERSIONINFO
|
||||||
|
FILEVERSION FILE_VERSION_RESOURCE
|
||||||
|
PRODUCTVERSION PRODUCT_VERSION_RESOURCE
|
||||||
|
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
||||||
|
FILEFLAGS (PRODUCT_DEBUGFLAG | PRODUCT_SPECIALFLAG | PRODUCT_PRERELEASEFLAG)
|
||||||
|
FILEOS VOS_NT_WINDOWS32
|
||||||
|
FILETYPE VFT_APP
|
||||||
|
FILESUBTYPE 0x0L
|
||||||
|
BEGIN
|
||||||
|
BLOCK "StringFileInfo"
|
||||||
|
BEGIN
|
||||||
|
BLOCK "040904b0"
|
||||||
|
BEGIN
|
||||||
|
VALUE "Comments", PRODUCT_COMMENTS
|
||||||
|
VALUE "CompanyName", PRODUCT_VENDOR_NAME
|
||||||
|
VALUE "FileDescription", PRODUCT_FILE_DESCRIPTION
|
||||||
|
VALUE "FileVersion", FILE_VERSION_RESOURCE_STR
|
||||||
|
VALUE "LegalCopyright", PRODUCT_LEGAL_COPYRIGHT
|
||||||
|
VALUE "ProductName", PRODUCT_BUNDLE
|
||||||
|
VALUE "ProductVersion", PRODUCT_VERSION_RESOURCE_STR
|
||||||
|
VALUE "InternalName", PRODUCT_INTERNAL_NAME
|
||||||
|
VALUE "OriginalFileName", PRODUCT_ORIGINAL_FILENAME
|
||||||
|
#if SCS_VERSION_IS_DIRTY
|
||||||
|
VALUE "SpecialBuild", SCS_VERSION_STR "\0"
|
||||||
|
#endif
|
||||||
|
END
|
||||||
|
END
|
||||||
|
BLOCK "VarFileInfo"
|
||||||
|
BEGIN
|
||||||
|
VALUE "Translation", 0x0409, 0x04b /* en-US Unicode */
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
#endif
|
167
CMake/Modules/generate_version_info.cmake
Normal file
167
CMake/Modules/generate_version_info.cmake
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
include (CMakeParseArguments)
|
||||||
|
|
||||||
|
set (_THIS_MODULE_BASE_DIR "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
|
||||||
|
# generate_product_version() function
|
||||||
|
#
|
||||||
|
# This function uses VersionInfo.in template file and VersionResource.rc file
|
||||||
|
# to generate WIN32 resource with version information and general resource strings.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# generate_product_version(
|
||||||
|
# SomeOutputResourceVariable
|
||||||
|
# NAME MyVersinedTarget
|
||||||
|
# ICON ${PATH_TO_ICON}
|
||||||
|
# VERSION_MAJOR 2
|
||||||
|
# VERSION_MINOR 3
|
||||||
|
# VERSION_PATCH 1
|
||||||
|
# VERSION_REVISION sha1
|
||||||
|
# )
|
||||||
|
#
|
||||||
|
# You can use generated resource for your executable targets:
|
||||||
|
# add_executable(target-name ${target-files} ${SomeOutputResourceVariable})
|
||||||
|
# add_library (target-name SHARED ${target-files} ${SomeOutputResourceVariable})
|
||||||
|
#
|
||||||
|
# You can specify resource strings in arguments:
|
||||||
|
# NAME - name of executable (no defaults, ex: Microsoft Word)
|
||||||
|
# BUNDLE - bundle (${PROJECT_NAME} or ${NAME} is default, ex: Microsoft Office)
|
||||||
|
# ICON - path to application icon, default: ${CMAKE_SOURCE_DIR}/icons/windows-icons/${NAME}.ico
|
||||||
|
# VERSION_MAJOR - default: 1
|
||||||
|
# VERSION_MINOR - deafult: 0
|
||||||
|
# VERSION_PATCH - deafult: 0
|
||||||
|
# VERSION_REVISION - deafult: 0
|
||||||
|
# VENDOR_NAME - your vendor name, default: ${PROJECT_VENDOR}
|
||||||
|
# LEGAL_COPYRIGHT - default: ${PROJECT_COPYRIGHT}
|
||||||
|
# COMMENTS - default: ${PROJECT_DESCRIPTION}
|
||||||
|
# ORIGINAL_FILENAME - default: ${NAME}
|
||||||
|
# INTERNAL_NAME - default: ${NAME}
|
||||||
|
# FILE_DESCRIPTION - default: ${COMMENTS}
|
||||||
|
function(generate_version_info outfiles)
|
||||||
|
set (options)
|
||||||
|
set (oneValueArgs
|
||||||
|
NAME
|
||||||
|
BUNDLE
|
||||||
|
ICON
|
||||||
|
VERSION_MAJOR
|
||||||
|
VERSION_MINOR
|
||||||
|
VERSION_PATCH
|
||||||
|
VERSION_REVISION
|
||||||
|
VENDOR_NAME
|
||||||
|
LEGAL_COPYRIGHT
|
||||||
|
COMMENTS
|
||||||
|
ORIGINAL_FILENAME
|
||||||
|
INTERNAL_NAME
|
||||||
|
FILE_DESCRIPTION)
|
||||||
|
set (multiValueArgs)
|
||||||
|
cmake_parse_arguments(PRODUCT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
|
if (NOT PRODUCT_BUNDLE)
|
||||||
|
if (PROJECT_NAME)
|
||||||
|
set (PRODUCT_BUNDLE "${PROJECT_NAME}")
|
||||||
|
else ()
|
||||||
|
set (PRODUCT_BUNDLE "${PRODUCT_NAME}")
|
||||||
|
endif ()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_ICON)
|
||||||
|
set (PRODUCT_ICON "${CMAKE_SOURCE_DIR}/icons/windows-icons/${PRODUCT_NAME}.ico")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_VERSION_MAJOR)
|
||||||
|
if (PROJECT_VERSION_MAJOR)
|
||||||
|
set (PRODUCT_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
||||||
|
else ()
|
||||||
|
set (PRODUCT_VERSION_MAJOR 1)
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
if (NOT ${PRODUCT_VERSION_MAJOR} MATCHES "^[0-9]+$")
|
||||||
|
message (FATAL_ERROR "Numeric major version number required")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_VERSION_MINOR)
|
||||||
|
if (PROJECT_VERSION_MINOR)
|
||||||
|
set (PRODUCT_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||||
|
else ()
|
||||||
|
set (PRODUCT_VERSION_MINOR 0)
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
if (NOT ${PRODUCT_VERSION_MINOR} MATCHES "^[0-9]+$")
|
||||||
|
message (FATAL_ERROR "Numeric minor version number required")
|
||||||
|
endif ()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_VERSION_PATCH)
|
||||||
|
if (PROJECT_VERSION_PATCH)
|
||||||
|
set (PRODUCT_VERSION_PATCH ${PROJECT_VERSION_PATCH})
|
||||||
|
else ()
|
||||||
|
set (PRODUCT_VERSION_PATCH 0)
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
if (NOT ${PRODUCT_VERSION_PATCH} MATCHES "^[0-9]+$")
|
||||||
|
message (FATAL_ERROR "Numeric patch version number required")
|
||||||
|
endif ()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_VERSION_TWEAK)
|
||||||
|
if (PROJECT_VERSION_TWEAK)
|
||||||
|
set (PRODUCT_VERSION_TWEAK ${PROJECT_VERSION_TWEAK})
|
||||||
|
else ()
|
||||||
|
set (PRODUCT_VERSION_TWEAK 0)
|
||||||
|
endif ()
|
||||||
|
else()
|
||||||
|
if (NOT ${PRODUCT_VERSION_TWEAK} MATCHES "^[0-9]+$")
|
||||||
|
message (FATAL_ERROR "Numeric tweak version number required")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PROJECT_VERSION_REVISION AND BUILD_TYPE_REVISION)
|
||||||
|
set (PRODUCT_VERSION_REVISION ${BUILD_TYPE_REVISION})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_VENDOR_NAME AND PROJECT_VENDOR)
|
||||||
|
set (PRODUCT_VENDOR_NAME ${PROJECT_VENDOR})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_LEGAL_COPYRIGHT)
|
||||||
|
if (PROJECT_COPYRIGHT)
|
||||||
|
set (PRODUCT_LEGAL_COPYRIGHT ${PROJECT_COPYRIGHT})
|
||||||
|
else ()
|
||||||
|
string(TIMESTAMP PRODUCT_CURRENT_YEAR "%Y")
|
||||||
|
set(PRODUCT_LEGAL_COPYRIGHT "${PRODUCT_VENDOR_NAME} (C) Copyright ${PRODUCT_CURRENT_YEAR}")
|
||||||
|
endif ()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_COMMENTS)
|
||||||
|
if (PROJECT_DESCRIPTION)
|
||||||
|
set(PRODUCT_COMMENTS ${PROJECT_DESCRIPTION})
|
||||||
|
else ()
|
||||||
|
set(PRODUCT_COMMENTS "${PRODUCT_NAME} v${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}.${PRODUCT_VERSION_PATCH}")
|
||||||
|
endif ()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_ORIGINAL_FILENAME)
|
||||||
|
set(PRODUCT_ORIGINAL_FILENAME "${PRODUCT_NAME}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_INTERNAL_NAME)
|
||||||
|
set(PRODUCT_INTERNAL_NAME "${PRODUCT_NAME}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT PRODUCT_FILE_DESCRIPTION)
|
||||||
|
set(PRODUCT_FILE_DESCRIPTION "${PRODUCT_COMMENTS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set (_VersionInfoFile VersionInfo_${PRODUCT_NAME}.h)
|
||||||
|
set (_VersionResourceFile VersionResource_${PRODUCT_NAME}.rc)
|
||||||
|
configure_file(
|
||||||
|
${_THIS_MODULE_BASE_DIR}/VersionInfo.h.in
|
||||||
|
${_VersionInfoFile}
|
||||||
|
@ONLY)
|
||||||
|
configure_file(
|
||||||
|
${_THIS_MODULE_BASE_DIR}/VersionResource.rc.in
|
||||||
|
${_VersionResourceFile}
|
||||||
|
@ONLY)
|
||||||
|
list(APPEND ${outfiles} ${CMAKE_CURRENT_BINARY_DIR}/${_VersionInfoFile} ${CMAKE_CURRENT_BINARY_DIR}/${_VersionResourceFile})
|
||||||
|
set (${outfiles} ${${outfiles}} PARENT_SCOPE)
|
||||||
|
endfunction()
|
42
CMake/Modules/set_build_type.cmake
Normal file
42
CMake/Modules/set_build_type.cmake
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
include (CMakeParseArguments)
|
||||||
|
|
||||||
|
# set_build_type() function
|
||||||
|
#
|
||||||
|
# Configure the output artefacts and their names for development,
|
||||||
|
# Release Candidate (RC), or General Availability (GA) build type.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# set_build_type ()
|
||||||
|
# set_build_type (RC n)
|
||||||
|
# set_build_type (GA)
|
||||||
|
#
|
||||||
|
# With no arguments or with RC 0 a development is specified. The
|
||||||
|
# variable BUILD_TYPE_REVISION is set to "-devel".
|
||||||
|
#
|
||||||
|
# With RC n with n>0 specifies a Release Candidate build. The
|
||||||
|
# variable BUIlD_TYPE_REVISION is set to "-rcn".
|
||||||
|
#
|
||||||
|
# With GA a General Availability release is specified and the
|
||||||
|
# variable BUIlD_TYPE_REVISION is unset.
|
||||||
|
#
|
||||||
|
macro (set_build_type)
|
||||||
|
set (options GA)
|
||||||
|
set (oneValueArgs RC)
|
||||||
|
set (multiValueArgs)
|
||||||
|
cmake_parse_arguments (BUILD_TYPE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
|
if (BUILD_TYPE_UNPARSED_ARGUMENTS)
|
||||||
|
message (FATAL_ERROR "Unrecognized macro arguments: \"${BUILD_TYPE_UNPARSED_ARGUMENTS}\"")
|
||||||
|
endif ()
|
||||||
|
if (BUILD_TYPE_GA AND BUILD_TYPE_RC)
|
||||||
|
message (FATAL_ERROR "Only specify one build type from RC or GA.")
|
||||||
|
endif ()
|
||||||
|
if (NOT BUILD_TYPE_GA)
|
||||||
|
if (BUILD_TYPE_RC)
|
||||||
|
set (BUILD_TYPE_REVISION "-rc${BUILD_TYPE_RC}")
|
||||||
|
else ()
|
||||||
|
set (BUILD_TYPE_REVISION "-devel")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
message (STATUS "Building ${PROJECT_NAME} v${PROJECT_VERSION}${BUILD_TYPE_REVISION}")
|
||||||
|
endmacro ()
|
@ -1,11 +0,0 @@
|
|||||||
# Load version number components.
|
|
||||||
include (${CMAKE_SOURCE_DIR}/Versions.cmake)
|
|
||||||
|
|
||||||
# Compute the full version string.
|
|
||||||
if (WSJTX_RC AND NOT WSJTX_VERSION_IS_RELEASE)
|
|
||||||
set (WSJTX_VERSION_PATCH ${WSJTX_VERSION_PATCH}-rc${WSJTX_RC})
|
|
||||||
elseif (NOT WSJTX_VERSION_IS_RELEASE)
|
|
||||||
set (WSJTX_VERSION_PATCH ${WSJTX_VERSION_PATCH}-devel)
|
|
||||||
endif (WSJTX_RC AND NOT WSJTX_VERSION_IS_RELEASE)
|
|
||||||
|
|
||||||
set (wsjtx_VERSION ${WSJTX_VERSION_MAJOR}.${WSJTX_VERSION_MINOR}.${WSJTX_VERSION_PATCH})
|
|
@ -1,4 +1,6 @@
|
|||||||
message (STATUS "Checking for revision information")
|
message (STATUS "Checking for revision information")
|
||||||
|
set (__scs_header_file ${BINARY_DIR}/scs_version.h.txt)
|
||||||
|
file (WRITE ${__scs_header_file} "/* SCS version information */\n\n")
|
||||||
if (EXISTS "${SOURCE_DIR}/.svn")
|
if (EXISTS "${SOURCE_DIR}/.svn")
|
||||||
message (STATUS "Checking for Subversion revision information")
|
message (STATUS "Checking for Subversion revision information")
|
||||||
find_package (Subversion QUIET REQUIRED)
|
find_package (Subversion QUIET REQUIRED)
|
||||||
@ -14,16 +16,18 @@ if (EXISTS "${SOURCE_DIR}/.svn")
|
|||||||
file (STRINGS "${BINARY_DIR}/svn_status.txt" __svn_changes
|
file (STRINGS "${BINARY_DIR}/svn_status.txt" __svn_changes
|
||||||
REGEX "^[^?].*$"
|
REGEX "^[^?].*$"
|
||||||
)
|
)
|
||||||
|
set (SCS_VERSION "r${MY_WC_LAST_CHANGED_REV}")
|
||||||
if (__svn_changes)
|
if (__svn_changes)
|
||||||
message (STATUS "Source tree based on revision ${MY_WC_LAST_CHANGED_REV} appears to have local changes")
|
message (STATUS "Source tree based on revision ${SCS_VERSION} appears to have local changes")
|
||||||
set (MY_WC_LAST_CHANGED_REV "${MY_WC_LAST_CHANGED_REV}-dirty")
|
file (APPEND ${__scs_header_file} "#define SCS_VERSION_IS_DIRTY 1\n")
|
||||||
|
set (SCS_VERSION_STR "${SCS_VERSION}-dirty")
|
||||||
foreach (__svn_change ${__svn_changes})
|
foreach (__svn_change ${__svn_changes})
|
||||||
message (STATUS "${__svn_change}")
|
message (STATUS "${__svn_change}")
|
||||||
endforeach (__svn_change ${__svn_changes})
|
endforeach (__svn_change ${__svn_changes})
|
||||||
endif (__svn_changes)
|
else ()
|
||||||
message (STATUS "${SOURCE_DIR} contains a .svn and is revision ${MY_WC_LAST_CHANGED_REV}")
|
set (SCS_VERSION_STR "${SCS_VERSION}")
|
||||||
# write a file with the SCS_VERSION define
|
endif ()
|
||||||
file (WRITE "${BINARY_DIR}/scs_version.h.txt" "#define SCS_VERSION r${MY_WC_LAST_CHANGED_REV}\n")
|
message (STATUS "${SOURCE_DIR} contains a .svn and is revision ${SCS_VERSION}")
|
||||||
elseif (EXISTS "${SOURCE_DIR}/.git")
|
elseif (EXISTS "${SOURCE_DIR}/.git")
|
||||||
if (EXISTS "${SOURCE_DIR}/.git/svn/.metadata") # try git-svn
|
if (EXISTS "${SOURCE_DIR}/.git/svn/.metadata") # try git-svn
|
||||||
message (STATUS "Checking for Subversion revision information using git-svn")
|
message (STATUS "Checking for Subversion revision information using git-svn")
|
||||||
@ -31,6 +35,7 @@ elseif (EXISTS "${SOURCE_DIR}/.git")
|
|||||||
# extract working copy information for SOURCE_DIR into MY_XXX variables
|
# extract working copy information for SOURCE_DIR into MY_XXX variables
|
||||||
GitSubversion_WC_INFO (${SOURCE_DIR} MY)
|
GitSubversion_WC_INFO (${SOURCE_DIR} MY)
|
||||||
message ("${MY_WC_INFO}")
|
message ("${MY_WC_INFO}")
|
||||||
|
set (SCS_VERSION "r${MY_WC_LAST_CHANGED_REV}")
|
||||||
# try and determine if the working copy has outstanding changes
|
# try and determine if the working copy has outstanding changes
|
||||||
execute_process (COMMAND ${GIT_EXECUTABLE} --git-dir=${SOURCE_DIR}/.git --work-tree=${SOURCE_DIR} svn dcommit --dry-run
|
execute_process (COMMAND ${GIT_EXECUTABLE} --git-dir=${SOURCE_DIR}/.git --work-tree=${SOURCE_DIR} svn dcommit --dry-run
|
||||||
RESULT_VARIABLE __git_svn_status
|
RESULT_VARIABLE __git_svn_status
|
||||||
@ -42,10 +47,11 @@ elseif (EXISTS "${SOURCE_DIR}/.git")
|
|||||||
)
|
)
|
||||||
if ((NOT ${__git_svn_status} EQUAL 0) OR __svn_changes)
|
if ((NOT ${__git_svn_status} EQUAL 0) OR __svn_changes)
|
||||||
message (STATUS "Source tree based on revision ${MY_WC_LAST_CHANGED_REV} appears to have local changes")
|
message (STATUS "Source tree based on revision ${MY_WC_LAST_CHANGED_REV} appears to have local changes")
|
||||||
set (MY_WC_LAST_CHANGED_REV "${MY_WC_LAST_CHANGED_REV}-dirty")
|
file (APPEND ${__scs_header_file} "#define SCS_VERSION_IS_DIRTY 1\n")
|
||||||
|
set (SCS_VERSION_STR "${SCS_VERSION}-dirty")
|
||||||
|
else ()
|
||||||
|
set (SCS_VERSION_STR "${SCS_VERSION}")
|
||||||
endif ()
|
endif ()
|
||||||
# write a file with the SVNVERSION define
|
|
||||||
file (WRITE "${BINARY_DIR}/scs_version.h.txt" "#define SCS_VERSION r${MY_WC_LAST_CHANGED_REV}\n")
|
|
||||||
else ()
|
else ()
|
||||||
#
|
#
|
||||||
# try git
|
# try git
|
||||||
@ -53,23 +59,27 @@ elseif (EXISTS "${SOURCE_DIR}/.git")
|
|||||||
message (STATUS "Checking for gitrevision information")
|
message (STATUS "Checking for gitrevision information")
|
||||||
include (${SOURCE_DIR}/CMake/Modules/GetGitRevisionDescription.cmake)
|
include (${SOURCE_DIR}/CMake/Modules/GetGitRevisionDescription.cmake)
|
||||||
get_git_head_revision (${SOURCE_DIR} GIT_REFSPEC GIT_SHA1)
|
get_git_head_revision (${SOURCE_DIR} GIT_REFSPEC GIT_SHA1)
|
||||||
git_local_changes (${SOURCE_DIR} GIT_DIRTY)
|
git_local_changes (${SOURCE_DIR} GIT_SANITARY)
|
||||||
string (SUBSTRING "${GIT_SHA1}" 0 6 GIT_SHA1)
|
string (SUBSTRING "${GIT_SHA1}" 0 6 SCS_VERSION)
|
||||||
if ("${GIT_DIRTY}" STREQUAL "DIRTY")
|
if ("${GIT_SANITARY}" STREQUAL "DIRTY")
|
||||||
message (STATUS "Source tree based on revision ${GIT_REFSPEC} ${GIT_SHA1} appears to have local changes")
|
message (STATUS "Source tree based on revision ${GIT_REFSPEC} ${SCS_VERSION} appears to have local changes")
|
||||||
set (GIT_SHA1 "${GIT_SHA1}-dirty")
|
file (APPEND ${__scs_header_file} "#define SCS_VERSION_IS_DIRTY 1\n")
|
||||||
|
set (SCS_VERSION_STR "${SCS_VERSION}-dirty")
|
||||||
execute_process (COMMAND ${GIT_EXECUTABLE} --git-dir=${SOURCE_DIR}/.git --work-tree=${SOURCE_DIR} status
|
execute_process (COMMAND ${GIT_EXECUTABLE} --git-dir=${SOURCE_DIR}/.git --work-tree=${SOURCE_DIR} status
|
||||||
ERROR_QUIET
|
ERROR_QUIET
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
else ()
|
||||||
|
set (SCS_VERSION_STR "${SCS_VERSION}")
|
||||||
endif ()
|
endif ()
|
||||||
message (STATUS "refspec: ${GIT_REFSPEC} - SHA1: ${GIT_SHA1}")
|
message (STATUS "refspec: ${GIT_REFSPEC} - SHA1: ${SCS_VERSION}")
|
||||||
file (WRITE "${BINARY_DIR}/scs_version.h.txt" "#define SCS_VERSION ${GIT_SHA1}\n")
|
|
||||||
endif ()
|
endif ()
|
||||||
else()
|
else()
|
||||||
message (STATUS "No SCS found")
|
message (STATUS "No SCS found")
|
||||||
file (WRITE "${BINARY_DIR}/scs_version.h.txt" "#define SCS_VERSION\n")
|
|
||||||
endif ()
|
endif ()
|
||||||
|
file (APPEND ${__scs_header_file} "#define SCS_VERSION ${SCS_VERSION}\n")
|
||||||
|
file (APPEND ${__scs_header_file} "#define SCS_VERSION_STR \"${SCS_VERSION_STR}\"\n")
|
||||||
|
|
||||||
# copy the file to the final header only if the version changes
|
# copy the file to the final header only if the version changes
|
||||||
# reduces needless rebuilds
|
# reduces needless rebuilds
|
||||||
execute_process (COMMAND ${CMAKE_COMMAND} -E copy_if_different "${BINARY_DIR}/scs_version.h.txt" "${OUTPUT_DIR}/scs_version.h")
|
execute_process (COMMAND ${CMAKE_COMMAND} -E copy_if_different ${__scs_header_file} "${OUTPUT_DIR}/scs_version.h")
|
||||||
|
file (REMOVE ${__scs_header_file})
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
set (CPACK_PACKAGE_VENDOR "@PROJECT_VENDOR@")
|
set (CPACK_PACKAGE_VENDOR "@PROJECT_VENDOR@")
|
||||||
set (CPACK_PACKAGE_CONTACT "@PROJECT_CONTACT@")
|
set (CPACK_PACKAGE_CONTACT "@PROJECT_CONTACT@")
|
||||||
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "@PROJECT_SUMMARY_DESCRIPTION@")
|
|
||||||
set (CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/COPYING")
|
set (CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/COPYING")
|
||||||
set (CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
|
set (CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
|
||||||
set (CPACK_PACKAGE_EXECUTABLES wsjtx "@PROJECT_NAME@")
|
set (CPACK_PACKAGE_EXECUTABLES wsjtx "@PROJECT_NAME@")
|
||||||
@ -43,6 +42,19 @@ if (CPACK_GENERATOR MATCHES "NSIS")
|
|||||||
set (CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}")
|
set (CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}")
|
||||||
set (CPACK_NSIS_MUI_FINISHPAGE_RUN "wsjtx.exe")
|
set (CPACK_NSIS_MUI_FINISHPAGE_RUN "wsjtx.exe")
|
||||||
set (CPACK_NSIS_MODIFY_PATH ON)
|
set (CPACK_NSIS_MODIFY_PATH ON)
|
||||||
|
|
||||||
|
# Setup the installer and uninstall VersionInfo resource
|
||||||
|
set (CPACK_NSIS_EXTRA_DEFINES
|
||||||
|
"VIProductVersion @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@.@PROJECT_VERSION_TWEAK@
|
||||||
|
VIFileVersion @PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@.@PROJECT_VERSION_TWEAK@
|
||||||
|
VIAddVersionKey /LANG=0 \"ProductName\" \"@PROJECT_NAME@\"
|
||||||
|
VIAddVersionKey /LANG=0 \"ProductVersion\" \"v@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@@BUILD_TYPE_REVISION@\"
|
||||||
|
VIAddVersionKey /LANG=0 \"Comments\" \"@PROJECT_DESCRIPTION@\"
|
||||||
|
VIAddVersionKey /LANG=0 \"CompanyName\" \"@PROJECT_VENDOR@\"
|
||||||
|
VIAddVersionKey /LANG=0 \"LegalCopyright\" \"@PROJECT_COPYRIGHT@\"
|
||||||
|
VIAddVersionKey /LANG=0 \"FileDescription\" \"@PROJECT_NAME@ Installer\"
|
||||||
|
VIAddVersionKey /LANG=0 \"FileVersion\" \"v@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@@BUILD_TYPE_REVISION@\""
|
||||||
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if ("${CPACK_GENERATOR}" STREQUAL "PackageMaker")
|
if ("${CPACK_GENERATOR}" STREQUAL "PackageMaker")
|
||||||
@ -52,7 +64,7 @@ if ("${CPACK_GENERATOR}" STREQUAL "PackageMaker")
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if ("${CPACK_GENERATOR}" STREQUAL "DragNDrop")
|
if ("${CPACK_GENERATOR}" STREQUAL "DragNDrop")
|
||||||
set (CPACK_DMG_VOLUME_NAME "@PROJECT_NAME@")
|
set (CPACK_DMG_VOLUME_NAME "@PROJECT_BUNDLE_NAME@")
|
||||||
set (CPACK_DMG_BACKGROUND_IMAGE "@PROJECT_SOURCE_DIR@/icons/Darwin/DragNDrop Background.png")
|
set (CPACK_DMG_BACKGROUND_IMAGE "@PROJECT_SOURCE_DIR@/icons/Darwin/DragNDrop Background.png")
|
||||||
set (CPACK_DMG_DS_STORE "@PROJECT_SOURCE_DIR@/Darwin/wsjtx_DMG.DS_Store")
|
set (CPACK_DMG_DS_STORE "@PROJECT_SOURCE_DIR@/Darwin/wsjtx_DMG.DS_Store")
|
||||||
set (CPACK_BUNDLE_NAME "@WSJTX_BUNDLE_NAME@")
|
set (CPACK_BUNDLE_NAME "@WSJTX_BUNDLE_NAME@")
|
||||||
|
511
CMakeLists.txt
511
CMakeLists.txt
@ -1,4 +1,4 @@
|
|||||||
cmake_minimum_required (VERSION 2.8.10 FATAL_ERROR)
|
cmake_minimum_required (VERSION 3.9 FATAL_ERROR)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
#
|
#
|
||||||
@ -14,117 +14,73 @@ if (APPLE)
|
|||||||
CACHE STRING "Earliest version of macOS supported
|
CACHE STRING "Earliest version of macOS supported
|
||||||
|
|
||||||
Earliest version we can support with Qt 5.12, C++11 & libc++ is 10.13.
|
Earliest version we can support with Qt 5.12, C++11 & libc++ is 10.13.
|
||||||
Do not override this if you intend to build an official deployable installer.")
|
|
||||||
set (CMAKE_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
|
|
||||||
CACHE STRING "Mac OS X SDK to build with
|
|
||||||
|
|
||||||
Change this to the newest SDK available that you can install on your system (>10.14 preferred).
|
|
||||||
Do not override this if you intend to build an official deployable installer.")
|
Do not override this if you intend to build an official deployable installer.")
|
||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
project (wsjtx C CXX Fortran)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# CMake policies
|
# CMake policies
|
||||||
#
|
#
|
||||||
if (POLICY CMP0020)
|
if (POLICY CMP0020)
|
||||||
cmake_policy (SET CMP0020 NEW) # link to Qt winmain on Windows
|
cmake_policy (SET CMP0020 NEW) # link to Qt winmain on Windows
|
||||||
endif (POLICY CMP0020)
|
endif ()
|
||||||
|
|
||||||
if (POLICY CMP0043)
|
if (POLICY CMP0043)
|
||||||
cmake_policy (SET CMP0043 NEW) # ignore COMPILE_DEFINITIONS_<CONFIG>
|
cmake_policy (SET CMP0043 NEW) # ignore COMPILE_DEFINITIONS_<CONFIG>
|
||||||
endif (POLICY CMP0043)
|
endif ()
|
||||||
|
|
||||||
|
if (POLICY CMP0048)
|
||||||
|
cmake_policy (SET CMP0048 NEW) # clear PROJECT_Version_* vriables if not set in project() command
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (POLICY CMP0063)
|
if (POLICY CMP0063)
|
||||||
cmake_policy (SET CMP0063 NEW) # honour visibility properties for all library types
|
cmake_policy (SET CMP0063 NEW) # honour visibility properties for all library types
|
||||||
endif (POLICY CMP0063)
|
endif ()
|
||||||
|
|
||||||
if (POLICY CMP0071)
|
if (POLICY CMP0071)
|
||||||
cmake_policy (SET CMP0071 NEW) # run automoc and autouic on generated sources
|
cmake_policy (SET CMP0071 NEW) # run automoc and autouic on generated sources
|
||||||
endif (POLICY CMP0071)
|
endif ()
|
||||||
|
|
||||||
include (${PROJECT_SOURCE_DIR}/CMake/VersionCompute.cmake)
|
project (wsjtx
|
||||||
message (STATUS "Building ${CMAKE_PROJECT_NAME}-${wsjtx_VERSION}")
|
VERSION 2.4.0.0
|
||||||
|
DESCRIPTION "WSJT-X: Digital Modes for Weak Signal Communications in Amateur Radio"
|
||||||
|
LANGUAGES C CXX Fortran
|
||||||
|
)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Local CMake modules and support files
|
||||||
|
#
|
||||||
|
set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake/Modules ${CMAKE_MODULE_PATH})
|
||||||
|
|
||||||
|
set (PROJECT_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
if (NOT PROJECT_ARCHITECTURE)
|
||||||
|
# This is supposed to happen already on Windows
|
||||||
|
if (CMAKE_SIZEOF_VOID_P MATCHES 8)
|
||||||
|
set (PROJECT_ARCHITECTURE "x64")
|
||||||
|
else ()
|
||||||
|
set (PROJECT_ARCHITECTURE "$ENV{PROCESSOR_ARCHITECTURE}")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
message (STATUS "******************************************************")
|
||||||
|
message (STATUS "Building for for: ${CMAKE_SYSTEM_NAME}-${PROJECT_ARCHITECTURE}")
|
||||||
|
message (STATUS "******************************************************")
|
||||||
|
|
||||||
|
include (set_build_type)
|
||||||
|
# RC 0 or omitted is a development build, GA is a General Availability release build
|
||||||
|
set_build_type (RC 0)
|
||||||
|
set (wsjtx_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${BUILD_TYPE_REVISION}")
|
||||||
|
|
||||||
#
|
#
|
||||||
# project information
|
# project information
|
||||||
#
|
#
|
||||||
set (PROJECT_NAME "WSJT-X")
|
set (PROJECT_BUNDLE_NAME "WSJT-X")
|
||||||
set (PROJECT_VENDOR "Joe Taylor, K1JT")
|
set (PROJECT_VENDOR "Joe Taylor, K1JT")
|
||||||
set (PROJECT_CONTACT "Joe Taylor <k1jt@arrl.net>")
|
set (PROJECT_CONTACT "Joe Taylor <k1jt@arrl.net>")
|
||||||
set (PROJECT_COPYRIGHT "Copyright (C) 2001-2019 by Joe Taylor, K1JT")
|
set (PROJECT_COPYRIGHT "Copyright (C) 2001-2020 by Joe Taylor, K1JT")
|
||||||
set (PROJECT_HOMEPAGE http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html)
|
set (PROJECT_HOMEPAGE https://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html)
|
||||||
set (PROJECT_MANUAL wsjtx-main)
|
set (PROJECT_MANUAL wsjtx-main)
|
||||||
set (PROJECT_MANUAL_DIRECTORY_URL http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/)
|
set (PROJECT_MANUAL_DIRECTORY_URL https://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/)
|
||||||
set (PROJECT_SAMPLES_URL http://downloads.sourceforge.net/project/wsjt/)
|
set (PROJECT_SAMPLES_URL http://downloads.sourceforge.net/project/wsjt/)
|
||||||
set (PROJECT_SAMPLES_UPLOAD_DEST frs.sourceforge.net:/home/frs/project/wsjt/)
|
set (PROJECT_SAMPLES_UPLOAD_DEST frs.sourceforge.net:/home/frs/project/wsjt/)
|
||||||
set (PROJECT_SUMMARY_DESCRIPTION "${PROJECT_NAME} - Digital Modes for Weak Signal Communications in Amateur Radio.")
|
|
||||||
set (PROJECT_DESCRIPTION "${PROJECT_SUMMARY_DESCRIPTION}
|
|
||||||
${PROJECT_NAME} is a computer program designed to facilitate basic amateur
|
|
||||||
radio communication using very weak signals. The first four letters in
|
|
||||||
the program name stand for `(W)eak (S)ignal communication by
|
|
||||||
K1(JT),` while the suffix `-X` indicates that ${PROJECT_NAME} started as
|
|
||||||
an extended and experimental branch of the program
|
|
||||||
WSJT.
|
|
||||||
.
|
|
||||||
${PROJECT_NAME} Version 1.8 offers nine different protocols or modes: FT8,
|
|
||||||
JT4, JT9, JT65, QRA64, ISCAT, MSK144, WSPR, and Echo.
|
|
||||||
The first five are designed for making reliable QSOs under extreme
|
|
||||||
weak-signal conditions. They use nearly identical message structure
|
|
||||||
and source encoding. JT65 and QRA64 were designed for EME
|
|
||||||
(`moonbounce`) on the VHF/UHF bands and have also proven very
|
|
||||||
effective for worldwide QRP communication on the HF bands. QRA64 has
|
|
||||||
a number of advantages over JT65, including better performance on the
|
|
||||||
very weakest signals. We imagine that over time it may replace JT65
|
|
||||||
for EME use. JT9 was originally designed for the LF, MF, and lower HF
|
|
||||||
bands. Its submode JT9A is 2 dB more sensitive than JT65 while using
|
|
||||||
less than 10% of the bandwidth. JT4 offers a wide variety of tone
|
|
||||||
spacings and has proven highly effective for EME on microwave bands up
|
|
||||||
to 24 GHz. These four `slow` modes use one-minute timed sequences
|
|
||||||
of alternating transmission and reception, so a minimal QSO takes four
|
|
||||||
to six minutes — two or three transmissions by each station, one
|
|
||||||
sending in odd UTC minutes and the other even. FT8 is operationally
|
|
||||||
similar but four times faster (15-second T/R sequences) and less
|
|
||||||
sensitive by a few dB. On the HF bands, world-wide QSOs are possible
|
|
||||||
with any of these modes using power levels of a few watts (or even
|
|
||||||
milliwatts) and compromise antennas. On VHF bands and higher, QSOs
|
|
||||||
are possible (by EME and other propagation types) at signal levels 10
|
|
||||||
to 15 dB below those required for CW.
|
|
||||||
.
|
|
||||||
ISCAT, MSK144, and optionally submodes JT9E-H are `fast`
|
|
||||||
protocols designed to take advantage of brief signal enhancements from
|
|
||||||
ionized meteor trails, aircraft scatter, and other types of scatter
|
|
||||||
propagation. These modes use timed sequences of 5, 10, 15, or 30 s
|
|
||||||
duration. User messages are transmitted repeatedly at high rate (up
|
|
||||||
to 250 characters per second, for MSK144) to make good use of the
|
|
||||||
shortest meteor-trail reflections or `pings`. ISCAT uses free-form
|
|
||||||
messages up to 28 characters long, while MSK144 uses the same
|
|
||||||
structured messages as the slow modes and optionally an abbreviated
|
|
||||||
format with hashed callsigns.
|
|
||||||
.
|
|
||||||
WSPR (pronounced `whisper`) stands for (W)eak (S)ignal
|
|
||||||
(P)ropagation (R)eporter. The WSPR protocol was designed for probing
|
|
||||||
potential propagation paths using low-power transmissions. WSPR
|
|
||||||
messages normally carry the transmitting station’s callsign, grid
|
|
||||||
locator, and transmitter power in dBm, and they can be decoded at
|
|
||||||
signal-to-noise ratios as low as -28 dB in a 2500 Hz bandwidth. WSPR
|
|
||||||
users with internet access can automatically upload reception
|
|
||||||
reports to a central database called wsprnet that provides a mapping
|
|
||||||
facility, archival storage, and many other features.
|
|
||||||
.
|
|
||||||
Echo mode allows you to detect and measure your own station's echoes
|
|
||||||
from the moon, even if they are far below the audible threshold.
|
|
||||||
.
|
|
||||||
${PROJECT_NAME} provides spectral displays for receiver passbands as wide as
|
|
||||||
5 kHz, flexible rig control for nearly all modern radios used by
|
|
||||||
amateurs, and a wide variety of special aids such as automatic Doppler
|
|
||||||
tracking for EME QSOs and Echo testing. The program runs equally well
|
|
||||||
on Windows, Macintosh, and Linux systems, and installation packages
|
|
||||||
are available for all three platforms.
|
|
||||||
.
|
|
||||||
Be sure to read the online ${PROJECT_NAME} User's Guide.")
|
|
||||||
|
|
||||||
set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake/Modules ${CMAKE_MODULE_PATH})
|
|
||||||
|
|
||||||
# make sure that the default configuration is a RELEASE
|
# make sure that the default configuration is a RELEASE
|
||||||
if (NOT CMAKE_BUILD_TYPE)
|
if (NOT CMAKE_BUILD_TYPE)
|
||||||
@ -182,19 +138,6 @@ If you just want to see the debug output from the application then the easiest w
|
|||||||
attach a debugger which will then receive the console output inside its console." ON
|
attach a debugger which will then receive the console output inside its console." ON
|
||||||
"WIN32" OFF)
|
"WIN32" OFF)
|
||||||
|
|
||||||
set (PROJECT_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
|
|
||||||
if (NOT PROJECT_ARCHITECTURE)
|
|
||||||
# This is supposed to happen already on Windows
|
|
||||||
if (CMAKE_SIZEOF_VOID_P MATCHES 8)
|
|
||||||
set (PROJECT_ARCHITECTURE "x64")
|
|
||||||
else ()
|
|
||||||
set (PROJECT_ARCHITECTURE "$ENV{PROCESSOR_ARCHITECTURE}")
|
|
||||||
endif ()
|
|
||||||
endif (NOT PROJECT_ARCHITECTURE)
|
|
||||||
message (STATUS "******************************************************")
|
|
||||||
message (STATUS "Building for for: ${CMAKE_SYSTEM_NAME}-${PROJECT_ARCHITECTURE}")
|
|
||||||
message (STATUS "******************************************************")
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# install locations
|
# install locations
|
||||||
#
|
#
|
||||||
@ -809,6 +752,8 @@ if (APPLE)
|
|||||||
DEPENDS ${ICONSRCS}
|
DEPENDS ${ICONSRCS}
|
||||||
COMMENT "Building Icons"
|
COMMENT "Building Icons"
|
||||||
)
|
)
|
||||||
|
else ()
|
||||||
|
set (WSJTX_ICON_FILE icons/windows-icons/wsjtx.ico)
|
||||||
endif (APPLE)
|
endif (APPLE)
|
||||||
|
|
||||||
set_source_files_properties (${WSJTX_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
set_source_files_properties (${WSJTX_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
||||||
@ -871,11 +816,30 @@ endif (APPLE)
|
|||||||
#
|
#
|
||||||
# find some useful tools
|
# find some useful tools
|
||||||
#
|
#
|
||||||
|
include (CheckCSourceCompiles)
|
||||||
include (CheckSymbolExists)
|
include (CheckSymbolExists)
|
||||||
|
include (generate_version_info)
|
||||||
|
|
||||||
find_program(CTAGS ctags)
|
find_program(CTAGS ctags)
|
||||||
find_program(ETAGS etags)
|
find_program(ETAGS etags)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Standard C Math Library
|
||||||
|
#
|
||||||
|
set (LIBM_TEST_SOURCE "#include<math.h>\nfloat f; int main(){sqrt(f);return 0;}")
|
||||||
|
check_c_source_compiles ("${LIBM_TEST_SOURCE}" HAVE_MATH)
|
||||||
|
if (HAVE_MATH)
|
||||||
|
set (LIBM_LIBRARIES)
|
||||||
|
else ()
|
||||||
|
set (CMAKE_REQUIRED_LIBRARIES m)
|
||||||
|
check_c_source_compiles ("${LIBM_TEST_SOURCE}" HAVE_LIBM_MATH)
|
||||||
|
unset (CMAKE_REQUIRED_LIBRARIES)
|
||||||
|
if (NOT HAVE_LIBM_MATH)
|
||||||
|
message (FATAL_ERROR "Unable to use C math library functions")
|
||||||
|
endif ()
|
||||||
|
set (LIBM_LIBRARIES m)
|
||||||
|
endif ()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boost
|
# Boost
|
||||||
#
|
#
|
||||||
@ -1096,6 +1060,148 @@ query_qmake (QT_INSTALL_IMPORTS QT_IMPORTS_DIR)
|
|||||||
query_qmake (QT_HOST_DATA QT_DATA_DIR)
|
query_qmake (QT_HOST_DATA QT_DATA_DIR)
|
||||||
set (QT_MKSPECS_DIR ${QT_DATA_DIR}/mkspecs)
|
set (QT_MKSPECS_DIR ${QT_DATA_DIR}/mkspecs)
|
||||||
|
|
||||||
|
# project definitions
|
||||||
|
add_definitions (-DQT5 -DCMAKE_BUILD -DBIGSYM=1)
|
||||||
|
if (CMAKE_HOST_UNIX)
|
||||||
|
add_definitions (-DUNIX)
|
||||||
|
elseif (CMAKE_HOST_WIN32)
|
||||||
|
add_definitions (-DWIN32)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# build a library of package functionality (without and optionally with OpenMP support)
|
||||||
|
add_library (wsjt_cxx STATIC ${wsjt_CSRCS} ${wsjt_CXXSRCS})
|
||||||
|
target_link_libraries (wsjt_cxx ${LIBM_LIBRARIES})
|
||||||
|
|
||||||
|
# build an OpenMP variant of the Fortran library routines
|
||||||
|
add_library (wsjt_fort STATIC ${wsjt_FSRCS})
|
||||||
|
target_link_libraries (wsjt_fort ${FFTW3_LIBRARIES})
|
||||||
|
if (${OPENMP_FOUND} OR APPLE)
|
||||||
|
add_library (wsjt_fort_omp STATIC ${wsjt_FSRCS})
|
||||||
|
target_link_libraries (wsjt_fort_omp ${FFTW3_LIBRARIES})
|
||||||
|
if (OpenMP_C_FLAGS)
|
||||||
|
set_target_properties (wsjt_fort_omp
|
||||||
|
PROPERTIES
|
||||||
|
COMPILE_FLAGS "${OpenMP_C_FLAGS}"
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
set_target_properties (wsjt_fort_omp
|
||||||
|
PROPERTIES
|
||||||
|
Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/fortran_modules_omp
|
||||||
|
)
|
||||||
|
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/fortran_modules_omp)
|
||||||
|
if (APPLE)
|
||||||
|
# On Mac we don't have working OpenMP support in the C/C++
|
||||||
|
# compilers so we have to manually set the correct flags to get
|
||||||
|
# OpenMP support in jt9.
|
||||||
|
target_compile_options (wsjt_fort_omp
|
||||||
|
PRIVATE
|
||||||
|
$<$<COMPILE_LANGUAGE:Fortran>:-fopenmp> # assumes GNU style Fortran compiler
|
||||||
|
)
|
||||||
|
endif (APPLE)
|
||||||
|
endif (${OPENMP_FOUND} OR APPLE)
|
||||||
|
|
||||||
|
if(WSJT_BUILD_UTILS)
|
||||||
|
|
||||||
|
add_executable (jt4sim lib/jt4sim.f90)
|
||||||
|
target_link_libraries (jt4sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (jt65sim lib/jt65sim.f90)
|
||||||
|
target_link_libraries (jt65sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (sumsim lib/sumsim.f90)
|
||||||
|
target_link_libraries (sumsim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (qra64sim lib/qra/qra64/qra64sim.f90)
|
||||||
|
target_link_libraries (qra64sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (qra65sim lib/qra/qra65/qra65sim.f90)
|
||||||
|
target_link_libraries (qra65sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (test_qra64 lib/test_qra64.f90)
|
||||||
|
target_link_libraries (test_qra64 wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (test_qra65 lib/test_qra65.f90)
|
||||||
|
target_link_libraries (test_qra65 wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (jt49sim lib/jt49sim.f90)
|
||||||
|
target_link_libraries (jt49sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (allsim lib/allsim.f90)
|
||||||
|
target_link_libraries (allsim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (rtty_spec lib/rtty_spec.f90)
|
||||||
|
target_link_libraries (rtty_spec wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (jt65code lib/jt65code.f90)
|
||||||
|
target_link_libraries (jt65code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (qra64code lib/qra64code.f90)
|
||||||
|
target_link_libraries (qra64code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (jt9code lib/jt9code.f90)
|
||||||
|
target_link_libraries (jt9code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (wsprcode lib/wsprcode/wsprcode.f90 lib/wsprcode/nhash.c)
|
||||||
|
target_link_libraries (wsprcode wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (encode77 lib/77bit/encode77.f90)
|
||||||
|
target_link_libraries (encode77 wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (wsprsim ${wsprsim_CSRCS})
|
||||||
|
target_link_libraries (wsprsim ${LIBM_LIBRARIES})
|
||||||
|
|
||||||
|
add_executable (jt4code lib/jt4code.f90)
|
||||||
|
target_link_libraries (jt4code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (msk144code lib/msk144code.f90)
|
||||||
|
target_link_libraries (msk144code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (ft8code lib/ft8/ft8code.f90)
|
||||||
|
target_link_libraries (ft8code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (ft4code lib/ft4/ft4code.f90)
|
||||||
|
target_link_libraries (ft4code wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (ft8sim lib/ft8/ft8sim.f90)
|
||||||
|
target_link_libraries (ft8sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (msk144sim lib/msk144sim.f90)
|
||||||
|
target_link_libraries (msk144sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (ft4sim lib/ft4/ft4sim.f90)
|
||||||
|
target_link_libraries (ft4sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (ft4sim_mult lib/ft4/ft4sim_mult.f90)
|
||||||
|
target_link_libraries (ft4sim_mult wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (fst4sim lib/fst4/fst4sim.f90)
|
||||||
|
target_link_libraries (fst4sim wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (ldpcsim240_101 lib/fst4/ldpcsim240_101.f90)
|
||||||
|
target_link_libraries (ldpcsim240_101 wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
add_executable (ldpcsim240_74 lib/fst4/ldpcsim240_74.f90)
|
||||||
|
target_link_libraries (ldpcsim240_74 wsjt_fort wsjt_cxx)
|
||||||
|
|
||||||
|
endif(WSJT_BUILD_UTILS)
|
||||||
|
|
||||||
|
add_executable (fmtave lib/fmtave.f90)
|
||||||
|
|
||||||
|
add_executable (fcal lib/fcal.f90)
|
||||||
|
|
||||||
|
add_executable (fmeasure lib/fmeasure.f90)
|
||||||
|
|
||||||
|
# build the wsprd WSPR mode decoder driver
|
||||||
|
generate_version_info (wsprd_VERSION_RESOURCES
|
||||||
|
NAME wsprd
|
||||||
|
BUNDLE ${PROJECT_BUNDLE_NAME}
|
||||||
|
ICON ${WSJTX_ICON_FILE}
|
||||||
|
FILE_DESCRIPTION "WSPR mode decoder"
|
||||||
|
)
|
||||||
|
add_executable (wsprd ${wsprd_CSRCS} lib/indexx.f90 lib/wsprd/osdwspr.f90 ${wsprd_VERSION_RESOURCES})
|
||||||
|
target_include_directories (wsprd PRIVATE ${FFTW3_INCLUDE_DIRS})
|
||||||
|
target_link_libraries (wsprd ${FFTW3_LIBRARIES} ${LIBM_LIBRARIES})
|
||||||
|
|
||||||
# Tell CMake to run moc when necessary
|
# Tell CMake to run moc when necessary
|
||||||
set (CMAKE_AUTOMOC ON)
|
set (CMAKE_AUTOMOC ON)
|
||||||
include_directories (${CMAKE_CURRENT_BINARY_DIR})
|
include_directories (${CMAKE_CURRENT_BINARY_DIR})
|
||||||
@ -1109,14 +1215,6 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR})
|
|||||||
# look for includes there:
|
# look for includes there:
|
||||||
set (CMAKE_INCLUDE_CURRENT_DIR ON)
|
set (CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
|
||||||
# project definitions
|
|
||||||
add_definitions (-DQT5 -DCMAKE_BUILD -DBIGSYM=1)
|
|
||||||
if (CMAKE_HOST_UNIX)
|
|
||||||
add_definitions (-DUNIX)
|
|
||||||
elseif (CMAKE_HOST_WIN32)
|
|
||||||
add_definitions (-DWIN32)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# source navigation
|
# source navigation
|
||||||
#
|
#
|
||||||
@ -1200,7 +1298,6 @@ add_resources (wsjtx_RESOURCES /Translations ${QM_FILES})
|
|||||||
|
|
||||||
configure_file (wsjtx.qrc.in wsjtx.qrc @ONLY)
|
configure_file (wsjtx.qrc.in wsjtx.qrc @ONLY)
|
||||||
|
|
||||||
|
|
||||||
# UI generation
|
# UI generation
|
||||||
qt5_wrap_ui (wsjt_qt_GENUISRCS ${wsjt_qt_UISRCS})
|
qt5_wrap_ui (wsjt_qt_GENUISRCS ${wsjt_qt_UISRCS})
|
||||||
qt5_wrap_ui (wsjtx_GENUISRCS ${wsjtx_UISRCS})
|
qt5_wrap_ui (wsjtx_GENUISRCS ${wsjtx_UISRCS})
|
||||||
@ -1218,39 +1315,11 @@ if (WIN32)
|
|||||||
endif (WIN32)
|
endif (WIN32)
|
||||||
|
|
||||||
#
|
#
|
||||||
# targets
|
# targets dependent on Qt
|
||||||
#
|
#
|
||||||
|
|
||||||
# build a library of package functionality (without and optionally with OpenMP support)
|
add_executable (record_time_signal Audio/tools/record_time_signal.cpp)
|
||||||
add_library (wsjt_cxx STATIC ${wsjt_CSRCS} ${wsjt_CXXSRCS})
|
target_link_libraries (record_time_signal wsjt_cxx wsjt_qtmm wsjt_qt)
|
||||||
|
|
||||||
# build an OpenMP variant of the Fortran library routines
|
|
||||||
add_library (wsjt_fort STATIC ${wsjt_FSRCS})
|
|
||||||
target_link_libraries (wsjt_fort ${FFTW3_LIBRARIES})
|
|
||||||
if (${OPENMP_FOUND} OR APPLE)
|
|
||||||
add_library (wsjt_fort_omp STATIC ${wsjt_FSRCS})
|
|
||||||
target_link_libraries (wsjt_fort_omp ${FFTW3_LIBRARIES})
|
|
||||||
if (OpenMP_C_FLAGS)
|
|
||||||
set_target_properties (wsjt_fort_omp
|
|
||||||
PROPERTIES
|
|
||||||
COMPILE_FLAGS "${OpenMP_C_FLAGS}"
|
|
||||||
)
|
|
||||||
endif ()
|
|
||||||
set_target_properties (wsjt_fort_omp
|
|
||||||
PROPERTIES
|
|
||||||
Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/fortran_modules_omp
|
|
||||||
)
|
|
||||||
file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/fortran_modules_omp)
|
|
||||||
if (APPLE)
|
|
||||||
# On Mac we don't have working OpenMP support in the C/C++
|
|
||||||
# compilers so we have to manually set the correct flags to get
|
|
||||||
# OpenMP support in jt9.
|
|
||||||
target_compile_options (wsjt_fort_omp
|
|
||||||
PRIVATE
|
|
||||||
$<$<COMPILE_LANGUAGE:Fortran>:-fopenmp> # assumes GNU style Fortran compiler
|
|
||||||
)
|
|
||||||
endif (APPLE)
|
|
||||||
endif (${OPENMP_FOUND} OR APPLE)
|
|
||||||
|
|
||||||
# build a library for the QCustomPlot widget
|
# build a library for the QCustomPlot widget
|
||||||
add_library (qcp STATIC ${qcp_CXXSRCS})
|
add_library (qcp STATIC ${qcp_CXXSRCS})
|
||||||
@ -1275,18 +1344,15 @@ target_link_libraries (fort_qt Qt5::Core)
|
|||||||
add_library (wsjt_qtmm STATIC ${wsjt_qtmm_CXXSRCS} ${wsjt_qtmm_GENUISRCS})
|
add_library (wsjt_qtmm STATIC ${wsjt_qtmm_CXXSRCS} ${wsjt_qtmm_GENUISRCS})
|
||||||
target_link_libraries (wsjt_qtmm Qt5::Multimedia)
|
target_link_libraries (wsjt_qtmm Qt5::Multimedia)
|
||||||
|
|
||||||
# Always build these:
|
# build the jt9 slow mode decoder driver
|
||||||
add_executable (wsprd ${wsprd_CSRCS} lib/indexx.f90 lib/wsprd/osdwspr.f90)
|
generate_version_info (jt9_VERSION_RESOURCES
|
||||||
target_include_directories (wsprd PRIVATE ${FFTW3_INCLUDE_DIRS})
|
NAME jt9
|
||||||
target_link_libraries (wsprd ${FFTW3_LIBRARIES})
|
BUNDLE ${PROJECT_BUNDLE_NAME}
|
||||||
|
ICON ${WSJTX_ICON_FILE}
|
||||||
|
FILE_DESCRIPTION "Slow mode decoder"
|
||||||
|
)
|
||||||
|
|
||||||
add_executable (fmtave lib/fmtave.f90 wsjtx.rc)
|
add_executable (jt9 ${jt9_FSRCS} ${jt9_VERSION_RESOURCES})
|
||||||
|
|
||||||
add_executable (fcal lib/fcal.f90 wsjtx.rc)
|
|
||||||
|
|
||||||
add_executable (fmeasure lib/fmeasure.f90 wsjtx.rc)
|
|
||||||
|
|
||||||
add_executable (jt9 ${jt9_FSRCS} wsjtx.rc)
|
|
||||||
if (${OPENMP_FOUND} OR APPLE)
|
if (${OPENMP_FOUND} OR APPLE)
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
# On Mac we don't have working OpenMP support in the C/C++
|
# On Mac we don't have working OpenMP support in the C/C++
|
||||||
@ -1324,100 +1390,19 @@ else (${OPENMP_FOUND} OR APPLE)
|
|||||||
target_link_libraries (jt9 wsjt_fort wsjt_cxx fort_qt)
|
target_link_libraries (jt9 wsjt_fort wsjt_cxx fort_qt)
|
||||||
endif (${OPENMP_FOUND} OR APPLE)
|
endif (${OPENMP_FOUND} OR APPLE)
|
||||||
|
|
||||||
if(WSJT_BUILD_UTILS)
|
|
||||||
add_executable (jt4sim lib/jt4sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (jt4sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (jt65sim lib/jt65sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (jt65sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (sumsim lib/sumsim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (sumsim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (qra64sim lib/qra/qra64/qra64sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (qra64sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (qra65sim lib/qra/qra65/qra65sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (qra65sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (test_qra64 lib/test_qra64.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (test_qra64 wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (test_qra65 lib/test_qra65.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (test_qra65 wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (jt49sim lib/jt49sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (jt49sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (allsim lib/allsim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (allsim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (rtty_spec lib/rtty_spec.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (rtty_spec wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (jt65code lib/jt65code.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (jt65code wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (qra64code lib/qra64code.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (qra64code wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (jt9code lib/jt9code.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (jt9code wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (wsprcode lib/wsprcode/wsprcode.f90 lib/wsprcode/nhash.c
|
|
||||||
wsjtx.rc)
|
|
||||||
target_link_libraries (wsprcode wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (encode77 lib/77bit/encode77.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (encode77 wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (wsprsim ${wsprsim_CSRCS})
|
|
||||||
|
|
||||||
add_executable (jt4code lib/jt4code.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (jt4code wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (msk144code lib/msk144code.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (msk144code wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (ft8code lib/ft8/ft8code.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (ft8code wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (ft4code lib/ft4/ft4code.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (ft4code wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (ft8sim lib/ft8/ft8sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (ft8sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (msk144sim lib/msk144sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (msk144sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (ft4sim lib/ft4/ft4sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (ft4sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (ft4sim_mult lib/ft4/ft4sim_mult.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (ft4sim_mult wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (record_time_signal Audio/tools/record_time_signal.cpp)
|
|
||||||
target_link_libraries (record_time_signal wsjt_cxx wsjt_qtmm wsjt_qt)
|
|
||||||
|
|
||||||
add_executable (fst4sim lib/fst4/fst4sim.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (fst4sim wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (ldpcsim240_101 lib/fst4/ldpcsim240_101.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (ldpcsim240_101 wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
add_executable (ldpcsim240_74 lib/fst4/ldpcsim240_74.f90 wsjtx.rc)
|
|
||||||
target_link_libraries (ldpcsim240_74 wsjt_fort wsjt_cxx)
|
|
||||||
|
|
||||||
endif(WSJT_BUILD_UTILS)
|
|
||||||
|
|
||||||
# build the main application
|
# build the main application
|
||||||
|
generate_version_info (wsjtx_VERSION_RESOURCES
|
||||||
|
NAME wsjtx
|
||||||
|
BUNDLE ${PROJECT_BUNDLE_NAME}
|
||||||
|
ICON ${WSJTX_ICON_FILE}
|
||||||
|
)
|
||||||
|
|
||||||
add_executable (wsjtx MACOSX_BUNDLE
|
add_executable (wsjtx MACOSX_BUNDLE
|
||||||
${wsjtx_CXXSRCS}
|
${wsjtx_CXXSRCS}
|
||||||
${wsjtx_GENUISRCS}
|
${wsjtx_GENUISRCS}
|
||||||
wsjtx.rc
|
|
||||||
${WSJTX_ICON_FILE}
|
${WSJTX_ICON_FILE}
|
||||||
${wsjtx_RESOURCES_RCC}
|
${wsjtx_RESOURCES_RCC}
|
||||||
|
${wsjtx_VERSION_RESOURCES}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (WSJT_CREATE_WINMAIN)
|
if (WSJT_CREATE_WINMAIN)
|
||||||
@ -1426,12 +1411,12 @@ endif (WSJT_CREATE_WINMAIN)
|
|||||||
|
|
||||||
set_target_properties (wsjtx PROPERTIES
|
set_target_properties (wsjtx PROPERTIES
|
||||||
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Darwin/Info.plist.in"
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Darwin/Info.plist.in"
|
||||||
MACOSX_BUNDLE_INFO_STRING "${WSJTX_DESCRIPTION_SUMMARY}"
|
MACOSX_BUNDLE_INFO_STRING "${PROJECT_DESCRIPTION}"
|
||||||
MACOSX_BUNDLE_ICON_FILE "${WSJTX_ICON_FILE}"
|
MACOSX_BUNDLE_ICON_FILE "${WSJTX_ICON_FILE}"
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION ${wsjtx_VERSION}
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING "v${wsjtx_VERSION}"
|
MACOSX_BUNDLE_SHORT_VERSION_STRING "v${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}"
|
||||||
MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${wsjtx_VERSION}"
|
MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}${SCS_VERSION_STR}"
|
||||||
MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}"
|
MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_BUNDLE_NAME}"
|
||||||
MACOSX_BUNDLE_BUNDLE_EXECUTABLE_NAME "${PROJECT_NAME}"
|
MACOSX_BUNDLE_BUNDLE_EXECUTABLE_NAME "${PROJECT_NAME}"
|
||||||
MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT}"
|
MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT}"
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER "org.k1jt.wsjtx"
|
MACOSX_BUNDLE_GUI_IDENTIFIER "org.k1jt.wsjtx"
|
||||||
@ -1439,9 +1424,9 @@ set_target_properties (wsjtx PROPERTIES
|
|||||||
|
|
||||||
target_include_directories (wsjtx PRIVATE ${FFTW3_INCLUDE_DIRS})
|
target_include_directories (wsjtx PRIVATE ${FFTW3_INCLUDE_DIRS})
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
target_link_libraries (wsjtx Qt5::SerialPort wsjt_fort wsjt_cxx wsjt_qt wsjt_qtmm ${hamlib_LIBRARIES} ${FFTW3_LIBRARIES})
|
target_link_libraries (wsjtx wsjt_fort)
|
||||||
else ()
|
else ()
|
||||||
target_link_libraries (wsjtx Qt5::SerialPort wsjt_fort_omp wsjt_cxx wsjt_qt wsjt_qtmm ${hamlib_LIBRARIES} ${FFTW3_LIBRARIES})
|
target_link_libraries (wsjtx wsjt_fort_omp)
|
||||||
if (OpenMP_C_FLAGS)
|
if (OpenMP_C_FLAGS)
|
||||||
set_target_properties (wsjtx PROPERTIES
|
set_target_properties (wsjtx PROPERTIES
|
||||||
COMPILE_FLAGS "${OpenMP_C_FLAGS}"
|
COMPILE_FLAGS "${OpenMP_C_FLAGS}"
|
||||||
@ -1457,6 +1442,7 @@ else ()
|
|||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
target_link_libraries (wsjtx Qt5::SerialPort wsjt_cxx wsjt_qt wsjt_qtmm ${hamlib_LIBRARIES} ${FFTW3_LIBRARIES} ${LIBM_LIBRARIES})
|
||||||
|
|
||||||
# make a library for WSJT-X UDP servers
|
# make a library for WSJT-X UDP servers
|
||||||
# add_library (wsjtx_udp SHARED ${UDP_library_CXXSRCS})
|
# add_library (wsjtx_udp SHARED ${UDP_library_CXXSRCS})
|
||||||
@ -1479,9 +1465,21 @@ target_compile_definitions (wsjtx_udp-static PUBLIC UDP_STATIC_DEFINE)
|
|||||||
target_link_libraries (wsjtx_udp-static Qt5::Network Qt5::Gui)
|
target_link_libraries (wsjtx_udp-static Qt5::Network Qt5::Gui)
|
||||||
generate_export_header (wsjtx_udp-static BASE_NAME udp)
|
generate_export_header (wsjtx_udp-static BASE_NAME udp)
|
||||||
|
|
||||||
add_executable (udp_daemon UDPExamples/UDPDaemon.cpp UDPExamples/udp_daemon.rc ${WSJTX_ICON_FILE})
|
generate_version_info (udp_daemon_VERSION_RESOURCES
|
||||||
|
NAME udp_daemon
|
||||||
|
BUNDLE ${PROJECT_BUNDLE_NAME}
|
||||||
|
ICON ${WSJTX_ICON_FILE}
|
||||||
|
FILE_DESCRIPTION "Example WSJT-X UDP Message Protocol daemon"
|
||||||
|
)
|
||||||
|
add_executable (udp_daemon UDPExamples/UDPDaemon.cpp ${udp_daemon_VERSION_RESOURCES})
|
||||||
target_link_libraries (udp_daemon wsjtx_udp-static)
|
target_link_libraries (udp_daemon wsjtx_udp-static)
|
||||||
|
|
||||||
|
generate_version_info (message_aggregator_VERSION_RESOURCES
|
||||||
|
NAME message_aggregator
|
||||||
|
BUNDLE ${PROJECT_BUNDLE_NAME}
|
||||||
|
ICON ${WSJTX_ICON_FILE}
|
||||||
|
FILE_DESCRIPTION "Example WSJT-X UDP Message Protocol application"
|
||||||
|
)
|
||||||
add_resources (message_aggregator_RESOURCES /qss ${message_aggregator_STYLESHEETS})
|
add_resources (message_aggregator_RESOURCES /qss ${message_aggregator_STYLESHEETS})
|
||||||
configure_file (UDPExamples/message_aggregator.qrc.in message_aggregator.qrc @ONLY)
|
configure_file (UDPExamples/message_aggregator.qrc.in message_aggregator.qrc @ONLY)
|
||||||
qt5_add_resources (message_aggregator_RESOURCES_RCC
|
qt5_add_resources (message_aggregator_RESOURCES_RCC
|
||||||
@ -1490,9 +1488,8 @@ qt5_add_resources (message_aggregator_RESOURCES_RCC
|
|||||||
)
|
)
|
||||||
add_executable (message_aggregator
|
add_executable (message_aggregator
|
||||||
${message_aggregator_CXXSRCS}
|
${message_aggregator_CXXSRCS}
|
||||||
${WSJTX_ICON_FILE}
|
|
||||||
UDPExamples/message_aggregator.rc
|
|
||||||
${message_aggregator_RESOURCES_RCC}
|
${message_aggregator_RESOURCES_RCC}
|
||||||
|
${message_aggregator_VERSION_RESOURCES}
|
||||||
)
|
)
|
||||||
target_link_libraries (message_aggregator Qt5::Widgets wsjtx_udp-static)
|
target_link_libraries (message_aggregator Qt5::Widgets wsjtx_udp-static)
|
||||||
|
|
||||||
@ -1581,7 +1578,6 @@ install (FILES
|
|||||||
AUTHORS
|
AUTHORS
|
||||||
THANKS
|
THANKS
|
||||||
NEWS
|
NEWS
|
||||||
INSTALL
|
|
||||||
BUGS
|
BUGS
|
||||||
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
||||||
#COMPONENT runtime
|
#COMPONENT runtime
|
||||||
@ -1625,13 +1621,16 @@ add_custom_target (revisiontag
|
|||||||
-D BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
|
-D BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}
|
||||||
-D OUTPUT_DIR=${PROJECT_BINARY_DIR}
|
-D OUTPUT_DIR=${PROJECT_BINARY_DIR}
|
||||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/CMake/getsvn.cmake
|
-P ${CMAKE_CURRENT_SOURCE_DIR}/CMake/getsvn.cmake
|
||||||
COMMENT "Generating Subversion revision information"
|
|
||||||
VERBATIM
|
VERBATIM
|
||||||
|
BYPRODUCTS scs_version.h
|
||||||
|
COMMENT "Getting source control system revision information"
|
||||||
)
|
)
|
||||||
# explicitly say that the wsjt_qt depends on custom target, this is
|
# explicitly say that the wsjt_qt depends on custom target, this is
|
||||||
# done indirectly so that the revisiontag target gets built exactly
|
# done indirectly so that the revisiontag target gets built exactly
|
||||||
# once per build
|
# once per build
|
||||||
add_dependencies(wsjt_qt revisiontag)
|
add_dependencies (wsjt_qt revisiontag)
|
||||||
|
add_dependencies (jt9 revisiontag)
|
||||||
|
add_dependencies (wsprd revisiontag)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -1831,11 +1830,12 @@ endif (NOT is_debug_build)
|
|||||||
#
|
#
|
||||||
# packaging
|
# packaging
|
||||||
#
|
#
|
||||||
|
set (CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/package_description.txt")
|
||||||
set (CPACK_MONOLITHIC_INSTALL 1)
|
set (CPACK_MONOLITHIC_INSTALL 1)
|
||||||
set (CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
|
set (CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
|
||||||
set (CPACK_PACKAGE_VERSION_MAJOR ${WSJTX_VERSION_MAJOR})
|
set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
||||||
set (CPACK_PACKAGE_VERSION_MINOR ${WSJTX_VERSION_MINOR})
|
set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||||
set (CPACK_PACKAGE_VERSION_PATCH ${WSJTX_VERSION_PATCH})
|
set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set (CPACK_GENERATOR "NSIS")
|
set (CPACK_GENERATOR "NSIS")
|
||||||
@ -1868,13 +1868,12 @@ else ()
|
|||||||
endif (RPMBUILDER)
|
endif (RPMBUILDER)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set (CPACK_DEBIAN_PACKAGE_DESCRIPTION "${PROJECT_DESCRIPTION}")
|
|
||||||
set (CPACK_DEBIAN_PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE}")
|
set (CPACK_DEBIAN_PACKAGE_HOMEPAGE "${PROJECT_HOMEPAGE}")
|
||||||
set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran5 (>=10), libfftw3-single3 (>=3.3.8), libgomp1 (>=10), libqt5serialport5 (>=5.12.8), libqt5multimedia5-plugins (>=5.12.8), libqt5widgets5 (>=5.12.8), libqt5network5 (>=5.12.8), libqt5printsupport5 (>=5.12.8), libqt5sql5-sqlite (>=5.12.8), libusb-1.0-0 (>=1.0.23)")
|
set (CPACK_DEBIAN_PACKAGE_DEPENDS "libgfortran5 (>=8.3) | libgfortran4 (>=7.3) | libgfortran3 (>=6.3), libfftw3-single3 (>=3.3), libgomp1 (>=6), libqt5serialport5 (>=5.7), libqt5multimedia5-plugins (>=5.7), libqt5widgets5 (>=5.7), libqt5network5 (>=5.7), libqt5printsupport5 (>=5.7), libqt5sql5-sqlite (>=5.7), libusb-1.0-0 (>=1.0.21), libboost-log1.65.1 (>=1.62.0) | libboost-log1.65.1 (>=1.65.1) | libboost-log1.67.0 (>=1.67.0) | libboost-log1.71.0 (>=1.71.0)")
|
||||||
set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
|
|
||||||
set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
|
set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.13.2, qt5-qtserialport >= 5.13.2, qt5-qtmultimedia >= 5.13.2, qt5-qtsvg >= 5.13.2, libusbx >= 1.0.23, libgfortran >= 10.0.1, libgomp >= 10.0.1, fftw-libs-single >= 3.3.8")
|
set (CPACK_RPM_PACKAGE_REQUIRES "qt5-qtbase >= 5.9, qt5-qtserialport >= 5.9, qt5-qtmultimedia >= 5.9, qt5-qtsvg >= 5.9, libusbx >= 1.0.22, libgfortran >= 7, libgomp >= 7, fftw-libs-single >= 3.3")
|
||||||
set (CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/share/pixmaps /usr/share/applications /usr/share/man /usr/share/man1)
|
set (CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/share/pixmaps /usr/share/applications /usr/share/man /usr/share/man1)
|
||||||
|
|
||||||
configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in"
|
configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in"
|
||||||
|
@ -49,7 +49,7 @@ class IPFixStreamHandler (socketserver.StreamRequestHandler):
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
INTERFACE, PORT = '', 4739
|
INTERFACE, PORT = '', 4739
|
||||||
|
|
||||||
ap = argparse.ArgumentParser (description='Dump IPFIX data collectedover UDP')
|
ap = argparse.ArgumentParser (description='Dump IPFIX data collected over UDP')
|
||||||
ap.add_argument ('-l', '--log', metavar='loglevel', default='WARNING', help='logging level')
|
ap.add_argument ('-l', '--log', metavar='loglevel', default='WARNING', help='logging level')
|
||||||
ap.add_argument ('-s', '--spec', metavar='specfile', help='iespec file to read')
|
ap.add_argument ('-s', '--spec', metavar='specfile', help='iespec file to read')
|
||||||
args = ap.parse_args ()
|
args = ap.parse_args ()
|
||||||
|
@ -1 +0,0 @@
|
|||||||
IDI_ICON1 ICON DISCARDABLE "../icons/windows-icons/wsjtx.ico"
|
|
@ -1 +0,0 @@
|
|||||||
IDI_ICON1 ICON DISCARDABLE "../icons/windows-icons/wsjtx.ico"
|
|
@ -1,6 +0,0 @@
|
|||||||
# Version number components
|
|
||||||
set (WSJTX_VERSION_MAJOR 2)
|
|
||||||
set (WSJTX_VERSION_MINOR 4)
|
|
||||||
set (WSJTX_VERSION_PATCH 0)
|
|
||||||
set (WSJTX_RC 0) # release candidate number, comment out or zero for development versions
|
|
||||||
set (WSJTX_VERSION_IS_RELEASE 0) # set to 1 for final release build
|
|
2
debian/CMakeLists.txt
vendored
2
debian/CMakeLists.txt
vendored
@ -13,7 +13,7 @@ math (EXPR __index "${__month_index} - 1")
|
|||||||
list (GET __months "${__index}" __month)
|
list (GET __months "${__index}" __month)
|
||||||
string (REPLACE "[${__month_index}]" "${__month}" ts ${ts})
|
string (REPLACE "[${__month_index}]" "${__month}" ts ${ts})
|
||||||
|
|
||||||
set (deb_changelog changelog.Debian)
|
set (deb_changelog changelog)
|
||||||
configure_file (
|
configure_file (
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/${deb_changelog}.in"
|
"${CMAKE_CURRENT_SOURCE_DIR}/${deb_changelog}.in"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${deb_changelog}"
|
"${CMAKE_CURRENT_BINARY_DIR}/${deb_changelog}"
|
||||||
|
13
debian/copyright.in
vendored
13
debian/copyright.in
vendored
@ -1,10 +1,11 @@
|
|||||||
Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
Upstream-Name: @CMAKE_PROJECT_NAME@
|
Upstream-Name: @CMAKE_PROJECT_NAME@
|
||||||
Upstream-Maintainer: @PROJECT_CONTACT@
|
Upstream-Contact: @PROJECT_CONTACT@
|
||||||
Upstream-Source: @PROJECT_HOMEPAGE@
|
Source: @PROJECT_HOMEPAGE@
|
||||||
|
|
||||||
Files: *
|
Files: *
|
||||||
Copyright: @PROJECT_COPYRIGHT@.
|
Copyright: @PROJECT_COPYRIGHT@.
|
||||||
License: GPL v3
|
License: GPL-3+
|
||||||
The full text of the GPL is distributed in
|
On Debian systems, the full text of the GNU General Public
|
||||||
/usr/share/common-licenses/GPL-3 on Debian systems.
|
License version 3 can be found in the file
|
||||||
|
`/usr/share/common-licenses/GPL-3'.
|
||||||
|
@ -57,7 +57,7 @@ subroutine msk144sync(cdat,nframes,ntol,delf,navmask,npeaks,fc,fest, &
|
|||||||
xm=0.0
|
xm=0.0
|
||||||
bf=0.0
|
bf=0.0
|
||||||
nthreads=1
|
nthreads=1
|
||||||
!$ nthreads=min(8,int(OMP_GET_MAX_THREADS(),4))
|
!$ nthreads=min(4,int(OMP_GET_MAX_THREADS(),4))
|
||||||
nstep=nfreqs/nthreads
|
nstep=nfreqs/nthreads
|
||||||
|
|
||||||
!$OMP PARALLEL NUM_THREADS(nthreads) PRIVATE(id,if1,if2)
|
!$OMP PARALLEL NUM_THREADS(nthreads) PRIVATE(id,if1,if2)
|
||||||
|
2
main.cpp
2
main.cpp
@ -132,7 +132,7 @@ int main(int argc, char *argv[])
|
|||||||
a.setApplicationVersion (version ());
|
a.setApplicationVersion (version ());
|
||||||
|
|
||||||
QCommandLineParser parser;
|
QCommandLineParser parser;
|
||||||
parser.setApplicationDescription ("\n" PROJECT_SUMMARY_DESCRIPTION);
|
parser.setApplicationDescription ("\n" PROJECT_DESCRIPTION);
|
||||||
auto help_option = parser.addHelpOption ();
|
auto help_option = parser.addHelpOption ();
|
||||||
auto version_option = parser.addVersionOption ();
|
auto version_option = parser.addVersionOption ();
|
||||||
|
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
set (ASCIIDOC_MANS
|
set (ASCIIDOC_MANS
|
||||||
|
man1/fcal.1.txt
|
||||||
|
man1/fmeasure.1.txt
|
||||||
|
man1/fmtave.1.txt
|
||||||
|
man1/fst4sim.1.txt
|
||||||
man1/wsjtx.1.txt
|
man1/wsjtx.1.txt
|
||||||
man1/wsprd.1.txt
|
man1/wsprd.1.txt
|
||||||
man1/jt65code.1.txt
|
man1/jt65code.1.txt
|
||||||
|
42
manpages/man1/fcal.1.txt
Normal file
42
manpages/man1/fcal.1.txt
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
:doctype: manpage
|
||||||
|
:man source: AsciiDoc
|
||||||
|
:man version: {VERSION}
|
||||||
|
:man manual: WSJT-X Manual
|
||||||
|
= fcal(1)
|
||||||
|
|
||||||
|
== NAME
|
||||||
|
|
||||||
|
fcal - Calculates a best-fit straight line for calibration data
|
||||||
|
|
||||||
|
== SYNOPSIS
|
||||||
|
|
||||||
|
*fcal* ['FILE']
|
||||||
|
|
||||||
|
== DESCRIPTION
|
||||||
|
|
||||||
|
*fcal* is one of suite of command line tools designed to aid frequency
|
||||||
|
measurement. These tools are aimed at those taking part in the ARRL
|
||||||
|
FMT, but are also useful for general frequency measurement and
|
||||||
|
calibration. They are included within the *WSJT-X* package for use
|
||||||
|
with the FreqCal mode of WSJT-X.
|
||||||
|
|
||||||
|
The input FILE is normally the output of the *fmtavg*(1) tool, after
|
||||||
|
adjusting to remove bad sources.
|
||||||
|
|
||||||
|
Refer to https://physics.princeton.edu/pulsar/k1jt/FMT_User.pdf for
|
||||||
|
detailed instructions.
|
||||||
|
|
||||||
|
== AUTHOR
|
||||||
|
|
||||||
|
Joe Taylor, K1JT.
|
||||||
|
|
||||||
|
== COPYING
|
||||||
|
|
||||||
|
*fcal* is Copyright (C) 2001 - 2019 by Joseph H. Taylor, Jr., K1JT,
|
||||||
|
with contributions from additional authors. WSJT-X is Open Source
|
||||||
|
software, licensed under the GNU General Public License (GPLv3).
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
43
manpages/man1/fmeasure.1.txt
Normal file
43
manpages/man1/fmeasure.1.txt
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
:doctype: manpage
|
||||||
|
:man source: AsciiDoc
|
||||||
|
:man version: {VERSION}
|
||||||
|
:man manual: WSJT-X Manual
|
||||||
|
= fmeasure(1)
|
||||||
|
|
||||||
|
== NAME
|
||||||
|
|
||||||
|
fmeasure - Calculates the properly calibrated frequency of a series of test signals
|
||||||
|
|
||||||
|
== SYNOPSIS
|
||||||
|
|
||||||
|
*fmeasure* ['FILE']
|
||||||
|
|
||||||
|
== DESCRIPTION
|
||||||
|
|
||||||
|
*fmeasure* is one of suite of command line tools designed to aid
|
||||||
|
frequency measurement. These tools are aimed at those taking part in
|
||||||
|
the ARRL FMT, but are also useful for general frequency measurement
|
||||||
|
and calibration. They are included within the *WSJT-X* package for use
|
||||||
|
with the FreqCal mode of WSJT-X.
|
||||||
|
|
||||||
|
The input FILE is normally the output of the *fmtavg*(1) tool, after
|
||||||
|
adjusting to remove bad sources. Results are saved in 'fmeasure.out'
|
||||||
|
and are suitable for entry to the ARRL Frequency Measuring Test (FMT).
|
||||||
|
|
||||||
|
Refer to https://physics.princeton.edu/pulsar/k1jt/FMT_User.pdf for
|
||||||
|
detailed instructions.
|
||||||
|
|
||||||
|
== AUTHOR
|
||||||
|
|
||||||
|
Joe Taylor, K1JT.
|
||||||
|
|
||||||
|
== COPYING
|
||||||
|
|
||||||
|
*fcal* is Copyright (C) 2001 - 2019 by Joseph H. Taylor, Jr., K1JT,
|
||||||
|
with contributions from additional authors. WSJT-X is Open Source
|
||||||
|
software, licensed under the GNU General Public License (GPLv3).
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
44
manpages/man1/fmtave.1.txt
Normal file
44
manpages/man1/fmtave.1.txt
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
:doctype: manpage
|
||||||
|
:man source: AsciiDoc
|
||||||
|
:man version: {VERSION}
|
||||||
|
:man manual: WSJT-X Manual
|
||||||
|
= fmtave(1)
|
||||||
|
|
||||||
|
== NAME
|
||||||
|
|
||||||
|
fmtave - Averages raw measurement data
|
||||||
|
|
||||||
|
== SYNOPSIS
|
||||||
|
|
||||||
|
*fmtave* ['FILE']
|
||||||
|
|
||||||
|
== DESCRIPTION
|
||||||
|
|
||||||
|
*fmtave* is one of suite of command line tools designed to aid
|
||||||
|
frequency measurement. These tools are aimed at those taking part in
|
||||||
|
the ARRL FMT, but are also useful for general frequency measurement
|
||||||
|
and calibration. They are included within the *WSJT-X* package for use
|
||||||
|
with the FreqCal mode of WSJT-X.
|
||||||
|
|
||||||
|
The input FILE is normally the output of a WSJT-X FreqCal run or the
|
||||||
|
*fmt* tool (not bundled with WSJT-X). Results are saved in
|
||||||
|
'fmtave.out'.and are suitable for entry to the ARRL Frequency
|
||||||
|
Measuring Test (FMT).
|
||||||
|
|
||||||
|
Refer to https://physics.princeton.edu/pulsar/k1jt/FMT_User.pdf for
|
||||||
|
detailed instructions.
|
||||||
|
|
||||||
|
== AUTHOR
|
||||||
|
|
||||||
|
Joe Taylor, K1JT.
|
||||||
|
|
||||||
|
== COPYING
|
||||||
|
|
||||||
|
*fcal* is Copyright (C) 2001 - 2019 by Joseph H. Taylor, Jr., K1JT,
|
||||||
|
with contributions from additional authors. WSJT-X is Open Source
|
||||||
|
software, licensed under the GNU General Public License (GPLv3).
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
93
manpages/man1/fst4sim.1.txt
Normal file
93
manpages/man1/fst4sim.1.txt
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
:doctype: manpage
|
||||||
|
:man source: AsciiDoc
|
||||||
|
:man version: {VERSION}
|
||||||
|
:man manual: WSJT-X Manual
|
||||||
|
= fst4sim(1)
|
||||||
|
|
||||||
|
== NAME
|
||||||
|
|
||||||
|
fst4sim, qra64sim - Generate simulated QRA64, FST4, and FST4W mode signals.
|
||||||
|
|
||||||
|
== SYNOPSIS
|
||||||
|
|
||||||
|
*qra64sim* msg A-E Nsigs fDop DT Nfiles SNR
|
||||||
|
|
||||||
|
*fst4sim* msg TRsec f0 DT h fDop del Nfiles SNR W
|
||||||
|
|
||||||
|
== DESCRIPTION
|
||||||
|
|
||||||
|
*fst4sim* can be used to generate FST4 and FST4W signals with
|
||||||
|
user-specified message content, mode parameters, and SNR values.
|
||||||
|
|
||||||
|
== ARGS
|
||||||
|
|
||||||
|
*msg*::
|
||||||
|
|
||||||
|
A valid QRA64, FST4, or FST4W message enclosed in quotation marks.
|
||||||
|
|
||||||
|
*A-E*::
|
||||||
|
|
||||||
|
QRA64 sub-mode designator.
|
||||||
|
|
||||||
|
*Nsigs*::
|
||||||
|
|
||||||
|
Number of signals to simulate, distributed even across a 2000 Hz
|
||||||
|
bandwidth.
|
||||||
|
|
||||||
|
*TRsec*::
|
||||||
|
|
||||||
|
A valid T/R period duration (s).
|
||||||
|
|
||||||
|
*f0*::
|
||||||
|
|
||||||
|
Integer signal frequency offset (Hz).
|
||||||
|
|
||||||
|
*DT*::
|
||||||
|
|
||||||
|
Decimal signal time offset (s).
|
||||||
|
|
||||||
|
*h*::
|
||||||
|
|
||||||
|
A valid modulation index.
|
||||||
|
|
||||||
|
*fDop*::
|
||||||
|
|
||||||
|
Decimal Doppler frequency spread (Hz).
|
||||||
|
|
||||||
|
*del*::
|
||||||
|
|
||||||
|
Decimal Watterson model delay (ms).
|
||||||
|
|
||||||
|
*nfiles*::
|
||||||
|
|
||||||
|
Number of files to generate.
|
||||||
|
|
||||||
|
*snr*::
|
||||||
|
|
||||||
|
Add Guassian noise to simulate SNR in 2500 Hz bandwidth.
|
||||||
|
|
||||||
|
*W*::
|
||||||
|
|
||||||
|
Hint to break ties between ambiguous messages '0' as 77-bit (FST4),
|
||||||
|
'1' as 50-bit (FST4W).
|
||||||
|
|
||||||
|
Generated files are 12000 Hz sample rate, 16-bit unsigned format, mono
|
||||||
|
PCM .WAV files suitable for replay using WSJT-X either vie the GUI
|
||||||
|
*wsjtx*(1) or using the command line slow mode decoder *jt9*(1). Files
|
||||||
|
are named 000000_nnnnnn.wav (000000_nnnn.wav for QRA64), where
|
||||||
|
'nnnnnn' or 'nnnn' increments from zero.
|
||||||
|
|
||||||
|
== AUTHOR
|
||||||
|
|
||||||
|
Joe Taylor, K1JT.
|
||||||
|
|
||||||
|
== COPYING
|
||||||
|
|
||||||
|
*fcal* is Copyright (C) 2001 - 2019 by Joseph H. Taylor, Jr., K1JT,
|
||||||
|
with contributions from additional authors. WSJT-X is Open Source
|
||||||
|
software, licensed under the GNU General Public License (GPLv3).
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
== NAME
|
== NAME
|
||||||
|
|
||||||
jt65code, jt9code, jt4code - Weak signal communications encoding support utility.
|
jt65code, jt9code, jt4code, qra64code, ft8code, msk144code - Weak signal communications encoding support utilities.
|
||||||
|
|
||||||
== SYNOPSIS
|
== SYNOPSIS
|
||||||
|
|
||||||
@ -22,18 +22,32 @@ jt65code, jt9code, jt4code - Weak signal communications encoding support utility
|
|||||||
|
|
||||||
*jt4code* ['OPTIONS']
|
*jt4code* ['OPTIONS']
|
||||||
|
|
||||||
|
*qra64code* "'MESSAGE'"
|
||||||
|
|
||||||
|
*qra64code* ['OPTIONS']
|
||||||
|
|
||||||
|
*ft8code* "'MESSAGE'"
|
||||||
|
|
||||||
|
*ft8code* ['OPTIONS']
|
||||||
|
|
||||||
== OPTIONS
|
== OPTIONS
|
||||||
*-t*::
|
*-t*::
|
||||||
Prints a selection of messages alongside their corresponding
|
|
||||||
decoded form and types.
|
Prints a selection of messages alongside their corresponding decoded
|
||||||
|
form and types. With *ft8code* prints a selection of short format
|
||||||
|
messages
|
||||||
|
|
||||||
|
*-T*::
|
||||||
|
|
||||||
|
As *-T* but for *ft8code* prints long format messages.
|
||||||
|
|
||||||
== DESCRIPTION
|
== DESCRIPTION
|
||||||
|
|
||||||
*jt65code*, *jt9code* and *jt4code* are utility programs that let you
|
*jt65code*, *jt9code*, *jt4code*, and *ft8code* are utility programs
|
||||||
explore the conversion of user-level messages into channel symbols or
|
that let you explore the conversion of user-level messages into
|
||||||
“tone numbers.” These programs can be useful to someone designing a
|
channel symbols or “tone numbers.” These programs can be useful to
|
||||||
beacon generator for JT9 or JT65, or for studying behavior of the
|
someone designing a beacon generator for JT9 or JT65, or for studying
|
||||||
error-control codes for each of the protocols.
|
behavior of the error-control codes for each of the protocols.
|
||||||
|
|
||||||
Channel-symbol values for JT9 run from 0 to 8, with 0 representing the
|
Channel-symbol values for JT9 run from 0 to 8, with 0 representing the
|
||||||
sync tone. The total number of symbols in a transmitted message is
|
sync tone. The total number of symbols in a transmitted message is
|
||||||
@ -92,10 +106,61 @@ You will discover that every possible JT65 message differs from every
|
|||||||
other possible JT65 message in at least 52 of the 63
|
other possible JT65 message in at least 52 of the 63
|
||||||
information-carrying channel symbols.
|
information-carrying channel symbols.
|
||||||
|
|
||||||
WSJT-X home page:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html
|
.....
|
||||||
|
$ qra64code "G0XYZ K1ABC FN43"
|
||||||
|
Message Decoded Err? Type
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
1 G0XYZ K1ABC FN43 G0XYZ K1ABC FN43 1: Std Msg
|
||||||
|
|
||||||
|
Packed message, 6-bit symbols 61 36 45 30 3 55 3 2 14 5 33 41
|
||||||
|
|
||||||
|
Information-carrying channel symbols
|
||||||
|
61 36 45 30 3 55 3 2 14 5 33 41 14 28 2 7 58 45 9 43 20 48 29 55 43 24 3 13 18 21
|
||||||
|
40 3 17 28 59 62 2 50 26 24 2 1 2 61 10 9 16 40 1 18 28 30 33 39 60 45 16 21 60 11
|
||||||
|
9 40 14
|
||||||
|
|
||||||
|
Channel symbols including sync
|
||||||
|
20 50 60 0 40 10 30 61 36 45 30 3 55 3 2 14 5 33 41 14 28 2 7 58 45 9 43 20 48 29
|
||||||
|
55 43 24 3 13 18 21 40 3 20 50 60 0 40 10 30 17 28 59 62 2 50 26 24 2 1 2 61 10 9
|
||||||
|
16 40 1 18 28 30 33 39 60 45 16 21 60 11 9 40 14 20 50 60 0 40 10 30
|
||||||
|
.....
|
||||||
|
|
||||||
|
.....
|
||||||
|
$ msk144code "G0XYZ K1ABC FN43"
|
||||||
|
Message Decoded Err i3.n3
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
1. G0XYZ K1ABC FN43 G0XYZ K1ABC FN43 1. Standard msg
|
||||||
|
|
||||||
|
Channel symbols
|
||||||
|
110000110100110001010010011100110010010110000011011001001100001101111010
|
||||||
|
110010110111111100001101001111000111101011111011100001110000011101110110
|
||||||
|
.....
|
||||||
|
|
||||||
|
.....
|
||||||
|
$ ft8code "G0XYZ K1ABC FN43"
|
||||||
|
Message Decoded Err i3.n3
|
||||||
|
----------------------------------------------------------------------------------------------------
|
||||||
|
1. G0XYZ K1ABC FN43 G0XYZ K1ABC FN43 1. Standard msg
|
||||||
|
|
||||||
|
Source-encoded message, 77 bits:
|
||||||
|
00001000111111010001110111010000010011011110111100011010100010100001100111001
|
||||||
|
|
||||||
|
14-bit CRC:
|
||||||
|
00110001001011
|
||||||
|
|
||||||
|
83 Parity bits:
|
||||||
|
10000110000001010101100000100110100110100000111000101110000110001001110000000110011
|
||||||
|
|
||||||
|
Channel symbols (79 tones):
|
||||||
|
Sync Data Sync Data Sync
|
||||||
|
3140652 03174526450547670460602143205 3140652 64040136505454507064041140042 3140652
|
||||||
|
.....
|
||||||
|
|
||||||
|
|
||||||
|
WSJT-X home page:: https://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html
|
||||||
|
|
||||||
WSJT-X User's Guide::
|
WSJT-X User's Guide::
|
||||||
http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-{VERSION}.html
|
https://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-{VERSION}.html
|
||||||
|
|
||||||
== AUTHOR
|
== AUTHOR
|
||||||
|
|
||||||
@ -103,10 +168,10 @@ Joe Taylor, K1JT.
|
|||||||
|
|
||||||
== COPYING
|
== COPYING
|
||||||
|
|
||||||
*jt65code*, *jt9code* and *jt4code* are Copyright (C) 2001 - 2015 by
|
*jt65code*, *jt9code*, *jt4code*, and *ft8code* are Copyright (C) 2001
|
||||||
Joseph H. Taylor, Jr., K1JT, with contributions from additional
|
- 2020 by Joseph H. Taylor, Jr., K1JT, with contributions from
|
||||||
authors. WSJT-X is Open Source software, licensed under the GNU
|
additional authors. WSJT-X is Open Source software, licensed under
|
||||||
General Public License (GPLv3).
|
the GNU General Public License (GPLv3).
|
||||||
|
|
||||||
These programs are distributed in the hope that they will be useful,
|
These programs are distributed in the hope that they will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
@ -10,12 +10,12 @@ wsprd - is a decoder for K1JT's Weak Signal Propagation Reporter (WSPR) mode.
|
|||||||
|
|
||||||
== SYNOPSIS
|
== SYNOPSIS
|
||||||
|
|
||||||
*wsprd* ['OPTIONS']
|
*wsprd* ['OPTIONS'] ['FILE']
|
||||||
|
|
||||||
== DESCRIPTION
|
== DESCRIPTION
|
||||||
|
|
||||||
*wsprd* - The program is written in C and is a command-line program that reads
|
*wsprd* - The program is written in C and is a command-line program that reads
|
||||||
from a .c2 file or .wav file and writes output to the console. It is used by
|
from a .c2 FILE or .wav FILE and writes output to the console. It is used by
|
||||||
WSJT-X for wspr-mode decoding.
|
WSJT-X for wspr-mode decoding.
|
||||||
|
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ WSJT-X for wspr-mode decoding.
|
|||||||
|
|
||||||
*-z x*:: x is fano metric table bias, default is 0.42
|
*-z x*:: x is fano metric table bias, default is 0.42
|
||||||
|
|
||||||
The Infile can be either .wav or .c2, for example:
|
The FILE can be either .wav or .c2, for example:
|
||||||
|
|
||||||
-----
|
-----
|
||||||
./wsprd -wf 14.0956 140709_2258.wav
|
./wsprd -wf 14.0956 140709_2258.wav
|
||||||
|
67
package_description.txt
Normal file
67
package_description.txt
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
WSJT-X is a computer program designed to facilitate basic amateur
|
||||||
|
radio communication using very weak signals. The first four letters in
|
||||||
|
the program name stand for `(W)eak (S)ignal communication by K1(JT),`
|
||||||
|
while the suffix `-X` indicates that WSJT-X started as an extended and
|
||||||
|
experimental branch of the program WSJT.
|
||||||
|
.
|
||||||
|
WSJT-X Version 2.0 offers twelve different protocols or modes: FST4,
|
||||||
|
FST4W, FT4, FT8, JT4, JT9, JT65, QRA64, ISCAT, MSK144, WSPR, and Echo.
|
||||||
|
The first eight are designed for making reliable QSOs under extreme
|
||||||
|
weak-signal conditions. They use nearly identical message structure
|
||||||
|
and source encoding. JT65 and QRA64 were designed for EME
|
||||||
|
(`moonbounce`) on the VHF/UHF bands and have also proven very
|
||||||
|
effective for worldwide QRP communication on the HF bands. QRA64 has
|
||||||
|
a number of advantages over JT65, including better performance on the
|
||||||
|
very weakest signals. We imagine that over time it may replace JT65
|
||||||
|
for EME use. JT9 was originally designed for the LF, MF, and lower HF
|
||||||
|
bands. Its submode JT9A is 2 dB more sensitive than JT65 while using
|
||||||
|
less than 10% of the bandwidth. FST4, and its quasi-beacon companion
|
||||||
|
mode FST4W (see below), are designed for LF and MF and offer
|
||||||
|
significant advantages over JT9 and WSPR on those bands. JT4 offers a
|
||||||
|
wide variety of tone spacings and has proven highly effective for EME
|
||||||
|
on microwave bands up to 24 GHz. These four `slow` modes use
|
||||||
|
one-minute timed sequences of alternating transmission and reception,
|
||||||
|
so a minimal QSO takes four to six minutes — two or three
|
||||||
|
transmissions by each station, one sending in odd UTC minutes and the
|
||||||
|
other even. FT8 is operationally similar but four times faster
|
||||||
|
(15-second T/R sequences) and less sensitive by a few dB. On the HF
|
||||||
|
bands, world-wide QSOs are possible with any of these modes using
|
||||||
|
power levels of a few watts (or even milliwatts) and compromise
|
||||||
|
antennas. On VHF bands and higher, QSOs are possible (by EME and
|
||||||
|
other propagation types) at signal levels 10 to 15 dB below those
|
||||||
|
required for CW.
|
||||||
|
.
|
||||||
|
ISCAT, MSK144, and optionally submodes JT9E-H are `fast` protocols
|
||||||
|
designed to take advantage of brief signal enhancements from ionized
|
||||||
|
meteor trails, aircraft scatter, and other types of scatter
|
||||||
|
propagation. These modes use timed sequences of 5, 10, 15, or 30 s
|
||||||
|
duration. User messages are transmitted repeatedly at high rate (up
|
||||||
|
to 250 characters per second, for MSK144) to make good use of the
|
||||||
|
shortest meteor-trail reflections or `pings`. ISCAT uses free-form
|
||||||
|
messages up to 28 characters long, while MSK144 uses the same
|
||||||
|
structured messages as the slow modes and optionally an abbreviated
|
||||||
|
format with hashed callsigns.
|
||||||
|
.
|
||||||
|
WSPR (pronounced `whisper`) stands for (W)eak (S)ignal (P)ropagation
|
||||||
|
(R)eporter. The WSPR protocol was designed for probing potential
|
||||||
|
propagation paths using low-power transmissions. WSPR messages
|
||||||
|
normally carry the transmitting station’s callsign, grid locator, and
|
||||||
|
transmitter power in dBm, and they can be decoded at signal-to-noise
|
||||||
|
ratios as low as -28 dB in a 2500 Hz bandwidth. WSPR users with
|
||||||
|
internet access can automatically upload reception reports to a
|
||||||
|
central database called wsprnet that provides a mapping facility,
|
||||||
|
archival storage, and many other features. WSPR has a new companion
|
||||||
|
FST4W which has a similar message content but offers up to 30 minute
|
||||||
|
transmission periods for greater sensitivity on LF and MF.
|
||||||
|
.
|
||||||
|
Echo mode allows you to detect and measure your own station's echoes
|
||||||
|
from the moon, even if they are far below the audible threshold.
|
||||||
|
.
|
||||||
|
WSJT-X provides spectral displays for receiver passbands as wide as 5
|
||||||
|
kHz, flexible rig control for nearly all modern radios used by
|
||||||
|
amateurs, and a wide variety of special aids such as automatic Doppler
|
||||||
|
tracking for EME QSOs and Echo testing. The program runs equally well
|
||||||
|
on Windows, Macintosh, and Linux systems, and installation packages
|
||||||
|
are available for all three platforms.
|
||||||
|
.
|
||||||
|
Be sure to read the online WSJT-X User's Guide.
|
4
qmake_only/scs_version.h
Normal file
4
qmake_only/scs_version.h
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
/* This is a dummy file required to make the qmake build compatible
|
||||||
|
with the CMake build. */
|
||||||
|
|
||||||
|
#define STRINGIZE__(X)
|
@ -30,7 +30,7 @@ QString revision (QString const& scs_rev_string)
|
|||||||
auto revision_from_scs = revision_extract_number (scs_rev_string);
|
auto revision_from_scs = revision_extract_number (scs_rev_string);
|
||||||
|
|
||||||
#if defined (CMAKE_BUILD)
|
#if defined (CMAKE_BUILD)
|
||||||
QString scs_info {":Rev: " WSJTX_STRINGIZE (SCS_VERSION) " $"};
|
QString scs_info {":Rev: " SCS_VERSION_STR " $"};
|
||||||
|
|
||||||
auto revision_from_scs_info = revision_extract_number (scs_info);
|
auto revision_from_scs_info = revision_extract_number (scs_info);
|
||||||
if (!revision_from_scs_info.isEmpty ())
|
if (!revision_from_scs_info.isEmpty ())
|
||||||
@ -66,14 +66,10 @@ QString revision (QString const& scs_rev_string)
|
|||||||
QString version (bool include_patch)
|
QString version (bool include_patch)
|
||||||
{
|
{
|
||||||
#if defined (CMAKE_BUILD)
|
#if defined (CMAKE_BUILD)
|
||||||
QString v {WSJTX_STRINGIZE (WSJTX_VERSION_MAJOR) "." WSJTX_STRINGIZE (WSJTX_VERSION_MINOR)};
|
QString v {TO_STRING__ (PROJECT_VERSION_MAJOR) "." TO_STRING__ (PROJECT_VERSION_MINOR)};
|
||||||
if (include_patch)
|
if (include_patch)
|
||||||
{
|
{
|
||||||
v += "." WSJTX_STRINGIZE (WSJTX_VERSION_PATCH)
|
v += "." TO_STRING__ (PROJECT_VERSION_PATCH) + QString {BUILD_TYPE_REVISION};
|
||||||
# if defined (WSJTX_RC)
|
|
||||||
+ "-rc" WSJTX_STRINGIZE (WSJTX_RC)
|
|
||||||
# endif
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
QString v {"Not for Release"};
|
QString v {"Not for Release"};
|
||||||
|
@ -26,7 +26,7 @@ CAboutDlg::CAboutDlg(QWidget *parent) :
|
|||||||
"VE1SKY, VK3ACF, VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB.<br /><br />"
|
"VE1SKY, VK3ACF, VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB.<br /><br />"
|
||||||
"WSJT-X is licensed under the terms of Version 3 <br />"
|
"WSJT-X is licensed under the terms of Version 3 <br />"
|
||||||
"of the GNU General Public License (GPL) <br /><br />"
|
"of the GNU General Public License (GPL) <br /><br />"
|
||||||
"<a href=" WSJTX_STRINGIZE (PROJECT_HOMEPAGE) ">"
|
"<a href=" TO_STRING__ (PROJECT_HOMEPAGE) ">"
|
||||||
"<img src=\":/icon_128x128.png\" /></a>"
|
"<img src=\":/icon_128x128.png\" /></a>"
|
||||||
"<a href=\"https://www.gnu.org/licenses/gpl-3.0.txt\">"
|
"<a href=\"https://www.gnu.org/licenses/gpl-3.0.txt\">"
|
||||||
"<img src=\":/gpl-v3-logo.svg\" height=\"80\" /><br />"
|
"<img src=\":/gpl-v3-logo.svg\" height=\"80\" /><br />"
|
||||||
|
@ -5,19 +5,29 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define WSJTX_VERSION_MAJOR @WSJTX_VERSION_MAJOR@
|
#ifndef TO_STRING__
|
||||||
#define WSJTX_VERSION_MINOR @WSJTX_VERSION_MINOR@
|
#define TO_STRING_IMPL__(x) #x
|
||||||
#define WSJTX_VERSION_PATCH @WSJTX_VERSION_PATCH@
|
#define TO_STRING__(x) TO_STRING_IMPL__(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PROJECT_VERSION_MAJOR @PROJECT_VERSION_MAJOR@
|
||||||
|
#define PROJECT_VERSION_MINOR @PROJECT_VERSION_MINOR@
|
||||||
|
#define PROJECT_VERSION_PATCH @PROJECT_VERSION_PATCH@
|
||||||
|
#define PROJECT_VERSION_TWEAK @PROJECT_VERSION_TWEAK@
|
||||||
|
#define BUILD_TYPE_REVISION "@BUILD_TYPE_REVISION@"
|
||||||
|
|
||||||
#cmakedefine CMAKE_INSTALL_DATAROOTDIR "@CMAKE_INSTALL_DATAROOTDIR@"
|
#cmakedefine CMAKE_INSTALL_DATAROOTDIR "@CMAKE_INSTALL_DATAROOTDIR@"
|
||||||
#cmakedefine CMAKE_INSTALL_DOCDIR "@CMAKE_INSTALL_DOCDIR@"
|
#cmakedefine CMAKE_INSTALL_DOCDIR "@CMAKE_INSTALL_DOCDIR@"
|
||||||
#cmakedefine CMAKE_INSTALL_DATADIR "@CMAKE_INSTALL_DATADIR@"
|
#cmakedefine CMAKE_INSTALL_DATADIR "@CMAKE_INSTALL_DATADIR@"
|
||||||
#cmakedefine CMAKE_PROJECT_NAME "@CMAKE_PROJECT_NAME@"
|
#cmakedefine CMAKE_PROJECT_NAME "@CMAKE_PROJECT_NAME@"
|
||||||
|
#cmakedefine PROJECT_VENDOR "@PROJECT_VENDOR@"
|
||||||
|
#cmakedefine PROJECT_NAME "@PROJECT_NAME@"
|
||||||
|
#cmakedefine PROJECT_COPYRIGHT "@PROJECT_COPYRIGHT@"
|
||||||
#cmakedefine PROJECT_MANUAL "@PROJECT_MANUAL@"
|
#cmakedefine PROJECT_MANUAL "@PROJECT_MANUAL@"
|
||||||
#cmakedefine PROJECT_HOMEPAGE "@PROJECT_HOMEPAGE@"
|
#cmakedefine PROJECT_HOMEPAGE "@PROJECT_HOMEPAGE@"
|
||||||
#cmakedefine PROJECT_MANUAL_DIRECTORY_URL "@PROJECT_MANUAL_DIRECTORY_URL@"
|
#cmakedefine PROJECT_MANUAL_DIRECTORY_URL "@PROJECT_MANUAL_DIRECTORY_URL@"
|
||||||
#cmakedefine PROJECT_SAMPLES_URL "@PROJECT_SAMPLES_URL@"
|
#cmakedefine PROJECT_SAMPLES_URL "@PROJECT_SAMPLES_URL@"
|
||||||
#cmakedefine PROJECT_SUMMARY_DESCRIPTION "@PROJECT_SUMMARY_DESCRIPTION@"
|
#cmakedefine PROJECT_DESCRIPTION "@PROJECT_DESCRIPTION@"
|
||||||
|
|
||||||
#cmakedefine01 HAVE_HAMLIB_OLD_CACHING
|
#cmakedefine01 HAVE_HAMLIB_OLD_CACHING
|
||||||
#cmakedefine01 HAVE_HAMLIB_CACHING
|
#cmakedefine01 HAVE_HAMLIB_CACHING
|
||||||
@ -34,9 +44,6 @@ extern "C" {
|
|||||||
#cmakedefine01 WSJT_RIG_NONE_CAN_SPLIT
|
#cmakedefine01 WSJT_RIG_NONE_CAN_SPLIT
|
||||||
#cmakedefine01 WSJT_TRACE_UDP
|
#cmakedefine01 WSJT_TRACE_UDP
|
||||||
|
|
||||||
#define WSJTX_STRINGIZE1(x) #x
|
|
||||||
#define WSJTX_STRINGIZE(x) WSJTX_STRINGIZE1(x)
|
|
||||||
|
|
||||||
/* consistent UNICODE behaviour */
|
/* consistent UNICODE behaviour */
|
||||||
#ifndef UNICODE
|
#ifndef UNICODE
|
||||||
# undef _UNICODE
|
# undef _UNICODE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user