2 add_subdirectory(xmltokross)
4 #Aleix's note: please, don't add it yet until I can commit everything (involving the uiless shell)
5 option(GENERATE_INTERFACES "Generate kross interfaces at compile-time? You need kdevcpp to use it" OFF)
6 if(GENERATE_INTERFACES)
7 get_directory_property(include_DIRS INCLUDE_DIRECTORIES)
9 get_directory_property(inclist INCLUDE_DIRECTORIES)
10 foreach(inc ${inclist})
11 set(incs ${incs}:${inc})
14 macro(kdev_create_kross_iface interface output includes)
15 get_filename_component(weFile ${output} NAME_WE)
16 get_filename_component(outPath ${output} PATH)
17 get_filename_component(ifacePath ${interface} PATH)
19 add_custom_command(OUTPUT ${output} ${headerFile}
20 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/xmltokross/duchaintokross ${interface}
21 -I${ifacePath}:${incs} -F${weFile} -i${includes} -D${outPath} -o ${output}
22 MAIN_DEPENDENCY ${interface}
23 DEPENDS xmltokross/duchaintokross )
24 set(mocFile ${weFile}.moc)
25 qt4_generate_moc( ${output} ${CMAKE_CURRENT_BINARY_DIR}/${mocFile})
26 endmacro(kdev_create_kross_iface)
28 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/interfaces/idocument.h
29 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossidocument.cpp interfaces/idocument.h)
30 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/interfaces/iuicontroller.h
31 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossiuicontroller.cpp interfaces/iuicontroller.h)
32 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/interfaces/context.h
33 ${CMAKE_SOURCE_DIR}/kross/wrappers/krosscontext.cpp interfaces/context.h)
34 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/interfaces/contextmenuextension.h
35 ${CMAKE_SOURCE_DIR}/kross/wrappers/krosscontextmenuextension.cpp interfaces/contextmenuextension.h)
36 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/project/projectmodel.h
37 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossprojectmodel.cpp project/projectmodel.h)
38 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/vcs/vcsrevision.h
39 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossvcsrevision.cpp vcs/vcsrevision.h)
40 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/vcs/vcslocation.h
41 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossvcslocation.cpp vcs/vcslocation.h)
42 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/interfaces/ilanguage.h
43 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossilanguage.cpp interfaces/ilanguage.h)
44 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/language/duchain/topducontext.h
45 ${CMAKE_SOURCE_DIR}/kross/wrappers/krosstopducontext.cpp
46 language/duchain/topducontext.h:language/duchain/parsingenvironment.h:language/interfaces/iproblem.h:language/editor/simplecursor.h)
47 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/language/duchain/ducontext.h
48 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossducontext.cpp language/duchain/ducontext.h:language/duchain/topducontext.h)
49 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/language/duchain/declaration.h
50 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossdeclaration.cpp language/duchain/declaration.h:language/duchain/declarationid.h:language/duchain/types/indexedtype.h:language/duchain/topducontext.h)
51 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/language/interfaces/iproblem.h
52 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossiproblem.cpp language/interfaces/iproblem.h)
53 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/language/duchain/use.h
54 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossuse.cpp language/duchain/use.h)
55 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/language/duchain/symboltable.h
56 ${CMAKE_SOURCE_DIR}/kross/wrappers/krosssymboltable.cpp language/duchain/symboltable.h)
57 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/language/duchain/identifier.h
58 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossidentifier.cpp language/duchain/identifier.h:language/duchain/indexedstring.h)
59 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/language/duchain/duchainlock.h
60 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossduchainlock.cpp language/duchain/duchainlock.h)
61 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/project/interfaces/ibuildsystemmanager.h
62 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossibuildsystemmanager.cpp project/interfaces/ibuildsystemmanager.h)
63 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/project/interfaces/iprojectfilemanager.h
64 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossiprojectfilemanager.cpp project/interfaces/iprojectfilemanager.h)
65 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/project/interfaces/iprojectbuilder.h
66 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossiprojectbuilder.cpp project/interfaces/iprojectbuilder.h)
67 kdev_create_kross_iface(${CMAKE_SOURCE_DIR}/interfaces/irun.h
68 ${CMAKE_SOURCE_DIR}/kross/wrappers/krossirun.cpp interfaces/irun.h)
73 else(GENERATE_INTERFACES)
74 message(STATUS "The used interfaces will be the ones from svn instead of generating them.")
75 endif(GENERATE_INTERFACES)
77 set(kdevkrossplugin_SRCS
79 krossbuildsystemmanager.cpp
80 krossdistributedversioncontrol.cpp
81 krosstoolviewfactory.cpp
83 wrappers/krossiuicontroller.cpp
84 wrappers/krossidocument.cpp
85 wrappers/krosscontext.cpp
86 wrappers/krosscontextmenuextension.cpp
87 wrappers/krossvcsrevision.cpp
88 wrappers/krossvcslocation.cpp
89 wrappers/krosstopducontext.cpp
90 wrappers/krossducontext.cpp
91 wrappers/krossprojectmodel.cpp
92 wrappers/krossilanguage.cpp
93 wrappers/krossdeclaration.cpp
95 wrappers/krossidentifier.cpp
96 wrappers/krossduchainlock.cpp
97 wrappers/krossiproblem.cpp
98 wrappers/krossibuildsystemmanager.cpp
99 wrappers/krossiprojectfilemanager.cpp
100 wrappers/krossiprojectbuilder.cpp
101 wrappers/krossirun.cpp
104 kde4_add_plugin(kdevkrossplugin ${kdevkrossplugin_SRCS})
105 target_link_libraries(kdevkrossplugin ${KDE4_KDEUI_LIBS} ${KDE4_KTEXTEDITOR_LIBS}
106 kdevplatforminterfaces kdevplatformproject kdevplatformvcs kdevplatformlanguage ${KDE4_KROSSUI_LIBS})
108 install(TARGETS kdevkrossplugin DESTINATION ${PLUGIN_INSTALL_DIR})
109 install(FILES kdevkrossplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR})