From daab41e41e997e0242fdfe5715bfdad365ded515 Mon Sep 17 00:00:00 2001 From: peri4 Date: Tue, 23 Sep 2025 21:16:54 +0300 Subject: [PATCH] add options for fftw3 precisions configureFromFullPathDevice for all devices now trim() components --- CMakeLists.txt | 26 +++++++++++++++++++++++-- libs/main/io_devices/pibinarylog.cpp | 2 +- libs/main/io_devices/pican.cpp | 2 +- libs/main/io_devices/piethernet.cpp | 2 +- libs/main/io_devices/pipeer.cpp | 2 +- libs/main/io_devices/piserial.cpp | 2 +- libs/main/io_devices/pisharedmemory.cpp | 2 +- libs/main/io_devices/pispi.cpp | 2 +- 8 files changed, 31 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd352a25..08235ed0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,6 +69,9 @@ option(STD_IOSTREAM "Building with std iostream operators support" OFF) option(INTROSPECTION "Build with introspection" OFF) option(TESTS "Build tests and perform their before install step" OFF) option(COVERAGE "Build project with coverage info" OFF) +option(PIP_FFTW_F "Support fftw module for float" ON) +option(PIP_FFTW_L "Support fftw module for long double" ON) +option(PIP_FFTW_Q "Support fftw module for quad double" OFF) set(PIP_UTILS 1) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_CXX_STANDARD 11) @@ -436,8 +439,23 @@ if (NOT CROSSTOOLS) if (PIP_BUILD_FFTW) # Check if PIP support fftw3 for PIFFT using in math module set(FFTW_LIB_NAME fftw3) - set(FFTW_LIB_SUFFIXES "" "f" "l" "q") + set(FFTW_LIB_SUFFIXES "") + if (PIP_FFTW_F) + list(APPEND FFTW_LIB_SUFFIXES "f") + endif() + if (PIP_FFTW_L) + list(APPEND FFTW_LIB_SUFFIXES "l") + endif() + if (PIP_FFTW_Q) + list(APPEND FFTW_LIB_SUFFIXES "q") + endif() + if (NOT "${FFTW_LIB_SUFFIXES}" STREQUAL "") + set(FFTW_LIB_SUFFIXES ";${FFTW_LIB_SUFFIXES}") + else() + list(APPEND FFTW_LIB_SUFFIXES "" "_") + endif() set(FFTW_LIB_SUFFIXES2 "" "-3") + set(FFTW_MSG "") set(FFTW_LIBS) set(FFTW_ABS_LIBS) set(CMAKE_REQUIRED_INCLUDES fftw3.h) @@ -452,6 +470,10 @@ if (NOT CROSSTOOLS) set(${FFTW_CLN}_FOUND FALSE) set(${FFTW_CLNT}_FOUND FALSE) if(${FFTW_CLN}_LIBRARIES) + if (NOT "${FFTW_MSG}" STREQUAL "") + set(FFTW_MSG "${FFTW_MSG}, ") + endif() + set(FFTW_MSG "${FFTW_MSG}${FFTW_CLN}") set(${FFTW_CLN}_FOUND TRUE) list(APPEND FFTW_LIBS "${FFTW_CLN}") list(APPEND FFTW_ABS_LIBS "${${FFTW_CLN}_LIBRARIES}") @@ -475,7 +497,7 @@ if (NOT CROSSTOOLS) endforeach() endforeach() if(FFTW_LIBS) - pip_module(fftw "${FFTW_LIBS}" "PIP FFTW support" "" "" "") + pip_module(fftw "${FFTW_LIBS}" "PIP FFTW support" "" "" " (${FFTW_MSG})") endif() endif() diff --git a/libs/main/io_devices/pibinarylog.cpp b/libs/main/io_devices/pibinarylog.cpp index 666ec901..29f97bda 100644 --- a/libs/main/io_devices/pibinarylog.cpp +++ b/libs/main/io_devices/pibinarylog.cpp @@ -938,7 +938,7 @@ PIString PIBinaryLog::constructFullPathDevice() const { void PIBinaryLog::configureFromFullPathDevice(const PIString & full_path) { const PIStringList pl = full_path.split(":"); for (int i = 0; i < pl.size_s(); ++i) { - const PIString p(pl[i]); + const PIString p(pl[i].trimmed()); switch (i) { case 0: setLogDir(p); break; case 1: setFilePrefix(p); break; diff --git a/libs/main/io_devices/pican.cpp b/libs/main/io_devices/pican.cpp index 7ec1dc06..2d6fe04e 100644 --- a/libs/main/io_devices/pican.cpp +++ b/libs/main/io_devices/pican.cpp @@ -181,7 +181,7 @@ void PICAN::configureFromFullPathDevice(const PIString & full_path) { PIString p(pl[i]); switch (i) { case 0: setPath(p); break; - case 1: setCANID(p.toInt(16)); break; + case 1: setCANID(p.trimmed().toInt(16)); break; default: break; } } diff --git a/libs/main/io_devices/piethernet.cpp b/libs/main/io_devices/piethernet.cpp index 89634d5f..19eddf28 100644 --- a/libs/main/io_devices/piethernet.cpp +++ b/libs/main/io_devices/piethernet.cpp @@ -1047,7 +1047,7 @@ void PIEthernet::configureFromFullPathDevice(const PIString & full_path) { PIStringList pl = full_path.split(":"); bool mcast = false; for (int i = 0; i < pl.size_s(); ++i) { - PIString p(pl[i]); + PIString p(pl[i].trimmed()); switch (i) { case 0: p = p.toLowerCase(); diff --git a/libs/main/io_devices/pipeer.cpp b/libs/main/io_devices/pipeer.cpp index c0c4958d..c121dfea 100644 --- a/libs/main/io_devices/pipeer.cpp +++ b/libs/main/io_devices/pipeer.cpp @@ -1067,7 +1067,7 @@ PIString PIPeer::constructFullPathDevice() const { void PIPeer::configureFromFullPathDevice(const PIString & full_path) { PIStringList pl = full_path.split(":"); for (int i = 0; i < pl.size_s(); ++i) { - PIString p(pl[i]); + PIString p(pl[i].trimmed()); switch (i) { case 0: changeName(p); break; case 1: setTrustPeerName(p); break; diff --git a/libs/main/io_devices/piserial.cpp b/libs/main/io_devices/piserial.cpp index 38c9a08f..9859ef68 100644 --- a/libs/main/io_devices/piserial.cpp +++ b/libs/main/io_devices/piserial.cpp @@ -983,7 +983,7 @@ void PISerial::configureFromFullPathDevice(const PIString & full_path) { } } for (int i = 0; i < pl.size_s(); ++i) { - PIString p(pl[i]); + PIString p(pl[i].trimmed()); switch (i) { case 0: setProperty("path", p); break; case 1: diff --git a/libs/main/io_devices/pisharedmemory.cpp b/libs/main/io_devices/pisharedmemory.cpp index a3e9d654..8a4fc2ad 100644 --- a/libs/main/io_devices/pisharedmemory.cpp +++ b/libs/main/io_devices/pisharedmemory.cpp @@ -182,7 +182,7 @@ void PISharedMemory::configureFromFullPathDevice(const PIString & full_path) { initPrivate(); PIStringList pl = full_path.split(":"); for (int i = 0; i < pl.size_s(); ++i) { - PIString p(pl[i]); + PIString p(pl[i].trimmed()); switch (i) { case 0: setPath(p); break; case 1: dsize = p.toInt(); break; diff --git a/libs/main/io_devices/pispi.cpp b/libs/main/io_devices/pispi.cpp index 9f84b280..b432abf4 100644 --- a/libs/main/io_devices/pispi.cpp +++ b/libs/main/io_devices/pispi.cpp @@ -187,7 +187,7 @@ PIString PISPI::constructFullPathDevice() const { void PISPI::configureFromFullPathDevice(const PIString & full_path) { PIStringList pl = full_path.split(":"); for (int i = 0; i < pl.size_s(); ++i) { - PIString p(pl[i]); + PIString p(pl[i].trimmed()); switch (i) { case 0: setPath(p); break; case 1: setSpeed(p.toInt()); break;