2023-08-14 20:00:04 +08:00
cmake_minimum_required ( VERSION 3.12.0 ) # target_link_libraries with OBJECT libs & project homepage url
2021-02-18 22:25:36 +01:00
2022-03-20 13:16:04 +01:00
project ( fastfetch
2023-08-26 08:16:06 -04:00
V E R S I O N 2 . 0 . 5
2022-03-20 13:16:04 +01:00
L A N G U A G E S C
2022-09-14 19:12:51 +02:00
D E S C R I P T I O N " F a s t s y s t e m i n f o r m a t i o n t o o l "
2023-06-12 17:26:37 +02:00
H O M E P A G E _ U R L " h t t p s : / / g i t h u b . c o m / f a s t f e t c h - c l i / f a s t f e t c h "
2022-03-20 13:16:04 +01:00
)
2021-02-18 22:25:36 +01:00
2022-11-06 01:33:06 +08:00
set ( PROJECT_LICENSE "MIT license" )
2022-09-05 18:30:30 +02:00
###################
# Target Platform #
###################
2022-11-25 19:17:37 +08:00
if ( ANDROID )
set ( LINUX FALSE )
elseif ( "${CMAKE_SYSTEM_NAME}" MATCHES ".*[Ll]inux.*" )
2022-09-19 22:23:31 +02:00
set ( LINUX TRUE CACHE BOOL "..." FORCE ) # LINUX means GNU/Linux, not just the kernel
elseif ( "${CMAKE_SYSTEM_NAME}" MATCHES ".*[Bb][Ss][Dd].*" )
set ( BSD TRUE CACHE BOOL "..." FORCE )
2022-11-25 19:17:37 +08:00
elseif ( NOT APPLE AND NOT WIN32 )
2022-10-02 17:52:09 +08:00
message ( FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}" )
2022-09-05 18:30:30 +02:00
endif ( )
2022-10-12 14:13:20 +08:00
#############################
# Compile time dependencies #
#############################
2022-10-13 18:12:54 +08:00
set ( THREADS_PREFER_PTHREAD_FLAG NOT WIN32 )
2022-10-12 14:13:20 +08:00
find_package ( Threads )
2022-11-24 18:10:49 +01:00
find_package ( PkgConfig )
if ( NOT PKG_CONFIG_FOUND )
message ( WARNING "pkg-config not found, library detection might be limited" )
endif ( )
2022-10-12 14:13:20 +08:00
include ( CheckIncludeFile )
2022-06-08 16:25:14 +02:00
#####################
# Configure options #
#####################
2022-02-21 11:40:33 +05:00
2022-09-05 19:56:00 +02:00
include ( CMakeDependentOption )
2022-09-20 11:16:08 +02:00
cmake_dependent_option ( ENABLE_LIBPCI "Enable libpci" ON "LINUX OR BSD" OFF )
2022-10-20 15:46:41 +08:00
cmake_dependent_option ( ENABLE_VULKAN "Enable vulkan" ON "LINUX OR APPLE OR BSD OR WIN32 OR ANDROID" OFF )
2022-09-20 11:16:08 +02:00
cmake_dependent_option ( ENABLE_WAYLAND "Enable wayland-client" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_XCB_RANDR "Enable xcb-randr" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_XCB "Enable xcb" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_XRANDR "Enable xrandr" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_X11 "Enable x11" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_GIO "Enable gio-2.0" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_DCONF "Enable dconf" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_DBUS "Enable dbus-1" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_XFCONF "Enable libxfconf-0" ON "LINUX OR BSD" OFF )
2023-06-06 18:34:54 +08:00
cmake_dependent_option ( ENABLE_SQLITE3 "Enable sqlite3" ON "LINUX OR BSD OR APPLE" OFF )
2022-09-05 19:56:00 +02:00
cmake_dependent_option ( ENABLE_RPM "Enable rpm" ON "LINUX" OFF )
2022-12-22 02:07:35 +08:00
cmake_dependent_option ( ENABLE_IMAGEMAGICK7 "Enable imagemagick 7" ON "LINUX OR BSD OR APPLE OR WIN32" OFF )
2022-12-19 20:38:31 +08:00
cmake_dependent_option ( ENABLE_IMAGEMAGICK6 "Enable imagemagick 6" ON "LINUX OR BSD OR APPLE" OFF )
2022-09-05 19:56:00 +02:00
cmake_dependent_option ( ENABLE_CHAFA "Enable chafa" ON "ENABLE_IMAGEMAGICK6 OR ENABLE_IMAGEMAGICK7" OFF )
2022-09-11 12:03:01 +02:00
cmake_dependent_option ( ENABLE_ZLIB "Enable zlib" ON "ENABLE_IMAGEMAGICK6 OR ENABLE_IMAGEMAGICK7" OFF )
2022-09-20 11:16:08 +02:00
cmake_dependent_option ( ENABLE_EGL "Enable egl" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_GLX "Enable glx" ON "LINUX OR BSD" OFF )
cmake_dependent_option ( ENABLE_OSMESA "Enable osmesa" ON "LINUX OR BSD" OFF )
2022-10-14 16:39:48 +08:00
cmake_dependent_option ( ENABLE_OPENCL "Enable opencl" ON "LINUX OR BSD OR WIN32" OFF )
2023-01-17 12:45:26 +08:00
cmake_dependent_option ( ENABLE_LIBNM "Enable libnm" ON "LINUX" OFF )
2022-09-26 23:07:18 +08:00
cmake_dependent_option ( ENABLE_FREETYPE "Enable freetype" ON "ANDROID" OFF )
2023-01-26 15:48:28 +01:00
cmake_dependent_option ( ENABLE_PULSE "Enable pulse" ON "LINUX OR BSD" OFF )
2023-07-09 17:22:04 +08:00
cmake_dependent_option ( ENABLE_DDCUTIL "Enable ddcutil" ON "LINUX" OFF )
2023-09-20 23:55:36 +08:00
cmake_dependent_option ( ENABLE_DIRECTX_HEADERS "Enable DirectX headers for WSL" ON "LINUX" OFF )
2023-02-24 17:45:50 +08:00
cmake_dependent_option ( ENABLE_THREADS "Enable multithreading" ON "Threads_FOUND" OFF )
2023-07-13 09:53:31 +08:00
cmake_dependent_option ( ENABLE_PCI_MEMORY "Enable detecting GPU memory size with libpci" OFF "LINUX OR BSD" OFF )
2023-08-19 11:10:14 +08:00
cmake_dependent_option ( ENABLE_SYSTEM_YYJSON "Use system provided (instead of fastfetch embeded) yyjson library" OFF "LINUX OR APPLE OR BSD OR WIN32 OR ANDROID" OFF )
2022-09-05 19:56:00 +02:00
option ( BUILD_TESTS "Build tests" OFF ) # Also create test executables
option ( SET_TWEAK "Add tweak to project version" ON ) # This is set to off by github actions for release builds
2022-06-08 16:25:14 +02:00
####################
# Compiler options #
####################
2021-10-20 08:12:15 +00:00
if ( NOT CMAKE_BUILD_TYPE )
2023-06-09 22:38:55 +08:00
set ( CMAKE_BUILD_TYPE RelWithDebInfo )
2021-10-20 08:12:15 +00:00
endif ( )
2021-03-07 20:05:00 +01:00
2022-09-22 23:10:34 +02:00
message ( STATUS "Build type: ${CMAKE_BUILD_TYPE}" )
2022-10-12 14:13:20 +08:00
if ( ENABLE_THREADS )
2022-10-13 18:12:54 +08:00
if ( CMAKE_USE_WIN32_THREADS_INIT )
2022-10-12 14:13:20 +08:00
message ( STATUS "Threads type: Win32 thread" )
2022-10-13 18:12:54 +08:00
elseif ( CMAKE_USE_PTHREADS_INIT )
message ( STATUS "Threads type: pthread" )
2022-10-12 14:13:20 +08:00
endif ( )
else ( )
message ( STATUS "Threads type: disabled" )
endif ( )
2022-09-22 23:10:34 +02:00
2023-06-16 20:40:50 +08:00
set ( WARNING_FLAGS "-Wall -Wextra -Wconversion -Werror=uninitialized -Werror=return-type" )
2023-06-12 21:18:22 +08:00
2022-06-08 15:52:55 +02:00
set ( CMAKE_C_STANDARD 11 )
2023-06-16 20:40:50 +08:00
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Werror=incompatible-pointer-types -Werror=implicit-function-declaration" )
2022-09-18 15:53:51 +02:00
2023-09-20 23:55:36 +08:00
if ( WIN32 OR ENABLE_DIRECTX_HEADERS )
2023-06-23 11:41:22 +08:00
enable_language ( CXX )
set ( CMAKE_CXX_STANDARD 17 )
2023-06-12 21:18:22 +08:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} -fno-exceptions -fno-rtti" )
2023-09-20 23:55:36 +08:00
endif ( )
if ( WIN32 )
2023-01-11 09:37:00 +08:00
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--tsaware -Wl,--build-id -Wl,--subsystem,console:6.1,--major-os-version,6,--minor-os-version,1" )
2022-10-05 00:41:43 +08:00
endif ( )
2022-09-18 15:53:51 +02:00
# Used for dlopen finding dylibs installed by homebrew
# `/opt/homebrew/lib` is not on in dlopen search path by default
2022-09-10 10:53:08 +08:00
if ( APPLE AND DEFINED ENV{HOMEBREW_PREFIX} )
2022-09-17 16:02:56 +08:00
set ( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,$ENV{HOMEBREW_PREFIX}/lib" )
2022-09-10 10:53:08 +08:00
endif ( )
2022-09-17 16:02:56 +08:00
2022-10-02 17:52:09 +08:00
set ( FASTFETCH_FLAGS_DEBUG "-fno-omit-frame-pointer" )
2022-10-14 16:39:48 +08:00
if ( NOT WIN32 )
2022-10-02 17:52:09 +08:00
set ( FASTFETCH_FLAGS_DEBUG "${FASTFETCH_FLAGS_DEBUG} -fsanitize=address -fsanitize=undefined" )
endif ( )
2022-09-18 15:53:51 +02:00
set ( CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${FASTFETCH_FLAGS_DEBUG}" )
2023-02-25 13:30:31 +08:00
set ( CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${FASTFETCH_FLAGS_DEBUG}" )
if ( NOT WIN32 )
set ( CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -rdynamic" )
endif ( )
2022-10-11 13:15:43 +08:00
if ( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
2023-09-20 23:55:36 +08:00
message ( STATUS "Enabling LTO" )
2022-10-11 13:15:43 +08:00
include ( CheckIPOSupported )
check_ipo_supported ( RESULT IPO_SUPPORTED )
if ( IPO_SUPPORTED )
set ( CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE )
endif ( )
2022-06-08 16:25:14 +02:00
endif ( )
#######################
# Target FS structure #
#######################
2022-04-10 15:07:52 +02:00
if ( NOT TARGET_DIR_ROOT )
2022-04-10 15:26:18 +02:00
if ( NOT ANDROID )
set ( TARGET_DIR_ROOT "" )
else ( )
set ( TARGET_DIR_ROOT "/data/data/com.termux/files/usr" )
endif ( )
2022-04-10 15:07:52 +02:00
endif ( )
2022-04-10 15:26:18 +02:00
2022-04-10 15:07:52 +02:00
if ( NOT TARGET_DIR_USR )
2022-04-10 15:26:18 +02:00
if ( NOT ANDROID )
set ( TARGET_DIR_USR "${TARGET_DIR_ROOT}/usr" )
else ( )
set ( TARGET_DIR_USR "${TARGET_DIR_ROOT}" )
endif ( )
2022-04-10 15:07:52 +02:00
endif ( )
2022-04-10 15:26:18 +02:00
2022-04-10 15:07:52 +02:00
if ( NOT TARGET_DIR_HOME )
2022-09-06 05:19:21 -07:00
if ( APPLE )
set ( TARGET_DIR_HOME "${TARGET_DIR_ROOT}/Users" )
elseif ( ANDROID )
2022-04-10 15:26:18 +02:00
set ( TARGET_DIR_HOME "/data/data/com.termux/files/home" )
2022-09-06 05:19:21 -07:00
else ( )
set ( TARGET_DIR_HOME "${TARGET_DIR_ROOT}/home" )
2022-04-10 15:26:18 +02:00
endif ( )
2022-04-10 15:07:52 +02:00
endif ( )
2022-10-01 22:53:11 +08:00
if ( NOT TARGET_DIR_ETC )
2022-10-09 10:39:57 +02:00
set ( TARGET_DIR_ETC "${TARGET_DIR_ROOT}/etc" )
endif ( )
2023-02-21 21:40:55 +08:00
message ( STATUS "Target dirs: ROOT=\" ${ TARGET_DIR_ROOT } \" USR=\ "${TARGET_DIR_USR}\" HOME=\ "${TARGET_DIR_HOME}\" ETC=\ "${TARGET_DIR_ETC}\" " )
2023-02-21 21:38:10 +08:00
2022-10-09 10:39:57 +02:00
#https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT.html
if ( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
set ( CMAKE_INSTALL_PREFIX "${TARGET_DIR_USR}" CACHE PATH "..." FORCE )
endif ( )
if ( NOT CMAKE_INSTALL_SYSCONFDIR )
set ( CMAKE_INSTALL_SYSCONFDIR "${TARGET_DIR_ETC}" CACHE PATH "..." FORCE )
2022-10-01 22:53:11 +08:00
endif ( )
2022-06-08 16:25:14 +02:00
#################
# Tweak version #
#################
2021-10-22 21:53:29 +02:00
2022-04-10 15:07:52 +02:00
if ( SET_TWEAK AND EXISTS "${CMAKE_SOURCE_DIR}/.git" )
execute_process (
C O M M A N D g i t d e s c r i b e - - t a g s
W O R K I N G _ D I R E C T O R Y " $ { C M A K E _ S O U R C E _ D I R } "
O U T P U T _ V A R I A B L E P R O J E C T _ V E R S I O N _ T W E A K
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E
)
string ( REGEX MATCH "-[0-9]+" PROJECT_VERSION_TWEAK "${PROJECT_VERSION_TWEAK}" )
endif ( )
2022-12-08 18:33:43 +08:00
if ( PROJECT_VERSION_TWEAK )
string ( REGEX MATCH "[0-9]+" PROJECT_VERSION_TWEAK_NUM "${PROJECT_VERSION_TWEAK}" )
else ( )
set ( PROJECT_VERSION_TWEAK_NUM 0 )
endif ( )
2022-04-10 15:07:52 +02:00
2022-06-08 16:25:14 +02:00
#############
# Text data #
#############
function ( fastfetch_load_text FILENAME OUTVAR )
file ( READ "${FILENAME}" TEMP )
2022-10-10 10:16:43 +02:00
string ( REGEX REPLACE "\n$" "" TEMP "${TEMP}" ) # Remove trailing newline
string ( REPLACE "\n" "\\n" TEMP "${TEMP}" ) # Replace newlines with \n
string ( REPLACE "\" " " \\\"" TEMP "${TEMP}" ) # Replace quotes with \"
string ( REPLACE "$\\" "" TEMP "${TEMP}" ) # Remove $\, so we can unescape some things
2022-06-08 16:25:14 +02:00
set ( "${OUTVAR}" "${TEMP}" PARENT_SCOPE )
endfunction ( fastfetch_load_text )
2021-10-23 14:59:11 +02:00
fastfetch_load_text ( src/data/structure.txt DATATEXT_STRUCTURE )
2022-07-21 14:37:13 +02:00
fastfetch_load_text ( src/data/config_system.txt DATATEXT_CONFIG_SYSTEM )
fastfetch_load_text ( src/data/config_user.txt DATATEXT_CONFIG_USER )
2023-08-07 14:15:11 +08:00
fastfetch_load_text ( src/data/config_user.jsonc DATATEXT_CONFIG_USER_JSONC )
2021-10-22 21:53:29 +02:00
fastfetch_load_text ( src/data/help.txt DATATEXT_HELP )
fastfetch_load_text ( src/data/help_color.txt DATATEXT_HELP_COLOR )
fastfetch_load_text ( src/data/help_format.txt DATATEXT_HELP_FORMAT )
fastfetch_load_text ( src/data/help_config.txt DATATEXT_HELP_CONFIG )
2023-07-28 14:12:48 +08:00
configure_file ( src/fastfetch_config.h.in fastfetch_config.h @ONLY )
configure_file ( src/fastfetch_datatext.h.in fastfetch_datatext.h @ONLY )
2022-06-08 16:25:14 +02:00
2023-07-28 14:12:48 +08:00
####################
# Ascii image data #
####################
function ( fastfetch_load_raw_text FILENAME OUTVAR )
file ( READ "${FILENAME}" TEMP )
string ( REGEX REPLACE "\n$" "" TEMP "${TEMP}" ) # Remove trailing newline
string ( JSON TEMP SET "{}" "${TEMP}" "0" ) # Encode raw strings using JSON_SET
string ( REGEX REPLACE "^\\{[ \t\r\n]*" "" TEMP "${TEMP}" ) # Remove JSON braces
string ( REGEX REPLACE "[ \t\r\n]*:[ \t\r\n]*0[ \t\r\n]*\\}$" "" TEMP "${TEMP}" ) # Remove trailing ` : 0 }`
if ( NOT "${TEMP}" MATCHES "^\" [^\n]*\ "" )
message ( FATAL_ERROR "Internal error: unexpected output: '${TEMP}'" )
endif ( )
set ( ${ OUTVAR } "${TEMP}" PARENT_SCOPE )
endfunction ( fastfetch_load_raw_text )
file ( GLOB LOGO_FILES "src/logo/ascii/*.txt" )
2023-07-29 20:47:02 +08:00
set ( LOGO_BUILTIN_H "#pragma once\n\n" )
2023-07-28 14:12:48 +08:00
foreach ( file ${ LOGO_FILES } )
fastfetch_load_raw_text ( "${file}" content )
get_filename_component ( file "${file}" NAME_WLE )
string ( TOUPPER "${file}" file )
2023-07-29 20:47:02 +08:00
string ( REGEX REPLACE "\\$\\{c([0-9]+)\\}" "$\\1" content "${content}" )
set ( LOGO_BUILTIN_H "${LOGO_BUILTIN_H}#define FASTFETCH_DATATEXT_LOGO_${file} ${content}\n" )
2023-07-28 14:12:48 +08:00
endforeach ( )
2023-07-29 20:47:02 +08:00
file ( GENERATE OUTPUT logo_builtin.h CONTENT "${LOGO_BUILTIN_H}" )
2021-03-06 11:28:38 +01:00
2022-06-08 16:25:14 +02:00
#######################
# libfastfetch target #
#######################
2022-02-21 11:40:33 +05:00
2022-09-04 12:43:30 +02:00
set ( LIBFASTFETCH_SRC
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / b a r . c
2023-08-17 16:00:24 +08:00
s r c / c o m m o n / c o m m a n d o p t i o n . c
2022-04-08 15:50:49 +02:00
s r c / c o m m o n / f o n t . c
2022-02-09 15:20:07 +01:00
s r c / c o m m o n / f o r m a t . c
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / i n i t . c
2023-03-15 15:24:40 +08:00
s r c / c o m m o n / j s o n c o n f i g . c
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / l i b r a r y . c
2023-08-20 20:51:55 +08:00
s r c / c o m m o n / m o d u l e s . c
2023-03-07 14:56:13 +08:00
s r c / c o m m o n / o p t i o n . c
2022-02-09 15:20:07 +01:00
s r c / c o m m o n / p a r s i n g . c
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / p r i n t i n g . c
s r c / c o m m o n / p r o p e r t i e s . c
2022-02-09 15:20:07 +01:00
s r c / c o m m o n / s e t t i n g s . c
2023-06-22 17:32:01 +08:00
s r c / d e t e c t i o n / c h a s s i s / c h a s s i s . c
2022-09-04 22:20:12 +02:00
s r c / d e t e c t i o n / c p u / c p u . c
2023-03-17 17:56:31 +08:00
s r c / d e t e c t i o n / c p u u s a g e / c p u u s a g e . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / d i s k / d i s k . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / d i s p l a y s e r v e r . c
s r c / d e t e c t i o n / f o n t / f o n t . c
2022-09-05 17:42:42 +02:00
s r c / d e t e c t i o n / g p u / g p u . c
2022-12-16 11:21:14 +08:00
s r c / d e t e c t i o n / l o c a l e / l o c a l e . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / m e d i a / m e d i a . c
2023-04-25 19:03:20 +08:00
s r c / d e t e c t i o n / o p e n c l / o p e n c l . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / o s / o s . c
s r c / d e t e c t i o n / p a c k a g e s / p a c k a g e s . c
2023-09-13 16:20:50 +08:00
s r c / d e t e c t i o n / p u b l i c i p / p u b l i c i p . c
2022-09-18 15:53:51 +02:00
s r c / d e t e c t i o n / t e r m i n a l f o n t / t e r m i n a l f o n t . c
2022-10-14 16:28:03 +08:00
s r c / d e t e c t i o n / t e r m i n a l s h e l l / t e r m i n a l s h e l l . c
2023-08-21 09:19:16 +08:00
s r c / d e t e c t i o n / v e r s i o n / v e r s i o n . c
2023-02-14 17:50:53 +08:00
s r c / d e t e c t i o n / v u l k a n / v u l k a n . c
2023-09-13 18:31:22 +08:00
s r c / d e t e c t i o n / w e a t h e r / w e a t h e r . c
2022-11-20 18:14:32 +01:00
s r c / l o g o / b u i l t i n . c
s r c / l o g o / i m a g e / i m 6 . c
s r c / l o g o / i m a g e / i m 7 . c
s r c / l o g o / i m a g e / i m a g e . c
s r c / l o g o / l o g o . c
2023-03-10 17:49:03 +08:00
s r c / l o g o / o p t i o n . c
2023-03-07 16:13:53 +08:00
s r c / m o d u l e s / b a t t e r y / b a t t e r y . c
2023-03-10 14:48:09 +08:00
s r c / m o d u l e s / b i o s / b i o s . c
2023-03-13 17:36:48 +08:00
s r c / m o d u l e s / b l u e t o o t h / b l u e t o o t h . c
2023-03-13 18:54:57 +08:00
s r c / m o d u l e s / b o a r d / b o a r d . c
2023-03-14 15:29:47 +08:00
s r c / m o d u l e s / b r i g h t n e s s / b r i g h t n e s s . c
2023-03-13 19:01:08 +08:00
s r c / m o d u l e s / b r e a k / b r e a k . c
2023-06-09 10:08:04 +08:00
s r c / m o d u l e s / c h a s s i s / c h a s s i s . c
2023-03-15 17:02:54 +08:00
s r c / m o d u l e s / c o l o r s / c o l o r s . c
2023-03-15 18:17:24 +08:00
s r c / m o d u l e s / c p u / c p u . c
2023-03-17 17:56:31 +08:00
s r c / m o d u l e s / c p u u s a g e / c p u u s a g e . c
2023-03-20 14:57:46 +08:00
s r c / m o d u l e s / c u r s o r / c u r s o r . c
2023-03-20 15:46:00 +08:00
s r c / m o d u l e s / c u s t o m / c u s t o m . c
2023-03-07 19:27:49 +08:00
s r c / m o d u l e s / c o m m a n d / c o m m a n d . c
2023-03-09 19:38:03 +08:00
s r c / m o d u l e s / d a t e t i m e / d a t e t i m e . c
2023-06-07 10:39:53 +08:00
s r c / m o d u l e s / d e / d e . c
2023-04-02 00:13:11 +08:00
s r c / m o d u l e s / d i s k / d i s k . c
2023-04-04 12:28:52 +08:00
s r c / m o d u l e s / f o n t / f o n t . c
2023-03-26 20:42:18 +08:00
s r c / m o d u l e s / g p u / g p u . c
2023-03-10 11:26:53 +08:00
s r c / m o d u l e s / h o s t / h o s t . c
2023-06-07 09:49:38 +08:00
s r c / m o d u l e s / i c o n s / i c o n s . c
2023-04-04 11:01:42 +08:00
s r c / m o d u l e s / g a m e p a d / g a m e p a d . c
2023-03-10 14:14:32 +08:00
s r c / m o d u l e s / k e r n e l / k e r n e l . c
2023-06-20 23:01:18 +08:00
s r c / m o d u l e s / l m / l m . c
2023-04-04 17:47:42 +08:00
s r c / m o d u l e s / l o c a l e / l o c a l e . c
2023-04-04 20:46:50 +08:00
s r c / m o d u l e s / l o c a l i p / l o c a l i p . c
2023-05-11 21:07:04 +08:00
s r c / m o d u l e s / m e m o r y / m e m o r y . c
2023-08-09 16:31:24 +08:00
s r c / m o d u l e s / m o n i t o r / m o n i t o r . c
2023-06-07 15:10:44 +08:00
s r c / m o d u l e s / o p e n c l / o p e n c l . c
2023-06-07 14:44:27 +08:00
s r c / m o d u l e s / o p e n g l / o p e n g l . c
2023-03-07 14:56:13 +08:00
s r c / m o d u l e s / o s / o s . c
2023-05-26 14:32:27 +08:00
s r c / m o d u l e s / p a c k a g e s / p a c k a g e s . c
2023-06-09 10:24:20 +08:00
s r c / m o d u l e s / p r o c e s s e s / p r o c e s s e s . c
2023-06-07 16:19:07 +08:00
s r c / m o d u l e s / p l a y e r / p l a y e r . c
2023-06-05 16:57:55 +08:00
s r c / m o d u l e s / p o w e r a d a p t e r / p o w e r a d a p t e r . c
2023-06-08 09:41:22 +08:00
s r c / m o d u l e s / p u b l i c i p / p u b l i c i p . c
2023-03-10 10:56:36 +08:00
s r c / m o d u l e s / d i s p l a y / d i s p l a y . c
2023-03-09 17:00:37 +08:00
s r c / m o d u l e s / s e p a r a t o r / s e p a r a t o r . c
2023-06-01 11:37:52 +08:00
s r c / m o d u l e s / s h e l l / s h e l l . c
2023-04-12 14:05:09 +08:00
s r c / m o d u l e s / s o u n d / s o u n d . c
2023-05-11 21:07:04 +08:00
s r c / m o d u l e s / s w a p / s w a p . c
2023-06-07 16:10:14 +08:00
s r c / m o d u l e s / m e d i a / m e d i a . c
2023-06-02 16:07:01 +08:00
s r c / m o d u l e s / t e r m i n a l / t e r m i n a l . c
2023-06-02 16:28:58 +08:00
s r c / m o d u l e s / t e r m i n a l f o n t / t e r m i n a l f o n t . c
2023-07-26 10:27:40 +08:00
s r c / m o d u l e s / t e r m i n a l s i z e / t e r m i n a l s i z e . c
2023-06-09 08:48:46 +08:00
s r c / m o d u l e s / t h e m e / t h e m e . c
2023-03-09 18:11:03 +08:00
s r c / m o d u l e s / t i t l e / t i t l e . c
2023-04-25 19:57:27 +08:00
s r c / m o d u l e s / u p t i m e / u p t i m e . c
2023-06-07 15:23:01 +08:00
s r c / m o d u l e s / u s e r s / u s e r s . c
2023-08-21 09:19:16 +08:00
s r c / m o d u l e s / v e r s i o n / v e r s i o n . c
2023-06-07 15:16:09 +08:00
s r c / m o d u l e s / v u l k a n / v u l k a n . c
2023-06-07 10:14:08 +08:00
s r c / m o d u l e s / w a l l p a p e r / w a l l p a p e r . c
2023-06-08 11:33:33 +08:00
s r c / m o d u l e s / w e a t h e r / w e a t h e r . c
2023-05-23 15:30:59 +08:00
s r c / m o d u l e s / w i f i / w i f i . c
2023-06-07 10:50:52 +08:00
s r c / m o d u l e s / w m / w m . c
2023-04-28 19:11:55 +08:00
s r c / m o d u l e s / w m t h e m e / w m t h e m e . c
2023-08-08 20:23:26 +08:00
s r c / u t i l / e d i d H e l p e r . c
2022-11-20 18:14:32 +01:00
s r c / u t i l / F F l i s t . c
s r c / u t i l / F F s t r b u f . c
2023-01-15 15:57:26 +01:00
s r c / u t i l / p l a t f o r m / F F P l a t f o r m . c
2023-02-01 15:56:25 +01:00
s r c / u t i l / s t r i n g U t i l s . c
2023-06-22 10:45:43 +00:00
s r c / u t i l / s m b i o s H e l p e r . c
2022-02-09 15:20:07 +01:00
)
2022-02-08 07:10:46 +02:00
2022-11-20 18:14:32 +01:00
if ( LINUX )
2022-10-08 16:04:55 +08:00
list ( APPEND LIBFASTFETCH_SRC
2023-01-24 10:39:33 +01:00
s r c / c o m m o n / d b u s . c
2023-01-28 12:40:12 +01:00
s r c / c o m m o n / i o / i o _ u n i x . c
2022-11-02 01:03:01 +08:00
s r c / c o m m o n / n e t w o r k i n g _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / p r o c e s s i n g _ l i n u x . c
s r c / d e t e c t i o n / b a t t e r y / b a t t e r y _ l i n u x . c
s r c / d e t e c t i o n / b i o s / b i o s _ l i n u x . c
s r c / d e t e c t i o n / b o a r d / b o a r d _ l i n u x . c
2023-01-09 19:09:22 +08:00
s r c / d e t e c t i o n / b r i g h t n e s s / b r i g h t n e s s _ l i n u x . c
2022-12-24 22:48:10 +08:00
s r c / d e t e c t i o n / c h a s s i s / c h a s s i s _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / c p u / c p u _ l i n u x . c
2023-03-17 17:56:31 +08:00
s r c / d e t e c t i o n / c p u u s a g e / c p u u s a g e _ l i n u x . c
2022-11-23 12:10:45 +08:00
s r c / d e t e c t i o n / c u r s o r / c u r s o r _ l i n u x . c
2023-01-24 10:39:33 +01:00
s r c / d e t e c t i o n / b l u e t o o t h / b l u e t o o t h _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / d i s k / d i s k _ l i n u x . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / d i s p l a y s e r v e r _ l i n u x . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / w a y l a n d . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / w m d e . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / x c b . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / x l i b . c
s r c / d e t e c t i o n / f o n t / f o n t _ l i n u x . c
s r c / d e t e c t i o n / g p u / g p u _ l i n u x . c
2023-02-14 17:46:21 +08:00
s r c / d e t e c t i o n / g t k _ q t / g t k . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / h o s t / h o s t _ l i n u x . c
2023-06-06 11:26:29 +08:00
s r c / d e t e c t i o n / i c o n s / i c o n s _ l i n u x . c
2023-06-20 23:01:18 +08:00
s r c / d e t e c t i o n / l m / l m _ l i n u x . c
2022-10-08 22:48:13 +08:00
s r c / d e t e c t i o n / l o c a l i p / l o c a l i p _ l i n u x . c
2023-02-01 21:28:42 +08:00
s r c / d e t e c t i o n / g a m e p a d / g a m e p a d _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / m e d i a / m e d i a _ l i n u x . c
s r c / d e t e c t i o n / m e m o r y / m e m o r y _ l i n u x . c
2023-08-09 16:31:24 +08:00
s r c / d e t e c t i o n / m o n i t o r / m o n i t o r _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / o p e n g l / o p e n g l _ l i n u x . c
s r c / d e t e c t i o n / o s / o s _ l i n u x . c
s r c / d e t e c t i o n / p a c k a g e s / p a c k a g e s _ l i n u x . c
s r c / d e t e c t i o n / p o w e r a d a p t e r / p o w e r a d a p t e r _ n o s u p p o r t . c
s r c / d e t e c t i o n / p r o c e s s e s / p r o c e s s e s _ l i n u x . c
2023-02-14 17:46:21 +08:00
s r c / d e t e c t i o n / g t k _ q t / q t . c
2023-01-26 00:49:43 +08:00
s r c / d e t e c t i o n / s o u n d / s o u n d _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / s w a p / s w a p _ l i n u x . c
s r c / d e t e c t i o n / t e m p s / t e m p s _ l i n u x . c
s r c / d e t e c t i o n / t e r m i n a l f o n t / t e r m i n a l f o n t _ l i n u x . c
s r c / d e t e c t i o n / t e r m i n a l s h e l l / t e r m i n a l s h e l l _ l i n u x . c
2023-07-26 10:27:40 +08:00
s r c / d e t e c t i o n / t e r m i n a l s i z e / t e r m i n a l s i z e _ l i n u x . c
2023-06-08 14:32:15 +08:00
s r c / d e t e c t i o n / t h e m e / t h e m e _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / u p t i m e / u p t i m e _ l i n u x . c
s r c / d e t e c t i o n / u s e r s / u s e r s _ l i n u x . c
2023-06-06 20:43:38 +08:00
s r c / d e t e c t i o n / w a l l p a p e r / w a l l p a p e r _ l i n u x . c
2022-12-02 22:34:56 +08:00
s r c / d e t e c t i o n / w i f i / w i f i _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / w m t h e m e / w m t h e m e _ l i n u x . c
2023-01-15 15:57:26 +01:00
s r c / u t i l / p l a t f o r m / F F P l a t f o r m _ u n i x . c
2022-10-08 16:04:55 +08:00
)
2022-11-20 18:14:32 +01:00
elseif ( ANDROID )
2022-09-19 22:23:31 +02:00
list ( APPEND LIBFASTFETCH_SRC
2023-01-28 12:40:12 +01:00
s r c / c o m m o n / i o / i o _ u n i x . c
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / n e t w o r k i n g _ l i n u x . c
s r c / c o m m o n / p r o c e s s i n g _ l i n u x . c
2023-01-21 14:45:36 +08:00
s r c / d e t e c t i o n / b a t t e r y / b a t t e r y _ a n d r o i d . c
2023-07-27 22:50:19 +08:00
s r c / d e t e c t i o n / b i o s / b i o s _ a n d r o i d . c
2023-01-24 10:46:00 +01:00
s r c / d e t e c t i o n / b l u e t o o t h / b l u e t o o t h _ n o s u p p o r t . c
2023-07-27 19:47:26 +08:00
s r c / d e t e c t i o n / b o a r d / b o a r d _ a n d r o i d . c
2023-01-09 18:59:02 +08:00
s r c / d e t e c t i o n / b r i g h t n e s s / b r i g h t n e s s _ n o s u p p o r t . c
2022-12-24 22:48:10 +08:00
s r c / d e t e c t i o n / c h a s s i s / c h a s s i s _ n o s u p p o r t . c
2022-09-19 22:23:31 +02:00
s r c / d e t e c t i o n / c p u / c p u _ l i n u x . c
2022-11-23 12:10:45 +08:00
s r c / d e t e c t i o n / c u r s o r / c u r s o r _ n o s u p p o r t . c
2023-03-17 17:56:31 +08:00
s r c / d e t e c t i o n / c p u u s a g e / c p u u s a g e _ l i n u x . c
2022-10-27 14:58:29 +08:00
s r c / d e t e c t i o n / d i s k / d i s k _ l i n u x . c
2023-07-19 13:59:40 +08:00
s r c / d e t e c t i o n / d i s p l a y s e r v e r / d i s p l a y s e r v e r _ a n d r o i d . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / f o n t / f o n t _ n o s u p p o r t . c
s r c / d e t e c t i o n / g p u / g p u _ n o s u p p o r t . c
s r c / d e t e c t i o n / h o s t / h o s t _ a n d r o i d . c
2023-06-06 11:26:29 +08:00
s r c / d e t e c t i o n / i c o n s / i c o n s _ n o s u p p o r t . c
2023-06-20 23:01:18 +08:00
s r c / d e t e c t i o n / l m / l m _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / l o c a l i p / l o c a l i p _ l i n u x . c
2023-02-01 14:01:39 +08:00
s r c / d e t e c t i o n / g a m e p a d / g a m e p a d _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / m e d i a / m e d i a _ n o s u p p o r t . c
2022-09-19 22:23:31 +02:00
s r c / d e t e c t i o n / m e m o r y / m e m o r y _ l i n u x . c
2023-08-09 16:31:24 +08:00
s r c / d e t e c t i o n / m o n i t o r / m o n i t o r _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / o p e n g l / o p e n g l _ l i n u x . c
s r c / d e t e c t i o n / o s / o s _ a n d r o i d . c
s r c / d e t e c t i o n / p a c k a g e s / p a c k a g e s _ l i n u x . c
s r c / d e t e c t i o n / p o w e r a d a p t e r / p o w e r a d a p t e r _ n o s u p p o r t . c
2022-10-26 17:20:39 +08:00
s r c / d e t e c t i o n / p r o c e s s e s / p r o c e s s e s _ l i n u x . c
2023-01-25 14:28:13 +08:00
s r c / d e t e c t i o n / s o u n d / s o u n d _ n o s u p p o r t . c
2022-10-18 23:46:42 +08:00
s r c / d e t e c t i o n / s w a p / s w a p _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / t e m p s / t e m p s _ l i n u x . c
s r c / d e t e c t i o n / t e r m i n a l f o n t / t e r m i n a l f o n t _ a n d r o i d . c
s r c / d e t e c t i o n / t e r m i n a l s h e l l / t e r m i n a l s h e l l _ l i n u x . c
2023-07-26 10:27:40 +08:00
s r c / d e t e c t i o n / t e r m i n a l s i z e / t e r m i n a l s i z e _ l i n u x . c
2023-06-08 14:32:15 +08:00
s r c / d e t e c t i o n / t h e m e / t h e m e _ n o s u p p o r t . c
2022-10-26 17:03:46 +08:00
s r c / d e t e c t i o n / u p t i m e / u p t i m e _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / u s e r s / u s e r s _ l i n u x . c
2023-06-06 15:48:24 +08:00
s r c / d e t e c t i o n / w a l l p a p e r / w a l l p a p e r _ n o s u p p o r t . c
2023-01-21 14:45:36 +08:00
s r c / d e t e c t i o n / w i f i / w i f i _ a n d r o i d . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / w m t h e m e / w m t h e m e _ n o s u p p o r t . c
2023-01-15 15:57:26 +01:00
s r c / u t i l / p l a t f o r m / F F P l a t f o r m _ u n i x . c
2022-09-19 22:23:31 +02:00
)
2022-11-20 18:14:32 +01:00
elseif ( BSD )
2022-09-19 22:23:31 +02:00
list ( APPEND LIBFASTFETCH_SRC
2023-01-24 10:46:00 +01:00
s r c / c o m m o n / d b u s . c
2023-01-28 12:40:12 +01:00
s r c / c o m m o n / i o / i o _ u n i x . c
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / n e t w o r k i n g _ l i n u x . c
s r c / c o m m o n / p r o c e s s i n g _ l i n u x . c
s r c / c o m m o n / s y s c t l . c
2023-01-10 12:27:51 +08:00
s r c / d e t e c t i o n / b a t t e r y / b a t t e r y _ b s d . c
2022-12-29 20:12:14 +08:00
s r c / d e t e c t i o n / b i o s / b i o s _ b s d . c
2023-01-24 10:46:00 +01:00
s r c / d e t e c t i o n / b l u e t o o t h / b l u e t o o t h _ l i n u x . c
2023-06-15 10:12:05 +08:00
s r c / d e t e c t i o n / b o a r d / b o a r d _ b s d . c
2023-06-24 06:26:55 +00:00
s r c / d e t e c t i o n / b r i g h t n e s s / b r i g h t n e s s _ b s d . c
2023-06-15 10:15:31 +08:00
s r c / d e t e c t i o n / c h a s s i s / c h a s s i s _ b s d . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / c p u / c p u _ b s d . c
2023-03-17 17:56:31 +08:00
s r c / d e t e c t i o n / c p u u s a g e / c p u u s a g e _ b s d . c
2022-11-23 12:10:45 +08:00
s r c / d e t e c t i o n / c u r s o r / c u r s o r _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / d i s k / d i s k _ b s d . c
2022-11-24 18:54:52 +08:00
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / d i s p l a y s e r v e r _ l i n u x . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / w a y l a n d . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / w m d e . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / x c b . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / l i n u x / x l i b . c
s r c / d e t e c t i o n / f o n t / f o n t _ l i n u x . c
s r c / d e t e c t i o n / g p u / g p u _ l i n u x . c
2023-02-14 17:46:21 +08:00
s r c / d e t e c t i o n / g t k _ q t / g t k . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / h o s t / h o s t _ b s d . c
2023-06-20 23:01:18 +08:00
s r c / d e t e c t i o n / l m / l m _ l i n u x . c
2023-06-06 11:26:29 +08:00
s r c / d e t e c t i o n / i c o n s / i c o n s _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / l o c a l i p / l o c a l i p _ l i n u x . c
2023-06-15 14:22:47 +00:00
s r c / d e t e c t i o n / g a m e p a d / g a m e p a d _ b s d . c
2022-11-24 18:54:52 +08:00
s r c / d e t e c t i o n / m e d i a / m e d i a _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / m e m o r y / m e m o r y _ b s d . c
2023-08-09 16:31:24 +08:00
s r c / d e t e c t i o n / m o n i t o r / m o n i t o r _ n o s u p p o r t . c
2022-10-06 17:47:49 +08:00
s r c / d e t e c t i o n / o p e n g l / o p e n g l _ l i n u x . c
2022-11-24 18:54:52 +08:00
s r c / d e t e c t i o n / o s / o s _ l i n u x . c
2022-10-13 21:43:31 +02:00
s r c / d e t e c t i o n / p a c k a g e s / p a c k a g e s _ l i n u x . c
2022-10-09 23:23:46 +08:00
s r c / d e t e c t i o n / p o w e r a d a p t e r / p o w e r a d a p t e r _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / p r o c e s s e s / p r o c e s s e s _ b s d . c
2023-02-14 17:46:21 +08:00
s r c / d e t e c t i o n / g t k _ q t / q t . c
2023-01-26 15:48:28 +01:00
s r c / d e t e c t i o n / s o u n d / s o u n d _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / s w a p / s w a p _ b s d . c
2023-06-22 04:06:08 +00:00
s r c / d e t e c t i o n / t e m p s / t e m p s _ b s d . c
2022-11-24 18:54:52 +08:00
s r c / d e t e c t i o n / t e r m i n a l f o n t / t e r m i n a l f o n t _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / t e r m i n a l s h e l l / t e r m i n a l s h e l l _ l i n u x . c
2023-07-26 10:27:40 +08:00
s r c / d e t e c t i o n / t e r m i n a l s i z e / t e r m i n a l s i z e _ l i n u x . c
2023-06-08 14:32:15 +08:00
s r c / d e t e c t i o n / t h e m e / t h e m e _ l i n u x . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / u p t i m e / u p t i m e _ b s d . c
s r c / d e t e c t i o n / u s e r s / u s e r s _ l i n u x . c
2023-06-06 20:43:38 +08:00
s r c / d e t e c t i o n / w a l l p a p e r / w a l l p a p e r _ l i n u x . c
2023-06-15 15:55:02 +00:00
s r c / d e t e c t i o n / w i f i / w i f i _ b s d . c
2022-11-24 18:54:52 +08:00
s r c / d e t e c t i o n / w m t h e m e / w m t h e m e _ l i n u x . c
2023-01-15 15:57:26 +01:00
s r c / u t i l / p l a t f o r m / F F P l a t f o r m _ u n i x . c
2022-09-23 00:10:48 +02:00
)
2022-11-20 18:14:32 +01:00
elseif ( APPLE )
2022-10-27 10:46:33 +08:00
list ( APPEND LIBFASTFETCH_SRC
2023-01-28 12:40:12 +01:00
s r c / c o m m o n / i o / i o _ u n i x . c
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / n e t w o r k i n g _ l i n u x . c
s r c / c o m m o n / p r o c e s s i n g _ l i n u x . c
s r c / c o m m o n / s y s c t l . c
s r c / d e t e c t i o n / b a t t e r y / b a t t e r y _ a p p l e . c
2022-12-29 01:24:34 +08:00
s r c / d e t e c t i o n / b i o s / b i o s _ a p p l e . c
2023-01-24 22:13:53 +08:00
s r c / d e t e c t i o n / b l u e t o o t h / b l u e t o o t h _ a p p l e . m
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / b o a r d / b o a r d _ n o s u p p o r t . c
2023-01-09 18:59:02 +08:00
s r c / d e t e c t i o n / b r i g h t n e s s / b r i g h t n e s s _ a p p l e . c
2022-12-24 22:48:10 +08:00
s r c / d e t e c t i o n / c h a s s i s / c h a s s i s _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / c p u / c p u _ a p p l e . c
2023-03-26 20:41:03 +08:00
s r c / d e t e c t i o n / c p u u s a g e / c p u u s a g e _ a p p l e . c
2023-03-20 11:14:58 +08:00
s r c / d e t e c t i o n / c u r s o r / c u r s o r _ a p p l e . m
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / d i s k / d i s k _ b s d . c
s r c / d e t e c t i o n / d i s p l a y s e r v e r / d i s p l a y s e r v e r _ a p p l e . c
s r c / d e t e c t i o n / f o n t / f o n t _ a p p l e . m
s r c / d e t e c t i o n / g p u / g p u _ a p p l e . c
s r c / d e t e c t i o n / h o s t / h o s t _ a p p l e . c
2023-06-20 23:01:18 +08:00
s r c / d e t e c t i o n / l m / l m _ n o s u p p o r t . c
2023-06-06 11:26:29 +08:00
s r c / d e t e c t i o n / i c o n s / i c o n s _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / l o c a l i p / l o c a l i p _ l i n u x . c
2023-02-01 20:23:46 +08:00
s r c / d e t e c t i o n / g a m e p a d / g a m e p a d _ a p p l e . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / m e d i a / m e d i a _ a p p l e . m
s r c / d e t e c t i o n / m e m o r y / m e m o r y _ a p p l e . c
2023-08-11 16:45:16 +08:00
s r c / d e t e c t i o n / m o n i t o r / m o n i t o r _ a p p l e . m
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / o p e n g l / o p e n g l _ a p p l e . c
s r c / d e t e c t i o n / o s / o s _ a p p l e . m
s r c / d e t e c t i o n / p a c k a g e s / p a c k a g e s _ a p p l e . c
s r c / d e t e c t i o n / p o w e r a d a p t e r / p o w e r a d a p t e r _ a p p l e . c
s r c / d e t e c t i o n / p r o c e s s e s / p r o c e s s e s _ b s d . c
2023-01-25 14:28:13 +08:00
s r c / d e t e c t i o n / s o u n d / s o u n d _ a p p l e . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / s w a p / s w a p _ a p p l e . c
s r c / d e t e c t i o n / t e m p s / t e m p s _ a p p l e . c
s r c / d e t e c t i o n / t e r m i n a l f o n t / t e r m i n a l f o n t _ a p p l e . m
s r c / d e t e c t i o n / t e r m i n a l s h e l l / t e r m i n a l s h e l l _ l i n u x . c
2023-07-26 10:27:40 +08:00
s r c / d e t e c t i o n / t e r m i n a l s i z e / t e r m i n a l s i z e _ l i n u x . c
2023-06-08 14:32:15 +08:00
s r c / d e t e c t i o n / t h e m e / t h e m e _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / u p t i m e / u p t i m e _ b s d . c
s r c / d e t e c t i o n / u s e r s / u s e r s _ l i n u x . c
2023-06-06 18:34:54 +08:00
s r c / d e t e c t i o n / w a l l p a p e r / w a l l p a p e r _ a p p l e . c
2022-11-28 16:34:56 +08:00
s r c / d e t e c t i o n / w i f i / w i f i _ a p p l e . m
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / w m t h e m e / w m t h e m e _ a p p l e . m
s r c / u t i l / a p p l e / c f _ h e l p e r s . c
s r c / u t i l / a p p l e / o s a s c r i p t . m
2023-01-15 15:57:26 +01:00
s r c / u t i l / p l a t f o r m / F F P l a t f o r m _ u n i x . c
2022-10-27 10:46:33 +08:00
)
2022-11-20 18:14:32 +01:00
elseif ( WIN32 )
2022-10-05 00:41:43 +08:00
list ( APPEND LIBFASTFETCH_SRC
2023-01-28 12:40:12 +01:00
s r c / c o m m o n / i o / i o _ w i n d o w s . c
2022-11-02 01:03:01 +08:00
s r c / c o m m o n / n e t w o r k i n g _ w i n d o w s . c
2022-11-20 18:14:32 +01:00
s r c / c o m m o n / p r o c e s s i n g _ w i n d o w s . c
2022-11-22 01:42:26 +08:00
s r c / d e t e c t i o n / b a t t e r y / b a t t e r y _ w i n d o w s . c
2022-11-21 17:27:37 +08:00
s r c / d e t e c t i o n / b i o s / b i o s _ w i n d o w s . c
2023-01-24 21:01:21 +08:00
s r c / d e t e c t i o n / b l u e t o o t h / b l u e t o o t h _ w i n d o w s . c
2022-11-21 17:34:54 +08:00
s r c / d e t e c t i o n / b o a r d / b o a r d _ w i n d o w s . c
2023-01-09 19:24:19 +08:00
s r c / d e t e c t i o n / b r i g h t n e s s / b r i g h t n e s s _ w i n d o w s . c p p
2023-06-23 11:41:22 +08:00
s r c / d e t e c t i o n / c h a s s i s / c h a s s i s _ w i n d o w s . c p p
2022-11-21 22:26:50 +08:00
s r c / d e t e c t i o n / c p u / c p u _ w i n d o w s . c
2023-03-17 17:56:31 +08:00
s r c / d e t e c t i o n / c p u u s a g e / c p u u s a g e _ w i n d o w s . c
2022-11-23 12:10:45 +08:00
s r c / d e t e c t i o n / c u r s o r / c u r s o r _ w i n d o w s . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / d i s k / d i s k _ w i n d o w s . c
2023-01-09 19:53:41 +08:00
s r c / d e t e c t i o n / d i s p l a y s e r v e r / d i s p l a y s e r v e r _ w i n d o w s . c
2022-11-23 19:57:55 +08:00
s r c / d e t e c t i o n / f o n t / f o n t _ w i n d o w s . c
2023-03-25 13:04:44 +08:00
s r c / d e t e c t i o n / g p u / g p u _ w i n d o w s . c
2022-11-21 17:45:47 +08:00
s r c / d e t e c t i o n / h o s t / h o s t _ w i n d o w s . c
2023-06-06 14:47:51 +08:00
s r c / d e t e c t i o n / i c o n s / i c o n s _ w i n d o w s . c
2023-06-20 23:01:18 +08:00
s r c / d e t e c t i o n / l m / l m _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / l o c a l i p / l o c a l i p _ w i n d o w s . c
2023-03-24 23:38:29 +08:00
s r c / d e t e c t i o n / g a m e p a d / g a m e p a d _ w i n d o w s . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / m e d i a / m e d i a _ n o s u p p o r t . c
2022-11-21 12:18:36 +08:00
s r c / d e t e c t i o n / m e m o r y / m e m o r y _ w i n d o w s . c
2023-08-09 16:31:24 +08:00
s r c / d e t e c t i o n / m o n i t o r / m o n i t o r _ w i n d o w s . c
2022-10-05 23:51:59 +08:00
s r c / d e t e c t i o n / o p e n g l / o p e n g l _ w i n d o w s . c
2022-10-06 20:01:42 +08:00
s r c / d e t e c t i o n / o s / o s _ w i n d o w s . c p p
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / p a c k a g e s / p a c k a g e s _ w i n d o w s . c
s r c / d e t e c t i o n / p o w e r a d a p t e r / p o w e r a d a p t e r _ n o s u p p o r t . c
2023-05-11 19:55:31 +08:00
s r c / d e t e c t i o n / p r o c e s s e s / p r o c e s s e s _ w i n d o w s . c
2023-01-25 17:17:31 +08:00
s r c / d e t e c t i o n / s o u n d / s o u n d _ w i n d o w s . c p p
2023-05-11 19:55:31 +08:00
s r c / d e t e c t i o n / s w a p / s w a p _ w i n d o w s . c
2022-10-12 20:40:38 +08:00
s r c / d e t e c t i o n / t e r m i n a l f o n t / t e r m i n a l f o n t _ w i n d o w s . c
2023-05-11 19:55:31 +08:00
s r c / d e t e c t i o n / t e r m i n a l s h e l l / t e r m i n a l s h e l l _ w i n d o w s . c
2023-07-26 10:27:40 +08:00
s r c / d e t e c t i o n / t e r m i n a l s i z e / t e r m i n a l s i z e _ w i n d o w s . c
2023-02-23 21:31:33 +08:00
s r c / d e t e c t i o n / t e m p s / t e m p s _ w i n d o w s . c p p
2023-06-08 14:32:15 +08:00
s r c / d e t e c t i o n / t h e m e / t h e m e _ n o s u p p o r t . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / u p t i m e / u p t i m e _ w i n d o w s . c
2022-11-23 19:11:10 +08:00
s r c / d e t e c t i o n / u s e r s / u s e r s _ w i n d o w s . c
2023-06-06 15:48:24 +08:00
s r c / d e t e c t i o n / w a l l p a p e r / w a l l p a p e r _ w i n d o w s . c
2022-11-26 18:23:08 +08:00
s r c / d e t e c t i o n / w i f i / w i f i _ w i n d o w s . c
2022-11-20 18:14:32 +01:00
s r c / d e t e c t i o n / w m t h e m e / w m t h e m e _ w i n d o w s . c
2022-10-13 18:12:54 +08:00
s r c / u t i l / w i n d o w s / g e t l i n e . c
2023-01-25 15:49:31 +08:00
s r c / u t i l / w i n d o w s / c o m . c p p
2022-11-26 12:55:48 +08:00
s r c / u t i l / w i n d o w s / r e g i s t r y . c
2022-11-22 01:33:22 +08:00
s r c / u t i l / w i n d o w s / u n i c o d e . c
2022-11-20 18:14:32 +01:00
s r c / u t i l / w i n d o w s / w m i . c p p
2023-01-15 15:57:26 +01:00
s r c / u t i l / p l a t f o r m / F F P l a t f o r m _ w i n d o w s . c
2022-09-04 12:43:30 +02:00
)
endif ( )
2023-09-20 23:55:36 +08:00
if ( ENABLE_DIRECTX_HEADERS )
message ( STATUS "Enabling DirectX headers for WSL" )
list ( APPEND LIBFASTFETCH_SRC src/detection/gpu/gpu_wsl.cpp )
endif ( )
2023-07-31 14:10:53 +08:00
include ( CheckFunctionExists )
check_function_exists ( wcwidth HAVE_WCWIDTH )
if ( NOT HAVE_WCWIDTH )
2023-08-14 20:19:23 +08:00
list ( APPEND LIBFASTFETCH_SRC src/3rdparty/mk_wcwidch/wcwidth.c )
2023-07-31 14:10:53 +08:00
endif ( )
2023-08-19 11:10:14 +08:00
if ( ENABLE_SYSTEM_YYJSON )
find_package ( yyjson )
if ( yyjson_FOUND )
message ( STATUS "System provided yyjson is used" )
else ( )
message ( FATAL_ERROR "ENABLE_SYSTEM_YYJSON is set but system provided yyjson is not found" )
endif ( )
else ( )
list ( APPEND LIBFASTFETCH_SRC
s r c / 3 r d p a r t y / y y j s o n / y y j s o n . c
)
endif ( )
2022-09-04 12:43:30 +02:00
add_library ( libfastfetch OBJECT
$ { L I B F A S T F E T C H _ S R C }
)
2023-09-20 23:55:36 +08:00
2023-08-19 11:10:14 +08:00
if ( yyjson_FOUND )
target_compile_definitions ( libfastfetch PRIVATE FF_USE_SYSTEM_YYJSON )
target_link_libraries ( libfastfetch PRIVATE yyjson )
endif ( )
2022-09-04 12:43:30 +02:00
2023-09-12 15:53:58 +08:00
target_compile_definitions ( libfastfetch PUBLIC _GNU_SOURCE _XOPEN_SOURCE __STDC_WANT_LIB_EXT1__=1 )
2023-03-24 23:21:39 +08:00
if ( WIN32 )
target_compile_definitions ( libfastfetch PUBLIC WIN32_LEAN_AND_MEAN=1 )
2023-09-19 14:43:55 +08:00
elseif ( APPLE )
target_compile_definitions ( libfastfetch PUBLIC _DARWIN_C_SOURCE )
2023-03-24 23:21:39 +08:00
endif ( )
2022-09-29 14:22:56 +08:00
2023-07-31 14:10:53 +08:00
if ( HAVE_WCWIDTH )
target_compile_definitions ( libfastfetch PRIVATE FF_HAVE_WCWIDTH )
endif ( )
2022-11-24 18:10:49 +01:00
function ( ff_lib_enable VARNAME PKGCONFIG_NAMES CMAKE_NAME )
2022-09-05 19:56:00 +02:00
if ( NOT ENABLE_ ${ VARNAME } )
return ( )
2022-04-13 23:13:25 +02:00
endif ( )
2022-04-11 16:19:02 +02:00
2022-11-24 18:10:49 +01:00
if ( PKG_CONFIG_FOUND )
pkg_search_module ( ${ VARNAME } QUIET ${ PKGCONFIG_NAMES } )
endif ( )
if ( NOT ${ VARNAME } _FOUND )
find_package ( ${ CMAKE_NAME } QUIET )
set ( ${ VARNAME } _FOUND ${ ${CMAKE_NAME } _FOUND} )
set ( ${ VARNAME } _INCLUDE_DIRS ${ ${CMAKE_NAME } _INCLUDE_DIRS} )
set ( ${ VARNAME } _LIBRARIES ${ ${CMAKE_NAME } _LIBRARIES} )
set ( ${ VARNAME } _CFLAGS_OTHER ${ ${CMAKE_NAME } _CFLAGS_OTHER} )
endif ( )
2022-09-19 18:30:00 +02:00
if ( NOT ${ VARNAME } _FOUND )
2022-11-24 18:10:49 +01:00
message ( STATUS "Library: missing: ${VARNAME}" )
2022-09-19 18:30:00 +02:00
return ( )
endif ( )
2022-11-24 18:10:49 +01:00
message ( STATUS "Library: found ${VARNAME}" )
2022-09-19 18:30:00 +02:00
target_compile_definitions ( libfastfetch PRIVATE FF_HAVE_ ${ VARNAME } =1 )
target_include_directories ( libfastfetch PRIVATE ${ ${VARNAME } _INCLUDE_DIRS} )
foreach ( FLAG ${ ${VARNAME } _CFLAGS_OTHER} )
if ( FLAG MATCHES "-D.*" )
string ( SUBSTRING ${ FLAG } 2 -1 FLAG )
target_compile_definitions ( libfastfetch PRIVATE ${ FLAG } )
2022-05-29 16:23:56 +02:00
endif ( )
2022-09-05 19:56:00 +02:00
endforeach ( )
endfunction ( )
2022-11-24 18:10:49 +01:00
ff_lib_enable ( LIBPCI
" l i b p c i "
" P c i "
)
ff_lib_enable ( VULKAN
" v u l k a n "
" V u l k a n "
)
ff_lib_enable ( WAYLAND
" w a y l a n d - c l i e n t "
" W a y l a n d C l i e n t "
)
ff_lib_enable ( XCB_RANDR
" x c b - r a n d r "
" X c b R a n d r "
)
ff_lib_enable ( XCB
" x c b "
" X c b "
)
ff_lib_enable ( XRANDR
" x r a n d r "
" X R a n d r "
)
ff_lib_enable ( X11
" x 1 1 "
" X 1 1 "
)
ff_lib_enable ( GIO
" g i o - 2 . 0 "
" G I O "
)
ff_lib_enable ( DCONF
" d c o n f "
" D C o n f "
)
ff_lib_enable ( DBUS
" d b u s - 1 "
" D B u s "
)
ff_lib_enable ( XFCONF
" l i b x f c o n f - 0 "
" X F C o n f "
)
ff_lib_enable ( SQLITE3
" s q l i t e 3 "
" S Q L i t e 3 "
)
ff_lib_enable ( RPM
" r p m "
" R P M "
)
ff_lib_enable ( IMAGEMAGICK7
" M a g i c k C o r e - 7 . Q 1 6 H D R I ; M a g i c k C o r e - 7 . Q 1 6 ; M a g i c k C o r e - 7 ; / u s r / l i b / i m a g e m a g i c k 7 / p k g c o n f i g / M a g i c k C o r e - 7 . Q 1 6 H D R I . p c ; / u s r / l i b / i m a g e m a g i c k 7 / p k g c o n f i g / M a g i c k C o r e - 7 . Q 1 6 . p c ; / u s r / l i b / i m a g e m a g i c k 7 / p k g c o n f i g / M a g i c k C o r e - 7 . p c "
" I m a g e M a g i c k 7 "
)
ff_lib_enable ( IMAGEMAGICK6
" M a g i c k C o r e - 6 . Q 1 6 H D R I ; M a g i c k C o r e - 6 . Q 1 6 ; M a g i c k C o r e - 6 ; / u s r / l i b / i m a g e m a g i c k 6 / p k g c o n f i g / M a g i c k C o r e - 6 . Q 1 6 H D R I . p c ; / u s r / l i b / i m a g e m a g i c k 6 / p k g c o n f i g / M a g i c k C o r e - 6 . Q 1 6 . p c ; / u s r / l i b / i m a g e m a g i c k 6 / p k g c o n f i g / M a g i c k C o r e - 6 . p c "
" I m a g e M a g i c k 6 "
)
ff_lib_enable ( ZLIB
" z l i b "
" Z L I B "
)
ff_lib_enable ( CHAFA
" c h a f a > = 1 . 1 0 "
" C h a f a "
)
ff_lib_enable ( EGL
" e g l "
" E G L "
)
ff_lib_enable ( GLX
" g l x "
" G L X "
)
ff_lib_enable ( OSMESA
" o s m e s a "
" O S M e s a "
)
ff_lib_enable ( OPENCL
" O p e n C L "
" O p e n C L "
)
2023-01-17 12:45:26 +08:00
ff_lib_enable ( LIBNM
" l i b n m "
" l i b n m "
)
2022-11-24 18:10:49 +01:00
ff_lib_enable ( FREETYPE
" f r e e t y p e 2 "
" F r e e T y p e 2 "
)
2023-01-26 15:48:28 +01:00
ff_lib_enable ( PULSE
" l i b p u l s e "
" P u l s e "
2023-01-26 00:49:43 +08:00
)
2023-07-09 17:22:04 +08:00
ff_lib_enable ( DDCUTIL
" d d c u t i l "
" D d c u t i l "
)
2023-09-20 23:55:36 +08:00
ff_lib_enable ( DIRECTX_HEADERS
" D i r e c t X - H e a d e r s "
" D i r e c t X - H e a d e r s "
)
2022-06-05 00:18:40 +02:00
2022-10-12 14:13:20 +08:00
if ( ENABLE_THREADS )
target_compile_definitions ( libfastfetch PRIVATE FF_HAVE_THREADS )
2022-10-13 18:12:54 +08:00
if ( CMAKE_USE_PTHREADS_INIT ) #Threads::Threads is not set for WIN32
target_link_libraries ( libfastfetch PRIVATE Threads::Threads )
endif ( )
2022-10-12 14:13:20 +08:00
endif ( )
2023-07-13 09:53:31 +08:00
if ( ENABLE_PCI_MEMORY )
target_compile_definitions ( libfastfetch PRIVATE FF_USE_PCI_MEMORY )
endif ( )
2023-08-09 16:07:01 +08:00
if ( LINUX )
target_link_libraries ( libfastfetch
P R I V A T E " m "
)
elseif ( APPLE )
2022-09-14 09:51:08 -07:00
target_link_libraries ( libfastfetch
2022-09-17 15:39:07 +08:00
P R I V A T E " - f r a m e w o r k C o c o a "
2023-03-01 15:40:18 +08:00
P R I V A T E " - f r a m e w o r k C o r e F o u n d a t i o n "
2023-01-25 14:28:13 +08:00
P R I V A T E " - f r a m e w o r k C o r e A u d i o "
2023-01-24 11:21:08 +08:00
P R I V A T E " - f r a m e w o r k C o r e V i d e o "
2023-03-01 15:40:18 +08:00
P R I V A T E " - f r a m e w o r k C o r e W L A N "
2023-01-24 22:13:53 +08:00
P R I V A T E " - f r a m e w o r k I O B l u e t o o t h "
2023-03-01 15:40:18 +08:00
P R I V A T E " - f r a m e w o r k I O K i t "
P R I V A T E " - f r a m e w o r k O p e n G L "
P R I V A T E " - f r a m e w o r k O p e n C L "
2023-04-18 14:57:25 +08:00
P R I V A T E " - f r a m e w o r k S y s t e m C o n f i g u r a t i o n "
2023-03-01 15:40:18 +08:00
P R I V A T E " - w e a k _ f r a m e w o r k C o r e D i s p l a y "
2023-01-07 19:46:56 +08:00
P R I V A T E " - w e a k _ f r a m e w o r k D i s p l a y S e r v i c e s - F / S y s t e m / L i b r a r y / P r i v a t e F r a m e w o r k s "
2023-03-01 15:40:18 +08:00
P R I V A T E " - w e a k _ f r a m e w o r k M e d i a R e m o t e - F / S y s t e m / L i b r a r y / P r i v a t e F r a m e w o r k s "
2022-09-14 09:51:08 -07:00
)
2022-10-14 16:39:48 +08:00
elseif ( WIN32 )
2022-12-31 17:35:25 +08:00
target_compile_definitions ( libfastfetch PRIVATE -D_WIN32_WINNT=0x0601 )
2022-10-05 00:41:43 +08:00
target_link_libraries ( libfastfetch
2023-01-24 21:01:21 +08:00
P R I V A T E " b t h p r o p s "
2022-10-09 23:23:46 +08:00
P R I V A T E " d w m a p i "
P R I V A T E " g d i 3 2 "
P R I V A T E " i p h l p a p i "
2022-10-14 16:39:48 +08:00
P R I V A T E " o l e 3 2 "
P R I V A T E " o l e a u t 3 2 "
P R I V A T E " o p e n g l 3 2 "
2022-10-12 19:35:23 +08:00
P R I V A T E " w s 2 _ 3 2 "
2022-10-15 19:51:33 +08:00
P R I V A T E " n t d l l "
2022-10-15 22:35:04 +08:00
P R I V A T E " v e r s i o n "
2022-11-22 01:33:22 +08:00
P R I V A T E " s e t u p a p i "
2023-03-24 23:38:29 +08:00
P R I V A T E " h i d "
2022-11-23 19:11:10 +08:00
P R I V A T E " w t s a p i 3 2 "
2023-07-08 10:28:39 +08:00
P R I V A T E " d x v a 2 "
2022-10-05 00:41:43 +08:00
)
2023-06-15 14:22:47 +00:00
elseif ( BSD )
target_link_libraries ( libfastfetch
2023-08-22 16:14:24 +08:00
P R I V A T E " m "
2023-06-15 14:22:47 +00:00
P R I V A T E " u s b h i d "
)
2023-08-14 10:33:11 +08:00
elseif ( ANDROID )
2023-08-14 10:51:54 +08:00
CHECK_LIBRARY_EXISTS ( -l:libandroid-wordexp.a wordexp "" HAVE_LIBANDROID_WORDEXP_STATIC )
if ( HAVE_LIBANDROID_WORDEXP_STATIC )
2023-08-14 10:33:11 +08:00
target_link_libraries ( libfastfetch
2023-08-14 10:51:54 +08:00
P R I V A T E - l : l i b a n d r o i d - w o r d e x p . a
2023-08-14 10:33:11 +08:00
)
2023-08-14 10:51:54 +08:00
else ( )
CHECK_LIBRARY_EXISTS ( android-wordexp wordexp "" HAVE_LIBANDROID_WORDEXP )
if ( HAVE_LIBANDROID_WORDEXP )
target_link_libraries ( libfastfetch
P R I V A T E a n d r o i d - w o r d e x p
)
endif ( )
2023-08-14 10:33:11 +08:00
endif ( )
2022-09-14 09:51:08 -07:00
endif ( )
2022-09-14 14:55:28 +02:00
2022-02-09 15:20:07 +01:00
target_include_directories ( libfastfetch
P U B L I C $ { P R O J E C T _ B I N A R Y _ D I R }
P U B L I C $ { P R O J E C T _ S O U R C E _ D I R } / s r c
2021-04-09 14:07:05 +02:00
)
2022-02-09 15:20:07 +01:00
target_link_libraries ( libfastfetch
P R I V A T E $ { C M A K E _ D L _ L I B S }
2021-02-18 22:25:36 +01:00
)
2022-06-08 16:25:14 +02:00
######################
# Executable targets #
######################
2022-02-09 15:20:07 +01:00
2021-02-27 18:30:05 +01:00
add_executable ( fastfetch
s r c / f a s t f e t c h . c
2022-02-09 15:20:07 +01:00
)
2022-12-08 18:33:43 +08:00
target_compile_definitions ( fastfetch
2022-12-10 13:10:06 +08:00
P R I V A T E F A S T F E T C H _ T A R G E T _ B I N A R Y _ N A M E = f a s t f e t c h
2022-12-08 18:33:43 +08:00
)
2022-02-09 15:20:07 +01:00
target_link_libraries ( fastfetch
P R I V A T E l i b f a s t f e t c h
2021-02-27 18:30:05 +01:00
)
add_executable ( flashfetch
s r c / f l a s h f e t c h . c
)
2022-12-08 18:33:43 +08:00
target_compile_definitions ( flashfetch
2022-12-10 13:10:06 +08:00
P R I V A T E F A S T F E T C H _ T A R G E T _ B I N A R Y _ N A M E = f l a s h f e t c h
2022-12-08 18:33:43 +08:00
)
2022-02-09 15:20:07 +01:00
target_link_libraries ( flashfetch
P R I V A T E l i b f a s t f e t c h
2021-02-27 18:30:05 +01:00
)
2023-09-20 23:55:36 +08:00
# Prevent fastfetch from linking to libstdc++
set ( CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "" )
set ( CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "" )
set_target_properties ( fastfetch PROPERTIES LINKER_LANGUAGE C )
set_target_properties ( flashfetch PROPERTIES LINKER_LANGUAGE C )
2022-11-06 01:33:06 +08:00
if ( WIN32 )
set ( TARGET_NAME fastfetch )
target_sources ( fastfetch
2022-12-08 18:33:43 +08:00
P R I V A T E s r c / u t i l / w i n d o w s / v e r s i o n . r c
2022-11-06 01:33:06 +08:00
)
set ( TARGET_NAME flashfetch )
target_sources ( flashfetch
2022-12-08 18:33:43 +08:00
P R I V A T E s r c / u t i l / w i n d o w s / v e r s i o n . r c
2022-11-06 01:33:06 +08:00
)
endif ( )
2022-06-08 16:25:14 +02:00
###################
# Testing targets #
###################
2022-02-21 11:40:33 +05:00
2022-02-21 12:22:29 +05:00
if ( BUILD_TESTS )
add_executable ( fastfetch-test-strbuf
t e s t s / s t r b u f . c
)
target_link_libraries ( fastfetch-test-strbuf
P R I V A T E l i b f a s t f e t c h
)
2022-09-20 22:45:36 +08:00
add_executable ( fastfetch-test-list
t e s t s / l i s t . c
)
target_link_libraries ( fastfetch-test-list
P R I V A T E l i b f a s t f e t c h
)
2022-02-21 12:22:29 +05:00
enable_testing ( )
add_test ( NAME test-strbuf COMMAND fastfetch-test-strbuf )
2022-09-20 22:45:36 +08:00
add_test ( NAME test-list COMMAND fastfetch-test-list )
2022-02-21 12:22:29 +05:00
endif ( )
2022-02-21 11:40:33 +05:00
2022-06-08 16:25:14 +02:00
##################
# install target #
##################
2022-03-25 11:57:58 +01:00
include ( GNUInstallDirs )
2022-02-21 11:40:33 +05:00
2022-03-08 11:59:06 +01:00
install (
2022-07-21 14:37:13 +02:00
T A R G E T S f a s t f e t c h f l a s h f e t c h
2022-07-27 21:56:28 +02:00
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ B I N D I R } "
2022-03-08 11:59:06 +01:00
)
2022-02-21 11:40:33 +05:00
2022-03-08 11:59:06 +01:00
install (
2022-07-27 21:56:28 +02:00
F I L E S " $ { C M A K E _ S O U R C E _ D I R } / c o m p l e t i o n s / b a s h "
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ D A T A R O O T D I R } / b a s h - c o m p l e t i o n / c o m p l e t i o n s "
R E N A M E " $ { C M A K E _ P R O J E C T _ N A M E } "
2022-02-21 11:40:33 +05:00
)
2022-03-08 11:59:06 +01:00
install (
2022-08-12 21:39:27 +03:00
D I R E C T O R Y " $ { C M A K E _ S O U R C E _ D I R } / p r e s e t s "
2022-07-27 21:56:28 +02:00
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ D A T A R O O T D I R } / $ { C M A K E _ P R O J E C T _ N A M E } "
2022-03-08 11:59:06 +01:00
)
install (
2022-07-27 21:56:28 +02:00
F I L E S " $ { C M A K E _ S O U R C E _ D I R } / L I C E N S E "
D E S T I N A T I O N " $ { C M A K E _ I N S T A L L _ D A T A R O O T D I R } / l i c e n s e s / $ { C M A K E _ P R O J E C T _ N A M E } "
2022-02-21 11:40:33 +05:00
)
2022-03-25 11:57:58 +01:00
2022-06-08 16:25:14 +02:00
##################
# package target #
##################
2022-03-25 11:57:58 +01:00
2022-09-11 10:47:47 +02:00
set ( CPACK_GENERATOR "TGZ;ZIP" )
if ( LINUX )
set ( CPACK_GENERATOR "${CPACK_GENERATOR};DEB;RPM" )
set ( CPACK_DEBIAN_PACKAGE_SECTION, "utils" )
set ( CPACK_DEBIAN_PACKAGE_PRIORITY "optional" )
set ( CPACK_DEBIAN_PACKAGE_DEPENDS "libc6" )
set ( CPACK_RPM_PACKAGE_LICENSE "MIT" )
endif ( )
2022-07-26 22:13:09 +02:00
set ( CPACK_SET_DESTDIR ON )
2022-03-25 11:57:58 +01:00
set ( CPACK_PACKAGE_CONTACT "Linus Dierheimer <Linus@Dierheimer.de>" )
2022-04-23 11:24:24 +02:00
set ( CPACK_PACKAGE_DESCRIPTION " \
f a s t f e t c h i s a n e o f e t c h - l i k e t o o l f o r f e t c h i n g s y s t e m i n f o r m a t i o n a n d d i s p l a y i n g t h e m i n a p r e t t y w a y . \
I t i s w r i t t e n i n c t o a c h i e v e m u c h b e t t e r p e r f o r m a n c e . \
2022-03-25 11:57:58 +01:00
" )
include ( CPack )