mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-20 19:00:22 +08:00
62 lines
2.4 KiB
CMake
62 lines
2.4 KiB
CMake
set(prefix "${PROJECT_NAME}.app/Contents")
|
|
set(INSTALL_RUNTIME_DIR "${prefix}/MacOS")
|
|
set(INSTALL_CMAKE_DIR "${prefix}/Resources")
|
|
|
|
# based on code from CMake's QtDialog/CMakeLists.txt
|
|
macro(install_qt5_plugin _qt_plugin_name _qt_plugins_var _prefix)
|
|
get_target_property(_qt_plugin_path "${_qt_plugin_name}" LOCATION)
|
|
if(EXISTS "${_qt_plugin_path}")
|
|
get_filename_component(_qt_plugin_file "${_qt_plugin_path}" NAME)
|
|
get_filename_component(_qt_plugin_type "${_qt_plugin_path}" PATH)
|
|
get_filename_component(_qt_plugin_type "${_qt_plugin_type}" NAME)
|
|
set(_qt_plugin_dest "${_prefix}/PlugIns/${_qt_plugin_type}")
|
|
install(FILES "${_qt_plugin_path}"
|
|
DESTINATION "${_qt_plugin_dest}")
|
|
set(${_qt_plugins_var}
|
|
"${${_qt_plugins_var}};\$ENV{DEST_DIR}\${CMAKE_INSTALL_PREFIX}/${_qt_plugin_dest}/${_qt_plugin_file}")
|
|
else()
|
|
message(FATAL_ERROR "QT plugin ${_qt_plugin_name} not found")
|
|
endif()
|
|
endmacro()
|
|
|
|
install_qt5_plugin("Qt5::QCocoaIntegrationPlugin" QT_PLUGINS ${prefix})
|
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/qt.conf"
|
|
"[Paths]\nPlugins = ${_qt_plugin_dir}\n")
|
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/qt.conf"
|
|
DESTINATION "${INSTALL_CMAKE_DIR}")
|
|
|
|
# Destination paths below are relative to ${CMAKE_INSTALL_PREFIX}
|
|
install(TARGETS ${PROJECT_NAME}
|
|
BUNDLE DESTINATION . COMPONENT Runtime
|
|
RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} COMPONENT Runtime
|
|
)
|
|
install(FILES ${CMAKE_SOURCE_DIR}/assets/info.plist DESTINATION "${prefix}" )
|
|
install(FILES ${CMAKE_SOURCE_DIR}/assets/icons/qv2ray.icns DESTINATION "${INSTALL_CMAKE_DIR}" )
|
|
|
|
# Note Mac specific extension .app
|
|
set(APPS "\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}.app")
|
|
|
|
# Directories to look for dependencies
|
|
set(DIRS "${CMAKE_BINARY_DIR}")
|
|
|
|
# Path used for searching by FIND_XXX(), with appropriate suffixes added
|
|
if(CMAKE_PREFIX_PATH)
|
|
foreach(dir ${CMAKE_PREFIX_PATH})
|
|
list(APPEND DIRS "${dir}/bin" "${dir}/lib")
|
|
endforeach()
|
|
endif()
|
|
|
|
# Append Qt's lib folder which is two levels above Qt5Widgets_DIR
|
|
list(APPEND DIRS "${Qt5Widgets_DIR}/../..")
|
|
list(APPEND DIRS "/usr/local/lib")
|
|
list(APPEND DIRS "/usr/lib")
|
|
|
|
include(InstallRequiredSystemLibraries)
|
|
|
|
message(STATUS "APPS: ${APPS}")
|
|
message(STATUS "QT_PLUGINS: ${QT_PLUGINS}")
|
|
message(STATUS "DIRS: ${DIRS}")
|
|
|
|
install(CODE "include(BundleUtilities)
|
|
fixup_bundle(\"${APPS}\" \"${QT_PLUGINS}\" \"${DIRS}\")")
|