Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package soapy-sdr for openSUSE:Factory checked in at 2021-08-18 08:56:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/soapy-sdr (Old) and /work/SRC/openSUSE:Factory/.soapy-sdr.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "soapy-sdr" Wed Aug 18 08:56:17 2021 rev:9 rq:912697 version:0.8.1 Changes: -------- --- /work/SRC/openSUSE:Factory/soapy-sdr/soapy-sdr.changes 2021-07-26 17:38:12.710085793 +0200 +++ /work/SRC/openSUSE:Factory/.soapy-sdr.new.1899/soapy-sdr.changes 2021-08-18 08:57:09.886886517 +0200 @@ -1,0 +2,18 @@ +Mon Aug 16 20:28:43 UTC 2021 - Wojciech Kazubski <w...@ire.pw.edu.pl> + +- Update to version 0.8.1 + * cmake: + + fix use of CMAKE_INSTALL_LIB_DIR when absolute + + version policies for subproject compatibility + * docs: + + fixed spelling mistakes in doxygen comments + * python3: + + change OUTPUT_NAME in newer versions of cmake + * Types: + + consistency changes converting strings to bool + * Type.hpp: + + fixed templated StringToSetting return true + * Range: + + fixed default constructor not initializing step + +------------------------------------------------------------------- Old: ---- soapy-sdr-0.8.0.tar.gz New: ---- soapy-sdr-0.8.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ soapy-sdr.spec ++++++ --- /var/tmp/diff_new_pack.lg164q/_old 2021-08-18 08:57:10.246886093 +0200 +++ /var/tmp/diff_new_pack.lg164q/_new 2021-08-18 08:57:10.250886090 +0200 @@ -20,7 +20,7 @@ %define sover 0_8 Name: soapy-sdr -Version: 0.8.0 +Version: 0.8.1 Release: 0 Summary: Vendor and platform neutral SDR support library License: BSL-1.0 ++++++ soapy-sdr-0.8.0.tar.gz -> soapy-sdr-0.8.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/CMakeLists.txt new/SoapySDR-soapy-sdr-0.8.1/CMakeLists.txt --- old/SoapySDR-soapy-sdr-0.8.0/CMakeLists.txt 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/CMakeLists.txt 2021-07-26 01:01:57.000000000 +0200 @@ -6,6 +6,20 @@ enable_language(CXX) enable_testing() +# Enable newer CMake policies if available +if(POLICY CMP0077) + cmake_policy(SET CMP0077 NEW) # option() honors normal variables +endif() +if(POLICY CMP0078) + cmake_policy(SET CMP0078 NEW) # UseSWIG generates standard target names +endif() +if(POLICY CMP0086) + cmake_policy(SET CMP0086 NEW) # UseSWIG honors SWIG_MODULE_NAME via -module flag +endif() +if(POLICY CMP0068) + cmake_policy(SET CMP0068 NEW) # RPATH settings on macOS do not affect install_name +endif() + #C++11 is a required language feature for this project set(CMAKE_CXX_STANDARD 11) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/Changelog.txt new/SoapySDR-soapy-sdr-0.8.1/Changelog.txt --- old/SoapySDR-soapy-sdr-0.8.0/Changelog.txt 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/Changelog.txt 2021-07-26 01:01:57.000000000 +0200 @@ -1,5 +1,17 @@ This this the changelog file for the SoapySDR project. +Release 0.8.1 (2021-07-25) +========================== + +- cmake: fix use of CMAKE_INSTALL_LIB_DIR when absolute +- windows: Fix compatibility with non-MSVC compilers +- cmake: version policies for subproject compatibility +- docs: fixed spelling mistakes in doxygen comments +- python3: change OUTPUT_NAME in newer versions of cmake +- Types: consistency changes converting strings to bool +- Type.hpp: fixed templated StringToSetting return true +- Range: fixed default constructor not initializing step + Release 0.8.0 (2021-04-25) ========================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/buildkite/build.sh new/SoapySDR-soapy-sdr-0.8.1/buildkite/build.sh --- old/SoapySDR-soapy-sdr-0.8.0/buildkite/build.sh 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/buildkite/build.sh 2021-07-26 01:01:57.000000000 +0200 @@ -22,7 +22,7 @@ # set -eo pipefail -echo "--- Enviroment." +echo "--- Environment." env # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/cmake/Modules/SoapySDRUtil.cmake new/SoapySDR-soapy-sdr-0.8.1/cmake/Modules/SoapySDRUtil.cmake --- old/SoapySDR-soapy-sdr-0.8.0/cmake/Modules/SoapySDRUtil.cmake 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/cmake/Modules/SoapySDRUtil.cmake 2021-07-26 01:01:57.000000000 +0200 @@ -78,6 +78,15 @@ endif(GIT_FOUND) endif() + add_library(${MODULE_TARGET} MODULE ${MODULE_SOURCES}) + target_link_libraries(${MODULE_TARGET} PRIVATE ${MODULE_LIBRARIES} SoapySDR) + set_target_properties(${MODULE_TARGET} PROPERTIES DEBUG_POSTFIX "") #same name in debug mode + + #symbols are only exported from the module explicitly + set_property(TARGET ${MODULE_TARGET} PROPERTY C_VISIBILITY_PRESET hidden) + set_property(TARGET ${MODULE_TARGET} PROPERTY CXX_VISIBILITY_PRESET hidden) + set_property(TARGET ${MODULE_TARGET} PROPERTY VISIBILITY_INLINES_HIDDEN ON) + #version specified, build into source file if (MODULE_VERSION) message(STATUS "Module ${MODULE_TARGET} configured with version: ${MODULE_VERSION}") @@ -85,15 +94,9 @@ file(WRITE "${version_file}" "#include <SoapySDR/Modules.hpp> static const SoapySDR::ModuleVersion register${MODULE_TARGET}Version(\"${MODULE_VERSION}\"); ") - list(APPEND MODULE_SOURCES "${version_file}") + target_sources(${MODULE_TARGET} PRIVATE "${version_file}") endif() - add_library(${MODULE_TARGET} MODULE ${MODULE_SOURCES}) - target_include_directories(${MODULE_TARGET} PRIVATE SoapySDR) - target_link_libraries(${MODULE_TARGET} PRIVATE ${MODULE_LIBRARIES} SoapySDR) - set_target_properties(${MODULE_TARGET} PROPERTIES DEBUG_POSTFIX "") #same name in debug mode - set_property(TARGET ${MODULE_TARGET} PROPERTY CXX_STANDARD 11) - if(CMAKE_COMPILER_IS_GNUCXX) #force a compile-time error when symbols are missing #otherwise modules will cause a runtime error on load diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/debian/changelog new/SoapySDR-soapy-sdr-0.8.1/debian/changelog --- old/SoapySDR-soapy-sdr-0.8.0/debian/changelog 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/debian/changelog 2021-07-26 01:01:57.000000000 +0200 @@ -1,3 +1,9 @@ +soapysdr (0.8.1-1) unstable; urgency=low + + * Release 0.8.1 (2021-07-25) + + -- Josh Blum <j...@pothosware.com> Sun, 25 Jul 2021 18:01:51 -0000 + soapysdr (0.8.0-1) unstable; urgency=low * Release 0.8.0 (2021-04-25) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/include/SoapySDR/Device.h new/SoapySDR-soapy-sdr-0.8.1/include/SoapySDR/Device.h --- old/SoapySDR-soapy-sdr-0.8.0/include/SoapySDR/Device.h 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/include/SoapySDR/Device.h 2021-07-26 01:01:57.000000000 +0200 @@ -142,7 +142,7 @@ /*! * A key that uniquely identifies the device driver. * This key identifies the underlying implementation. - * Serveral variants of a product may share a driver. + * Several variants of a product may share a driver. * \param device a pointer to a device instance */ SOAPY_SDR_API char *SoapySDRDevice_getDriverKey(const SoapySDRDevice *device); @@ -851,7 +851,7 @@ * \param device a pointer to a device instance * \param direction the channel direction RX or TX * \param channel an available channel on the device - * \return a list of gain ranges in dB + * \return the range of possible gain values for this channel in dB */ SOAPY_SDR_API SoapySDRRange SoapySDRDevice_getGainRange(const SoapySDRDevice *device, const int direction, const size_t channel); @@ -861,7 +861,7 @@ * \param direction the channel direction RX or TX * \param channel an available channel on the device * \param name the name of an amplification element - * \return a list of gain ranges in dB + * \return the range of possible gain values for the specified amplification element in dB */ SOAPY_SDR_API SoapySDRRange SoapySDRDevice_getGainElementRange(const SoapySDRDevice *device, const int direction, const size_t channel, const char *name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/include/SoapySDR/Device.hpp new/SoapySDR-soapy-sdr-0.8.1/include/SoapySDR/Device.hpp --- old/SoapySDR-soapy-sdr-0.8.0/include/SoapySDR/Device.hpp 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/include/SoapySDR/Device.hpp 2021-07-26 01:01:57.000000000 +0200 @@ -27,7 +27,7 @@ class Stream; /*! - * Abstraction for an SDR tranceiver device - configuration and streaming. + * Abstraction for an SDR transceiver device - configuration and streaming. */ class SOAPY_SDR_API Device { @@ -120,7 +120,7 @@ /*! * A key that uniquely identifies the device driver. * This key identifies the underlying implementation. - * Serveral variants of a product may share a driver. + * Several variants of a product may share a driver. */ virtual std::string getDriverKey(void) const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/include/SoapySDR/Types.hpp new/SoapySDR-soapy-sdr-0.8.1/include/SoapySDR/Types.hpp --- old/SoapySDR-soapy-sdr-0.8.0/include/SoapySDR/Types.hpp 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/include/SoapySDR/Types.hpp 2021-07-26 01:01:57.000000000 +0200 @@ -4,7 +4,7 @@ /// Misc data type definitions used in the API. /// /// \copyright -/// Copyright (c) 2014-2017 Josh Blum +/// Copyright (c) 2014-2021 Josh Blum /// SPDX-License-Identifier: BSL-1.0 /// @@ -13,6 +13,7 @@ #include <SoapySDR/Types.h> #include <type_traits> #include <vector> +#include <stdexcept> #include <string> #include <map> @@ -173,16 +174,19 @@ template <typename Type> typename std::enable_if<std::is_same<Type, bool>::value, Type>::type StringToSetting(const std::string &s) { - if (s == SOAPY_SDR_TRUE) return true; - if (s == SOAPY_SDR_FALSE) return false; - - //zeros and empty strings are false - if (s == "0") return false; - if (s == "0.0") return false; - if (s == "") return false; - - //other values are true - return "true"; + if (s.empty() or s == SOAPY_SDR_FALSE) { + return false; + } + if (s == SOAPY_SDR_TRUE) { + return true; + } + try { + // C++: Float conversion to bool is unambiguous + return std::stod(s); + } catch (std::invalid_argument&) { + } + // other values are true + return true; } template <typename Type> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/lib/CMakeLists.txt new/SoapySDR-soapy-sdr-0.8.1/lib/CMakeLists.txt --- old/SoapySDR-soapy-sdr-0.8.0/lib/CMakeLists.txt 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/lib/CMakeLists.txt 2021-07-26 01:01:57.000000000 +0200 @@ -44,6 +44,11 @@ set_target_properties(SoapySDR PROPERTIES VERSION ${SOAPY_SDR_LIBVER}) set_target_properties(SoapySDR PROPERTIES DEFINE_SYMBOL "SOAPY_SDR_DLL_EXPORTS") +#symbols are only exported from the library explicitly +set_property(TARGET SoapySDR PROPERTY C_VISIBILITY_PRESET hidden) +set_property(TARGET SoapySDR PROPERTY CXX_VISIBILITY_PRESET hidden) +set_property(TARGET SoapySDR PROPERTY VISIBILITY_INLINES_HIDDEN ON) + ######################################################################## # compiler specifics ######################################################################## @@ -67,18 +72,15 @@ target_link_libraries(SoapySDR PUBLIC -pthread) endif() -if(CMAKE_COMPILER_IS_GNUCXX) +if(CMAKE_COMPILER_IS_GNUCXX OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) #support threaded client code #notice that -pthread is not the same as -lpthread target_link_libraries(SoapySDR PUBLIC -pthread) - #symbols are only exported from libraries/modules explicitly - target_compile_options(SoapySDR PRIVATE -fvisibility=hidden) - target_compile_options(SoapySDR PRIVATE -fvisibility-inlines-hidden) - #common warnings to help encourage good coding practices target_compile_options(SoapySDR PUBLIC -Wall) target_compile_options(SoapySDR PUBLIC -Wextra) + target_compile_options(SoapySDR PUBLIC -Wnon-virtual-dtor) endif() if (MSVC) @@ -109,6 +111,10 @@ ######################################################################## # Configure sources ######################################################################## + +#get a relative CMAKE_INSTALL_LIBDIR for the the module loader logic +file(RELATIVE_PATH CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}" "${CMAKE_INSTALL_FULL_LIBDIR}") + configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/Modules.in.cpp ${CMAKE_CURRENT_BINARY_DIR}/Modules.cpp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/lib/LoggerC.cpp new/SoapySDR-soapy-sdr-0.8.1/lib/LoggerC.cpp --- old/SoapySDR-soapy-sdr-0.8.0/lib/LoggerC.cpp 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/lib/LoggerC.cpp 2021-07-26 01:01:57.000000000 +0200 @@ -1,4 +1,4 @@ -// Copyright (c) 2014-2017 Josh Blum +// Copyright (c) 2014-2021 Josh Blum // SPDX-License-Identifier: BSL-1.0 #include <SoapySDR/Logger.h> @@ -37,20 +37,6 @@ } /*********************************************************************** - * Compatibility for vasprintf under MSVC - **********************************************************************/ -#ifdef _MSC_VER -int vasprintf(char **strp, const char *fmt, va_list ap) -{ - int r = _vscprintf(fmt, ap); - if (r < 0) return r; - *strp = (char *)malloc(r+1); - if (*strp == nullptr) return -1; - return vsprintf_s(*strp, r+1, fmt, ap); -} -#endif - -/*********************************************************************** * ANSI terminal colors for default logger **********************************************************************/ #define ANSI_COLOR_RED "\x1b[31m" @@ -95,11 +81,10 @@ void SoapySDR_vlogf(const SoapySDRLogLevel logLevel, const char *format, va_list argList) { if (logLevel > registeredLogLevel) return; - char *message = NULL; - if (vasprintf(&message, format, argList) != -1) + char message[8*1024]; + if (std::vsnprintf(message, sizeof(message), format, argList) > 0) { SoapySDR_log(logLevel, message); - free(message); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/lib/Modules.in.cpp new/SoapySDR-soapy-sdr-0.8.1/lib/Modules.in.cpp --- old/SoapySDR-soapy-sdr-0.8.0/lib/Modules.in.cpp 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/lib/Modules.in.cpp 2021-07-26 01:01:57.000000000 +0200 @@ -11,7 +11,7 @@ #include <mutex> #include <map> -#ifdef _MSC_VER +#ifdef _WIN32 #include <windows.h> #else #include <dlfcn.h> @@ -29,7 +29,7 @@ **********************************************************************/ std::string getEnvImpl(const char *name) { - #ifdef _MSC_VER + #ifdef _WIN32 const DWORD len = GetEnvironmentVariableA(name, 0, 0); if (len == 0) return ""; char* buffer = new char[len]; @@ -52,7 +52,7 @@ // Get the path to the current dynamic linked library. // The path to this library can be used to determine // the installation root without prior knowledge. - #ifdef _MSC_VER + #ifdef _WIN32 char path[MAX_PATH]; HMODULE hm = NULL; if (GetModuleHandleExA( @@ -83,7 +83,7 @@ std::vector<std::string> modulePaths; const std::string pattern = path + "*@MODULE_EXT@"; -#ifdef _MSC_VER +#ifdef _WIN32 //http://stackoverflow.com/questions/612097/how-can-i-get-a-list-of-files-in-a-directory-using-c-or-c WIN32_FIND_DATA fd; HANDLE hFind = ::FindFirstFile(pattern.c_str(), &fd); @@ -136,7 +136,7 @@ } //separator for search paths - #ifdef _MSC_VER + #ifdef _WIN32 static const char sep = ';'; #else static const char sep = ':'; @@ -207,7 +207,7 @@ getModuleVersions()[getModuleLoading()] = version; } -#ifdef _MSC_VER +#ifdef _WIN32 static std::string GetLastErrorMessage(void) { LPVOID lpMsgBuf; @@ -245,7 +245,7 @@ getModuleLoading().assign(path); //load the module -#ifdef _MSC_VER +#ifdef _WIN32 //SetThreadErrorMode() - disable error pop-ups when DLLs are not found DWORD oldMode; @@ -292,7 +292,7 @@ //unload the module void *handle = getModuleHandles()[path]; -#ifdef _MSC_VER +#ifdef _WIN32 BOOL success = FreeLibrary((HMODULE)handle); getModuleLoading().clear(); if (not success) return "FreeLibrary() failed: " + GetLastErrorMessage(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/lib/Types.cpp new/SoapySDR-soapy-sdr-0.8.1/lib/Types.cpp --- old/SoapySDR-soapy-sdr-0.8.0/lib/Types.cpp 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/lib/Types.cpp 2021-07-26 01:01:57.000000000 +0200 @@ -1,4 +1,5 @@ // Copyright (c) 2014-2017 Josh Blum +// 2021 Nicholas Corgan // SPDX-License-Identifier: BSL-1.0 #include <SoapySDR/Types.hpp> @@ -60,7 +61,8 @@ SoapySDR::Range::Range(void): _min(0.0), - _max(0.0) + _max(0.0), + _step(0.0) { return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/python3/CMakeLists.txt new/SoapySDR-soapy-sdr-0.8.1/python3/CMakeLists.txt --- old/SoapySDR-soapy-sdr-0.8.0/python3/CMakeLists.txt 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/python3/CMakeLists.txt 2021-07-26 01:01:57.000000000 +0200 @@ -82,7 +82,13 @@ target_include_directories(${SWIG_MODULE_SoapySDR3_REAL_NAME} PRIVATE ${PYTHON3_INCLUDE_DIRS}) SWIG_LINK_LIBRARIES(SoapySDR3 SoapySDR ${PYTHON3_LIBRARIES}) -set_target_properties(${SWIG_MODULE_SoapySDR3_REAL_NAME} PROPERTIES OUTPUT_NAME _SoapySDR) +#Changed in version 3.15: Alternate library name (set with the OUTPUT_NAME property, for example) +#will be passed on to Python and CSharp wrapper libraries. +if(${CMAKE_VERSION} VERSION_LESS "3.15") + set_target_properties(${SWIG_MODULE_SoapySDR3_REAL_NAME} PROPERTIES OUTPUT_NAME _SoapySDR) +else() + set_target_properties(${SWIG_MODULE_SoapySDR3_REAL_NAME} PROPERTIES OUTPUT_NAME SoapySDR) +endif() ######################################################################## # Install Module diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/SoapySDR-soapy-sdr-0.8.0/tests/TestConvertTypes.cpp new/SoapySDR-soapy-sdr-0.8.1/tests/TestConvertTypes.cpp --- old/SoapySDR-soapy-sdr-0.8.0/tests/TestConvertTypes.cpp 2021-04-26 06:00:11.000000000 +0200 +++ new/SoapySDR-soapy-sdr-0.8.1/tests/TestConvertTypes.cpp 2021-07-26 01:01:57.000000000 +0200 @@ -23,6 +23,19 @@ check_equal(SoapySDR::SettingToString(false), SOAPY_SDR_FALSE); check_equal(SoapySDR::StringToSetting<bool>(SOAPY_SDR_TRUE), true); check_equal(SoapySDR::StringToSetting<bool>(SOAPY_SDR_FALSE), false); + check_equal(SoapySDR::StringToSetting<bool>("one-headed donkey"), true); + check_equal(SoapySDR::StringToSetting<bool>("+"), true); + check_equal(SoapySDR::StringToSetting<bool>(""), false); + check_equal(SoapySDR::StringToSetting<bool>("0"), false); + check_equal(SoapySDR::StringToSetting<bool>("0.2"), true); + check_equal(SoapySDR::StringToSetting<bool>("1"), true); + check_equal(SoapySDR::StringToSetting<bool>("-42"), true); + check_equal(SoapySDR::StringToSetting<bool>("0.0"), false); + check_equal(SoapySDR::StringToSetting<bool>("1.0"), true); + check_equal(SoapySDR::StringToSetting<bool>("0e12"), false); + check_equal(SoapySDR::StringToSetting<bool>("0.2e12"), true); + check_equal(SoapySDR::StringToSetting<bool>("000"), false); + check_equal(SoapySDR::StringToSetting<bool>("001"), true); printf("Check integer types:\n"); check_equal(SoapySDR::SettingToString(0), "0");