]> Creatis software - cpPlugins.git/blob - lib/cpExtensions/CMakeLists.txt
4920b81ac2d9ecb58951b5837c7fb44505c12bee
[cpPlugins.git] / lib / cpExtensions / CMakeLists.txt
1 SET(_curdir ${CMAKE_CURRENT_SOURCE_DIR})
2 GET_FILENAME_COMPONENT(_lib_name ${_curdir} NAME_WE)
3
4 ## =========================
5 ## = Configure local files =
6 ## =========================
7
8 FILE(GLOB_RECURSE _lib_config RELATIVE "${_curdir}" "${_curdir}/*.in")
9 FOREACH(_file ${_lib_config})
10   STRING(REGEX REPLACE ".in" "" _outfile ${_file})
11   CONFIGURE_FILE(${_file} ${CMAKE_CURRENT_BINARY_DIR}/${_outfile} @ONLY)
12 ENDFOREACH(_file)
13
14 ## =====================
15 ## == Get source code ==
16 ## =====================
17
18 FILE(GLOB_RECURSE _hdr_h   "${_curdir}/*.h")
19 FILE(GLOB_RECURSE _hdr_hpp "${_curdir}/*.hxx")
20 FILE(GLOB_RECURSE _hdr_hxx "${_curdir}/*.hpp")
21 FILE(GLOB_RECURSE _src_c   "${_curdir}/*.c")
22 FILE(GLOB_RECURSE _src_cpp "${_curdir}/*.cpp")
23 FILE(GLOB_RECURSE _src_cxx "${_curdir}/*.cxx")
24 FILE(GLOB_RECURSE _qt_ui   "${_curdir}/*.ui")
25
26 SET(_src_all ${_src_c} ${_src_cpp} ${_src_cxx})
27
28 ## ====================
29 ## == Create library ==
30 ## ====================
31
32 IF(_src_all)
33   IF(USE_QT4)
34     SET(_hdr_to_wrap)
35     FOREACH(_h ${_hdr_h})
36       FILE(READ ${_h} _txt)
37       STRING(FIND "${_txt}" "Q_OBJECT" _res)
38       IF(NOT ${_res} EQUAL -1)
39         LIST(APPEND _hdr_to_wrap ${_h})
40       ENDIF(NOT ${_res} EQUAL -1)
41     ENDFOREACH(_h)
42     IF(_hdr_to_wrap)
43       QT4_WRAP_CPP(_src_qt_moc ${_hdr_to_wrap})
44     ENDIF(_hdr_to_wrap)
45     QT4_WRAP_UI(_hdr_qt_ui ${_qt_ui})
46     SET(_src_all ${_src_all} ${_hdr_qt_ui} ${_src_qt_moc})
47   ENDIF(USE_QT4)
48
49   ADD_LIBRARY(${_lib_name} SHARED ${_src_all})
50   SET_TARGET_PROPERTIES(
51     ${_lib_name} PROPERTIES
52     VERSION "${prj_VER}"
53     SOVERSION "${prj_sVER}"
54     )
55   GENERATE_EXPORT_HEADER(
56     ${_lib_name}
57     BASE_NAME ${_lib_name}
58     EXPORT_MACRO_NAME ${_lib_name}_EXPORT
59     EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/${_lib_name}_Export.h
60     STATIC_DEFINE ${_lib_name}_BUILT_AS_STATIC
61     )
62   IF(USE_QT4)
63     TARGET_LINK_LIBRARIES(
64       ${_lib_name} ${ITK_LIBRARIES} ${VTK_LIBRARIES} ${QT_LIBRARIES}
65       )
66   ELSE(USE_QT4)
67     TARGET_LINK_LIBRARIES(${_lib_name} ${ITK_LIBRARIES} ${VTK_LIBRARIES})
68   ENDIF(USE_QT4)
69   SET(${_lib_name}_LIB ${_lib_name} CACHE INTERNAL "library ${_lib_name}")
70 ENDIF(_src_all)
71
72 ## eof - $RCSfile$