diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f23eeb..f152c93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,18 +1,31 @@ -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.0) project(kdevcargo) -find_package(ECM 1.0.0 REQUIRED NO_MODULE) -set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) +find_package(ECM 5.15.0 REQUIRED NO_MODULE) +set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMQtDeclareLoggingCategory) include(ECMInstallIcons) +include(FeatureSummary) -find_package(KDevPlatform 5.0 REQUIRED) -find_package(KF5 5.15.0 REQUIRED COMPONENTS ItemModels) +find_package(KF5 5.15.0 REQUIRED COMPONENTS + I18n + ItemModels # needed because missing in KDevPlatformConfig.cmake, remove once dep on kdevplatform >=5.2.2 +) +find_package(KDevPlatform 5.1 CONFIG) +set_package_properties(KDevPlatform PROPERTIES + TYPE REQUIRED +) +find_package(Cargo QUIET) +set_package_properties(Cargo PROPERTIES + TYPE RUNTIME +) add_subdirectory(src) add_subdirectory(icons) + +feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/cmake/FindCargo.cmake b/cmake/FindCargo.cmake new file mode 100644 index 0000000..05694e7 --- /dev/null +++ b/cmake/FindCargo.cmake @@ -0,0 +1,27 @@ +# Find the cargo executable +# +# Defines the following variables +# Cargo_EXECUTABLE - path of the cargo executable + +#============================================================================= +# Copyright 2017 Friedrich W. H. Kossebau +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= + +find_program(Cargo_EXECUTABLE NAMES cargo) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Cargo DEFAULT_MSG Cargo_EXECUTABLE) + +mark_as_advanced(Cargo_EXECUTABLE) + +set_package_properties(Cargo PROPERTIES + DESCRIPTION "The Rust package manager" + URL "https://github.com/rust-lang/cargo/" +) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eab3d88..de2ef75 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,27 +1,27 @@ add_definitions(-DTRANSLATION_DOMAIN=\"kdevcargo\") ecm_qt_declare_logging_category(cargo_LOG_SRCS HEADER debug.h - IDENTIFIER CUSTOMBUILDSYSTEM + IDENTIFIER KDEV_CARGO CATEGORY_NAME "kdevelop.projectmanagers.cargo" ) ## KDevelop Plugin set(cargo_SRCS cargoplugin.cpp cargobuildjob.cpp cargoexecutionconfig.cpp ${cargo_LOG_SRCS} ) ki18n_wrap_ui( cargo_SRCS cargoexecutionconfig.ui ) kdevplatform_add_plugin(kdevcargo JSON kdevcargo.json SOURCES ${cargo_SRCS}) target_link_libraries(kdevcargo KDev::Project KDev::Language KDev::Interfaces KDev::Util KDev::OutputView ) ## Unittests add_subdirectory( tests )