Revision: 77831
          http://sourceforge.net/p/brlcad/code/77831
Author:   starseeker
Date:     2020-11-30 16:34:14 +0000 (Mon, 30 Nov 2020)
Log Message:
-----------
Not sure yet if this is practical, but see if we can abstract the platform 
naming of the libraries into a function based on the pattern.  If the naming is 
too erratic this won't work in general, but initial regex linux test works so 
checkpointing.

Modified Paths:
--------------
    brlcad/branches/extbuild/misc/CMake/BRLCAD_Util.cmake
    brlcad/branches/extbuild/src/other/ext/regex.cmake

Modified: brlcad/branches/extbuild/misc/CMake/BRLCAD_Util.cmake
===================================================================
--- brlcad/branches/extbuild/misc/CMake/BRLCAD_Util.cmake       2020-11-30 
15:50:27 UTC (rev 77830)
+++ brlcad/branches/extbuild/misc/CMake/BRLCAD_Util.cmake       2020-11-30 
16:34:14 UTC (rev 77831)
@@ -575,6 +575,55 @@
 
 endfunction(generate_dreport)
 
+# Wrap the platform specific naming conventions we must manage to copy
+# build output from 3rd party build systems.
+function(set_lib_vars RVAR root vmaj vmin vpatch)
+
+  # OpenBSD has its own naming conventions.  Set a platform variable based on
+  # the OS name so we can test for it succinctly.
+  if ("${CMAKE_SYSTEM}" MATCHES ".*OpenBSD.*")
+    set(OPENBSD ON)
+  endif ("${CMAKE_SYSTEM}" MATCHES ".*OpenBSD.*")
+
+  unset(${RVAR}_BASENAME)
+  unset(${RVAR}_STATICNAME)
+  unset(${RVAR}_SUFFIX)
+  unset(${RVAR}_SYMLINK1)
+  unset(${RVAR}_SYMLINK2)
+
+  if (MSVC)
+    set(${RVAR}_BASENAME ${root})
+    set(${RVAR}_STATICNAME ${root}-static)
+    set(${RVAR}_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
+    set(${RVAR}_SYMLINK_1 ${${RVAR}_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+    set(${RVAR}_SYMLINK_2 
${${RVAR}_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${vmaj})
+  elseif (APPLE)
+    set(${RVAR}_BASENAME lib${root})
+    set(${RVAR}_STATICNAME lib${root})
+    set(${RVAR}_SUFFIX 
.${vmaj}.${vmin}.${vpatch}${CMAKE_SHARED_LIBRARY_SUFFIX})
+    set(${RVAR}_SYMLINK_1 ${${RVAR}_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+    set(${RVAR}_SYMLINK_2 
${${RVAR}_BASENAME}.${vmaj}${CMAKE_SHARED_LIBRARY_SUFFIX})
+  elseif (OPENBSD)
+    set(${RVAR}_BASENAME lib${root})
+    set(${RVAR}_STATICNAME lib${root})
+    set(${RVAR}_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}.${vmaj}.${vmin})
+  else (MSVC)
+    set(${RVAR}_BASENAME lib${root})
+    set(${RVAR}_STATICNAME lib${root})
+    set(${RVAR}_SUFFIX 
${CMAKE_SHARED_LIBRARY_SUFFIX}.${vmaj}.${vmin}.${vpatch})
+    set(${RVAR}_SYMLINK_1 ${${RVAR}_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+    set(${RVAR}_SYMLINK_2 
${${RVAR}_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${vmaj})
+  endif (MSVC)
+
+  # Communicate the answers to the parent scope - these are the return values.
+  set(${RVAR}_BASENAME   "${${RVAR}_BASENAME}"   PARENT_SCOPE)
+  set(${RVAR}_STATICNAME "${${RVAR}_STATICNAME}" PARENT_SCOPE)
+  set(${RVAR}_SUFFIX     "${${RVAR}_SUFFIX}"     PARENT_SCOPE)
+  set(${RVAR}_SYMLINK1   "${${RVAR}_SYMLINK1}"   PARENT_SCOPE)
+  set(${RVAR}_SYMLINK2   "${${RVAR}_SYMLINK2}"   PARENT_SCOPE)
+
+endfunction(set_lib_vars RVAR root)
+
 # Local Variables:
 # tab-width: 8
 # mode: cmake

Modified: brlcad/branches/extbuild/src/other/ext/regex.cmake
===================================================================
--- brlcad/branches/extbuild/src/other/ext/regex.cmake  2020-11-30 15:50:27 UTC 
(rev 77830)
+++ brlcad/branches/extbuild/src/other/ext/regex.cmake  2020-11-30 16:34:14 UTC 
(rev 77831)
@@ -13,30 +13,7 @@
 
 if (BRLCAD_REGEX_BUILD)
 
-  set(REGEX_VERSION "1.0.4")
-  if (MSVC)
-    set(REGEX_BASENAME regex_brl)
-    set(REGEX_STATICNAME regex_brl-static)
-    set(REGEX_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
-    set(REGEX_SYMLINK_1 ${REGEX_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
-    set(REGEX_SYMLINK_2 ${REGEX_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.1)
-  elseif (APPLE)
-    set(REGEX_BASENAME libregex_brl)
-    set(REGEX_STATICNAME libregex_brl)
-    set(REGEX_SUFFIX .${REGEX_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX})
-    set(REGEX_SYMLINK_1 ${REGEX_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
-    set(REGEX_SYMLINK_2 ${REGEX_BASENAME}.1${CMAKE_SHARED_LIBRARY_SUFFIX})
-  elseif (OPENBSD)
-    set(REGEX_BASENAME libregex_brl)
-    set(REGEX_STATICNAME libregex_brl)
-    set(REGEX_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}.1.0)
-  else (MSVC)
-    set(REGEX_BASENAME libregex_brl)
-    set(REGEX_STATICNAME libregex_brl)
-    set(REGEX_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}.${REGEX_VERSION})
-    set(REGEX_SYMLINK_1 ${REGEX_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
-    set(REGEX_SYMLINK_2 ${REGEX_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.1)
-  endif (MSVC)
+  set_lib_vars(REGEX regex_brl "1" "0" "4")
 
   set(REGEX_INSTDIR ${CMAKE_BINARY_INSTALL_ROOT}/regex)
 

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