1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
cmake_minimum_required(VERSION 3.19)
# KDE Gear version, managed by release service script
set(RELEASE_SERVICE_VERSION_MAJOR "24")
set(RELEASE_SERVICE_VERSION_MINOR "12")
set(RELEASE_SERVICE_VERSION_MICRO "3")
# generate patch level from release service version
set(_micro ${RELEASE_SERVICE_VERSION_MICRO})
if (_micro LESS "10")
string(PREPEND _micro "0") # pad with 0
endif()
set(RELEASE_SERVICE_BASED_PATCHLEVEL "${RELEASE_SERVICE_VERSION_MAJOR}${RELEASE_SERVICE_VERSION_MINOR}${_micro}")
project(kdevpython VERSION "6.0.${RELEASE_SERVICE_BASED_PATCHLEVEL}")
# KDevplatform dependency version
set(KDEVPLATFORM_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
set(KDE_COMPILERSETTINGS_LEVEL 6.0)
set(QT_MIN_VERSION "6.5.0")
set(KF_MIN_VERSION "6.0.0")
find_package(ECM ${KF_MIN_VERSION} REQUIRED)
set(CMAKE_MODULE_PATH ${kdevpython_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)
include(GenerateExportHeader)
include(ECMAddTests)
include(ECMSetupVersion)
include(ECMQtDeclareLoggingCategory)
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdocumentation")
endif()
add_definitions( -DTRANSLATION_DOMAIN=\"kdevpython\" )
set(Python3_USE_STATIC_LIBS FALSE)
set(Python3_FIND_STRATEGY VERSION)
find_package(Python3 3.4.3...<3.14 COMPONENTS Interpreter Development REQUIRED)
configure_file(kdevpythonversion.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/kdevpythonversion.h" @ONLY)
find_package(KDevPlatform ${KDEVPLATFORM_VERSION} REQUIRED)
find_package(KDevelop ${KDEVPLATFORM_VERSION} REQUIRED)
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS
Core
Core5Compat
Widgets
Test
)
find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS
Config
CoreAddons
I18n
Parts
Service
TextEditor
ThreadWeaver
WidgetsAddons
XmlGui
)
if ( NOT WIN32 )
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wfatal-errors -Wall")
endif ( NOT WIN32 )
# then, build the plugin
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
)
add_subdirectory(app_templates)
add_subdirectory(parser)
add_subdirectory(duchain)
add_subdirectory(codecompletion)
add_subdirectory(debugger)
add_subdirectory(docfilekcm)
set(kdevpythonlanguagesupport_PART_SRCS
codegen/correctionfilegenerator.cpp
codegen/refactoring.cpp
pythonlanguagesupport.cpp
pythonparsejob.cpp
pythonhighlighting.cpp
pythonstylechecking.cpp
# config pages:
docfilekcm/docfilewizard.cpp
docfilekcm/docfilemanagerwidget.cpp
docfilekcm/kcm_docfiles.cpp
pep8kcm/kcm_pep8.cpp
projectconfig/projectconfigpage.cpp
)
ecm_qt_declare_logging_category(kdevpythonlanguagesupport_PART_SRCS
HEADER codegendebug.h
IDENTIFIER KDEV_PYTHON_CODEGEN
CATEGORY_NAME "kdevelop.plugins.python.codegen"
DESCRIPTION "KDevelop plugin: Python language support - codegen"
EXPORT KDEVPYTHON
)
ecm_qt_declare_logging_category(kdevpythonlanguagesupport_PART_SRCS
HEADER pythondebug.h
IDENTIFIER KDEV_PYTHON
CATEGORY_NAME "kdevelop.plugins.python"
DESCRIPTION "KDevelop plugin: Python language support"
EXPORT KDEVPYTHON
)
ki18n_wrap_ui(kdevpythonlanguagesupport_PART_SRCS
codegen/correctionwidget.ui
projectconfig/projectconfig.ui
pep8kcm/pep8.ui
)
kdevplatform_add_plugin(kdevpythonlanguagesupport JSON kdevpythonsupport.json SOURCES ${kdevpythonlanguagesupport_PART_SRCS})
target_link_libraries(kdevpythonlanguagesupport
KDev::Interfaces
KDev::Language
KDev::Util
KF6::Service
KF6::ThreadWeaver
KF6::TextEditor
kdevpythoncompletion
kdevpythonparser
kdevpythonduchain
)
get_target_property(DEFINESANDINCLUDES_INCLUDE_DIRS KDev::DefinesAndIncludesManager INTERFACE_INCLUDE_DIRECTORIES)
include_directories(${DEFINESANDINCLUDES_INCLUDE_DIRS})
install(DIRECTORY documentation_files DESTINATION ${KDE_INSTALL_DATADIR}/kdevpythonsupport)
install(DIRECTORY correction_files DESTINATION ${KDE_INSTALL_DATADIR}/kdevpythonsupport)
install(FILES codestyle.py DESTINATION ${KDE_INSTALL_DATADIR}/kdevpythonsupport)
install(FILES org.kde.kdev-python.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
# kdebugsettings file
ecm_qt_install_logging_categories(
EXPORT KDEVPYTHON
FILE kdevpythonsupport.categories
DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
)
ki18n_install(po)
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
|