forked from AcademySoftwareFoundation/rawtoaces
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge commit 'fe863d941e01a1f5ca626617030a5d77a33281d0' into HEAD
- Loading branch information
Showing
1 changed file
with
91 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
# | ||
# A simple cmake find module for libraw | ||
# | ||
|
||
find_package(PkgConfig QUIET) | ||
if(PKG_CONFIG_FOUND) | ||
pkg_check_modules(PC_LIBRAW QUIET libraw) | ||
endif() | ||
|
||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | ||
# Under Mac OS, if the user has installed using brew, the package config | ||
# information is not entirely accurate in that it refers to the | ||
# true install path but brew maintains links to /usr/local for you | ||
# which they want you to use | ||
if(PC_LIBRAW_FOUND AND "${PC_LIBRAW_INCLUDEDIR}" MATCHES ".*/Cellar/.*") | ||
set(_libraw_HINT_INCLUDE /usr/local/include) | ||
set(_libraw_HINT_LIB /usr/local/lib) | ||
endif() | ||
endif() | ||
|
||
if(PC_LIBRAW_FOUND) | ||
set(libraw_CFLAGS ${PC_LIBRAW_CFLAGS_OTHER}) | ||
set(libraw_LIBRARY_DIRS ${PC_LIBRAW_LIBRARY_DIRS}) | ||
set(libraw_LDFLAGS ${PC_LIBRAW_LDFLAGS_OTHER}) | ||
if("${_libraw_HINT_INCLUDE}" STREQUAL "") | ||
set(_libraw_HINT_INCLUDE ${PC_LIBRAW_INCLUDEDIR} ${PC_LIBRAW_INCLUDE_DIRS}) | ||
set(_libraw_HINT_LIB ${PC_LIBRAW_LIBDIR} ${PC_LIBRAW_LIBRARY_DIRS}) | ||
endif() | ||
else() | ||
if(UNIX) | ||
set(libraw_CFLAGS "-pthread") | ||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | ||
else() | ||
set(libraw_LDFLAGS "-pthread") | ||
endif() | ||
endif() | ||
endif() | ||
|
||
find_path(libraw_INCLUDE_DIR libraw_version.h | ||
HINTS ${_libraw_HINT_INCLUDE} | ||
PATH_SUFFIXES libraw ) | ||
if(libraw_INCLUDE_DIR AND EXISTS "${libraw_INCLUDE_DIR}/libraw_version.h") | ||
set(libraw_VERSION ${PC_LIBRAW_VERSION}) | ||
|
||
if("${libraw_VERSION}" STREQUAL "") | ||
file(STRINGS "${libraw_INCLUDE_DIR}/libraw_version.h" libraw_version_str | ||
REGEX "^#define[\t ]+LIBRAW_VERSION_STR[\t ]+\".*") | ||
|
||
string(REGEX REPLACE "^#define[\t ]+LIBRAW_VERSION[\t ]+\"([^ \\n]*)\".*" | ||
"\\1" libraw_VERSION "${libraw_version_str}") | ||
# message (STATUS "${libraw_version_str}") | ||
unset(libraw_version_str) | ||
endif() | ||
endif() | ||
|
||
find_library(RAW_LIBRARY | ||
NAMES raw | ||
HINTS ${_libraw_HINT_LIB} | ||
) | ||
|
||
if(RAW_LIBRARY) | ||
set(libraw_LIBRARY ${RAW_LIBRARY}) | ||
mark_as_advanced(${RAW_LIBRARY}) | ||
endif() | ||
|
||
unset(_libraw_HINT_INCLUDE) | ||
unset(_libraw_HINT_LIB) | ||
|
||
set( libraw_LIBRARIES ${libraw_LIBRARY} ) | ||
set( libraw_INCLUDE_DIRS ${libraw_INCLUDE_DIR} ) | ||
|
||
if(NOT PC_LIBRAW_FOUND) | ||
get_filename_component(libraw_LDFLAGS_OTHER ${libraw_LIBRARY} PATH) | ||
set(libraw_LDFLAGS_OTHER -L${libraw_LDFLAGS_OTHER}) | ||
endif() | ||
|
||
include(FindPackageHandleStandardArgs) | ||
# handle the QUIETLY and REQUIRED arguments and set LibRaw_FOUND to TRUE | ||
# if all listed variables are TRUE | ||
find_package_handle_standard_args(libraw | ||
REQUIRED_VARS libraw_LIBRARY libraw_INCLUDE_DIR | ||
VERSION_VAR libraw_VERSION | ||
FAIL_MESSAGE "Unable to find libraw library" ) | ||
|
||
# older versions of cmake don't support FOUND_VAR to find_package_handle | ||
# so just do it the hard way... | ||
if(LIBRAW_FOUND AND NOT libraw_FOUND) | ||
set(libraw_FOUND 1) | ||
endif() | ||
|
||
mark_as_advanced(libraw_INCLUDE_DIR libraw_LIBRARY ) |