First attempt at libsvn support in terrasync with CMake
- not yet working!
This commit is contained in:
parent
6564a9858b
commit
5deec69e00
4 changed files with 69 additions and 4 deletions
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -29,4 +29,7 @@
|
|||
#cmakedefine ENABLE_YASIM
|
||||
#cmakedefine ENABLE_JSBSIM
|
||||
|
||||
#cmakedefine HAVE_SVN_CLIENT_H
|
||||
#cmakedefine HAVE_LIBSVN_CLIENT_1
|
||||
|
||||
#define PKGLIBDIR "@PKGLIBDIR"
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue