diff --git a/CMakeLists.txt b/CMakeLists.txt index 4303835..df44b57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,91 +1,93 @@ cmake_minimum_required(VERSION 2.8.12) project(kdevrust) set(KDEVRUST_VERSION_MAJOR 0) set(KDEVRUST_VERSION_MINOR 1) set(KDEVRUST_VERSION_PATCH 0) # KDevplatform dependency version set(KDEVPLATFORM_VERSION "${KDEVRUST_VERSION_MAJOR}.${KDEVRUST_VERSION_MINOR}.${KDEVRUST_VERSION_PATCH}") find_package(ECM 5.14.0 REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH}) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/) include(KDECompilerSettings NO_POLICY_SCOPE) include(GenerateExportHeader) include(CMakePackageConfigHelpers) include(ECMAddTests) include(ECMQtDeclareLoggingCategory) include(FeatureSummary) include(KDEInstallDirs) include(KDECMakeSettings) find_package(Qt5 REQUIRED Core Widgets Test) find_package(KF5 REQUIRED COMPONENTS ItemModels ThreadWeaver TextEditor I18n) find_package(KDevPlatform ${KDEVPLATFORM_VERSION} REQUIRED) +find_package(ASTRedux MODULE) +set_package_properties(ASTRedux PROPERTIES TYPE REQUIRED) + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdocumentation") endif() add_definitions( -DTRANSLATION_DOMAIN=\"kdevrust\" ) enable_testing() #add_subdirectory(parser) #add_subdirectory(duchain) #add_subdirectory(codecompletion) include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} # ${CMAKE_CURRENT_SOURCE_DIR}/duchain # ${CMAKE_CURRENT_SOURCE_DIR}/parser # ${CMAKE_CURRENT_BINARY_DIR}/parser ) -link_directories(${AST_REDUX_LIBDIR}) - set(kdevrustlanguagesupport_PART_SRCS rustlanguagesupport.cpp rustparsejob.cpp rusthighlighting.cpp duchain/contextbuilder.cpp duchain/declarationbuilder.cpp duchain/usebuilder.cpp duchain/rustnode.cpp duchain/rustducontext.cpp duchain/parsesession.cpp duchain/astredux.h duchain/nodetraits.h # rustdebug.cpp ) ecm_qt_declare_logging_category(kdevrustlanguagesupport_PART_SRCS HEADER rustdebug.h IDENTIFIER KDEV_RUST CATEGORY_NAME "kdevelop.languages.rust" ) kdevplatform_add_plugin(kdevrustlanguagesupport JSON kdevrustsupport.json SOURCES ${kdevrustlanguagesupport_PART_SRCS} ) target_link_libraries(kdevrustlanguagesupport KDev::Interfaces KDev::Language KF5::ThreadWeaver KF5::TextEditor # kdevrustparser # kdevrustduchain # kdevrustcompletion - ast_redux + ${ASTRedux_LIBRARY} ) install(FILES kdevrustsupport.categories DESTINATION ${KDE_INSTALL_CONFDIR}) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/README.md b/README.md index 74de14f..274145e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,23 @@ -Rust Language Support plugin -============================ +# Rust Language Support plugin This package is a WIP to provide language support for Rust. + +## Compiling + +### Get the ast-redux Rust library + +``` +git clone ssh://git@git.kde.org/scratch/egospodinova/ast-redux +cargo build +``` + +This should create a folder called *target/debug*. + +### Build kdev-rust + +``` +export CMAKE_PREFIX_PATH=/path/to/ast-redux/target/debug:$CMAKE_PREFIX_PATH +mkdir build +cmake .. +make +``` diff --git a/cmake/FindASTRedux.cmake b/cmake/FindASTRedux.cmake new file mode 100644 index 0000000..ff133b0 --- /dev/null +++ b/cmake/FindASTRedux.cmake @@ -0,0 +1,10 @@ +include(FindPackageHandleStandardArgs) + +find_library(ASTRedux_LIBRARY NAMES ast-redux) + +find_package_handle_standard_args(ASTRedux DEFAULT_MSG ASTRedux_LIBRARY) + +# Set package properties if FeatureSummary was included +if (COMMAND set_package_properties) + set_package_properties(ASTRedux PROPERTIES DESCRIPTION "ast-redux - a Rust library") +endif()