diff --git a/cmake/modules/FindNetworkManager.cmake b/cmake/modules/FindNetworkManager.cmake --- a/cmake/modules/FindNetworkManager.cmake +++ b/cmake/modules/FindNetworkManager.cmake @@ -9,34 +9,52 @@ # Copyright (c) 2006, Alexander Neundorf, # Copyright (c) 2007, Will Stephenson, +# Copyright (c) 2015-2018, Jan Grulich, + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. # -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. -IF (NETWORKMANAGER_INCLUDE_DIRS AND NM-UTIL_INCLUDE_DIRS) - # in cache already - SET(NetworkManager_FIND_QUIETLY TRUE) -ENDIF (NETWORKMANAGER_INCLUDE_DIRS AND NM-UTIL_INCLUDE_DIRS) +IF (NETWORKMANAGER_INCLUDE_DIRS) + # in cache already + SET(NetworkManager_FIND_QUIETLY TRUE) +ENDIF (NETWORKMANAGER_INCLUDE_DIRS) IF (NOT WIN32) - # use pkg-config to get the directories and then use these values - # in the FIND_PATH() and FIND_LIBRARY() calls - find_package(PkgConfig) - PKG_SEARCH_MODULE( NETWORKMANAGER NetworkManager ) - PKG_SEARCH_MODULE( NM-UTIL libnm-util ) + find_package(PkgConfig) + PKG_SEARCH_MODULE(NETWORKMANAGER libnm) + IF (NETWORKMANAGER_FOUND) + IF (NetworkManager_FIND_VERSION AND ("${NETWORKMANAGER_VERSION}" VERSION_LESS "${NetworkManager_FIND_VERSION}")) + MESSAGE(FATAL_ERROR "NetworkManager ${NETWORKMANAGER_VERSION} is too old, need at least ${NetworkManager_FIND_VERSION}") + ELSE () + IF (NOT NetworkManager_FIND_QUIETLY) + MESSAGE(STATUS "Found NetworkManager: ${NETWORKMANAGER_LIBRARY_DIRS}") + ENDIF () + ENDIF () + ELSE () + MESSAGE(FATAL_ERROR "Could NOT find NetworkManager, check FindPkgConfig output above!") + ENDIF () ENDIF (NOT WIN32) -IF (NETWORKMANAGER_FOUND AND NM-UTIL_FOUND) - IF (NOT NetworkManager_FIND_QUIETLY) - MESSAGE(STATUS "Found NetworkManager ${NETWORKMANAGER_VERSION}: ${NETWORKMANAGER_LIBRARY_DIRS}") - MESSAGE(STATUS "Found libnm-util: ${NM-UTIL_LIBRARY_DIRS}") - ENDIF (NOT NetworkManager_FIND_QUIETLY) -ELSE (NETWORKMANAGER_FOUND AND NM-UTIL_FOUND) - IF (NetworkManager_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could NOT find NetworkManager or libnm-util, check FindPkgConfig output above!") - ENDIF (NetworkManager_FIND_REQUIRED) -ENDIF (NETWORKMANAGER_FOUND AND NM-UTIL_FOUND) - -MARK_AS_ADVANCED(NETWORKMANAGER_INCLUDE_DIRS NM-UTIL_INCLUDE_DIRS) - +MARK_AS_ADVANCED(NETWORKMANAGER_INCLUDE_DIRS) diff --git a/src/solid-networkstatus/kded/CMakeLists.txt b/src/solid-networkstatus/kded/CMakeLists.txt --- a/src/solid-networkstatus/kded/CMakeLists.txt +++ b/src/solid-networkstatus/kded/CMakeLists.txt @@ -8,20 +8,18 @@ wicdcustomtypes.cpp ) -find_package(NetworkManager 0.7.0) +find_package(NetworkManager 1.0.0) set_package_properties(NetworkManager PROPERTIES DESCRIPTION "The NetworkManager headers" URL "http://projects.gnome.org/NetworkManager" TYPE OPTIONAL PURPOSE "Needed for kded's networkstatus module" ) if(NETWORKMANAGER_FOUND) - if(NM_0_7) - message(STATUS "Adding in-process NetworkManager service-wart to kded module") - set(kded_networkstatus_PART_SRCS ${kded_networkstatus_PART_SRCS} networkmanagerstatus.cpp) - include_directories(${NETWORKMANAGER_INCLUDE_DIRS}) - add_definitions(-DNM_BACKEND_ENABLED) - endif() + message(STATUS "Adding in-process NetworkManager service-wart to kded module") + set(kded_networkstatus_PART_SRCS ${kded_networkstatus_PART_SRCS} networkmanagerstatus.cpp) + include_directories(${NETWORKMANAGER_INCLUDE_DIRS}) + add_definitions(-DNM_BACKEND_ENABLED) endif() diff --git a/src/solid-networkstatus/kded/networkmanagerstatus.h b/src/solid-networkstatus/kded/networkmanagerstatus.h --- a/src/solid-networkstatus/kded/networkmanagerstatus.h +++ b/src/solid-networkstatus/kded/networkmanagerstatus.h @@ -34,11 +34,11 @@ public: NetworkManagerStatus( QObject *parent = 0 ); - /* reimp */ Solid::Networking::Status status() const; - /* reimp */ bool isSupported() const; - /* reimp */ QString serviceName() const; + Solid::Networking::Status status() const override; + bool isSupported() const override; + QString serviceName() const override; -private slots: +private Q_SLOTS: void nmStateChanged( uint nmState ); private: diff --git a/src/solid-networkstatus/kded/networkmanagerstatus.cpp b/src/solid-networkstatus/kded/networkmanagerstatus.cpp --- a/src/solid-networkstatus/kded/networkmanagerstatus.cpp +++ b/src/solid-networkstatus/kded/networkmanagerstatus.cpp @@ -28,11 +28,9 @@ #include -#include - -#if !defined(NM_CHECK_VERSION) - #define NM_CHECK_VERSION(x,y,z) 0 -#endif +#undef signals +#include +#define signals Q_SIGNALS NetworkManagerStatus::NetworkManagerStatus( QObject *parent ) : SystemStatusInterface( parent ), @@ -85,23 +83,17 @@ case NM_STATE_CONNECTING: status = Solid::Networking::Connecting; break; -#if NM_CHECK_VERSION(0,8,992) case NM_STATE_CONNECTED_LOCAL: case NM_STATE_CONNECTED_SITE: case NM_STATE_CONNECTED_GLOBAL: -#else - case NM_STATE_CONNECTED: -#endif status = Solid::Networking::Connected; break; case NM_STATE_DISCONNECTED: status = Solid::Networking::Unconnected; break; -#if NM_CHECK_VERSION(0,8,992) case NM_STATE_DISCONNECTING: status = Solid::Networking::Disconnecting; break; -#endif } return status;