]> Creatis software - cpPlugins.git/blobdiff - lib/CMakeLists.txt
Build procedure simplified
[cpPlugins.git] / lib / CMakeLists.txt
index c1d958e27a475d6352cb2d429a45a12b0871170e..3c8e0aee971168ce6c31523d631b40b913050e6c 100644 (file)
@@ -1,14 +1,50 @@
-SUBDIRS(
-  ItkVtkGlue
-  third_party
-  cpExtensions
-  cpPlugins_ITKInstances
-  cpPlugins
-  )
-IF(USE_QT4)
-  SUBDIRS(
-    cpPipelineEditor
-    )
-ENDIF(USE_QT4)
+
+## =====================
+## == Build instances ==
+## =====================
+
+SUBDIRS(Instances)
+
+## =========================================
+## == Manage every directory as a library ==
+## =========================================
+
+SET(_dir ${CMAKE_CURRENT_SOURCE_DIR})
+SET(_pfx cpPlugins)
+SET(_ver ${prj_VERSION} ${prj_SHORT_VERSION})
+
+cpPlugins_CreateLibraryFromDirectory(${_pfx}_tinyxml2 SHARED ${_dir}/tinyxml2 ${_ver})
+cpPlugins_CreateLibraryFromDirectory(cpExtensions SHARED ${_dir}/cpExtensions ${_ver})
+cpPlugins_CreateLibraryFromDirectory(cpPlugins SHARED ${_dir}/cpPlugins ${_ver})
+cpPlugins_CreateLibraryFromDirectory(cpBaseQtApplication SHARED ${_dir}/cpBaseQtApplication ${_ver})
+
+## ========================
+## == Links to libraries ==
+## ========================
+
+TARGET_LINK_LIBRARIES(cpExtensions ${ITK_LIBRARIES} ${VTK_LIBRARIES})
+TARGET_LINK_LIBRARIES(cpPlugins ${cpPlugins_Instances} ${cpPlugins_tinyxml2_LIB})
+TARGET_LINK_LIBRARIES(cpBaseQtApplication ${cpPlugins_LIB})
+
+## ===================================
+## == Libraries to dynamically load ==
+## ===================================
+
+SET(cpPlugins_DynLibs local@cpExtensions)
+FOREACH(_lib ${cpPlugins_Instances})
+  LIST(APPEND cpPlugins_DynLibs local@${_lib})
+ENDFOREACH(_lib)
+FOREACH(_lib ${VTK_LIBRARIES})
+  GET_TARGET_PROPERTY(_lib_${_lib} ${_lib} LOCATION)
+  LIST(APPEND cpPlugins_DynLibs global@${_lib_${_lib}})
+ENDFOREACH(_lib)
+FOREACH(_lib ${ITK_LIBRARIES})
+  GET_TARGET_PROPERTY(_lib_${_lib} ${_lib} LOCATION)
+  LIST(APPEND cpPlugins_DynLibs global@${_lib_${_lib}})
+ENDFOREACH(_lib)
+FILE(WRITE ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "")
+FOREACH(_lib ${cpPlugins_DynLibs})
+  FILE(APPEND ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "${_lib}\n")
+ENDFOREACH(_lib)
 
 ## eof - $RCSfile$