Revision: 44598
          http://brlcad.svn.sourceforge.net/brlcad/?rev=44598&view=rev
Author:   starseeker
Date:     2011-05-10 14:59:12 +0000 (Tue, 10 May 2011)

Log Message:
-----------
Make the logic to prevent CMake from searching in CMAKE_INSTALL_PREFIX more 
robust.

Modified Paths:
--------------
    brlcad/trunk/CMakeLists.txt

Modified: brlcad/trunk/CMakeLists.txt
===================================================================
--- brlcad/trunk/CMakeLists.txt 2011-05-10 14:56:25 UTC (rev 44597)
+++ brlcad/trunk/CMakeLists.txt 2011-05-10 14:59:12 UTC (rev 44598)
@@ -115,18 +115,37 @@
 #
 # 2.  For more custom paths, the logic below will strip out the value
 #     of CMAKE_INSTALL_PREFIX to avoid its use in find_package searches
+#
+# (Note:  CMAKE_INSTALL_PREFIX must be checked in the case where someone
+# sets it on the command line prior to CMake being run.  BRLCAD_PREFIX
+# preserves the CMAKE_INSTALL_PREFIX setting from the previous CMake run.
+# CMAKE_INSTALL_PREFIX does not seem to be immediately set in this context
+# when CMake is re-run unless specified explicitly on the command line.
+# To ensure the previous (and internally set) CMAKE_INSTALL_PREFIX value
+# is available, BRLCAD_PREFIX is used to store the value in the cache.)
 
-IF(CMAKE_INSTALL_PREFIX AND BRLCAD_PREFIX)
-       IF(NOT ${BRLCAD_PREFIX} MATCHES "^/usr$" AND NOT ${BRLCAD_PREFIX} 
MATCHES "^/usr/local$")
-               LIST(FIND CMAKE_SYSTEM_PREFIX_PATH ${BRLCAD_PREFIX} 
BRLCAD_PREFIX_IN_SEARCH)
-               IF(BRLCAD_PREFIX_IN_SEARCH)
-                       LIST(REMOVE_AT CMAKE_SYSTEM_PREFIX_PATH 
${BRLCAD_PREFIX_IN_SEARCH})
-                       SET(CMAKE_SYSTEM_PREFIX_PATH 
${CMAKE_SYSTEM_PREFIX_PATH} CACHE STRING "Tweaked to avoid inconsistent search 
results")
-               ENDIF(BRLCAD_PREFIX_IN_SEARCH)
-       ENDIF(NOT ${BRLCAD_PREFIX} MATCHES "^/usr$" AND NOT ${BRLCAD_PREFIX} 
MATCHES "^/usr/local$")
-ELSE(CMAKE_INSTALL_PREFIX AND BRLCAD_PREFIX)
+IF(CMAKE_INSTALL_PREFIX OR BRLCAD_PREFIX)
+       IF(BRLCAD_PREFIX)
+               IF(NOT ${BRLCAD_PREFIX} STREQUAL "/usr" AND NOT 
${BRLCAD_PREFIX} STREQUAL "/usr/local")
+                       LIST(FIND CMAKE_SYSTEM_PREFIX_PATH ${BRLCAD_PREFIX} 
BRLCAD_PREFIX_IN_SEARCH)
+                       IF(BRLCAD_PREFIX_IN_SEARCH)
+                               LIST(REMOVE_AT CMAKE_SYSTEM_PREFIX_PATH 
${BRLCAD_PREFIX_IN_SEARCH})
+                               SET(CMAKE_SYSTEM_PREFIX_PATH 
${CMAKE_SYSTEM_PREFIX_PATH} CACHE STRING "Tweaked to avoid inconsistent search 
results")
+                       ENDIF(BRLCAD_PREFIX_IN_SEARCH)
+               ENDIF(NOT ${BRLCAD_PREFIX} STREQUAL "/usr" AND NOT 
${BRLCAD_PREFIX} STREQUAL "/usr/local")
+       ENDIF(BRLCAD_PREFIX)
+       IF(CMAKE_INSTALL_PREFIX)
+               IF(NOT ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" AND NOT 
${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")
+                       LIST(FIND CMAKE_SYSTEM_PREFIX_PATH 
${CMAKE_INSTALL_PREFIX} CMAKE_INSTALL_PREFIX_IN_SEARCH)
+                       IF(CMAKE_INSTALL_PREFIX_IN_SEARCH)
+                               LIST(REMOVE_AT CMAKE_SYSTEM_PREFIX_PATH 
${CMAKE_INSTALL_PREFIX_IN_SEARCH})
+                               SET(CMAKE_SYSTEM_PREFIX_PATH 
${CMAKE_SYSTEM_PREFIX_PATH} CACHE STRING "Tweaked to avoid inconsistent search 
results")
+                       ENDIF(CMAKE_INSTALL_PREFIX_IN_SEARCH)
+               ENDIF(NOT ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr" AND NOT 
${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")
+       ENDIF(CMAKE_INSTALL_PREFIX)
+ELSE(CMAKE_INSTALL_PREFIX OR BRLCAD_PREFIX)
        SET(CMAKE_SYSTEM_PREFIX_PATH ${CMAKE_SYSTEM_PREFIX_PATH} CACHE STRING 
"Tweaked to avoid inconsistent search results")
-ENDIF(CMAKE_INSTALL_PREFIX AND BRLCAD_PREFIX)
+ENDIF(CMAKE_INSTALL_PREFIX OR BRLCAD_PREFIX)
 MARK_AS_ADVANCED(CMAKE_SYSTEM_PREFIX_PATH)
 
 #---------------------------------------------------------------------


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to