diff --git a/formatters/astyle/lib/CMakeLists.txt b/formatters/astyle/lib/CMakeLists.txt index 7af6d0c781..16989b1bbf 100644 --- a/formatters/astyle/lib/CMakeLists.txt +++ b/formatters/astyle/lib/CMakeLists.txt @@ -1,12 +1,13 @@ -# astyle lib throws lots of warnings with -Wdocumentation -string(REPLACE "-Wdocumentation" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - set(astylelib_SRCS ASBeautifier.cpp ASEnhancer.cpp ASFormatter.cpp ASResource.cpp ASLocalizer.cpp ) add_library(astylelib STATIC ${astylelib_SRCS}) set_property(TARGET astylelib PROPERTY POSITION_INDEPENDENT_CODE ON) +if (CMAKE_COMPILER_CXX_ID MATCHES "Clang") + # astyle lib throws lots of warnings with -Wdocumentation + target_compile_options(astylelib PRIVATE -Wno-documentation) +endif() diff --git a/kdevplatform/cmake/modules/KDevPlatformMacros.cmake b/kdevplatform/cmake/modules/KDevPlatformMacros.cmake index 88dcba2117..2943fb7299 100644 --- a/kdevplatform/cmake/modules/KDevPlatformMacros.cmake +++ b/kdevplatform/cmake/modules/KDevPlatformMacros.cmake @@ -1,146 +1,146 @@ # # KDevelop Platform Macros # # The following macros are defined here: # # KDEVPLATFORM_ADD_APP_TEMPLATES( template1 ... templateN ) # Use this to get packaged template archives for the given app templates. # Parameters should be the directories containing the templates. # # KDEVPLATFORM_ADD_FILE_TEMPLATES( template1 ... templateN ) # Use this to get packaged template archives for the given file templates. # Parameters should be the directories containing the templates. # # KDEVPLATFORM_ADD_PLUGIN( JSON SOURCES [ [...]] [SKIP_INSTALL] ) # Use this to get create plugins for the KDevPlatform. # Parameters should be the json file with plugin metadata and the sources of the plugin. # In case the plugin should not be installed, pass SKIP_INSTALL. # # Copyright 2007 Andreas Pakulat # Redistribution and use is allowed according to the terms of the BSD license. include(CMakeParseArguments) # creates a template archive from the given directory, internal macro(kdevplatform_create_template_archive _templateName) get_filename_component(_tmp_file ${_templateName} ABSOLUTE) get_filename_component(_baseName ${_tmp_file} NAME_WE) set(_template ${CMAKE_CURRENT_BINARY_DIR}/${_baseName}.tar.bz2) file(GLOB _files "${CMAKE_CURRENT_SOURCE_DIR}/${_templateName}/*") set(_deps) foreach(_file ${_files}) get_filename_component(_fileName ${_file} NAME) string(COMPARE NOTEQUAL ${_fileName} .kdev_ignore _v1) string(REGEX MATCH "\\.svn" _v2 ${_fileName} ) if(WIN32) string(REGEX MATCH "_svn" _v3 ${_fileName} ) else() set(_v3 FALSE) endif() if ( _v1 AND NOT _v2 AND NOT _v3 ) set(_deps ${_deps} ${_file}) endif ( _v1 AND NOT _v2 AND NOT _v3 ) endforeach(_file) list(SORT _deps) add_custom_target(${_baseName} ALL DEPENDS ${_template}) if(WIN32) add_custom_command(OUTPUT ${_template} COMMAND ${CMAKE_COMMAND} -E tar ARGS cfvz ${_template} -- ${_deps} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_templateName} DEPENDS ${_deps} ) else() if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") add_custom_command(OUTPUT ${_template} COMMAND tar ARGS -c -C ${CMAKE_CURRENT_SOURCE_DIR}/${_templateName} --exclude .kdev_ignore --exclude .svn --numeric-owner -j -f ${_template} . DEPENDS ${_deps} ) else() set(extraArgs "") if(DEFINED ENV{SOURCE_DATE_EPOCH}) # We assume there is tar > 1.28 if a reproducible build is wanted. - set(extraArgs "--mtime=$ENV{SOURCE_DATE_EPOCH}") + set(extraArgs --mtime=$ENV{SOURCE_DATE_EPOCH} --sort=name) endif() add_custom_command(OUTPUT ${_template} COMMAND tar ARGS -c -C ${CMAKE_CURRENT_SOURCE_DIR}/${_templateName} --exclude .kdev_ignore --exclude .svn --mode=go=rX,u+rw,a-s --owner=root --group=root --numeric-owner -j -f ${_template} ${extraArgs} . DEPENDS ${_deps} ) endif() endif() endmacro(kdevplatform_create_template_archive _templateName) # package and install the given directory as a template archive macro(kdevplatform_add_template _installDirectory _templateName) kdevplatform_create_template_archive(${_templateName}) get_filename_component(_tmp_file ${_templateName} ABSOLUTE) get_filename_component(_baseName ${_tmp_file} NAME_WE) set(_template ${CMAKE_CURRENT_BINARY_DIR}/${_baseName}.tar.bz2) install( FILES ${_template} DESTINATION ${_installDirectory}) GET_DIRECTORY_PROPERTY(_tmp_DIR_PROPS ADDITIONAL_MAKE_CLEAN_FILES ) list(APPEND _tmp_DIR_PROPS ${_template}) SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${_tmp_DIR_PROPS}") endmacro(kdevplatform_add_template _installDirectory _templateName) macro(kdevplatform_add_app_templates _templateNames) foreach(_templateName ${ARGV}) kdevplatform_add_template(${KDE_INSTALL_DATADIR}/kdevappwizard/templates ${_templateName}) endforeach(_templateName ${ARGV}) endmacro(kdevplatform_add_app_templates _templateNames) macro(kdevplatform_add_file_templates _templateNames) foreach(_templateName ${ARGV}) kdevplatform_add_template(${KDE_INSTALL_DATADIR}/kdevfiletemplates/templates ${_templateName}) endforeach(_templateName ${ARGV}) endmacro(kdevplatform_add_file_templates _templateNames) function(kdevplatform_add_plugin plugin) set(options SKIP_INSTALL) set(oneValueArgs JSON) set(multiValueArgs SOURCES) cmake_parse_arguments(KDEV_ADD_PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) get_filename_component(json "${KDEV_ADD_PLUGIN_JSON}" REALPATH) list(LENGTH KDEV_ADD_PLUGIN_SOURCES src_count) if (NOT ${src_count} GREATER 0) message(FATAL_ERROR "kdevplatform_add_plugin() called without passing any source files. Please use the SOURCES parameter.") endif() # ensure we recompile the corresponding object files when the json file changes set(dependent_sources ) foreach(source ${KDEV_ADD_PLUGIN_SOURCES}) get_filename_component(source "${source}" REALPATH) if(EXISTS "${source}") file(STRINGS "${source}" match REGEX "K_PLUGIN_FACTORY_WITH_JSON") if(match) list(APPEND dependent_sources "${source}") endif() endif() endforeach() if(NOT dependent_sources) # fallback to all sources - better safe than sorry... set(dependent_sources ${KDEV_ADD_PLUGIN_SOURCES}) endif() set_property(SOURCE ${dependent_sources} APPEND PROPERTY OBJECT_DEPENDS ${json}) add_library(${plugin} MODULE ${KDEV_ADD_PLUGIN_SOURCES}) set_property(TARGET ${plugin} APPEND PROPERTY AUTOGEN_TARGET_DEPENDS ${json}) if (NOT KDEV_ADD_PLUGIN_SKIP_INSTALL) install(TARGETS ${plugin} DESTINATION ${KDE_INSTALL_PLUGINDIR}/kdevplatform/${KDEV_PLUGIN_VERSION}) endif() endfunction() diff --git a/kdevplatform/plugins/docker/dockerplugin.cpp b/kdevplatform/plugins/docker/dockerplugin.cpp index 138928c805..de9d535e16 100644 --- a/kdevplatform/plugins/docker/dockerplugin.cpp +++ b/kdevplatform/plugins/docker/dockerplugin.cpp @@ -1,168 +1,168 @@ /* Copyright 2017 Aleix Pol Gonzalez This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License version 2 as published by the Free Software Foundation. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "dockerplugin.h" #include "dockerruntime.h" #include "dockerpreferences.h" #include "dockerpreferencessettings.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include K_PLUGIN_FACTORY_WITH_JSON(KDevDockerFactory, "kdevdocker.json", registerPlugin();) using namespace KDevelop; DockerPlugin::DockerPlugin(QObject *parent, const QVariantList & /*args*/) : KDevelop::IPlugin( QStringLiteral("kdevdocker"), parent ) , m_settings(new DockerPreferencesSettings) { runtimeChanged(ICore::self()->runtimeController()->currentRuntime()); setXMLFile( QStringLiteral("kdevdockerplugin.rc") ); connect(ICore::self()->runtimeController(), &IRuntimeController::currentRuntimeChanged, this, &DockerPlugin::runtimeChanged); QProcess* process = new QProcess(this); connect(process, static_cast(&QProcess::finished), this, &DockerPlugin::imagesListFinished); process->start(QStringLiteral("docker"), {QStringLiteral("images"), QStringLiteral("--filter"), QStringLiteral("dangling=false"), QStringLiteral("--format"), QStringLiteral("{{.Repository}}:{{.Tag}}\t{{.ID}}")}, QIODevice::ReadOnly); DockerRuntime::s_settings = m_settings.data(); } DockerPlugin::~DockerPlugin() { DockerRuntime::s_settings = nullptr; } void DockerPlugin::imagesListFinished(int code) { if (code != 0) return; QProcess* process = qobject_cast(sender()); Q_ASSERT(process); QTextStream stream(process); while(!stream.atEnd()) { const QString line = stream.readLine(); const QStringList parts = line.split(QLatin1Char('\t')); const QString tag = parts[0] == QLatin1String("") ? parts[1] : parts[0]; ICore::self()->runtimeController()->addRuntimes(new DockerRuntime(tag)); } process->deleteLater(); Q_EMIT imagesListed(); } void DockerPlugin::runtimeChanged(KDevelop::IRuntime* newRuntime) { const bool isDocker = qobject_cast(newRuntime); for(auto action: actionCollection()->actions()) { action->setEnabled(isDocker); } } KDevelop::ContextMenuExtension DockerPlugin::contextMenuExtension(KDevelop::Context* context, QWidget* parent) { QList urls; if ( context->type() == KDevelop::Context::FileContext ) { KDevelop::FileContext* filectx = static_cast(context); urls = filectx->urls(); } else if ( context->type() == KDevelop::Context::ProjectItemContext ) { KDevelop::ProjectItemContext* projctx = static_cast(context); foreach( KDevelop::ProjectBaseItem* item, projctx->items() ) { if ( item->file() ) { urls << item->path().toUrl(); } } } for(auto it = urls.begin(); it != urls.end(); ) { if (it->isLocalFile() && it->fileName() == QLatin1String("Dockerfile")) { ++it; } else { it = urls.erase(it); } } if ( !urls.isEmpty() ) { KDevelop::ContextMenuExtension ext; foreach(const QUrl &url, urls) { const KDevelop::Path file(url); auto action = new QAction(QIcon::fromTheme("text-dockerfile"), i18n("docker build '%1'", file.path()), parent); connect(action, &QAction::triggered, this, [this, file]() { const auto dir = file.parent(); const QString name = QInputDialog::getText( ICore::self()->uiController()->activeMainWindow(), i18n("Choose tag name..."), i18n("Tag name for '%1'", file.path()), QLineEdit::Normal, dir.lastPathSegment() ); auto process = new OutputExecuteJob; process->setExecuteOnHost(true); *process << QStringList{"docker", "build", "--tag", name, dir.toLocalFile()}; - connect(process, &KJob::finished, this, [this, name] (KJob* job) { + connect(process, &KJob::finished, this, [name] (KJob* job) { if (job->error() != 0) return; ICore::self()->runtimeController()->addRuntimes(new DockerRuntime(name)); }); process->start(); }); ext.addAction(KDevelop::ContextMenuExtension::RunGroup, action); } return ext; } return KDevelop::IPlugin::contextMenuExtension(context, parent); } int DockerPlugin::configPages() const { return 1; } KDevelop::ConfigPage* DockerPlugin::configPage(int number, QWidget* parent) { if (number == 0) { return new DockerPreferences(this, m_settings.data(), parent); } return nullptr; } #include "dockerplugin.moc" diff --git a/kdevplatform/plugins/subversion/3rdparty/CMakeLists.txt b/kdevplatform/plugins/subversion/3rdparty/CMakeLists.txt new file mode 100644 index 0000000000..310562e6ba --- /dev/null +++ b/kdevplatform/plugins/subversion/3rdparty/CMakeLists.txt @@ -0,0 +1,41 @@ +add_library(kdevsvncpp STATIC + kdevsvncpp/apr.cpp + kdevsvncpp/client_annotate.cpp + kdevsvncpp/client_cat.cpp + kdevsvncpp/client.cpp + kdevsvncpp/client_diff.cpp + kdevsvncpp/client_ls.cpp + kdevsvncpp/client_modify.cpp + kdevsvncpp/client_property.cpp + kdevsvncpp/client_status.cpp + kdevsvncpp/context.cpp + kdevsvncpp/datetime.cpp + kdevsvncpp/dirent.cpp + kdevsvncpp/entry.cpp + kdevsvncpp/exception.cpp + kdevsvncpp/info.cpp + kdevsvncpp/log_entry.cpp + kdevsvncpp/path.cpp + kdevsvncpp/pool.cpp + kdevsvncpp/property.cpp + kdevsvncpp/revision.cpp + kdevsvncpp/status.cpp + kdevsvncpp/status_selection.cpp + kdevsvncpp/targets.cpp + kdevsvncpp/url.cpp + kdevsvncpp/wc.cpp +) +set_property(TARGET kdevsvncpp PROPERTY POSITION_INDEPENDENT_CODE ON) +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_compile_options(kdevsvncpp PRIVATE "-Wno-documentation") +endif() +target_include_directories(kdevsvncpp + PRIVATE kdevsvncpp +) +target_include_directories(kdevsvncpp SYSTEM + INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC ${SUBVERSION_INCLUDE_DIRS} +) +target_link_libraries(kdevsvncpp + ${SUBVERSION_LIBRARIES} +) diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/.kateconfig b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/.kateconfig similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/.kateconfig rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/.kateconfig diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/README.DONTTOUCH b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/README.DONTTOUCH similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/README.DONTTOUCH rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/README.DONTTOUCH diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/README.svncppversion b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/README.svncppversion similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/README.svncppversion rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/README.svncppversion diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/annotate_line.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/annotate_line.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/annotate_line.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/annotate_line.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/apr.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/apr.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/apr.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/apr.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/apr.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/apr.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/apr.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/apr.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client_annotate.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_annotate.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client_annotate.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_annotate.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client_cat.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_cat.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client_cat.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_cat.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client_diff.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_diff.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client_diff.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_diff.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client_ls.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_ls.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client_ls.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_ls.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client_modify.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_modify.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client_modify.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_modify.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client_property.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_property.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client_property.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_property.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/client_status.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_status.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/client_status.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/client_status.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/context.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/context.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/context.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/context.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/context.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/context.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/context.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/context.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/context_listener.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/context_listener.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/context_listener.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/context_listener.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/datetime.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/datetime.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/datetime.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/datetime.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/datetime.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/datetime.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/datetime.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/datetime.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/dirent.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/dirent.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/dirent.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/dirent.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/dirent.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/dirent.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/dirent.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/dirent.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/entry.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/entry.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/entry.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/entry.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/entry.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/entry.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/entry.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/entry.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/exception.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/exception.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/exception.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/exception.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/exception.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/exception.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/exception.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/exception.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/info.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/info.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/info.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/info.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/info.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/info.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/info.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/info.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/log_entry.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/log_entry.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/log_entry.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/log_entry.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/log_entry.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/log_entry.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/log_entry.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/log_entry.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/m_check.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/m_check.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/m_check.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/m_check.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/map_wrapper.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/map_wrapper.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/map_wrapper.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/map_wrapper.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/path.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/path.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/path.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/path.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/path.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/path.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/path.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/path.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/pool.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/pool.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/pool.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/pool.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/pool.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/pool.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/pool.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/pool.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/property.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/property.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/property.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/property.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/property.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/property.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/property.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/property.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/revision.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/revision.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/revision.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/revision.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/revision.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/revision.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/revision.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/revision.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/status.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/status.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/status.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/status.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/status.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/status.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/status.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/status.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/status_selection.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/status_selection.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/status_selection.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/status_selection.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/status_selection.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/status_selection.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/status_selection.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/status_selection.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/string_wrapper.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/string_wrapper.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/string_wrapper.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/string_wrapper.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/targets.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/targets.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/targets.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/targets.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/targets.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/targets.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/targets.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/targets.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/url.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/url.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/url.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/url.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/url.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/url.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/url.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/url.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/utility_wrapper.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/utility_wrapper.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/utility_wrapper.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/utility_wrapper.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/vector_wrapper.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/vector_wrapper.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/vector_wrapper.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/vector_wrapper.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/version.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/version.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/version.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/version.hpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/wc.cpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/wc.cpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/wc.cpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/wc.cpp diff --git a/kdevplatform/plugins/subversion/kdevsvncpp/wc.hpp b/kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/wc.hpp similarity index 100% rename from kdevplatform/plugins/subversion/kdevsvncpp/wc.hpp rename to kdevplatform/plugins/subversion/3rdparty/kdevsvncpp/wc.hpp diff --git a/kdevplatform/plugins/subversion/CMakeLists.txt b/kdevplatform/plugins/subversion/CMakeLists.txt index 65793f4d5c..0fe8c5d206 100644 --- a/kdevplatform/plugins/subversion/CMakeLists.txt +++ b/kdevplatform/plugins/subversion/CMakeLists.txt @@ -1,106 +1,70 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kdevsubversion\") # silence the deprecation warnings # if someone wants to fix the code, I'd welcome it # but for now, we won't spend time on it... add_definitions(-DSVN_DEPRECATED=) -string(REPLACE "-Wdocumentation" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +kde_enable_exceptions() if(BUILD_TESTING) add_subdirectory(tests) endif() +add_subdirectory(3rdparty) add_subdirectory(icons) -include_directories( - SYSTEM ${SUBVERSION_INCLUDE_DIRS} -) - -kde_enable_exceptions() - -########### next target ############### - -set(kdevsubversion_WRAPPER_SRCS - kdevsvncpp/apr.cpp - kdevsvncpp/client_annotate.cpp - kdevsvncpp/client_cat.cpp - kdevsvncpp/client.cpp - kdevsvncpp/client_diff.cpp - kdevsvncpp/client_ls.cpp - kdevsvncpp/client_modify.cpp - kdevsvncpp/client_property.cpp - kdevsvncpp/client_status.cpp - kdevsvncpp/context.cpp - kdevsvncpp/datetime.cpp - kdevsvncpp/dirent.cpp - kdevsvncpp/entry.cpp - kdevsvncpp/exception.cpp - kdevsvncpp/info.cpp - kdevsvncpp/log_entry.cpp - kdevsvncpp/path.cpp - kdevsvncpp/pool.cpp - kdevsvncpp/property.cpp - kdevsvncpp/revision.cpp - kdevsvncpp/status.cpp - kdevsvncpp/status_selection.cpp - kdevsvncpp/targets.cpp - kdevsvncpp/url.cpp - kdevsvncpp/wc.cpp -) - set(kdevsubversion_JOB_SRCS svninternaljobbase.cpp svnjobbase.cpp svncommitjob.cpp svnstatusjob.cpp svnaddjob.cpp svnupdatejob.cpp svnrevertjob.cpp svnremovejob.cpp svninfojob.cpp svndiffjob.cpp svncatjob.cpp svncopyjob.cpp svnmovejob.cpp svnlogjob.cpp svnblamejob.cpp svnimportjob.cpp svncheckoutjob.cpp ) set(kdevsubversion_PART_SRCS kdevsvnplugin.cpp svnssldialog.cpp svnimportmetadatawidget.cpp svncheckoutmetadatawidget.cpp svnclient.cpp svnlocationwidget.cpp ) ecm_qt_declare_logging_category(kdevsubversion_PART_SRCS HEADER debug.h IDENTIFIER PLUGIN_SVN CATEGORY_NAME "kdevplatform.plugins.svn" ) set(kdevsubversion_PART_UI ui/ssltrustdialog.ui ui/importmetadatawidget.ui ui/checkoutmetadatawidget.ui ) ki18n_wrap_ui(kdevsubversion_PART_SRCS ${kdevsubversion_PART_UI}) -kdevplatform_add_plugin(kdevsubversion JSON kdevsubversion.json SOURCES ${kdevsubversion_PART_SRCS} ${kdevsubversion_JOB_SRCS} ${kdevsubversion_WRAPPER_SRCS}) - +kdevplatform_add_plugin(kdevsubversion JSON kdevsubversion.json SOURCES ${kdevsubversion_PART_SRCS} ${kdevsubversion_JOB_SRCS}) target_link_libraries(kdevsubversion - ${SUBVERSION_LIBRARIES} KF5::KIOCore KF5::TextEditor KF5::ThreadWeaver KF5::Parts KDev::Interfaces KDev::Vcs KDev::OutputView KDev::Project + kdevsvncpp ) diff --git a/languages/plugins/custom-definesandincludes/kcm_widget/parserwidget.cpp b/languages/plugins/custom-definesandincludes/kcm_widget/parserwidget.cpp index 17ee3d88c6..3f8cf22fd3 100644 --- a/languages/plugins/custom-definesandincludes/kcm_widget/parserwidget.cpp +++ b/languages/plugins/custom-definesandincludes/kcm_widget/parserwidget.cpp @@ -1,196 +1,196 @@ /* * This file is part of KDevelop * * Copyright 2015 Sergey Kalinichev * * 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 of * the License or (at your option) version 3 or any later version * accepted by the membership of KDE e.V. (or its successor approved * by the membership of KDE e.V.), which shall act as a proxy * defined in Section 14 of version 3 of the license. * * 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include "parserwidget.h" #include "ui_parserwidget.h" #include "compilerprovider/settingsmanager.h" #include namespace { QString languageStandard(const QString& arguments) { int idx = arguments.indexOf(QLatin1String("-std=")); if(idx == -1){ return QStringLiteral("c++11"); } idx += 5; int end = arguments.indexOf(' ', idx) != -1 ? arguments.indexOf(' ', idx) : arguments.size(); return arguments.mid(idx, end - idx); } bool isCustomParserArguments(const QString& arguments, const QStringList& standards) { const auto defaultArguments = SettingsManager::globalInstance()->defaultParserArguments(); auto standard = languageStandard(arguments); auto tmpArgs(arguments); tmpArgs.replace(standard, QLatin1String("c++11")); if (tmpArgs == defaultArguments.cppArguments && standards.contains(standard)) { return false; } return true; } const int customProfileIdx = 0; } ParserWidget::ParserWidget(QWidget* parent) : QWidget(parent) , m_ui(new Ui::ParserWidget()) { m_ui->setupUi(this); connect(m_ui->parserOptionsC, &QLineEdit::textEdited, this, &ParserWidget::textEdited); connect(m_ui->parserOptionsCpp, &QLineEdit::textEdited, this, &ParserWidget::textEdited); connect(m_ui->parserOptionsOpenCl, &QLineEdit::textEdited, this, &ParserWidget::textEdited); connect(m_ui->parserOptionsCuda, &QLineEdit::textEdited, this, &ParserWidget::textEdited); connect(m_ui->parseHeadersInPlainC, &QCheckBox::stateChanged, this, &ParserWidget::textEdited); connect(m_ui->languageStandardsC, static_cast(&QComboBox::activated), this, &ParserWidget::languageStandardChangedC); connect(m_ui->languageStandardsCpp, static_cast(&QComboBox::activated), this, &ParserWidget::languageStandardChangedCpp); connect(m_ui->languageStandardsOpenCl, static_cast(&QComboBox::activated), this, &ParserWidget::languageStandardChangedOpenCl); connect(m_ui->languageStandardsCuda, static_cast(&QComboBox::activated), this, &ParserWidget::languageStandardChangedCuda); updateEnablements(); } ParserWidget::~ParserWidget() = default; void ParserWidget::textEdited() { emit changed(); } void ParserWidget::languageStandardChangedC(const QString& standard) { if (m_ui->languageStandardsC->currentIndex() == customProfileIdx) { m_ui->parserOptionsC->setText(SettingsManager::globalInstance()->defaultParserArguments().cArguments); } else { auto text = SettingsManager::globalInstance()->defaultParserArguments().cArguments; auto currentStandard = languageStandard(text); m_ui->parserOptionsC->setText(text.replace(currentStandard, standard)); } textEdited(); updateEnablements(); } void ParserWidget::languageStandardChangedCpp(const QString& standard) { if (m_ui->languageStandardsCpp->currentIndex() == customProfileIdx) { m_ui->parserOptionsCpp->setText(SettingsManager::globalInstance()->defaultParserArguments().cppArguments); } else { auto text = SettingsManager::globalInstance()->defaultParserArguments().cppArguments; auto currentStandard = languageStandard(text); m_ui->parserOptionsCpp->setText(text.replace(currentStandard, standard)); } textEdited(); updateEnablements(); } void ParserWidget::languageStandardChangedOpenCl(const QString& standard) { if (m_ui->languageStandardsOpenCl->currentIndex() == customProfileIdx) { m_ui->parserOptionsOpenCl->setText(SettingsManager::globalInstance()->defaultParserArguments().openClArguments); } else { auto text = SettingsManager::globalInstance()->defaultParserArguments().openClArguments; auto currentStandard = languageStandard(text); m_ui->parserOptionsOpenCl->setText(text.replace(currentStandard, standard)); } textEdited(); updateEnablements(); } void ParserWidget::languageStandardChangedCuda(const QString& standard) { if (m_ui->languageStandardsCuda->currentIndex() == customProfileIdx) { m_ui->parserOptionsCuda->setText(SettingsManager::globalInstance()->defaultParserArguments().cudaArguments); } else { auto text = SettingsManager::globalInstance()->defaultParserArguments().cudaArguments; auto currentStandard = languageStandard(text); m_ui->parserOptionsCuda->setText(text.replace(currentStandard, standard)); } textEdited(); updateEnablements(); } void ParserWidget::setParserArguments(const ParserArguments& arguments) { - auto setArguments = [this](QComboBox* languageStandards, QLineEdit* parserOptions, const QString& arguments) { + auto setArguments = [](QComboBox* languageStandards, QLineEdit* parserOptions, const QString& arguments) { QStringList standards; for (int i = 1; i < languageStandards->count(); i++) { standards << languageStandards->itemText(i); } if (isCustomParserArguments(arguments, standards)) { languageStandards->setCurrentIndex(customProfileIdx); } else { languageStandards->setCurrentText(languageStandard(arguments)); } parserOptions->setText(arguments); }; setArguments(m_ui->languageStandardsCpp, m_ui->parserOptionsCpp, arguments.cppArguments); setArguments(m_ui->languageStandardsC, m_ui->parserOptionsC, arguments.cArguments); setArguments(m_ui->languageStandardsOpenCl, m_ui->parserOptionsOpenCl, arguments.openClArguments); setArguments(m_ui->languageStandardsCuda, m_ui->parserOptionsCuda, arguments.cudaArguments); m_ui->parseHeadersInPlainC->setChecked(!arguments.parseAmbiguousAsCPP); updateEnablements(); } ParserArguments ParserWidget::parserArguments() const { return { m_ui->parserOptionsC->text(), m_ui->parserOptionsCpp->text(), m_ui->parserOptionsOpenCl->text(), m_ui->parserOptionsCuda->text(), !m_ui->parseHeadersInPlainC->isChecked() }; } void ParserWidget::updateEnablements() { m_ui->parserOptionsCpp->setEnabled(m_ui->languageStandardsCpp->currentIndex() == customProfileIdx); m_ui->parserOptionsC->setEnabled(m_ui->languageStandardsC->currentIndex() == customProfileIdx); m_ui->parserOptionsOpenCl->setEnabled(m_ui->languageStandardsOpenCl->currentIndex() == customProfileIdx); m_ui->parserOptionsCuda->setEnabled(m_ui->languageStandardsCuda->currentIndex() == customProfileIdx); } diff --git a/qtcompat_p.h b/qtcompat_p.h index 12024b2249..05f173dc99 100644 --- a/qtcompat_p.h +++ b/qtcompat_p.h @@ -1,64 +1,64 @@ /* Copyright (c) 2017 Kevin Funk +// COMPAT: qAsConst (from qglobal.h) #if QT_VERSION < QT_VERSION_CHECK(5,7,0) namespace QtPrivate { template struct QAddConst { typedef const T Type; }; } // this adds const to non-const objects (like std::as_const) template Q_DECL_CONSTEXPR typename QtPrivate::QAddConst::Type &qAsConst(T &t) Q_DECL_NOTHROW { return t; } // prevent rvalue arguments: template void qAsConst(const T &&) Q_DECL_EQ_DELETE; #endif #endif -// compat for Q_FALLTHROUGH +// COMPAT: Q_FALLTHROUGH (from qcompilerdetection.h) #if QT_VERSION < QT_VERSION_CHECK(5,8,0) -#if defined(__has_cpp_attribute) -# if __has_cpp_attribute(fallthrough) -# define Q_FALLTHROUGH() [[fallthrough]] -# elif __has_cpp_attribute(clang::fallthrough) -# define Q_FALLTHROUGH() [[clang::fallthrough]] -# elif __has_cpp_attribute(gnu::fallthrough) -# define Q_FALLTHROUGH() [[gnu::fallthrough]] -# endif +#if defined(__cplusplus) +#if QT_HAS_CPP_ATTRIBUTE(fallthrough) +# define Q_FALLTHROUGH() [[fallthrough]] +#elif QT_HAS_CPP_ATTRIBUTE(clang::fallthrough) +# define Q_FALLTHROUGH() [[clang::fallthrough]] +#elif QT_HAS_CPP_ATTRIBUTE(gnu::fallthrough) +# define Q_FALLTHROUGH() [[gnu::fallthrough]] +#endif #endif - #ifndef Q_FALLTHROUGH -# if defined(__GNUC__) && !defined(__INTEL_COMPILER) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 700) -# define Q_FALLTHROUGH() __attribute__((fallthrough)) -# else -# define Q_FALLTHROUGH() (void)0 -# endif +# if (defined(Q_CC_GNU) && Q_CC_GNU >= 700) && !defined(Q_CC_INTEL) +# define Q_FALLTHROUGH() __attribute__((fallthrough)) +# else +# define Q_FALLTHROUGH() (void)0 +#endif #endif #endif