File 13.patch of Package srsgui
From 8cf7f845b764c12c1dba183b730d5faecd232bd3 Mon Sep 17 00:00:00 2001
From: Nikita Pushchin <vbnekit@p5y.su>
Date: Sat, 13 Feb 2021 18:52:28 +0300
Subject: [PATCH 1/2] decoration changes
---
cmake/modules/FindQwt.cmake | 2 +-
src/CMakeLists.txt | 4 ----
2 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/cmake/modules/FindQwt.cmake b/cmake/modules/FindQwt.cmake
index 78060e87..fdf55828 100755
--- a/cmake/modules/FindQwt.cmake
+++ b/cmake/modules/FindQwt.cmake
@@ -101,7 +101,7 @@ IF (QWT_LIBRARY)
ELSE(WIN32 AND NOT CYGWIN)
- SET(QWT_LIBRARIES ${QWT_LIBRARY} CACHE DOC "QWT library files")
+ SET(QWT_LIBRARIES ${QWT_LIBRARY} CACHE STRING "QWT library files")
ENDIF(WIN32 AND NOT CYGWIN)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 449d3e55..9da6d9e3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -54,7 +54,3 @@ ELSE(Qt5_FOUND AND QWT_FOUND AND AND QWT_MAJOR_VERSION EQUAL 6)
MESSAGE(STATUS " QT5 or Qwt6 not found. srsGUI library is not generated")
ENDIF(Qt5_FOUND AND QWT_FOUND AND QWT_MAJOR_VERSION EQUAL 6)
-
-
-
-
From dcaef6ef767cb5efa9943f069f24aa07f2718c6d Mon Sep 17 00:00:00 2001
From: Nikita Pushchin <vbnekit@p5y.su>
Date: Sat, 13 Feb 2021 19:04:32 +0300
Subject: [PATCH 2/2] cmake package autogeneration enabled
This feature is made according to the following instructions: https://cmake.org/cmake/help/git-stage/guide/importing-exporting/index.html
Installed srsgui library can be easily imported from another cmake-project:
find_package(srsgui)
target_link_libraries(my_application PRIVATE srsgui::srsgui)
---
CMakeLists.txt | 17 ++++++++++++++++-
Config.cmake.in | 7 +++++++
include/CMakeLists.txt | 1 +
src/CMakeLists.txt | 16 ++++++++--------
4 files changed, 32 insertions(+), 9 deletions(-)
create mode 100644 Config.cmake.in
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 23b149ec..604fab44 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@ ENDIF(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
########################################################################
# Project setup
########################################################################
-CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
+CMAKE_MINIMUM_REQUIRED (VERSION 3.15)
PROJECT (srsGUI)
ENABLE_TESTING()
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules")
@@ -113,3 +113,18 @@ ENDMACRO(SG_SET_PIC)
ADD_SUBDIRECTORY(include)
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(test)
+
+
+########################################################################
+# Add the exports
+########################################################################
+include("CMakePackageConfigHelpers")
+install(EXPORT "srsguiTargets" FILE "srsguiTargets.cmake" NAMESPACE "srsgui::" DESTINATION "${LIBRARY_DIR}/cmake/srsgui")
+
+target_include_directories("srsgui" PUBLIC "$<INSTALL_INTERFACE:include>")
+
+write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/srsguiConfigVersion.cmake" VERSION "2.0" COMPATIBILITY AnyNewerVersion)
+configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/srsguiConfig.cmake" INSTALL_DESTINATION "${LIBRARY_DIR}/cmake/srsgui")
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/srsguiConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/srsguiConfigVersion.cmake" DESTINATION "${LIBRARY_DIR}/cmake/srsgui")
+export(EXPORT "srsguiTargets" FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/srsguiTargets.cmake" NAMESPACE "srsgui::")
diff --git a/Config.cmake.in b/Config.cmake.in
new file mode 100644
index 00000000..f8ce7019
--- /dev/null
+++ b/Config.cmake.in
@@ -0,0 +1,7 @@
+@PACKAGE_INIT@
+
+find_package(Qt5 COMPONENTS Widgets REQUIRED)
+
+include("${CMAKE_CURRENT_LIST_DIR}/srsguiTargets.cmake")
+
+check_required_components(srsgui)
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index cb762492..0d6b4423 100755
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -2,6 +2,7 @@
# Install headers
########################################################################
INSTALL(DIRECTORY srsgui
+ EXPORT "srsguiTargets"
DESTINATION "${INCLUDE_DIR}"
FILES_MATCHING PATTERN "*.h"
PATTERN ".svn" EXCLUDE
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9da6d9e3..695532c0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -5,10 +5,7 @@
find_package(Qt5 COMPONENTS Widgets REQUIRED)
FIND_PACKAGE(Qwt)
-IF(Qt5_FOUND AND QWT_FOUND)
- INCLUDE_DIRECTORIES(${QWT_INCLUDE_DIRS})
-ENDIF(Qt5_FOUND AND QWT_FOUND)
-
+
########################################################################
# Build the graphics library
########################################################################
@@ -40,11 +37,14 @@ IF(Qt5_FOUND AND QWT_FOUND AND QWT_MAJOR_VERSION EQUAL 6)
QT5_WRAP_CPP(textedit textedit/TextEditWidget.h textedit/TextEditWrapper.h)
QT5_WRAP_CPP(keyvalue keyvalue/KeyValueWidget.h keyvalue/KeyValueWrapper.h)
- INCLUDE_DIRECTORIES(common complexplot realplot scatterplot waterfallplot textedit keyvalue ${Boost_INCLUDE_DIRS})
-
ADD_LIBRARY(srsgui SHARED ${eventwraps} ${lineplotwraps} ${pointplotwraps} ${spectrogramplotwraps} ${complex} ${real} ${scatter} ${waterfall} ${textedit} ${keyvalue} ${SOURCES_ALL} )
- TARGET_LINK_LIBRARIES(srsgui pthread Qt5::Widgets ${QWT_LIBRARIES})
- INSTALL(TARGETS srsgui DESTINATION ${LIBRARY_DIR})
+ INSTALL(TARGETS srsgui EXPORT "srsguiTargets" DESTINATION ${LIBRARY_DIR})
+
+ TARGET_LINK_LIBRARIES(srsgui PRIVATE pthread)
+ TARGET_LINK_LIBRARIES(srsgui PUBLIC Qt5::Widgets ${QWT_LIBRARIES})
+ TARGET_INCLUDE_DIRECTORIES("srsgui" PUBLIC ${QWT_INCLUDE_DIRS})
+ TARGET_INCLUDE_DIRECTORIES("srsgui" PRIVATE common complexplot realplot scatterplot waterfallplot textedit keyvalue ${Boost_INCLUDE_DIRS})
+
SG_SET_PIC(srsgui)
MESSAGE(STATUS " srsGUI library will be installed.")