mirror of https://github.com/Xaymar/obs-StreamFX
Fix up bundles for MacOS installation
This commit is contained in:
parent
34f0306040
commit
9a8be4d8e7
107
CMakeLists.txt
107
CMakeLists.txt
|
@ -305,8 +305,6 @@ if(STANDALONE)
|
||||||
set(STRUCTURE_UNIFIED CACHE BOOL "Install for use in a Plugin Manager")
|
set(STRUCTURE_UNIFIED CACHE BOOL "Install for use in a Plugin Manager")
|
||||||
if(D_PLATFORM_LINUX)
|
if(D_PLATFORM_LINUX)
|
||||||
set(STRUCTURE_PACKAGEMANAGER CACHE BOOL "Install for use in a Package Manager (system-wide installation)")
|
set(STRUCTURE_PACKAGEMANAGER CACHE BOOL "Install for use in a Package Manager (system-wide installation)")
|
||||||
elseif(D_PLATFORM_MAC)
|
|
||||||
set(STRUCTURE_BUNDLE ON CACHE BOOL "Install as a Loadable Bundle (.plugin)")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PACKAGE_PREFIX "${CMAKE_BINARY_DIR}" CACHE PATH "Where to place the packages?")
|
set(PACKAGE_PREFIX "${CMAKE_BINARY_DIR}" CACHE PATH "Where to place the packages?")
|
||||||
|
@ -1267,9 +1265,7 @@ else()
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(D_PLATFORM_WINDOWS)
|
if(D_PLATFORM_WINDOWS) # Windows-exclusive
|
||||||
# Windows-exclusive
|
|
||||||
|
|
||||||
# Version Resource
|
# Version Resource
|
||||||
set(PROJECT_PRODUCT_NAME "${PROJECT_FULL_NAME}")
|
set(PROJECT_PRODUCT_NAME "${PROJECT_FULL_NAME}")
|
||||||
set(PROJECT_COMPANY_NAME "${PROJECT_AUTHORS}")
|
set(PROJECT_COMPANY_NAME "${PROJECT_AUTHORS}")
|
||||||
|
@ -1286,57 +1282,22 @@ if(D_PLATFORM_WINDOWS)
|
||||||
"templates/windows/version.rc.in"
|
"templates/windows/version.rc.in"
|
||||||
"${PROJECT_BINARY_DIR}/generated/version.rc"
|
"${PROJECT_BINARY_DIR}/generated/version.rc"
|
||||||
)
|
)
|
||||||
elseif(D_PLATFORM_MAC)
|
elseif(D_PLATFORM_MAC) # MacOS exclusive Changes
|
||||||
# MacOS exclusive Changes
|
|
||||||
|
|
||||||
set_target_properties(StreamFX PROPERTIES
|
set_target_properties(StreamFX PROPERTIES
|
||||||
# No automatic code signing in XCode
|
# No automatic code signing in XCode
|
||||||
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
|
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
|
||||||
XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO"
|
XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO"
|
||||||
|
|
||||||
# @rpath in installed binaries
|
# @rpath in installed binaries
|
||||||
INSTALL_RPATH "@executable_path/../Frameworks/;@loader_path/../Frameworks/;@loader_path/../Resources/"
|
INSTALL_RPATH "@executable_path/../Frameworks/;@loader_path/../Frameworks/;@loader_path/../Resources/"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(STANDALONE)
|
if(STANDALONE)
|
||||||
set_target_properties(StreamFX PROPERTIES
|
set_target_properties(StreamFX PROPERTIES
|
||||||
# @rpath in built binaries
|
# @rpath in built binaries
|
||||||
BUILD_WITH_INSTALL_RPATH ON
|
BUILD_WITH_INSTALL_RPATH ON
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Bundle exporting
|
|
||||||
if(STRUCTURE_BUNDLE)
|
|
||||||
# Proper location for resources in Bundles
|
|
||||||
foreach(FILE IN LISTS PROJECT_DATA)
|
|
||||||
cmake_path(ABSOLUTE_PATH FILE OUTPUT_VARIABLE FILE_PATH)
|
|
||||||
cmake_path(RELATIVE_PATH FILE_PATH BASE_DIRECTORY "${PROJECT_SOURCE_DIR}/data/")
|
|
||||||
cmake_path(GET FILE_PATH PARENT_PATH FILE_PATH)
|
|
||||||
set_source_files_properties("${FILE}" PROPERTIES
|
|
||||||
MACOSX_PACKAGE_LOCATION "Resources/${FILE_PATH}"
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# Bundle Icon
|
|
||||||
set_source_files_properties("media/icon.png" PROPERTIES
|
|
||||||
MACOSX_PACKAGE_LOCATION "Resources"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Bundle Information
|
|
||||||
set(MACOSX_BUNDLE_BUNDLE_NAME "StreamFX")
|
|
||||||
set(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}")
|
|
||||||
set(MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT}")
|
|
||||||
set(MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_IDENTIFER}")
|
|
||||||
set(MACOSX_BUNDLE_ICON_FILE "icon.png")
|
|
||||||
set(MACOSX_BUNDLE_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
|
||||||
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${_VERSION}")
|
|
||||||
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}")
|
|
||||||
set_target_properties(StreamFX PROPERTIES
|
|
||||||
BUNDLE ON
|
|
||||||
BUNDLE_EXTENSION "plugin"
|
|
||||||
OUTPUT_NAME StreamFX
|
|
||||||
MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/templates/macos/Info.plist.in"
|
|
||||||
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "${MACOSX_BUNDLE_GUI_IDENTIFIER}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set file version
|
# Set file version
|
||||||
|
@ -1669,29 +1630,45 @@ if(STANDALONE)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
elseif(D_PLATFORM_MAC)
|
elseif(D_PLATFORM_MAC)
|
||||||
if(STRUCTURE_BUNDLE)
|
# Bundle Information
|
||||||
install(
|
set(MACOSX_BUNDLE_BUNDLE_NAME "StreamFX")
|
||||||
TARGETS StreamFX
|
set(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}")
|
||||||
RUNTIME DESTINATION "." COMPONENT StreamFX
|
set(MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT}")
|
||||||
LIBRARY DESTINATION "." COMPONENT StreamFX
|
set(MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_IDENTIFER}")
|
||||||
BUNDLE DESTINATION "." COMPONENT StreamFX
|
set(MACOSX_BUNDLE_ICON_FILE "icon.png")
|
||||||
PERMISSIONS WORLD_EXECUTE;WORLD_READ;OWNER_EXECUTE;OWNER_READ;OWNER_WRITE;GROUP_EXECUTE;GROUP_READ;GROUP_WRITE
|
set(MACOSX_BUNDLE_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
||||||
|
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${_VERSION}")
|
||||||
|
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}")
|
||||||
|
set_target_properties(StreamFX PROPERTIES
|
||||||
|
BUNDLE ON
|
||||||
|
BUNDLE_EXTENSION "plugin"
|
||||||
|
OUTPUT_NAME StreamFX
|
||||||
|
MACOSX_BUNDLE_INFO_PLIST "${PROJECT_SOURCE_DIR}/templates/macos/Info.plist.in"
|
||||||
|
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "${MACOSX_BUNDLE_GUI_IDENTIFIER}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Proper location for resources in Bundles
|
||||||
|
foreach(FILE IN LISTS PROJECT_DATA)
|
||||||
|
cmake_path(ABSOLUTE_PATH FILE OUTPUT_VARIABLE FILE_PATH)
|
||||||
|
cmake_path(RELATIVE_PATH FILE_PATH BASE_DIRECTORY "${PROJECT_SOURCE_DIR}/data/")
|
||||||
|
cmake_path(GET FILE_PATH PARENT_PATH FILE_PATH)
|
||||||
|
set_source_files_properties("${FILE}" PROPERTIES
|
||||||
|
MACOSX_PACKAGE_LOCATION "Resources/${FILE_PATH}"
|
||||||
)
|
)
|
||||||
else()
|
endforeach()
|
||||||
install(
|
|
||||||
TARGETS StreamFX
|
# Bundle Icon
|
||||||
RUNTIME DESTINATION "StreamFX/bin/" COMPONENT StreamFX
|
set_source_files_properties("media/icon.png" PROPERTIES
|
||||||
LIBRARY DESTINATION "StreamFX/bin/" COMPONENT StreamFX
|
MACOSX_PACKAGE_LOCATION "Resources"
|
||||||
PERMISSIONS WORLD_EXECUTE;WORLD_READ;OWNER_EXECUTE;OWNER_READ;OWNER_WRITE;GROUP_EXECUTE;GROUP_READ;GROUP_WRITE
|
)
|
||||||
)
|
|
||||||
install(
|
install(
|
||||||
DIRECTORY "data/"
|
TARGETS StreamFX
|
||||||
DESTINATION "StreamFX/data/"
|
RUNTIME DESTINATION "." COMPONENT StreamFX
|
||||||
COMPONENT StreamFX
|
LIBRARY DESTINATION "." COMPONENT StreamFX
|
||||||
FILE_PERMISSIONS WORLD_EXECUTE;WORLD_READ;OWNER_EXECUTE;OWNER_READ;OWNER_WRITE;GROUP_EXECUTE;GROUP_READ;GROUP_WRITE
|
BUNDLE DESTINATION "." COMPONENT StreamFX
|
||||||
DIRECTORY_PERMISSIONS WORLD_EXECUTE;WORLD_READ;OWNER_EXECUTE;OWNER_READ;OWNER_WRITE;GROUP_EXECUTE;GROUP_READ;GROUP_WRITE
|
PERMISSIONS WORLD_EXECUTE;WORLD_READ;OWNER_EXECUTE;OWNER_READ;OWNER_WRITE;GROUP_EXECUTE;GROUP_READ;GROUP_WRITE
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
if(COMMAND setup_plugin_target)
|
if(COMMAND setup_plugin_target)
|
||||||
|
|
Loading…
Reference in New Issue