# -*- cmake -*- project(llfbconnecttest) 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) ### llfbconnecttest set(llfbconnecttest_SOURCE_FILES llfbconnecttest.cpp llfbconnecttest.h bookmarks.txt ) add_executable(llfbconnecttest WIN32 MACOSX_BUNDLE ${llfbconnecttest_SOURCE_FILES} ) set_target_properties(llfbconnecttest PROPERTIES WIN32_EXECUTABLE FALSE ) target_link_libraries(llfbconnecttest ${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(llfbconnecttest ${COREFOUNDATION_LIBRARY} ) endif (DARWIN) add_dependencies(llfbconnecttest stage_third_party_libs SLPlugin media_plugin_webkit ${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(llfbconnecttest.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}/llfbconnecttest.app/Contents/Resources ) # create the Contents/Resources directory add_custom_command( TARGET llfbconnecttest 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) set(BUILT_SLPLUGIN $) add_custom_command(TARGET llfbconnecttest POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_SLPLUGIN} ${PLUGINS_DESTINATION_DIR} DEPENDS ${BUILT_SLPLUGIN} ) set(BUILT_LLCOMMON $) add_custom_command(TARGET llfbconnecttest POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_LLCOMMON} ${PLUGINS_DESTINATION_DIR} DEPENDS ${BUILT_LLCOMMON} ) set(BUILT_WEBKIT_PLUGIN $) add_custom_command(TARGET llfbconnecttest POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${BUILT_WEBKIT_PLUGIN} ${PLUGINS_DESTINATION_DIR} DEPENDS ${BUILT_WEBKIT_PLUGIN} ) # copy over bookmarks file if llfbconnecttest gets built set(BUILT_LLFBCONNECTTEST $) add_custom_command(TARGET llfbconnecttest POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${CMAKE_CURRENT_BINARY_DIR}/ DEPENDS ${BUILT_LLFBCONNECTTEST} ) # also copy it to the same place as SLPlugin, which is what the mac wants... add_custom_command(TARGET llfbconnecttest POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bookmarks.txt ${PLUGINS_DESTINATION_DIR} DEPENDS ${BUILT_LLFBCONNECTTEST} ) if(WINDOWS) #******************** # Plugin test library deploy # # Debug config runtime files required for the FB connect test set(fbconnecttest_debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}") set(fbconnecttest_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( ${fbconnecttest_debug_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/Debug" out_targets ${fbconnecttest_debug_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) # Debug config runtime files required for the FB connect test (Qt image format plugins) set(fbconecttest_debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}/imageformats") set(fbconecttest_debug_files qgifd4.dll qicod4.dll qjpegd4.dll qmngd4.dll qsvgd4.dll qtiffd4.dll ) copy_if_different( ${fbconecttest_debug_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/Debug/imageformats" out_targets ${fbconecttest_debug_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) # Debug config runtime files required for the FB connect test (Qt codec plugins) set(fbconnecttest_debug_src_dir "${ARCH_PREBUILT_DIRS_DEBUG}/codecs") set(fbconnecttest_debug_files qcncodecsd4.dll qjpcodecsd4.dll qkrcodecsd4.dll qtwcodecsd4.dll ) copy_if_different( ${fbconnecttest_debug_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/Debug/codecs" out_targets ${fbconnecttest_debug_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) # Release & ReleaseDebInfo config runtime files required for the FB connect test set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(fbconnecttest_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( ${fbconnecttest_release_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/Release" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) copy_if_different( ${fbconnecttest_release_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt image format plugins) set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}/imageformats") set(fbconnecttest_release_files qgif4.dll qico4.dll qjpeg4.dll qmng4.dll qsvg4.dll qtiff4.dll ) copy_if_different( ${fbconnecttest_release_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/Release/imageformats" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) copy_if_different( ${fbconnecttest_release_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/imageformats" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt codec plugins) set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}/codecs") set(fbconnecttest_release_files qcncodecs4.dll qjpcodecs4.dll qkrcodecs4.dll qtwcodecs4.dll ) copy_if_different( ${fbconnecttest_release_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/Release/codecs" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) copy_if_different( ${fbconnecttest_release_src_dir} "${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/codecs" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) add_custom_target(copy_fbconnecttest_libs ALL DEPENDS ${fbconnect_test_targets} ) add_dependencies(llfbconnecttest copy_fbconnecttest_libs) endif(WINDOWS) if (DARWIN) set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_RELEASE}") set(fbconnecttest_release_files libexception_handler.dylib libaprutil-1.0.dylib libapr-1.0.dylib libexpat.1.5.2.dylib libQtCore.4.7.1.dylib libQtCore.4.dylib libQtGui.4.7.1.dylib libQtGui.4.dylib libQtNetwork.4.7.1.dylib libQtNetwork.4.dylib libQtOpenGL.4.7.1.dylib libQtOpenGL.4.dylib libQtWebKit.4.7.1.dylib libQtWebKit.4.dylib libQtSvg.4.7.1.dylib libQtSvg.4.dylib libQtXml.4.7.1.dylib libQtXml.4.dylib ) copy_if_different( ${fbconnecttest_release_src_dir} "${PLUGINS_DESTINATION_DIR}" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt image format plugins) set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/imageformats") set(fbconnecttest_release_files libqgif.dylib libqico.dylib libqjpeg.dylib libqmng.dylib libqsvg.dylib libqtiff.dylib ) copy_if_different( ${fbconnecttest_release_src_dir} "${PLUGINS_DESTINATION_DIR}/imageformats" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) # Release & ReleaseDebInfo config runtime files required for the FB connect test (Qt codec plugins) set(fbconnecttest_release_src_dir "${ARCH_PREBUILT_DIRS_PLUGINS}/codecs") set(fbconnecttest_release_files libqcncodecs.dylib libqjpcodecs.dylib libqkrcodecs.dylib libqtwcodecs.dylib ) copy_if_different( ${fbconnecttest_release_src_dir} "${PLUGINS_DESTINATION_DIR}/codecs" out_targets ${fbconnecttest_release_files} ) set(fbconnect_test_targets ${fbconnect_test_targets} ${out_targets}) add_custom_target(copy_fbconnecttest_libs ALL DEPENDS ${fbconnect_test_targets} ) add_dependencies(llfbconnecttest copy_fbconnecttest_libs) endif (DARWIN) if (LINUX) endif (LINUX) ll_deploy_sharedlibs_command(llfbconnecttest)