Correct license information
[platform/adaptation/broadcom/libomxil-vc4.git] / interface / khronos / CMakeLists.txt
1
2 # Khronos
3 #
4 # Note: in Android the linker is unable or unwilling to resolve
5 # dynamically using already loaded symbols. The libraries here
6 # have quite a few circular dependencies, and so the only way
7 # to make it work seems to be to have everything static.
8
9 set(EGL_SOURCE
10    egl/egl_client_config.c
11    egl/egl_client_context.c
12    egl/egl_client.c
13    egl/egl_client_get_proc.c
14    egl/egl_client_surface.c
15    ext/egl_brcm_driver_monitor_client.c
16    ext/egl_brcm_perf_monitor_client.c
17    ext/egl_brcm_global_image_client.c
18    ext/egl_brcm_flush_client.c
19    ext/egl_khr_image_client.c
20    ext/egl_khr_sync_client.c
21    ext/gl_oes_egl_image_client.c
22    ext/egl_khr_lock_surface_client.c
23    ext/ext_gl_debug_marker.c
24    common/khrn_int_image.c
25    common/khrn_int_util.c
26    common/khrn_options.c
27    common/khrn_client_global_image_map.c
28    common/linux/khrn_client_rpc_linux.c
29    common/linux/khrn_client_platform_linux.c
30    vg/vg_int_mat3x3.c
31    vg/vg_client.c
32    common/khrn_client.c
33    ext/egl_openmaxil_client.c
34 #   ../vmcs_host/vc_vchi_dispmanx.c
35    ext/gl_oes_draw_texture_client.c
36    ext/gl_oes_query_matrix_client.c
37    ext/gl_oes_framebuffer_object.c
38    ext/gl_oes_map_buffer.c
39    ext/gl_oes_matrix_palette_client.c)
40 set(GLES_SOURCE
41    glxx/glxx_client.c)
42 set(VG_SOURCE
43    vg/vg_client.c
44    vg/vg_int_mat3x3.c)
45 set(WFC_SOURCE
46    wf/wfc_client_stream.c
47    wf/wfc_client.c
48    wf/wfc_client_server_api.c
49    wf/wfc_client_ipc.c
50    common/openwfc/khrn_client_platform_openwfc.c)
51 set(CLIENT_SOURCE
52    common/khrn_client_pointermap.c
53    common/khrn_client_vector.c
54    common/khrn_int_hash.c
55    common/khrn_int_hash_asm.s
56    common/khrn_client_cache.c)
57
58 add_library(EGL ${SHARED} ${EGL_SOURCE})
59 add_library(GLESv2 ${SHARED} ${GLES_SOURCE})
60 add_library(OpenVG ${SHARED} ${VG_SOURCE})
61 add_library(WFC ${SHARED} ${WFC_SOURCE})
62 add_library(khrn_client ${CLIENT_SOURCE})
63
64 # TODO do we need EGL_static and GLESv2_static now that khrn_static exists?
65 add_library(EGL_static STATIC ${EGL_SOURCE})
66 add_library(GLESv2_static STATIC ${GLES_SOURCE})
67 add_library(khrn_static STATIC
68    ${EGL_SOURCE} ${GLES_SOURCE} ${VG_SOURCE} ${WFC_SOURCE} ${CLIENT_SOURCE})
69
70 if(KHRONOS_HAVE_VCSM)
71 include_directories (../../host_applications/linux/libs/sm )
72 set(VCSM_LIBS vcsm)
73 add_definitions(-DKHRONOS_HAVE_VCSM)
74 endif()
75
76 target_link_libraries(EGL khrn_client vchiq_arm vcos bcm_host ${VCSM_LIBS} -lm)
77 target_link_libraries(GLESv2 EGL khrn_client vcos)
78 target_link_libraries(WFC EGL)
79 target_link_libraries(OpenVG EGL)
80
81 install(TARGETS EGL GLESv2 OpenVG WFC khrn_client DESTINATION lib)
82 install(TARGETS EGL_static GLESv2_static khrn_static DESTINATION lib)
83
84 # recommended names to use to avoid conflicts with mesa libs
85 add_library(brcmEGL ${SHARED} ${EGL_SOURCE})
86 add_library(brcmGLESv2 ${SHARED} ${GLES_SOURCE})
87 add_library(brcmOpenVG ${SHARED} ${VG_SOURCE})
88 add_library(brcmWFC ${SHARED} ${WFC_SOURCE})
89
90 target_link_libraries(brcmEGL khrn_client vchiq_arm vcos bcm_host ${VCSM_LIBS} -lm)
91 target_link_libraries(brcmGLESv2 brcmEGL khrn_client vcos)
92 target_link_libraries(brcmWFC brcmEGL)
93 target_link_libraries(brcmOpenVG brcmEGL)
94
95 install(TARGETS brcmEGL brcmGLESv2 brcmOpenVG brcmWFC DESTINATION lib)