From c3ef8bdc0d7a325c8ece072a2c38d1dbc290adb5 Mon Sep 17 00:00:00 2001 From: Alexander Golubev Date: Sat, 3 Feb 2024 11:47:04 +0300 Subject: [PATCH] Make dependency upon gtk optional Signed-off-by: Alexander Golubev --- CMakeLists.txt | 20 +++++++++++++------- src/CMakeLists.txt | 10 ++++++++-- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 97ca9fd..7e48150 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,10 +46,14 @@ tde_setup_paths( ) ##### optional stuff ############################ -option( WITH_BACKEND_LIBBFD "Build with libbfd backend" "ON" ) -option( WITH_BACKEND_LIBELF "Build with libelf backend" "OFF" ) -option( WITH_BACKEND_READONLY "Build with read-only backend" "OFF" ) +option( WITH_BACKEND_LIBBFD "Build with libbfd backend" ON ) +option( WITH_BACKEND_LIBELF "Build with libelf backend" OFF ) +option( WITH_BACKEND_READONLY "Build with read-only backend" OFF ) +option( WITH_GTK "Build support for GTK" OFF ) +# NOTE: WITH_GTK build gtk bindings to ease libr in gtk applications. +# It uses weak linkage, so gtk will be required during build +# only and not strictly necessary during runtime. #### configure checks ########################### @@ -95,10 +99,12 @@ if( NOT ZLIB_FOUND ) tde_message_fatal( "zlib are required, but not found on your system" ) endif( NOT ZLIB_FOUND ) -pkg_search_module( GTK gtk+-2.0 ) -if( NOT GTK_FOUND ) - tde_message_fatal( "gtk2 is required but was not found on your system" ) -endif( ) +if( WITH_GTK ) + pkg_search_module( GTK gtk+-2.0 ) + if( NOT GTK_FOUND ) + tde_message_fatal( "gtk2 is required but was not found on your system" ) + endif( ) +endif( WITH_GTK ) set( DL_LIBRARIES dl ) check_library_exists( ${DL_LIBRARIES} dlopen /lib HAVE_LIBDL ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9026ea2..272d74c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -34,10 +34,13 @@ set( ${target}_SRCS onecanvas.c libr-icons.c libr-i18n.c - libr-gtk.c libr.c ) +if( WITH_GTK ) + list( APPEND ${target}_SRCS libr-gtk.c ) +endif( WITH_GTK ) + tde_add_library( ${target} SHARED VERSION 1.0.0 @@ -61,10 +64,13 @@ set( ${target}_INCLUDES gettext.h libr-icons.h libr-i18n.h - libr-gtk.h libr.h ) +if( WITH_GTK ) + list( APPEND ${target}_INCLUDES libr-gtk.h ) +endif( WITH_GTK ) + install( FILES ${${target}_INCLUDES} DESTINATION ${INCLUDE_INSTALL_DIR}/libr