phoenix-firestorm/indra/test_apps/llplugintest/CMakeLists.txt

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)