From 4181dd04a310156555c68af1c7be31a8d7b58d65 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Thu, 14 Dec 2017 22:37:34 -0800 Subject: CMake: enabled resource processing for UnityPlugin in UWP build --- .../GhostCubePlugin/PluginSource/CMakeLists.txt | 10 +---- unityplugin/GhostCubeScene/CMakeLists.txt | 44 +++++++++++++++++++++- 2 files changed, 44 insertions(+), 10 deletions(-) (limited to 'unityplugin') diff --git a/unityplugin/GhostCubePlugin/PluginSource/CMakeLists.txt b/unityplugin/GhostCubePlugin/PluginSource/CMakeLists.txt index 4ead45b..a53e928 100644 --- a/unityplugin/GhostCubePlugin/PluginSource/CMakeLists.txt +++ b/unityplugin/GhostCubePlugin/PluginSource/CMakeLists.txt @@ -39,14 +39,6 @@ add_library(GhostCubePlugin-shared SHARED ${SOURCE} ${INCLUDE} ${UNITY_INTERFACES} ) -if(PLATFORM_WIN32 OR PLATFORM_UNIVERSAL_WINDOWS) - if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(ARCH 64) - else("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(ARCH 32) - endif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") -endif() - set(DLL_REL_SUFFIX _${ARCH}r) set(DLL_DBG_SUFFIX _${ARCH}d) @@ -57,7 +49,7 @@ set_target_properties(GhostCubePlugin-shared PROPERTIES OUTPUT_NAME_MINSIZEREL GhostCubePlugin${DLL_REL_SUFFIX} ) -if(PLATFORM_WIN32) +if(PLATFORM_WIN32 OR PLATFORM_UNIVERSAL_WINDOWS) target_sources(GhostCubePlugin-shared PRIVATE src/RenderingPlugin.def diff --git a/unityplugin/GhostCubeScene/CMakeLists.txt b/unityplugin/GhostCubeScene/CMakeLists.txt index 81d263a..f51cc2e 100644 --- a/unityplugin/GhostCubeScene/CMakeLists.txt +++ b/unityplugin/GhostCubeScene/CMakeLists.txt @@ -10,6 +10,14 @@ set(INCLUDE src/GhostCubeScene.h ) +set(SHADERS + build/assets/shaders/Mirror.psh + build/assets/shaders/Mirror.vsh +) +set(ASSETS ${SHADERS}) +set_source_files_properties(${SHADERS} PROPERTIES VS_TOOL_OVERRIDE "None") + + if(PLATFORM_WIN32 OR PLATFORM_UNIVERSAL_WINDOWS) list(APPEND SOURCE src/GhostCubeSceneResTrsnHelper.cpp) list(APPEND INCLUDE src/GhostCubeSceneResTrsnHelper.h) @@ -19,7 +27,7 @@ endif() if(PLATFORM_WIN32 OR PLATFORM_UNIVERSAL_WINDOWS) - add_executable(GhostCubeScene WIN32 ${SOURCE} ${INCLUDE}) + add_executable(GhostCubeScene WIN32 ${SOURCE} ${INCLUDE} ${ASSETS}) if(PLATFORM_WIN32) set_target_properties(GhostCubeScene PROPERTIES @@ -30,6 +38,37 @@ if(PLATFORM_WIN32 OR PLATFORM_UNIVERSAL_WINDOWS) COMMAND ${CMAKE_COMMAND} -E copy_if_different "\"$\"" "\"$\"") + + elseif(PLATFORM_UNIVERSAL_WINDOWS) + + set(PLUGIN_REL_DLL ${CMAKE_CURRENT_BINARY_DIR}/GhostCubePlugin_${ARCH}r.dll) + set(PLUGIN_DBG_DLL ${CMAKE_CURRENT_BINARY_DIR}/GhostCubePlugin_${ARCH}d.dll) + + set(PLUGIN_DLLS ${PLUGIN_REL_DLL} ${PLUGIN_DBG_DLL}) + set_source_files_properties(${PLUGIN_DLLS} PROPERTIES GENERATED TRUE) + set_source_files_properties(${PLUGIN_DBG_DLL} PROPERTIES + VS_DEPLOYMENT_CONTENT $ + VS_DEPLOYMENT_LOCATION "assets" + ) + set_source_files_properties(${PLUGIN_REL_DLL} PROPERTIES + VS_DEPLOYMENT_CONTENT $> + VS_DEPLOYMENT_LOCATION "assets" + ) + + add_custom_command(TARGET GhostCubeScene PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "\"$\"" + "${CMAKE_CURRENT_BINARY_DIR}/$" + ) + + target_sources(GhostCubeScene PRIVATE ${PLUGIN_DLLS}) + source_group("assets" FILES ${PLUGIN_DLLS}) + + set_source_files_properties(${SHADERS} PROPERTIES + VS_DEPLOYMENT_CONTENT TRUE + VS_DEPLOYMENT_LOCATION "assets/shaders" + ) + endif() #elseif(APPLE) @@ -40,6 +79,8 @@ else() message(FATAL_ERROR "Unknown platform") endif() +add_dependencies(GhostCubeScene GhostCubePlugin-shared) + if(PLATFORM_UNIVERSAL_WINDOWS) get_emulator_uwp_source(UWP_SOURCE UWP_INCLUDE UWP_INCLUDE_DIR) source_group("UWP\\src" FILES ${UWP_SOURCE}) @@ -75,6 +116,7 @@ endif() source_group("src" FILES ${SOURCE}) source_group("include" FILES ${INCLUDE}) +source_group("assets\\shaders" FILES ${SHADERS}) set_target_properties(GhostCubeScene PROPERTIES FOLDER Unity -- cgit v1.2.3