diff --git a/smb/CMakeLists.txt b/smb/CMakeLists.txt --- a/smb/CMakeLists.txt +++ b/smb/CMakeLists.txt @@ -46,17 +46,27 @@ include_directories(${SAMBA_INCLUDE_DIR}) -add_library(kio_smb MODULE ${kio_smb_PART_SRCS}) - -target_link_libraries(kio_smb +# Intermediate static lib target for reuse in testing. +add_library(kio_smb_static STATIC ${kio_smb_PART_SRCS}) +target_include_directories(kio_smb_static + PUBLIC + "$" +) +target_link_libraries(kio_smb_static KF5::KIOCore KF5::I18n ${SAMBA_LIBRARIES} Qt5::Network KF5::DNSSD KDSoap::WSDiscoveryClient ) +# Final plugin target. +add_library(kio_smb MODULE main.cpp) +target_link_libraries(kio_smb + kio_smb_static +) + set_target_properties(kio_smb PROPERTIES OUTPUT_NAME "smb") set_target_properties(kio_smb PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf5/kio") diff --git a/smb/kio_smb.cpp b/smb/kio_smb.cpp --- a/smb/kio_smb.cpp +++ b/smb/kio_smb.cpp @@ -98,19 +98,4 @@ } } -int Q_DECL_EXPORT kdemain(int argc, char **argv) -{ - QCoreApplication app(argc, argv); - if (argc != 4) { - qCDebug(KIO_SMB_LOG) << "Usage: kio_smb protocol domain-socket1 domain-socket2"; - return -1; - } - - SMBSlave slave(argv[2], argv[3]); - - slave.dispatchLoop(); - - return 0; -} - #include "kio_smb.moc" diff --git a/smb/main.cpp b/smb/main.cpp new file mode 100644 --- /dev/null +++ b/smb/main.cpp @@ -0,0 +1,46 @@ +///////////////////////////////////////////////////////////////////////////// +// +// Project: SMB kioslave for KDE +// +// Abstract: member function implementations for SMBSlave +// +// Author(s): Matthew Peterson +// +//--------------------------------------------------------------------------- +// +// Copyright (c) 2000 Caldera Systems, Inc. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2.1 of the License, or +// (at your option) any later version. +// +// 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 Lesser General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; see the file COPYING. If not, please obtain +// a copy from https://www.gnu.org/copyleft/gpl.html +// +///////////////////////////////////////////////////////////////////////////// + +#include + +#include "kio_smb.h" + +extern "C" int Q_DECL_EXPORT kdemain(int argc, char **argv) +{ + QCoreApplication app(argc, argv); + if (argc != 4) { + qCDebug(KIO_SMB_LOG) << "Usage: kio_smb protocol domain-socket1 domain-socket2"; + return -1; + } + + SMBSlave slave(argv[2], argv[3]); + slave.dispatchLoop(); + + return 0; +} +