Change 'LIBDIR' to '${LIB_INSTALL_DIR}'(macro) and remove unused configure
[platform/core/multimedia/libmm-utility.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(mm-utility C)
3 SET(VERSION_MAJOR 0)
4 SET(VERSION "${VERSION_MAJOR}.0.0")
5
6 SET(BMP-LIB "mmutil_bmp")
7 SET(GIF-LIB "mmutil_gif")
8 SET(IMGCV-LIB "mmutil_imgcv")
9 SET(IMGP-LIB "mmutil_imgp")
10 SET(JPEG-LIB "mmutil_jpeg")
11 SET(PNG-LIB "mmutil_png")
12
13 SET(BMP_SRCS bmp/mm_util_bmp.c)
14 SET(GIF_SRCS gif/mm_util_gif.c)
15 SET(IMGCV_SRCS imgcv/mm_util_imgcv.c)
16 SET(IMGP_SRCS imgp/mm_util_imgp.c)
17 SET(JPEG_SRCS jpeg/mm_util_jpeg.c)
18 SET(PNG_SRCS png/mm_util_png.c)
19
20 SET(VENDOR "samsung")
21 SET(PACKAGE ${PROJECT_NAME})
22 SET(PKGNAME "com.${VENDOR}.${PACKAGE}")
23 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
24
25 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
26         SET(CMAKE_BUILD_TYPE "Release")
27 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
28 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
29
30 SET(INC_DIR
31         bmp/include
32         common/include
33         gif/include
34         imgcv/include
35         imgp/include
36         jpeg/include
37         png/include
38         )
39 INCLUDE_DIRECTORIES(${INC_DIR})
40
41 FIND_PROGRAM(UNAME NAMES uname)
42 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
43
44 INCLUDE(FindPkgConfig)
45 pkg_check_modules(pkgs REQUIRED dlog glib-2.0 gio-2.0 gmodule-2.0 libtzplatform-config opencv)
46
47 FOREACH(flag ${pkgs_CFLAGS})
48         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
49 ENDFOREACH(flag)
50
51 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
52 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
53 SET(CMAKE_C_FLAGS_RELEASE "-O2 -fPIC")
54
55 IF("${ARCH}" STREQUAL "arm")
56         ADD_DEFINITIONS("-DTARGET")
57         MESSAGE("add -DTARGET")
58 ENDIF("${ARCH}" STREQUAL "arm")
59
60 ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
61 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
62 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
63 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
64 ADD_DEFINITIONS("-D_FILE_OFFSET_BITS=64")
65 ADD_DEFINITIONS("-DLIBPREFIX=\"${LIB_INSTALL_DIR}\"")
66 ADD_DEFINITIONS("-DTIZEN_DEBUG")
67
68 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--hash-style=both")
69 CONFIGURE_FILE(${CMAKE_CURRENT_BINARY_DIR}/imgp/mmutil-imgp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/imgp/mmutil-imgp.pc @ONLY)
70 CONFIGURE_FILE(${CMAKE_CURRENT_BINARY_DIR}/jpeg/mmutil-jpeg.pc.in ${CMAKE_CURRENT_BINARY_DIR}/jpeg/mmutil-jpeg.pc @ONLY)
71 CONFIGURE_FILE(${CMAKE_CURRENT_BINARY_DIR}/imgcv/mmutil-imgcv.pc.in ${CMAKE_CURRENT_BINARY_DIR}/imgcv/mmutil-imgcv.pc @ONLY)
72 CONFIGURE_FILE(${CMAKE_CURRENT_BINARY_DIR}/bmp/mmutil-bmp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/bmp/mmutil-bmp.pc @ONLY)
73 CONFIGURE_FILE(${CMAKE_CURRENT_BINARY_DIR}/gif/mmutil-gif.pc.in ${CMAKE_CURRENT_BINARY_DIR}/gif/mmutil-gif.pc @ONLY)
74 CONFIGURE_FILE(${CMAKE_CURRENT_BINARY_DIR}/png/mmutil-png.pc.in ${CMAKE_CURRENT_BINARY_DIR}/png/mmutil-png.pc @ONLY)
75 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/imgp/mmutil-imgp.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
76 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/jpeg/mmutil-jpeg.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
77 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/imgcv/mmutil-imgcv.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
78 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/bmp/mmutil-bmp.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
79 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gif/mmutil-gif.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
80 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/png/mmutil-png.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
81
82 ADD_SUBDIRECTORY(bmp/test)
83 ADD_SUBDIRECTORY(gif/test)
84 ADD_SUBDIRECTORY(imgcv/test)
85 ADD_SUBDIRECTORY(imgp/test)
86 ADD_SUBDIRECTORY(jpeg/test)
87 ADD_SUBDIRECTORY(png/test)
88
89 LINK_DIRECTORIES(${LIB_INSTALL_DIR})
90
91 ADD_LIBRARY(${IMGP-LIB} SHARED ${IMGP_SRCS})
92 TARGET_LINK_LIBRARIES(${IMGP-LIB} ${pkgs_LDFLAGS})
93 SET_TARGET_PROPERTIES(${IMGP-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
94 SET_TARGET_PROPERTIES(${IMGP-LIB} PROPERTIES VERSION ${VERSION})
95 ADD_LIBRARY(${JPEG-LIB} SHARED ${JPEG_SRCS})
96 TARGET_LINK_LIBRARIES(${JPEG-LIB} ${pkgs_LDFLAGS} ${IMGP-LIB} jpeg turbojpeg)
97 SET_TARGET_PROPERTIES(${JPEG-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
98 SET_TARGET_PROPERTIES(${JPEG-LIB} PROPERTIES VERSION ${VERSION})
99 ADD_LIBRARY(${IMGCV-LIB} SHARED ${IMGCV_SRCS})
100 TARGET_LINK_LIBRARIES(${IMGCV-LIB} ${pkgs_LDFLAGS})
101 SET_TARGET_PROPERTIES(${IMGCV-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
102 SET_TARGET_PROPERTIES(${IMGCV-LIB} PROPERTIES VERSION ${VERSION})
103 ADD_LIBRARY(${BMP-LIB} SHARED ${BMP_SRCS})
104 TARGET_LINK_LIBRARIES(${BMP-LIB} ${pkgs_LDFLAGS} bmp nsbmp)
105 SET_TARGET_PROPERTIES(${BMP-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
106 SET_TARGET_PROPERTIES(${BMP-LIB} PROPERTIES VERSION ${VERSION})
107 ADD_LIBRARY(${GIF-LIB} SHARED ${GIF_SRCS})
108 TARGET_LINK_LIBRARIES(${GIF-LIB} ${pkgs_LDFLAGS} gif)
109 SET_TARGET_PROPERTIES(${GIF-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
110 SET_TARGET_PROPERTIES(${GIF-LIB} PROPERTIES VERSION ${VERSION})
111 ADD_LIBRARY(${PNG-LIB} SHARED ${PNG_SRCS})
112 TARGET_LINK_LIBRARIES(${PNG-LIB} ${pkgs_LDFLAGS} png)
113 SET_TARGET_PROPERTIES(${PNG-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
114 SET_TARGET_PROPERTIES(${PNG-LIB} PROPERTIES VERSION ${VERSION})
115
116 INSTALL(TARGETS ${IMGP-LIB} LIBRARY DESTINATION ${LIB_INSTALL_DIR})
117 INSTALL(TARGETS ${JPEG-LIB} LIBRARY DESTINATION ${LIB_INSTALL_DIR})
118 INSTALL(TARGETS ${IMGCV-LIB} LIBRARY DESTINATION ${LIB_INSTALL_DIR})
119 INSTALL(TARGETS ${BMP-LIB} LIBRARY DESTINATION ${LIB_INSTALL_DIR})
120 INSTALL(TARGETS ${GIF-LIB} LIBRARY DESTINATION ${LIB_INSTALL_DIR})
121 INSTALL(TARGETS ${PNG-LIB} LIBRARY DESTINATION ${LIB_INSTALL_DIR})
122
123 INSTALL(FILES bmp/include/mm_util_bmp.h DESTINATION include/mmf)
124 INSTALL(FILES common/include/mm_util_type.h DESTINATION include/mmf)
125 INSTALL(FILES gif/include/mm_util_gif.h DESTINATION include/mmf)
126 INSTALL(FILES imgcv/include/mm_util_imgcv.h DESTINATION include/mmf)
127 INSTALL(FILES imgp/include/mm_util_imgp.h DESTINATION include/mmf)
128 INSTALL(FILES jpeg/include/mm_util_jpeg.h DESTINATION include/mmf)
129 INSTALL(FILES png/include/mm_util_png.h DESTINATION include/mmf)