summaryrefslogtreecommitdiff
path: root/Tests/VSWinStorePhone/CMakeLists.txt
blob: b8e157daee1245678bebea8a329ee3f5edbeabf6 (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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
cmake_minimum_required(VERSION 3.0)
project(VSWinStorePhone)
if(MSVC_VERSION GREATER 1899)
  set(COMPILER_VERSION "14")
elseif(MSVC_VERSION GREATER 1700)
  set(COMPILER_VERSION "12")
elseif(MSVC_VERSION GREATER 1600)
  set(COMPILER_VERSION "11")
endif()

add_subdirectory(WinRT)
add_subdirectory(CxxDLL)

set (APP_MANIFEST_NAME Package.appxmanifest)
if("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsPhone")
  set(PLATFORM WP)
  add_definitions("-DPHONE")
  if("${CMAKE_SYSTEM_VERSION}" STREQUAL "8.0")
    set(APP_MANIFEST_NAME WMAppManifest.xml)
    set(WINDOWS_PHONE8 1)
  endif()
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore")
  set(PLATFORM STORE)
else()
  set(PLATFORM DESKTOP)
  message(FATAL_ERROR "This app supports Store / Phone only. Please edit the target platform.")
endif()

set_property(GLOBAL PROPERTY USE_FOLDERS ON)

set(EXE_NAME Direct3DApp1)
set(SHORT_NAME ${EXE_NAME})
set(PACKAGE_GUID "6514377e-dfd4-4cdb-80df-4e0366346efc")

if (NOT "${PLATFORM}" STREQUAL "DESKTOP")
  configure_file(
    cmake/Package_vc${COMPILER_VERSION}.${PLATFORM}.appxmanifest.in
    ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}
    @ONLY)
endif()

set(SOURCE_FILES
  Direct3DApp1/CubeRenderer.cpp
  Direct3DApp1/Direct3DApp1.cpp
  Direct3DApp1/Direct3DBase.cpp
  Direct3DApp1/pch.cpp
  )

set(HEADER_FILES
  Direct3DApp1/BasicTimer.h
  Direct3DApp1/CubeRenderer.h
  Direct3DApp1/Direct3DApp1.h
  Direct3DApp1/Direct3DBase.h
  Direct3DApp1/DirectXHelper.h
  Direct3DApp1/pch.h
  )

set(PIXELSHADER_FILES
  Direct3DApp1/SimplePixelShader.hlsl
  )

set(VERTEXSHADER_FILES
  Direct3DApp1/SimpleVertexShader.hlsl
  )

set(CONTENT_FILES ${PIXELSHADER_FILES} ${VERTEXSHADER_FILES})

if (WINDOWS_PHONE8)
  set(CONTENT_FILES ${CONTENT_FILES}
    ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}
    Direct3DApp1/Assets/Tiles/FlipCycleTileLarge.png
    Direct3DApp1/Assets/Tiles/FlipCycleTileMedium.png
    Direct3DApp1/Assets/Tiles/FlipCycleTileSmall.png
    Direct3DApp1/Assets/Tiles/IconicTileMediumLarge.png
    Direct3DApp1/Assets/Tiles/IconicTileSmall.png
    Direct3DApp1/Assets/ApplicationIcon.png
    )
  # Windows Phone 8.0 needs to copy all the images.
  # It doesn't know to use relative paths.
  file(COPY
    Direct3DApp1/Assets/Tiles/FlipCycleTileLarge.png
    Direct3DApp1/Assets/Tiles/FlipCycleTileMedium.png
    Direct3DApp1/Assets/Tiles/FlipCycleTileSmall.png
    Direct3DApp1/Assets/Tiles/IconicTileMediumLarge.png
    Direct3DApp1/Assets/Tiles/IconicTileSmall.png
    Direct3DApp1/Assets/ApplicationIcon.png
    DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
    )

elseif (NOT "${PLATFORM}" STREQUAL "DESKTOP")
  set(CONTENT_FILES ${CONTENT_FILES}
    ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME}
    )

    set(ASSET_FILES ${ASSET_FILES}
    Direct3DApp1/Assets/Logo.png
    Direct3DApp1/Assets/SmallLogo.png
    Direct3DApp1/Assets/SmallLogo44x44.png
    Direct3DApp1/Assets/SplashScreen.png
    Direct3DApp1/Assets/StoreLogo.png
    )
endif()

set(STRING_FILES
  Direct3DApp1/Strings/en-US/Resources.resw)

set(RESOURCE_FILES
  ${CONTENT_FILES} ${DEBUG_CONTENT_FILES} ${RELEASE_CONTENT_FILES} ${ASSET_FILES} ${STRING_FILES}
  Direct3DApp1/Direct3DApp1_TemporaryKey.pfx)

set_property(SOURCE ${CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1)
set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1)
set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "Assets")
set_property(SOURCE ${STRING_FILES} PROPERTY VS_TOOL_OVERRIDE "PRIResource")
set_property(SOURCE ${DEBUG_CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT $<CONFIG:Debug>)
set_property(SOURCE ${RELEASE_CONTENT_FILES} PROPERTY
  VS_DEPLOYMENT_CONTENT $<OR:$<CONFIG:Release>,$<CONFIG:RelWithDebInfo>,$<CONFIG:MinSizeRel>>)

set_property(SOURCE ${PIXELSHADER_FILES} PROPERTY VS_SHADER_TYPE Pixel)
set_property(SOURCE ${PIXELSHADER_FILES} PROPERTY VS_SHADER_ENTRYPOINT mainPS)
set_property(SOURCE ${PIXELSHADER_FILES} PROPERTY VS_SHADER_MODEL 4.0_level_9_3)
set_property(SOURCE ${PIXELSHADER_FILES} PROPERTY VS_SHADER_FLAGS "/DFLAGS_ADDED")
set_property(SOURCE ${PIXELSHADER_FILES} PROPERTY VS_SHADER_OUTPUT_HEADER_FILE "$(OutDir)%(Filename).h")

set_property(SOURCE ${VERTEXSHADER_FILES} PROPERTY VS_SHADER_TYPE Vertex)
set_property(SOURCE ${VERTEXSHADER_FILES} PROPERTY VS_SHADER_ENTRYPOINT mainVS)
set_property(SOURCE ${VERTEXSHADER_FILES} PROPERTY VS_SHADER_MODEL 4.0_level_9_3)
set_property(SOURCE ${VERTEXSHADER_FILES} PROPERTY VS_SHADER_FLAGS "/DFLAGS_ADDED")
set_property(SOURCE ${VERTEXSHADER_FILES} PROPERTY VS_SHADER_OUTPUT_HEADER_FILE "$(OutDir)%(Filename).h")


source_group("Source Files" FILES ${SOURCE_FILES})
source_group("Header Files" FILES ${HEADER_FILES})
source_group("Resource Files" FILES ${RESOURCE_FILES})

add_executable(${EXE_NAME} WIN32 ${SOURCE_FILES} ${HEADER_FILES} ${RESOURCE_FILES})
set_property(TARGET ${EXE_NAME} PROPERTY VS_WINRT_COMPONENT TRUE)

string(SUBSTRING "${CMAKE_SYSTEM_VERSION}" 0, 4, SHORT_VERSION)

if("${SHORT_VERSION}" STREQUAL "10.0")
  message(STATUS "Targeting Windows 10. Setting Extensions to version ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
  set_property(TARGET ${EXE_NAME} PROPERTY VS_DESKTOP_EXTENSIONS_VERSION "${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
  set_property(TARGET ${EXE_NAME} PROPERTY VS_MOBILE_EXTENSIONS_VERSION "${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")

  # The last IOT reference is on 10.0.17134.0, so only add it if supported
  if("${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}" VERSION_LESS "10.0.17135.0")
    set_property(TARGET ${EXE_NAME} PROPERTY VS_IOT_EXTENSIONS_VERSION "${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
  endif()

  # Add a reference to an SDK
  set_property(TARGET ${EXE_NAME} PROPERTY VS_SDK_REFERENCES "Microsoft.UniversalCRT.Debug, Version=${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}")
endif()

target_link_libraries(${EXE_NAME} d3d11 JusticeLeagueWinRT CxxDll)