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)
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)
- FIND_LIBRARY(APR_LIBS
- NAMES libapr-1 apr-1
+ 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
HINTS
- PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
+ $ENV{LIBSVN_DIR}
+ PATH_SUFFIXES include/subversion-1
PATHS
- ~/Library/Frameworks
- /Library/Frameworks
/usr/local
/usr
/opt
)
-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
-)
-
-FIND_LIBRARY(SVNCLIENT_LIBRARY
- NAMES libsvn_client-1 svn_client-1
- HINTS
- PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
- PATHS
- ~/Library/Frameworks
- /Library/Frameworks
- /usr/local
- /usr
- /opt
-)
-
-FIND_LIBRARY(SVNSUBR_LIBRARY
- NAMES libsvn_subr-1 svn_subr-1
- HINTS
- PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
- PATHS
- ~/Library/Frameworks
- /Library/Frameworks
- /usr/local
- /usr
- /opt
-)
-
-FIND_LIBRARY(SVNRA_LIBRARY
- NAMES libsvn_ra-1 svn_ra-1
- HINTS
- PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
- PATHS
- ~/Library/Frameworks
- /Library/Frameworks
- /usr/local
- /usr
- /opt
-)
-
-include(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG
- SVNSUBR_LIBRARY
- SVNCLIENT_LIBRARY
- SVNRA_LIBRARY
- LIBSVN_INCLUDE_DIR)
+
+ 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)
-if(LIBSVN_FOUND)
- set(LIBSVN_LIBRARIES ${SVNCLIENT_LIBRARY} ${SVNSUBR_LIBRARY} ${SVNRA_LIBRARY} ${APR_LIBS})
-endif(LIBSVN_FOUND)
+ 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)