X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=CMakeModules%2FFindSvnClient.cmake;h=15f6ba27a630dd2c4ff687e0839c76edd1549bdb;hb=59ecf48b72a39b270db4c707d1460a9b867d275b;hp=baf03027e3dce103f9f0d43c2e4a8d4bae5f028d;hpb=469c0242d485ca325c9c620d04449ee049e2f848;p=simgear.git diff --git a/CMakeModules/FindSvnClient.cmake b/CMakeModules/FindSvnClient.cmake index baf03027..15f6ba27 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,13 +41,13 @@ 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) -if(HAVE_APR_CONFIG) +if(HAVE_APR_CONFIG OR MSVC) find_path(LIBSVN_INCLUDE_DIR svn_client.h HINTS $ENV{LIBSVN_DIR} @@ -32,20 +57,20 @@ if(HAVE_APR_CONFIG) /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) + + 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 - 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) -endif(HAVE_APR_CONFIG) - + 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)