Warning, /kdevelop/kdevelop/plugins/clang/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 add_definitions(-DTRANSLATION_DOMAIN=\"kdevclang\")
0002 
0003 if (CLANG_INCLUDE_DIRS)
0004     # Targets that link against libclang should inherit Clang include directories
0005     # automatically from it. However, when new API is added to a libclang version
0006     # not installed in the system and this new API is used in KDevelop, KDevelop
0007     # does not compile without the manual include_directories() command below.
0008     # This is probably an upstream Clang issue, which KDevelop has to work around.
0009     include_directories(${CLANG_INCLUDE_DIRS})
0010 else()
0011     message(WARNING "CLANG_INCLUDE_DIRS CMake variable is not set. \
0012 Has ClangConfig.cmake renamed this variable or removed it as no longer needed?")
0013 endif()
0014 
0015 include(Locate_CLANG_BUILTIN_DIR.cmake)
0016 
0017 set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_DL_LIBS})
0018 check_cxx_source_compiles(
0019     "#include <dlfcn.h>\nint main() { Dl_info info; return dladdr(nullptr, &info); }"
0020     HAVE_DLFCN)
0021 
0022 configure_file(
0023   "${CMAKE_CURRENT_SOURCE_DIR}/libclang_include_path.h.cmake"
0024   "${CMAKE_CURRENT_BINARY_DIR}/libclang_include_path.h"
0025   @ONLY
0026 )
0027 
0028 if(BUILD_TESTING)
0029     add_subdirectory(tests)
0030 endif()
0031 
0032 set(kdevclangprivate_SRCS
0033     clangsettings/clangsettingsmanager.cpp
0034     clangsettings/sessionsettings/sessionsettings.cpp
0035 
0036     codecompletion/completionhelper.cpp
0037     codecompletion/context.cpp
0038     codecompletion/includepathcompletioncontext.cpp
0039     codecompletion/model.cpp
0040 
0041     codegen/adaptsignatureaction.cpp
0042     codegen/adaptsignatureassistant.cpp
0043     codegen/codegenhelper.cpp
0044     codegen/clangrefactoring.cpp
0045     codegen/clangclasshelper.cpp
0046     codegen/sourcemanipulation.cpp
0047 
0048     duchain/builder.cpp
0049     duchain/clangdiagnosticevaluator.cpp
0050     duchain/clangducontext.cpp
0051     duchain/clanghelpers.cpp
0052     duchain/clangindex.cpp
0053     duchain/clangparsingenvironment.cpp
0054     duchain/clangparsingenvironmentfile.cpp
0055     duchain/clangpch.cpp
0056     duchain/clangproblem.cpp
0057     duchain/debugvisitor.cpp
0058     duchain/documentfinderhelpers.cpp
0059     duchain/duchainutils.cpp
0060     duchain/macrodefinition.cpp
0061     duchain/macronavigationcontext.cpp
0062     duchain/missingincludepathproblem.cpp
0063     duchain/navigationwidget.cpp
0064     duchain/parsesession.cpp
0065     duchain/todoextractor.cpp
0066     duchain/types/classspecializationtype.cpp
0067     duchain/unknowndeclarationproblem.cpp
0068     duchain/unsavedfile.cpp
0069     duchain/headerguardassistant.cpp
0070 
0071     util/clangdebug.cpp
0072     util/clangtypes.cpp
0073     util/clangutils.cpp
0074 )
0075 # dummy call to add the data to KDevelopCategories
0076 # util/clangdebug.* cannot easily be generated with ecm_qt_declare_logging_category
0077 # as the current code does not use Q_DECLARE_LOGGING_CATEGORY but instead
0078 # has explicit code to tag KDEV_CLANG() as KDEVCLANGPRIVATE_EXPORT
0079 # Keep in sync with util/clangdebug.*
0080 declare_qt_logging_category(dummy_kdevclangprivate_SRCS
0081     TYPE PLUGIN
0082     HEADER dummy_debug.h
0083     IDENTIFIER KDEV_CLANG
0084     CATEGORY_BASENAME "clang"
0085     DESCRIPTION "clang-based language support"
0086 )
0087 
0088 include_directories(
0089     ${CMAKE_CURRENT_BINARY_DIR}
0090 )
0091 
0092 ki18n_wrap_ui(kdevclangprivate_SRCS
0093     clangsettings/sessionsettings/sessionsettings.ui
0094 )
0095 
0096 kconfig_add_kcfg_files(kdevclangprivate_SRCS clangsettings/sessionsettings/sessionconfig.kcfgc)
0097 
0098 kdevelop_add_private_library(KDevClangPrivate SOURCES ${kdevclangprivate_SRCS})
0099 target_link_libraries(KDevClangPrivate
0100 PUBLIC
0101     KDev::Language
0102     KDev::Project
0103     KDev::Util
0104     Clang::libclang
0105 PRIVATE
0106     Qt5::Core
0107     KF5::TextEditor
0108     KF5::ThreadWeaver
0109     KDev::DefinesAndIncludesManager
0110     KDev::Util
0111     KDev::Sublime
0112 )
0113 
0114 if (HAVE_DLFCN)
0115     target_link_libraries(KDevClangPrivate PRIVATE ${CMAKE_DL_LIBS})
0116 endif()
0117 
0118 install(DIRECTORY duchain/gccCompatibility duchain/wrappedQtHeaders
0119         DESTINATION ${KDE_INSTALL_DATADIR}/kdevclangsupport
0120         DIRECTORY_PERMISSIONS
0121             OWNER_READ OWNER_WRITE OWNER_EXECUTE
0122             GROUP_READ GROUP_WRITE GROUP_EXECUTE
0123             WORLD_READ WORLD_EXECUTE
0124         FILE_PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
0125 
0126 set(kdevclangsupport_SRCS
0127     clangparsejob.cpp
0128     clangsupport.cpp
0129     clanghighlighting.cpp
0130 )
0131 
0132 qt5_add_resources(kdevclangsupport_SRCS kdevclangsupport.qrc)
0133 
0134 kdevplatform_add_plugin(kdevclangsupport SOURCES ${kdevclangsupport_SRCS})
0135 target_link_libraries(kdevclangsupport
0136     KDevClangPrivate
0137 
0138     KF5::ThreadWeaver
0139     KF5::TextEditor
0140     KDev::Util
0141     KDev::Project
0142     KDev::DefinesAndIncludesManager
0143 )
0144 
0145 install(FILES kdevclang.xml DESTINATION ${KDE_INSTALL_MIMEDIR})
0146 update_xdg_mimetypes(${KDE_INSTALL_MIMEDIR})