Revision: 75464
          http://sourceforge.net/p/brlcad/code/75464
Author:   starseeker
Date:     2020-04-18 13:47:10 +0000 (Sat, 18 Apr 2020)
Log Message:
-----------
Start working on the CMake setup needed to build dm backends as plugins

Modified Paths:
--------------
    brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Util.cmake
    brlcad/branches/dm-fb-merge/src/libdm/CMakeLists.txt

Added Paths:
-----------
    brlcad/branches/dm-fb-merge/src/libdm/null/CMakeLists.txt

Modified: brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Util.cmake
===================================================================
--- brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Util.cmake    2020-04-18 
13:21:34 UTC (rev 75463)
+++ brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Util.cmake    2020-04-18 
13:47:10 UTC (rev 75464)
@@ -155,6 +155,37 @@
 endfunction(IS_SUBPATH)
 
 #-----------------------------------------------------------------------------
+# Plugins for libraries need a specific override of their output directories
+# to put them in the correct relative location
+function(PLUGIN_SETUP plugin_targets subdir)
+  set(DIR_TYPES LIBRARY RUNTIME ARCHIVE)
+  foreach (target_name ${plugin_targets})
+    if (NOT CMAKE_CONFIGURATION_TYPES)
+      foreach(dt ${DIR_TYPES})
+       get_property(cd TARGET ${target_name} PROPERTY ${dt}_OUTPUT_DIRECTORY)
+       set_property(TARGET ${target_name} PROPERTY ${dt}_OUTPUT_DIRECTORY 
"${cd}/../${LIBEXEC_DIR}/${subdir}")
+      endforeach(dt ${DIR_TYPES})
+    else (NOT CMAKE_CONFIGURATION_TYPES)
+      foreach(ct ${CMAKE_CONFIGURATION_TYPES})
+       if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
+         set(CMAKE_BINARY_DIR ${CMAKE_BINARY_DIR}/${ct})
+       endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
+       string(TOUPPER "${ct}" CTU)
+       foreach(dt ${DIR_TYPES})
+         get_property(cd TARGET ${target_name} PROPERTY 
${dt}_OUTPUT_DIRECTORY_${CTU})
+         set_property(TARGET ${target_name} PROPERTY 
${dt}_OUTPUT_DIRECTORY_${CTU} "${cd}/../${LIBEXEC_DIR}/${subdir}")
+       endforeach(dt ${DIR_TYPES})
+      endforeach(ct ${CMAKE_CONFIGURATION_TYPES})
+    endif (NOT CMAKE_CONFIGURATION_TYPES)
+    set_target_properties(${target_name} PROPERTIES FOLDER "BRL-CAD 
Plugins/${subdir}")
+    install(TARGETS ${target_name}
+      RUNTIME DESTINATION ${LIBEXEC_DIR}/${subdir}
+      LIBRARY DESTINATION ${LIBEXEC_DIR}/${subdir}
+      ARCHIVE DESTINATION ${LIBEXEC_DIR}/${subdir})
+  endforeach (target_name${plugins})
+endfunction(PLUGIN_SETUP)
+
+#-----------------------------------------------------------------------------
 # Distcheck needs to know what files are "supposed" to be present in order to
 # make sure the source tree is clean prior to building a distribution tarball,
 #

Modified: brlcad/branches/dm-fb-merge/src/libdm/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/CMakeLists.txt        2020-04-18 
13:21:34 UTC (rev 75463)
+++ brlcad/branches/dm-fb-merge/src/libdm/CMakeLists.txt        2020-04-18 
13:47:10 UTC (rev 75464)
@@ -21,6 +21,8 @@
 
 BRLCAD_LIB_INCLUDE_DIRS(dm DM_INCLUDE_DIRS DM_LOCAL_INCLUDE_DIRS)
 
+add_subdirectory(null)
+
 # Initialize libdm_DEFINES in case of reconfiguration
 set(libdm_DEFINES "")
 

Added: brlcad/branches/dm-fb-merge/src/libdm/null/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/null/CMakeLists.txt                   
        (rev 0)
+++ brlcad/branches/dm-fb-merge/src/libdm/null/CMakeLists.txt   2020-04-18 
13:47:10 UTC (rev 75464)
@@ -0,0 +1,30 @@
+# Include directories needed by libdm users
+set(DM_NULL_INCLUDE_DIRS
+  ${CMAKE_CURRENT_SOURCE_DIR}
+  ${BRLCAD_BINARY_DIR}/include
+  ${BRLCAD_SOURCE_DIR}/include
+  )
+include_directories(${DM_NULL_INCLUDE_DIRS})
+
+set(NULL_SRCS
+  dm-Null.c
+  if_null.c
+  )
+
+add_library(dm_null SHARED ${NULL_SRCS})
+target_link_libraries(dm_null libdm libbu)
+if (CPP_DLL_DEFINES)
+  set_property(TARGET dm_null APPEND PROPERTY COMPILE_DEFINITIONS 
"DM_DLL_EXPORTS")
+endif (CPP_DLL_DEFINES)
+VALIDATE_STYLE(dm_null "${NULL_SRCS}")
+
+PLUGIN_SETUP(dm_null dm)
+
+CMAKEFILES(dm-Null.h)
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8


Property changes on: brlcad/branches/dm-fb-merge/src/libdm/null/CMakeLists.txt
___________________________________________________________________
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