1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/greedysky-TTKMusicplayer

Клонировать/Скачать
CMakeLists.txt 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 05.06.2025 06:05 ac4e9a8
# ***************************************************************************
# * Этот файл является частью проекта TTK Music Player
# * Copyright (C) 2015 - 2025 Greedysky Studio
#
# * Это программное обеспечение является свободным; вы можете распространять его и/или изменять
# * его на условиях Генеральной общественной лицензии GNU, опубликованной Free Software Foundation;
# * либо версию 3 лицензии, либо (по вашему выбору) любую более позднюю версию.
#
# * Это программное обеспечение распространяется в надежде, что оно будет полезным,
# * но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без неявной гарантии ТОВАРНО-ЗАКУПОЧНОЙ ДЕЯТЕЛЬНОСТИ
# * или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. См. Генеральную общественную лицензию GNU для более подробной информации.
#
# * Вы должны были получить копию Генеральной общественной лицензии GNU вместе с этим программным обеспечением;
# * если это не так, см. <http://www.gnu.org/licenses/>.
# ***************************************************************************
cmake_minimum_required(VERSION 3.0.0)
project(TTKMusicPlayer)
set(TTK_MAJOR_VERSION 4)
set(TTK_MINOR_VERSION 1)
set(TTK_PATCH_VERSION 3)
set(TTK_VERSION "${TTK_MAJOR_VERSION}. ${TTK_MINOR_VERSION}. ${TTK_PATCH_VERSION}. 0")
# Найти включаемые файлы в директориях сборки
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Отключить автоматическое вызов UI
set(CMAKE_AUTOUIC OFF)
# Отключить автоматическое вызов MOC
set(CMAKE_AUTOMOC OFF)
# Отключить автоматическое вызов RCC
set(CMAKE_AUTORCC OFF)
# Добавить флаг компилятора
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -pthread -fopenmp -Wall")
if(WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows")
endif()
# Тип сборки```cmake
if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
endif()
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Release Debug)
option(TTK_BUILD_SHARED "TTK BUILD SHARED LIBS" ON)
if(TTK_BUILD_SHARED)
message(STATUS "TTK сборка с использованием динамической библиотеки")
else()
message(STATUS "TTK сборка с использованием статической библиотеки")
endif()
add_definitions(-DQT_NO_DEBUG)
add_definitions(-DQT_THREAD)
add_definitions(-DTTK_LIBRARY)
add_definitions(-DQMMP_LIBRARY)
set(TTK_BASE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(TTK_COMMON_DIR "${TTK_BASE_DIR}/TTKCommon")
set(TTK_COMMON_BASE_DIR "${TTK_COMMON_DIR}/base")
set(TTK_COMMON_COMPAT_DIR "${TTK_COMMON_DIR}/compat")
set(TTK_COMMON_APP_DIR "${TTK_COMMON_DIR}/TTKApplication")
set(TTK_COMMON_DUMPER_DIR "${TTK_COMMON_DIR}/TTKDumper")
set(TTK_COMMON_LIB_DIR "${TTK_COMMON_DIR}/TTKLibrary")
set(TTK_COMMON_RUN_DIR "${TTK_COMMON_DIR}/TTKRun")
set(TTK_MODULE_DIR "${TTK_BASE_DIR}/TTKModule")
set(TTK_MODULE_CORE_DIR "${TTK_MODULE_DIR}/TTKCore")
set(TTK_MODULE_WIDGET_DIR "${TTK_MODULE_DIR}/TTKWidget")
include_directories(
${TTK_BASE_DIR}
${TTK_COMMON_DIR}
${TTK_COMMON_LIB_DIR}
${TTK_COMMON_BASE_DIR}
${TTK_MODULE_DIR}
)
set(TTK_CORE_DIR "${TTK_MODULE_CORE_DIR}/musicCoreKits")
set(TTK_CORE_LRCMANAGER_DIR "${TTK_MODULE_CORE_DIR}/musicLrcKits")
set(TTK_CORE_NETWORK_DIR "${TTK_MODULE_CORE_DIR}/musicNetworkKits")
set(TTK_CORE_PLAYLIST_DIR "${TTK_MODULE_CORE_DIR}/musicPlaylistKits")
set(TTK_CORE_LOCALSEARCH_DIR "${TTK_MODULE_CORE_DIR}/musicSearchKits")
set(TTK_CORE_TOOLSWIDGET_DIR "${TTK_MODULE_CORE_DIR}/musicToolsKits")
set(TTK_CORE_TOOLSETSWIDGET_DIR "${TTK_MODULE_CORE_DIR}/musicToolsSetsKits")
set(TTK_CORE_UTILS_DIR "${TTK_MODULE_CORE_DIR}/musicUtilsKits")
set(TTK_CORE_VIDEOKITS_DIR "${TTK_MODULE_CORE_DIR}/musicVideoKits")
include_directories(
${TTK_CORE_DIR}
${TTK_CORE_LRCMANAGER_DIR}
${TTK_CORE_NETWORK_DIR}
${TTK_CORE_NETWORK_DIR}/core
${TTK_CORE_NETWORK_DIR}/image/background
${TTK_CORE_NETWORK_DIR}/image/skin
${TTK_CORE_NETWORK_DIR}/music
${TTK_CORE_NETWORK_DIR}/music/core
${TTK_CORE_NETWORK_DIR}/music/kg
${TTK_CORE_NETWORK_DIR}/music/kw
${TTK_CORE_NETWORK_DIR}/music/wy
${TTK_CORE_NETWORK_DIR}/music/zed
)
``` ${TTK_CORE_NETWORK_DIR}/radio/dj
${TTK_CORE_NETWORK_DIR}/radio/fm
${TTK_CORE_NETWORK_DIR}/radio/mv
${TTK_CORE_NETWORK_DIR}/tools
${TTK_CORE_NETWORK_DIR}/translation
${TTK_CORE_PLAYLIST_DIR}
${TTK_CORE_LOCALSEARCH_DIR}
${TTK_CORE_TOOLSWIDGET_DIR}
${TTK_CORE_TOOLSETSWIDGET_DIR}
${TTK_CORE_UTILS_DIR}
${TTK_CORE_VIDEOKITS_DIR}
)
set(TTK_WIDGET_DIR "${TTK_MODULE_WIDGET_DIR}/musicWidgetKits")
set(TTK_WIDGET_CORE_DIR "${TTK_MODULE_WIDGET_DIR}/musicCoreKits")
set(TTK_WIDGET_LRCMANAGER_DIR "${TTK_MODULE_WIDGET_DIR}/musicLrcKits")
set(TTK_WIDGET_REMOTEWIDGET_DIR "${TTK_MODULE_WIDGET_DIR}/musicRemoteKits")
set(TTK_WIDGET_LOCALSEARCH_DIR "${TTK_MODULE_WIDGET_DIR}/musicSearchKits")
set(TTK_WIDGET_TOOLSWIDGET_DIR "${TTK_MODULE_WIDGET_DIR}/musicToolsKits")
set(TTK_WIDGET_TOOLSETSWIDGET_DIR "${TTK_MODULE_WIDGET_DIR}/musicToolsSetsKits")
``````cmake
set(TTK_WIDGET_UI_DIR "${TTK_MODULE_WIDGET_DIR}/musicUiKits")
set(TTK_WIDGET_VIDEOKITS_DIR "${TTK_MODULE_WIDGET_DIR}/musicVideoKits")
include_directories(
${TTK_WIDGET_DIR}
${TTK_WIDGET_CORE_DIR}
${TTK_WIDGET_LRCMANAGER_DIR}
${TTK_WIDGET_REMOTEWIDGET_DIR}
${TTK_WIDGET_LOCALSEARCH_DIR}
${TTK_WIDGET_TOOLSWIDGET_DIR}
${TTK_WIDGET_TOOLSETSWIDGET_DIR}
${TTK_WIDGET_UI_DIR}
${TTK_WIDGET_VIDEOKITS_DIR}
)
set(TTK_CONFIG_DIR "${TTK_BASE_DIR}/TTKConfig")
set(TTK_UI_DIR "${TTK_BASE_DIR}/TTKUi")
set(TTK_THIRDPARTY_DIR "${TTK_BASE_DIR}/TTKThirdParty")
set(TTK_TTKSERVICE_DIR "${TTK_BASE_DIR}/TTKService")
set(TTK_UTILS_DIR "${TTK_BASE_DIR}/TTKUtils")
set(TTK_LANGUAGE_DIR "${TTK_BASE_DIR}/TTKLanguage")
set(TTK_RESOURCE_DIR "${TTK_BASE_DIR}/TTKResource")
include_directories(
${TTK_THIRDPARTY_DIR}
${TTK_THIRDPARTY_DIR}/Zlib
${TTK_THIRDPARTY_DIR}/TTKWatcher
${TTK_THIRDPARTY_DIR}/TTKExtras
)
set(TTK_BUILD_DIR "${CMAKE_CACHEFILE_DIR}/bin")
set(TTK_GENERATE_DIR "${CMAKE_CACHEFILE_DIR}/Generate")
include_directories(${TTK_GENERATE_DIR})
set(LIBRARY_OUTPUT_PATH ${TTK_BUILD_DIR}/${TTK_VERSION})
set(EXECUTABLE_OUTPUT_PATH ${TTK_BUILD_DIR}/${TTK_VERSION})
file(MAKE_DIRECTORY ${LIBRARY_OUTPUT_PATH}/GLanguage)
set(OPENSSL_DIR "" CACHE PATH "Путь установки OpenSSL")
set(TTK_QT_VERSION "0" CACHE STRING "Выберите версию Qt")
set_property(CACHE TTK_QT_VERSION PROPERTY STRINGS 4 5 6)```cmake
if(NOT (TTK_QT_VERSION STREQUAL "4" OR TTK_QT_VERSION STREQUAL "5" OR TTK_QT_VERSION STREQUAL "6"))
message(FATAL_ERROR "Ожидаемое значение для TTK_QT_VERSION неверно")
endif()
set(CMAKE_PREFIX_PATH ${QT_INSTALL_DIR} CACHE PATH "Установочный путь Qt")
find_program(QT_QMAKE_EXECUTABLE qmake ${QT_INSTALL_BINS})
if(QT_QMAKE_EXECUTABLE)
message(STATUS "Найден исполняемый файл qmake: " ${QT_QMAKE_EXECUTABLE})
else()
message(FATAL_ERROR "Невозможно найти исполняемый файл qmake")
endif()
if(TTK_QT_VERSION VERSION_EQUAL "4")
set(minimum_required_qt_version "4.8")
find_package(Qt4 REQUIRED)
if(QT4_FOUND)
if("${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}" VERSION_LESS "${minimum_required_qt_version}")
message(FATAL_ERROR "Критическая ошибка: TTK требует Qt >= ${minimum_required_qt_version} -- вы не можете использовать Qt ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}.")
endif()
set(QT_USE_QTCORE ON)
set(QT_USE_QTGUI ON)
set(QT_USE_QTNETWORK ON)
set(QT_USE_QTXML ON)
set(QT_USE_QTOPENGL ON)
if(WIN32)
set(QT_USE_QTMULTIMEDIA ON)
else()
set(QT_USE_QTDBUS ON)
endif()
include(${QT_USE_FILE})
if(WIN32)
get_filename_component(${QT_LIBRARY_DIR} ${QT_QMAKE_EXECUTABLE} PATH)
endif()
else()
message(FATAL_ERROR "Фатальная ошибка: Qt4 не найден на вашей системе. Вероятно, вам нужно установить переменную QT_QMAKE_EXECUTABLE")
endif()
elseif(TTK_QT_VERSION VERSION_EQUAL "5")
find_package(Qt5 COMPONENTS Core Gui Widgets Multimedia Network Xml OpenGL REQUIRED)
if(WIN32)
find_package(Qt5WinExtras REQUIRED)
else()
find_package(Qt5DBus REQUIRED)
find_package(Qt5X11Extras REQUIRED)
endif()
elseif(TTK_QT_VERSION VERSION_EQUAL "6")
```
В этом тексте исправлены ошибки в орфографии и пунктуации, а также переведены описания на русский язык. находит_пакет(Qt6 COMPONENTS Core Gui Widgets Multimedia Network Xml OpenGL Core5Compat REQUIRED)
# Добавляет флаг компилятора
устанавливает(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
если(UNIX)
находит_пакет(Qt6 COMPONENTS DBus REQUIRED)
конец()
endif()
если(TTK_QT_VERSION VERSION_GREATER "4")
добавляет_определения(-DQT_DEPRECATED_WARNINGS)
добавляет_определения(-DQT_DISABLE_DEPRECATED_BEFORE=0x050400)
endif()
находит_программу(CCACHE_НАЙДЕН ccache)
если(CCACHE_НАЙДЕН)
сообщение(СТАТУС "Установка модуля ccache")
устанавливает_свойство(ГЛОБАЛЬНОЕ СВОЙСТВО RULE_LAUNCH_COMPILE ccache)
устанавливает_свойство(ГЛОБАЛЬНОЕ СВОЙСТВО RULE_LAUNCH_LINK ccache)
endif()
находит_программу(QT_LRELEASE_EXECUTABLE lrelease ${QT_INSTALL_BINS})
если(QT_LRELEASE_EXECUTABLE)
сообщение(СТАТУС "Найден исполняемый файл lrelease: " ${QT_LRELEASE_EXECUTABLE})
иначе()
сообщение(ОШИБКА "Невозможно найти исполняемый файл lrelease")
endif()
если(UNIX)
находит_библиотеку(RENAME_EXECUTABLE rename /usr/bin)
если(RENAME_EXECUTABLE)
сообщение(СТАТУС "Найден исполняемый файл rename: " ${RENAME_EXECUTABLE})
иначе()
сообщение(ОШИБКА "Невозможно найти исполняемый файл rename")
конец()
endif()
находит_библиотеку(TTK_QMMP_LIBRARY
ИМЕНА TTKqmmp
ПУТЬ ${LIBRARY_OUTPUT_PATH}
)
# qmmp include
включает_папки(${TTK_THIRDPARTY_DIR}/TTKqmmp)
если(TTK_QT_VERSION VERSION_EQUAL "4" И UNIX)
включает_папки(
/usr/include/QtMultimediaKit
/usr/include/QtMobility)
конец()
добавляет_подпапку(TTKCommon)
добавляет_подпапку(TTKLanguage)
добавляет_подпапку(TTKConfig)
добавляет_подпапку(TTKUi)
добавляет_подпапку(TTKThirdParty)
добавляет_подпапку(TTKModule)
добавляет_подпапку(TTKService)
add_subdirectory(TTKRun)
set(TTK_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}")
set(TTK_INSTALL_BIN_DIR "${TTK_INSTALL_DIR}/${TTK_VERSION}")
install(DIRECTORY "${TTK_BUILD_DIR}/" DESTINATION "${TTK_INSTALL_DIR}" USE_SOURCE_PERMISSIONS)
install(FILES "${TTK_BASE_DIR}/ChangeLog"
"${TTK_BASE_DIR}/LICENSE"
"${TTK_BASE_DIR}/LICENSE.LGPLv3"
"${TTK_BASE_DIR}/README.md"
"${TTK_BASE_DIR}/README_cn.md"
"${TTK_BASE_DIR}/README_tc.md"
"${TTK_UTILS_DIR}/resource/LICENSE. QT-LICENSE-AGREEMENT"
DESTINATION "${TTK_INSTALL_DIR}/doc")
install(FILES "${TTK_UTILS_DIR}/resource/README.txt" DESTINATION "${TTK_INSTALL_DIR}")
if(WIN32)
install(FILES "${TTK_UTILS_DIR}/resource/qicon.dll" DESTINATION "${TTK_INSTALL_DIR}")
else()
install(DIRECTORY "${TTK_UTILS_DIR}/deploy" DESTINATION "${TTK_INSTALL_DIR}")
install(FILES "${TTK_UTILS_DIR}/ttk_runtime" DESTINATION "${TTK_INSTALL_DIR}")
install(FILES "${TTK_UTILS_DIR}/deploy/share/appdata/ttkmusicplayer.appdata.xml" DESTINATION "${TTK_INSTALL_DIR}/share/metainfo")
endif()
# копирование ресурсов запуска
if(UNIX)
install(CODE "execute_process(COMMAND \"${TTK_UTILS_DIR}/resource.sh\" \"${TTK_RESOURCE_DIR}\" \"${TTK_INSTALL_BIN_DIR}\")")
endif()
# обновление и выпуск переводов
if(WIN32)
install(CODE "execute_process(COMMAND \"${TTK_UTILS_DIR}/ts_win.bat\" \"${QT_LRELEASE_EXECUTABLE}\" \"${TTK_INSTALL_BIN_DIR}\" \"${TTK_BASE_DIR}\")")
else()
install(CODE "execute_process(COMMAND \"${TTK_UTILS_DIR}/ts_linux.sh\" \"${QT_LRELEASE_EXECUTABLE}\" \"${TTK_INSTALL_BIN_DIR}\" \"${TTK_BASE_DIR}\")")
endif()

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/greedysky-TTKMusicplayer.git
git@api.gitlife.ru:oschina-mirror/greedysky-TTKMusicplayer.git
oschina-mirror
greedysky-TTKMusicplayer
greedysky-TTKMusicplayer
master