@@ -67,32 +67,30 @@ function(tray_copy_default_icons target_name)
6767 endforeach ()
6868endfunction ()
6969
70- if (WIN32 )
71- list (APPEND TRAY_SOURCES "${CMAKE_CURRENT_SOURCE_DIR } /src/tray_windows.c" )
70+ find_package (Qt6 COMPONENTS Widgets Svg )
71+ if (Qt6_FOUND)
72+ set (TRAY_QT_VERSION 6)
7273else ()
73- if (UNIX )
74- if (APPLE )
75- find_library (COCOA Cocoa REQUIRED )
76- list (APPEND TRAY_SOURCES "${CMAKE_CURRENT_SOURCE_DIR } /src/tray_darwin.m" )
77- else ()
78- find_package (LibNotify REQUIRED )
79- find_package (Qt6 COMPONENTS Widgets Svg )
80- if (Qt6_FOUND)
81- set (TRAY_QT_VERSION 6)
82- else ()
83- find_package (Qt5 REQUIRED COMPONENTS Widgets Svg )
84- set (TRAY_QT_VERSION 5)
85- endif ()
86- set (TRAY_QT_VERSION # cmake-lint: disable=C0103
87- "${TRAY_QT_VERSION} "
88- CACHE INTERNAL "Qt major version selected by tray"
89- )
90- set (CMAKE_AUTOMOC ON )
91- list (APPEND TRAY_SOURCES
92- "${CMAKE_CURRENT_SOURCE_DIR } /src/tray_linux.cpp"
93- "${CMAKE_CURRENT_SOURCE_DIR } /src/QtTrayMenu.cpp"
94- )
95- endif ()
74+ find_package (Qt5 REQUIRED COMPONENTS Widgets Svg )
75+ set (TRAY_QT_VERSION 5)
76+ endif ()
77+ set (TRAY_QT_VERSION # cmake-lint: disable=C0103
78+ "${TRAY_QT_VERSION} "
79+ CACHE INTERNAL "Qt major version selected by tray"
80+ )
81+ set (CMAKE_AUTOMOC ON )
82+ list (APPEND TRAY_SOURCES
83+ "${CMAKE_CURRENT_SOURCE_DIR } /src/tray_qt.cpp"
84+ "${CMAKE_CURRENT_SOURCE_DIR } /src/QtTrayMenu.cpp"
85+ )
86+
87+ if (UNIX AND NOT APPLE )
88+ find_package (LibNotify )
89+ if (LIBNOTIFY_FOUND)
90+ list (APPEND TRAY_COMPILE_DEFINITIONS TRAY_USE_LIBNOTIFY=1)
91+ list (APPEND TRAY_EXTERNAL_LIBRARIES ${LIBNOTIFY_LIBRARIES} )
92+ list (APPEND TRAY_EXTERNAL_DIRECTORIES ${LIBNOTIFY_LIBRARY_DIRS} )
93+ list (APPEND TRAY_EXTERNAL_INCLUDES ${LIBNOTIFY_INCLUDE_DIRS} )
9694 endif ()
9795endif ()
9896
@@ -104,27 +102,32 @@ target_include_directories(${PROJECT_NAME}
104102 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /src >
105103 $<INSTALL_INTERFACE :include >)
106104
107- if (WIN32 )
108- if (MSVC )
109- list (APPEND TRAY_COMPILE_OPTIONS "/MT$<$<CONFIG :Debug >:d >" )
110- endif ()
105+ if (WIN32 AND MSVC )
106+ list (APPEND TRAY_COMPILE_OPTIONS "/MT$<$<CONFIG :Debug >:d >" )
107+ endif ()
108+
109+ if (TRAY_QT_VERSION EQUAL 6)
110+ list (APPEND TRAY_EXTERNAL_LIBRARIES Qt6::Widgets Qt6::Svg)
111111else ()
112- if (UNIX )
113- if (APPLE )
114- list (APPEND TRAY_EXTERNAL_LIBRARIES ${COCOA} )
115- else ()
116- if (TRAY_QT_VERSION EQUAL 6)
117- list (APPEND TRAY_EXTERNAL_LIBRARIES Qt6::Widgets Qt6::Svg)
118- else ()
119- list (APPEND TRAY_EXTERNAL_LIBRARIES Qt5::Widgets Qt5::Svg)
120- endif ()
121- list (APPEND TRAY_LIBNOTIFY=1)
122- list (APPEND TRAY_EXTERNAL_LIBRARIES ${LIBNOTIFY_LIBRARIES} )
123-
124- include_directories (SYSTEM ${LIBNOTIFY_INCLUDE_DIRS} )
125- link_directories (${LIBNOTIFY_LIBRARY_DIRS} )
112+ list (APPEND TRAY_EXTERNAL_LIBRARIES Qt5::Widgets Qt5::Svg)
113+ endif ()
114+
115+ if (TRAY_EXTERNAL_INCLUDES)
116+ target_include_directories (${PROJECT_NAME }
117+ SYSTEM PRIVATE
118+ ${TRAY_EXTERNAL_INCLUDES} )
119+ endif ()
120+
121+ if (TRAY_COMPILE_DEFINITIONS)
122+ target_compile_definitions (${PROJECT_NAME } PRIVATE ${TRAY_COMPILE_DEFINITIONS} )
123+ endif ()
124+
125+ if (TRAY_EXTERNAL_DIRECTORIES)
126+ foreach (TRAY_EXTERNAL_DIRECTORY IN LISTS TRAY_EXTERNAL_DIRECTORIES)
127+ if (TRAY_EXTERNAL_DIRECTORY)
128+ target_link_directories (${PROJECT_NAME } PRIVATE "${TRAY_EXTERNAL_DIRECTORY} " )
126129 endif ()
127- endif ()
130+ endforeach ()
128131endif ()
129132
130133add_library (tray::tray ALIAS ${PROJECT_NAME } )
@@ -142,7 +145,6 @@ if(TRAY_IS_TOP_LEVEL)
142145endif ()
143146
144147target_compile_options (${PROJECT_NAME } PRIVATE ${TRAY_COMPILE_OPTIONS} )
145- target_link_directories (${PROJECT_NAME } PRIVATE ${TRAY_EXTERNAL_DIRECTORIES} )
146148target_link_libraries (${PROJECT_NAME } PRIVATE ${TRAY_EXTERNAL_LIBRARIES} )
147149
148150#
0 commit comments