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

Reply via email to