]> Creatis software - cpPlugins.git/blobdiff - lib/CMakeLists.txt
...
[cpPlugins.git] / lib / CMakeLists.txt
index e149793dd3ee113f6f813e0a4ad3bfddacb58443..30d104ade02c08647cfab715461dc4ae839822a5 100644 (file)
@@ -1,62 +1,75 @@
-## ====================
-## == Base libraries ==
-## ====================
 
-CompileLibFromDir(cp_tinyxml2 SHARED tinyxml2)
-IF(USE_QT4)
-  CompileLibFromDir(cp_QCustomPlot SHARED QCustomPlot)
-  TARGET_LINK_LIBRARIES(cp_QCustomPlot ${QT_LIBRARIES})
-ENDIF(USE_QT4)
-CompileLibFromDir(cpExtensions SHARED cpExtensions)
-TARGET_LINK_LIBRARIES(cpExtensions ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES})
+## ======================
+## == Helper libraries ==
+## ======================
+
+SET(
+  _cpExtensions_components
+  cpExtensions/Config.h.in
+  cpExtensions/DataStructures
+  cpExtensions/Algorithms
+  cpExtensions/Interaction
+  cpExtensions/Visualization
+  )
 
-## ===============
-## == Instances ==
-## ===============
+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}
+  )
 
-SUBDIRS(Instances)
+## ============================================
+## == Explicit instances from templated code ==
+## ============================================
+
+SUBDIRS(
+  cpInstances
+  )
 
 ## ==================
-## == Main library ==
+## == Base library ==
 ## ==================
 
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h "#ifndef __cpPlugins__RealConfig__h__\n")
-FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h "#define __cpPlugins__RealConfig__h__\n\n")
-FOREACH(_def ${cpPlugins_ALL_CONFIGS})
-  FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h "#define ${_def}\n")
-ENDFOREACH(_def)
-FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h "\n#endif // __cpPlugins__RealConfig__h__\n")
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/Instances)
-CompileLibFromDir(cpPlugins SHARED cpPlugins ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h)
-TARGET_LINK_LIBRARIES(
-  cpPlugins
-  cp_tinyxml2
-  cpExtensions
-  ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES}
-  ${cpPlugins_Instances}
+SET(_real_config ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h)
+ADD_CUSTOM_COMMAND(
+  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}
   )
+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 "${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 - $RCSfilfe$
+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$