X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=CMakeModules%2FFindSvnClient.cmake;h=1135ee03bd1c30374dba0ed9c0e883d1a0c51b59;hb=c4cfd9cb7a4baae36b70e5982e40854afbdc9536;hp=717b8b04d0d749b3b0e1fdd849de65eed1fbab7e;hpb=7d95b7e09d584d7d4c62cd69e9ce8c872b2ad4d7;p=flightgear.git diff --git a/CMakeModules/FindSvnClient.cmake b/CMakeModules/FindSvnClient.cmake index 717b8b04d..1135ee03b 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) @@ -16,33 +41,37 @@ if(HAVE_APR_CONFIG) OUTPUT_STRIP_TRAILING_WHITESPACE) # clean up some vars, or other CMake pieces complain - string(STRIP ${RAW_APR_LIBS} APR_LIBS) + 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) -find_path(LIBSVN_INCLUDE_DIR svn_client.h - HINTS - $ENV{LIBSVN_DIR} - PATH_SUFFIXES include/subversion-1 - PATHS - /usr/local - /usr - /opt -) - -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) - -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) +if(HAVE_APR_CONFIG OR MSVC) + find_path(LIBSVN_INCLUDE_DIR svn_client.h + HINTS + $ENV{LIBSVN_DIR} + PATH_SUFFIXES include/subversion-1 + PATHS + /usr/local + /usr + /opt + ) + + 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)