mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-30 09:36:43 +00:00
Merge branch 'fix-build' into 'master'
Fix linking with `-DOPENMW_USE_SYSTEM_OSG=ON -DOSG_STATIC=ON` See merge request OpenMW/openmw!640
This commit is contained in:
commit
deb184cdce
3 changed files with 50 additions and 21 deletions
|
@ -215,12 +215,16 @@ if(APPLE)
|
||||||
endif(APPLE)
|
endif(APPLE)
|
||||||
|
|
||||||
target_link_libraries(openmw-cs
|
target_link_libraries(openmw-cs
|
||||||
${OSG_LIBRARIES}
|
# CMake's built-in OSG finder does not use pkgconfig, so we have to
|
||||||
${OSGTEXT_LIBRARIES}
|
# manually ensure the order is correct for inter-library dependencies.
|
||||||
${OSGUTIL_LIBRARIES}
|
# This only makes a difference with `-DOPENMW_USE_SYSTEM_OSG=ON -DOSG_STATIC=ON`.
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/21701
|
||||||
${OSGVIEWER_LIBRARIES}
|
${OSGVIEWER_LIBRARIES}
|
||||||
${OSGGA_LIBRARIES}
|
|
||||||
${OSGFX_LIBRARIES}
|
${OSGFX_LIBRARIES}
|
||||||
|
${OSGGA_LIBRARIES}
|
||||||
|
${OSGUTIL_LIBRARIES}
|
||||||
|
${OSGTEXT_LIBRARIES}
|
||||||
|
${OSG_LIBRARIES}
|
||||||
${EXTERN_OSGQT_LIBRARY}
|
${EXTERN_OSGQT_LIBRARY}
|
||||||
${Boost_SYSTEM_LIBRARY}
|
${Boost_SYSTEM_LIBRARY}
|
||||||
${Boost_FILESYSTEM_LIBRARY}
|
${Boost_FILESYSTEM_LIBRARY}
|
||||||
|
@ -233,17 +237,24 @@ if(OSG_STATIC)
|
||||||
add_library(openmw_cs_osg_plugins INTERFACE)
|
add_library(openmw_cs_osg_plugins INTERFACE)
|
||||||
foreach(_plugin ${USED_OSG_PLUGINS})
|
foreach(_plugin ${USED_OSG_PLUGINS})
|
||||||
string(TOUPPER ${_plugin} _plugin_uc)
|
string(TOUPPER ${_plugin} _plugin_uc)
|
||||||
if (${_plugin_uc}_LIBRARY MATCHES "[/.]")
|
if(OPENMW_USE_SYSTEM_OSG)
|
||||||
list(APPEND _osg_plugins_static_files ${${_plugin_uc}_LIBRARY})
|
list(APPEND _osg_plugins_static_files ${${_plugin_uc}_LIBRARY})
|
||||||
else()
|
else()
|
||||||
list(APPEND _osg_plugins_static_files $<TARGET_FILE:${${_plugin_uc}_LIBRARY}>)
|
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()
|
endif()
|
||||||
target_link_libraries(openmw_cs_osg_plugins INTERFACE ${${_plugin_uc}_LIBRARY})
|
|
||||||
endforeach()
|
endforeach()
|
||||||
# We use --whole-archive because OSG plugins use registration.
|
# We use --whole-archive because OSG plugins use registration.
|
||||||
get_whole_archive_options(_opts ${_osg_plugins_static_files})
|
get_whole_archive_options(_opts ${_osg_plugins_static_files})
|
||||||
target_link_options(openmw_cs_osg_plugins INTERFACE ${_opts})
|
target_link_options(openmw_cs_osg_plugins INTERFACE ${_opts})
|
||||||
target_link_libraries(openmw-cs openmw_cs_osg_plugins)
|
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)
|
endif(OSG_STATIC)
|
||||||
|
|
||||||
target_link_libraries(openmw-cs Qt5::Widgets Qt5::Core Qt5::Network Qt5::OpenGL)
|
target_link_libraries(openmw-cs Qt5::Widgets Qt5::Core Qt5::Network Qt5::OpenGL)
|
||||||
|
|
|
@ -122,13 +122,18 @@ include_directories(
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(openmw
|
target_link_libraries(openmw
|
||||||
${OSG_LIBRARIES}
|
# CMake's built-in OSG finder does not use pkgconfig, so we have to
|
||||||
|
# manually ensure the order is correct for inter-library dependencies.
|
||||||
|
# This only makes a difference with `-DOPENMW_USE_SYSTEM_OSG=ON -DOSG_STATIC=ON`.
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/21701
|
||||||
${OSGPARTICLE_LIBRARIES}
|
${OSGPARTICLE_LIBRARIES}
|
||||||
${OSGUTIL_LIBRARIES}
|
|
||||||
${OSGDB_LIBRARIES}
|
|
||||||
${OSGVIEWER_LIBRARIES}
|
${OSGVIEWER_LIBRARIES}
|
||||||
${OSGGA_LIBRARIES}
|
${OSGGA_LIBRARIES}
|
||||||
${OSGSHADOW_LIBRARIES}
|
${OSGSHADOW_LIBRARIES}
|
||||||
|
${OSGDB_LIBRARIES}
|
||||||
|
${OSGUTIL_LIBRARIES}
|
||||||
|
${OSG_LIBRARIES}
|
||||||
|
|
||||||
${Boost_SYSTEM_LIBRARY}
|
${Boost_SYSTEM_LIBRARY}
|
||||||
${Boost_THREAD_LIBRARY}
|
${Boost_THREAD_LIBRARY}
|
||||||
${Boost_FILESYSTEM_LIBRARY}
|
${Boost_FILESYSTEM_LIBRARY}
|
||||||
|
@ -148,17 +153,24 @@ if(OSG_STATIC)
|
||||||
add_library(openmw_osg_plugins INTERFACE)
|
add_library(openmw_osg_plugins INTERFACE)
|
||||||
foreach(_plugin ${USED_OSG_PLUGINS})
|
foreach(_plugin ${USED_OSG_PLUGINS})
|
||||||
string(TOUPPER ${_plugin} _plugin_uc)
|
string(TOUPPER ${_plugin} _plugin_uc)
|
||||||
if (${_plugin_uc}_LIBRARY MATCHES "[/.]")
|
if(OPENMW_USE_SYSTEM_OSG)
|
||||||
list(APPEND _osg_plugins_static_files ${${_plugin_uc}_LIBRARY})
|
list(APPEND _osg_plugins_static_files ${${_plugin_uc}_LIBRARY})
|
||||||
else()
|
else()
|
||||||
list(APPEND _osg_plugins_static_files $<TARGET_FILE:${${_plugin_uc}_LIBRARY}>)
|
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()
|
endif()
|
||||||
target_link_libraries(openmw_osg_plugins INTERFACE ${${_plugin_uc}_LIBRARY})
|
|
||||||
endforeach()
|
endforeach()
|
||||||
# We use --whole-archive because OSG plugins use registration.
|
# We use --whole-archive because OSG plugins use registration.
|
||||||
get_whole_archive_options(_opts ${_osg_plugins_static_files})
|
get_whole_archive_options(_opts ${_osg_plugins_static_files})
|
||||||
target_link_options(openmw_osg_plugins INTERFACE ${_opts})
|
target_link_options(openmw_osg_plugins INTERFACE ${_opts})
|
||||||
target_link_libraries(openmw openmw_osg_plugins)
|
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)
|
endif(OSG_STATIC)
|
||||||
|
|
||||||
if (ANDROID)
|
if (ANDROID)
|
||||||
|
|
|
@ -223,20 +223,26 @@ include_directories(${BULLET_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
add_library(components STATIC ${COMPONENT_FILES} ${MOC_SRCS} ${ESM_UI_HDR})
|
add_library(components STATIC ${COMPONENT_FILES} ${MOC_SRCS} ${ESM_UI_HDR})
|
||||||
|
|
||||||
target_link_libraries(components
|
target_link_libraries(components
|
||||||
|
# CMake's built-in OSG finder does not use pkgconfig, so we have to
|
||||||
|
# manually ensure the order is correct for inter-library dependencies.
|
||||||
|
# This only makes a difference with `-DOPENMW_USE_SYSTEM_OSG=ON -DOSG_STATIC=ON`.
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/21701
|
||||||
|
${OSGPARTICLE_LIBRARIES}
|
||||||
|
${OSGVIEWER_LIBRARIES}
|
||||||
|
${OSGSHADOW_LIBRARIES}
|
||||||
|
${OSGANIMATION_LIBRARIES}
|
||||||
|
${OSGGA_LIBRARIES}
|
||||||
|
${OSGTEXT_LIBRARIES}
|
||||||
|
${OSGDB_LIBRARIES}
|
||||||
|
${OSGUTIL_LIBRARIES}
|
||||||
|
${OSG_LIBRARIES}
|
||||||
|
${OPENTHREADS_LIBRARIES}
|
||||||
|
|
||||||
${Boost_SYSTEM_LIBRARY}
|
${Boost_SYSTEM_LIBRARY}
|
||||||
${Boost_FILESYSTEM_LIBRARY}
|
${Boost_FILESYSTEM_LIBRARY}
|
||||||
${Boost_PROGRAM_OPTIONS_LIBRARY}
|
${Boost_PROGRAM_OPTIONS_LIBRARY}
|
||||||
${Boost_IOSTREAMS_LIBRARY}
|
${Boost_IOSTREAMS_LIBRARY}
|
||||||
${OSG_LIBRARIES}
|
|
||||||
${OPENTHREADS_LIBRARIES}
|
|
||||||
${OSGPARTICLE_LIBRARIES}
|
|
||||||
${OSGUTIL_LIBRARIES}
|
|
||||||
${OSGDB_LIBRARIES}
|
|
||||||
${OSGVIEWER_LIBRARIES}
|
|
||||||
${OSGTEXT_LIBRARIES}
|
|
||||||
${OSGGA_LIBRARIES}
|
|
||||||
${OSGSHADOW_LIBRARIES}
|
|
||||||
${OSGANIMATION_LIBRARIES}
|
|
||||||
${SDL2_LIBRARIES}
|
${SDL2_LIBRARIES}
|
||||||
${OPENGL_gl_LIBRARY}
|
${OPENGL_gl_LIBRARY}
|
||||||
${MyGUI_LIBRARIES}
|
${MyGUI_LIBRARIES}
|
||||||
|
|
Loading…
Reference in a new issue