Revision: 40871
          http://brlcad.svn.sourceforge.net/brlcad/?rev=40871&view=rev
Author:   starseeker
Date:     2010-09-29 19:58:08 +0000 (Wed, 29 Sep 2010)

Log Message:
-----------
Start trying to make apr and apr-util into third party builds for svn

Modified Paths:
--------------
    rt^3/trunk/src/other/subversion/CMakeLists.txt
    rt^3/trunk/src/other/subversion/libsvn_subr/CMakeLists.txt

Added Paths:
-----------
    rt^3/trunk/src/other/subversion/CMake/ThirdParty.cmake

Added: rt^3/trunk/src/other/subversion/CMake/ThirdParty.cmake
===================================================================
--- rt^3/trunk/src/other/subversion/CMake/ThirdParty.cmake                      
        (rev 0)
+++ rt^3/trunk/src/other/subversion/CMake/ThirdParty.cmake      2010-09-29 
19:58:08 UTC (rev 40871)
@@ -0,0 +1,142 @@
+#-----------------------------------------------------------------------------
+MACRO(THIRD_PARTY_OPTION upper lower)
+       IF(${CMAKE_PROJECT_NAME}-ENABLE_ALL_LOCAL_LIBS)
+               OPTION(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} "Build the 
local ${upper} library." ON)
+               SET(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} ON CACHE BOOL 
"Build the local ${upper} library." FORCE)
+       ELSE(${CMAKE_PROJECT_NAME}-ENABLE_ALL_LOCAL_LIBS)
+               OPTION(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} "Build the 
local ${upper} library." OFF)
+               SET(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} OFF CACHE BOOL 
"Build the local ${upper} library." FORCE)
+       ENDIF(${CMAKE_PROJECT_NAME}-ENABLE_ALL_LOCAL_LIBS)
+       IF(NOT ${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} OR 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+               SET(${upper}_FOUND "${upper}-NOTFOUND" CACHE STRING 
"${upper}_FOUND" FORCE)
+               SET(${upper}_LIBRARY "${upper}-NOTFOUND" CACHE STRING 
"${upper}_LIBRARY" FORCE)
+               SET(${upper}_INCLUDE_DIR "${upper}-NOTFOUND" CACHE STRING 
"${upper}_INCLUDE_DIR" FORCE)
+               IF(EXISTS ${${CMAKE_PROJECT_NAME}_CMAKE_DIR}/Find${upper}.cmake)
+                       
INCLUDE(${${CMAKE_PROJECT_NAME}_CMAKE_DIR}/Find${upper}.cmake)
+               ELSE(EXISTS 
${${CMAKE_PROJECT_NAME}_CMAKE_DIR}/Find${upper}.cmake)
+                       INCLUDE(${CMAKE_ROOT}/Modules/Find${upper}.cmake)
+               ENDIF(EXISTS 
${${CMAKE_PROJECT_NAME}_CMAKE_DIR}/Find${upper}.cmake)
+               IF(NOT ${upper}_FOUND)
+                       IF(NOT ${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY) 
+                               SET(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} 
ON CACHE BOOL "Build the local ${upper} library." FORCE)
+                               SET(${upper}_LIBRARY "${lower}" CACHE STRING 
"set by THIRD_PARTY macro" FORCE)
+                       ENDIF(NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY) 
+      ELSE(NOT ${upper}_FOUND)
+               # We have to remove any previously built output from enabled 
local copies of the
+               # library in question, or the linker will get confused - a 
system lib was found and
+               # system libraries are to be preferred with current options.  
This is unfortunate in
+               # that it may introduce extra build work just from trying 
configure options, but appears
+               # to be essential to ensuring that the build "just works" each 
time.
+               STRING(REGEX REPLACE "lib" "" rootname "${lower}")
+               FILE(GLOB STALE_FILES 
"${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${rootname}*${CMAKE_SHARED_LIBRARY_SUFFIX}*")
+               MESSAGE("STALE_FILES: ${STALE_FILES}")
+               FOREACH(stale_file ${STALE_FILES})
+                  EXEC_PROGRAM(
+                          ${CMAKE_COMMAND} ARGS -E remove ${stale_file}
+                                        OUTPUT_VARIABLE rm_out
+                                        RETURN_VALUE rm_retval
+                                )
+               ENDFOREACH(stale_file ${STALE_FILES})
+
+               ENDIF(NOT ${upper}_FOUND)
+       ELSE(NOT ${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} OR 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+               SET(${upper}_LIBRARY "${lower}" CACHE STRING "set by 
THIRD_PARTY macro" FORCE)
+       ENDIF(NOT ${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} OR 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+       MARK_AS_ADVANCED(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper})
+ENDMACRO(THIRD_PARTY_OPTION)
+
+#-----------------------------------------------------------------------------
+MACRO(THIRD_PARTY_SUBDIR upper lower)
+       IF(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} AND NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+               ADD_SUBDIRECTORY(${lower})
+               SET(${upper}_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/${lower} 
CACHE STRING "set by THIRD_PARTY_SUBDIR macro" FORCE)
+       ENDIF(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} AND NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+ENDMACRO(THIRD_PARTY_SUBDIR)
+
+#-----------------------------------------------------------------------------
+
+include(ExternalProject)
+
+MACRO(THIRD_PARTY_CONFIGURE_EXTERNAL_PROJECT upper projname projpath srcpath 
extraopts)
+       MESSAGE("${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper}: 
${${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper}}")
+       IF(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} AND NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+               MESSAGE("got this far ${projname}")
+               ExternalProject_Add(
+                       ${projname}
+                       DOWNLOAD_COMMAND ""
+                       PREFIX ${${CMAKE_PROJECT_NAME}_BINARY_DIR}
+                       SOURCE_DIR 
${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/${projpath}/${srcpath}
+                       CONFIGURE_COMMAND mkdir -p
+                       ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && cd
+                       ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ &&
+                       <SOURCE_DIR>/configure 
--prefix=${${CMAKE_PROJECT_NAME}_PREFIX} 
--exec-prefix=${${CMAKE_PROJECT_NAME}_PREFIX} 
--mandir=${${CMAKE_PROJECT_NAME}_INSTALL_MAN_DIR} ${extraopts}
+                       BUILD_COMMAND cd 
${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && $(MAKE)
+                       INSTALL_COMMAND  cd 
${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && $(MAKE) install
+                       )
+               SET(CMAKE_EXTERNAL_TARGET_LIST 
"${CMAKE_EXTERNAL_TARGET_LIST};${projname}" CACHE STRING "external target list" 
FORCE)
+       ENDIF(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} AND NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+ENDMACRO(THIRD_PARTY_CONFIGURE_EXTERNAL_PROJECT)
+
+MACRO(THIRD_PARTY_AUTOCONF_EXTERNAL_PROJECT upper projname projpath srcpath 
extraopts)
+       IF(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} AND NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+               ExternalProject_Add(
+                       ${projname}
+                       DOWNLOAD_COMMAND ""
+                       PREFIX ${${CMAKE_PROJECT_NAME}_BINARY_DIR}
+                       SOURCE_DIR 
${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/${projpath}/${srcpath}
+                       CONFIGURE_COMMAND autoconf -I <SOURCE_DIR> -o
+                       <SOURCE_DIR>/configure <SOURCE_DIR>/configure.in && 
mkdir -p
+                       ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && cd
+                       ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ &&
+                       <SOURCE_DIR>/configure 
--prefix=${${CMAKE_PROJECT_NAME}_PREFIX} 
--exec-prefix=${${CMAKE_PROJECT_NAME}_PREFIX} 
--mandir=${${CMAKE_PROJECT_NAME}_INSTALL_MAN_DIR} ${extraopts}
+                       BUILD_COMMAND cd 
${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && $(MAKE)
+                       INSTALL_COMMAND  cd 
${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && $(MAKE) install
+                       )
+               SET(CMAKE_EXTERNAL_TARGET_LIST 
"${CMAKE_EXTERNAL_TARGET_LIST};${projname}" CACHE STRING "external target list" 
FORCE)
+       ENDIF(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} AND NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+ENDMACRO(THIRD_PARTY_AUTOCONF_EXTERNAL_PROJECT)
+
+
+MACRO(THIRD_PARTY_AUTORECONF_EXTERNAL_PROJECT upper projname projpath srcpath 
extraopts)
+       IF(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} AND NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+               ExternalProject_Add(
+                       ${projname}
+                       DOWNLOAD_COMMAND ""
+                       PREFIX ${${CMAKE_PROJECT_NAME}_BINARY_DIR}
+                       SOURCE_DIR 
${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/${projpath}/${srcpath}
+                       CONFIGURE_COMMAND cd <SOURCE_DIR> && autoreconf -i -f 
&& mkdir -p
+                       ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && cd
+                       ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ &&
+                       <SOURCE_DIR>/configure 
--prefix=${${CMAKE_PROJECT_NAME}_PREFIX} 
--exec-prefix=${${CMAKE_PROJECT_NAME}_PREFIX} 
--mandir=${${CMAKE_PROJECT_NAME}_INSTALL_MAN_DIR} ${extraopts}
+                       BUILD_COMMAND cd 
${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && $(MAKE)
+                       INSTALL_COMMAND  cd 
${${CMAKE_PROJECT_NAME}_BINARY_DIR}/${projpath}/ && $(MAKE) install
+                       )
+               SET(CMAKE_EXTERNAL_TARGET_LIST 
"${CMAKE_EXTERNAL_TARGET_LIST};${projname}" CACHE STRING "external target list" 
FORCE)
+       ENDIF(${CMAKE_PROJECT_NAME}_BUILD_LOCAL_${upper} AND NOT 
${CMAKE_PROJECT_NAME}-ENABLE_SYSTEM_LIBS_ONLY)
+ENDMACRO(THIRD_PARTY_AUTORECONF_EXTERNAL_PROJECT)
+
+
+#-----------------------------------------------------------------------------
+MACRO(THIRD_PARTY_WARNING_SUPPRESS upper lang)
+  IF(NOT ${upper}_WARNINGS_ALLOW)
+    # MSVC uses /w to suppress warnings.  It also complains if another
+    # warning level is given, so remove it.
+    IF(MSVC)
+      SET(${upper}_WARNINGS_BLOCKED 1)
+      STRING(REGEX REPLACE "(^| )([/-])W[0-9]( |$)" " "
+        CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS}")
+      SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} /w")
+    ENDIF(MSVC)
+
+    # Borland uses -w- to suppress warnings.
+    IF(BORLAND)
+      SET(${upper}_WARNINGS_BLOCKED 1)
+      SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} -w-")
+    ENDIF(BORLAND)
+
+    # Most compilers use -w to suppress warnings.
+    IF(NOT ${upper}_WARNINGS_BLOCKED)
+      SET(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} -w")
+    ENDIF(NOT ${upper}_WARNINGS_BLOCKED)
+  ENDIF(NOT ${upper}_WARNINGS_ALLOW)
+ENDMACRO(THIRD_PARTY_WARNING_SUPPRESS)


Property changes on: rt^3/trunk/src/other/subversion/CMake/ThirdParty.cmake
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

Modified: rt^3/trunk/src/other/subversion/CMakeLists.txt
===================================================================
--- rt^3/trunk/src/other/subversion/CMakeLists.txt      2010-09-29 19:42:20 UTC 
(rev 40870)
+++ rt^3/trunk/src/other/subversion/CMakeLists.txt      2010-09-29 19:58:08 UTC 
(rev 40871)
@@ -110,9 +110,24 @@
 # build static libs by default
 OPTION(BUILD_STATIC_LIBS "Build static libraries" ON)
 
+INCLUDE(${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/CMake/ThirdParty.cmake)
+
 find_package(ZLIB)
 find_package(EXPAT)
-find_package(APR)
+#find_package(APR)
+IF(NOT APR_LIBRARY)
+       SET(SUBVERSION_BUILD_LOCAL_APR 1)
+       THIRD_PARTY_CONFIGURE_EXTERNAL_PROJECT(APR apr src/other/apr "" "")
+       SET(APR_LIBRARY 
"${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}apr-1${CMAKE_SHARED_LIBRARY_SUFFIX}"
 CACHE STRING "APR_LIBRARY")
+       SET(APR_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/apr-1" CACHE 
STRING "APR_INCLUDE")
+ENDIF(NOT APR_LIBRARY)
+IF(NOT APU_LIBRARY)
+       SET(SUBVERSION_BUILD_LOCAL_APU 1)
+       THIRD_PARTY_CONFIGURE_EXTERNAL_PROJECT(APU apr-util "" 
src/other/apr-util "")
+       SET(APU_LIBRARY 
"${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}aprutil-1${CMAKE_SHARED_LIBRARY_SUFFIX}"
 CACHE STRING "APU_LIBRARY")
+       SET(APU_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/apr-1" CACHE 
STRING "APU_INCLUDE")
+       SET(APU_BUILD_LOCAL_LIB 1)
+ENDIF(NOT APU_LIBRARY)
 find_package(SQLite3)
 IF(NOT SQLITE3_LIBRARIES)
        FILE(APPEND ${SVN_CONFIG_H_FILE} "#define SVN_SQLITE_INLINE 1")
@@ -166,3 +181,4 @@
 ADD_SUBDIRECTORY(svn)
 ADD_SUBDIRECTORY(svntest)
 ADD_SUBDIRECTORY(svnstress)
+

Modified: rt^3/trunk/src/other/subversion/libsvn_subr/CMakeLists.txt
===================================================================
--- rt^3/trunk/src/other/subversion/libsvn_subr/CMakeLists.txt  2010-09-29 
19:42:20 UTC (rev 40870)
+++ rt^3/trunk/src/other/subversion/libsvn_subr/CMakeLists.txt  2010-09-29 
19:58:08 UTC (rev 40871)
@@ -67,3 +67,9 @@
 add_library(svn_subr SHARED ${LIBSVN_SUBR})
 target_link_libraries(svn_subr ${ZLIB_LIBRARIES} ${EXPAT_LIBRARIES} 
${APR_LIBRARY} ${APU_LIBRARY} ${SQLITE3_LIBRARIES} ${APPLE_LINKS})
 install(TARGETS svn_subr LIBRARY DESTINATION lib)
+IF(SUBVERSION_BUILD_LOCAL_APR)
+       add_dependencies(svn_subr apr)
+ENDIF(SUBVERSION_BUILD_LOCAL_APR)
+IF(SUBVERSION_BUILD_LOCAL_APU)
+       add_dependencies(svn_subr apr-util)
+ENDIF(SUBVERSION_BUILD_LOCAL_APU)


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