]> Creatis software - cpPlugins.git/blob - plugins/cpPluginsIO/CMakeLists.txt
6d46d0361c99e9e4825f384fba4e4519a0d4787a
[cpPlugins.git] / plugins / cpPluginsIO / CMakeLists.txt
1 SET(lib_NAME cpPluginsIO)
2 SET(lib_DIR  cpPluginsIO)
3
4 ## ===============
5 ## = Source code =
6 ## ===============
7
8 FILE(GLOB lib_HEADERS_H   "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
9 FILE(GLOB lib_HEADERS_HPP "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp")
10 FILE(GLOB lib_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx")
11 FILE(GLOB lib_SOURCES_C   "${CMAKE_CURRENT_SOURCE_DIR}/*.c")
12 FILE(GLOB lib_SOURCES_CPP "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
13 FILE(GLOB lib_SOURCES_CXX "${CMAKE_CURRENT_SOURCE_DIR}/*.cxx")
14
15 # ===================================
16 # = Integrate all source file names =
17 # ===================================
18
19 SET(
20   lib_HOST
21   ${CMAKE_CURRENT_BINARY_DIR}/${lib_NAME}_Host.cxx
22   )
23
24 SET(
25   lib_HEADERS
26   ${lib_HEADERS_H}
27   ${lib_HEADERS_HPP}
28   ${lib_HEADERS_HXX}
29   )
30
31 SET(
32   lib_SOURCES
33   ${lib_SOURCES_C}
34   ${lib_SOURCES_CPP}
35   ${lib_SOURCES_CXX}
36   )
37
38 SET(
39   target_LIBRARIES
40   cpPlugins
41   ${cpPlugins_LIBRARIES}
42   )
43
44 ## =====================
45 ## = Compilation rules =
46 ## =====================
47
48 ADD_CUSTOM_COMMAND(
49   OUTPUT ${lib_HOST}
50   DEPENDS cpPlugins_HostCreator ${LIB_HEADERS_H}
51   COMMAND cpPlugins_HostCreator ${lib_HOST} ${lib_HEADERS_H}
52   )
53 ADD_LIBRARY(${lib_NAME} SHARED ${lib_HOST} ${lib_SOURCES})
54 SET_TARGET_PROPERTIES(
55   ${lib_NAME} PROPERTIES
56   VERSION "${prj_VER}"
57   SOVERSION "${prj_sVER}"
58   )
59 GENERATE_EXPORT_HEADER(
60   ${lib_NAME}
61   BASE_NAME ${lib_NAME}
62   EXPORT_MACRO_NAME ${lib_NAME}_EXPORT
63   EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/plugins/${lib_DIR}/${lib_NAME}_Export.h
64   STATIC_DEFINE ${lib_NAME}_BUILT_AS_STATIC
65   )
66 TARGET_LINK_LIBRARIES(${lib_NAME} ${target_LIBRARIES})
67
68 ## ========================
69 ## -- Installation rules --
70 ## ========================
71
72 INSTALL(
73   TARGETS ${lib_NAME}
74   RUNTIME DESTINATION bin
75   LIBRARY DESTINATION lib
76   ARCHIVE DESTINATION lib/static
77   )
78
79 ## eof - $RCSfile$