Revision: 40655
http://brlcad.svn.sourceforge.net/brlcad/?rev=40655&view=rev
Author: starseeker
Date: 2010-09-22 20:50:16 +0000 (Wed, 22 Sep 2010)
Log Message:
-----------
configure svn_private_config.h
Modified Paths:
--------------
rt^3/branches/subversion-cmake/CMakeLists.txt
Added Paths:
-----------
rt^3/branches/subversion-cmake/CMake/ResolveCompilerPaths.cmake
rt^3/branches/subversion-cmake/CMake/SVN_CheckFunctions.cmake
Added: rt^3/branches/subversion-cmake/CMake/ResolveCompilerPaths.cmake
===================================================================
--- rt^3/branches/subversion-cmake/CMake/ResolveCompilerPaths.cmake
(rev 0)
+++ rt^3/branches/subversion-cmake/CMake/ResolveCompilerPaths.cmake
2010-09-22 20:50:16 UTC (rev 40655)
@@ -0,0 +1,129 @@
+#=============================================================================
+# Copyright 2008 Jed Brown
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the names of Kitware, Inc., the Insight Software Consortium,
+# Jed Brown, nor the names of their contributors may be used to endorse
+# or promote products derived from this software without specific prior
+# written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# (Added license text after confirming with Jed Brown via email license
+# on his modules was the same as that of CMake - CY)
+#
+#=============================================================================
+# ResolveCompilerPaths - this module defines two macros
+#
+# RESOLVE_LIBRARIES (XXX_LIBRARIES LINK_LINE)
+# This macro is intended to be used by FindXXX.cmake modules.
+# It parses a compiler link line and resolves all libraries
+# (-lfoo) using the library path contexts (-L/path) in scope.
+# The result in XXX_LIBRARIES is the list of fully resolved libs.
+# Example:
+#
+# RESOLVE_LIBRARIES (FOO_LIBRARIES "-L/A -la -L/B -lb -lc -ld")
+#
+# will be resolved to
+#
+# FOO_LIBRARIES:STRING="/A/liba.so;/B/libb.so;/A/libc.so;/usr/lib/libd.so"
+#
+# if the filesystem looks like
+#
+# /A: liba.so libc.so
+# /B: liba.so libb.so
+# /usr/lib: liba.so libb.so libc.so libd.so
+#
+# and /usr/lib is a system directory.
+#
+# Note: If RESOLVE_LIBRARIES() resolves a link line differently from
+# the native linker, there is a bug in this macro (please report it).
+#
+# RESOLVE_INCLUDES (XXX_INCLUDES INCLUDE_LINE)
+# This macro is intended to be used by FindXXX.cmake modules.
+# It parses a compile line and resolves all includes
+# (-I/path/to/include) to a list of directories. Other flags are ignored.
+# Example:
+#
+# RESOLVE_INCLUDES (FOO_INCLUDES "-I/A -DBAR='\"irrelevant -I/string
here\"' -I/B")
+#
+# will be resolved to
+#
+# FOO_INCLUDES:STRING="/A;/B"
+#
+# assuming both directories exist.
+# Note: as currently implemented, the -I/string will be picked up mistakenly
(cry, cry)
+
+macro (RESOLVE_LIBRARIES LIBS LINK_LINE)
+ string (REGEX MATCHALL "((-L|-l|-Wl)([^\" ]+|\"[^\"]+\")|/[^\"
]+(a|so|dll))" _all_tokens "${LINK_LINE}")
+ set (_libs_found)
+ set (_directory_list)
+ foreach (token ${_all_tokens})
+ if (token MATCHES "-L([^\" ]+|\"[^\"]+\")")
+ # If it's a library path, add it to the list
+ string (REGEX REPLACE "^-L" "" token ${token})
+ string (REGEX REPLACE "//" "/" token ${token})
+ list (APPEND _directory_list ${token})
+ elseif (token MATCHES "^(-l([^\" ]+|\"[^\"]+\")|/[^\" ]+(a|so|dll))")
+ # It's a library, resolve the path by looking in the list and then (by
default) in system directories
+ string (REGEX REPLACE "^-l" "" token ${token})
+ set (_root)
+ if (token MATCHES "^/") # We have an absolute path, add root to the
search path
+ set (_root "/")
+ endif (token MATCHES "^/")
+ set (_lib "NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
+ find_library (_lib ${token} HINTS ${_directory_list} ${_root})
+ if (_lib)
+ string (REPLACE "//" "/" _lib ${_lib})
+ list (APPEND _libs_found ${_lib})
+ else (_lib)
+ message (STATUS "Unable to find library ${token}")
+ endif (_lib)
+ endif (token MATCHES "-L([^\" ]+|\"[^\"]+\")")
+ endforeach (token)
+ set (_lib "NOTFOUND" CACHE INTERNAL "Scratch variable" FORCE)
+ # only the LAST occurence of each library is required since there should be
no circular dependencies
+ if (_libs_found)
+ list (REVERSE _libs_found)
+ list (REMOVE_DUPLICATES _libs_found)
+ list (REVERSE _libs_found)
+ endif (_libs_found)
+ set (${LIBS} "${_libs_found}")
+endmacro (RESOLVE_LIBRARIES)
+
+macro (RESOLVE_INCLUDES INCS COMPILE_LINE)
+ string (REGEX MATCHALL "-I([^\" ]+|\"[^\"]+\")" _all_tokens
"${COMPILE_LINE}")
+ set (_incs_found)
+ foreach (token ${_all_tokens})
+ string (REGEX REPLACE "^-I" "" token ${token})
+ string (REGEX REPLACE "//" "/" token ${token})
+ if (EXISTS ${token})
+ list (APPEND _incs_found ${token})
+ else (EXISTS ${token})
+ message (STATUS "Include directory ${token} does not exist")
+ endif (EXISTS ${token})
+ endforeach (token)
+ list (REMOVE_DUPLICATES _incs_found)
+ set (${INCS} "${_incs_found}")
+endmacro (RESOLVE_INCLUDES)
Property changes on:
rt^3/branches/subversion-cmake/CMake/ResolveCompilerPaths.cmake
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added: rt^3/branches/subversion-cmake/CMake/SVN_CheckFunctions.cmake
===================================================================
--- rt^3/branches/subversion-cmake/CMake/SVN_CheckFunctions.cmake
(rev 0)
+++ rt^3/branches/subversion-cmake/CMake/SVN_CheckFunctions.cmake
2010-09-22 20:50:16 UTC (rev 40655)
@@ -0,0 +1,50 @@
+# Automate putting variables from tests into a config.h.in file,
+# and otherwise wrap check macros in extra logic as needed
+
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckIncludeFileCXX)
+INCLUDE(CheckTypeSize)
+INCLUDE(CheckLibraryExists)
+INCLUDE(ResolveCompilerPaths)
+
+MACRO(SVN_FUNCTION_EXISTS function var)
+ CHECK_FUNCTION_EXISTS(${function} ${var})
+ if(SVN_CONFIG_H_FILE)
+ FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+ endif(SVN_CONFIG_H_FILE)
+ENDMACRO(SVN_FUNCTION_EXISTS)
+
+MACRO(SVN_INCLUDE_FILE filename var)
+ CHECK_INCLUDE_FILE(${filename} ${var})
+ if(SVN_CONFIG_H_FILE)
+ FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+ endif(SVN_CONFIG_H_FILE)
+ENDMACRO(SVN_INCLUDE_FILE)
+
+MACRO(SVN_INCLUDE_FILE_CXX filename var)
+ CHECK_INCLUDE_FILE_CXX(${filename} ${var})
+ if(SVN_CONFIG_H_FILE)
+ FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+ endif(SVN_CONFIG_H_FILE)
+ENDMACRO(SVN_INCLUDE_FILE_CXX)
+
+MACRO(SVN_TYPE_SIZE typename var)
+ CHECK_TYPE_SIZE(${typename} ${var})
+ if(SVN_CONFIG_H_FILE)
+ FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine HAVE_${var} 1\n")
+ endif(SVN_CONFIG_H_FILE)
+ENDMACRO(SVN_TYPE_SIZE)
+
+MACRO(SVN_CHECK_LIBRARY targetname lname func)
+ IF(NOT ${targetname}_LIBRARY)
+ CHECK_LIBRARY_EXISTS(${lname} ${func} ""
HAVE_${targetname}_${lname})
+ IF(HAVE_${targetname}_${lname})
+ RESOLVE_LIBRARIES (${targetname}_LIBRARY "-l${lname}")
+ SET(${targetname}_LINKOPT "-l${lname}")
+ if(SVN_CONFIG_H_FILE)
+ FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine
HAVE_LIB${targetname} 1\n")
+ endif(SVN_CONFIG_H_FILE)
+ ENDIF(HAVE_${targetname}_${lname})
+ ENDIF(NOT ${targetname}_LIBRARY)
+ENDMACRO(SVN_CHECK_LIBRARY lname func)
Property changes on:
rt^3/branches/subversion-cmake/CMake/SVN_CheckFunctions.cmake
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Modified: rt^3/branches/subversion-cmake/CMakeLists.txt
===================================================================
--- rt^3/branches/subversion-cmake/CMakeLists.txt 2010-09-22 19:41:41 UTC
(rev 40654)
+++ rt^3/branches/subversion-cmake/CMakeLists.txt 2010-09-22 20:50:16 UTC
(rev 40655)
@@ -7,6 +7,72 @@
SET(CMAKE_MODULE_PATH
"${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
+INCLUDE(${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/CMake/SVN_CheckFunctions.cmake)
+
+SET(SVN_CONFIG_H_FILE
"${${CMAKE_PROJECT_NAME}_BINARY_DIR}/include/svn_private_config.h.in")
+FILE(WRITE ${SVN_CONFIG_H_FILE} "/**** Define statements for Subversion
****/\n")
+
+# Define some basic info
+SET(PACKAGE_NAME "subversion")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine PACKAGE_NAME
\"${PACKAGE_NAME}\"\n")
+SET(PACKAGE_VERSION "1.6.12")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine PACKAGE_VERSION
\"${PACKAGE_VERSION}\"\n")
+SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine PACKAGE_STRING
\"${PACKAGE_STRING}\"\n")
+SET(PACKAGE_TARNAME "${PACKAGE_NAME}")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine PACKAGE_TARNAME
\"${PACKAGE_TARNAME}\"\n")
+
+SET(PACKAGE_URL "http://brlcad.org")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine PACKAGE_URL
\"${PACKAGE_URL}\"\n")
+SET(PACKAGE_BUGREPORT "http://brlcad.org")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine PACKAGE_BUGREPORT
\"${PACKAGE_BUGREPORT}\"\n")
+
+
+# Since this is used only on Unix-y systems, define the path separator as '/'
+SET(SVN_PATH_LOCAL_SEPARATOR "/")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine SVN_PATH_LOCAL_SEPARATOR
'${SVN_PATH_LOCAL_SEPARATOR}'\n")
+
+# Null device for the system
+SET(SVN_NULL_DEVICE_NAME "/dev/null")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine SVN_NULL_DEVICE_NAME
\"${SVN_NULL_DEVICE_NAME}\"\n")
+
+# Build FSFS by default
+SET(DEFAULT_FS_TYPE "fsfs")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine DEFAULT_FS_TYPE
\"${DEFAULT_FS_TYPE}\"\n")
+
+# Installed binary dir
+SET(SVN_BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine SVN_BINDIR \"${SVN_BINDIR}\"\n")
+
+# Expand locale dir
+SET(SVN_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#cmakedefine SVN_LOCALE_DIR
\"${SVN_LOCALE_DIR}\"\n")
+
+
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#define SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL 1")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#define SVN_LIBSVN_CLIENT_LINKS_RA_SVN 1")
+FILE(APPEND ${SVN_CONFIG_H_FILE} "#define SVN_LIBSVN_CLIENT_LINKS_FS_FS 1")
+
+SVN_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
+SVN_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H)
+SVN_CHECK_LIBRARY(ICONV iconv libiconv_open)
+SVN_CHECK_LIBRARY(SOCKET socket socket)
+SVN_INCLUDE_FILE(memory.h HAVE_MEMORY_H)
+SVN_FUNCTION_EXISTS(rb_errinfo HAVE_RB_ERRINFO)
+SVN_FUNCTION_EXISTS(readlink HAVE_READLINK)
+SVN_INCLUDE_FILE(serf.h HAVE_SERF_H)
+SVN_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
+SVN_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
+SVN_INCLUDE_FILE(strings.h HAVE_STRINGS_H)
+SVN_INCLUDE_FILE(string.h HAVE_STRING_H)
+SVN_FUNCTION_EXISTS(symlink HAVE_SYMLINK)
+SVN_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
+SVN_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
+SVN_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
+SVN_FUNCTION_EXISTS(vprintf HAVE_VPRINTF)
+SVN_INCLUDE_FILE(zlib.h HAVE_ZLIB_H)
+
+
# build shared libs by default
OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
@@ -14,21 +80,45 @@
OPTION(BUILD_STATIC_LIBS "Build static libraries" ON)
find_package(zlib)
-find_package(sqlite3)
find_package(expat)
FIND_LIBRARY(APR_LIBRARY NAMES apr-1.0 PATHS
${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/../apr-install/lib NO_SYSTEM_PATH)
FIND_LIBRARY(APR_UTIL_LIBRARY NAMES aprutil-1.0 PATHS
${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/../apr-install/lib NO_SYSTEM_PATH)
+find_package(sqlite3)
+IF(NOT SQLITE3_LIBRARIES)
+ FILE(APPEND ${SVN_CONFIG_H_FILE} "#define SVN_SQLITE_INLINE 1")
+ENDIF(NOT SQLITE3_LIBRARIES)
+
+SET(SVN_CONF_H_ENDING "
+#define N_(x) x
+#define U_(x) x
+#ifdef ENABLE_NLS
+#include <locale.h>
+#include <libintl.h>
+#define _(x) dgettext(PACKAGE_NAME, x)
+#define Q_(x1, x2, n) dngettext(PACKAGE_NAME, x1, x2, n)
+#else
+#define _(x) (x)
+#define Q_(x1, x2, n) (((n) == 1) ? x1 : x2)
+#define gettext(x) (x)
+#define dgettext(domain, x) (x)
+#endif
+")
+
+FILE(APPEND ${SVN_CONFIG_H_FILE} "${SVN_CONF_H_ENDING}")
+
include_directories(
${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/include
+ ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/include
${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/include/private
${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/../apr-install/include/apr-1
${ZLIB_INCLUDE_DIRS}
- # ${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/apr/include/apr
- # ${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/apr/include/apr-util
)
+# Now that all the tests are done, configure the svn_private_config.h file:
+configure_file(${SVN_CONFIG_H_FILE}
${${CMAKE_PROJECT_NAME}_BINARY_DIR}/include/svn_private_config.h)
+
ADD_SUBDIRECTORY(libsvn_subr)
ADD_SUBDIRECTORY(libsvn_delta)
ADD_SUBDIRECTORY(libsvn_fs_util)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits