Warning, /multimedia/subtitlecomposer/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 if(NOT CMAKE_BUILD_TYPE) 0002 message(STATUS "No build type selected, default to Release") 0003 set(CMAKE_BUILD_TYPE "Release") 0004 endif() 0005 0006 if(CMAKE_COMPILER_IS_GNUCC) 0007 message(STATUS "GNU C compiler detected") 0008 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Og -g") 0009 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Og -g") 0010 set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O3") 0011 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O3") 0012 set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} -Wall -O3 -g") 0013 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O3 -g") 0014 endif() 0015 0016 ecm_setup_version(${PROJECT_VERSION} 0017 VARIABLE_PREFIX SUBTITLECOMPOSER 0018 SOVERSION ${PROJECT_VERSION_MAJOR} 0019 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/config-subtitlecomposer.h" 0020 ) 0021 0022 add_definitions(-D_DEFAULT_SOURCE) 0023 if(APPIMAGE) 0024 message(STATUS "AppImage build enabled") 0025 set(SC_APPIMAGE 1 CACHE INTERNAL EXPORTEDVARIABLE) 0026 endif() 0027 0028 find_package(FFmpeg 57.83.100 REQUIRED) 0029 find_package(OpenAL REQUIRED) 0030 find_package(ICU) 0031 0032 set(SC_PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_LIBDIR}/subtitlecomposer" CACHE STRING EXPORTEDVARIABLE) 0033 message(STATUS "Subtitle Composer plugin path: ${SC_PLUGIN_INSTALL_DIR}") 0034 0035 include_directories( 0036 ${CMAKE_CURRENT_SOURCE_DIR} # so that we can refer to our files starting at src dir 0037 ${CMAKE_CURRENT_SOURCE_DIR}/widgets # needed for .ui files to access custom widgets 0038 ) 0039 0040 set(subtitlecomposer_SRCS 0041 #[[ main ]] application.cpp appglobal.cpp application_actions.cpp application_errorcheck.cpp application_subtitle.cpp mainwindow.cpp 0042 #[[ actions ]] actions/useraction.cpp actions/useractionnames.h actions/kcodecactionext.cpp actions/krecentfilesactionext.cpp 0043 #[[ configs ]] configs/configdialog.cpp configs/errorsconfigwidget.cpp configs/generalconfigwidget.cpp configs/playerconfigwidget.cpp configs/waveformconfigwidget.cpp 0044 #[[ core ]] core/formatdata.h core/range.h core/rangelist.h core/time.cpp core/richstring.cpp 0045 core/subtitle.cpp core/subtitleiterator.cpp core/subtitleline.cpp 0046 #[[ core/richtext ]] core/richtext/richdocument.cpp core/richtext/richdocumenteditor.cpp core/richtext/richdocumentlayout.cpp core/richtext/richcss.cpp 0047 core/richtext/richdom.cpp 0048 #[[ core/undo ]] core/undo/subtitleactions.cpp core/undo/subtitlelineactions.cpp core/undo/undoaction.cpp core/undo/undostack.cpp 0049 #[[ dialogs ]] dialogs/actiondialog.cpp #[[dialogs/actionwitherrortargetsdialog.cpp]] dialogs/actionwithtargetdialog.cpp 0050 dialogs/adjusttimesdialog.cpp dialogs/autodurationsdialog.cpp dialogs/changeframeratedialog.cpp dialogs/changetextscasedialog.cpp 0051 dialogs/durationlimitsdialog.cpp dialogs/encodingdetectdialog.cpp dialogs/fixoverlappingtimesdialog.cpp dialogs/fixpunctuationdialog.cpp 0052 dialogs/insertlinedialog.cpp dialogs/intinputdialog.cpp dialogs/joinsubtitlesdialog.cpp dialogs/progressdialog.cpp 0053 dialogs/removelinesdialog.cpp dialogs/selectablesubtitledialog.cpp dialogs/shifttimesdialog.cpp dialogs/smarttextsadjustdialog.cpp 0054 dialogs/splitsubtitledialog.cpp dialogs/subtitleclassdialog.cpp dialogs/subtitlecolordialog.cpp dialogs/subtitlevoicedialog.cpp 0055 dialogs/syncsubtitlesdialog.cpp dialogs/textinputdialog.cpp 0056 #[[ errors ]] errors/errorfinder.cpp errors/errortracker.cpp errors/finderrorsdialog.cpp 0057 #[[ formats ]] formats/format.h formats/formatmanager.h formats/inputformat.h formats/outputformat.h formats/formatmanager.cpp 0058 formats/microdvd/microdvdinputformat.h formats/microdvd/microdvdoutputformat.h 0059 formats/mplayer/mplayerinputformat.h formats/mplayer/mplayeroutputformat.h 0060 formats/mplayer2/mplayer2inputformat.h formats/mplayer2/mplayer2outputformat.h 0061 formats/subrip/subripinputformat.h formats/subrip/subripoutputformat.h 0062 formats/substationalpha/substationalphainputformat.h formats/substationalpha/substationalphaoutputformat.h 0063 formats/subviewer1/subviewer1inputformat.h formats/subviewer1/subviewer1outputformat.h 0064 formats/subviewer2/subviewer2inputformat.h formats/subviewer2/subviewer2outputformat.h 0065 formats/textdemux/textdemux.cpp 0066 formats/tmplayer/tmplayerinputformat.h formats/tmplayer/tmplayeroutputformat.h 0067 formats/vobsub/vobsubinputformat.h formats/vobsub/vobsubinputinitdialog.cpp formats/vobsub/vobsubinputprocessdialog.cpp 0068 formats/webvtt/webvttinputformat.cpp formats/webvtt/webvttoutputformat.cpp 0069 formats/youtubecaptions/youtubecaptionsinputformat.h formats/youtubecaptions/youtubecaptionsoutputformat.h 0070 #[[ gui ]] gui/currentlinewidget.cpp gui/playerwidget.cpp 0071 #[[ gui/waveform ]] gui/waveform/waveformwidget.cpp gui/waveform/wavebuffer.cpp gui/waveform/zoombuffer.cpp gui/waveform/waverenderer.cpp 0072 gui/waveform/wavesubtitle.cpp 0073 #[[ gui/treeview ]] gui/treeview/linesitemdelegate.cpp gui/treeview/linesmodel.cpp gui/treeview/linesselectionmodel.cpp gui/treeview/lineswidget.cpp 0074 gui/treeview/richlineedit.cpp gui/treeview/richdocumentptr.cpp gui/treeview/treeview.cpp 0075 #[[ gui/subtitlemetawidget ]] gui/subtitlemeta/subtitlemetawidget.cpp gui/subtitlemeta/csshighlighter.cpp 0076 gui/subtitlemeta/subtitlepositionwidget.cpp 0077 #[[ helpers ]] helpers/commondefs.cpp helpers/debug.cpp helpers/fileloadhelper.cpp helpers/filesavehelper.cpp helpers/filetrasher.cpp helpers/languagecode.cpp 0078 helpers/pluginhelper.h 0079 #[[ scripting ]] scripting/scriptsmanager.cpp 0080 scripting/scripting_rangesmodule.cpp scripting/scripting_stringsmodule.cpp scripting/scripting_subtitlemodule.cpp scripting/scripting_subtitlelinemodule.cpp 0081 scripting/scripting_list.cpp scripting/scripting_range.cpp scripting/scripting_rangelist.cpp scripting/scripting_richstring.cpp scripting/scripting_subtitle.cpp 0082 scripting/scripting_subtitleline.cpp 0083 #[[ speechprocessor ]] speechprocessor/speechprocessor.cpp speechprocessor/speechplugin.cpp 0084 #[[ streamprocessor ]] streamprocessor/streamprocessor.cpp 0085 #[[ translations ]] translate/translatedialog.cpp translate/translateengine.cpp 0086 #[[ translation engines ]] translate/deeplengine.cpp translate/googlecloudengine.cpp 0087 #[[ utils ]] utils/finder.cpp utils/replacer.cpp utils/speller.cpp 0088 #[[ videoplayer ]] videoplayer/videoplayer.cpp videoplayer/videowidget.cpp videoplayer/waveformat.h videoplayer/subtitletextoverlay.cpp 0089 videoplayer/backend/glrenderer.cpp videoplayer/backend/ffplayer.cpp videoplayer/backend/framequeue.cpp videoplayer/backend/packetqueue.cpp 0090 videoplayer/backend/decoder.cpp videoplayer/backend/audiodecoder.cpp videoplayer/backend/videodecoder.cpp videoplayer/backend/subtitledecoder.cpp 0091 videoplayer/backend/clock.cpp videoplayer/backend/streamdemuxer.cpp videoplayer/backend/renderthread.cpp videoplayer/backend/videostate.cpp 0092 #[[ widgets ]] widgets/attachablewidget.cpp widgets/layeredwidget.cpp widgets/pointingslider.cpp widgets/simplerichtextedit.cpp 0093 widgets/textoverlaywidget.cpp widgets/timeedit.cpp 0094 CACHE INTERNAL EXPORTEDVARIABLE 0095 ) 0096 0097 kconfig_add_kcfg_files(subtitlecomposer_SRCS GENERATE_MOC scconfig.kcfgc) 0098 0099 ki18n_wrap_ui(subtitlecomposer_SRCS 0100 #[[ configs ]] configs/errorsconfigwidget.ui configs/generalconfigwidget.ui configs/playerconfigwidget.ui configs/waveformconfigwidget.ui 0101 #[[ dialogs ]] dialogs/encodingdetectdialog.ui dialogs/intinputdialog.ui dialogs/subtitleclassdialog.ui dialogs/subtitlevoicedialog.ui 0102 dialogs/textinputdialog.ui 0103 #[[ formats ]] formats/vobsub/vobsubinputinitdialog.ui formats/vobsub/vobsubinputprocessdialog.ui 0104 #[[ gui/subtitlemetawidget ]] gui/subtitlemeta/subtitlepositionwidget.ui 0105 #[[ scripting ]] scripting/scriptsmanager.ui 0106 #[[ translation engines ]] translate/deeplengine.ui translate/googlecloudengine.ui 0107 ) 0108 0109 add_subdirectory(icons) 0110 0111 list(APPEND subtitlecomposer_RES ${CMAKE_CURRENT_SOURCE_DIR}/subtitlecomposer.qrc) 0112 0113 if(QT_MAJOR_VERSION EQUAL 6) 0114 qt6_add_resources(subtitlecomposer_RES_SRC ${subtitlecomposer_RES}) 0115 else() 0116 qt5_add_resources(subtitlecomposer_RES_SRC ${subtitlecomposer_RES}) 0117 endif() 0118 0119 add_library(subtitlecomposer-lib STATIC ${subtitlecomposer_SRCS}) 0120 target_link_libraries(subtitlecomposer-lib 0121 Qt${QT_MAJOR_VERSION}::Core Qt${QT_MAJOR_VERSION}::Widgets Qt${QT_MAJOR_VERSION}::WidgetsPrivate 0122 Qt${QT_MAJOR_VERSION}::Gui Qt${QT_MAJOR_VERSION}::Qml 0123 KF${KF_MAJOR_VERSION}::CoreAddons KF${KF_MAJOR_VERSION}::WidgetsAddons KF${KF_MAJOR_VERSION}::TextWidgets KF${KF_MAJOR_VERSION}::Codecs 0124 KF${KF_MAJOR_VERSION}::SonnetCore KF${KF_MAJOR_VERSION}::SonnetUi 0125 KF${KF_MAJOR_VERSION}::KIOCore KF${KF_MAJOR_VERSION}::KIOFileWidgets KF${KF_MAJOR_VERSION}::KIOWidgets 0126 KF${KF_MAJOR_VERSION}::XmlGui KF${KF_MAJOR_VERSION}::I18n 0127 OpenSSL::SSL 0128 ${FFMPEG_LIBRARIES} 0129 ${OPENAL_LIBRARY} 0130 ${ICU_LIBRARIES} 0131 ) 0132 if(QT_MAJOR_VERSION EQUAL 6) 0133 target_link_libraries(subtitlecomposer-lib Qt::OpenGLWidgets Qt::Core5Compat) 0134 endif() 0135 target_include_directories(subtitlecomposer-lib PUBLIC 0136 ${Qt${QT_MAJOR_VERSION}Core_INCLUDE_DIRS} 0137 ${Qt${QT_MAJOR_VERSION}Widgets_INCLUDE_DIRS} ${Qt${QT_MAJOR_VERSION}Widgets_PRIVATE_INCLUDE_DIRS} 0138 ${Qt${QT_MAJOR_VERSION}Gui_INCLUDE_DIRS} ${Qt${QT_MAJOR_VERSION}Gui_PRIVATE_INCLUDE_DIRS} 0139 ${OPENAL_INCLUDE_DIR} 0140 ${FFMPEG_INCLUDE_DIRS} 0141 ) 0142 if(ICU_FOUND) 0143 message(STATUS "ICU Library will be used for charset detection.") 0144 set(HAVE_ICU 1 CACHE INTERNAL EXPORTEDVARIABLE) 0145 target_include_directories(subtitlecomposer-lib PUBLIC ${ICU_INCLUDE_DIRS}) 0146 else() 0147 message(STATUS "ICU Library not found. KEncodingProber fallback will be used for charset detection.") 0148 endif() 0149 0150 add_subdirectory(tests) 0151 add_subdirectory(scripting) 0152 0153 add_executable(subtitlecomposer WIN32 main.cpp ${subtitlecomposer_RES_SRC}) 0154 target_link_libraries(subtitlecomposer subtitlecomposer-lib) 0155 0156 install(TARGETS subtitlecomposer DESTINATION ${KDE_INSTALL_BINDIR}) 0157 0158 install(FILES subtitlecomposerrc DESTINATION ${KDE_INSTALL_CONFDIR}) 0159 install(FILES org.kde.subtitlecomposer.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 0160 install(FILES org.kde.subtitlecomposer.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) 0161 install(FILES subtitlecomposer.xml DESTINATION ${KDE_INSTALL_MIMEDIR}) 0162 0163 # build plugins 0164 add_subdirectory(speechplugins/pocketsphinx) 0165 0166 # do the configuration of config.h at the end, so all the necessary variables have been set 0167 configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)