build: Use commit date instead of build date to avoid unnecessary rebuilds.
[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 ELSEIF(${BUILD_ARCH} MATCHES "x86_64")
25 SET(LIB "lib64")
26 SET(LIBDIR "/usr/lib64")
27 ELSE(${BUILD_ARCH} MATCHES "aarch64")
28 SET(LIB "lib")
29 SET(LIBDIR "/usr/lib")
30 ENDIF(${BUILD_ARCH} MATCHES "aarch64")
31
32 #################################################################
33 # Build Package Config File
34 # ------------------------------
35 CONFIGURE_FILE(pkgconfig/egl.pc.in pkgconfig/egl.pc @ONLY)
36 CONFIGURE_FILE(pkgconfig/gles11.pc.in pkgconfig/gles11.pc @ONLY)
37 CONFIGURE_FILE(pkgconfig/gles20.pc.in pkgconfig/gles20.pc @ONLY)
38 CONFIGURE_FILE(pkgconfig/glesv1_cm.pc.in pkgconfig/glesv1_cm.pc @ONLY)
39 CONFIGURE_FILE(pkgconfig/glesv1.pc.in pkgconfig/glesv1.pc @ONLY)
40 CONFIGURE_FILE(pkgconfig/glesv2.pc.in pkgconfig/glesv2.pc @ONLY)
41
42 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include_KHR)
43
44 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
45
46 EXEC_PROGRAM(git
47         ARGS log -1 --pretty=format:%ci
48         OUTPUT_VARIABLE COMPILE_DATE)
49 ADD_DEFINITIONS("-D_COREGL_COMPILE_DATE=\"${COMPILE_DATE}\"")
50
51 IF(USE_ADRENO)
52 ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"/usr/lib/egl/libEGL.so\"")
53 ADD_DEFINITIONS("-D_COREGL_VENDOR_GL_LIB_PATH=\"/usr/lib/egl/libGLESv2.so\"")
54 ELSE(USE_ADRENO)
55 ADD_DEFINITIONS("-D_COREGL_VENDOR_EGL_LIB_PATH=\"${LIBDIR}/driver/libEGL.so\"")
56 ADD_DEFINITIONS("-D_COREGL_VENDOR_GL_LIB_PATH=\"${LIBDIR}/driver/libGLESv2.so\"")
57 ENDIF(USE_ADRENO)
58
59 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
60 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g -O2 -fPIC -Wall -std=c99 -D_COREGL_EMBEDDED_GL")
61 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
62
63 SET(CMAKE_SKIP_BUILD_RPATH TRUE)
64
65 #################################################################
66 # Build coregl Library
67 # ------------------------------
68 SET(COREGL "COREGL")
69 SET(SRCS_common
70                 src/coregl.c
71                 src/coregl_thread_pthread.c
72                 src/coregl_trace.c
73                 src/coregl_export.c
74                 src/coregl_export_egl.c
75                 src/coregl_export_gl.c
76                 src/modules/coregl_module.c
77                 src/modules/tracepath/coregl_tracepath.c
78                 src/modules/tracepath/coregl_tracepath_egl.c
79                 src/modules/tracepath/coregl_tracepath_gl.c
80
81                 src/modules/fastpath/coregl_fastpath.c
82                 src/modules/fastpath/coregl_fastpath_egl.c
83                 src/modules/fastpath/coregl_fastpath_gl.c
84
85                 src/modules/appopt/coregl_appopt.c
86                 src/modules/appopt/coregl_appopt_egl.c
87                 src/modules/appopt/coregl_appopt_gl.c
88 )
89 #################################################################
90 # Build egl Library
91 # ------------------------------
92 SET(EGL "EGL")
93 SET(EGL_SRCS_common
94                 src/wraps/coregl_egl.c
95 )
96
97 #################################################################
98 # Build gles1 Library
99 # ------------------------------
100 SET(GLES1 "GLESv1_CM")
101 SET(GLES1_SRCS_common
102                 src/wraps/coregl_gl1.c
103                 src/wraps/coregl_gl_common.c
104 )
105
106 #################################################################
107 # Build gles2 Library
108 # ------------------------------
109 SET(GLES2 "GLESv2")
110 SET(GLES2_SRCS_common
111                 src/wraps/coregl_gl2.c
112                 src/wraps/coregl_gl_common.c
113 )
114
115 #SET(HEADERS_common src/coregl_export.h src/coregl_fastpath.h src/coregl_fastpath_state.h src/coregl.h src/coregl_internal.h src/coregl_thread_pthread.h src/coregl_wrappath.h)
116
117 INCLUDE(FindPkgConfig)
118 pkg_check_modules(dlog REQUIRED dlog)
119 pkg_check_modules(libpng REQUIRED libpng)
120
121 INCLUDE_DIRECTORIES(${dlog_INCLUDE_DIRS})
122 INCLUDE_DIRECTORIES(${dlog_INCLUDEDIR})
123
124 FOREACH(flag ${pkg_common_CFLAGS})
125         SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} ${flag} -lGLESv2_drv -lEGL_drv")
126 ENDFOREACH(flag)
127
128 ADD_LIBRARY(${COREGL} SHARED ${SRCS_common})
129 SET_TARGET_PROPERTIES(${COREGL} PROPERTIES SOVERSION ${COREGL_VERSION_MAJOR})
130 SET_TARGET_PROPERTIES(${COREGL} PROPERTIES VERSION ${COREGL_VERSION})
131 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
132 TARGET_LINK_LIBRARIES(${COREGL} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
133
134 ADD_LIBRARY(${EGL} SHARED ${EGL_SRCS_common})
135 SET_TARGET_PROPERTIES(${EGL} PROPERTIES SOVERSION ${EGL_VERSION_MAJOR})
136 SET_TARGET_PROPERTIES(${EGL} PROPERTIES VERSION ${EGL_VERSION})
137 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
138 TARGET_LINK_LIBRARIES(${EGL} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
139
140 ADD_LIBRARY(${GLES1} SHARED ${GLES1_SRCS_common})
141 SET_TARGET_PROPERTIES(${GLES1} PROPERTIES SOVERSION ${GLES1_VERSION_MAJOR})
142 SET_TARGET_PROPERTIES(${GLES1} PROPERTIES VERSION ${GLES1_VERSION})
143 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
144 TARGET_LINK_LIBRARIES(${GLES1} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
145
146 ADD_LIBRARY(${GLES2} SHARED ${GLES2_SRCS_common})
147 SET_TARGET_PROPERTIES(${GLES2} PROPERTIES SOVERSION ${GLES2_VERSION_MAJOR})
148 SET_TARGET_PROPERTIES(${GLES2} PROPERTIES VERSION ${GLES2_VERSION})
149 #SET_TARGET_PROPERTIES(${COREGL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_common})
150 TARGET_LINK_LIBRARIES(${GLES2} ${pkg_common_LDFLAGS} ${dlog_LIBRARIES} "-ldl -g -O2 -fvisibility=hidden -Wall -std=c99 -lpthread")
151
152 INSTALL(TARGETS ${COREGL} DESTINATION lib COMPONENT RuntimeLibraries)
153 INSTALL(TARGETS ${EGL} DESTINATION lib COMPONENT RuntimeLibraries)
154 INSTALL(TARGETS ${GLES1} DESTINATION lib COMPONENT RuntimeLibraries)
155 INSTALL(TARGETS ${GLES2} DESTINATION lib COMPONENT RuntimeLibraries)
156
157 #FOREACH(hfile ${HEADERS_common})
158 #       INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/${hfile} DESTINATION include/coregl)
159 #ENDFOREACH(hfile)
160 #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/coregl.h DESTINATION include)
161