2010-01-01 23:49:41 +00:00
#
# Conky, a system monitor, based on torsmo
#
# Please see COPYING for details
#
2018-05-12 16:03:00 +00:00
# Copyright (c) 2005-2018 Brenden Matthews, et. al. (see AUTHORS)
2010-01-01 23:49:41 +00:00
# All rights reserved.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
2009-12-05 21:04:31 +00:00
2009-12-08 04:46:49 +00:00
if ( NOT CMAKE_BUILD_TYPE )
2009-12-19 19:39:16 +00:00
if ( MAINTAINER_MODE )
set ( CMAKE_BUILD_TYPE Debug CACHE STRING
" C h o o s e t h e t y p e o f b u i l d , o p t i o n s a r e : N o n e D e b u g R e l e a s e R e l W i t h D e b I n f o M i n S i z e R e l . "
F O R C E )
else ( MAINTAINER_MODE )
set ( CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
" C h o o s e t h e t y p e o f b u i l d , o p t i o n s a r e : N o n e D e b u g R e l e a s e R e l W i t h D e b I n f o M i n S i z e R e l . "
F O R C E )
endif ( MAINTAINER_MODE )
2009-12-08 04:46:49 +00:00
endif ( NOT CMAKE_BUILD_TYPE )
2009-12-11 16:15:44 +00:00
# -std options for all build types
2018-12-22 21:16:28 +00:00
set ( CMAKE_C_FLAGS "-std=c99" CACHE STRING "Flags used by the C compiler during all build types." FORCE )
set ( CMAKE_CXX_FLAGS "-std=c++17" CACHE STRING "Flags used by the C++ compiler during all build types." FORCE )
2018-05-12 23:26:31 +00:00
set ( CMAKE_CXX_STANDARD 17 )
set ( CMAKE_CXX_STANDARD_REQUIRED ON )
2009-12-11 16:15:44 +00:00
2010-01-01 21:50:12 +00:00
if ( MAINTAINER_MODE )
# some extra debug flags when in 'maintainer mode'
2018-12-22 21:16:28 +00:00
if ( CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0 )
# Some flags are only supported on GCC >= 7.0, such as -Wimplicit-fallthrough=2
2018-12-23 18:28:03 +00:00
set ( CMAKE_C_FLAGS_DEBUG "-ggdb -Wall -W -Wextra -Wunused -Wdeclaration-after-statement -Wundef -Wendif-labels -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wold-style-definition -Winline -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -pedantic -Werror -Wno-unknown-pragmas -Wno-error=pragmas -Wimplicit-fallthrough=2" CACHE STRING "Flags used by the compiler during debug builds." FORCE )
set ( CMAKE_CXX_FLAGS_DEBUG "-ggdb -Wall -W -Wextra -Wunused -pedantic -Werror -Wno-format -Wno-unknown-pragmas -Wno-error=pragmas -Wimplicit-fallthrough=2" CACHE STRING "Flags used by the compiler during debug builds." FORCE )
2018-12-22 21:16:28 +00:00
else ( )
2018-12-23 18:28:03 +00:00
set ( CMAKE_C_FLAGS_DEBUG "-ggdb -Wall -W -Wextra -Wunused -Wdeclaration-after-statement -Wundef -Wendif-labels -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wold-style-definition -Winline -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -pedantic -Werror -Wno-unknown-pragmas -Wno-error=pragmas" CACHE STRING "Flags used by the compiler during debug builds." FORCE )
set ( CMAKE_CXX_FLAGS_DEBUG "-ggdb -Wall -W -Wextra -Wunused -pedantic -Werror -Wno-format -Wno-unknown-pragmas -Wno-error=pragmas" CACHE STRING "Flags used by the compiler during debug builds." FORCE )
2018-12-22 21:16:28 +00:00
endif ( )
2010-01-01 21:50:12 +00:00
endif ( MAINTAINER_MODE )
2009-12-08 04:46:49 +00:00
2018-05-13 17:33:18 +00:00
option ( CHECK_CODE_QUALITY "Check code formatting/quality with clang" false )
2009-12-08 04:46:49 +00:00
option ( RELEASE "Build release package" false )
mark_as_advanced ( RELEASE )
2009-12-19 19:39:16 +00:00
option ( MAINTAINER_MODE "Enable maintainer mode (builds docs)" false )
2010-11-13 18:45:04 +00:00
option ( BUILD_I18N "Enable if you want internationalization support" true )
if ( BUILD_I18N )
set ( LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale" CACHE STRING "Directory containing the locales" )
endif ( BUILD_I18N )
2010-10-30 22:02:02 +00:00
2009-12-05 21:04:31 +00:00
# Some standard options
2010-11-23 18:18:47 +00:00
set ( SYSTEM_CONFIG_FILE "/etc/conky/conky.conf" CACHE STRING "Default system-wide Conky configuration file" )
2009-12-05 21:04:31 +00:00
# use FORCE below to make sure this changes when CMAKE_INSTALL_PREFIX is modified
2016-01-07 06:42:14 +00:00
if ( NOT LIB_INSTALL_DIR )
2016-01-07 09:26:18 +00:00
set ( LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" )
2016-01-07 06:42:14 +00:00
endif ( NOT LIB_INSTALL_DIR )
set ( PACKAGE_LIBRARY_DIR "${LIB_INSTALL_DIR}/conky" CACHE STRING "Package library path (where Lua bindings are installed" FORCE )
2009-12-05 21:04:31 +00:00
set ( DEFAULTNETDEV "eth0" CACHE STRING "Default networkdevice" )
2018-08-07 15:54:01 +00:00
# Mac only override
if ( OS_DARWIN )
set ( DEFAULTNETDEV "en0" CACHE STRING "Default networkdevice" FORCE )
endif ( OS_DARWIN )
2014-11-17 21:06:27 +00:00
set ( XDG_CONFIG_FILE "$HOME/.config/conky/conky.conf" CACHE STRING "Configfile of the user (XDG)" )
2010-11-23 18:18:47 +00:00
set ( CONFIG_FILE "$HOME/.conkyrc" CACHE STRING "Configfile of the user" )
2009-12-05 21:04:31 +00:00
set ( MAX_USER_TEXT_DEFAULT "16384" CACHE STRING "Default maximum size of config TEXT buffer, i.e. below TEXT line." )
set ( DEFAULT_TEXT_BUFFER_SIZE "256" CACHE STRING "Default size used for temporary, static text buffers" )
2011-10-25 16:53:09 +00:00
set ( MAX_NET_INTERFACES "64" CACHE STRING "Maximum number of network devices" )
2009-12-05 21:04:31 +00:00
2009-12-06 19:43:12 +00:00
# Platform specific options
2009-12-08 04:46:49 +00:00
# Linux only
if ( OS_LINUX )
2009-12-06 19:43:12 +00:00
option ( BUILD_PORT_MONITORS "Build TCP portmon support" true )
2009-12-08 04:46:49 +00:00
option ( BUILD_IBM "Support for IBM/Lenovo notebooks" true )
option ( BUILD_HDDTEMP "Support for hddtemp" true )
# nvidia may also work on FreeBSD, not sure
option ( BUILD_NVIDIA "Enable nvidia support" false )
2011-02-09 17:49:52 +00:00
option ( BUILD_IPV6 "Enable if you want IPv6 support" true )
2009-12-08 04:46:49 +00:00
else ( OS_LINUX )
set ( BUILD_PORT_MONITORS false )
set ( BUILD_IBM false )
set ( BUILD_HDDTEMP false )
set ( BUILD_NVIDIA false )
2011-02-09 17:49:52 +00:00
set ( BUILD_IPV6 false )
2009-12-08 04:46:49 +00:00
endif ( OS_LINUX )
2009-12-06 19:43:12 +00:00
2018-08-07 15:54:01 +00:00
# macOS Only
if ( OS_DARWIN )
option ( BUILD_IPGFREQ "Enable cpu freq calculation based on Intel® Power Gadget; otherwise use constant factory value" false )
endif ( OS_DARWIN )
2009-12-05 21:04:31 +00:00
# Optional features etc
2009-12-11 04:37:56 +00:00
#
2018-08-07 15:54:01 +00:00
option ( BUILD_WLAN "Enable wireless support" false )
2010-01-17 02:00:51 +00:00
option ( BUILD_BUILTIN_CONFIG "Enable builtin default configuration" true )
2009-12-11 04:37:56 +00:00
2010-12-09 17:55:22 +00:00
option ( BUILD_IOSTATS "Enable disk I/O stats" true )
2010-11-19 13:27:18 +00:00
option ( BUILD_OLD_CONFIG "Enable support for the old syntax of configurations" true )
2009-12-11 04:37:56 +00:00
option ( BUILD_MATH "Enable math support" true )
option ( BUILD_NCURSES "Enable ncurses support" true )
2010-02-19 12:21:40 +00:00
if ( BUILD_NCURSES )
option ( LEAKFREE_NCURSES "Enable to hide false ncurses-memleaks in valgrind (works only when ncurses is compiled with --disable-leaks)" false )
else ( BUILD_NCURSES )
set ( LEAKFREE_NCURSES false CACHE BOOL "Enable to hide false ncurses-memleaks in valgrind (works only when ncurses is compiled with --disable-leaks)" FORCE )
endif ( BUILD_NCURSES )
2009-12-11 04:37:56 +00:00
2009-12-05 21:04:31 +00:00
option ( BUILD_X11 "Build X11 support" true )
if ( BUILD_X11 )
option ( OWN_WINDOW "Enable own_window support" true )
2018-08-07 15:54:01 +00:00
# Mac Fix
if ( OS_DARWIN )
option ( BUILD_XDAMAGE "Build Xdamage support" false )
else ( OS_DARWIN )
option ( BUILD_XDAMAGE "Build Xdamage support" true )
endif ( OS_DARWIN )
2015-12-01 12:53:43 +00:00
option ( BUILD_XINERAMA "Build Xinerama support" true )
2018-01-19 14:08:14 +00:00
option ( BUILD_XDBE "Build Xdbe (double-buffer) support" true )
2009-12-05 21:04:31 +00:00
option ( BUILD_XFT "Build Xft (freetype fonts) support" true )
2018-01-19 14:08:14 +00:00
option ( BUILD_IMLIB2 "Enable Imlib2 support" true )
option ( BUILD_XSHAPE "Enable Xshape support" true )
2010-01-17 15:15:59 +00:00
else ( BUILD_X11 )
2010-01-17 19:40:40 +00:00
set ( OWN_WINDOW false CACHE BOOL "Enable own_window support" FORCE )
set ( BUILD_XDAMAGE false CACHE BOOL "Build Xdamage support" FORCE )
2015-12-01 12:53:43 +00:00
set ( BUILD_XINERAMA false CACHE BOOL "Build Xinerama support" FORCE )
2010-01-17 19:40:40 +00:00
set ( BUILD_XDBE false CACHE BOOL "Build Xdbe (double-buffer) support" FORCE )
set ( BUILD_XFT false CACHE BOOL "Build Xft (freetype fonts) support" FORCE )
set ( BUILD_IMLIB2 false CACHE BOOL "Enable Imlib2 support" FORCE )
2014-09-05 19:06:54 +00:00
set ( BUILD_XSHAPE false CACHE BOOL "Enable Xshape support" FORCE )
2009-12-05 21:04:31 +00:00
endif ( BUILD_X11 )
2010-11-22 20:14:45 +00:00
if ( OWN_WINDOW )
option ( BUILD_ARGB "Build ARGB (real transparency) support" true )
else ( OWN_WINDOW )
set ( BUILD_ARGB false CACHE BOOL "Build ARGB (real transparency) support" FORCE )
endif ( OWN_WINDOW )
2010-11-14 00:41:07 +00:00
option ( BUILD_LUA_CAIRO "Build cairo bindings for Lua" false )
option ( BUILD_LUA_IMLIB2 "Build Imlib2 bindings for Lua" false )
2013-05-22 20:21:29 +00:00
option ( BUILD_LUA_RSVG "Build rsvg bindings for Lua" false )
2009-12-06 19:30:06 +00:00
2009-12-08 04:46:49 +00:00
option ( BUILD_AUDACIOUS "Build audacious (music player) support" false )
2009-12-06 19:30:06 +00:00
2009-12-08 04:46:49 +00:00
option ( BUILD_BMPX "Build BMPx (music player) support" false )
option ( BUILD_MPD "Enable if you want MPD (music player) support" true )
2012-06-28 16:56:01 +00:00
option ( BUILD_MYSQL "Enable if you want MySQL support" false )
2010-04-18 15:52:41 +00:00
2009-12-08 04:46:49 +00:00
option ( BUILD_MOC "Enable if you want MOC (music player) support" true )
option ( BUILD_XMMS2 "Enable if you want XMMS2 (music player) support" false )
2018-05-13 17:33:18 +00:00
option ( BUILD_EVE "Enable if you want Eve-Online skill monitoring support" true )
2009-12-08 04:46:49 +00:00
option ( BUILD_CURL "Enable if you want Curl support" false )
option ( BUILD_RSS "Enable if you want RSS support" false )
2018-05-13 17:33:18 +00:00
option ( BUILD_WEATHER_METAR "Enable METAR weather support" true )
2018-08-12 01:51:21 +00:00
if ( BUILD_WEATHER_METAR OR BUILD_RSS )
2009-12-10 00:12:11 +00:00
set ( BUILD_CURL true )
2018-08-12 01:51:21 +00:00
endif ( BUILD_WEATHER_METAR OR BUILD_RSS )
2009-12-08 04:46:49 +00:00
2009-12-11 04:37:56 +00:00
option ( BUILD_APCUPSD "Enable APCUPSD support" true )
2010-01-20 17:17:30 +00:00
2010-04-27 19:14:32 +00:00
option ( BUILD_ICAL "Enable if you want iCalendar (RFC 5545) support" false )
2010-04-27 14:42:21 +00:00
2010-04-30 17:32:42 +00:00
option ( BUILD_IRC "Enable if you want IRC support" false )
2010-06-04 12:41:12 +00:00
option ( BUILD_HTTP "Enable if you want HTTP support" false )
2010-11-24 17:17:53 +00:00
if ( BUILD_HTTP )
set ( HTTPPORT "10080" CACHE STRING "Port to use for out_to_http" )
endif ( BUILD_HTTP )
2010-06-04 12:41:12 +00:00
2010-01-20 17:17:30 +00:00
option ( BUILD_ICONV "Enable iconv support" false )
2011-05-10 20:40:53 +00:00
2018-05-13 17:33:18 +00:00
option ( BUILD_CMUS "Enable support for cmus music player" true )
2016-05-06 11:25:30 +00:00
option ( BUILD_JOURNAL "Enable support for reading from the systemd journal" false )
2016-06-24 14:17:20 +00:00
option ( BUILD_PULSEAUDIO "Enable support for Pulseaudio's default sink and source" false )
2018-12-22 21:16:28 +00:00
message ( STATUS "CMAKE_C_FLAGS: " ${ CMAKE_C_FLAGS } )
message ( STATUS "CMAKE_CXX_FLAGS: " ${ CMAKE_CXX_FLAGS } )
message ( STATUS "CMAKE_C_FLAGS_DEBUG: " ${ CMAKE_C_FLAGS_DEBUG } )
message ( STATUS "CMAKE_CXX_FLAGS_DEBUG: " ${ CMAKE_CXX_FLAGS_DEBUG } )
message ( STATUS "CMAKE_C_FLAGS_MINSIZEREL: " ${ CMAKE_C_FLAGS_MINSIZEREL } )
message ( STATUS "CMAKE_CXX_FLAGS_MINSIZEREL: " ${ CMAKE_CXX_FLAGS_MINSIZEREL } )
message ( STATUS "CMAKE_C_FLAGS_RELEASE: " ${ CMAKE_C_FLAGS_RELEASE } )
message ( STATUS "CMAKE_CXX_FLAGS_RELEASE: " ${ CMAKE_CXX_FLAGS_RELEASE } )
message ( STATUS "CMAKE_C_FLAGS_RELWITHDEBINFO: " ${ CMAKE_C_FLAGS_RELWITHDEBINFO } )
message ( STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO: " ${ CMAKE_CXX_FLAGS_RELWITHDEBINFO } )
message ( STATUS "CMAKE_BUILD_TYPE: " ${ CMAKE_BUILD_TYPE } )