From 91d13074d5c3acd938c1514de1bbb95f57e85736 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Wed, 9 Jan 2019 20:52:09 -0800 Subject: Fixed Unity plugin on MacOS --- .../GhostCubePlugin/PluginSource/CMakeLists.txt | 36 +++++++-- .../UnityProject/Assets/Plugins/MacOS.meta | 8 ++ .../Assets/Plugins/MacOS/GhostCubePlugin.bundle | Bin 0 -> 2805472 bytes .../Plugins/MacOS/GhostCubePlugin.bundle.meta | 82 +++++++++++++++++++++ 4 files changed, 118 insertions(+), 8 deletions(-) create mode 100644 unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS.meta create mode 100755 unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle create mode 100644 unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle.meta (limited to 'unityplugin') diff --git a/unityplugin/GhostCubePlugin/PluginSource/CMakeLists.txt b/unityplugin/GhostCubePlugin/PluginSource/CMakeLists.txt index 4275979..acac459 100644 --- a/unityplugin/GhostCubePlugin/PluginSource/CMakeLists.txt +++ b/unityplugin/GhostCubePlugin/PluginSource/CMakeLists.txt @@ -59,8 +59,7 @@ if(MSVC) source_group("src" FILES src/RenderingPlugin.def) endif() -target_link_libraries(GhostCubePlugin-shared -PRIVATE +set(PRIVATE_DEPENDENCIES BuildSettings TargetPlatform Common @@ -69,19 +68,33 @@ PRIVATE ) if(D3D11_SUPPORTED) - target_link_libraries(GhostCubePlugin-shared PRIVATE GraphicsEngineD3D11-static) + list(APPEND PRIVATE_DEPENDENCIES GraphicsEngineD3D11-static) endif() if(D3D12_SUPPORTED) - target_link_libraries(GhostCubePlugin-shared PRIVATE GraphicsEngineD3D12-static) + list(APPEND PRIVATE_DEPENDENCIES GraphicsEngineD3D12-static) endif() if(GL_SUPPORTED OR GLES_SUPPORTED) - target_link_libraries(GhostCubePlugin-shared PRIVATE GraphicsEngineOpenGL-static) + list(APPEND PRIVATE_DEPENDENCIES GraphicsEngineOpenGL-static) endif() +target_link_libraries(GhostCubePlugin-shared PRIVATE ${PRIVATE_DEPENDENCIES}) set_common_target_properties(GhostCubePlugin-shared) +if(PLATFORM_MACOS) + # Unity wants plugin be packaged as bundle on MacOS + add_library(GhostCubePlugin-bundle MODULE + ${SOURCE} ${INCLUDE} ${UNITY_INTERFACES} + ) + set_target_properties(GhostCubePlugin-bundle PROPERTIES + BUNDLE TRUE + FOLDER Unity + ) + target_link_libraries(GhostCubePlugin-bundle PRIVATE ${PRIVATE_DEPENDENCIES}) + set_common_target_properties(GhostCubePlugin-bundle) +endif() + if(PLATFORM_WIN32) target_compile_definitions(GhostCubePlugin-shared PRIVATE UNITY_WIN=1) elseif(PLATFORM_UNIVERSAL_WINDOWS) @@ -92,6 +105,7 @@ elseif(PLATFORM_LINUX) target_compile_definitions(GhostCubePlugin-shared PRIVATE UNITY_LINUX=1) elseif(PLATFORM_MACOS) target_compile_definitions(GhostCubePlugin-shared PRIVATE UNITY_OSX=1) + target_compile_definitions(GhostCubePlugin-bundle PRIVATE UNITY_OSX=1) elseif(PLATFORM_IOS) target_compile_definitions(GhostCubePlugin-shared PRIVATE UNITY_IPHONE=1) endif() @@ -129,16 +143,22 @@ elseif(PLATFORM_ANDROID) elseif(PLATFORM_LINUX) set(UNITY_PLUGIN_PATH ${UNITY_PLUGIN_PATH}/libGhostCubePlugin.so) elseif(PLATFORM_MACOS) - set(UNITY_PLUGIN_PATH ${UNITY_PLUGIN_PATH}/MacOS/libGhostCubePlugin.so) + set(UNITY_PLUGIN_PATH ${UNITY_PLUGIN_PATH}/MacOS/GhostCubePlugin.bundle) elseif(PLATFORM_IOS) message(WARNING "No unity plugin path specified") else() message(FATAL_ERROR "Unsupported platform") endif() -add_custom_command(TARGET GhostCubePlugin-shared POST_BUILD +if(PLATFORM_MACOS) + set(PLUGIN_TARGET GhostCubePlugin-bundle) +else() + set(PLUGIN_TARGET GhostCubePlugin-shared) +endif() + +add_custom_command(TARGET ${PLUGIN_TARGET} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different - "\"$\"" + "\"$\"" "${UNITY_PLUGIN_PATH}" ) diff --git a/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS.meta b/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS.meta new file mode 100644 index 0000000..174e02c --- /dev/null +++ b/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4e0f5db3b08d549309b945d702f8ac3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle b/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle new file mode 100755 index 0000000..4fe5fbb Binary files /dev/null and b/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle differ diff --git a/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle.meta b/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle.meta new file mode 100644 index 0000000..d27cf4a --- /dev/null +++ b/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle.meta @@ -0,0 +1,82 @@ +fileFormatVersion: 2 +guid: 0250eb748ce024644aba29421db73446 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + platformData: + - first: + '': Any + second: + enabled: 0 + settings: + Exclude Editor: 0 + Exclude Linux: 1 + Exclude Linux64: 1 + Exclude LinuxUniversal: 1 + Exclude OSXUniversal: 0 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 1 + settings: + CPU: x86_64 + DefaultValueInitialized: true + OS: OSX + - first: + Facebook: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Facebook: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Linux + second: + enabled: 0 + settings: + CPU: x86 + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: x86_64 + - first: + Standalone: OSXUniversal + second: + enabled: 1 + settings: + CPU: AnyCPU + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: AnyCPU + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.2.3