CMakeLists.txt 3,1 КБ
Newer Older
OMP Education's avatar
OMP Education включено в состав коммита
1
2
3
4
5
6
# SPDX-FileCopyrightText: 2024 Open Mobile Platform LLC <community@omp.ru>
# SPDX-License-Identifier: BSD-3-Clause

cmake_minimum_required(VERSION 3.5)
project(ru.auroraos.CallApiOverall CXX)

OMP Education's avatar
OMP Education включено в состав коммита
7
find_package (Qt5 COMPONENTS Core Network Qml Gui Quick DBus Multimedia LinguistTools REQUIRED)
OMP Education's avatar
OMP Education включено в состав коммита
8
9
10
11
12

include(FindPkgConfig)
pkg_search_module(AURORA auroraapp REQUIRED)
pkg_search_module(AURORA auroraapp_i18n REQUIRED)

OMP Education's avatar
OMP Education включено в состав коммита
13
14
15
16
find_package(PkgConfig)
pkg_check_modules(LIBRESOURCEQT5 libresourceqt5 IMPORTED_TARGET)

cmake_policy(SET CMP0071 NEW)
OMP Education's avatar
OMP Education включено в состав коммита
17
18
19
20
21
22
23
24
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)


set(short_name CallApiOverall)

file(GLOB TsFiles "translations/*.ts")
qt5_add_translation(QmFiles ${TsFiles})
OMP Education's avatar
OMP Education включено в состав коммита
25
qt5_create_translation(QmFiles ${CMAKE_SOURCE_DIR} ${TsFiles})
OMP Education's avatar
OMP Education включено в состав коммита
26
27
28

set(SOURCES
    src/main.cpp
OMP Education's avatar
OMP Education включено в состав коммита
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    src/controllers/mainpagecontroller.h
    src/controllers/mainpagecontroller.cpp
    src/callapi/callmanagerdbusadaptor.h
    src/callapi/callmanagerdbusadaptor.cpp
    src/callapi/dbustypes.h
    src/callapi/callservice1dbusinterface.h
    src/callapi/callservice1dbusinterface.cpp
    src/callapi/callmanager.h
    src/callapi/callmanager.cpp
    src/callapi/call1dbusobject.h
    src/callapi/call1dbusobject.cpp
    src/callapi/call1dbusadaptor.h
    src/callapi/call1dbusadaptor.cpp
    src/earpieceplayer.h
    src/earpieceplayer.cpp
OMP Education's avatar
OMP Education включено в состав коммита
44
45
)

OMP Education's avatar
OMP Education включено в состав коммита
46
47
qt5_add_resources(RESOURCES resources.qrc)

OMP Education's avatar
OMP Education включено в состав коммита
48
49
50
51
set(CMAKE_SKIP_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/lib")

OMP Education's avatar
OMP Education включено в состав коммита
52
add_executable(${PROJECT_NAME} ${SOURCES} ${QmFiles} ${RESOURCES})
OMP Education's avatar
OMP Education включено в состав коммита
53
54
55
56
57
58
target_compile_definitions(${PROJECT_NAME} PRIVATE
    $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>
)
target_include_directories(${PROJECT_NAME} PRIVATE
    $<BUILD_INTERFACE:
    ${AURORA_INCLUDE_DIRS}
OMP Education's avatar
OMP Education включено в состав коммита
59
    src
OMP Education's avatar
OMP Education включено в состав коммита
60
>)
OMP Education's avatar
OMP Education включено в состав коммита
61

OMP Education's avatar
OMP Education включено в состав коммита
62
63
target_link_libraries(${PROJECT_NAME} PRIVATE
    Qt5::Quick
OMP Education's avatar
OMP Education включено в состав коммита
64
65
66
    Qt5::DBus
    Qt5::Multimedia
    PkgConfig::LIBRESOURCEQT5
OMP Education's avatar
OMP Education включено в состав коммита
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
    ${AURORA_LDFLAGS}
)

install(TARGETS ${PROJECT_NAME}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(DIRECTORY qml
    DESTINATION share/${PROJECT_NAME}
)

foreach(_file IN LISTS QmFiles)
    get_filename_component(_filename "${_file}" NAME)
    string(REPLACE "${short_name}" "${PROJECT_NAME}" _full_filename "${_filename}")
    install(FILES ${_file} DESTINATION share/${PROJECT_NAME}/translations RENAME ${_full_filename})
endforeach()

set(IconSize 86x86 108x108 128x128 172x172)
foreach(_size IN LISTS IconSize)
    install(FILES icons/${_size}/${PROJECT_NAME}.png DESTINATION share/icons/hicolor/${_size}/apps)
endforeach()

install(FILES ${PROJECT_NAME}.desktop
    DESTINATION share/applications
)

# Get the other files reachable from the project tree in Qt Creator
file(GLOB_RECURSE IconFiles "icons" "*.png")
set(RESOURCE_FILES ${IconFiles})

file(GLOB_RECURSE QmlFiles "qml/*.qml")

add_custom_target(distfiles
    SOURCES
        ${PROJECT_NAME}.desktop
        rpm/${PROJECT_NAME}.spec
OMP Education's avatar
OMP Education включено в состав коммита
102
        ${RESOURCES}
OMP Education's avatar
OMP Education включено в состав коммита
103
104
105
106
107
108
109
110
        ${QmlFiles}
        ${TsFiles}
        ${IconFiles})

file(WRITE "${CMAKE_BINARY_DIR}/QtCreatorDeployment.txt"
    "${CMAKE_INSTALL_PREFIX}
${CMAKE_BINARY_DIR}/${PROJECT_NAME}:bin
")