-## =====================
-## == Build instances ==
-## =====================
+## ======================
+## == Helper libraries ==
+## ======================
-SUBDIRS(Instances)
+SET(
+ _cpExtensions_components
+ cpExtensions/Config.h.in
+ cpExtensions/DataStructures
+ cpExtensions/Algorithms
+ cpExtensions/Interaction
+ cpExtensions/Visualization
+ )
-## ===========================
-## == Third party 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}
+ )
-CompileLibFromDir(cp_tinyxml2 SHARED tinyxml2)
-IF(USE_QT4)
- CompileLibFromDir(cp_QCustomPlot SHARED QCustomPlot)
- TARGET_LINK_LIBRARIES(cp_QCustomPlot ${QT_LIBRARIES})
-ENDIF(USE_QT4)
+## ============================================
+## == Explicit instances from templated code ==
+## ============================================
+
+SUBDIRS(
+ cpInstances
+ )
## ==================
-## == Main library ==
+## == Base library ==
## ==================
+SET(_real_config ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h)
ADD_CUSTOM_COMMAND(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h
+ OUTPUT ${_real_config}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins
- COMMAND ${cpPlugins_bash_CreateRealConfig_APP} ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h
+ COMMAND ${cpPlugins_bash_CreateRealConfig_APP} ${_real_config}
DEPENDS ${cpPlugins_bash_CreateRealConfig_APP}
)
-CompileLibFromDir(
- cpPlugins SHARED cpPlugins
- ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h
- )
-TARGET_LINK_LIBRARIES(
- cpPlugins
- cp_tinyxml2
- ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES}
- ${cpPlugins_Instances}
+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)
-## =====================
-## == Other libraries ==
-## =====================
+## ===================================
+## == Base library for applications ==
+## ===================================
-CompileLibFromDir(cpExtensions SHARED cpExtensions)
-TARGET_LINK_LIBRARIES(
- cpExtensions
- ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES}
- )
-IF(USE_QT4)
- CompileLibFromDir(cpBaseQtApplication SHARED cpBaseQtApplication)
+IF(BUILD_QT4_COMPONENTS)
+ cpPlugins_BuildLibrary(cpBaseQtApplication SHARED cpBaseQtApplication)
+ cpPlugins_BuildLibrary(cp_QCustomPlot SHARED QCustomPlot)
TARGET_LINK_LIBRARIES(
cpBaseQtApplication
- cpPlugins cpExtensions
- )
-ENDIF(USE_QT4)
-
-CompileLibFromDir(cpPluginsExtensions SHARED cpPluginsExtensions)
-TARGET_LINK_LIBRARIES(cpPluginsExtensions cpPlugins cpExtensions)
-
-## ====================
-## == Base libraries ==
-## ====================
-
-IF(USE_QT4)
- SET(
- cpPlugins_BaseLibraries
- cp_tinyxml2
- cp_QCustomPlot
- cpExtensions
- cpPlugins
- CACHE INTERNAL "All locally compiled libraries." FORCE
+ cpExtensions cpPlugins
)
-ELSE(USE_QT4)
- SET(
- cpPlugins_BaseLibraries
- cp_tinyxml2
- cpExtensions
- cpPlugins
- CACHE INTERNAL "All locally compiled libraries." FORCE
- )
-ENDIF(USE_QT4)
-
-## ===================================
-## == Libraries to dynamically load ==
-## ===================================
-
-SET(_pre ${CMAKE_SHARED_LIBRARY_PREFIX})
-SET(_suf ${CMAKE_SHARED_LIBRARY_SUFFIX})
-
-SET(cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/bin/${_pre}cpExtensions${_suf}")
-LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/lib/${_pre}cpExtensions${_suf}")
-LIST(APPEND cpPlugins_DynLibs "${LIBRARY_OUTPUT_PATH}/${_pre}cpExtensions${_suf}")
-FOREACH(_lib ${cpPlugins_Instances})
- LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/bin/${_pre}${_lib}${_suf}")
- LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/lib/${_pre}${_lib}${_suf}")
- LIST(APPEND cpPlugins_DynLibs "${LIBRARY_OUTPUT_PATH}/${_pre}${_lib}${_suf}")
-ENDFOREACH(_lib)
-LIST(APPEND cpPlugins_DynLibs "${VTK_INSTALL_PREFIX}/bin/*vtk*${_suf}")
-LIST(APPEND cpPlugins_DynLibs "${VTK_INSTALL_PREFIX}/lib/*vtk*${_suf}")
-LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/bin/*itk*${_suf}")
-LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/lib/*itk*${_suf}")
-LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/bin/*ITK*${_suf}")
-LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/lib/*ITK*${_suf}")
-FILE(WRITE ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "")
-FOREACH(_lib ${cpPlugins_DynLibs})
- FILE(APPEND ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "${_lib}\n")
-ENDFOREACH(_lib)
+ TARGET_LINK_LIBRARIES(cp_QCustomPlot ${QT_LIBRARIES})
+ENDIF(BUILD_QT4_COMPONENTS)
## eof - $RCSfile$