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)