]> Creatis software - cpPlugins.git/blob - lib/CMakeLists.txt
06182ced53e7e48bdcda074845aedfd3139d7b13
[cpPlugins.git] / lib / CMakeLists.txt
1 ## ====================
2 ## == Some variables ==
3 ## ====================
4
5 SET(_dir ${CMAKE_CURRENT_SOURCE_DIR})
6 SET(_ver "${prj_VERSION}" "${prj_SHORT_VERSION}")
7
8 ## ===========================
9 ## == Third party libraries ==
10 ## ===========================
11
12 LibFromDir(cpPlugins_tinyxml2 SHARED ${_dir}/tinyxml2 ${_ver})
13 IF(Qt4_FOUND)
14   LibFromDir(cpPlugins_QCustomPlot SHARED ${_dir}/QCustomPlot ${_ver})
15   TARGET_LINK_LIBRARIES(cpPlugins_QCustomPlot ${QT_LIBRARIES})
16 ENDIF(Qt4_FOUND)
17 LibFromDir(cpExtensions SHARED ${_dir}/cpExtensions ${_ver})
18 TARGET_LINK_LIBRARIES(cpExtensions ${ITK_LIBRARIES} ${VTK_LIBRARIES} ${QT_LIBRARIES})
19
20 ## =====================
21 ## == Build instances ==
22 ## =====================
23
24 SUBDIRS(Instances)
25
26 ## ========================
27 ## == Build main library ==
28 ## ========================
29
30 SET(_demangle_dir "${CMAKE_CURRENT_BINARY_DIR}/cpPlugins/BaseObjects")
31 ADD_CUSTOM_COMMAND(
32   OUTPUT "${_demangle_dir}/DemangleBase.h"
33   COMMAND ${CMAKE_COMMAND} -E make_directory ${_demangle_dir}
34   COMMAND ${cpPlugins_bash_BuildDemangleHeader_APP} "${_demangle_dir}/DemangleBase.h"
35   DEPENDS ${cpPlugins_bash_BuildDemangleHeader_APP}
36   )
37 LibFromDir(cpPlugins SHARED ${_dir}/cpPlugins ${_ver} "${_demangle_dir}/DemangleBase.h")
38 TARGET_LINK_LIBRARIES(cpPlugins cpPlugins_tinyxml2 cpExtensions ${cpPlugins_Instances})
39
40 ## ======================
41 ## == Build Qt library ==
42 ## ======================
43
44 IF(Qt4_FOUND)
45   LibFromDir(cpBaseQtApplication SHARED ${_dir}/cpBaseQtApplication ${_ver})
46   TARGET_LINK_LIBRARIES(cpBaseQtApplication ${cpPlugins_LIB})
47 ENDIF(Qt4_FOUND)
48
49 ## ===================================
50 ## == Libraries to dynamically load ==
51 ## ===================================
52
53 SET(
54   cpPlugins_DynLibs
55   local@cpExtensions
56   )
57 FOREACH(_lib ${cpPlugins_Instances})
58   LIST(APPEND cpPlugins_DynLibs local@${_lib})
59 ENDFOREACH(_lib)
60 FOREACH(_lib ${VTK_LIBRARIES})
61   GET_TARGET_PROPERTY(_lib_${_lib} ${_lib} LOCATION)
62   LIST(APPEND cpPlugins_DynLibs global@${_lib_${_lib}})
63 ENDFOREACH(_lib)
64 FOREACH(_lib ${ITK_LIBRARIES})
65   GET_TARGET_PROPERTY(_lib_${_lib} ${_lib} LOCATION)
66   LIST(APPEND cpPlugins_DynLibs global@${_lib_${_lib}})
67 ENDFOREACH(_lib)
68 FILE(WRITE ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "")
69 FOREACH(_lib ${cpPlugins_DynLibs})
70   FILE(APPEND ${PROJECT_BINARY_DIR}/cpPlugins_Libraries.config "${_lib}\n")
71 ENDFOREACH(_lib)
72
73 ## eof - $RCSfile$