]> Creatis software - crea.git/blob - cmake/CREAMacro_AddLibrary.cmake
3597ad59224ea24d2ef5f0b9eaeef2542efec334
[crea.git] / cmake / CREAMacro_AddLibrary.cmake
1 # Creates and installs a library
2 # Uses CREA_MANAGE_SHARED_LIBRARY and CREA_INSTALL_LIBRARY
3 # hence the variables to be set for these are needed 
4 # Additionnaly one needs to set :
5 # ${LIBRARY_NAME}_HEADERS : the list of headers to install
6 # ${LIBRARY_NAME}_SOURCES : the list of files to compile to build the lib
7 # ${LIBRARY_NAME}_LINK_LIBRARIES : the list of libs to link with
8 MACRO(CREA_ADD_LIBRARY LIBRARY_NAME)
9
10   IF(CREA_VERBOSE_CMAKE)
11     MESSAGE(STATUS "** Creating library ${LIBRARY_NAME}")
12     MESSAGE(STATUS "   Headers  : ${${LIBRARY_NAME}_HEADERS}")
13     MESSAGE(STATUS "   Sources  : ${${LIBRARY_NAME}_SOURCES}")
14     MESSAGE(STATUS "   Link libs: ${${LIBRARY_NAME}_LINK_LIBRARIES}")
15   ENDIF(CREA_VERBOSE_CMAKE)
16
17
18   # MANAGE SHARED LIB
19   CREA_MANAGE_SHARED_LIBRARY(${LIBRARY_NAME})
20
21   # CREATE THE TARGET
22   ADD_LIBRARY(${LIBRARY_NAME} ${${LIBRARY_NAME}_SHARED} ${${LIBRARY_NAME}_SOURCES})
23
24   # LINK
25   TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${${LIBRARY_NAME}_LINK_LIBRARIES})
26
27   # INSTALLS LIBRARY FOR CMAKE
28   CREA_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
29
30   # INSTALLS LIBRARY
31   INSTALL(
32     FILES ${${LIBRARY_NAME}_HEADERS}
33     DESTINATION ${${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS}
34     )  
35   INSTALL(
36     TARGETS ${LIBRARY_NAME}
37     DESTINATION lib)
38
39
40 ENDMACRO(CREA_ADD_LIBRARY)
41