Author: astitcher
Date: Tue Oct 30 18:51:41 2012
New Revision: 1403812

URL: http://svn.apache.org/viewvc?rev=1403812&view=rev
Log:
NO-JIRA: shamelessly stole some cmake improvements from proton:
- Don't generate the docs all the time (unless we have to)
- Take a guess as to whether to use lib or lib64 to install libraries
  (This can be overridden in distribution package builds)

Modified:
    qpid/trunk/qpid/cpp/BuildInstallSettings.cmake
    qpid/trunk/qpid/cpp/CMakeLists.txt
    qpid/trunk/qpid/cpp/docs/api/CMakeLists.txt

Modified: qpid/trunk/qpid/cpp/BuildInstallSettings.cmake
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/BuildInstallSettings.cmake?rev=1403812&r1=1403811&r2=1403812&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/BuildInstallSettings.cmake (original)
+++ qpid/trunk/qpid/cpp/BuildInstallSettings.cmake Tue Oct 30 18:51:41 2012
@@ -132,6 +132,16 @@ function(set_absolute_install_path var i
   endif ()
 endfunction(set_absolute_install_path)
 
+# Figure out the default library suffix
+if (NOT DEFINED LIB_SUFFIX)
+    get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+    if (${LIB64} STREQUAL "TRUE" AND ${CMAKE_SIZEOF_VOID_P} STREQUAL "8")
+        set(LIB_SUFFIX 64)
+    else()
+        set(LIB_SUFFIX "")
+    endif()
+endif()
+
 # In rpm builds the build sets some variables:
 #  CMAKE_INSTALL_PREFIX - this is a standard cmake variable
 #  INCLUDE_INSTALL_DIR
@@ -141,7 +151,7 @@ endfunction(set_absolute_install_path)
 # So make these cached variables and the specific variables non cached and
 # derived from them.
   set (INCLUDE_INSTALL_DIR include CACHE PATH "Include file directory")
-  set (LIB_INSTALL_DIR lib CACHE PATH "Library object file directory")
+  set (LIB_INSTALL_DIR lib${LIB_SUFFIX} CACHE PATH "Library object file 
directory")
   set (SYSCONF_INSTALL_DIR etc CACHE PATH "System read only configuration 
directory")
   set (SHARE_INSTALL_DIR share CACHE PATH "Shared read only data directory")
   set (DOC_INSTALL_DIR 
${SHARE_INSTALL_DIR}/doc/${CMAKE_PROJECT_NAME}-${QPID_VERSION_FULL} CACHE PATH 
"Shared read only data directory")

Modified: qpid/trunk/qpid/cpp/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/CMakeLists.txt?rev=1403812&r1=1403811&r2=1403812&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/CMakeLists.txt Tue Oct 30 18:51:41 2012
@@ -25,6 +25,12 @@ endif(COMMAND cmake_policy)
 
 include(BuildInstallSettings.cmake)
 
+if (${CMAKE_VERSION} VERSION_LESS "2.8.0")
+    set (OPTIONAL_ARG "")
+else()
+    set (OPTIONAL_ARG OPTIONAL)
+endif()
+
 set (qpidc_version ${QPID_VERSION_MAJOR}.${QPID_VERSION_MINOR})
 
 enable_testing()
@@ -78,6 +84,15 @@ set(CPACK_PACKAGE_VERSION_MINOR "${QPID_
 set(CPACK_PACKAGE_VERSION_PATCH "0")
 set(CPACK_PACKAGE_INSTALL_DIRECTORY "qpidc-${qpidc_version}")
 
+# Add custom target for docs since we don't include a cmake file there 
directly.
+# If we can't use OPTIONAL in the install command then we have to make the docs
+# every time so that the install target succeeds
+if (OPTIONAL_ARG)
+  add_custom_target(docs)
+else (OPTIONAL_ARG)
+  add_custom_target(docs ALL)
+endif (OPTIONAL_ARG)
+
 add_subdirectory(managementgen)
 add_subdirectory(src)
 add_subdirectory(etc)

Modified: qpid/trunk/qpid/cpp/docs/api/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/docs/api/CMakeLists.txt?rev=1403812&r1=1403811&r2=1403812&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/docs/api/CMakeLists.txt (original)
+++ qpid/trunk/qpid/cpp/docs/api/CMakeLists.txt Tue Oct 30 18:51:41 2012
@@ -28,13 +28,15 @@ if (GEN_DOXYGEN)
                     ${CMAKE_CURRENT_BINARY_DIR}/user.doxygen)
     configure_file (${CMAKE_CURRENT_SOURCE_DIR}/developer.doxygen.in
                     ${CMAKE_CURRENT_BINARY_DIR}/developer.doxygen)
-    add_custom_target (docs-user-api ALL COMMAND ${DOXYGEN_EXECUTABLE} 
user.doxygen)
-    add_custom_target (docs-developer ALL COMMAND ${DOXYGEN_EXECUTABLE} 
developer.doxygen)
+    add_custom_target (docs-user-api COMMAND ${DOXYGEN_EXECUTABLE} 
user.doxygen)
+    add_custom_target (docs-developer COMMAND ${DOXYGEN_EXECUTABLE} 
developer.doxygen)
+    add_dependencies (docs docs-developer docs-user-api)
 
     # HTML files are generated to ./html - put those in the install.
     install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/
              DESTINATION ${QPID_INSTALL_DOCDIR}/api/html
-             COMPONENT ${QPID_COMPONENT_CLIENT_INCLUDE})
+             COMPONENT ${QPID_COMPONENT_CLIENT_INCLUDE}
+             ${OPTIONAL_ARG})
     if (CPACK_GENERATOR STREQUAL "NSIS")
         set (CPACK_NSIS_MENU_LINKS
              "${QPID_INSTALL_HTMLDIR}/index.html" "Qpid C++ API Documentation"



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to