CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR) FIND_PACKAGE(Qt4 REQUIRED) FIND_PACKAGE(Boost REQUIRED) SET(KEYCHAIN-SOURCES keychain.cpp default_keychain.cpp) INCLUDE(${QT_USE_FILE}) IF(APPLE) FIND_LIBRARY(SECURITY Security) LIST(APPEND KEYCHAIN-SOURCES mac_keychain.cpp) ELSEIF(UNIX) # Find Gnome Keyring FIND_PACKAGE(PkgConfig REQUIRED) pkg_check_modules(GNOME_KEYRING gnome-keyring-1>=0.8) IF(NOT GNOME_KEYRING_FOUND) MESSAGE("Gnome keyring not found") ADD_DEFINITIONS(-DNO_GNOME_KEYRING) ELSE(NOT GNOME_KEYRING_FOUND) pkg_check_modules(GLIB2 REQUIRED glib-2.0) LIST(APPEND KEYCHAIN-SOURCES gnome_keychain.cpp) ENDIF(NOT GNOME_KEYRING_FOUND) # Find KDE4 KWallet dbus interface FIND_FILE(KWALLET_INTERFACE org.kde.KWallet.xml PATHS /usr/share/dbus-1/interfaces) IF(${KWALLET_INTERFACE} MATCHES "KWALLET_INTERFACE-NOTFOUND") SET(KWALLET_INTERFACE_NOTFOUND TRUE) ENDIF(${KWALLET_INTERFACE} MATCHES "KWALLET_INTERFACE-NOTFOUND") IF(KWALLET_INTERFACE_NOTFOUND) MESSAGE("KWallet interface not found") ADD_DEFINITIONS(-DNO_KWALLET) ELSE(KWALLET_INTERFACE_NOTFOUND) LIST(APPEND KEYCHAIN-SOURCES kwallet_keychain.cpp) SET(QT_USE_QTDBUS 1) QT4_ADD_DBUS_INTERFACE(KWALLET_INTERFACE-SOURCES ${KWALLET_INTERFACE} kwallet) ENDIF(KWALLET_INTERFACE_NOTFOUND) ENDIF(APPLE) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${GNOME_KEYRING_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR}/.. ) ADD_LIBRARY(keychain STATIC ${KEYCHAIN-SOURCES} ${KWALLET_INTERFACE-SOURCES}) TARGET_LINK_LIBRARIES(keychain ${QT_LIBRARIES} ${SECURITY} ${GNOME_KEYRING_LIBRARIES} ) IF(NOT KWALLET_INTERFACE_NOTFOUND) TARGET_LINK_LIBRARIES(keychain ${QT_DBUS_LIBRARY} ${QT_QTDBUS_LIBRARY} ) INCLUDE_DIRECTORIES(${QT_QTDBUS_INCLUDE_DIR}) ENDIF(NOT KWALLET_INTERFACE_NOTFOUND) LINK_DIRECTORIES(${GNOME_KEYRING_LIBRARY_DIRS})