summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpsi29a <psi29a@gmail.com>2021-09-03 13:10:24 +0000
committerelsid <elsid.mail@gmail.com>2021-09-06 20:43:35 +0000
commit21a945ebf737fd6919da4bd7b0f19749757fdd13 (patch)
tree5029641161b8e2a4a611b4d4948fd3467815ac41
parent6170971ea374dc3bf7300a7ace6fe1c95d230f2a (diff)
Merge branch 'osg_plugins' into 'master'cherry-pick-2c0f29ea
Define dependency to OSG plugins in one place See merge request OpenMW/openmw!1172 (cherry picked from commit 2c0f29ea7e92cdc80ba0fc0ec59094bd32653b89) f75a06ca Define dependency to OSG plugins in one place
-rw-r--r--apps/opencs/CMakeLists.txt25
-rw-r--r--apps/openmw/CMakeLists.txt25
-rw-r--r--components/CMakeLists.txt25
3 files changed, 25 insertions, 50 deletions
diff --git a/apps/opencs/CMakeLists.txt b/apps/opencs/CMakeLists.txt
index 5435de07e2..4b3b8030e6 100644
--- a/apps/opencs/CMakeLists.txt
+++ b/apps/opencs/CMakeLists.txt
@@ -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)
diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt
index 53e35f3310..5605ff229e 100644
--- a/apps/openmw/CMakeLists.txt
+++ b/apps/openmw/CMakeLists.txt
@@ -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)
diff --git a/components/CMakeLists.txt b/components/CMakeLists.txt
index 3de864ea52..6e7d6e379d 100644
--- a/components/CMakeLists.txt
+++ b/components/CMakeLists.txt
@@ -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)