]> Creatis software - cpPlugins.git/blob - lib/CMakeLists.txt
...
[cpPlugins.git] / lib / CMakeLists.txt
1
2 ## =====================
3 ## == Build instances ==
4 ## =====================
5
6 SUBDIRS(Instances)
7
8 ## ===========================
9 ## == Third party libraries ==
10 ## ===========================
11
12 CompileLibFromDir(cp_tinyxml2 SHARED tinyxml2)
13 IF(USE_QT4)
14   CompileLibFromDir(cp_QCustomPlot SHARED QCustomPlot)
15   TARGET_LINK_LIBRARIES(cp_QCustomPlot ${QT_LIBRARIES})
16 ENDIF(USE_QT4)
17
18 ## ==================
19 ## == Main library ==
20 ## ==================
21
22 ADD_CUSTOM_COMMAND(
23   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h
24   COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins
25   COMMAND ${cpPlugins_bash_CreateRealConfig_APP} ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h
26   DEPENDS ${cpPlugins_bash_CreateRealConfig_APP}
27   )
28 CompileLibFromDir(
29   cpPlugins SHARED cpPlugins
30   ${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/RealConfig.h
31   )
32 TARGET_LINK_LIBRARIES(
33   cpPlugins
34   cp_tinyxml2
35   ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES}
36   ${cpPlugins_Instances}
37   )
38
39 ## =====================
40 ## == Other libraries ==
41 ## =====================
42
43 CompileLibFromDir(cpExtensions SHARED cpExtensions)
44 TARGET_LINK_LIBRARIES(
45   cpExtensions
46   ${QT_LIBRARIES} ${ITK_LIBRARIES} ${VTK_LIBRARIES}
47   )
48 IF(USE_QT4)
49   CompileLibFromDir(cpBaseQtApplication SHARED cpBaseQtApplication)
50   TARGET_LINK_LIBRARIES(
51     cpBaseQtApplication
52     cpPlugins cpExtensions
53     )
54 ENDIF(USE_QT4)
55
56 CompileLibFromDir(cpPluginsExtensions SHARED cpPluginsExtensions)
57 TARGET_LINK_LIBRARIES(cpPluginsExtensions cpPlugins cpExtensions)
58
59 ## ====================
60 ## == Base libraries ==
61 ## ====================
62
63 IF(USE_QT4)
64   SET(
65     cpPlugins_BaseLibraries
66     cp_tinyxml2
67     cp_QCustomPlot
68     cpExtensions
69     cpPlugins
70     CACHE INTERNAL "All locally compiled libraries." FORCE
71     )
72 ELSE(USE_QT4)
73   SET(
74     cpPlugins_BaseLibraries
75     cp_tinyxml2
76     cpExtensions
77     cpPlugins
78     CACHE INTERNAL "All locally compiled libraries." FORCE
79     )
80 ENDIF(USE_QT4)
81
82 ## ===================================
83 ## == Libraries to dynamically load ==
84 ## ===================================
85
86 SET(_pre ${CMAKE_SHARED_LIBRARY_PREFIX})
87 SET(_suf ${CMAKE_SHARED_LIBRARY_SUFFIX})
88
89 SET(cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/bin/${_pre}cpExtensions${_suf}")
90 LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/lib/${_pre}cpExtensions${_suf}")
91 LIST(APPEND cpPlugins_DynLibs "${LIBRARY_OUTPUT_PATH}/${_pre}cpExtensions${_suf}")
92 FOREACH(_lib ${cpPlugins_Instances})
93   LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/bin/${_pre}${_lib}${_suf}")
94   LIST(APPEND cpPlugins_DynLibs "${CMAKE_INSTALL_PREFIX}/lib/${_pre}${_lib}${_suf}")
95   LIST(APPEND cpPlugins_DynLibs "${LIBRARY_OUTPUT_PATH}/${_pre}${_lib}${_suf}")
96 ENDFOREACH(_lib)
97 LIST(APPEND cpPlugins_DynLibs "${VTK_INSTALL_PREFIX}/bin/*vtk*${_suf}")
98 LIST(APPEND cpPlugins_DynLibs "${VTK_INSTALL_PREFIX}/lib/*vtk*${_suf}")
99 LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/bin/*itk*${_suf}")
100 LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/lib/*itk*${_suf}")
101 LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/bin/*ITK*${_suf}")
102 LIST(APPEND cpPlugins_DynLibs "${ITK_INSTALL_PREFIX}/lib/*ITK*${_suf}")
103 FILE(WRITE ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "")
104 FOREACH(_lib ${cpPlugins_DynLibs})
105   FILE(APPEND ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "${_lib}\n")
106 ENDFOREACH(_lib)
107
108 ## eof - $RCSfile$