Warning, /kdevelop/kdev-python/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.19)
0002
0003 # KDE Gear version, managed by release service script
0004 set(RELEASE_SERVICE_VERSION_MAJOR "24")
0005 set(RELEASE_SERVICE_VERSION_MINOR "04")
0006 set(RELEASE_SERVICE_VERSION_MICRO "70")
0007
0008 # generate patch level from release service version
0009 set(_micro ${RELEASE_SERVICE_VERSION_MICRO})
0010 if (_micro LESS "10")
0011 string(PREPEND _micro "0") # pad with 0
0012 endif()
0013 set(RELEASE_SERVICE_BASED_PATCHLEVEL "${RELEASE_SERVICE_VERSION_MAJOR}${RELEASE_SERVICE_VERSION_MINOR}${_micro}")
0014
0015 project(kdevpython VERSION "5.7.${RELEASE_SERVICE_BASED_PATCHLEVEL}")
0016
0017 # KDevplatform dependency version
0018 set(KDEVPLATFORM_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
0019
0020 set(CMAKE_CXX_STANDARD 17)
0021 set(CMAKE_CXX_STANDARD_REQUIRED YES)
0022 set(QT_MIN_VERSION "5.15.0")
0023 set(KF5_DEP_VERSION "5.78.0")
0024
0025 find_package (ECM ${KF5_DEP_VERSION} REQUIRED NO_MODULE)
0026 set(CMAKE_MODULE_PATH ${kdevpython_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
0027
0028 include(KDEInstallDirs)
0029 include(KDECMakeSettings)
0030 include(KDECompilerSettings NO_POLICY_SCOPE)
0031
0032 include(GenerateExportHeader)
0033
0034 include(ECMAddTests)
0035 include(ECMSetupVersion)
0036 include(ECMQtDeclareLoggingCategory)
0037
0038 if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
0039 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdocumentation")
0040 endif()
0041
0042 add_definitions( -DTRANSLATION_DOMAIN=\"kdevpython\" )
0043
0044 set(Python3_USE_STATIC_LIBS FALSE)
0045 set(Python3_FIND_STRATEGY VERSION)
0046 find_package(Python3 3.4.3...<3.12 COMPONENTS Interpreter Development REQUIRED)
0047
0048 configure_file(kdevpythonversion.h.cmake "${CMAKE_CURRENT_BINARY_DIR}/kdevpythonversion.h" @ONLY)
0049
0050 find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core Widgets Test)
0051 find_package(KF5 ${KF5_DEP_VERSION} REQUIRED
0052 I18n
0053 ThreadWeaver
0054 TextEditor
0055 )
0056 find_package(KDevPlatform ${KDEVPLATFORM_VERSION} CONFIG REQUIRED)
0057 find_package(KDevelop ${KDEVPLATFORM_VERSION} REQUIRED)
0058
0059 if(NOT CMAKE_VERSION VERSION_LESS "3.10.0" AND KF5_VERSION VERSION_LESS "5.42.0")
0060 # Avoids bogus warnings with CMake 3.10+, KF5.42+ has workaround
0061 list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "K_PLUGIN_FACTORY_WITH_JSON")
0062 endif()
0063
0064 if ( NOT WIN32 )
0065 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wfatal-errors -Wall")
0066 endif ( NOT WIN32 )
0067
0068 # then, build the plugin
0069 include_directories(
0070 ${CMAKE_CURRENT_BINARY_DIR}
0071 ${CMAKE_CURRENT_SOURCE_DIR}
0072 ${CMAKE_CURRENT_SOURCE_DIR}/duchain
0073 ${CMAKE_CURRENT_SOURCE_DIR}/parser
0074 ${CMAKE_CURRENT_BINARY_DIR}/parser
0075 )
0076
0077 add_subdirectory(app_templates)
0078 add_subdirectory(parser)
0079 add_subdirectory(duchain)
0080 add_subdirectory(codecompletion)
0081 add_subdirectory(debugger)
0082 add_subdirectory(docfilekcm)
0083
0084 set(kdevpythonlanguagesupport_PART_SRCS
0085 codegen/correctionfilegenerator.cpp
0086 codegen/refactoring.cpp
0087 pythonlanguagesupport.cpp
0088 pythonparsejob.cpp
0089 pythonhighlighting.cpp
0090 pythonstylechecking.cpp
0091
0092 # config pages:
0093 docfilekcm/docfilewizard.cpp
0094 docfilekcm/docfilemanagerwidget.cpp
0095 docfilekcm/kcm_docfiles.cpp
0096 pep8kcm/kcm_pep8.cpp
0097 projectconfig/projectconfigpage.cpp
0098 )
0099 ecm_qt_declare_logging_category(kdevpythonlanguagesupport_PART_SRCS
0100 HEADER codegendebug.h
0101 IDENTIFIER KDEV_PYTHON_CODEGEN
0102 CATEGORY_NAME "kdevelop.plugins.python.codegen"
0103 DESCRIPTION "KDevelop plugin: Python language support - codegen"
0104 EXPORT KDEVPYTHON
0105 )
0106 ecm_qt_declare_logging_category(kdevpythonlanguagesupport_PART_SRCS
0107 HEADER pythondebug.h
0108 IDENTIFIER KDEV_PYTHON
0109 CATEGORY_NAME "kdevelop.plugins.python"
0110 DESCRIPTION "KDevelop plugin: Python language support"
0111 EXPORT KDEVPYTHON
0112 )
0113
0114 ki18n_wrap_ui(kdevpythonlanguagesupport_PART_SRCS
0115 codegen/correctionwidget.ui
0116 projectconfig/projectconfig.ui
0117 pep8kcm/pep8.ui
0118 )
0119
0120 kdevplatform_add_plugin(kdevpythonlanguagesupport JSON kdevpythonsupport.json SOURCES ${kdevpythonlanguagesupport_PART_SRCS})
0121
0122 target_link_libraries(kdevpythonlanguagesupport
0123 KDev::Interfaces
0124 KDev::Language
0125 KDev::Util
0126 KF5::ThreadWeaver
0127 KF5::TextEditor
0128 kdevpythoncompletion
0129 kdevpythonparser
0130 kdevpythonduchain
0131 )
0132
0133 get_target_property(DEFINESANDINCLUDES_INCLUDE_DIRS KDev::DefinesAndIncludesManager INTERFACE_INCLUDE_DIRECTORIES)
0134 include_directories(${DEFINESANDINCLUDES_INCLUDE_DIRS})
0135
0136 install(DIRECTORY documentation_files DESTINATION ${KDE_INSTALL_DATADIR}/kdevpythonsupport)
0137 install(DIRECTORY correction_files DESTINATION ${KDE_INSTALL_DATADIR}/kdevpythonsupport)
0138 install(FILES codestyle.py DESTINATION ${KDE_INSTALL_DATADIR}/kdevpythonsupport)
0139
0140 install(FILES org.kde.kdev-python.metainfo.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
0141
0142 # kdebugsettings file
0143 ecm_qt_install_logging_categories(
0144 EXPORT KDEVPYTHON
0145 FILE kdevpythonsupport.categories
0146 DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0147 )
0148
0149 ki18n_install(po)
0150
0151 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)