Skip to content

Commit 341eb71

Browse files
committed
build "full-featured" *.tgz packages for Linux and FreeBSD
Signed-off-by: Martin <Ho-Ro@users.noreply.github.com>
1 parent 4159e3d commit 341eb71

File tree

5 files changed

+59
-60
lines changed

5 files changed

+59
-60
lines changed

CMakeLists.txt

+13-41
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/")
1515

1616
INCLUDE_DIRECTORIES(".")
1717

18-
# Use CPack to make deb/rpm/zip/exe installer packages
18+
# Use CPack to make tgz/deb/rpm/zip installer packages
1919
include(cmake/CPackInfos.cmake)
2020

2121
if(MSVC)
@@ -55,53 +55,25 @@ message( "-- COMPILE_DEFINITIONS: ${CompDefs}" )
5555
add_subdirectory(openhantek)
5656

5757
if (WIN32)
58-
install(FILES COPYING readme.md DESTINATION ".")
59-
endif()
60-
61-
if("${CMAKE_SYSTEM}" MATCHES "Linux")
62-
if(EXISTS "/lib/udev/rules.d/")
63-
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/utils/udev_rules/60-hantek.rules"
64-
DESTINATION "/lib/udev/rules.d/" COMPONENT Runtime)
65-
else()
66-
message(WARNING "Could not find udev rules directory (/lib/udev/rules.d/), skipping installation of udev rules.")
67-
endif()
68-
if(EXISTS "/usr/share/applications/")
69-
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/utils/applications/OpenHantek.desktop"
70-
DESTINATION "/usr/share/applications/" COMPONENT Runtime)
71-
else()
72-
message(WARNING "Could not find applications directory (/usr/share/applications/), skipping installation of desktop file.")
73-
endif()
74-
if(EXISTS "/usr/share/icons/hicolor/48x48/apps/")
75-
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/openhantek/res/images/OpenHantek.png"
76-
DESTINATION /usr/share/icons/hicolor/48x48/apps/ COMPONENT Runtime)
77-
else()
78-
message(WARNING "Could not find icons directory (/usr/share/icons/hicolor/48x48/apps/), skipping installation of icon.")
79-
endif()
80-
if(EXISTS "/usr/share/icons/hicolor/scalable/apps/")
81-
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/openhantek/res/images/OpenHantek.svg"
82-
DESTINATION "/usr/share/icons/hicolor/scalable/apps/" COMPONENT Runtime)
83-
else()
84-
message(WARNING "Could not find icons directory (/usr/share/icons/hicolor/scalable/apps/), skipping installation of icon.")
85-
endif()
86-
if(EXISTS "/usr/share/doc/")
87-
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG"
88-
"${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
89-
"${CMAKE_CURRENT_SOURCE_DIR}/docs/OpenHantek6022_User_Manual.pdf"
90-
"${CMAKE_CURRENT_SOURCE_DIR}/docs/HANTEK6022_AC_Modification.pdf"
91-
DESTINATION "/usr/share/doc/openhantek" COMPONENT Runtime)
92-
else()
93-
message(WARNING "Could not find doc directory (/usr/share/doc/), skipping installation of user documentation.")
94-
endif()
58+
install(
59+
FILES CHANGELOG LICENSE README
60+
DESTINATION "."
61+
)
9562
endif()
9663

9764
# Add auxiliary files to the project, so that these files appear in VisualStudio/QtCreator
9865
file(GLOB_RECURSE MDFILES "docs/*.md" "openhantek/*.md")
99-
add_custom_target(readme SOURCES readme.md ${MDFILES})
66+
add_custom_target(
67+
readme
68+
SOURCES CHANGELOG LICENSE README readme.md ${MDFILES}
69+
)
10070

10171
# Add "doc" target to build the documentation.
10272
find_package(Doxygen QUIET)
10373
if (DOXYGEN_FOUND)
104-
add_custom_target(doc
74+
add_custom_target(
75+
doc
10576
COMMAND "${CMAKE_COMMAND} -E remove_directory html"
106-
COMMAND "${DOXYGEN_EXECUTABLE} Doxyfile" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}")
77+
COMMAND "${DOXYGEN_EXECUTABLE} Doxyfile" WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}"
78+
)
10779
endif()

README

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
OpenHantek is an oscilloscope software for Hantek DSO-6022 USB devices.
2+
The source code and detailed developer documentation is available at:
3+
https://github.com/OpenHantek/OpenHantek6022 (oscilloscope software)
4+
https://github.com/Ho-Ro/Hantek6022API (hardware, firmware and tools)

cmake/CPackInfos.cmake

+40-8
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ else()
5151
RESULT_VARIABLE CMD_RESULT
5252
OUTPUT_VARIABLE VCS_URL
5353
OUTPUT_STRIP_TRAILING_WHITESPACE
54-
)
54+
)
5555
# message( STATUS "VCS_URL: ${VCS_URL}")
5656

5757
set(ENV{LANG} "en_US")
@@ -64,15 +64,14 @@ else()
6464
RESULT_VARIABLE CMD_RESULT
6565
OUTPUT_VARIABLE CHANGELOG
6666
OUTPUT_STRIP_TRAILING_WHITESPACE
67-
)
67+
)
6868
endif()
6969
file(WRITE "${CMAKE_BINARY_DIR}/changelog" "${CHANGELOG}")
7070
endif()
7171

7272
string(TIMESTAMP DATE_VERSION "%Y%m%d")
7373
string(TIMESTAMP CURRENT_TIME "%Y%m%d_%H:%M")
7474

75-
7675
if (UNIX)
7776
execute_process(
7877
COMMAND uname -m
@@ -82,12 +81,45 @@ if (UNIX)
8281
)
8382
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
8483
set(CPACK_GENERATOR TGZ)
85-
if (NOT APPLE)
84+
85+
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
8686
set(CPACK_TARGET "")
8787
set(CPACK_GENERATOR ${CPACK_GENERATOR} DEB RPM)
88-
else()
88+
install(
89+
FILES utils/udev_rules/60-hantek.rules
90+
DESTINATION lib/udev/rules.d
91+
)
92+
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
93+
set(CPACK_TARGET "freebsd_")
94+
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/local")
95+
install(
96+
FILES utils/devd_rules_freebsd/openhantek.conf
97+
DESTINATION etc/devd
98+
)
99+
elseif(APPLE)
89100
set(CPACK_TARGET "osx_")
90101
endif()
102+
103+
# install documentation
104+
FILE(GLOB PDF "docs/*.pdf")
105+
install(
106+
FILES CHANGELOG LICENSE README ${PDF}
107+
DESTINATION share/doc/openhantek
108+
)
109+
# install application starter and icons
110+
install(
111+
FILES utils/applications/OpenHantek.desktop
112+
DESTINATION share/applications
113+
)
114+
install(
115+
FILES openhantek/res/images/OpenHantek.png
116+
DESTINATION share/icons/hicolor/48x48/apps
117+
)
118+
install(
119+
FILES openhantek/res/images/OpenHantek.svg
120+
DESTINATION share/icons/hicolor/scalable/apps
121+
)
122+
91123
elseif(WIN32)
92124
set(CPACK_TARGET "win_")
93125
set(CPACK_GENERATOR ${CPACK_GENERATOR} ZIP NSIS)
@@ -98,19 +130,19 @@ elseif(WIN32)
98130
endif()
99131
endif()
100132

133+
message(STATUS "Packege: ${CPACK_GENERATOR}")
101134
message(STATUS "Architecture: ${CPACK_ARCH}")
102135

103136
set(CPACK_PACKAGE_NAME "openhantek")
104137
string(TOLOWER ${CPACK_PACKAGE_NAME} CPACK_PACKAGE_NAME)
105-
#set(CPACK_PACKAGE_VERSION "${DATE_VERSION}-${GIT_COMMIT_HASH}")
106138
set(CPACK_PACKAGE_VERSION "${DATE_VERSION}-${VCS_REVISION}")
107139
set(CPACK_PACKAGE_CONTACT "contact@openhantek.org")
108140
set(CPACK_PACKAGE_VENDOR "OpenHantek Community")
109141
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Digital oscilloscope software for Hantek DSO6022 USB hardware")
110142
set(CPACK_PACKAGE_DESCRIPTION "OpenHantek is an oscilloscope software for\nVoltcraft/Darkwire/Protek/Acetech/Hantek USB devices")
111143
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/readme.md")
112-
if (EXISTS "${CMAKE_SOURCE_DIR}/COPYING")
113-
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
144+
if (EXISTS "${CMAKE_SOURCE_DIR}/LICENSE")
145+
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
114146
endif()
115147

116148
set(CPACK_STRIP_FILES 1)

openhantek/CMakeLists.txt

+1-10
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,7 @@ if(NOT WIN32)
9797
endif()
9898

9999
# install commands
100-
if (APPLE AND BUILD_MACOSX_BUNDLE)
101-
#set_target_properties(${PROJECT_NAME} PROPERTIES
102-
# MACOSX_BUNDLE_NAME "${PROJECT_NAME}"
103-
# MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_NAME}"
104-
#)
105-
# no install, it's already in openhantek/OpenHantek.app/...
106-
# install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.app/Contents/MacOS/${PROJECT_NAME})
107-
# install(TARGETS ${PROJECT_NAME} BUNDLE DESTINATION ${CMAKE_BINARY_DIR}) # -> build
108-
else()
100+
if ( NOT (APPLE AND BUILD_MACOSX_BUNDLE) )
109101
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION "bin")
110102
endif()
111103
include(../cmake/copy_qt5_dlls_to_bin_dir.cmake)
112-

openhantek/src/OH_BUILD.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
// Do not edit, will be re-created at each commit!
2-
#define OH_BUILD "20200710 build 716"
2+
#define OH_BUILD "20200710 build 717"

0 commit comments

Comments
 (0)