diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 63d515b57..4a6bad73e 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -602,6 +602,7 @@ if (WIN32 OR APPLE) set(SOAPYSDR_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "") if (WIN32) install(FILES "${SDRANGEL_BINARY_BIN_DIR}/SoapySDR${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}") + install(DIRECTORY "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR" DESTINATION "${INSTALL_LIB_DIR}/lib") elseif (APPLE) set(SOAPYSDR_LIBRARY "${binary_dir}/lib/libSoapySDR${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") install(DIRECTORY "${binary_dir}/lib/" DESTINATION "${INSTALL_LIB_DIR}" diff --git a/sdrbase/plugin/pluginmanager.cpp b/sdrbase/plugin/pluginmanager.cpp index 53926913b..5302dcefb 100644 --- a/sdrbase/plugin/pluginmanager.cpp +++ b/sdrbase/plugin/pluginmanager.cpp @@ -76,6 +76,10 @@ void PluginManager::loadPluginsPart(const QString& pluginsSubDir) PluginsPath << applicationDirPath + "/../Resources/lib/" + pluginsSubDir; #elif defined(_WIN32) || defined(WIN32) PluginsPath << applicationDirPath + "/" + pluginsSubDir; + // Give SoapySDR hint about modules location. + // By default it searches in `$applicationDir/../lib/SoapySDR/`, which on Windows + // is incorrect as both `bin` and `lib` dir are set to root application dir. + qputenv("SOAPY_SDR_ROOT", applicationDirPath.toLocal8Bit()); #endif // NOTE: exit on the first folder found