-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathCMakeLists.txt
81 lines (60 loc) · 2.2 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.5)
project(QLogo VERSION 0.961 LANGUAGES CXX)
include(GNUInstallDirs)
set(QLOGO_BIN qlogo)
set(QLOGO_GUI QLogo-GUI)
set(QLOGO_HELP qlogo_help.db)
set(QLOGO_LIB qlogo_library.db)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if (CMAKE_BUILD_TYPE)
if(CMAKE_BUILD_TYPE STREQUAL "Release")
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64")
endif()
endif()
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 REQUIRED COMPONENTS Widgets Sql Svg)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Sql Svg)
set(QLOGO_DATA_DIR "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_DATADIR}/${QLOGO_BIN}")
set(QLOGO_HELP_DB "${QLOGO_DATA_DIR}/${QLOGO_HELP}")
set(QLOGO_LIB_DB "${QLOGO_DATA_DIR}/${QLOGO_LIB}")
add_subdirectory("${QLOGO_BIN}")
add_subdirectory("${QLOGO_GUI}")
file(MAKE_DIRECTORY "${QLOGO_DATA_DIR}")
file(COPY "share/${QLOGO_HELP}" "share/${QLOGO_LIB}"
DESTINATION "${QLOGO_DATA_DIR}"
)
file(COPY "${CMAKE_SOURCE_DIR}/test"
DESTINATION "${CMAKE_BINARY_DIR}"
)
install(TARGETS "${QLOGO_GUI}" "${QLOGO_BIN}"
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(DIRECTORY "${QLOGO_DATA_DIR}"
DESTINATION "${CMAKE_INSTALL_DATADIR}"
)
install(FILES "${QLOGO_GUI}.desktop"
DESTINATION "${CMAKE_INSTALL_DATADIR}/applications"
)
install(DIRECTORY "icons/hicolor"
DESTINATION "${CMAKE_INSTALL_DATADIR}/icons"
)
install(FILES "${QLOGO_GUI}.appdata.xml"
DESTINATION "${CMAKE_INSTALL_DATADIR}/metainfo"
)
if (APPLE)
set(MACOSX_BUNDLE_ICON_FILE ${QLOGO_GUI}.icns)
# Copy the qlogo binary and help database into the GUI bundle
set(QLOGO_BIN_LOC ${CMAKE_BINARY_DIR}/${QLOGO_BIN}/${QLOGO_BIN})
set(QLOGO_BUNDLE_EXE_DIR ${CMAKE_BINARY_DIR}/${QLOGO_GUI}/${QLOGO_GUI}.app/Contents/MacOS)
set(QLOGO_BUNDLE_RESOURCES_DIR ${CMAKE_BINARY_DIR}/${QLOGO_GUI}/${QLOGO_GUI}.app/Contents/Resources)
add_custom_target(QLogoBundleCp ALL
COMMAND cp "${QLOGO_BIN_LOC}" "${QLOGO_BUNDLE_EXE_DIR}"
COMMAND cp "${QLOGO_HELP_DB}" "${QLOGO_LIB_DB}" "${QLOGO_BUNDLE_RESOURCES_DIR}"
DEPENDS "${QLOGO_GUI}" "${QLOGO_BIN}"
)
endif()