Commit d101d916 authored by Harald Sitter's avatar Harald Sitter 🏳🌈
Browse files

smb: split module into two targets of which one is a static lib

Summary:
this allows us to use the intermediate static target for unit testing
(which we'll want for smburl at the very least).
the effective output remains unchanged, we simply have a fake library
now before we turn it into a proper plugin .so.

kdemain as a result was moved to its own file and only gets built into the
final plugin but not the static library as it'd not have any use there
anyway

Test Plan: builds and works still

Reviewers: ngraham, apol

Reviewed By: apol

Subscribers: apol, kde-frameworks-devel, kfm-devel

Tags: #dolphin, #frameworks

Differential Revision: https://phabricator.kde.org/D27800
parent 5cfd852a
......@@ -46,9 +46,13 @@ ecm_qt_declare_logging_category(kio_smb_PART_SRCS
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
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..;${CMAKE_CURRENT_BINARY_DIR}/..>"
)
target_link_libraries(kio_smb_static
KF5::KIOCore
KF5::I18n
${SAMBA_LIBRARIES}
......@@ -57,6 +61,12 @@ target_link_libraries(kio_smb
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")
......
......@@ -98,19 +98,4 @@ void SMBSlave::virtual_hook(int id, void *data)
}
}
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"
/////////////////////////////////////////////////////////////////////////////
//
// Project: SMB kioslave for KDE
//
// Abstract: member function implementations for SMBSlave
//
// Author(s): Matthew Peterson <mpeterson@caldera.com>
//
//---------------------------------------------------------------------------
//
// 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 <QCoreApplication>
#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;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment