mirror of
https://github.com/GerbilSoft/rom-properties.git
synced 2025-06-18 11:35:38 -04:00
Fix some issues causing XFCE to be incorrectly enabled if GTK2 is missing.
BUILD_XFCE is an option; BUILD_GTK2 is not. We should probably get rid of BUILD_GTK2 entirely, since I'm not planning on adding support for GNOME 2 Nautilus anytime soon. Also, don't attempt to build rom-properties-glib if none of the GTK UI frontends are being built. Fixes CMake issues when building on KDE Neon. (KF6 testing)
This commit is contained in:
parent
ef20c58260
commit
16554a91aa
@ -167,10 +167,10 @@ ENDIF(BUILD_KDE4)
|
||||
IF(BUILD_KF5)
|
||||
SET(UI_FRONTENDS "${UI_FRONTENDS} KF5")
|
||||
ENDIF(BUILD_KF5)
|
||||
IF(BUILD_GTK2)
|
||||
IF(BUILD_XFCE)
|
||||
# NOTE: The GTK+ 2.x plugin is XFCE only right now.
|
||||
SET(UI_FRONTENDS "${UI_FRONTENDS} XFCE")
|
||||
ENDIF(BUILD_GTK2)
|
||||
ENDIF(BUILD_XFCE)
|
||||
IF(BUILD_GTK3)
|
||||
SET(UI_FRONTENDS "${UI_FRONTENDS} GTK3")
|
||||
ENDIF(BUILD_GTK3)
|
||||
|
@ -26,7 +26,7 @@ IF(UNIX AND NOT APPLE)
|
||||
OPTION_UI(KDE4 "Build the KDE4 plugin.")
|
||||
OPTION_UI(KF5 "Build the KDE Frameworks 5 plugin.")
|
||||
#OPTION_UI(KF6 "Build the KDE Frameworks 6 plugin. (EXPERIMENTAL)") # NOTE: Only enable if debugging!
|
||||
OPTION_UI(XFCE "Build the XFCE (GTK+ 2.x) plugin.")
|
||||
OPTION_UI(XFCE "Build the XFCE (GTK+ 2.x) plugin. (Thunar 1.7 and earlier)")
|
||||
OPTION_UI(GTK3 "Build the GTK+ 3.x plugin.")
|
||||
OPTION_UI(GTK4 "Build the GTK 4.x plugin. (EXPERIMENTAL)")
|
||||
|
||||
|
@ -184,7 +184,9 @@ IF(GLib2_FOUND AND GObject2_FOUND AND GIO_FOUND AND GIO-UNIX_FOUND)
|
||||
FIND_PACKAGE(GdkPixbuf2)
|
||||
IF(NOT GdkPixbuf2_FOUND)
|
||||
# Cannot build GTK2 frontends.
|
||||
SET(BUILD_GTK2 OFF CACHE INTERNAL "Build the GTK+ 2.x plugin." FORCE)
|
||||
SET(BUILD_GTK2 OFF)
|
||||
SET(BUILD_GTK2 OFF PARENT_SCOPE)
|
||||
SET(BUILD_XFCE OFF CACHE INTERNAL "Build the XFCE (GTK+ 2.x) plugin." FORCE)
|
||||
ENDIF(NOT GdkPixbuf2_FOUND)
|
||||
FIND_PACKAGE(Cairo)
|
||||
IF(NOT Cairo_FOUND)
|
||||
@ -194,7 +196,9 @@ IF(GLib2_FOUND AND GObject2_FOUND AND GIO_FOUND AND GIO-UNIX_FOUND)
|
||||
ENDIF(NOT Cairo_FOUND)
|
||||
ELSE(GLib2_FOUND AND GObject2_FOUND AND GIO_FOUND AND GIO-UNIX_FOUND)
|
||||
# Cannot build any GTK+ frontends.
|
||||
SET(BUILD_GTK2 OFF CACHE INTERNAL "Build the GTK+ 2.x plugin." FORCE)
|
||||
SET(BUILD_GTK2 OFF)
|
||||
SET(BUILD_GTK2 OFF PARENT_SCOPE)
|
||||
SET(BUILD_XFCE OFF CACHE INTERNAL "Build the XFCE (GTK+ 2.x) plugin." FORCE)
|
||||
SET(BUILD_GTK3 OFF CACHE INTERNAL "Build the GTK+ 3.x plugin." FORCE)
|
||||
SET(BUILD_GTK4 OFF CACHE INTERNAL "Build the GTK 4.x plugin." FORCE)
|
||||
ENDIF(GLib2_FOUND AND GObject2_FOUND AND GIO_FOUND AND GIO-UNIX_FOUND)
|
||||
@ -226,21 +230,23 @@ ENDIF(GSound_FOUND)
|
||||
# Write the config.h file.
|
||||
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/config.gtk.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.gtk.h")
|
||||
|
||||
# GLib common library
|
||||
ADD_LIBRARY(rom-properties-glib STATIC
|
||||
${${PROJECT_NAME}_GLib_SRCS}
|
||||
${${PROJECT_NAME}_GLib_H}
|
||||
)
|
||||
SET_TARGET_PROPERTIES(rom-properties-glib PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
||||
TARGET_INCLUDE_DIRECTORIES(rom-properties-glib
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> # gtk
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> # gtk
|
||||
PRIVATE $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src> # src
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src> # src
|
||||
)
|
||||
TARGET_LINK_LIBRARIES(rom-properties-glib PUBLIC glibresources)
|
||||
TARGET_LINK_LIBRARIES(rom-properties-glib PUBLIC GLib2::gio-unix GLib2::gio GLib2::gobject GLib2::glib)
|
||||
TARGET_LINK_LIBRARIES(rom-properties-glib PRIVATE romdata) # for config.librptext.h
|
||||
IF(BUILD_GTK2 OR BUILD_GTK3 OR BUILD_GTK4)
|
||||
# GLib common library
|
||||
ADD_LIBRARY(rom-properties-glib STATIC
|
||||
${${PROJECT_NAME}_GLib_SRCS}
|
||||
${${PROJECT_NAME}_GLib_H}
|
||||
)
|
||||
SET_TARGET_PROPERTIES(rom-properties-glib PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
||||
TARGET_INCLUDE_DIRECTORIES(rom-properties-glib
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> # gtk
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> # gtk
|
||||
PRIVATE $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src> # src
|
||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/src> # src
|
||||
)
|
||||
TARGET_LINK_LIBRARIES(rom-properties-glib PUBLIC glibresources)
|
||||
TARGET_LINK_LIBRARIES(rom-properties-glib PUBLIC GLib2::gio-unix GLib2::gio GLib2::gobject GLib2::glib)
|
||||
TARGET_LINK_LIBRARIES(rom-properties-glib PRIVATE romdata) # for config.librptext.h
|
||||
ENDIF(BUILD_GTK2 OR BUILD_GTK3 OR BUILD_GTK4)
|
||||
|
||||
# Unix: Add -fpic/-fPIC in order to use this static library in plugins.
|
||||
# NOTE: This will be propagated to subprojects.
|
||||
@ -250,15 +256,16 @@ IF(UNIX AND NOT APPLE)
|
||||
ENDIF(UNIX AND NOT APPLE)
|
||||
|
||||
# Build GTK+ 2.x frontends.
|
||||
IF(BUILD_GTK2)
|
||||
IF(BUILD_XFCE)
|
||||
# GTK2 minimum is 2.18.0. (gtk_widget_set_visible)
|
||||
FIND_PACKAGE(GTK2 2.18.0 ${REQUIRE_GTK2} COMPONENTS gtk)
|
||||
IF(GTK2_FOUND)
|
||||
ADD_SUBDIRECTORY(xfce)
|
||||
ELSE(GTK2_FOUND)
|
||||
SET(BUILD_GTK2 OFF CACHE INTERNAL "Build the GTK+ 2.x plugin." FORCE)
|
||||
SET(BUILD_GTK2 OFF PARENT_SCOPE)
|
||||
SET(BUILD_XFCE OFF CACHE INTERNAL "Build the GTK+ 2.x plugin." FORCE)
|
||||
ENDIF(GTK2_FOUND)
|
||||
ENDIF(BUILD_GTK2)
|
||||
ENDIF(BUILD_XFCE)
|
||||
|
||||
# Build GTK+ 3.x frontends.
|
||||
IF(BUILD_GTK3)
|
||||
|
@ -38,7 +38,9 @@ IF(GLib2_FOUND AND GObject2_FOUND AND GIO_FOUND AND GIO-UNIX_FOUND AND GdkPixbuf
|
||||
ELSE()
|
||||
# GTK+ 2.x (or required dependencies) were not found.
|
||||
# Disable the XFCE frontend.
|
||||
SET(BUILD_GTK2 OFF CACHE INTERNAL "Build the XFCE (GTK+ 2.x) plugin. (Thunar 1.7 and earlier)" FORCE)
|
||||
SET(BUILD_GTK2 OFF)
|
||||
SET(BUILD_GTK2 OFF PARENT_SCOPE)
|
||||
SET(BUILD_XFCE OFF CACHE INTERNAL "Build the XFCE (GTK+ 2.x) plugin. (Thunar 1.7 and earlier)" FORCE)
|
||||
ENDIF()
|
||||
|
||||
# Ensure we don't use functions not available in GLib 2.34.
|
||||
@ -110,7 +112,7 @@ IF(HAVE_GSOUND OR (HAVE_LIBCANBERRA AND HAVE_LIBCANBERRA_GTK2))
|
||||
SET(${PROJECT_NAME}_H ${${PROJECT_NAME}_H} ../MessageSound.hpp)
|
||||
ENDIF(HAVE_GSOUND OR (HAVE_LIBCANBERRA AND HAVE_LIBCANBERRA_GTK2))
|
||||
|
||||
IF(BUILD_GTK2)
|
||||
IF(BUILD_XFCE)
|
||||
ADD_LIBRARY(${PROJECT_NAME} MODULE ${${PROJECT_NAME}_SRCS} ${${PROJECT_NAME}_H})
|
||||
IF(ENABLE_PCH)
|
||||
TARGET_PRECOMPILE_HEADERS(${PROJECT_NAME} PRIVATE
|
||||
@ -152,13 +154,13 @@ IF(BUILD_GTK2)
|
||||
# (Requires removing the "-D" switches.)
|
||||
ADD_DEFINITIONS(${GTK2_DEFINITIONS})
|
||||
TARGET_COMPILE_DEFINITIONS(${PROJECT_NAME} PRIVATE RP_UI_XFCE)
|
||||
ENDIF(BUILD_GTK2)
|
||||
ENDIF(BUILD_XFCE)
|
||||
|
||||
#######################
|
||||
# Install the plugin. #
|
||||
#######################
|
||||
|
||||
IF(BUILD_GTK2)
|
||||
IF(BUILD_XFCE)
|
||||
# FIXME: ${ThunarX2_EXTENSIONS_DIR} always uses the system prefix.
|
||||
# This should be adjusted to ${CMAKE_INSTALL_PREFIX}.
|
||||
INSTALL(TARGETS ${PROJECT_NAME}
|
||||
@ -177,4 +179,4 @@ IF(BUILD_GTK2)
|
||||
)
|
||||
ENDIF(DEBUG_FILENAME)
|
||||
ENDIF(INSTALL_DEBUG)
|
||||
ENDIF(BUILD_GTK2)
|
||||
ENDIF(BUILD_XFCE)
|
||||
|
Loading…
Reference in New Issue
Block a user