wireshark/cmake/modules/FindSparkle.cmake

51 lines
1.5 KiB
CMake

#
# Find the Sparkle framework
#
# This defines the following:
# SPARKLE_FOUND - True if we found Sparkle
# SPARKLE_INCLUDE_DIRS - Path to Sparkle.h, empty if not found
# SPARKLE_LIBRARIES - Path to Sparkle.framework, empty if not found
# SPARKLE_VERSION - Sparkle framework bundle version
include(FindPackageHandleStandardArgs)
file(GLOB USR_LOCAL_HINT "/usr/local/Sparkle-[1-9]*/")
file(GLOB HOMEBREW_HINT "/usr/local/Caskroom/sparkle/[1-9]*/")
find_path(SPARKLE_INCLUDE_DIR Sparkle.h
HINTS ${USR_LOCAL_HINT} ${HOMEBREW_HINT}
)
find_library(SPARKLE_LIBRARY NAMES Sparkle
HINTS ${USR_LOCAL_HINT} ${HOMEBREW_HINT}
)
# https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html
find_file(_info_plist Info.plist
${SPARKLE_LIBRARY}/Resources
${SPARKLE_LIBRARY}/Versions/Current/Resources
${SPARKLE_LIBRARY}/Versions/A/Resources
NO_DEFAULT_PATH
)
if(_info_plist)
execute_process(COMMAND defaults read ${_info_plist} CFBundleVersion
OUTPUT_VARIABLE SPARKLE_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
find_package_handle_standard_args(Sparkle
REQUIRED_VARS SPARKLE_INCLUDE_DIR SPARKLE_LIBRARY
VERSION_VAR SPARKLE_VERSION
)
if(SPARKLE_FOUND)
set(SPARKLE_LIBRARIES ${SPARKLE_LIBRARY} )
set(SPARKLE_INCLUDE_DIRS ${SPARKLE_INCLUDE_DIR} )
else(SPARKLE_FOUND)
set(SPARKLE_LIBRARIES )
set(SPARKLE_INCLUDE_DIRS )
endif(SPARKLE_FOUND)
mark_as_advanced(SPARKLE_INCLUDE_DIR SPARKLE_LIBRARY)