forked from NJUPT-SAST-CXX/sast-gallery
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
98 lines (82 loc) · 2.82 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
cmake_minimum_required(VERSION 3.21)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/.cmake/)
include(Version)
project(sast-gallery VERSION ${VERSION_SEMANTIC} LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if(WIN32)
set(VERSION_RC_PATH ${CMAKE_SOURCE_DIR}/sast-gallery-version.rc)
set(WIN32_MANIFEST_PATH ${CMAKE_SOURCE_DIR}/app.manifest)
configure_file(
${CMAKE_SOURCE_DIR}/.cmake/version_exe.rc.in
${VERSION_RC_PATH}
)
configure_file(
${CMAKE_SOURCE_DIR}/.cmake/InstallerScript.iss.in
${CMAKE_SOURCE_DIR}/action-cli/InstallerScript.iss
)
endif()
if(APPLE)
set(MACOSX_BUNDLE_GUI_IDENTIFIER ${IDENTIFIER})
set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
set(MACOSX_BUNDLE_COPYRIGHT ${COPYRIGHT})
set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${spectral_VERSION})
set(MACOSX_BUNDLE_BUNDLE_VERSION ${spectral_VERSION})
set(ICON_NAME "res/icon/app.icns")
set(${PROJECT_NAME}_MAC_ICON "${CMAKE_SOURCE_DIR}/${ICON_NAME}")
set(MACOSX_BUNDLE_ICON_FILE ${ICON_NAME})
set_property(SOURCE "${${PROJECT_NAME}_MAC_ICON}" PROPERTY
MACOSX_PACKAGE_LOCATION Resources)
endif()
find_package(QT NAMES Qt6 REQUIRED COMPONENTS Widgets)
find_package(Qt6 REQUIRED COMPONENTS Widgets Multimedia MultimediaWidgets Concurrent)
file(GLOB_RECURSE PROJECT_SOURCES
src/*.cpp
src/*.h
)
qt_add_executable(sast-gallery MACOSX_BUNDLE
${${PROJECT_NAME}_MAC_ICON}
${PROJECT_SOURCES}
res/res.qrc
res/icon/app.rc
${VERSION_RC_PATH}
${WIN32_MANIFEST_PATH}
)
# Add ElaWidgetTools, use static library
set(ELAWIDGETTOOLS_BUILD_STATIC_LIB "STATIC" CACHE STRING "Build ElaWidgetTools as a static library")
add_subdirectory(3rdpart/ElaWidgetTools)
target_include_directories(sast-gallery PRIVATE
src
3rdpart/ElaWidgetTools/src/include
)
target_link_libraries(sast-gallery PRIVATE
Qt6::Widgets
Qt6::Multimedia
Qt6::MultimediaWidgets
Qt6::Concurrent
ElaWidgetTools
version::version
)
# 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.
if(${QT_VERSION} VERSION_LESS 6.1.0)
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.sast-gallery)
endif()
set_target_properties(sast-gallery PROPERTIES
${BUNDLE_ID_OPTION}
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 sast-gallery
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)