-
Notifications
You must be signed in to change notification settings - Fork 69
/
Copy pathCMakeLists.txt
98 lines (82 loc) · 2.61 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
#
# see http://qt-project.org/doc/qt-5/cmake-manual.html
# see also http://www.kdab.com/using-cmake-with-qt-5/
# see also http://stackoverflow.com/questions/16245147/unable-to-include-a-ui-form-header-of-qt5-in-cmake
# see also http://www.qtcentre.org/wiki/index.php?title=Compiling_Qt4_apps_with_CMake
#
cmake_minimum_required(VERSION 3.10.2)
project(qgit)
include(GNUInstallDirs)
# As moc files are generated in the binary dir, tell CMake
# to always look for includes there:
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
set(QT_MIN_VERSION 5.11.0)
find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Gui Widgets)
include_directories(
${CMAKE_SOURCE_DIR}/src
)
set(CPP_SOURCES
src/annotate.cpp
src/cache.cpp
src/commitimpl.cpp
src/common.cpp
src/consoleimpl.cpp
src/customactionimpl.cpp
src/dataloader.cpp
src/domain.cpp
src/exceptionmanager.cpp
src/filecontent.cpp
src/FileHistory.cc
src/filelist.cpp
src/fileview.cpp
src/git.cpp
src/lanes.cpp
src/listview.cpp
src/inputdialog.cpp
src/mainimpl.cpp
src/myprocess.cpp
src/namespace_def.cpp
src/patchcontent.cpp
src/patchview.cpp
src/qgit.cpp
src/rangeselectimpl.cpp
src/revdesc.cpp
src/revsview.cpp
src/settingsimpl.cpp
src/smartbrowse.cpp
src/treeview.cpp
)
# UIS_HDRS will be used later in add_executable
qt5_wrap_ui(UIS_HDRS
src/commit.ui
src/console.ui
src/customaction.ui
src/fileview.ui
src/help.ui
src/mainview.ui
src/patchview.ui
src/rangeselect.ui
src/revsview.ui
src/settings.ui
)
# and finally an resource file
set(RESOURCE_FILES
src/icons.qrc
)
# this command will generate rules that will run rcc on all files from SAMPLE_RCS
# in result SAMPLE_RC_SRCS variable will contain paths to files produced by rcc
qt5_add_resources(RC_SRCS ${RESOURCE_FILES})
add_executable(qgit ${CPP_SOURCES} ${UIS_HDRS} ${RC_SRCS})
target_link_libraries(qgit Qt5::Widgets)
install(TARGETS qgit DESTINATION bin)
if (UNIX)
install(FILES src/resources/qgit.png DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps)
install(FILES src/resources/qgit.svg DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps)
install(FILES qgit.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications)
install(FILES qgit.appdata.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo)
endif()
# kate: indent-width 4; replace-tabs on;
# notes:
# http://stackoverflow.com/questions/15054117/aligning-qgraphicsitems-to-a-grid-when-dragging-and-dropping