mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-10-02 06:59:09 +00:00
ac9d107e77
For reproducible builds, the build date messes things up, and some distros just set it to 1980 now anyway. Thus, it's better to remove the date altogether.
236 lines
6.0 KiB
CMake
236 lines
6.0 KiB
CMake
#
|
|
# Conky, a system monitor, based on torsmo
|
|
#
|
|
# Please see COPYING for details
|
|
#
|
|
# Copyright (c) 2005-2021 Brenden Matthews, et. al. (see AUTHORS) 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/>.
|
|
#
|
|
|
|
# set(RELEASE true)
|
|
|
|
# Set system vars
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
set(OS_LINUX true)
|
|
endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
|
set(OS_FREEBSD true)
|
|
endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "DragonFly")
|
|
set(OS_DRAGONFLY true)
|
|
endif(CMAKE_SYSTEM_NAME MATCHES "DragonFly")
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
|
set(OS_OPENBSD true)
|
|
endif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
|
set(OS_SOLARIS true)
|
|
endif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
|
set(OS_NETBSD true)
|
|
endif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Haiku")
|
|
set(OS_HAIKU true)
|
|
endif(CMAKE_SYSTEM_NAME MATCHES "Haiku")
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
set(OS_DARWIN true)
|
|
endif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
|
|
if(NOT OS_LINUX
|
|
AND NOT OS_FREEBSD
|
|
AND NOT OS_OPENBSD
|
|
AND NOT OS_DRAGONFLY
|
|
AND NOT OS_SOLARIS
|
|
AND NOT OS_HAIKU
|
|
AND NOT OS_DARWIN)
|
|
message(
|
|
FATAL_ERROR
|
|
"Your platform, '${CMAKE_SYSTEM_NAME}', is not currently supported. Patches are welcome."
|
|
)
|
|
endif(NOT
|
|
OS_LINUX
|
|
AND
|
|
NOT
|
|
OS_FREEBSD
|
|
AND
|
|
NOT
|
|
OS_OPENBSD
|
|
AND
|
|
NOT
|
|
OS_DRAGONFLY
|
|
AND
|
|
NOT
|
|
OS_SOLARIS
|
|
AND
|
|
NOT
|
|
OS_HAIKU
|
|
AND
|
|
NOT
|
|
OS_DARWIN)
|
|
|
|
include(FindThreads)
|
|
find_package(Threads)
|
|
|
|
set(conky_libs ${CMAKE_THREAD_LIBS_INIT})
|
|
set(conky_includes ${CMAKE_BINARY_DIR})
|
|
|
|
#
|
|
# On Darwin _POSIX_C_SOURCE must be >= __DARWIN_C_FULL for asprintf to be
|
|
# enabled! Thus disable this and _LARGEFILE64_SOURCE isnt needed, it is already
|
|
# used on macOS.
|
|
#
|
|
if(NOT OS_DARWIN)
|
|
add_definitions(-D_LARGEFILE64_SOURCE -D_POSIX_C_SOURCE=200809L) # Standard definitions
|
|
set(
|
|
CMAKE_REQUIRED_DEFINITIONS
|
|
"${CMAKE_REQUIRED_DEFINITIONS} -D_LARGEFILE64_SOURCE -D_POSIX_C_SOURCE=200809L"
|
|
)
|
|
endif(NOT OS_DARWIN)
|
|
|
|
if(OS_FREEBSD)
|
|
add_definitions(-D__BSD_VISIBLE=1 -D_XOPEN_SOURCE=700)
|
|
set(
|
|
CMAKE_REQUIRED_DEFINITIONS
|
|
"${CMAKE_REQUIRED_DEFINITIONS} -D_LARGEFILE64_SOURCE -D_POSIX_C_SOURCE=200809L -D__BSD_VISIBLE=1 -D_XOPEN_SOURCE=700"
|
|
)
|
|
endif(OS_FREEBSD)
|
|
|
|
if(OS_DRAGONFLY)
|
|
set(conky_libs ${conky_libs} -L/usr/pkg/lib)
|
|
set(conky_includes ${conky_includes} -I/usr/pkg/include)
|
|
endif(OS_DRAGONFLY)
|
|
|
|
if(OS_SOLARIS)
|
|
set(conky_libs ${conky_libs} -L/usr/local/lib)
|
|
endif(OS_SOLARIS)
|
|
|
|
if(OS_HAIKU)
|
|
# For asprintf
|
|
add_definitions(-D_GNU_SOURCE) # Standard definitions
|
|
set(
|
|
CMAKE_REQUIRED_DEFINITIONS
|
|
"${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE"
|
|
)
|
|
endif(OS_HAIKU)
|
|
|
|
# Do version stuff
|
|
set(VERSION_MAJOR "1")
|
|
set(VERSION_MINOR "19")
|
|
set(VERSION_PATCH "8")
|
|
|
|
find_program(APP_AWK awk)
|
|
|
|
if(NOT APP_AWK)
|
|
message(FATAL_ERROR "Unable to find program 'awk'")
|
|
endif(NOT APP_AWK)
|
|
|
|
find_program(APP_WC wc)
|
|
|
|
if(NOT APP_WC)
|
|
message(FATAL_ERROR "Unable to find program 'wc'")
|
|
endif(NOT APP_WC)
|
|
|
|
find_program(APP_UNAME uname)
|
|
|
|
if(NOT APP_UNAME)
|
|
message(FATAL_ERROR "Unable to find program 'uname'")
|
|
endif(NOT APP_UNAME)
|
|
|
|
if(NOT RELEASE)
|
|
find_program(APP_GIT git)
|
|
|
|
if(NOT APP_GIT)
|
|
message(FATAL_ERROR "Unable to find program 'git'")
|
|
endif(NOT APP_GIT)
|
|
|
|
mark_as_advanced(APP_GIT)
|
|
endif(NOT RELEASE)
|
|
|
|
mark_as_advanced(APP_AWK APP_WC APP_UNAME)
|
|
|
|
execute_process(COMMAND ${APP_UNAME} -sm
|
|
RESULT_VARIABLE RETVAL
|
|
OUTPUT_VARIABLE BUILD_ARCH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
if(RELEASE)
|
|
set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
|
else(RELEASE)
|
|
set(VERSION
|
|
"${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}_pre${COMMIT_COUNT}")
|
|
endif(RELEASE)
|
|
|
|
set(COPYRIGHT "Copyright Brenden Matthews, et al, 2005-2024")
|
|
|
|
macro(AC_SEARCH_LIBS FUNCTION_NAME INCLUDES TARGET_VAR)
|
|
if("${TARGET_VAR}" MATCHES "^${TARGET_VAR}$")
|
|
unset(AC_SEARCH_LIBS_TMP CACHE)
|
|
check_symbol_exists(${FUNCTION_NAME} ${INCLUDES} AC_SEARCH_LIBS_TMP)
|
|
|
|
if(${AC_SEARCH_LIBS_TMP})
|
|
set(${TARGET_VAR} "" CACHE INTERNAL "Library containing ${FUNCTION_NAME}")
|
|
else(${AC_SEARCH_LIBS_TMP})
|
|
foreach(LIB ${ARGN})
|
|
unset(AC_SEARCH_LIBS_TMP CACHE)
|
|
unset(AC_SEARCH_LIBS_FOUND CACHE)
|
|
find_library(AC_SEARCH_LIBS_TMP ${LIB})
|
|
check_library_exists(${LIB}
|
|
${FUNCTION_NAME}
|
|
${AC_SEARCH_LIBS_TMP}
|
|
AC_SEARCH_LIBS_FOUND)
|
|
|
|
if(${AC_SEARCH_LIBS_FOUND})
|
|
set(${TARGET_VAR} ${AC_SEARCH_LIBS_TMP}
|
|
CACHE INTERNAL "Library containing ${FUNCTION_NAME}")
|
|
break()
|
|
endif(${AC_SEARCH_LIBS_FOUND})
|
|
endforeach(LIB)
|
|
endif(${AC_SEARCH_LIBS_TMP})
|
|
endif("${TARGET_VAR}" MATCHES "^${TARGET_VAR}$")
|
|
endmacro(AC_SEARCH_LIBS)
|
|
|
|
# A function to print the target build properties
|
|
function(print_target_properties tgt)
|
|
if(NOT TARGET ${tgt})
|
|
message("There is no target named '${tgt}'")
|
|
return()
|
|
endif()
|
|
|
|
# this list of properties can be extended as needed
|
|
set(CMAKE_PROPERTY_LIST
|
|
SOURCE_DIR
|
|
BINARY_DIR
|
|
COMPILE_DEFINITIONS
|
|
COMPILE_OPTIONS
|
|
INCLUDE_DIRECTORIES
|
|
LINK_LIBRARIES)
|
|
|
|
message("Configuration for target ${tgt}")
|
|
|
|
foreach(prop ${CMAKE_PROPERTY_LIST})
|
|
get_property(propval TARGET ${tgt} PROPERTY ${prop} SET)
|
|
|
|
if(propval)
|
|
get_target_property(propval ${tgt} ${prop})
|
|
message(STATUS "${prop} = ${propval}")
|
|
endif()
|
|
endforeach(prop)
|
|
endfunction(print_target_properties)
|