Procházet zdrojové kódy

Enable absolute paths for SetupExternalPlugins

ADD_SUBDIRECTORY needs an explicit boinary dir in that case
Marco Nolden před 13 roky
rodič
revize
ed10fc66f0
1 změnil soubory, kde provedl 12 přidání a 2 odebrání
  1. 12 2
      CMake/ctkMacroSetupExternalPlugins.cmake

+ 12 - 2
CMake/ctkMacroSetupExternalPlugins.cmake

@@ -74,7 +74,11 @@ MACRO(ctkMacroSetupExternalPlugins )
     ENDIF()
 
     LIST(APPEND plugin_subdirs "${plugin_name}")
-    LIST(APPEND plugin_dirswithoption "${CMAKE_CURRENT_SOURCE_DIR}/${plugin_name}^^${option_name}")
+    IF(IS_ABSOLUTE ${plugin_name})
+      LIST(APPEND plugin_dirswithoption "${plugin_name}^^${option_name}")
+    ELSE()
+      LIST(APPEND plugin_dirswithoption "${CMAKE_CURRENT_SOURCE_DIR}/${plugin_name}^^${option_name}")
+    ENDIF()
   ENDFOREACH()
 
   ctkFunctionGenerateDGraphInput(${CMAKE_CURRENT_BINARY_DIR} "${plugin_dirswithoption}" WITH_EXTERNALS)
@@ -86,7 +90,13 @@ MACRO(ctkMacroSetupExternalPlugins )
 
   FOREACH(plugin ${plugin_subdirs})
     IF(${${plugin}_option_name})
-      ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/${plugin})
+      IF(IS_ABSOLUTE ${plugin})
+        # get last directory component
+        GET_FILENAME_COMPONENT(_dirname ${plugin} NAME) 
+        ADD_SUBDIRECTORY(${plugin} private_plugins/${_dirname})
+      ELSE()
+        ADD_SUBDIRECTORY(${plugin})
+      ENDIF()
     ENDIF()
   ENDFOREACH()