+## ====================
+## == Some variables ==
+## ====================
-## ======================
-## == Useful variables ==
-## ======================
+SET(_dir ${CMAKE_CURRENT_SOURCE_DIR})
+SET(_ver "${prj_VERSION}" "${prj_SHORT_VERSION}")
-SET(_src "${CMAKE_CURRENT_SOURCE_DIR}")
-SET(_bin "${CMAKE_CURRENT_BINARY_DIR}")
+## ===========================
+## == Third party libraries ==
+## ===========================
+
+LibFromDir(cpPlugins_tinyxml2 ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/tinyxml2 ${_ver})
+IF(Qt4_FOUND)
+ LibFromDir(cpPlugins_QCustomPlot ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/QCustomPlot ${_ver})
+ TARGET_LINK_LIBRARIES(cpPlugins_QCustomPlot ${QT_LIBRARIES})
+ENDIF(Qt4_FOUND)
+LibFromDir(cpExtensions ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/cpExtensions ${_ver})
+TARGET_LINK_LIBRARIES(cpExtensions ${ITK_LIBRARIES} ${VTK_LIBRARIES} ${QT_LIBRARIES})
## =====================
## == Build instances ==
SUBDIRS(Instances)
-## =========================================
-## == Manage every directory as a library ==
-## =========================================
-
-cpPlugins_CreateLibraryFromDirectory(
- cpPlugins_tinyxml2 SHARED
- ${_src}/tinyxml2 ${_bin}/tinyxml2
- ${prj_VERSION} ${prj_SHORT_VERSION}
- )
-
-cpPlugins_CreateLibraryFromDirectory(
- cpPlugins_Itk2Vtk SHARED
- ${_src}/Itk2Vtk ${_bin}/Itk2Vtk
- ${prj_VERSION} ${prj_SHORT_VERSION}
- ${ITK_LIBRARIES} ${VTK_LIBRARIES}
- )
+## ========================
+## == Build main library ==
+## ========================
-cpPlugins_CreateLibraryFromDirectory(
- cpExtensions SHARED
- ${_src}/cpExtensions ${_bin}/cpExtensions
- ${prj_VERSION} ${prj_SHORT_VERSION}
- ${ITK_LIBRARIES} ${VTK_LIBRARIES} ${QT_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}
)
+LibFromDir(cpPlugins ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/cpPlugins ${_ver} ${_demangle_dir}/DemangleBase.h)
+TARGET_LINK_LIBRARIES(cpPlugins cpPlugins_tinyxml2 cpExtensions ${cpPlugins_Instances})
-cpPlugins_CreateLibraryFromDirectory(
- cpPlugins SHARED
- ${_src}/cpPlugins ${_bin}/cpPlugins
- ${prj_VERSION} ${prj_SHORT_VERSION}
- ${cpPlugins_Instances}
- ${cpPlugins_tinyxml2_LIB}
- )
+## ======================
+## == Build Qt library ==
+## ======================
-cpPlugins_CreateLibraryFromDirectory(
- cpBaseQtApplication SHARED
- ${_src}/cpBaseQtApplication ${_bin}/cpBaseQtApplication
- ${prj_VERSION} ${prj_SHORT_VERSION}
- ${cpPlugins_LIB} ${cpExtensions_LIB}
- )
+IF(Qt4_FOUND)
+ LibFromDir(cpBaseQtApplication ${PROJECT_BINARY_DIR}/lib SHARED ${_dir}/cpBaseQtApplication ${_ver})
+ TARGET_LINK_LIBRARIES(cpBaseQtApplication ${cpPlugins_LIB})
+ENDIF(Qt4_FOUND)
## ===================================
## == Libraries to dynamically load ==
## ===================================
-SET(cpPlugins_DynLibs local@cpExtensions)
+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 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|${_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")