macos: Update library bundling process, add vde to bundle (#3390)
Co-authored-by: cold-brewed <cold-brewed@users.noreply.github.com>
This commit is contained in:
@@ -43,8 +43,13 @@ endif()
|
|||||||
if (UNIX)
|
if (UNIX)
|
||||||
find_path(HAS_VDE "libvdeplug.h" PATHS ${VDE_INCLUDE_DIR} "/usr/include /usr/local/include" "/opt/homebrew/include" )
|
find_path(HAS_VDE "libvdeplug.h" PATHS ${VDE_INCLUDE_DIR} "/usr/include /usr/local/include" "/opt/homebrew/include" )
|
||||||
if(HAS_VDE)
|
if(HAS_VDE)
|
||||||
add_compile_definitions(HAS_VDE)
|
find_library(VDE_LIB vdeplug)
|
||||||
list(APPEND net_sources net_vde.c)
|
if (NOT VDE_LIB)
|
||||||
|
message(WARNING "Could not find VDE. The library will not be bundled and any related features will be disabled.")
|
||||||
|
else()
|
||||||
|
add_compile_definitions(HAS_VDE)
|
||||||
|
list(APPEND net_sources net_vde.c)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@@ -239,7 +239,6 @@ if (APPLE)
|
|||||||
if (NOT MOLTENVK_LIB)
|
if (NOT MOLTENVK_LIB)
|
||||||
message(FATAL_ERROR "Could not find MoltenVK library")
|
message(FATAL_ERROR "Could not find MoltenVK library")
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(ui PRIVATE "${MOLTENVK_LIB}")
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -313,6 +312,20 @@ macro(install_qt5_plugin _qt_plugin_name _runtime_plugins_var _prefix)
|
|||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
macro(install_bundle_library _library_path _installed_name _runtime_plugins_var _prefix)
|
||||||
|
if(EXISTS "${_library_path}")
|
||||||
|
file(REAL_PATH "${_library_path}" _lib_resolved)
|
||||||
|
if(EXISTS "${_lib_resolved}")
|
||||||
|
install(FILES "${_lib_resolved}" DESTINATION "${_prefix}" RENAME "${_installed_name}")
|
||||||
|
list(APPEND ${_runtime_plugins_var} "\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/${_prefix}/${_installed_name}")
|
||||||
|
else()
|
||||||
|
message(WARNING "Library ${_installed_name} will not be bundled: The library was found but could not be resolved.")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "Library ${_installed_name} was not found - skipping")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
if (APPLE AND CMAKE_MACOSX_BUNDLE)
|
if (APPLE AND CMAKE_MACOSX_BUNDLE)
|
||||||
set(prefix "86Box.app/Contents")
|
set(prefix "86Box.app/Contents")
|
||||||
set(INSTALL_RUNTIME_DIR "${prefix}/MacOS")
|
set(INSTALL_RUNTIME_DIR "${prefix}/MacOS")
|
||||||
@@ -326,19 +339,10 @@ if (APPLE AND CMAKE_MACOSX_BUNDLE)
|
|||||||
install_qt5_plugin("Qt${QT_MAJOR}::QICNSPlugin" RUNTIME_PLUGINS ${prefix})
|
install_qt5_plugin("Qt${QT_MAJOR}::QICNSPlugin" RUNTIME_PLUGINS ${prefix})
|
||||||
|
|
||||||
# Install libraries that are loaded at runtime and not linked
|
# Install libraries that are loaded at runtime and not linked
|
||||||
if (GHOSTSCRIPT_LIB)
|
install_bundle_library("${GHOSTSCRIPT_LIB}" "libgs.dylib" RUNTIME_PLUGINS ${INSTALL_LIB_DIR})
|
||||||
set(GS_LIBRARY_NAME "libgs.dylib")
|
install_bundle_library("${FLUIDSYNTH_LIB}" "libfluidsynth.dylib" RUNTIME_PLUGINS ${INSTALL_LIB_DIR})
|
||||||
file(REAL_PATH ${GHOSTSCRIPT_LIB} GS_LIB_RESOLVED)
|
install_bundle_library("${VDE_LIB}" "libvdeplug.dylib" RUNTIME_PLUGINS ${INSTALL_LIB_DIR})
|
||||||
install(FILES ${GS_LIB_RESOLVED} DESTINATION ${INSTALL_LIB_DIR} RENAME ${GS_LIBRARY_NAME})
|
install_bundle_library("${MOLTENVK_LIB}" "libVulkan.dylib" RUNTIME_PLUGINS ${INSTALL_LIB_DIR})
|
||||||
list(APPEND RUNTIME_PLUGINS "\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/${INSTALL_LIB_DIR}/${GS_LIBRARY_NAME}")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
if (FLUIDSYNTH_LIB)
|
|
||||||
set(FLUIDSYNTH_LIBRARY_NAME "libfluidsynth.dylib")
|
|
||||||
file(REAL_PATH ${FLUIDSYNTH_LIB} FLUIDSYNTH_LIB_RESOLVED)
|
|
||||||
install(FILES ${FLUIDSYNTH_LIB_RESOLVED} DESTINATION ${INSTALL_LIB_DIR} RENAME ${FLUIDSYNTH_LIBRARY_NAME})
|
|
||||||
list(APPEND RUNTIME_PLUGINS "\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/${INSTALL_LIB_DIR}/${FLUIDSYNTH_LIBRARY_NAME}")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/qt.conf"
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/qt.conf"
|
||||||
"[Paths]\nPlugins = PlugIns\n")
|
"[Paths]\nPlugins = PlugIns\n")
|
||||||
@@ -365,16 +369,6 @@ if (APPLE AND CMAKE_MACOSX_BUNDLE)
|
|||||||
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -add_rpath \"@executable_path/../Frameworks/\"
|
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -add_rpath \"@executable_path/../Frameworks/\"
|
||||||
\"\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/${INSTALL_RUNTIME_DIR}/86Box\")
|
\"\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/${INSTALL_RUNTIME_DIR}/86Box\")
|
||||||
")
|
")
|
||||||
if(MOLTENVK)
|
|
||||||
install(CODE "
|
|
||||||
execute_process(
|
|
||||||
COMMAND bash -c \"set -e
|
|
||||||
echo \\\"-- Creating vulkan dylib symlink for QT (libVulkan.dylib -> libMoltenVK.dylib)\\\"
|
|
||||||
cd \${CMAKE_INSTALL_PREFIX_ABSOLUTE}/${INSTALL_LIB_DIR}
|
|
||||||
ln -sf libMoltenVK.dylib libVulkan.dylib
|
|
||||||
\")
|
|
||||||
")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (UNIX AND NOT APPLE AND NOT HAIKU)
|
if (UNIX AND NOT APPLE AND NOT HAIKU)
|
||||||
|
Reference in New Issue
Block a user