Add NULL checking to prevent dereferenced problem.
[platform/core/uifw/coregl.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(coregl C)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(INCLUDEDIR "\${prefix}/include_KHR")
7 SET(COREGL_VERSION_MAJOR 4)
8 SET(COREGL_VERSION_MINOR 0)
9 SET(EGL_VERSION_MAJOR 1)
10 SET(EGL_VERSION_MINOR 4)
11 SET(GLES1_VERSION_MAJOR 1)
12 SET(GLES1_VERSION_MINOR 1)
13 SET(GLES2_VERSION_MAJOR 2)
14 SET(GLES2_VERSION_MINOR 0)
15 SET(COREGL_VERSION "${COREGL_VERSION_MAJOR}.${COREGL_VERSION_MINOR}")
16 SET(EGL_VERSION "${EGL_VERSION_MAJOR}.${EGL_VERSION_MINOR}")
17 SET(GLES1_VERSION "${GLES1_VERSION_MAJOR}.${GLES1_VERSION_MINOR}")
18 SET(GLES2_VERSION "${GLES2_VERSION_MAJOR}.${GLES2_VERSION_MINOR}")
19 SET(BUILD_ARCH "$ENV{RPM_ARCH}")
20
21 IF(${BUILD_ARCH} MATCHES "aarch64")
22 SET(LIB "lib64")
23 SET(LIBDIR "/usr/lib64")
24 ADD_DEFINITIONS("-D_COREGL_LIB=\"/usr/lib64/libCOREGL.so\"")
25 ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"/usr/lib64/driver/libEGL.so\"")
26 ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV2_LIB_PATH=\"/usr/lib64/driver/libGLESv2.so\"")
27 ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV1_LIB_PATH=\"/usr/lib64/driver/libGLESv1_CM.so\"")
28 ELSEIF(${BUILD_ARCH} MATCHES "x86_64")
29 SET(LIB "lib64")
30 SET(LIBDIR "/usr/lib64")
31 ADD_DEFINITIONS("-D_COREGL_LIB=\"/usr/lib64/libCOREGL.so\"")
32 ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"/usr/lib64/driver/libEGL.so\"")
33 ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV2_LIB_PATH=\"/usr/lib64/driver/libGLESv2.so\"")
34 ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV1_LIB_PATH=\"/usr/lib64/driver/libGLESv1_CM.so\"")
35 ELSE(${BUILD_ARCH} MATCHES "aarch64")
36 SET(LIB "lib")
37 SET(LIBDIR "/usr/lib")
38 ADD_DEFINITIONS("-D_COREGL_LIB=\"/usr/lib/libCOREGL.so\"")
39 ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"/usr/lib/driver/libEGL.so\"")
40 ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV2_LIB_PATH=\"/usr/lib/driver/libGLESv2.so\"")
41 ADD_DEFINITIONS("-D_COREGL_VENDOR_GLV1_LIB_PATH=\"/usr/lib/driver/libGLESv1_CM.so\"")
42 ENDIF(${BUILD_ARCH} MATCHES "aarch64")
43
44 #################################################################
45 # Build Package Config File
46 # ------------------------------
47 CONFIGURE_FILE(pkgconfig/egl.pc.in pkgconfig/egl.pc @ONLY)
48 CONFIGURE_FILE(pkgconfig/gles11.pc.in pkgconfig/gles11.pc @ONLY)
49 CONFIGURE_FILE(pkgconfig/gles20.pc.in pkgconfig/gles20.pc @ONLY)
50 CONFIGURE_FILE(pkgconfig/glesv1_cm.pc.in pkgconfig/glesv1_cm.pc @ONLY)
51 CONFIGURE_FILE(pkgconfig/glesv1.pc.in pkgconfig/glesv1.pc @ONLY)
52 CONFIGURE_FILE(pkgconfig/glesv2.pc.in pkgconfig/glesv2.pc @ONLY)
53
54 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include_KHR)
55
56 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
57
58 EXEC_PROGRAM(date OUTPUT_VARIABLE COMPILE_DATE)
59 ADD_DEFINITIONS("-D_COREGL_COMPILE_DATE=\"${COMPILE_DATE}\"")
60
61 ADD_DEFINITIONS("-D_COREGL_DEBUG")
62 ADD_DEFINITIONS("-D_COREGL_DLOG_ENABLE=${COREGL_DLOG_ENABLE}")
63 ADD_DEFINITIONS("-D_COREGL_DEFAULT_LOG_LEVEL=${COREGL_DEFAULT_LOG_LEVEL}")
64
65 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
66 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -O2 -fPIC -Wall -std=c99 -D_COREGL_EMBEDDED_GL")
67 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
68
69 SET(CMAKE_SKIP_BUILD_RPATH TRUE)
70
71 #################################################################
72 # Build coregl Library
73 # ------------------------------
74 SET(COREGL "COREGL")
75 SET(SRCS_common
76                 src/coregl.c
77                 src/coregl_thread_pthread.c
78                 src/coregl_trace.c
79                 src/coregl_export.c
80                 src/coregl_export_egl.c
81                 src/coregl_export_gl.c
82                 src/modules/coregl_module.c
83                 src/modules/coregl_tracepath.c
84                 src/modules/coregl_tracepath_egl.c
85                 src/modules/coregl_tracepath_gl.c
86
87                 src/modules/coregl_fastpath.c
88                 src/modules/coregl_fastpath_egl.c
89                 src/modules/coregl_fastpath_gl.c
90
91                 src/modules/coregl_appopt.c
92                 src/modules/coregl_appopt_egl.c
93                 src/modules/coregl_appopt_gl.c
94 )
95 #################################################################
96 # Build egl Library
97 # ------------------------------
98 SET(EGL "EGL")
99 SET(EGL_SRCS_common
100                 src/wraps/coregl_egl.c
101 )
102
103 #################################################################
104 # Build gles1 Library
105 # ------------------------------
106 SET(GLES1 "GLESv1_CM")
107 SET(GLES1_SRCS_common
108                 src/wraps/coregl_gl1.c
109                 src/wraps/coregl_gl_common.c
110 )
111
112 #################################################################
113 # Build gles2 Library
114 # ------------------------------
115 SET(GLES2 "GLESv2")
116 SET(GLES2_SRCS_common
117                 src/wraps/coregl_gl2.c
118                 src/wraps/coregl_gl_common.c
119 )
120
121 INCLUDE(FindPkgConfig)
122 pkg_check_modules(dlog REQUIRED dlog)
123 pkg_check_modules(libpng REQUIRED libpng)
124
125 INCLUDE_DIRECTORIES(${dlog_INCLUDE_DIRS})
126 INCLUDE_DIRECTORIES(${dlog_INCLUDEDIR})
127
128 FOREACH(flag ${pkg_common_CFLAGS})
129         SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} ${flag} -lGLESv2_drv -lEGL_drv")
130 ENDFOREACH(flag)
131
132 ADD_LIBRARY(${COREGL} SHARED ${SRCS_common})
133 SET_TARGET_PROPERTIES(${COREGL} PROPERTIES SOVERSION ${COREGL_VERSION_MAJOR})
134 SET_TARGET_PROPERTIES(${COREGL} PROPERTIES VERSION ${COREGL_VERSION})
135 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
136 TARGET_LINK_LIBRARIES(${COREGL} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
137
138 ADD_LIBRARY(${EGL} SHARED ${EGL_SRCS_common})
139 SET_TARGET_PROPERTIES(${EGL} PROPERTIES SOVERSION ${EGL_VERSION_MAJOR})
140 SET_TARGET_PROPERTIES(${EGL} PROPERTIES VERSION ${EGL_VERSION})
141 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
142 TARGET_LINK_LIBRARIES(${EGL} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
143
144 ADD_LIBRARY(${GLES1} SHARED ${GLES1_SRCS_common})
145 SET_TARGET_PROPERTIES(${GLES1} PROPERTIES SOVERSION ${GLES1_VERSION_MAJOR})
146 SET_TARGET_PROPERTIES(${GLES1} PROPERTIES VERSION ${GLES1_VERSION})
147 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
148 TARGET_LINK_LIBRARIES(${GLES1} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
149
150 ADD_LIBRARY(${GLES2} SHARED ${GLES2_SRCS_common})
151 SET_TARGET_PROPERTIES(${GLES2} PROPERTIES SOVERSION ${GLES2_VERSION_MAJOR})
152 SET_TARGET_PROPERTIES(${GLES2} PROPERTIES VERSION ${GLES2_VERSION})
153 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
154 TARGET_LINK_LIBRARIES(${GLES2} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
155
156 INSTALL(TARGETS ${COREGL} DESTINATION lib COMPONENT RuntimeLibraries)
157 INSTALL(TARGETS ${EGL} DESTINATION lib COMPONENT RuntimeLibraries)
158 INSTALL(TARGETS ${GLES1} DESTINATION lib COMPONENT RuntimeLibraries)
159 INSTALL(TARGETS ${GLES2} DESTINATION lib COMPONENT RuntimeLibraries)