From c37b9c95e69fb795a4e22b0ad5aece1bd3082c83 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Mon, 12 Sep 2011 12:17:06 +0200 Subject: [PATCH] Attempt to make FindSvnClient.cmake portable --- CMakeModules/FindSvnClient.cmake | 52 +++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/CMakeModules/FindSvnClient.cmake b/CMakeModules/FindSvnClient.cmake index 153a8101..f5b56774 100644 --- a/CMakeModules/FindSvnClient.cmake +++ b/CMakeModules/FindSvnClient.cmake @@ -3,6 +3,31 @@ 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 ) + + FIND_LIBRARY(${compLibName} + NAMES ${compLib} + HINTS $ENV{PLIBDIR} + PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64 + PATHS + /usr/local + /usr + /opt + ) + + list(APPEND ${libs} ${${compLibName}}) +endmacro() find_program(HAVE_APR_CONFIG apr-1-config) if(HAVE_APR_CONFIG) @@ -22,7 +47,7 @@ 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) +if(HAVE_APR_CONFIG OR MSVC) find_path(LIBSVN_INCLUDE_DIR svn_client.h HINTS $ENV{LIBSVN_DIR} @@ -32,26 +57,17 @@ if(HAVE_APR_CONFIG OR MSVC) /usr /opt ) - + + set(LIBSVN_LIBRARIES "") if (MSVC) - check_library_exists(libsvn_client-1 svn_client_checkout "${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib" HAVE_LIB_SVNCLIENT) - check_library_exists(libsvn_subr-1 svn_cmdline_init "${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib" HAVE_LIB_SVNSUBR) - check_library_exists(libsvn_ra-1 svn_ra_initialize "${MSVC_3RDPARTY_ROOT}/${MSVC_3RDPARTY_DIR}/lib" HAVE_LIB_SVNRA) + find_static_component("apr-1" LIBSVN_LIBRARIES) else (MSVC) - check_library_exists(svn_client-1 svn_client_checkout "" HAVE_LIB_SVNCLIENT) - check_library_exists(svn_subr-1 svn_cmdline_init "" HAVE_LIB_SVNSUBR) - check_library_exists(svn_ra-1 svn_ra_initialize "" HAVE_LIB_SVNRA) + 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 - HAVE_LIB_SVNSUBR - HAVE_LIB_SVNCLIENT - HAVE_LIB_SVNRA - LIBSVN_INCLUDE_DIR) - - if(LIBSVN_FOUND) - set(LIBSVN_LIBRARIES "svn_client-1" "svn_subr-1" "svn_ra-1" ${APR_LIBS}) - endif(LIBSVN_FOUND) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG LIBSVN_LIBRARIES LIBSVN_INCLUDE_DIR) endif(HAVE_APR_CONFIG OR MSVC) - -- 2.39.5