Revision: 77583
          http://sourceforge.net/p/brlcad/code/77583
Author:   starseeker
Date:     2020-10-23 02:49:22 +0000 (Fri, 23 Oct 2020)
Log Message:
-----------
Add path setup module

Added Paths:
-----------
    brlcad/branches/extbuild/src/other/ext/CMake/Path_Setup.cmake

Added: brlcad/branches/extbuild/src/other/ext/CMake/Path_Setup.cmake
===================================================================
--- brlcad/branches/extbuild/src/other/ext/CMake/Path_Setup.cmake               
                (rev 0)
+++ brlcad/branches/extbuild/src/other/ext/CMake/Path_Setup.cmake       
2020-10-23 02:49:22 UTC (rev 77583)
@@ -0,0 +1,164 @@
+# Copyright (c) 2010-2020 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. 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.
+#
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+
+#---------------------------------------------------------------------
+# Define relative install locations.  Don't set these if they have already
+# been set by some other means (like a higher level CMakeLists.txt file
+# including this one).
+
+# The location in which to install BRL-CAD executables.
+if(NOT BIN_DIR)
+  set(BIN_DIR bin)
+endif(NOT BIN_DIR)
+
+# Define a relative path that will "reset" a path back to
+# the point before BIN_DIR was appended.  This is primarily
+# useful when working with generator expressions
+unset(RBIN_DIR CACHE)
+set(LBIN_DIR "${BIN_DIR}")
+while (NOT "${LBIN_DIR}" STREQUAL "")
+  get_filename_component(LBDIR "${LBIN_DIR}" DIRECTORY)
+  set(LBIN_DIR "${LBDIR}")
+  if ("${RBIN_DIR}" STREQUAL "")
+    set(RBIN_DIR "..")
+  else ("${RBIN_DIR}" STREQUAL "")
+    set(RBIN_DIR "../${RBIN_DIR}")
+  endif ("${RBIN_DIR}" STREQUAL "")
+endwhile (NOT "${LBIN_DIR}" STREQUAL "")
+
+# The location in which to install BRL-CAD libraries.
+if(NOT LIB_DIR)
+  set(LIB_DIR lib)
+endif(NOT LIB_DIR)
+if(NOT LIBEXEC_DIR)
+  set(LIBEXEC_DIR libexec)
+endif(NOT LIBEXEC_DIR)
+
+# The location in which to install BRL-CAD header files.
+if(NOT INCLUDE_DIR)
+  set(INCLUDE_DIR include)
+endif(NOT INCLUDE_DIR)
+
+# The location in which to install BRL-CAD data files
+if(NOT DATA_DIR)
+  set(DATA_DIR share)
+endif(NOT DATA_DIR)
+
+# The location in which to install BRL-CAD documentation files
+if(NOT DOC_DIR)
+  set(DOC_DIR ${DATA_DIR}/doc)
+endif(NOT DOC_DIR)
+
+# The location in which to install BRL-CAD Manual pages
+if(NOT MAN_DIR)
+  set(MAN_DIR ${DATA_DIR}/man)
+endif(NOT MAN_DIR)
+
+# Make sure no absolute paths have been supplied to these variables
+set(INSTALL_DIRS BIN INCLUDE LIB LIBEXEC DATA MAN DOC)
+foreach(instdir ${INSTALL_DIRS})
+  get_filename_component(instdir_full ${${instdir}_DIR} ABSOLUTE)
+  if("${${instdir}_DIR}" STREQUAL "${instdir_full}")
+    message(FATAL_ERROR "Error - absolute path supplied for ${instdir}_DIR.  
This path must be relative - e.g. \"bin\" instead of \"/usr/bin\"")
+    set(HAVE_INSTALL_DIR_FULL_PATH 1)
+  endif("${${instdir}_DIR}" STREQUAL "${instdir_full}")
+endforeach(instdir ${INSTALL_DIRS})
+
+#---------------------------------------------------------------------
+# Output directories - this is where built library and executable
+# files will be placed after building but prior to install.  The
+# necessary variables change between single and multi configuration
+# build systems, so it is necessary to handle both cases on a
+# conditional basis.
+
+if(NOT CMAKE_CONFIGURATION_TYPES)
+  # If we're not doing multi-configuration, just set the three main
+  # variables to the correct values.
+  if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY 
${${PROJECT_NAME}_BINARY_DIR}/${LIB_DIR} CACHE INTERNAL "Single output 
directory for building all libraries.")
+  endif(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+  if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
+    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY 
${${PROJECT_NAME}_BINARY_DIR}/${LIB_DIR} CACHE INTERNAL "Single output 
directory for building all archives.")
+  endif(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
+  if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY 
${${PROJECT_NAME}_BINARY_DIR}/${BIN_DIR} CACHE INTERNAL "Single output 
directory for building all executables.")
+  endif(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+else(NOT CMAKE_CONFIGURATION_TYPES)
+  # Multi-configuration is more difficult.  Not only do we need to
+  # properly set the output directories, but we also need to
+  # identify the "toplevel" directory for each configuration so
+  # we can place files, documentation, etc. in the correct
+  # relative positions.  Because files may be placed by CMake
+  # without a build target to put them in their proper relative build
+  # directory position using these paths, we must fully qualify them
+  # without using CMAKE_CFG_INTDIR.
+  #
+  # We define directories that may not be quite "standard"
+  # for a particular build tool - for example, native VS2010 projects use
+  # another directory to denote CPU type being compiled for - but CMake only
+  # supports multi-configuration setups having multiple configurations,
+  # not multiple compilers.
+  #
+  # One additional wrinkle we must watch for here is the case where
+  # a multi-configuration setup uses "." for its internal directory -
+  # if that's the case, we need to just set the various config output
+  # directories to the same value.
+  set(CFG_ROOT ${${PROJECT_NAME}_BINARY_DIR})
+  foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
+    if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
+      set(CFG_ROOT ${${PROJECT_NAME}_BINARY_DIR}/${CFG_TYPE})
+    endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
+    string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
+    if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
+      set("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" 
${CFG_ROOT}/${LIB_DIR} CACHE INTERNAL "Single output directory for building 
${CFG_TYPE} libraries.")
+    endif(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
+    if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
+      set("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" 
${CFG_ROOT}/${LIB_DIR} CACHE INTERNAL "Single output directory for building 
${CFG_TYPE} archives.")
+    endif(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
+    if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
+      set("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" 
${CFG_ROOT}/${BIN_DIR} CACHE INTERNAL "Single output directory for building 
${CFG_TYPE} executables.")
+    endif(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
+    if(NOT DEFINED CMAKE_BINARY_DIR_${CFG_TYPE_UPPER})
+      set("CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}" ${CFG_ROOT} CACHE INTERNAL 
"Toplevel binary dir for ${CFG_TYPE} building.")
+    endif(NOT DEFINED CMAKE_BINARY_DIR_${CFG_TYPE_UPPER})
+    if(NOT DEFINED ${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER})
+      set("${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER}" ${CFG_ROOT} CACHE 
INTERNAL "Toplevel binary dir for ${CFG_TYPE} building.")
+    endif(NOT DEFINED ${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER})
+  endforeach()
+endif(NOT CMAKE_CONFIGURATION_TYPES)
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8


Property changes on: 
brlcad/branches/extbuild/src/other/ext/CMake/Path_Setup.cmake
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to