blob: 559cffb4086b5f8f7872854749b1f4abc0beae99 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
cmake_minimum_required (VERSION 3.6)
project(GhostCubeScene CXX)
set(SOURCE
src/GhostCubeScene.cpp
)
set(INCLUDE
src/GhostCubeScene.h
)
set(SHADERS
assets/shaders/Mirror.psh
assets/shaders/Mirror.vsh
)
set(ALL_ASSETS ${SHADERS})
set_source_files_properties(${SHADERS} PROPERTIES VS_TOOL_OVERRIDE "None")
if(D3D12_SUPPORTED)
list(APPEND SOURCE src/GhostCubeSceneResTrsnHelper.cpp)
list(APPEND INCLUDE src/GhostCubeSceneResTrsnHelper.h)
endif()
if(PLATFORM_ANDROID OR PLATFORM_LINUX OR PLATFORM_MACOS OR PLATFORM_IOS)
list(APPEND SOURCE src/LoadPluginFunctions.cpp)
endif()
set_source_files_properties(${SHADERS} PROPERTIES
VS_DEPLOYMENT_CONTENT 1
VS_DEPLOYMENT_LOCATION "shaders"
MACOSX_PACKAGE_LOCATION "Resources/shaders"
)
add_target_platform_app(GhostCubeScene "${SOURCE}" "${INCLUDE}" "${ALL_ASSETS}")
if(PLATFORM_WIN32)
set_target_properties(GhostCubeScene PROPERTIES
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/assets"
)
add_custom_command(TARGET GhostCubeScene POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"\"$<TARGET_FILE:GhostCubePlugin-shared>\""
"\"$<TARGET_FILE_DIR:GhostCubeScene>\"")
elseif(PLATFORM_UNIVERSAL_WINDOWS)
append_emulator_uwp_source(GhostCubeScene)
# We cannot use genreator expression to add a file because the file name
# must not depend on the configuration
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 $<CONFIG:Debug>
VS_DEPLOYMENT_LOCATION "."
)
set_source_files_properties(${PLUGIN_REL_DLL} PROPERTIES
VS_DEPLOYMENT_CONTENT $<NOT:$<CONFIG:Debug>>
VS_DEPLOYMENT_LOCATION "."
)
add_custom_command(TARGET GhostCubeScene PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"\"$<TARGET_FILE:GhostCubePlugin-shared>\""
"${CMAKE_CURRENT_BINARY_DIR}/$<TARGET_FILE_NAME:GhostCubePlugin-shared>"
)
target_sources(GhostCubeScene PRIVATE ${PLUGIN_DLLS})
source_group("assets" FILES ${PLUGIN_DLLS})
endif()
add_dependencies(GhostCubeScene GhostCubePlugin-shared)
target_include_directories(GhostCubeScene
PRIVATE
../GhostCubePlugin/PluginSource/src/Unity
)
target_link_libraries(GhostCubeScene
PRIVATE
Diligent-BuildSettings
Diligent-NativeAppBase
UnityEmulator
Diligent-TargetPlatform
)
if(PLATFORM_ANDROID)
target_link_libraries(GhostCubeScene PRIVATE GhostCubePlugin-shared)
elseif (PLATFORM_LINUX)
target_link_libraries(GhostCubeScene PRIVATE GhostCubePlugin-shared GL X11)
elseif (PLATFORM_MACOS OR PLATFORM_IOS)
target_link_libraries(GhostCubeScene PRIVATE GhostCubePlugin-shared)
endif()
if(D3D12_SUPPORTED)
target_link_libraries(GhostCubeScene PRIVATE d3d12.lib)
endif()
set_common_target_properties(GhostCubeScene)
if(MSVC)
# Disable MSVC-specific warnings
# - w4201: nonstandard extension used: nameless struct/union
target_compile_options(GhostCubeScene PRIVATE /wd4201)
if(PLATFORM_UNIVERSAL_WINDOWS)
# Consume the windows runtime extensions
target_compile_options(GhostCubeScene PRIVATE /ZW)
endif()
endif()
source_group("src" FILES ${SOURCE})
source_group("include" FILES ${INCLUDE})
source_group("assets\\shaders" FILES ${SHADERS})
set_target_properties(GhostCubeScene PROPERTIES
FOLDER Unity
)
|