[tracker] Enable the INSTALL rules.

While the code itself supports all three API versions, we're only
supporting installing into a single version directory. Added
auto-detection to detect what version is installed, plus a manual
override using TRACKER_INSTALL_API_VERSION to explicitly specify
which version to use.

Ubuntu versions and Tracker API versions:
- 16.04: v1
- 18.04: v2
- 20.04: v2
- 22.04: v3
- 24.04: v3

[debian] rules: Explicitly specify the API version so we don't need to
install the Tracker packages when building.
This commit is contained in:
David Korth 2024-03-30 10:55:41 -04:00
parent e07de3a3c4
commit 4e5ce09a05
3 changed files with 58 additions and 7 deletions

View File

@ -324,6 +324,11 @@ IF(BUILD_TESTING)
SET(EXTLIB_BUILD "${EXTLIB_BUILD}- Google Test\n")
ENDIF(BUILD_TESTING)
IF(BUILD_TRACKER_EXTRACTOR)
SET(TRACKER_API_DISPLAY "${TRACKER_INSTALL_API_VERSION}")
ELSE(BUILD_TRACKER_EXTRACTOR)
SET(TRACKER_API_DISPLAY "(none)")
ENDIF(BUILD_TRACKER_EXTRACTOR)
INCLUDE(DirInstallPaths)
MESSAGE(STATUS "
@ -334,6 +339,7 @@ Build Summary:
- Target CPU architecture: ${TARGET_CPU_ARCH}
- Building these UI frontends: ${UI_FRONTENDS}
- Building command-line frontend: ${CLI_BUILD_MSG}
- GNOME Tracker API version: ${TRACKER_API_DISPLAY}
- libromdata is built as: ${LIBROMDATA_LIB_TYPE}
- Security mechanism: ${SECURITY_MECHANISM}
- Decryption functionality: ${ENABLE_DECRYPTION_MSG}

1
debian/rules vendored
View File

@ -24,6 +24,7 @@ CMAKE_OPTIONS := \
-DBUILD_GTK3=ON \
-DBUILD_GTK4=OFF \
-DBUILD_CLI=ON \
-DTRACKER_INSTALL_API_VERSION=1 \
-DENABLE_PVRTC=ON \
-DENABLE_OPENMP=ON \
-DENABLE_LTO=OFF \

View File

@ -69,11 +69,55 @@ ENDIF(BUILD_TRACKER_EXTRACTOR)
# Install the tracker extractor module. #
#########################################
IF(0) #BUILD_TRACKER_EXTRACTOR)
IF(BUILD_TRACKER_EXTRACTOR)
SET(_desc "Tracker API version for installation: 1, 2, 3 (default is auto, requires tracker packages to be installed)")
SET(TRACKER_INSTALL_API_VERSION AUTO CACHE STRING "${_desc}")
SET_PROPERTY(CACHE TRACKER_INSTALL_API_VERSION PROPERTY STRINGS AUTO 1 2 3)
IF(TRACKER_INSTALL_API_VERSION STREQUAL AUTO)
# Determine which Tracker library is installed.
FIND_LIBRARY(HAVE_TRACKER_SPARQL_3_0 NAMES libtracker-sparql-3.0.so libtracker-sparql-3.0.so.0)
IF(HAVE_TRACKER_SPARQL_3_0)
SET(TRACKER_INSTALL_API_VERSION 3 CACHE INTERNAL "${_desc}" FORCE)
ELSE(HAVE_TRACKER_SPARQL_3_0)
FIND_LIBRARY(HAVE_TRACKER_SPARQL_2_0 NAMES libtracker-sparql-2.0.so libtracker-sparql-2.0.so.0)
IF(HAVE_TRACKER_SPARQL_2_0)
SET(TRACKER_INSTALL_API_VERSION 2 CACHE INTERNAL "${_desc}" FORCE)
ELSE(HAVE_TRACKER_SPARQL_2_0)
FIND_LIBRARY(HAVE_TRACKER_SPARQL_1_0 NAMES libtracker-sparql-1.0.so libtracker-sparql-1.0.so.0)
IF(HAVE_TRACKER_SPARQL_1_0)
SET(TRACKER_INSTALL_API_VERSION 1 CACHE INTERNAL "${_desc}" FORCE)
ELSE(HAVE_TRACKER_SPARQL_1_0)
MESSAGE(FATAL_ERROR "Unable to detect a supported Tracker library; please set TRACKER_INSTALL_API_VERSION manually.")
ENDIF(HAVE_TRACKER_SPARQL_1_0)
ENDIF(HAVE_TRACKER_SPARQL_2_0)
ENDIF(HAVE_TRACKER_SPARQL_3_0)
ELSEIF(TRACKER_INSTALL_API_VERSION LESS 1 OR TRACKER_INSTALL_API_VERSION GREATER 3)
MESSAGE(FATAL_ERROR "TRACKER_INSTALL_API_VERSION '${TRACKER_INSTALL_API_VERSION}' is invalid.")
ENDIF()
# Determine paths based on API version.
# Rule files
# - tracker-1.0: share/tracker/extract-rules/
# - tracker-2.0: share/tracker-miners/extract-rules/
# - tracker-3.0: share/tracker3-miners/extract-rules
# Extractor module
# - tracker-1.0: lib/[arch]/tracker-1.0/extract-modules/libextract-[module].so
# - tracker-2.0: lib/[arch]/tracker-miners-2.0/extract-modules/libextract-[module].so
# - tracker-3.0: lib/[arch]/tracker-miners-3.0/extract-modules/libextract-[module].so
IF(TRACKER_INSTALL_API_VERSION EQUAL 3)
SET(TRACKER_EXTRACT_RULES_DIR "share/tracker3-miners/extract-rules")
SET(TRACKER_EXTRACT_MODULE_DIR "${DIR_INSTALL_LIB}/tracker-miners-3.0/extract-modules")
ELSEIF(TRACKER_INSTALL_API_VERSION EQUAL 2)
SET(TRACKER_EXTRACT_RULES_DIR "share/tracker-miners/extract-rules")
SET(TRACKER_EXTRACT_MODULE_DIR "${DIR_INSTALL_LIB}/tracker-miners-2.0/extract-modules")
ELSEIF(TRACKER_INSTALL_API_VERSION EQUAL 1)
SET(TRACKER_EXTRACT_RULES_DIR "share/tracker/extract-rules")
SET(TRACKER_EXTRACT_MODULE_DIR "${DIR_INSTALL_LIB}/tracker-1.0/extract-modules")
ENDIF()
SET(RULE_FILES
rules/14-rp-application-packages.rule
rules/14-rp-audio.rule
@ -86,12 +130,12 @@ IF(0) #BUILD_TRACKER_EXTRACTOR)
rules/14-rp-textures.rule
)
INSTALL(FILES ${RULE_FILES}
DESTINATION "share/tracker-miners/extract-rules"
DESTINATION "${TRACKER_EXTRACT_RULES_DIR}"
COMPONENT "plugin"
)
# Extractor module
# - tracker-1.0: lib/[arch]/tracker-1.0/extract-modules/libextract-[module].so
# - tracker-2.0: lib/[arch]/tracker-miners-2.0/extract-modules/libextract-[module].so
# - tracker-3.0: lib/[arch]/tracker-miners-3.0/extract-modules/libextract-[module].so
ENDIF(0) #BUILD_TRACKER_EXTRACTOR)
INSTALL(TARGETS ${PROJECT_NAME}
DESTINATION "${TRACKER_EXTRACT_MODULE_DIR}"
COMPONENT "plugin"
)
ENDIF(BUILD_TRACKER_EXTRACTOR)