mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-03 17:54:06 +00:00
Define dependency to OSG plugins in one place
Each binary depending on components library requires OSG plugins to be linked. Duplicating dependecies for each binary does not give benefits and brings problems when new binary is added.
This commit is contained in:
parent
6170971ea3
commit
b0f772af40
@ -232,31 +232,6 @@ target_link_libraries(openmw-cs
|
||||
components_qt
|
||||
)
|
||||
|
||||
if(OSG_STATIC)
|
||||
unset(_osg_plugins_static_files)
|
||||
add_library(openmw_cs_osg_plugins INTERFACE)
|
||||
foreach(_plugin ${USED_OSG_PLUGINS})
|
||||
string(TOUPPER ${_plugin} _plugin_uc)
|
||||
if(OPENMW_USE_SYSTEM_OSG)
|
||||
list(APPEND _osg_plugins_static_files ${${_plugin_uc}_LIBRARY})
|
||||
else()
|
||||
list(APPEND _osg_plugins_static_files $<TARGET_FILE:${${_plugin_uc}_LIBRARY}>)
|
||||
target_link_libraries(openmw_cs_osg_plugins INTERFACE $<TARGET_PROPERTY:${${_plugin_uc}_LIBRARY},LINK_LIBRARIES>)
|
||||
add_dependencies(openmw_cs_osg_plugins ${${_plugin_uc}_LIBRARY})
|
||||
endif()
|
||||
endforeach()
|
||||
# We use --whole-archive because OSG plugins use registration.
|
||||
get_whole_archive_options(_opts ${_osg_plugins_static_files})
|
||||
target_link_options(openmw_cs_osg_plugins INTERFACE ${_opts})
|
||||
target_link_libraries(openmw-cs openmw_cs_osg_plugins)
|
||||
|
||||
if(OPENMW_USE_SYSTEM_OSG)
|
||||
# OSG plugin pkgconfig files are missing these dependencies.
|
||||
# https://github.com/openscenegraph/OpenSceneGraph/issues/1052
|
||||
target_link_libraries(openmw freetype jpeg png)
|
||||
endif()
|
||||
endif(OSG_STATIC)
|
||||
|
||||
target_link_libraries(openmw-cs Qt5::Widgets Qt5::Core Qt5::Network Qt5::OpenGL)
|
||||
|
||||
if (WIN32)
|
||||
|
@ -155,31 +155,6 @@ target_link_libraries(openmw
|
||||
${LUA_LIBRARIES}
|
||||
)
|
||||
|
||||
if(OSG_STATIC)
|
||||
unset(_osg_plugins_static_files)
|
||||
add_library(openmw_osg_plugins INTERFACE)
|
||||
foreach(_plugin ${USED_OSG_PLUGINS})
|
||||
string(TOUPPER ${_plugin} _plugin_uc)
|
||||
if(OPENMW_USE_SYSTEM_OSG)
|
||||
list(APPEND _osg_plugins_static_files ${${_plugin_uc}_LIBRARY})
|
||||
else()
|
||||
list(APPEND _osg_plugins_static_files $<TARGET_FILE:${${_plugin_uc}_LIBRARY}>)
|
||||
target_link_libraries(openmw_osg_plugins INTERFACE $<TARGET_PROPERTY:${${_plugin_uc}_LIBRARY},LINK_LIBRARIES>)
|
||||
add_dependencies(openmw_osg_plugins ${${_plugin_uc}_LIBRARY})
|
||||
endif()
|
||||
endforeach()
|
||||
# We use --whole-archive because OSG plugins use registration.
|
||||
get_whole_archive_options(_opts ${_osg_plugins_static_files})
|
||||
target_link_options(openmw_osg_plugins INTERFACE ${_opts})
|
||||
target_link_libraries(openmw openmw_osg_plugins)
|
||||
|
||||
if(OPENMW_USE_SYSTEM_OSG)
|
||||
# OSG plugin pkgconfig files are missing these dependencies.
|
||||
# https://github.com/openscenegraph/OpenSceneGraph/issues/1052
|
||||
target_link_libraries(openmw freetype jpeg png)
|
||||
endif()
|
||||
endif(OSG_STATIC)
|
||||
|
||||
if (ANDROID)
|
||||
target_link_libraries(openmw EGL android log z)
|
||||
endif (ANDROID)
|
||||
|
@ -304,3 +304,28 @@ endif()
|
||||
set(COMPONENT_FILES ${COMPONENT_FILES} PARENT_SCOPE)
|
||||
|
||||
target_compile_definitions(components PUBLIC BT_USE_DOUBLE_PRECISION)
|
||||
|
||||
if(OSG_STATIC)
|
||||
unset(_osg_plugins_static_files)
|
||||
add_library(components_osg_plugins INTERFACE)
|
||||
foreach(_plugin ${USED_OSG_PLUGINS})
|
||||
string(TOUPPER ${_plugin} _plugin_uc)
|
||||
if(OPENMW_USE_SYSTEM_OSG)
|
||||
list(APPEND _osg_plugins_static_files ${${_plugin_uc}_LIBRARY})
|
||||
else()
|
||||
list(APPEND _osg_plugins_static_files $<TARGET_FILE:${${_plugin_uc}_LIBRARY}>)
|
||||
target_link_libraries(components_osg_plugins INTERFACE $<TARGET_PROPERTY:${${_plugin_uc}_LIBRARY},LINK_LIBRARIES>)
|
||||
add_dependencies(components_osg_plugins ${${_plugin_uc}_LIBRARY})
|
||||
endif()
|
||||
endforeach()
|
||||
# We use --whole-archive because OSG plugins use registration.
|
||||
get_whole_archive_options(_opts ${_osg_plugins_static_files})
|
||||
target_link_options(components_osg_plugins INTERFACE ${_opts})
|
||||
target_link_libraries(components components_osg_plugins)
|
||||
|
||||
if(OPENMW_USE_SYSTEM_OSG)
|
||||
# OSG plugin pkgconfig files are missing these dependencies.
|
||||
# https://github.com/openscenegraph/OpenSceneGraph/issues/1052
|
||||
target_link_libraries(components freetype jpeg png)
|
||||
endif()
|
||||
endif(OSG_STATIC)
|
||||
|
Loading…
x
Reference in New Issue
Block a user