Tizen 2.2.1
[framework/osp/image-core.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 SET(CMAKE_INSTALL_PREFIX /usr)
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5
6 SET (this_target osp-image-core)
7
8 SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/cmake_build_tmp/output)
9
10 INCLUDE_DIRECTORIES(
11         inc
12         src
13         src/inc
14         /usr/include/chromium
15         /usr/include/ecore-1
16         /usr/include/eina-1
17         /usr/include/eina-1/eina
18         /usr/include/evas-1
19         /usr/include/media
20         /usr/include/osp
21         /usr/include/osp/base
22         /usr/include/osp/app
23         /usr/include/osp/net
24         /usr/include/osp/security
25         /usr/include/osp/io     
26         )
27
28 SET (${this_target}_SOURCE_FILES
29         src/FMedia_ImageDecoder.cpp
30         src/FMedia_BmpDecoder.cpp
31         src/FMedia_PngDecoder.cpp
32         src/FMedia_GifDecoder.cpp
33         src/FMedia_JpegDecoder.cpp
34         src/FMedia_JpegTurboDecoder.cpp
35         src/FMedia_TiffDecoder.cpp
36         src/FMedia_WbmpDecoder.cpp
37         src/FMedia_ImageEncoder.cpp
38         src/FMedia_JpegTurboEncoder.cpp
39         src/FMedia_ColorConverter.cpp
40         src/FMedia_ImageUtil.cpp
41         src/FMedia_PngEncoder.cpp
42         src/FMedia_BmpEncoder.cpp
43         src/FMedia_SlpUtil.cpp
44         src/FMedia_MediaUtil.cpp
45         src/FMedia_ExifUtil.cpp
46         src/FMedia_Ffmpeg.cpp
47 )
48
49 ## Definitions
50 SET(EXTRA_CFLAGS  "${EXTRA_CFLAGS} -Wall" )
51
52 ## SET C COMPILER FLAGS
53 SET(CMAKE_C_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
54
55 ## SET CPP COMPILER FLAGS
56 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
57 SET(CMAKE_CXX_FLAGS "${OSP_DEBUG_FLAGS} ${OSP_OPT_FLAGS} ${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${OSP_COMPILER_FLAGS}")
58
59 ## Create Library
60 ADD_LIBRARY (${this_target} SHARED ${${this_target}_SOURCE_FILES})
61
62 ## SET LINKER FLAGS
63 SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined -Wl,--as-needed")
64
65 TARGET_LINK_LIBRARIES(${this_target} "-L/usr/lib/osp -losp-appfw" )
66 TARGET_LINK_LIBRARIES(${this_target} "-lglib-2.0" )
67 TARGET_LINK_LIBRARIES(${this_target} "-leina" )
68 TARGET_LINK_LIBRARIES(${this_target} "-lcurl" )
69 TARGET_LINK_LIBRARIES(${this_target} "-lpng -lz" )
70 TARGET_LINK_LIBRARIES(${this_target} "-lavcodec" )
71 TARGET_LINK_LIBRARIES(${this_target} "-lswscale" )
72 TARGET_LINK_LIBRARIES(${this_target} "-lavutil" )
73 TARGET_LINK_LIBRARIES(${this_target} "-lgif" )
74 TARGET_LINK_LIBRARIES(${this_target} "-lmmutil_imgp" )
75 TARGET_LINK_LIBRARIES(${this_target} "-lecore" )
76 TARGET_LINK_LIBRARIES(${this_target} "-levas" )
77 TARGET_LINK_LIBRARIES(${this_target} "-lecore_evas" )
78 TARGET_LINK_LIBRARIES(${this_target} "-lcapi-media-image-util" )
79 TARGET_LINK_LIBRARIES(${this_target} "-lturbojpeg" )
80 TARGET_LINK_LIBRARIES(${this_target} "-ltiff" )
81 TARGET_LINK_LIBRARIES(${this_target} "-lexif" )
82
83 SET_TARGET_PROPERTIES(${this_target} 
84         PROPERTIES 
85         VERSION ${FULLVER}
86         SOVERSION ${MAJORVER}
87         CLEAN_DIRECT_OUTPUT 1
88         )
89
90 ADD_CUSTOM_COMMAND(TARGET ${this_target}
91         POST_BUILD
92                 COMMAND ${CMAKE_COMMAND} -E copy ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} 
93                 COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${FULLVER} ${LIBRARY_OUTPUT_PATH}/debug/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}.${MAJORVER}
94                 COMMAND ${CMAKE_STRIP} --strip-unneeded ${LIBRARY_OUTPUT_PATH}/${CMAKE_SHARED_LIBRARY_PREFIX}${this_target}${CMAKE_SHARED_LIBRARY_SUFFIX}
95     COMMENT "strip ${this_target}"
96                 )   
97
98 INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib/osp
99                 FILES_MATCHING PATTERN "*.so*" 
100                 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                      
101                                         GROUP_EXECUTE GROUP_READ
102                                         WORLD_EXECUTE WORLD_READ)
103 INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/debug/ DESTINATION lib/osp/debug 
104                 FILES_MATCHING PATTERN "*"
105                 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ                                          
106                                         GROUP_EXECUTE GROUP_READ
107                                         WORLD_EXECUTE WORLD_READ)
108
109 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/inc/ DESTINATION include/osp FILES_MATCHING PATTERN "*.h")
110 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/src/inc/ DESTINATION include/osp/media FILES_MATCHING PATTERN "*.h")
111
112 SET(PC_NAME ${this_target})
113 SET(PC_REQUIRED ${pc_requires})
114 SET(PC_LDFLAGS -l${this_target})
115
116 # pkgconfig file
117 CONFIGURE_FILE(${this_target}.pc.in ${CMAKE_SOURCE_DIR}/${this_target}.pc @ONLY)
118 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${this_target}.pc DESTINATION lib/pkgconfig)