]> Creatis software - cpPlugins.git/blobdiff - lib/CMakeLists.txt
...
[cpPlugins.git] / lib / CMakeLists.txt
index a40928eac8746d096c270a8720b8424112e98cfe..4caae27003d6959d58e79016c4bc7201a627748d 100644 (file)
@@ -1,14 +1,72 @@
-SUBDIRS(
-  ItkVtkGlue
-  third_party
-  cpExtensions
-  cpPlugins_Instances
-  cpPlugins
+## ====================
+## == Some variables ==
+## ====================
+
+SET(_dir ${CMAKE_CURRENT_SOURCE_DIR})
+SET(_ver "${prj_VERSION}" "${prj_SHORT_VERSION}")
+
+## ===========================
+## == Third party libraries ==
+## ===========================
+
+LibFromDir(cpPlugins_tinyxml2 ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/tinyxml2 ${_ver})
+IF(Qt4_FOUND)
+  LibFromDir(cpPlugins_QCustomPlot ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/QCustomPlot ${_ver})
+  TARGET_LINK_LIBRARIES(cpPlugins_QCustomPlot ${QT_LIBRARIES})
+ENDIF(Qt4_FOUND)
+LibFromDir(cpExtensions ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/cpExtensions ${_ver})
+TARGET_LINK_LIBRARIES(cpExtensions ${ITK_LIBRARIES} ${VTK_LIBRARIES} ${QT_LIBRARIES})
+
+## =====================
+## == Build instances ==
+## =====================
+
+SUBDIRS(Instances)
+
+## ========================
+## == Build main library ==
+## ========================
+
+SET(_demangle_dir "${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/BaseObjects")
+ADD_CUSTOM_COMMAND(
+  OUTPUT "${_demangle_dir}/DemangleBase.h"
+  COMMAND ${CMAKE_COMMAND} -E make_directory ${_demangle_dir}
+  COMMAND ${cpPlugins_bash_BuildDemangleHeader_APP} "${_demangle_dir}/DemangleBase.h"
+  DEPENDS ${cpPlugins_bash_BuildDemangleHeader_APP}
   )
-IF(USE_QT4)
-  SUBDIRS(
-    cpPipelineEditor
-    )
-ENDIF(USE_QT4)
+LibFromDir(cpPlugins ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/cpPlugins ${_ver} ${_demangle_dir}/DemangleBase.h)
+TARGET_LINK_LIBRARIES(cpPlugins cpPlugins_tinyxml2 cpExtensions ${cpPlugins_Instances})
+
+## ======================
+## == Build Qt library ==
+## ======================
+
+IF(Qt4_FOUND)
+  LibFromDir(cpBaseQtApplication ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/cpBaseQtApplication ${_ver})
+  TARGET_LINK_LIBRARIES(cpBaseQtApplication ${cpPlugins_LIB})
+ENDIF(Qt4_FOUND)
+
+## ===================================
+## == Libraries to dynamically load ==
+## ===================================
+
+SET(cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/bin|cpExtensions")
+LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/lib|cpExtensions")
+LIST(APPEND cpPlugins_DynLibs "${LIBRARY_OUTPUT_PATH}|cpExtensions")
+FOREACH(_lib ${cpPlugins_Instances})
+  LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/bin|${_lib}")
+  LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/lib|${_lib}")
+  LIST(APPEND cpPlugins_DynLibs "${LIBRARY_OUTPUT_PATH}|${_lib}")
+ENDFOREACH(_lib)
+LIST(APPEND cpPlugins_DynLibs "${VTK_INSTALL_PREFIX}/bin|vtk*")
+LIST(APPEND cpPlugins_DynLibs "${VTK_INSTALL_PREFIX}/lib|vtk*")
+LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/bin|itk*")
+LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/lib|itk*")
+LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/bin|ITK*")
+LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/lib|ITK*")
+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$