diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2019-01-10 04:52:09 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2019-01-10 04:52:09 +0000 |
| commit | 91d13074d5c3acd938c1514de1bbb95f57e85736 (patch) | |
| tree | 6d5fef02c0504084e175f69ec1a97555fd557665 /unityplugin/GhostCubePlugin | |
| parent | Updated copyright notice on iOS startup screen (diff) | |
| download | DiligentEngine-91d13074d5c3acd938c1514de1bbb95f57e85736.tar.gz DiligentEngine-91d13074d5c3acd938c1514de1bbb95f57e85736.zip | |
Fixed Unity plugin on MacOS
Diffstat (limited to 'unityplugin/GhostCubePlugin')
4 files changed, 118 insertions, 8 deletions
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 - "\"$<TARGET_FILE:GhostCubePlugin-shared>\"" + "\"$<TARGET_FILE:${PLUGIN_TARGET}>\"" "${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 Binary files differnew file mode 100755 index 0000000..4fe5fbb --- /dev/null +++ b/unityplugin/GhostCubePlugin/UnityProject/Assets/Plugins/MacOS/GhostCubePlugin.bundle 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: |
