diff --git a/CMakeLists.txt b/CMakeLists.txt index b67449a..8ee5528 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,182 +1,186 @@ project (audex) cmake_minimum_required(VERSION 3.0.0) set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") set(CPACK_GENERATOR "DEB;RPM;TGZ") set(DEBIAN_PACKAGE_DESCRIPTION "Audex") set(DEBIAN_PACKAGE_SECTION "Multimedia") set(CPACK_SOURCE_GENERATOR "TBZ2") set(CPACK_PACKAGE_VERSION_MAJOR "0") set(CPACK_PACKAGE_VERSION_MINOR "95") set(CPACK_PACKAGE_CONTACT "Marco Nelles ") set(AUDEX_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}") set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${AUDEX_VERSION}") set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${AUDEX_VERSION}") include(CPack) -find_package(ECM REQUIRED NO_MODULE) +set(KF5_MIN_VERSION "5.15.0") + +find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -g") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMInstallIcons) include(FeatureSummary) find_package(Qt5 REQUIRED COMPONENTS Script Widgets X11Extras ) -find_package(KF5 REQUIRED COMPONENTS +find_package(KF5 ${KF5_MIN_VER} REQUIRED COMPONENTS Config Completion CoreAddons + Crash I18n IconThemes KCMUtils KIO Solid TextWidgets WidgetsAddons XmlGui ) find_package(KF5Cddb) set_package_properties(KF5Cddb PROPERTIES DESCRIPTION "KF5 branch for CDDB library" URL "http://projects.kde.org/projects/kde/kdemultimedia/libkcddb" TYPE REQUIRED PURPOSE "libkcddb is used to retrieve audio CD meta data from the internet." ) find_package(Cdparanoia REQUIRED) include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_BINARY_DIR} ) # Silence some errors for now add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0) set(CMAKE_C_FLAGS "${AUDEX_ID3_CFLAGS} ${CMAKE_C_FLAGS}") set(audex_SRCS main.cpp mainwindow.cpp models/cddamodel.cpp models/profilemodel.cpp utils/pid.cpp utils/coverfetcher.cpp utils/patternparser.cpp utils/playlist.cpp utils/wavefilewriter.cpp utils/cddaparanoia.cpp utils/cddadevices.cpp utils/encoderwrapper.cpp utils/cddaextractthread.cpp utils/upload.cpp utils/encoderassistant.cpp utils/hashlist.cpp utils/3rdparty/crc32.cpp utils/parameters.cpp utils/cachedimage.cpp utils/cuesheetwriter.cpp utils/tmpdir.cpp utils/discidcalculator.cpp widgets/cddaheaderwidget.cpp widgets/generalsettingswidget.cpp widgets/devicewidget.cpp widgets/profilewidget.cpp widgets/remoteserversettingswidget.cpp widgets/lamewidget.cpp widgets/oggencwidget.cpp widgets/flacwidget.cpp widgets/faacwidget.cpp widgets/wavewidget.cpp widgets/customwidget.cpp dialogs/coverbrowserdialog.cpp dialogs/cddaheaderdatadialog.cpp dialogs/profiledatadialog.cpp dialogs/profiledatacoverdialog.cpp dialogs/profiledataplaylistdialog.cpp dialogs/profiledatainfodialog.cpp dialogs/profiledatahashlistdialog.cpp dialogs/profiledatacuesheetdialog.cpp dialogs/profiledatasinglefiledialog.cpp dialogs/patternwizarddialog.cpp dialogs/commandwizarddialog.cpp dialogs/simplepatternwizarddialog.cpp dialogs/extractingprogressdialog.cpp dialogs/protocoldialog.cpp dialogs/errordialog.cpp core/audex.cpp ) ki18n_wrap_ui(audex_SRCS widgets/generalsettingswidgetUI.ui widgets/devicewidgetUI.ui widgets/profilewidgetUI.ui widgets/remoteserversettingswidgetUI.ui widgets/lamewidgetUI.ui widgets/oggencwidgetUI.ui widgets/flacwidgetUI.ui widgets/faacwidgetUI.ui widgets/wavewidgetUI.ui widgets/customwidgetUI.ui dialogs/coverbrowserwidgetUI.ui dialogs/cddaheaderdatawidgetUI.ui dialogs/profiledatawidgetUI.ui dialogs/profiledatacoverwidgetUI.ui dialogs/profiledataplaylistwidgetUI.ui dialogs/profiledatainfowidgetUI.ui dialogs/profiledatahashlistwidgetUI.ui dialogs/profiledatacuesheetwidgetUI.ui dialogs/profiledatasinglefilewidgetUI.ui dialogs/patternwizardwidgetUI.ui dialogs/commandwizardwidgetUI.ui dialogs/simplepatternwizardwidgetUI.ui dialogs/extractingprogresswidgetUI.ui dialogs/protocolwidgetUI.ui ) kconfig_add_kcfg_files(audex_SRCS preferences.kcfgc) add_executable(audex ${audex_SRCS}) target_link_libraries(audex Qt5::Script Qt5::Widgets Qt5::X11Extras KF5::Completion KF5::CoreAddons + KF5::Crash KF5::I18n KF5::IconThemes KF5::KCMUtils KF5::KIOWidgets KF5::Solid KF5::TextWidgets KF5::WidgetsAddons KF5::XmlGui KF5::Cddb ${CDPARANOIA_LIBRARIES} ) install(TARGETS audex DESTINATION ${BIN_INSTALL_DIR}) install(FILES audexui.rc DESTINATION ${KXMLGUI_INSTALL_DIR}/audex) install(FILES org.kde.audex.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) install(FILES audex-rip-audiocd.desktop DESTINATION ${DATA_INSTALL_DIR}/solid/actions) add_subdirectory(icons) add_subdirectory(images) if(BUILD_TESTING) find_package(Qt5Test REQUIRED) add_subdirectory(test) endif() feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES) diff --git a/main.cpp b/main.cpp index 269e53c..356d346 100644 --- a/main.cpp +++ b/main.cpp @@ -1,70 +1,73 @@ /* AUDEX CDDA EXTRACTOR * Copyright (C) 2007-2015 Marco Nelles (audex@maniatek.com) * * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include #include +#include #include "config.h" #include "mainwindow.h" #include int main (int argc, char *argv[]) { Kdelibs4ConfigMigrator migrator(QStringLiteral("audex")); migrator.setConfigFiles(QStringList() << QStringLiteral("audexrc")); migrator.migrate(); QApplication app(argc, argv); + KCrash::initialize(); + KLocalizedString::setApplicationDomain("audex"); KAboutData aboutData("audex", i18n("Audex"), AUDEX_VERSION); aboutData.setShortDescription(i18n("KDE CDDA Extractor")); aboutData.setLicense(KAboutLicense::GPL); aboutData.setCopyrightStatement(i18n("Copyright © 2007–2015 by Marco Nelles")); aboutData.setHomepage("http://userbase.kde.org/Audex"); aboutData.setBugAddress("audex@maniatek.com"); aboutData.addAuthor(i18n("Marco Nelles"), i18n("Current maintainer, main developer"), "marco@maniatek.de"); aboutData.addCredit(i18n("Craig Drummond"), i18n("GUI improvements, development"), 0, ""); aboutData.addCredit(i18n("Elson"), i18n("development"), 0, ""); aboutData.addCredit(i18n("credativ GmbH"), i18n("Special thanks to credativ GmbH (Germany) for support"), 0, "http://www.credativ.com/"); aboutData.addCredit(i18n("freedb.org"), i18n("Special thanks to freedb.org for providing a free CDDB-like CD database"), 0, "http://freedb.org"); aboutData.addCredit(i18n("Xiph.Org Foundation"), i18n("Special thanks to Xiph.Org Foundation for providing compact disc ripper"), 0, "http://www.xiph.org/paranoia/index.html"); aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails")); aboutData.setOrganizationDomain(QByteArray("kde.org")); aboutData.setDesktopFileName(QStringLiteral("org.kde.audex")); app.setWindowIcon(QIcon::fromTheme(QStringLiteral("audex"))); QCommandLineParser parser; KAboutData::setApplicationData(aboutData); parser.addVersionOption(); parser.addHelpOption(); aboutData.setupCommandLine(&parser); parser.process(app); aboutData.processCommandLine(&parser); MainWindow* window = new MainWindow(); window->show(); return app.exec(); }