[Orxonox-commit 913] r5636 - code/branches/libraries/cmake

rgrieder at orxonox.net rgrieder at orxonox.net
Wed Aug 12 14:21:56 CEST 2009


Author: rgrieder
Date: 2009-08-12 14:21:56 +0200 (Wed, 12 Aug 2009)
New Revision: 5636

Modified:
   code/branches/libraries/cmake/TargetUtilities.cmake
Log:
Fixed plugins for msvc (sry fabian, forgot to tell you about this issue).

Modified: code/branches/libraries/cmake/TargetUtilities.cmake
===================================================================
--- code/branches/libraries/cmake/TargetUtilities.cmake	2009-08-11 23:50:49 UTC (rev 5635)
+++ code/branches/libraries/cmake/TargetUtilities.cmake	2009-08-12 12:21:56 UTC (rev 5636)
@@ -149,14 +149,13 @@
 
   # PLUGIN A
   IF(_arg_PLUGIN)
-    SET(_arg_PLUGIN MODULE)
-    SET(_arg_SHARED)
+    SET(_arg_SHARED MODULE)
     SET(_arg_STATIC)
   ENDIF()
 
   # Add the library/executable
   IF("${_target_type}" STREQUAL "LIBRARY")
-    ADD_LIBRARY(${_target_name} ${_arg_STATIC} ${_arg_SHARED} ${_arg_PLUGIN}
+    ADD_LIBRARY(${_target_name} ${_arg_STATIC} ${_arg_SHARED}
                 ${_arg_EXCLUDE_FROM_ALL} ${_${_target_name}_files})
   ELSE()
     ADD_EXECUTABLE(${_target_name} ${_arg_WIN32} ${_arg_EXCLUDE_FROM_ALL}
@@ -166,7 +165,6 @@
   # PLUGIN B
   IF (_arg_PLUGIN)
     SET_TARGET_PROPERTIES(${_target_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_PLUGIN_OUTPUT_DIRECTORY})
-    SET_TARGET_PROPERTIES(${_target_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_PLUGIN_OUTPUT_DIRECTORY})
     ADD_PLUGIN(${_target_name})
   ENDIF()
 
@@ -206,7 +204,6 @@
     INSTALL(TARGETS ${_target_name}
       RUNTIME DESTINATION ${ORXONOX_RUNTIME_INSTALL_PATH}
       LIBRARY DESTINATION ${_library_destination}
-      #ARCHIVE DESTINATION ${ORXONOX_ARCHIVE_INSTALL_PATH}
     )
   ENDIF()
 
@@ -216,19 +213,33 @@
 # Creates a helper file with name <name_of_the_library>.plugin
 # This helps finding dynamically loadable plugins at runtime
 
-FUNCTION(ADD_PLUGIN _name)
+FUNCTION(ADD_PLUGIN _target)
   # We use the properties to get the name because the librarys name may differ from
-  # the targets name (for example orxonox <-> liborxonox)
+  # the target name (for example orxonox <-> liborxonox)
 
-  GET_TARGET_PROPERTY(_target_loc ${_name} LOCATION)
+  GET_TARGET_PROPERTY(_target_loc ${_target} LOCATION)
   GET_FILENAME_COMPONENT(_target_name ${_target_loc} NAME_WE)
 
-  SET(_plugin_filename "${CMAKE_PLUGIN_OUTPUT_DIRECTORY}/${_target_name}.plugin")
+  IF(CMAKE_CONFIGURATION_TYPES)
+    FOREACH(_config ${CMAKE_CONFIGURATION_TYPES})
+      SET(_plugin_filename ${CMAKE_PLUGIN_OUTPUT_DIRECTORY}/${_config}/${_target_name}.plugin)
 
-  FILE(WRITE ${_plugin_filename})
+      FILE(WRITE ${_plugin_filename})
 
-  INSTALL(
-    FILES ${_plugin_filename}
-    DESTINATION ${ORXONOX_PLUGIN_INSTALL_PATH}
-  )
+      INSTALL(
+        FILES ${_plugin_filename}
+        DESTINATION ${ORXONOX_PLUGIN_INSTALL_PATH}
+        CONFIGURATIONS ${_config}
+      )
+    ENDFOREACH()
+  ELSE()
+    SET(_plugin_filename ${CMAKE_PLUGIN_OUTPUT_DIRECTORY}/${_target_name}.plugin)
+
+    FILE(WRITE ${_plugin_filename})
+
+    INSTALL(
+      FILES ${_plugin_filename}
+      DESTINATION ${ORXONOX_PLUGIN_INSTALL_PATH}
+    )
+  ENDIF()
 ENDFUNCTION(ADD_PLUGIN)




More information about the Orxonox-commit mailing list