78c0419007
Distros like Debian/Ubuntu use architecture-specific directory structures (like /usr/lib/x86_64-linux-gnu) which we cannot hardcode/guess, so we really need to search the default paths.
87 lines
2.6 KiB
CMake
87 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
|
|
/opt/local
|
|
/usr/local
|
|
/usr
|
|
)
|
|
|
|
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)
|