]> Creatis software - cpPlugins.git/blobdiff - lib/CMakeLists.txt
...
[cpPlugins.git] / lib / CMakeLists.txt
index 79b1d66a669573954639b7f8eeb4e5ecea28c285..0183e8ea86b203c74114d1efe08976e195e95230 100644 (file)
@@ -1,75 +1,94 @@
+## ====================
+## == Base libraries ==
+## ====================
 
-## ======================
-## == Useful variables ==
-## ======================
-
-SET(_src "${CMAKE_CURRENT_SOURCE_DIR}")
-SET(_bin "${CMAKE_CURRENT_BINARY_DIR}")
+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}
+  )
 
-## =====================
-## == Build instances ==
-## =====================
+## ===============
+## == Instances ==
+## ===============
 
 SUBDIRS(Instances)
 
-## =========================================
-## == Manage every directory as a library ==
-## =========================================
+## ==================
+## == Main library ==
+## ==================
 
-cpPlugins_CreateLibraryFromDirectory(
-  cpPlugins_tinyxml2 SHARED
-  ${_src}/tinyxml2 ${_bin}/tinyxml2
-  ${prj_VERSION} ${prj_SHORT_VERSION}
+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}
   )
-
-cpPlugins_CreateLibraryFromDirectory(
- cpPlugins_Itk2Vtk SHARED
-  ${_src}/Itk2Vtk ${_bin}/Itk2Vtk
-  ${prj_VERSION} ${prj_SHORT_VERSION}
-  ${ITK_LIBRARIES} ${VTK_LIBRARIES}
+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}
   )
 
-cpPlugins_CreateLibraryFromDirectory(
-  cpExtensions SHARED
-  ${_src}/cpExtensions ${_bin}/cpExtensions
-  ${prj_VERSION} ${prj_SHORT_VERSION}
-  ${ITK_LIBRARIES} ${VTK_LIBRARIES} ${QT_LIBRARIES}
-  )
+## =========================
+## == Even more libraries ==
+## =========================
 
-cpPlugins_CreateLibraryFromDirectory(
-  cpPlugins SHARED
-  ${_src}/cpPlugins ${_bin}/cpPlugins
-  ${prj_VERSION} ${prj_SHORT_VERSION}
-  ${cpPlugins_Instances}
-  ${cpPlugins_tinyxml2_LIB}
-  )
+CompileLibFromDir(cpBaseQtApplication SHARED cpBaseQtApplication)
+TARGET_LINK_LIBRARIES(cpBaseQtApplication cpPlugins)
 
-cpPlugins_CreateLibraryFromDirectory(
-  cpBaseQtApplication SHARED
-  ${_src}/cpBaseQtApplication ${_bin}/cpBaseQtApplication
-  ${prj_VERSION} ${prj_SHORT_VERSION}
-  ${cpPlugins_LIB} ${cpExtensions_LIB}
-  )
+## ====================
+## == 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(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")
 ENDFOREACH(_lib)
 
-## eof - $RCSfile$
+## eof - $RCSfilfe$