]> git.sesse.net Git - kdenlive/blob - src/CMakeLists.txt
27e5e965934fcc2d6afdbb59f9a2bceb8e4817c1
[kdenlive] / src / CMakeLists.txt
1 add_subdirectory( widgets )
2 add_subdirectory( mimetypes )
3
4 macro_optional_find_package(Nepomuk)
5
6 if (Nepomuk_FOUND)
7     INCLUDE_DIRECTORIES(NEPOMUK_INCLUDES )
8     set( optional_libs ${NEPOMUK_LIBRARIES} )
9     add_definitions(-DNEPOMUK)
10 endif (Nepomuk_FOUND)
11
12 if (Q_WS_X11)
13     include_directories (${X11_Xlib_INCLUDE_PATH} ) 
14 endif (Q_WS_X11)
15
16 if (APPLE)
17   find_package(OpenGL)
18   set(QT_USE_QTOPENGL TRUE)
19 else (APPLE)
20   macro_optional_find_package(OpenGL)
21 endif (APPLE)
22
23 include_directories (
24     ${KDE4_INCLUDE_DIR}
25     ${KDE4_INCLUDE_DIR}/KDE
26     ${QT_INCLUDES}
27     ${LIBMLT_INCLUDE_DIR}
28     ${LIBMLTPLUS_INCLUDE_DIR}
29     ${QDBUS_INCLUDE_DIRS}
30     ${CMAKE_SOURCE_DIR}
31     ${CMAKE_BINARY_DIR}
32
33     ${CMAKE_SOURCE_DIR}/src/widgets
34     ${CMAKE_SOURCE_DIR}/src/colorcorrection
35     ${CMAKE_SOURCE_DIR}/src/onmonitoritems
36 )
37
38 LINK_LIBRARIES(
39 ${LIBMLT_LIBRARY}
40 ${LIBMLTPLUS_LIBRARY}
41 ${optional_libs}
42 )
43
44
45
46 kde4_add_ui_files(kdenlive_UI
47   widgets/timeline_ui.ui
48   widgets/monitor_ui.ui
49   widgets/recmonitor_ui.ui
50   widgets/colorclip_ui.ui
51   widgets/slideshowclip_ui.ui
52   widgets/configmisc_ui.ui
53   widgets/configenv_ui.ui
54   widgets/configtimeline_ui.ui
55   widgets/configsdl_ui.ui
56   widgets/configcapture_ui.ui
57   widgets/configtranscode_ui.ui
58   widgets/configproject_ui.ui
59   widgets/effectlist_ui.ui
60   widgets/effectstack_ui.ui
61   widgets/profiledialog_ui.ui
62   widgets/projectsettings_ui.ui
63   widgets/keyframewidget_ui.ui
64   widgets/listval_ui.ui
65   widgets/wipeval_ui.ui
66   widgets/boolval_ui.ui
67   widgets/titlewidget_ui.ui
68   widgets/unicodedialog_ui.ui
69   widgets/timelinebuttons_ui.ui
70   widgets/renderwidget_ui.ui
71   widgets/saveprofile_ui.ui
72   widgets/transitionsettings_ui.ui
73   widgets/configjogshuttle_ui.ui
74   widgets/trackheader_ui.ui
75   widgets/clipproperties_ui.ui
76   widgets/markerdialog_ui.ui
77   widgets/keyframedialog_ui.ui
78   widgets/clipdurationdialog_ui.ui
79   widgets/managecaptures_ui.ui
80   widgets/geometryval_ui.ui
81   widgets/wizardstandard_ui.ui
82   widgets/wizardextra_ui.ui
83   widgets/wizardcheck_ui.ui
84   widgets/wizardmltcheck_ui.ui
85   widgets/spacerdialog_ui.ui
86   widgets/addtrack_ui.ui
87   widgets/dvdwizardvob_ui.ui
88   widgets/dvdwizardmenu_ui.ui
89   widgets/dvdwizardstatus_ui.ui
90   widgets/dvdwizardchapters_ui.ui
91   widgets/missingclips_ui.ui
92   widgets/cliptranscode_ui.ui
93   widgets/templateclip_ui.ui
94   widgets/keyframeeditor_ui.ui
95   widgets/timecodedisplay_ui.ui
96   widgets/tracksconfigdialog_ui.ui
97   widgets/urlval_ui.ui
98   widgets/vectorscope_ui.ui
99   widgets/colorplaneexport_ui.ui
100   widgets/waveform_ui.ui
101   widgets/rgbparade_ui.ui
102   widgets/histogram_ui.ui
103   widgets/geometrywidget_ui.ui
104   widgets/stopmotion_ui.ui
105   widgets/monitorscenecontrolwidget_ui.ui
106   widgets/cornerswidget_ui.ui
107 )
108
109 set(kdenlive_SRCS
110   addclipcommand.cpp
111   main.cpp
112   mainwindow.cpp
113   customruler.cpp
114   smallruler.cpp
115   projectlist.cpp
116   projectitem.cpp
117   monitor.cpp
118   gentime.cpp
119   renderer.cpp
120   kdenlivedoc.cpp
121   projectlistview.cpp
122   trackview.cpp
123   docclipbase.cpp
124   timecode.cpp
125   monitormanager.cpp
126   headertrack.cpp
127   customtrackview.cpp
128   clipitem.cpp
129   moveclipcommand.cpp
130   resizeclipcommand.cpp
131   razorclipcommand.cpp
132   addtimelineclipcommand.cpp
133   addmarkercommand.cpp
134   kthumb.cpp
135   clipmanager.cpp
136   effectslist.cpp
137   initeffects.cpp
138   effectslistview.cpp
139   addeffectcommand.cpp
140   editeffectcommand.cpp
141   moveeffectcommand.cpp
142   effectstackview.cpp
143   effectstackedit.cpp
144   parameterplotter.cpp
145   profilesdialog.cpp
146   projectsettings.cpp
147   kdenlivesettingsdialog.cpp
148   complexparameter.cpp
149   titlewidget.cpp
150   unicodedialog.cpp
151   graphicsscenerectmove.cpp
152   effectslistwidget.cpp
153   titledocument.cpp
154   transition.cpp
155   renderwidget.cpp
156   abstractclipitem.cpp
157   transitionsettings.cpp
158   recmonitor.cpp
159   addtransitioncommand.cpp
160   edittransitioncommand.cpp
161   addfoldercommand.cpp
162   editfoldercommand.cpp
163   clipproperties.cpp
164   movetransitioncommand.cpp
165   slideshowclip.cpp
166   markerdialog.cpp
167   guide.cpp
168   editguidecommand.cpp
169   statusbarmessagelabel.cpp
170   editkeyframecommand.cpp
171   clipdurationdialog.cpp
172   managecapturesdialog.cpp
173   changespeedcommand.cpp
174   geometryval.cpp
175   wizard.cpp
176   customtrackscene.cpp
177   abstractgroupitem.cpp
178   keyframehelper.cpp
179   editclipcommand.cpp
180   insertspacecommand.cpp
181   spacerdialog.cpp
182   addtrackcommand.cpp
183   movegroupcommand.cpp
184   dvdwizardvob.cpp
185   dvdwizardmenu.cpp
186   dvdwizard.cpp
187   locktrackcommand.cpp
188   groupclipscommand.cpp
189   splitaudiocommand.cpp
190   changecliptypecommand.cpp
191   documentchecker.cpp
192   dvdwizardchapters.cpp
193   documentvalidator.cpp
194   cliptranscode.cpp
195   keyframeedit.cpp
196   positionedit.cpp
197   trackdialog.cpp
198   subprojectitem.cpp
199   folderprojectitem.cpp
200   addclipcutcommand.cpp
201   editclipcutcommand.cpp
202   KoSliderCombo.cpp
203   kis_cubic_curve.cpp
204   kis_curve_widget.cpp
205   timecodedisplay.cpp
206   tracksconfigdialog.cpp
207   configtrackscommand.cpp
208   abstractscopewidget.cpp
209   rebuildgroupcommand.cpp
210   histogram.cpp
211   rgbparade.cpp
212   vectorscope.cpp
213   waveform.cpp
214   colorplaneexport.cpp
215   colortools.cpp
216   colorcorrection/histogramgenerator.cpp
217   colorcorrection/rgbparadegenerator.cpp
218   colorcorrection/vectorscopegenerator.cpp
219   colorcorrection/waveformgenerator.cpp
220   razorgroupcommand.cpp
221   colorpickerwidget.cpp
222   choosecolorwidget.cpp
223   monitorscene.cpp
224   geometrywidget.cpp
225   doubleparameterwidget.cpp
226   audiosignal.cpp
227   blackmagic/include/DeckLinkAPIDispatch.cpp
228   blackmagic/capture.cpp
229   blackmagic/devices.cpp
230   stopmotion/stopmotion.cpp
231   onmonitoritems/abstractonmonitoritem.cpp 
232   onmonitoritems/onmonitorrectitem.cpp
233   onmonitoritems/onmonitorcornersitem.cpp
234   monitorscenecontrolwidget.cpp
235   cornerswidget.cpp
236 )
237
238
239 add_subdirectory( ${CMAKE_SOURCE_DIR}/src/colorcorrection )
240 add_subdirectory( ${CMAKE_SOURCE_DIR}/src/onmonitoritems )
241
242 add_definitions( ${KDE4_DEFINITIONS} )
243
244 if(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR NO_JOGSHUTTLE)
245   add_definitions(-DNO_JOGSHUTTLE)
246 else(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR NO_JOGSHUTTLE)
247   set(kdenlive_SRCS jogshuttle.cpp ${kdenlive_SRCS})
248 endif(APPLE OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR NO_JOGSHUTTLE)
249
250 if (APPLE OR OPENGL_FOUND)
251   add_definitions(-DUSE_OPEN_GL)
252   set(kdenlive_SRCS videoglwidget.cpp ${kdenlive_SRCS})
253 endif (APPLE OR OPENGL_FOUND)
254
255
256 # Add libdl
257 find_library( DL_LIB NAMES ${CMAKE_DL_LIBS} )
258 MESSAGE( STATUS "using dl library: ${DL_LIB}" )
259
260 kde4_add_kcfg_files(kdenlive_SRCS kdenlivesettings.kcfgc )
261 QT4_ADD_DBUS_ADAPTOR(kdenlive_SRCS org.kdenlive.MainWindow.xml mainwindow.h MainWindow)
262 kde4_add_executable(kdenlive ${kdenlive_SRCS} ${kdenlive_UI})
263
264 if (${KDE_VERSION} VERSION_LESS 4.3.80)
265   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF2_LIBS})
266 else (${KDE_VERSION} VERSION_LESS 4.3.80)
267   set(KNEWSTUFF_LIBS ${KDE4_KNEWSTUFF3_LIBS})
268 endif (${KDE_VERSION} VERSION_LESS 4.3.80)
269
270 target_link_libraries(kdenlive
271   ${KDE4_KDEUI_LIBS}
272   ${KDE4_KIO_LIBS}
273   ${KNEWSTUFF_LIBS}
274   ${LIBMLTPLUS_LIBRARY}
275   ${LIBMLT_LIBRARY}
276   ${optional_libs}
277   ${KDE4_KNOTIFYCONFIG_LIBRARY}
278   ${KDE4_KROSSUI_LIBS}
279   ${CMAKE_DL_LIBS}
280 )
281
282 if (Q_WS_X11)
283   target_link_libraries(kdenlive ${X11_LIBRARIES})
284 endif (Q_WS_X11)
285
286 if (APPLE)
287   find_package(SDL REQUIRED)
288   target_link_libraries(kdenlive ${SDL_LIBRARY})
289   target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
290   target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
291 else (APPLE)
292   if (OPENGL_FOUND)
293       target_link_libraries(kdenlive ${QT_QTOPENGL_LIBRARY})
294       target_link_libraries(kdenlive ${OPENGL_LIBRARIES})
295   endif (OPENGL_FOUND)
296 endif (APPLE)
297
298 install(TARGETS kdenlive DESTINATION ${BIN_INSTALL_DIR})
299 install( FILES kdenliveui.rc kdenlive.notifyrc DESTINATION  ${DATA_INSTALL_DIR}/kdenlive )
300 install (FILES kdenlivesettings.kcfg DESTINATION ${KCFG_INSTALL_DIR})
301 install (FILES kdenlive.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
302 kde4_install_icons(${ICON_INSTALL_DIR})
303 install( FILES kdenlive_titles.knsrc kdenlive_wipes.knsrc kdenlive_renderprofiles.knsrc kdenlive_projectprofiles.knsrc kdenlivetranscodingrc DESTINATION  ${CONFIG_INSTALL_DIR} )
304 kde4_install_icons( ${ICON_INSTALL_DIR} )
305
306