-## ====================
-## == Some variables ==
-## ====================
-SET(_dir ${CMAKE_CURRENT_SOURCE_DIR})
-SET(_ver "${prj_VERSION}" "${prj_SHORT_VERSION}")
+## =====================
+## == Build instances ==
+## =====================
+
+SUBDIRS(Instances)
## ===========================
## == Third party libraries ==
## ===========================
-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})
+CompileLibFromDir(cp_tinyxml2 SHARED tinyxml2)
+IF(USE_QT4)
+ CompileLibFromDir(cp_QCustomPlot SHARED QCustomPlot)
+ TARGET_LINK_LIBRARIES(cp_QCustomPlot ${QT_LIBRARIES})
+ENDIF(USE_QT4)
-## =====================
-## == Build instances ==
-## =====================
+## ==================
+## == Main library ==
+## ==================
-SUBDIRS(Instances)
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins
+ COMMAND ${cpPlugins_bash_CreateRealConfig_APP} ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h
+ 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}
+ )
-## ========================
-## == Build main library ==
-## ========================
+## =====================
+## == Other libraries ==
+## =====================
-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}
+CompileLibFromDir(cpExtensions SHARED cpExtensions)
+TARGET_LINK_LIBRARIES(
+ cpExtensions
+ ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES}
)
-LibFromDir(cpPlugins SHARED ${_dir}/cpPlugins ${_ver} "${_demangle_dir}/DemangleBase.h")
-TARGET_LINK_LIBRARIES(cpPlugins cpPlugins_tinyxml2 cpExtensions ${cpPlugins_Instances})
+IF(USE_QT4)
+ CompileLibFromDir(cpBaseQtApplication SHARED cpBaseQtApplication)
+ TARGET_LINK_LIBRARIES(
+ cpBaseQtApplication
+ cpPlugins cpExtensions
+ )
+ENDIF(USE_QT4)
+
+CompileLibFromDir(cpPluginsExtensions SHARED cpPluginsExtensions)
+TARGET_LINK_LIBRARIES(cpPluginsExtensions cpPlugins cpExtensions)
-## ======================
-## == Build Qt library ==
-## ======================
+## ====================
+## == Base libraries ==
+## ====================
-IF(Qt4_FOUND)
- LibFromDir(cpBaseQtApplication SHARED ${_dir}/cpBaseQtApplication ${_ver})
- TARGET_LINK_LIBRARIES(cpBaseQtApplication ${cpPlugins_LIB})
-ENDIF(Qt4_FOUND)
+IF(USE_QT4)
+ SET(
+ cpPlugins_BaseLibraries
+ cp_tinyxml2
+ cp_QCustomPlot
+ cpExtensions
+ cpPlugins
+ CACHE INTERNAL "All locally compiled libraries." FORCE
+ )
+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(
- cpPlugins_DynLibs
- local@cpExtensions
- )
+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 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}})
+ 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")