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})