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)
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)
# 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)
-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
${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()