]> Creatis software - cpPlugins.git/blobdiff - lib/CMakeLists.txt
...
[cpPlugins.git] / lib / CMakeLists.txt
index 05dcd2ba1cfa4a55b6be40a4ce89455d3f51208a..a6a7f21e0361a5e506db4441fd748ba03f1d47ac 100644 (file)
@@ -1,7 +1,97 @@
-SUBDIRS(
-  cpExtensions
+## ====================
+## == 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}
+  )
+
+## ===============
+## == Instances ==
+## ===============
+
+SUBDIRS(Instances)
+
+## ==================
+## == Main library ==
+## ==================
+
+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}
+  )
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/Instances)
+CompileLibFromDir(cpPlugins SHARED cpPlugins ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h)
+TARGET_LINK_LIBRARIES(
   cpPlugins
-  third_party
+  cp_tinyxml2
+  cpExtensions
+  ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES}
+  ${cpPlugins_Instances}
   )
 
-## eof - $RCSfile$
+## =========================
+## == Even more libraries ==
+## =========================
+
+CompileLibFromDir(cpBaseQtApplication SHARED cpBaseQtApplication)
+TARGET_LINK_LIBRARIES(cpBaseQtApplication cpPlugins)
+
+## ====================
+## == Base libraries ==
+## ====================
+
+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(_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)
+
+## eof - $RCSfilfe$