540 lines
13 KiB
CMake
540 lines
13 KiB
CMake
# -*- cmake -*-
|
|
|
|
project(llplugintest)
|
|
|
|
include(00-Common)
|
|
include(FindOpenGL)
|
|
include(LLCommon)
|
|
include(LLPlugin)
|
|
include(Linking)
|
|
include(LLSharedLibs)
|
|
include(PluginAPI)
|
|
include(LLImage)
|
|
include(LLMath)
|
|
include(LLMessage)
|
|
include(LLRender)
|
|
include(LLWindow)
|
|
include(Glut)
|
|
include(Glui)
|
|
|
|
include_directories(
|
|
${LLPLUGIN_INCLUDE_DIRS}
|
|
${LLCOMMON_INCLUDE_DIRS}
|
|
${LLIMAGE_INCLUDE_DIRS}
|
|
${LLMATH_INCLUDE_DIRS}
|
|
${LLMESSAGE_INCLUDE_DIRS}
|
|
${LLRENDER_INCLUDE_DIRS}
|
|
${LLWINDOW_INCLUDE_DIRS}
|
|
)
|
|
|
|
if (DARWIN)
|
|
include(CMakeFindFrameworks)
|
|
find_library(COREFOUNDATION_LIBRARY CoreFoundation)
|
|
endif (DARWIN)
|
|
|
|
### demo_plugin
|
|
|
|
#set(demo_plugin_SOURCE_FILES
|
|
# demo_plugin.cpp
|
|
# )
|
|
#
|
|
#add_library(demo_plugin
|
|
# SHARED
|
|
# ${demo_plugin_SOURCE_FILES}
|
|
#)
|
|
#
|
|
#target_link_libraries(demo_plugin
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
# ${PLUGIN_API_WINDOWS_LIBRARIES}
|
|
#)
|
|
#
|
|
#add_dependencies(demo_plugin
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
#)
|
|
#
|
|
#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(
|
|
# demo_plugin
|
|
# PROPERTIES
|
|
# PREFIX ""
|
|
# BUILD_WITH_INSTALL_RPATH 1
|
|
# INSTALL_NAME_DIR "@executable_path"
|
|
# )
|
|
#endif (DARWIN)
|
|
|
|
### plugin_host
|
|
|
|
#set(plugin_host_SOURCE_FILES
|
|
# plugin_host.cpp
|
|
# )
|
|
#
|
|
#add_executable(plugin_host
|
|
# WIN32
|
|
# ${plugin_host_SOURCE_FILES}
|
|
#)
|
|
#
|
|
#set_target_properties(plugin_host
|
|
# PROPERTIES
|
|
# WIN32_EXECUTABLE
|
|
# FALSE
|
|
#)
|
|
#
|
|
#target_link_libraries(plugin_host
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
# ${PLUGIN_API_WINDOWS_LIBRARIES}
|
|
#)
|
|
#
|
|
#add_dependencies(plugin_host
|
|
# demo_plugin
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
#)
|
|
|
|
### plugin_process_launcher
|
|
|
|
#set(plugin_process_launcher_SOURCE_FILES
|
|
# plugin_process_launcher.cpp
|
|
# )
|
|
#
|
|
#add_executable(plugin_process_launcher
|
|
# WIN32
|
|
# ${plugin_process_launcher_SOURCE_FILES}
|
|
#)
|
|
#
|
|
#set_target_properties(plugin_process_launcher
|
|
# PROPERTIES
|
|
# WIN32_EXECUTABLE
|
|
# FALSE
|
|
#)
|
|
#
|
|
#target_link_libraries(plugin_process_launcher
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLMESSAGE_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
# ${PLUGIN_API_WINDOWS_LIBRARIES}
|
|
#)
|
|
#
|
|
#add_dependencies(plugin_process_launcher
|
|
# SLPlugin
|
|
# demo_plugin
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLMESSAGE_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
#)
|
|
|
|
### media_simple_test
|
|
|
|
#set(media_simple_test_SOURCE_FILES
|
|
# media_simple_test.cpp
|
|
# )
|
|
#
|
|
#add_executable(media_simple_test
|
|
# WIN32
|
|
# ${media_simple_test_SOURCE_FILES}
|
|
#)
|
|
#
|
|
#add_dependencies(media_simple_test stage_third_party_libs)
|
|
#
|
|
#set_target_properties(media_simple_test
|
|
# PROPERTIES
|
|
# WIN32_EXECUTABLE
|
|
# FALSE
|
|
#)
|
|
#
|
|
#target_link_libraries(media_simple_test
|
|
# ${GLUT_LIBRARY}
|
|
# ${OPENGL_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
#)
|
|
|
|
### media_plugin_test
|
|
|
|
#set(media_plugin_test_SOURCE_FILES
|
|
# media_plugin_test.cpp
|
|
# )
|
|
#
|
|
#add_executable(media_plugin_test
|
|
# WIN32
|
|
# ${media_plugin_test_SOURCE_FILES}
|
|
#)
|
|
#
|
|
#set_target_properties(media_plugin_test
|
|
# PROPERTIES
|
|
# WIN32_EXECUTABLE
|
|
# FALSE
|
|
#)
|
|
#
|
|
#target_link_libraries(media_plugin_test
|
|
# ${GLUT_LIBRARY}
|
|
# ${OPENGL_LIBRARIES}
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLMESSAGE_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
# ${PLUGIN_API_WINDOWS_LIBRARIES}
|
|
#)
|
|
#
|
|
#add_dependencies(media_plugin_test
|
|
# stage_third_party_libs
|
|
# SLPlugin
|
|
# demo_media_plugin
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLMESSAGE_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
#)
|
|
|
|
### demo_media_plugin
|
|
|
|
#set(demo_media_plugin_SOURCE_FILES
|
|
# demo_media_plugin.cpp
|
|
# )
|
|
#
|
|
#add_library(demo_media_plugin
|
|
# SHARED
|
|
# ${demo_media_plugin_SOURCE_FILES}
|
|
#)
|
|
#
|
|
#target_link_libraries(demo_media_plugin
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
# ${PLUGIN_API_WINDOWS_LIBRARIES}
|
|
#)
|
|
#
|
|
#add_dependencies(demo_media_plugin
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
#)
|
|
#
|
|
#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(
|
|
# demo_media_plugin
|
|
# PROPERTIES
|
|
# PREFIX ""
|
|
# BUILD_WITH_INSTALL_RPATH 1
|
|
# INSTALL_NAME_DIR "@executable_path"
|
|
# )
|
|
#endif (DARWIN)
|
|
|
|
### demo_media_plugin_2
|
|
|
|
#set(demo_media_plugin_2_SOURCE_FILES
|
|
# demo_media_plugin_2.cpp
|
|
# )
|
|
#
|
|
#add_library(demo_media_plugin_2
|
|
# SHARED
|
|
# ${demo_media_plugin_2_SOURCE_FILES}
|
|
#)
|
|
#
|
|
#target_link_libraries(demo_media_plugin_2
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
# ${PLUGIN_API_WINDOWS_LIBRARIES}
|
|
#)
|
|
#
|
|
#add_dependencies(demo_media_plugin_2
|
|
# ${LLPLUGIN_LIBRARIES}
|
|
# ${LLCOMMON_LIBRARIES}
|
|
#)
|
|
#
|
|
#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(
|
|
# demo_media_plugin_2
|
|
# PROPERTIES
|
|
# PREFIX ""
|
|
# BUILD_WITH_INSTALL_RPATH 1
|
|
# INSTALL_NAME_DIR "@executable_path"
|
|
# )
|
|
#endif (DARWIN)
|
|
|
|
### llmediaplugintest
|
|
|
|
set(llmediaplugintest_SOURCE_FILES
|
|
llmediaplugintest.cpp
|
|
llmediaplugintest.h
|
|
bookmarks.txt
|
|
)
|
|
|
|
add_executable(llmediaplugintest
|
|
WIN32
|
|
MACOSX_BUNDLE
|
|
${llmediaplugintest_SOURCE_FILES}
|
|
)
|
|
|
|
set_target_properties(llmediaplugintest
|
|
PROPERTIES
|
|
WIN32_EXECUTABLE
|
|
FALSE
|
|
)
|
|
|
|
target_link_libraries(llmediaplugintest
|
|
${GLUT_LIBRARY}
|
|
${GLUI_LIBRARY}
|
|
${OPENGL_LIBRARIES}
|
|
${LLPLUGIN_LIBRARIES}
|
|
${LLMESSAGE_LIBRARIES}
|
|
${LLCOMMON_LIBRARIES}
|
|
${PLUGIN_API_WINDOWS_LIBRARIES}
|
|
)
|
|
|
|
if (DARWIN)
|
|
# The testbed needs to use a couple of CoreFoundation calls now, to deal with being a bundled app.
|
|
target_link_libraries(llmediaplugintest
|
|
${COREFOUNDATION_LIBRARY}
|
|
)
|
|
endif (DARWIN)
|
|
|
|
add_dependencies(llmediaplugintest
|
|
stage_third_party_libs
|
|
SLPlugin
|
|
media_plugin_quicktime
|
|
media_plugin_webkit
|
|
media_plugin_example
|
|
${LLPLUGIN_LIBRARIES}
|
|
${LLMESSAGE_LIBRARIES}
|
|
${LLCOMMON_LIBRARIES}
|
|
)
|
|
|
|
# turn off weird GLUI pragma
|
|
add_definitions(-DGLUI_NO_LIB_PRAGMA)
|
|
|
|
if (DARWIN OR LINUX)
|
|
# glui.h contains code that triggers the "overloaded-virtual" warning in gcc.
|
|
set_source_files_properties(llmediaplugintest.cpp PROPERTIES COMPILE_FLAGS "-Wno-overloaded-virtual")
|
|
endif (DARWIN OR LINUX)
|
|
|
|
# Gather build products of the various dependencies into the build directory for the testbed.
|
|
|
|
if (DARWIN)
|
|
# path inside the app bundle where we'll need to copy plugins and other related files
|
|
set(PLUGINS_DESTINATION_DIR
|
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llmediaplugintest.app/Contents/Resources
|
|
)
|
|
|
|
# create the Contents/Resources directory
|
|
add_custom_command(
|
|
TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND}
|
|
ARGS
|
|
-E
|
|
make_directory
|
|
${PLUGINS_DESTINATION_DIR}
|
|
COMMENT "Creating Resources directory in app bundle."
|
|
)
|
|
else (DARWIN)
|
|
set(PLUGINS_DESTINATION_DIR
|
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
|
|
)
|
|
endif (DARWIN)
|
|
|
|
get_target_property(BUILT_SLPLUGIN SLPlugin LOCATION)
|
|
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_SLPLUGIN} ${PLUGINS_DESTINATION_DIR}
|
|
DEPENDS ${BUILT_SLPLUGIN}
|
|
)
|
|
|
|
get_target_property(BUILT_LLCOMMON llcommon LOCATION)
|
|
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_LLCOMMON} ${PLUGINS_DESTINATION_DIR}
|
|
DEPENDS ${BUILT_LLCOMMON}
|
|
)
|
|
|
|
|
|
if (DARWIN OR WINDOWS)
|
|
get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
|
|
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR}
|
|
DEPENDS ${BUILT_WEBKIT_PLUGIN}
|
|
)
|
|
|
|
get_target_property(BUILT_QUICKTIME_PLUGIN media_plugin_quicktime LOCATION)
|
|
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_QUICKTIME_PLUGIN} ${PLUGINS_DESTINATION_DIR}
|
|
DEPENDS ${BUILT_QUICKTIME_PLUGIN}
|
|
)
|
|
|
|
get_target_property(BUILT_EXAMPLE_PLUGIN media_plugin_example LOCATION)
|
|
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_EXAMPLE_PLUGIN} ${PLUGINS_DESTINATION_DIR}
|
|
DEPENDS ${BUILT_EXAMPLE_PLUGIN}
|
|
)
|
|
|
|
# copy over bookmarks file if llmediaplugintest gets built
|
|
get_target_property(BUILT_LLMEDIAPLUGINTEST llmediaplugintest LOCATION)
|
|
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/
|
|
DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
|
|
)
|
|
# also copy it to the same place as SLPlugin, which is what the mac wants...
|
|
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR}
|
|
DEPENDS ${BUILT_LLMEDIAPLUGINTEST}
|
|
)
|
|
endif (DARWIN OR WINDOWS)
|
|
|
|
if (DARWIN)
|
|
add_custom_command(TARGET llmediaplugintest POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${PLUGINS_DESTINATION_DIR}
|
|
DEPENDS ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib
|
|
)
|
|
endif (DARWIN)
|
|
|
|
if(WINDOWS)
|
|
#********************
|
|
# Plugin test library deploy
|
|
#
|
|
# Debug config runtime files required for the plugin test mule
|
|
set(plugintest_debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug")
|
|
set(plugintest_debug_files
|
|
libeay32.dll
|
|
libglib-2.0-0.dll
|
|
libgmodule-2.0-0.dll
|
|
libgobject-2.0-0.dll
|
|
libgthread-2.0-0.dll
|
|
qtcored4.dll
|
|
qtguid4.dll
|
|
qtnetworkd4.dll
|
|
qtopengld4.dll
|
|
qtwebkitd4.dll
|
|
ssleay32.dll
|
|
)
|
|
copy_if_different(
|
|
${plugintest_debug_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/Debug"
|
|
out_targets
|
|
${plugintest_debug_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
# Debug config runtime files required for the plugin test mule (Qt image format plugins)
|
|
set(plugintest_debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug/imageformats")
|
|
set(plugintest_debug_files
|
|
qgifd4.dll
|
|
qicod4.dll
|
|
qjpegd4.dll
|
|
qmngd4.dll
|
|
qsvgd4.dll
|
|
qtiffd4.dll
|
|
)
|
|
copy_if_different(
|
|
${plugintest_debug_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/Debug/imageformats"
|
|
out_targets
|
|
${plugintest_debug_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
# Debug config runtime files required for the plugin test mule (Qt codec plugins)
|
|
set(plugintest_debug_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug/codecs")
|
|
set(plugintest_debug_files
|
|
qcncodecsd4.dll
|
|
qjpcodecsd4.dll
|
|
qkrcodecsd4.dll
|
|
qtwcodecsd4.dll
|
|
)
|
|
copy_if_different(
|
|
${plugintest_debug_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/Debug/codecs"
|
|
out_targets
|
|
${plugintest_debug_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
# Release & ReleaseDebInfo config runtime files required for the plugin test mule
|
|
set(plugintest_release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release")
|
|
set(plugintest_release_files
|
|
libeay32.dll
|
|
libglib-2.0-0.dll
|
|
libgmodule-2.0-0.dll
|
|
libgobject-2.0-0.dll
|
|
libgthread-2.0-0.dll
|
|
qtcore4.dll
|
|
qtgui4.dll
|
|
qtnetwork4.dll
|
|
qtopengl4.dll
|
|
qtwebkit4.dll
|
|
qtxmlpatterns4.dll
|
|
ssleay32.dll
|
|
)
|
|
copy_if_different(
|
|
${plugintest_release_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/Release"
|
|
out_targets
|
|
${plugintest_release_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
copy_if_different(
|
|
${plugintest_release_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo"
|
|
out_targets
|
|
${plugintest_release_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
# Release & ReleaseDebInfo config runtime files required for the plugin test mule (Qt image format plugins)
|
|
set(plugintest_release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release/imageformats")
|
|
set(plugintest_release_files
|
|
qgif4.dll
|
|
qico4.dll
|
|
qjpeg4.dll
|
|
qmng4.dll
|
|
qsvg4.dll
|
|
qtiff4.dll
|
|
)
|
|
copy_if_different(
|
|
${plugintest_release_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/Release/imageformats"
|
|
out_targets
|
|
${plugintest_release_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
copy_if_different(
|
|
${plugintest_release_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/imageformats"
|
|
out_targets
|
|
${plugintest_release_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
# Release & ReleaseDebInfo config runtime files required for the plugin test mule (Qt codec plugins)
|
|
set(plugintest_release_src_dir "${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/release/codecs")
|
|
set(plugintest_release_files
|
|
qcncodecs4.dll
|
|
qjpcodecs4.dll
|
|
qkrcodecs4.dll
|
|
qtwcodecs4.dll
|
|
)
|
|
copy_if_different(
|
|
${plugintest_release_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/Release/codecs"
|
|
out_targets
|
|
${plugintest_release_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
copy_if_different(
|
|
${plugintest_release_src_dir}
|
|
"${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/codecs"
|
|
out_targets
|
|
${plugintest_release_files}
|
|
)
|
|
set(plugin_test_targets ${plugin_test_targets} ${out_targets})
|
|
|
|
add_custom_target(copy_plugintest_libs ALL
|
|
DEPENDS
|
|
${plugin_test_targets}
|
|
)
|
|
|
|
add_dependencies(llmediaplugintest copy_plugintest_libs)
|
|
|
|
endif(WINDOWS)
|
|
|
|
ll_deploy_sharedlibs_command(llmediaplugintest)
|