1
0
Fork 0

First attempt at libsvn support in terrasync with CMake

- not yet working!
This commit is contained in:
James Turner 2011-01-09 00:15:29 +00:00
parent 6564a9858b
commit 5deec69e00
4 changed files with 69 additions and 4 deletions

View file

@ -55,6 +55,8 @@ option(ENABLE_YASIM "Set to ON to build FlightGear with YASIM FDM" ON)
option(ENABLE_JSBSIM "Set to ON to build FlightGear with JSBSim FDM" ON)
option(ENABLE_FGADMIN "Set to ON to build FlightGear with FGADMIN" ON)
option(EVENT_INPUT "Set to ON to build FlightGear with event-based Input support" OFF)
option(ENABLE_LIBSVN "Set to ON to build terrasync with libsvnclient support" OFF)
set(MSVC_3RDPARTY_DIR NOT_FOUND CACHE PATH "Location where the third-party dependencies are extracted")
if(LOGGING)
@ -104,6 +106,16 @@ if(ENABLE_FGADMIN)
find_package(FLTK)
endif(ENABLE_FGADMIN)
if(ENABLE_LIBSVN)
find_package(SvnClient)
if(LIBSVN_FOUND)
message(STATUS "libsvn found, enabling in terrasync")
set(HAVE_SVN_CLIENT_H 1)
set(HAVE_LIBSVN_CLIENT_1 1)
endif(LIBSVN_FOUND)
endif(ENABLE_LIBSVN)
find_package(PLIB REQUIRED puaux pu js fnt)
find_package(SimGear 2.2.0 REQUIRED)

View file

@ -1,3 +1,49 @@
# Find Subversion client libraries, and dependencies
# including APR (Apache Portable Runtime)
include (CheckFunctionExists)
include (CheckIncludeFile)
find_program(HAVE_APR_CONFIG apr-1-config)
if(HAVE_APR_CONFIG)
execute_process(COMMAND apr-1-config --includes
OUTPUT_VARIABLE RAW_APR_INCLUDES
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND apr-1-config --cppflags
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)
string(STRIP ${RAW_APR_INCLUDES} APR_INCLUDES)
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)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG HAVE_LIB_SVNSUBR
HAVE_LIB_SVNCLIENT LIBSVN_INCLUDE_DIR)
if(LIBSVN_FOUND)
set(LIBSVN_LIBRARIES "svn_client-1" "svn_subr-1" ${APR_LIBS})
set(LIBSVN_INCLUDE_DIRS ${LIBSVN_INCLUDE_DIR} ${APR_INCLUDES})
endif(LIBSVN_FOUND)

View file

@ -29,4 +29,7 @@
#cmakedefine ENABLE_YASIM
#cmakedefine ENABLE_JSBSIM
#cmakedefine HAVE_SVN_CLIENT_H
#cmakedefine HAVE_LIBSVN_CLIENT_1
#define PKGLIBDIR "@PKGLIBDIR"

View file

@ -1,6 +1,10 @@
find_package(SvnClient)
if(LIBSVN_FOUND)
message(STATUS "includes '${LIBSVN_INCLUDE_DIRS}'")
include_directories(${LIBSVN_INCLUDE_DIRS})
add_definitions(${APR_CFLAGS})
endif(LIBSVN_FOUND)
add_executable(terrasync terrasync.cxx)
target_link_libraries(terrasync
@ -8,8 +12,8 @@ target_link_libraries(terrasync
${ZLIB_LIBRARIES}
${WINSOCK_LIBRARY})
if(HAVE_SVN_CLIENT)
target_link_libraries(terrasync ${SVN_CLIENT_LIBRARIES})
if(LIBSVN_FOUND)
target_link_libraries(terrasync ${LIBSVN_LIBRARIES})
endif()