Skip to content

Commit e1c222b

Browse files
author
Alexander B
committed
add package info into cmake for deb and rpm build
1 parent dd1a876 commit e1c222b

File tree

9 files changed

+147
-248
lines changed

9 files changed

+147
-248
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,7 @@ qrc_*.cpp
1313
/cmake-build-release/
1414
/.DS_Store
1515
/CMakeLists.txt.user
16+
/cmake-build-debug/
17+
/cmake-build-qt-debug/
18+
/cmake-build-qt-relwithdebInfo/
19+
/cmake-build-relwithdebinfo/

CMakeLists.txt

Lines changed: 90 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,23 @@
1+
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_SOURCE_DIR}/cmake/modules")
12
cmake_minimum_required(VERSION 3.5)
23

4+
set(MAJOR "1")
5+
set(MINOR "1")
6+
set(PATCH "1")
7+
cmake_policy(SET CMP0048 NEW)
8+
39
project(Qldd
410
LANGUAGES CXX
5-
VERSION 1.0.0)
11+
VERSION ${MAJOR}.${MINOR}.${PATCH})
12+
13+
14+
find_package(VersionHeader)
15+
set(PROJECT_VERSION "${MAJOR}.${MINOR}.${PATCH}.${COMMITTER_SHORTSHA}")
16+
17+
message(STATUS "COMMITTER_FULLSHA ${COMMITTER_FULLSHA}")
18+
message(STATUS "COMMITTER_SHORTSHA ${COMMITTER_SHORTSHA}")
19+
message(STATUS "COMMITTER_DATE ${COMMITTER_DATE}")
20+
message(STATUS "PROJECT_VERSION ${PROJECT_VERSION}")
621

722
set(CMAKE_INCLUDE_CURRENT_DIR ON)
823

@@ -26,7 +41,7 @@ if (APPLE)
2641
else ()
2742
add_executable(Qldd)
2843
endif ()
29-
44+
include_directories(${CMAKE_BINARY_DIR})
3045
set(SOURCES
3146
main.cpp
3247
mainwindow.cpp
@@ -40,18 +55,9 @@ set(SOURCES
4055
resources/resources.qrc
4156
)
4257
target_sources(Qldd PRIVATE ${SOURCES})
43-
58+
target_compile_definitions(Qldd PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}")
4459
target_link_libraries(Qldd PRIVATE ${QtVer}::Widgets)
4560

46-
install(TARGETS Qldd
47-
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
48-
BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
49-
COMPONENT DependencyViewer)
50-
51-
install(FILES ${CMAKE_SOURCE_DIR}/nemo/actions/dependency-viewer.nemo_action
52-
DESTINATION share/nemo/actions
53-
COMPONENT nemo-integration)
54-
5561
if(APPLE)
5662
set(CMAKE_MACOSX_BUNDLE ON)
5763
set(CMAKE_MACOSX_RPATH ON)
@@ -63,7 +69,7 @@ if(APPLE)
6369
set_target_properties(Qldd
6470
PROPERTIES
6571
MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_NAME}"
66-
MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME} Copyright (c) 2020 bas524@yandex.ru"
72+
MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME} Copyright (c) 2023 bas524@yandex.ru"
6773
MACOSX_BUNDLE_ICON_FILE Qldd.icns
6874
MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_NAME}"
6975
MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_VERSION}"
@@ -79,23 +85,82 @@ if(APPLE)
7985
endif()
8086
endif()
8187

82-
set(desktop.path applications)
83-
set(desktop.files resources/qldd.desktop)
84-
set(icon.path icons/hicolor/64x64/apps)
85-
set(icon.files resources/Qldd.png)
86-
set(iconsvg.path icons/hicolor/scalable/apps)
87-
set(iconsvg.files resources/Qldd.svg)
88-
foreach(items IN ITEMS desktop icon iconsvg)
89-
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${${items}.files}
90-
DESTINATION share/${${items}.path}
91-
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
92-
endforeach()
9388
# Components:
9489
if(CMAKE_BUILD_TYPE_UPPER MATCHES "^(DEBUG|RELWITHDEBINFO)$")
9590
set(CPACK_STRIP_FILES FALSE)
9691
else()
9792
set(CPACK_STRIP_FILES TRUE)
9893
endif()
9994

100-
include(${CMAKE_CURRENT_LIST_DIR}/Packaging.cmake)
95+
install(TARGETS Qldd RUNTIME DESTINATION bin COMPONENT application)
96+
install(FILES ${CMAKE_SOURCE_DIR}/resources/qldd.desktop DESTINATION share/applications/ COMPONENT application)
97+
install(FILES ${CMAKE_SOURCE_DIR}/resources/Qldd.png DESTINATION share/pixmaps/ COMPONENT application)
98+
install(FILES ${CMAKE_SOURCE_DIR}/nemo/actions/dependency-viewer.nemo_action
99+
DESTINATION share/nemo/actions
100+
COMPONENT nemo-integration)
101+
install(FILES ${CMAKE_SOURCE_DIR}/nautilus-python/extensions/dependency-viewer.py
102+
DESTINATION nautilus-python/extensions
103+
COMPONENT nautilus-integration)
104+
105+
set(CPACK_SOURCE_IGNORE_FILES
106+
#svn files
107+
"\\\\.svn/"
108+
"\\\\.cvsignore$"
109+
#git files
110+
"\\\\.git/"
111+
"\\\\.github/"
112+
# temporary files
113+
"\\\\.swp$"
114+
# backup files
115+
"~$"
116+
# eclipse files
117+
"\\\\.cdtproject$"
118+
"\\\\.cproject$"
119+
"\\\\.project$"
120+
"\\\\.settings/"
121+
# others
122+
"\\\\.#"
123+
"/#"
124+
"/build/"
125+
"/_build/"
126+
"/\\\\.git/"
127+
# used before
128+
"/CVS/"
129+
"/\\\\.libs/"
130+
"/\\\\.deps/"
131+
"\\\\.o$"
132+
"\\\\.lo$"
133+
"\\\\.la$"
134+
"Makefile\\\\.in$"
135+
)
136+
137+
138+
set(CPACK_PACKAGE_NAME "Qldd")
139+
set(CPACK_PACKAGE_VERSION "${MAJOR}.${MINOR}.${PATCH}")
140+
set(CPACK_PACKAGE_VENDOR "community")
141+
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_PROCESSOR}")
142+
set(CMAKE_PROJECT_HOMEPAGE_URL "https://github.com/bas524/linuxdependency")
143+
set(CPACK_PACKAGE_CONTACT "bas524")
144+
set(CPACK_PACKAGE_DESCRIPTION "DependencyViewer shows all dependecies of a given executable or dynamic library. It is a GUI wrapper for the ldd, file and nm commands")
145+
146+
set(CPACK_DEBIAN_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
147+
set(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
148+
set(CPACK_DEBIAN_PACKAGE_SECTION "utils")
149+
set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_MAINTAINER})
150+
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
151+
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${CMAKE_PROJECT_HOMEPAGE_URL})
152+
set(CPACK_DEBIAN_PACKAGE_LICENSE "Apache-2.0")
153+
set(CPACK_DEBIAN_PACKAGE_DEPENDS "python3-nautilus, binutils, libqt5core5a, libqt5gui5, libqt5widgets5")
154+
155+
set(CPACK_RPM_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
156+
set(CPACK_RPM_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
157+
set(CPACK_RPM_PACKAGE_SECTION "net")
158+
set(CPACK_RPM_PACKAGE_MAINTAINER ${CPACK_PACKAGE_MAINTAINER})
159+
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
160+
set(CPACK_RPM_PACKAGE_URL ${CMAKE_PROJECT_HOMEPAGE_URL})
161+
set(CPACK_RPM_PACKAGE_LICENSE "Apache-2.0")
162+
set(CPACK_RPM_PACKAGE_REQUIRES "python3-nautilus, binutils, qt5-qtbase")
163+
164+
include(CPack)
165+
cpack_add_component(application DISPLAY_NAME "DependencyViewer" REQUIRED)
101166

CPackLinuxDeployQt.cmake.in

Lines changed: 0 additions & 8 deletions
This file was deleted.

CPackMacDeployQt.cmake.in

Lines changed: 0 additions & 3 deletions
This file was deleted.

Packaging.cmake

Lines changed: 0 additions & 208 deletions
This file was deleted.

0 commit comments

Comments
 (0)