-## ====================
-## == 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$