summaryrefslogtreecommitdiff
path: root/indra/media_plugins/webkit/CMakeLists.txt
blob: 1a559ed39cbce75fdc699ad40614c449ff64750b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# -*- cmake -*-

project(media_plugin_webkit)

include(00-Common)
include(LLCommon)
include(LLImage)
include(LLPlugin)
include(LLMath)
include(LLRender)
include(LLWindow)
include(UI)
include(Linking)
include(PluginAPI)
include(MediaPluginBase)
include(FindOpenGL)
include(PulseAudio)

include(WebKitLibPlugin)

include_directories(
    ${PULSEAUDIO_INCLUDE_DIRS}
    ${LLPLUGIN_INCLUDE_DIRS}
    ${MEDIA_PLUGIN_BASE_INCLUDE_DIRS}
    ${LLCOMMON_INCLUDE_DIRS}
    ${LLMATH_INCLUDE_DIRS}
    ${LLIMAGE_INCLUDE_DIRS}
    ${LLRENDER_INCLUDE_DIRS}
    ${LLWINDOW_INCLUDE_DIRS}
)


### media_plugin_webkit

set(media_plugin_webkit_SOURCE_FILES
    media_plugin_webkit.cpp
    )

set(media_plugin_webkit_HEADER_FILES
    volume_catcher.h
    )

set(media_plugin_webkit_LINK_LIBRARIES
  ${LLPLUGIN_LIBRARIES}
  ${MEDIA_PLUGIN_BASE_LIBRARIES}
  ${LLCOMMON_LIBRARIES}
  ${WEBKIT_PLUGIN_LIBRARIES}
  ${PLUGIN_API_WINDOWS_LIBRARIES}
  ${PULSEAUDIO_LIBRARIES}
)

# Select which VolumeCatcher implementation to use
if (LINUX AND PULSEAUDIO)
  list(APPEND media_plugin_webkit_SOURCE_FILES linux_volume_catcher.cpp)
  list(APPEND media_plugin_webkit_LINK_LIBRARIES
       ${UI_LIBRARIES}     # for glib/GTK
       )
elseif (DARWIN)
  list(APPEND media_plugin_webkit_SOURCE_FILES mac_volume_catcher.cpp)
  find_library(CORESERVICES_LIBRARY CoreServices)
  find_library(AUDIOUNIT_LIBRARY AudioUnit)
  list(APPEND media_plugin_webkit_LINK_LIBRARIES
       ${CORESERVICES_LIBRARY}     # for Component Manager calls
       ${AUDIOUNIT_LIBRARY}        # for AudioUnit calls
       )
elseif (WINDOWS)
  list(APPEND media_plugin_webkit_SOURCE_FILES windows_volume_catcher.cpp)
else (LINUX AND PULSEAUDIO)
  # All other platforms use the dummy volume catcher for now.
  list(APPEND media_plugin_webkit_SOURCE_FILES dummy_volume_catcher.cpp)
endif (LINUX AND PULSEAUDIO)

set_source_files_properties(${media_plugin_webkit_HEADER_FILES}
                            PROPERTIES HEADER_FILE_ONLY TRUE)

list(APPEND media_plugin_webkit_SOURCE_FILES ${media_plugin_webkit_HEADER_FILES})

add_library(media_plugin_webkit
    SHARED
    ${media_plugin_webkit_SOURCE_FILES}
)

target_link_libraries(media_plugin_webkit ${media_plugin_webkit_LINK_LIBRARIES})

add_dependencies(media_plugin_webkit
  ${LLPLUGIN_LIBRARIES}
  ${MEDIA_PLUGIN_BASE_LIBRARIES}
  ${LLCOMMON_LIBRARIES}
)

if (WINDOWS)
  set_target_properties(
    media_plugin_webkit
    PROPERTIES
    LINK_FLAGS "/MANIFEST:NO"
    )
endif (WINDOWS)

if (DARWIN)
  # Don't prepend 'lib' to the executable name, and don't embed a full path in the library's install name
  set_target_properties(
    media_plugin_webkit
    PROPERTIES
    PREFIX ""
    BUILD_WITH_INSTALL_RPATH 1
    INSTALL_NAME_DIR "@executable_path"
    LINK_FLAGS "-exported_symbols_list ${CMAKE_CURRENT_SOURCE_DIR}/../base/media_plugin_base.exp"
  )

  # copy the webkit dylib to the build directory
  add_custom_command(
    TARGET media_plugin_webkit POST_BUILD
#    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllqtwebkit.dylib
    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
    DEPENDS media_plugin_webkit ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib
    )
    
endif (DARWIN)