]> Creatis software - cpPlugins.git/blobdiff - lib/CMakeLists.txt
...
[cpPlugins.git] / lib / CMakeLists.txt
index 4d3d3b720135a3f3400cbd992bf6f1209bb21876..30d104ade02c08647cfab715461dc4ae839822a5 100644 (file)
@@ -1,73 +1,75 @@
-## ====================
-## == Some variables ==
-## ====================
 
-SET(_dir ${CMAKE_CURRENT_SOURCE_DIR})
-SET(_ver "${prj_VERSION}" "${prj_SHORT_VERSION}")
+## ======================
+## == Helper libraries ==
+## ======================
 
-## ===========================
-## == Third party libraries ==
-## ===========================
+SET(
+  _cpExtensions_components
+  cpExtensions/Config.h.in
+  cpExtensions/DataStructures
+  cpExtensions/Algorithms
+  cpExtensions/Interaction
+  cpExtensions/Visualization
+  )
 
-LibFromDir(cpPlugins_tinyxml2 SHARED ${_dir}/tinyxml2 ${_ver})
-IF(Qt4_FOUND)
-  LibFromDir(cpPlugins_QCustomPlot SHARED ${_dir}/QCustomPlot ${_ver})
-  TARGET_LINK_LIBRARIES(cpPlugins_QCustomPlot ${QT_LIBRARIES})
-ENDIF(Qt4_FOUND)
-LibFromDir(cpExtensions SHARED ${_dir}/cpExtensions ${_ver})
-TARGET_LINK_LIBRARIES(cpExtensions ${ITK_LIBRARIES} ${VTK_LIBRARIES})
+IF(BUILD_QT4_COMPONENTS)
+  LIST(APPEND _cpExtensions_components "cpExtensions/QT")
+ENDIF(BUILD_QT4_COMPONENTS)
+cpPlugins_BuildLibrary(cpExtensions SHARED ${_cpExtensions_components})
+TARGET_LINK_LIBRARIES(
+  cpExtensions
+  ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES}
+  )
 
-## =====================
-## == Build instances ==
-## =====================
+## ============================================
+## == Explicit instances from templated code ==
+## ============================================
 
-SUBDIRS(Instances)
+SUBDIRS(
+  cpInstances
+  )
 
-## ========================
-## == Build main library ==
-## ========================
+## ==================
+## == Base library ==
+## ==================
 
-SET(_demangle_dir "${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/BaseObjects")
+SET(_real_config ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h)
 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}
+  OUTPUT ${_real_config}
+  COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins
+  COMMAND ${cpPlugins_bash_CreateRealConfig_APP} ${_real_config}
+  DEPENDS ${cpPlugins_bash_CreateRealConfig_APP}
   )
-LibFromDir(cpPlugins 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 SHARED ${_dir}/cpBaseQtApplication ${_ver})
-  TARGET_LINK_LIBRARIES(cpBaseQtApplication ${cpPlugins_LIB})
-ENDIF(Qt4_FOUND)
+SET(
+  _cpPlugins_components
+  ${_real_config}
+  cpPlugins/Config.h.in
+  cpPlugins/tinyxml2
+  cpPlugins/OS
+  cpPlugins/Pipeline
+  cpPlugins/Interface
+  )
+IF(BUILD_QT4_COMPONENTS)
+  LIST(APPEND _cpPlugins_components "cpPlugins/QT")
+ENDIF(BUILD_QT4_COMPONENTS)
+cpPlugins_BuildLibrary(cpPlugins SHARED ${_cpPlugins_components})
+TARGET_LINK_LIBRARIES(cpPlugins ${ITK_LIBRARIES} ${VTK_LIBRARIES})
+IF(BUILD_QT4_COMPONENTS)
+  TARGET_LINK_LIBRARIES(cpPlugins ${QT_LIBRARIES})
+ENDIF(BUILD_QT4_COMPONENTS)
 
 ## ===================================
-## == Libraries to dynamically load ==
+## == Base library for applications ==
 ## ===================================
 
-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)
+IF(BUILD_QT4_COMPONENTS)
+  cpPlugins_BuildLibrary(cpBaseQtApplication SHARED cpBaseQtApplication)
+  cpPlugins_BuildLibrary(cp_QCustomPlot SHARED QCustomPlot)
+  TARGET_LINK_LIBRARIES(
+    cpBaseQtApplication
+    cpExtensions cpPlugins
+    )
+  TARGET_LINK_LIBRARIES(cp_QCustomPlot ${QT_LIBRARIES})
+ENDIF(BUILD_QT4_COMPONENTS)
 
 ## eof - $RCSfile$