tageditor/CMakeLists.txt

280 lines
7.9 KiB
CMake
Raw Permalink Normal View History

cmake_minimum_required(VERSION 3.17.0 FATAL_ERROR)
2015-12-05 22:55:05 +01:00
# meta data
project(tageditor)
set(META_PROJECT_NAME ${PROJECT_NAME})
set(META_PROJECT_TYPE application)
2015-12-05 22:55:05 +01:00
set(META_APP_NAME "Tag Editor")
2016-11-08 19:34:12 +01:00
set(META_APP_CATEGORIES "AudioVideo;Database;")
2015-12-05 22:55:05 +01:00
set(META_APP_AUTHOR "Martchus")
set(META_APP_URL "https://github.com/${META_APP_AUTHOR}/${META_PROJECT_NAME}")
2019-02-06 18:06:55 +01:00
set(META_APP_DESCRIPTION
"A tageditor with Qt GUI and command line interface. Supports MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska")
2016-08-14 22:49:07 +02:00
set(META_GUI_OPTIONAL true)
set(META_JS_SRC_DIR renamingutility)
2018-03-07 20:09:33 +01:00
set(META_VERSION_MAJOR 3)
2023-07-30 15:58:09 +02:00
set(META_VERSION_MINOR 9)
2023-11-10 14:35:52 +01:00
set(META_VERSION_PATCH 1)
2023-09-05 10:45:24 +02:00
set(META_RELEASE_DATE "2023-09-05")
set(META_ADD_DEFAULT_CPP_UNIT_TEST_APPLICATION ON)
2015-12-05 22:55:05 +01:00
2015-12-08 08:40:03 +01:00
# add project files
set(HEADER_FILES cli/attachmentinfo.h cli/fieldmapping.h cli/helper.h cli/mainfeatures.h application/knownfieldmodel.h)
set(SRC_FILES application/main.cpp cli/attachmentinfo.cpp cli/fieldmapping.cpp cli/helper.cpp cli/mainfeatures.cpp
application/knownfieldmodel.cpp)
set(GUI_HEADER_FILES application/targetlevelmodel.h application/settings.h gui/fileinfomodel.h misc/htmlinfo.h
misc/utility.h)
set(GUI_SRC_FILES application/targetlevelmodel.cpp application/settings.cpp gui/fileinfomodel.cpp misc/htmlinfo.cpp
misc/utility.cpp)
2015-12-08 08:40:03 +01:00
set(WIDGETS_HEADER_FILES
gui/entertargetdialog.h
gui/javascripthighlighter.h
gui/attachmentsedit.h
gui/attachmentsmodel.h
gui/codeedit.h
gui/mainwindow.h
gui/minimumemptyspinbox.h
gui/notificationlabel.h
gui/notificationmodel.h
gui/pathlineedit.h
gui/picturepreviewselection.h
gui/filefilterproxymodel.h
gui/initiate.h
gui/previousvaluehandling.h
gui/renamefilesdialog.h
gui/settingsdialog.h
gui/tagedit.h
gui/tagfieldedit.h
gui/tageditorwidget.h
2016-03-03 22:21:15 +01:00
dbquery/dbquery.h
dbquery/musicbrainz.h
dbquery/makeitpersonal.h
dbquery/lyricswikia.h
dbquery/tekstowo.h
2016-03-03 22:21:15 +01:00
gui/dbquerywidget.h
misc/networkaccessmanager.h
2015-12-08 08:40:03 +01:00
renamingutility/filesystemitem.h
renamingutility/filesystemitemmodel.h
renamingutility/filteredfilesystemitemmodel.h
renamingutility/renamingengine.h
2019-02-06 18:06:55 +01:00
renamingutility/tageditorobject.h)
2015-12-08 08:40:03 +01:00
set(WIDGETS_SRC_FILES
gui/attachmentsedit.cpp
gui/attachmentsmodel.cpp
gui/codeedit.cpp
gui/entertargetdialog.cpp
gui/mainwindow.cpp
gui/minimumemptyspinbox.cpp
gui/notificationlabel.cpp
gui/notificationmodel.cpp
gui/pathlineedit.cpp
gui/picturepreviewselection.cpp
gui/filefilterproxymodel.cpp
gui/initiate.cpp
gui/javascripthighlighter.cpp
gui/renamefilesdialog.cpp
gui/settingsdialog.cpp
gui/tagedit.cpp
gui/tagfieldedit.cpp
gui/tageditorwidget.cpp
2016-03-03 22:21:15 +01:00
dbquery/dbquery.cpp
dbquery/musicbrainz.cpp
dbquery/makeitpersonal.cpp
dbquery/lyricswikia.cpp
dbquery/tekstowo.cpp
2016-03-03 22:21:15 +01:00
gui/dbquerywidget.cpp
misc/networkaccessmanager.cpp
2015-12-08 08:40:03 +01:00
renamingutility/filesystemitem.cpp
renamingutility/filesystemitemmodel.cpp
renamingutility/filteredfilesystemitemmodel.cpp
renamingutility/renamingengine.cpp
renamingutility/tageditorobject.cpp
2015-12-08 08:40:03 +01:00
resources/icons.qrc
2019-02-06 18:06:55 +01:00
resources/scripts.qrc)
2016-01-25 18:59:21 +01:00
set(WIDGETS_UI_FILES
gui/id3v2optionpage.ui
gui/id3v1optionpage.ui
gui/tagprocessinggeneraloptionpage.ui
2016-05-26 02:15:41 +02:00
gui/tagprocessingtargetsoptionpage.ui
2016-01-25 18:59:21 +01:00
gui/editorgeneraloptionpage.ui
gui/filebrowsergeneraloptionpage.ui
gui/mainwindow.ui
gui/renamefilesdialog.ui
gui/editorautocorrectionoptionpage.ui
gui/picturepreviewselection.ui
gui/editorfieldsoptionpage.ui
gui/editordbqueryoptionpage.ui
2016-01-25 18:59:21 +01:00
gui/infooptionpage.ui
gui/entertargetdialog.ui
gui/attachmentsedit.ui
gui/editortempoptionpage.ui
gui/filelayout.ui
gui/tageditorwidget.ui
gui/dbquerywidget.ui
gui/imageconversiondialog.ui)
2019-02-06 18:06:55 +01:00
set(TEST_HEADER_FILES)
set(TEST_SRC_FILES tests/cli.cpp)
set(EXCLUDED_FILES cli/scriptapi.h cli/scriptapi.cpp)
2019-02-06 18:06:55 +01:00
set(TS_FILES translations/${META_PROJECT_NAME}_de_DE.ts translations/${META_PROJECT_NAME}_en_US.ts)
2015-12-08 08:40:03 +01:00
2019-02-06 18:06:55 +01:00
set(ICON_FILES resources/icons/hicolor/scalable/apps/${META_PROJECT_NAME}.svg)
2015-12-05 22:55:05 +01:00
2019-02-06 18:06:55 +01:00
set(DOC_FILES README.md)
2016-06-14 00:52:33 +02:00
2016-07-16 23:13:32 +02:00
set(REQUIRED_ICONS
window-close
document-open
2019-05-28 23:59:38 +02:00
edit-clear
2016-07-16 23:13:32 +02:00
edit-copy
edit-rename
2019-05-28 23:59:38 +02:00
emblem-error
emblem-warning
emblem-information
emblem-question
2019-05-28 23:59:38 +02:00
object-locked
object-unlocked
2016-07-16 23:13:32 +02:00
preferences-other
view-refresh
2016-07-16 23:13:32 +02:00
view-preview
2016-11-23 20:04:17 +01:00
document-open-recent
2016-07-16 23:13:32 +02:00
tag-add
process-stop
edit-find
media-playback-start
list-add
tag
2016-11-23 20:04:17 +01:00
dialog-ok-apply
2016-07-16 23:13:32 +02:00
help-about
2016-11-23 20:04:17 +01:00
preferences-desktop-locale
2016-07-16 23:13:32 +02:00
edit-undo
document-properties
image-x-generic
2016-11-23 20:04:17 +01:00
unlock
2016-07-16 23:13:32 +02:00
tag-properties
edit-rename
2016-11-23 20:04:17 +01:00
system-run
2016-07-16 23:13:32 +02:00
go-next
expand-menu-hover
autocorrection
2016-09-25 23:59:04 +02:00
lock
2016-11-23 20:04:17 +01:00
qtcreator
collapse-menu-hover
edit-paste
document-save-as
view-list-tree
document-edit
edit-delete
search
2016-11-23 20:04:17 +01:00
system-search
document-revert
dialog-ok
preferences-desktop-icons
dialog-cancel
edit-clear
application-exit
tag-delete
system-file-manager
document-save
view-media-lyrics
2020-11-25 18:14:40 +01:00
image-resize-symbolic
window-new)
2016-07-16 23:13:32 +02:00
# find c++utilities
2020-11-25 18:05:43 +01:00
set(CONFIGURATION_PACKAGE_SUFFIX
""
CACHE STRING "sets the suffix for find_package() calls to packages configured via c++utilities")
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.23.0 REQUIRED)
use_cpp_utilities()
2016-08-14 22:49:07 +02:00
include(BasicConfig)
# link against a possibly required extra library for std::filesystem
use_standard_filesystem()
# find qtutilities
2019-02-06 18:06:55 +01:00
if (WIDGETS_GUI OR QUICK_GUI)
2020-11-25 18:05:43 +01:00
set(CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES
"${CONFIGURATION_PACKAGE_SUFFIX}"
CACHE STRING "sets the suffix for qtutilities")
2023-03-26 21:48:25 +02:00
find_package(qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.12.0 REQUIRED)
use_qt_utilities()
2019-02-06 18:06:55 +01:00
endif ()
# find tagparser
2023-12-29 17:27:55 +01:00
find_package(tagparser${CONFIGURATION_PACKAGE_SUFFIX} 12.2.0 REQUIRED)
use_tag_parser()
2018-01-15 00:14:53 +01:00
# enable experimental JSON export
option(ENABLE_JSON_EXPORT "enable JSON export" OFF)
2019-02-06 18:06:55 +01:00
if (ENABLE_JSON_EXPORT)
2018-01-15 00:14:53 +01:00
# find reflective-rapidjson
2019-03-13 19:07:51 +01:00
find_package(reflective_rapidjson${CONFIGURATION_PACKAGE_SUFFIX} REQUIRED)
2018-01-15 00:14:53 +01:00
use_reflective_rapidjson()
# add additional source files
2019-02-06 18:06:55 +01:00
list(APPEND HEADER_FILES cli/json.h)
list(APPEND SRC_FILES cli/json.cpp)
2018-01-15 00:14:53 +01:00
# add generator invocation
include(ReflectionGenerator)
add_reflection_generator_invocation(
INPUT_FILES
cli/json.h
GENERATORS
json
OUTPUT_LISTS
HEADER_FILES
CLANG_OPTIONS_FROM_TARGETS
${META_TARGET_NAME})
2018-01-15 00:14:53 +01:00
# add compile definitions
list(APPEND META_PRIVATE_COMPILE_DEFINITIONS ${META_PROJECT_VARNAME_UPPER}_JSON_EXPORT)
2019-02-06 18:06:55 +01:00
endif ()
2018-01-15 00:14:53 +01:00
2019-03-13 19:07:51 +01:00
# add Qt modules which can not be detected automatically
list(APPEND ADDITIONAL_QT_MODULES Concurrent Network)
2023-07-05 01:47:26 +02:00
# configure usage of Qt
2019-02-06 18:06:55 +01:00
if (WIDGETS_GUI OR QUICK_GUI)
include(QtGuiConfig)
2019-03-13 19:07:51 +01:00
include(QtJsProviderConfig)
include(QtWebViewProviderConfig)
include(QtConfig)
2019-02-06 18:06:55 +01:00
endif ()
2023-07-05 01:47:26 +02:00
# configure JavaScript processing for the CLI
if (JS_PROVIDER STREQUAL Qml)
list(APPEND HEADER_FILES cli/scriptapi.h)
list(APPEND SRC_FILES cli/scriptapi.cpp)
2023-07-05 01:47:26 +02:00
endif ()
# include modules to apply configuration
include(WindowsResources)
include(TestTarget)
include(AppTarget)
2016-07-04 23:28:11 +02:00
include(ShellCompletion)
2016-07-27 21:39:11 +02:00
include(ConfigHeader)
# create desktop file using previously defined meta data
add_desktop_file()
# create custom desktop file for launching the renaming utility separately
add_custom_desktop_file(
FILE_NAME
"${META_ID}-renamingutility"
DESKTOP_FILE_APP_NAME
"Renaming utility (${META_APP_NAME})"
DESKTOP_FILE_GENERIC_NAME
"Renaming utility (${META_APP_NAME})"
DESKTOP_FILE_DESCRIPTION
"Tool to rename files using its tag information"
DESKTOP_FILE_CATEGORIES
"${META_APP_CATEGORIES}"
DESKTOP_FILE_CMD
"${META_TARGET_NAME} qt-gui --renaming-utility"
DESKTOP_FILE_ICON
"${META_PROJECT_NAME}")