-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
119 lines (100 loc) · 3.22 KB
/
Copy pathCMakeLists.txt
File metadata and controls
119 lines (100 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
cmake_minimum_required(VERSION 3.16)
project(QListenTogether VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zi /EHa")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG")
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME})
endif()
set(BUILD_SHARED_LIBS OFF)
set(MUSICAPI_TEST OFF)
add_subdirectory(3rdparty/QCloudMusicApi)
include_directories(3rdparty/QCloudMusicApi)
find_package(Qt6 6.5 REQUIRED COMPONENTS Multimedia Quick QuickControls2 Network)
qt_standard_project_setup(REQUIRES 6.5)
FILE(GLOB HEADERS ./*.h)
FILE(GLOB SOURCES ./*.cpp)
qt_add_executable(${PROJECT_NAME}
${HEADERS}
${SOURCES}
)
set(resource_files
"Mute_Icon.svg"
"Speaker_Icon.svg"
)
qt_add_resources(${PROJECT_NAME} "${PROJECT_NAME}"
PREFIX
"/"
FILES
${resource_files}
)
set_source_files_properties(qqr.js/QRCode.qml PROPERTIES
QT_RESOURCE_ALIAS QRCode.qml
)
set_source_files_properties(qqr.js/qqr.js PROPERTIES
QT_RESOURCE_ALIAS qqr.js
)
qt_add_qml_module(${PROJECT_NAME}
URI main
VERSION 1.0
QML_FILES
Main.qml
AudioControl.qml
PlaybackControl.qml
PlaybackRateControl.qml
PlaybackSeekControl.qml
Playlist.qml
qqr.js/QRCode.qml
qqr.js/qqr.js
LoginPage.qml
)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(${PROJECT_NAME} PROPERTIES
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.${PROJECT_NAME}
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
if (ANDROID)
include(FetchContent)
FetchContent_Declare(
android_openssl
DOWNLOAD_EXTRACT_TIMESTAMP true
URL https://github.com/KDAB/android_openssl/archive/refs/heads/master.zip
)
FetchContent_MakeAvailable(android_openssl)
include(${android_openssl_SOURCE_DIR}/android_openssl.cmake)
add_android_openssl_libraries(${PROJECT_NAME})
else()
endif()
target_compile_definitions(${PROJECT_NAME} PRIVATE
PROJECT_NAME="${PROJECT_NAME}"
QT_MESSAGELOGCONTEXT
)
target_link_libraries(${PROJECT_NAME} PRIVATE
Qt6::Quick
Qt6::QuickControls2
Qt6::Network
Qt6::Multimedia
QCloudMusicApi
)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(${PROJECT_NAME} PROPERTIES
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appCMakeTest
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
include(GNUInstallDirs)
install(TARGETS ${PROJECT_NAME}
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)