mirror of
https://codeberg.org/dnkl/yambar.git
synced 2025-04-22 12:25:38 +02:00
This allows us to a) move away from cairo's "toy" API, and b) let the user specify font options in a single font "name" string: Serif:size=10:weight=bold:slant=italic This also allows us to simplify the font code significantly (except for the fontconfig parts...); the font no longer sets itself in a cairo surface - font users do that; the font simply returns a cairo_scaled_font_t. Furthermore, font_clone() has now been simplified to basically just refcount the scaled font. I.e. there's no need to run the full constructor and lookup and instantiate the cairo scaled font again.
104 lines
2.9 KiB
CMake
104 lines
2.9 KiB
CMake
cmake_minimum_required(VERSION 3.9)
|
|
project(f00bar C)
|
|
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
set(CMAKE_C_EXTENSIONS OFF)
|
|
set(CMAKE_C_STANDARD 11)
|
|
|
|
set_property(DIRECTORY . APPEND PROPERTY COMPILE_DEFINITIONS
|
|
$<$<CONFIG:Debug>:_DEBUG>
|
|
)
|
|
|
|
set(CMAKE_C_FLAGS "-Wall -Werror ${CMAKE_C_FLAGS}")
|
|
|
|
find_package(Threads REQUIRED)
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
pkg_check_modules(XCB REQUIRED xcb xcb-randr xcb-render xcb-cursor) # Core
|
|
pkg_check_modules(FONTCONFIG REQUIRED fontconfig) # Core
|
|
pkg_check_modules(CAIRO REQUIRED cairo cairo-xcb cairo-ft) # Core
|
|
pkg_check_modules(YAML REQUIRED yaml-0.1) # Core (configuration)
|
|
|
|
pkg_check_modules(XCB_XKB REQUIRED xcb-xkb) # Module/xkb
|
|
pkg_check_modules(JSON REQUIRED json-c) # Module/i3
|
|
pkg_check_modules(UDEV REQUIRED libudev) # Module/battery
|
|
pkg_check_modules(MPD REQUIRED libmpdclient) # Module/mpd
|
|
pkg_check_modules(ALSA REQUIRED alsa) # Module/alsa
|
|
|
|
add_executable(f00bar
|
|
bar.c bar.h
|
|
config.c config.h
|
|
config-verify.c config-verify.h
|
|
decoration.h
|
|
font.c font.h
|
|
log.c log.h
|
|
main.c
|
|
module.c module.h
|
|
particle.c particle.h
|
|
tag.c tag.h
|
|
xcb.c xcb.h
|
|
yml.c yml.h
|
|
|
|
decorations/background.c decorations/background.h
|
|
decorations/stack.c decorations/stack.h
|
|
decorations/underline.c decorations/underline.h
|
|
|
|
particles/dynlist.c particles/dynlist.h
|
|
particles/empty.c particles/empty.h
|
|
particles/list.c particles/list.h
|
|
particles/map.c particles/map.h
|
|
particles/progress_bar.c particles/progress_bar.h
|
|
particles/ramp.c particles/ramp.h
|
|
particles/string.c particles/string.h
|
|
|
|
modules/alsa.c modules/alsa.h
|
|
modules/backlight.c modules/backlight.h
|
|
modules/battery.c modules/battery.h
|
|
modules/clock.c modules/clock.h
|
|
modules/i3.c modules/i3.h
|
|
modules/label.c modules/label.h
|
|
modules/mpd.c modules/mpd.h
|
|
modules/network.c modules/network.h
|
|
modules/removables.c modules/removables.h
|
|
modules/xkb.c modules/xkb.h
|
|
modules/xwindow.c modules/xwindow.h
|
|
)
|
|
|
|
target_compile_definitions(f00bar PRIVATE _GNU_SOURCE)
|
|
|
|
target_compile_options(f00bar PRIVATE
|
|
${XCB_CFLAGS_OTHER}
|
|
${FONTCONFIG_CFLAGS_OTHER}
|
|
${CAIRO_CFLAGS_OTHER}
|
|
${YAML_CFLAGS_OTHER}
|
|
${XCB_XKB_CFLAGS_OTHER}
|
|
${JSON_CFLAGS_OTHER}
|
|
${UDEV_CFLAGS_OTHER}
|
|
${MPD_CFLAGS_OTHER}
|
|
${ALSA_CFLAGS_OTHER}
|
|
)
|
|
|
|
target_include_directories(f00bar PRIVATE
|
|
${XCB_INCLUDE_DIRS}
|
|
${FONTCONFIG_INCLUDE_DIRS}
|
|
${CAIRO_INCLUDE_DIRS}
|
|
${YAML_INCLUDE_DIRS}
|
|
${XCB_XKB_INCLUDE_DIRS}
|
|
${JSON_INCLUDE_DIRS}
|
|
${UDEV_INCLUDE_DIRS}
|
|
${MPD_INCLUDE_DIRS}
|
|
${ALSA_INCLUDE_DIRS}
|
|
)
|
|
|
|
target_link_libraries(f00bar
|
|
${CMAKE_THREAD_LIBS_INIT}
|
|
${XCB_LIBRARIES}
|
|
${FONTCONFIG_LIBRARIES}
|
|
${CAIRO_LIBRARIES}
|
|
${YAML_LIBRARIES}
|
|
${XCB_XKB_LIBRARIES}
|
|
${JSON_LIBRARIES}
|
|
${UDEV_LIBRARIES}
|
|
${MPD_LIBRARIES}
|
|
${ALSA_LIBRARIES}
|
|
)
|