You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lxqt-panel-packaging/CMakeLists.txt

254 lines
7.4 KiB

cmake_minimum_required(VERSION 2.8.11)
project(lxqt-panel)
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
# additional cmake files
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
macro(setByDefault VAR_NAME VAR_VALUE)
if(NOT DEFINED ${VAR_NAME})
set (${VAR_NAME} ${VAR_VALUE})
endif(NOT DEFINED ${VAR_NAME})
endmacro()
# use gcc visibility feature to decrease unnecessary exported symbols
if (CMAKE_COMPILER_IS_GNUCXX)
# set visibility to hidden to hide symbols, unlesss they're exporeted manually in the code
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-no-undefined")
endif()
#########################################################################
add_definitions (-Wall)
include(GNUInstallDirs)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# set(CMAKE_AUTOMOC ON)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5DBus REQUIRED)
find_package(Qt5LinguistTools REQUIRED)
find_package(Qt5Xml REQUIRED)
find_package(Qt5X11Extras REQUIRED)
find_package(KF5WindowSystem REQUIRED)
find_package(lxqt REQUIRED)
find_package(Qt5Xdg REQUIRED QUIET)
find_package(lxqt-globalkeys REQUIRED)
find_package(lxqt-globalkeys-ui REQUIRED)
include(${LXQT_USE_FILE})
include(${QTXDG_USE_FILE})
include(${LXQT_GLOBALKEYS_USE_FILE})
include(${LXQT_GLOBALKEYS_UI_USE_FILE})
include(LXQtTranslate)
include_directories(
${LXQT_INCLUDE_DIRS}
${QTXDG_INCLUDE_DIRS}
${Qt5X11Extras_INCLUDE_DIRS}
)
# Warning: This must be before add_subdirectory(panel). Move with caution.
set(PLUGIN_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/lxqt-panel")
add_definitions(-DPLUGIN_DIR=\"${PLUGIN_DIR}\")
message(STATUS "Panel plugins location: ${PLUGIN_DIR}")
add_subdirectory(panel)
#########################################################################
# Plugin system
# You can enable/disable building of the plugin using cmake options.
# cmake -DCLOCK_PLUGIN=Yes .. # Enable clock plugin
# cmake -DCLOCK_PLUGIN=No .. # Disable clock plugin
include("cmake/BuildPlugin.cmake")
set(ENABLED_PLUGINS)
setByDefault(CLOCK_PLUGIN Yes)
if(CLOCK_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Clock")
add_subdirectory(plugin-clock)
endif()
setByDefault(COLORPICKER_PLUGIN Yes)
if(COLORPICKER_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Color Picker")
add_subdirectory(plugin-colorpicker)
endif()
setByDefault(CPULOAD_PLUGIN Yes)
if(CPULOAD_PLUGIN)
find_library(STATGRAB_LIB statgrab)
if(NOT(${STATGRAB_LIB} MATCHES "NOTFOUND"))
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Cpu Load")
add_subdirectory(plugin-cpuload)
else()
message(STATUS "")
message(STATUS "CPU Load plugin requires libstatgrab")
message(STATUS "")
endif()
endif()
setByDefault(DOM_PLUGIN Yes)
if(DOM_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "DOM")
add_subdirectory(plugin-dom)
endif(DOM_PLUGIN)
setByDefault(DESKTOPSWITCH_PLUGIN Yes)
if(DESKTOPSWITCH_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Desktop Switcher")
add_subdirectory(plugin-desktopswitch)
endif()
setByDefault(KBINDICATOR_PLUGIN Yes)
if(KBINDICATOR_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Keyboard Indicator")
add_subdirectory(plugin-kbindicator)
endif(KBINDICATOR_PLUGIN)
setByDefault(MAINMENU_PLUGIN Yes)
if(MAINMENU_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Application menu")
add_subdirectory(plugin-mainmenu)
endif()
setByDefault(MOUNT_PLUGIN Yes)
if(MOUNT_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Mount")
find_package(lxqtmount REQUIRED)
include(${LXQTMOUNT_USE_FILE})
add_subdirectory(plugin-mount)
endif(MOUNT_PLUGIN)
setByDefault(QUICKLAUNCH_PLUGIN Yes)
if(QUICKLAUNCH_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Quicklaunch")
add_subdirectory(plugin-quicklaunch)
endif()
setByDefault(SCREENSAVER_PLUGIN Yes)
if(SCREENSAVER_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Screensaver")
add_subdirectory(plugin-screensaver)
endif()
setByDefault(SENSORS_PLUGIN Yes)
if(SENSORS_PLUGIN)
find_library(SENSORS_LIB sensors)
if(NOT(${SENSORS_LIB} MATCHES "NOTFOUND"))
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Sensors")
add_subdirectory(plugin-sensors)
else()
message(STATUS "")
message(STATUS "Sensors plugin requires lm_sensors")
message(STATUS "")
endif()
endif()
setByDefault(SHOWDESKTOP_PLUGIN Yes)
if(SHOWDESKTOP_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Show Desktop")
add_subdirectory(plugin-showdesktop)
endif()
setByDefault(NETWORKMONITOR_PLUGIN Yes)
if(NETWORKMONITOR_PLUGIN)
find_library(STATGRAB_LIB statgrab)
if(NOT(${STATGRAB_LIB} MATCHES "NOTFOUND"))
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Network Monitor")
add_subdirectory(plugin-networkmonitor)
else()
message(STATUS "")
message(STATUS "Network Monitor plugin requires libstatgrab")
message(STATUS "")
endif()
endif()
setByDefault(SYSSTAT_PLUGIN Yes)
if(SYSSTAT_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "System Stats")
add_subdirectory(plugin-sysstat)
endif(SYSSTAT_PLUGIN)
setByDefault(TASKBAR_PLUGIN Yes)
if(TASKBAR_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Taskbar")
add_subdirectory(plugin-taskbar)
endif()
setByDefault(TRAY_PLUGIN Yes)
if(TRAY_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "System Tray")
add_subdirectory(plugin-tray)
endif()
setByDefault(VOLUME_PLUGIN Yes)
setByDefault(VOLUME_USE_PULSEAUDIO Yes)
setByDefault(VOLUME_USE_ALSA Yes)
if(VOLUME_PLUGIN)
if (VOLUME_USE_PULSEAUDIO)
find_package(PulseAudio)
endif(VOLUME_USE_PULSEAUDIO)
if(VOLUME_USE_ALSA)
find_package(ALSA)
endif()
if(PULSEAUDIO_FOUND OR ALSA_FOUND)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "Volume")
message(STATUS "")
message(STATUS "Volume plugin will be built")
message(STATUS " ALSA: ${ALSA_FOUND}")
message(STATUS " PulseAudio: ${PULSEAUDIO_FOUND}")
message(STATUS "")
add_subdirectory(plugin-volume)
else()
message(STATUS "")
message(STATUS "Volume plugin requires pulseaudio or alsa")
message(STATUS " ALSA: ${ALSA_FOUND}")
message(STATUS " PulseAudio: ${PULSEAUDIO_FOUND}")
message(STATUS "")
endif()
endif()
setByDefault(WORLDCLOCK_PLUGIN Yes)
if(WORLDCLOCK_PLUGIN)
set(ENABLED_PLUGINS ${ENABLED_PLUGINS} "World Clock")
add_subdirectory(plugin-worldclock)
endif(WORLDCLOCK_PLUGIN)
#########################################################################
message(STATUS "**************** The following plugins will be built ****************")
foreach (PLUGIN_STR ${ENABLED_PLUGINS})
message(STATUS " ${PLUGIN_STR}")
endforeach()
message(STATUS "*********************************************************************")
# building tarball with CPack -------------------------------------------------
include(InstallRequiredSystemLibraries)
set(CPACK_PACKAGE_VERSION_MAJOR ${LXQT_MAJOR_VERSION})
set(CPACK_PACKAGE_VERSION_MINOR ${LXQT_MINOR_VERSION})
set(CPACK_PACKAGE_VERSION_PATCH ${LXQT_PATCH_VERSION})
set(CPACK_GENERATOR TBZ2)
set(CPACK_SOURCE_GENERATOR TBZ2)
set(CPACK_SOURCE_IGNORE_FILES /build/;.gitignore;.*~;.git;.kdev4;temp)
include(CPack)