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