]> git.mxchange.org Git - flightgear.git/commitdiff
First attempt at libsvn support in terrasync with CMake
authorJames Turner <zakalawe@mac.com>
Sun, 9 Jan 2011 00:15:29 +0000 (00:15 +0000)
committerJames Turner <zakalawe@mac.com>
Sun, 9 Jan 2011 00:15:29 +0000 (00:15 +0000)
 - not yet working!

CMakeLists.txt
CMakeModules/FindSvnClient.cmake
src/Include/config_cmake.h.in
utils/TerraSync/CMakeLists.txt

index 291656ed90b6dd370bfbe023977b3a4e9189b65d..f3576060e286573a93137f401021e66b1810de7e 100644 (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)
 
index 383ef6f6dd9928c73987cfe148febc5091ee1d8b..51f4452bf972a538c740975954ee6375f6ee253f 100644 (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)
index 4505aa2dc1bdf261dda169fe523ebbd71ba46af6..734b4dc5ee67a2357f81402266044b27c7f06fcd 100644 (file)
@@ -29,4 +29,7 @@
 #cmakedefine ENABLE_YASIM
 #cmakedefine ENABLE_JSBSIM
 
+#cmakedefine HAVE_SVN_CLIENT_H
+#cmakedefine HAVE_LIBSVN_CLIENT_1
+
 #define PKGLIBDIR "@PKGLIBDIR"
index bedc1018d356ad9c4a1d821235fb3dfa6134e943..c44af48bfa632ca770ef50bacd72059b4ccbb4b9 100644 (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()