Improved CMake support for libsvn

Added missing CMake defines for SVN_CLIENT.
Don't detect libsvn without APR.
When installed, enable libsvn support by default (same as for automake).
When enabled, provide libsvn include dir to libtsync.
gitignore temporary CMake files
This commit is contained in:
ThorstenB
2011-08-04 22:40:21 +02:00
parent 8ed9e01c63
commit 4494eb061e
5 changed files with 43 additions and 23 deletions
+1
View File
@@ -21,5 +21,6 @@ CMakeCache.txt
CPackConfig.cmake CPackConfig.cmake
CPackSourceConfig.cmake CPackSourceConfig.cmake
cmake_uninstall.cmake cmake_uninstall.cmake
CTestTestfile.cmake
install_manifest.txt install_manifest.txt
+4 -2
View File
@@ -20,7 +20,7 @@ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMakeModules;${CMAKE_MODULE_PATH}")
option(SIMGEAR_SHARED "Set to ON to build SimGear as a shared library/framework" OFF) option(SIMGEAR_SHARED "Set to ON to build SimGear as a shared library/framework" OFF)
option(SIMGEAR_HEADLESS "Set to ON to build SimGear with GUI/graphics support" OFF) option(SIMGEAR_HEADLESS "Set to ON to build SimGear with GUI/graphics support" OFF)
option(JPEG_FACTORY "Enable JPEG-factory support" OFF) option(JPEG_FACTORY "Enable JPEG-factory support" OFF)
option(ENABLE_LIBSVN "Set to ON to build SimGear with libsvnclient support" OFF) option(ENABLE_LIBSVN "Set to ON to build SimGear with libsvnclient support" ON)
set(MSVC_3RDPARTY_ROOT NOT_FOUND CACHE PATH "Location where the third-party dependencies are extracted") set(MSVC_3RDPARTY_ROOT NOT_FOUND CACHE PATH "Location where the third-party dependencies are extracted")
@@ -71,11 +71,13 @@ endif()
if(ENABLE_LIBSVN) if(ENABLE_LIBSVN)
find_package(SvnClient) find_package(SvnClient)
if(LIBSVN_FOUND) if(LIBSVN_FOUND)
message(STATUS "libsvn found, enabling in SimGear") message(STATUS "libsvn found, enabling in SimGear")
set(HAVE_SVN_CLIENT_H 1) set(HAVE_SVN_CLIENT_H 1)
set(HAVE_LIBSVN_CLIENT_1 1) set(HAVE_LIBSVN_CLIENT_1 1)
else()
message(STATUS "Missing libsvn, unable to enable SVN in SimGear")
endif(LIBSVN_FOUND) endif(LIBSVN_FOUND)
endif(ENABLE_LIBSVN) endif(ENABLE_LIBSVN)
+24 -21
View File
@@ -22,27 +22,30 @@ else(HAVE_APR_CONFIG)
message(STATUS "apr-1-config not found, implement manual search for APR") message(STATUS "apr-1-config not found, implement manual search for APR")
endif(HAVE_APR_CONFIG) endif(HAVE_APR_CONFIG)
find_path(LIBSVN_INCLUDE_DIR svn_client.h if(HAVE_APR_CONFIG)
HINTS find_path(LIBSVN_INCLUDE_DIR svn_client.h
$ENV{LIBSVN_DIR} HINTS
PATH_SUFFIXES include/subversion-1 $ENV{LIBSVN_DIR}
PATHS PATH_SUFFIXES include/subversion-1
/usr/local PATHS
/usr /usr/local
/opt /usr
) /opt
)
check_library_exists(svn_client-1 svn_client_checkout "" HAVE_LIB_SVNCLIENT) check_library_exists(svn_client-1 svn_client_checkout "" HAVE_LIB_SVNCLIENT)
check_library_exists(svn_subr-1 svn_cmdline_init "" HAVE_LIB_SVNSUBR) check_library_exists(svn_subr-1 svn_cmdline_init "" HAVE_LIB_SVNSUBR)
check_library_exists(svn_ra-1 svn_ra_initialize "" HAVE_LIB_SVNRA) check_library_exists(svn_ra-1 svn_ra_initialize "" HAVE_LIB_SVNRA)
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG
HAVE_LIB_SVNSUBR HAVE_LIB_SVNSUBR
HAVE_LIB_SVNCLIENT HAVE_LIB_SVNCLIENT
HAVE_LIB_SVNRA HAVE_LIB_SVNRA
LIBSVN_INCLUDE_DIR) LIBSVN_INCLUDE_DIR)
if(LIBSVN_FOUND)
set(LIBSVN_LIBRARIES "svn_client-1" "svn_subr-1" "svn_ra-1" ${APR_LIBS})
endif(LIBSVN_FOUND)
endif(HAVE_APR_CONFIG)
if(LIBSVN_FOUND)
set(LIBSVN_LIBRARIES "svn_client-1" "svn_subr-1" "svn_ra-1" ${APR_LIBS})
endif(LIBSVN_FOUND)
+11
View File
@@ -8,4 +8,15 @@ set(SOURCES
terrasync.cxx terrasync.cxx
) )
if(LIBSVN_FOUND)
add_definitions(${APR_CFLAGS})
IF(APPLE)
set_property(SOURCE terrasync.cxx PROPERTY COMPILE_FLAGS "-iwithsysroot ${LIBSVN_INCLUDE_DIR}")
ELSE()
include_directories(${LIBSVN_INCLUDE_DIR})
ENDIF(APPLE)
endif()
simgear_component(tsync scene/tsync "${SOURCES}" "${HEADERS}") simgear_component(tsync scene/tsync "${SOURCES}" "${HEADERS}")
+3
View File
@@ -12,5 +12,8 @@
#cmakedefine HAVE_ISNAN #cmakedefine HAVE_ISNAN
#cmakedefine HAVE_WINDOWS_H #cmakedefine HAVE_WINDOWS_H
#cmakedefine HAVE_SVN_CLIENT_H
#cmakedefine HAVE_LIBSVN_CLIENT_1
// set if building headless (no OSG or OpenGL libs) // set if building headless (no OSG or OpenGL libs)
#cmakedefine NO_OPENSCENEGRAPH_INTERFACE #cmakedefine NO_OPENSCENEGRAPH_INTERFACE