99cf057906
Ubuntu/Debian introduced "multiarch" library directories, which is unsupported by CMake <= 2.8.10. Add manual search paths as a workaround. Currently it is only needed for libsvn, but it is needed for any lib which is converted to the new directory standard.
84 lines
2.6 KiB
CMake
84 lines
2.6 KiB
CMake
# Find Subversion client libraries, and dependencies
|
|
# including APR (Apache Portable Runtime)
|
|
|
|
include (CheckFunctionExists)
|
|
include (CheckIncludeFile)
|
|
include (CheckLibraryExists)
|
|
|
|
macro(find_static_component comp libs)
|
|
# account for alternative Windows svn distribution naming
|
|
if(MSVC)
|
|
set(compLib "lib${comp}")
|
|
else(MSVC)
|
|
set(compLib "${comp}")
|
|
endif(MSVC)
|
|
|
|
string(TOUPPER "${comp}" compLibBase)
|
|
set( compLibName ${compLibBase}_LIBRARY )
|
|
|
|
# NO_DEFAULT_PATH is important on Mac - we need to ensure subversion
|
|
# libraires in dist/ or Macports are picked over the Apple version
|
|
# in /usr, since that's what we will ship.
|
|
# On other platforms we do need default paths though, i.e. since Linux
|
|
# distros may use architecture-specific directories (like
|
|
# /usr/lib/x86_64-linux-gnu) which we cannot hardcode/guess here.
|
|
FIND_LIBRARY(${compLibName}
|
|
if(APPLE)
|
|
NO_DEFAULT_PATH
|
|
endif(APPLE)
|
|
NAMES ${compLib}
|
|
HINTS $ENV{LIBSVN_DIR} ${CMAKE_INSTALL_PREFIX} ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib
|
|
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
|
|
PATHS ${ADDITIONAL_LIBRARY_PATHS}
|
|
)
|
|
|
|
list(APPEND ${libs} ${${compLibName}})
|
|
endmacro()
|
|
|
|
find_program(HAVE_APR_CONFIG apr-1-config)
|
|
if(HAVE_APR_CONFIG)
|
|
|
|
execute_process(COMMAND apr-1-config --cppflags --includes
|
|
OUTPUT_VARIABLE APR_CFLAGS
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
execute_process(COMMAND apr-1-config --link-ld
|
|
OUTPUT_VARIABLE RAW_APR_LIBS
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
# clean up some vars, or other CMake pieces complain
|
|
string(STRIP "${RAW_APR_LIBS}" APR_LIBS)
|
|
|
|
else(HAVE_APR_CONFIG)
|
|
message(STATUS "apr-1-config not found, implement manual search for APR")
|
|
endif(HAVE_APR_CONFIG)
|
|
|
|
if(HAVE_APR_CONFIG OR MSVC)
|
|
find_path(LIBSVN_INCLUDE_DIR svn_client.h
|
|
NO_DEFAULT_PATH
|
|
HINTS
|
|
$ENV{LIBSVN_DIR} ${CMAKE_INSTALL_PREFIX} ${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/include
|
|
PATH_SUFFIXES include/subversion-1
|
|
PATHS
|
|
/opt/local
|
|
/usr/local
|
|
/usr
|
|
)
|
|
|
|
set(LIBSVN_LIBRARIES "")
|
|
if (MSVC)
|
|
find_static_component("apr-1" LIBSVN_LIBRARIES)
|
|
else (MSVC)
|
|
list(APPEND LIBSVN_LIBRARIES ${APR_LIBS})
|
|
endif (MSVC)
|
|
find_static_component("svn_client-1" LIBSVN_LIBRARIES)
|
|
find_static_component("svn_subr-1" LIBSVN_LIBRARIES)
|
|
find_static_component("svn_ra-1" LIBSVN_LIBRARIES)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG LIBSVN_LIBRARIES LIBSVN_INCLUDE_DIR)
|
|
if(NOT LIBSVN_FOUND)
|
|
set(LIBSVN_LIBRARIES "")
|
|
endif(NOT LIBSVN_FOUND)
|
|
endif(HAVE_APR_CONFIG OR MSVC)
|