summaryrefslogtreecommitdiff
path: root/compiler/cmake
diff options
context:
space:
mode:
authorJason Maskell <[email protected]>2016-05-16 15:00:36 +0200
committerJason Maskell <[email protected]>2016-05-16 15:00:36 +0200
commit3eb017d032e0c542401ea202f7a62b7c7ddcd498 (patch)
tree6470077bdc344f1493778976917f7217a3159707 /compiler/cmake
parentProject now compiles with Cmake. (diff)
downloadwaveworks_archive-3eb017d032e0c542401ea202f7a62b7c7ddcd498.tar.xz
waveworks_archive-3eb017d032e0c542401ea202f7a62b7c7ddcd498.zip
Added the test_d3d11 app to the solution. Not compiling yet, mostly a paranoia commit.
Diffstat (limited to 'compiler/cmake')
-rw-r--r--compiler/cmake/NvWaveWorks.cmake20
-rw-r--r--compiler/cmake/test_d3d11.cmake181
2 files changed, 192 insertions, 9 deletions
diff --git a/compiler/cmake/NvWaveWorks.cmake b/compiler/cmake/NvWaveWorks.cmake
index 6ca3015..d34f42a 100644
--- a/compiler/cmake/NvWaveWorks.cmake
+++ b/compiler/cmake/NvWaveWorks.cmake
@@ -2,8 +2,6 @@
# Build NvWaveWorks (PROJECT not SOLUTION)
#
-SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})
-
FIND_PACKAGE(CUDA REQUIRED)
@@ -122,12 +120,13 @@ SET(DISTRO_INCLUDE_FILES
${DISTRO_INCLUDE_DIR}/GFSDK_WaveWorks_D3D_Util.h
${DISTRO_INCLUDE_DIR}/GFSDK_WaveWorks_GUID.h
${DISTRO_INCLUDE_DIR}/GFSDK_WaveWorks_Types.h
+
+ ${DISTRO_INCLUDE_DIR}/GFSDK_WaveWorks_Quadtree.fxh
+ ${DISTRO_INCLUDE_DIR}/GFSDK_WaveWorks_Attributes.fxh
+ ${DISTRO_INCLUDE_DIR}/GFSDK_WaveWorks_Common.fxh
)
SET(HLSL_FILES
- ${SHADER_SRC_DIR}/Attributes.fxh
- ${SHADER_SRC_DIR}/Common.fxh
- ${SHADER_SRC_DIR}/Quadtree.fxh
${SHADER_SRC_DIR}/CalcGradient.fx
${SHADER_SRC_DIR}/CalcGradient_SM3.fx
@@ -183,11 +182,11 @@ CompileFXToH(${SHADER_SRC_DIR}/Quadtree_SM5_sig.fx ${GEN_SRC_DIR}/Quadtree_SM5_s
# NOTE: This does a weird thing. Only the PS command invocation will show in VS. The other one is there, but is in some sort of hidden file.
# It can still be seen in the project xml.
-CompileFXToH(${SHADER_SRC_DIR}/FoamGeneration_SM4.fx ${GEN_SRC_DIR}/FoamGeneration_ps_4_0.h fx ${SHADER_SRC_DIR} ${GEN_SRC_DIR} ps /Tps_4_0)
-CompileFXToH(${SHADER_SRC_DIR}/FoamGeneration_SM4.fx ${GEN_SRC_DIR}/FoamGeneration_vs_4_0.h fx ${SHADER_SRC_DIR} ${GEN_SRC_DIR} vs /Tvs_4_0)
+CompileFXToH(${SHADER_SRC_DIR}/FoamGeneration_SM4.fx ${GEN_SRC_DIR}/FoamGeneration_ps_4_0.h fx ${SHADER_SRC_DIR} ${DISTRO_INCLUDE_DIR} ps /Tps_4_0)
+CompileFXToH(${SHADER_SRC_DIR}/FoamGeneration_SM4.fx ${GEN_SRC_DIR}/FoamGeneration_vs_4_0.h fx ${SHADER_SRC_DIR} ${DISTRO_INCLUDE_DIR} vs /Tvs_4_0)
-CompileFXToH(${SHADER_SRC_DIR}/FoamGeneration_SM3.fx ${GEN_SRC_DIR}/FoamGeneration_ps_3_0.h fx ${SHADER_SRC_DIR} ${GEN_SRC_DIR} ps /Tps_3_0)
-CompileFXToH(${SHADER_SRC_DIR}/FoamGeneration_SM3.fx ${GEN_SRC_DIR}/FoamGeneration_vs_3_0.h fx ${SHADER_SRC_DIR} ${GEN_SRC_DIR} vs /Tvs_3_0)
+CompileFXToH(${SHADER_SRC_DIR}/FoamGeneration_SM3.fx ${GEN_SRC_DIR}/FoamGeneration_ps_3_0.h fx ${SHADER_SRC_DIR} ${DISTRO_INCLUDE_DIR} ps /Tps_3_0)
+CompileFXToH(${SHADER_SRC_DIR}/FoamGeneration_SM3.fx ${GEN_SRC_DIR}/FoamGeneration_vs_3_0.h fx ${SHADER_SRC_DIR} ${DISTRO_INCLUDE_DIR} vs /Tvs_3_0)
CompileFXToH(${SHADER_SRC_DIR}/CalcGradient_SM4.fx ${GEN_SRC_DIR}/CalcGradient_ps_4_0.h fx ${SHADER_SRC_DIR} ${GEN_SRC_DIR} ps /Tps_4_0)
CompileFXToH(${SHADER_SRC_DIR}/CalcGradient_SM4.fx ${GEN_SRC_DIR}/CalcGradient_vs_4_0.h fx ${SHADER_SRC_DIR} ${GEN_SRC_DIR} vs /Tvs_4_0)
@@ -225,6 +224,9 @@ ADD_LIBRARY(WaveWorks ${WW_LIBTYPE}
${DISTRO_INCLUDE_FILES}
${FX_FILES}
+
+# ${HLSL_FILES}
+
${GENERATED_HLSL_FILES}
${GENERATED_CUDA_FILES_1}
diff --git a/compiler/cmake/test_d3d11.cmake b/compiler/cmake/test_d3d11.cmake
new file mode 100644
index 0000000..9ceb7d3
--- /dev/null
+++ b/compiler/cmake/test_d3d11.cmake
@@ -0,0 +1,181 @@
+#
+# Build test_d3d11
+#
+
+SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})
+
+FIND_PACKAGE(DXUT REQUIRED)
+FIND_PACKAGE(FX11 REQUIRED)
+FIND_PACKAGE(DirectXTK REQUIRED)
+
+MESSAGE("FX11 ${FX11_SDK_PATH}")
+
+SET(TEST_SOURCE_DIR ${PROJECT_SOURCE_DIR}/test/d3d11)
+SET(SHARED_CS_DIR ${PROJECT_SOURCE_DIR}/test/client-server)
+SET(TL_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
+
+IF(TARGET_BUILD_PLATFORM STREQUAL "Windows")
+
+ FIND_PACKAGE(DirectX REQUIRED)
+
+ SET(WW_PLATFORM_INCLUDES
+ )
+
+ SET(WW_PLATFORM_SRC_FILES
+ )
+
+
+ # Use generator expressions to set config specific preprocessor definitions
+ SET(WW_COMPILE_DEFS
+ # Common to all configurations
+ _LIB;NVWAVEWORKS_LIB_DLL_EXPORTS;WIN32;
+
+ $<$<CONFIG:debug>:PROFILE;_DEV;>
+ $<$<CONFIG:release>:NDEBUG;>
+ )
+
+ SET(WW_LIBTYPE SHARED)
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+
+ SET(WW_PLATFORM_INCLUDES
+ $ENV{SCE_ORBIS_SDK_DIR}/target/include
+ )
+
+ SET(WW_COMPILE_DEFS
+
+ # Common to all configurations
+ _LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PX_PHYSX_STATIC_LIB;
+
+ $<$<CONFIG:debug>:_DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_SUPPORT_PVD=1;>
+ $<$<CONFIG:release>:NDEBUG;PX_SUPPORT_PVD=0;>
+ )
+
+ SET(WW_LIBTYPE STATIC)
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "XBoxOne")
+ SET(WW_PLATFORM_INCLUDES
+ )
+
+ # Use generator expressions to set config specific preprocessor definitions
+ SET(WW_COMPILE_DEFS
+
+ # Common to all configurations
+ PX_PHYSX_CORE_EXPORTS;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WINAPI_FAMILY=WINAPI_FAMILY_TV_TITLE;PX_PHYSX_STATIC_LIB;
+
+ $<$<CONFIG:debug>:_DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_SUPPORT_PVD=1;>
+ $<$<CONFIG:release>:NDEBUG;PX_SUPPORT_PVD=0;>
+ )
+
+ SET(WW_LIBTYPE STATIC)
+
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "Unix")
+ENDIF()
+
+SET(APP_FILES
+ ${TEST_SOURCE_DIR}/ocean_cufft_app.cpp
+ ${TEST_SOURCE_DIR}/ocean_surface.cpp
+ ${TEST_SOURCE_DIR}/util.cpp
+ ${TEST_SOURCE_DIR}/ocean_surface.h
+)
+
+SET(SHARED_CS_FILES
+ ${SHARED_CS_DIR}/client.cpp
+ ${SHARED_CS_DIR}/client.h
+ ${SHARED_CS_DIR}/message_types.h
+ ${SHARED_CS_DIR}/socket_wrapper.h
+ ${SHARED_CS_DIR}/socket_wrapper.cpp
+)
+
+SET(FX_FILES
+ ${TEST_SOURCE_DIR}/ocean_marker.fx
+ ${TEST_SOURCE_DIR}/ocean_surface.fx
+ ${TEST_SOURCE_DIR}/skybox.fx
+)
+
+SET(FXO_FILES
+ ${PROJECT_SOURCE_DIR}/test/media/ocean_marker_d3d11.fxo
+ ${PROJECT_SOURCE_DIR}/test/media/ocean_surface_d3d11.fxo
+ ${PROJECT_SOURCE_DIR}/test/media/skybox_d3d11.fxo
+)
+
+INCLUDE(cmake/CompileFXToFXO.cmake)
+
+#ADD_CUSTOM_TARGET(fx ALL)
+
+ADD_CUSTOM_TARGET(d3d11fx ALL)
+
+#FUNCTION(CompileFXToFXO FILE OUTPUT_FILE TARGET INCLUDE_DIR OPTIONS)
+CompileFXToFXO(${TEST_SOURCE_DIR}/ocean_marker.fx ${PROJECT_SOURCE_DIR}/test/media/ocean_marker_d3d11.fxo d3d11fx ${TL_INCLUDE_DIR} /O3 /Tfx_5_0)
+CompileFXToFXO(${TEST_SOURCE_DIR}/ocean_surface.fx ${PROJECT_SOURCE_DIR}/test/media/ocean_surface_d3d11.fxo d3d11fx ${TL_INCLUDE_DIR} /O3 /Tfx_5_0)
+CompileFXToFXO(${TEST_SOURCE_DIR}/skybox.fx ${PROJECT_SOURCE_DIR}/test/media/skybox_d3d11.fxo d3d11fx ${TL_INCLUDE_DIR} /O3 /Tfx_5_0)
+
+ADD_LIBRARY(TestD3D11 ${WW_LIBTYPE}
+ ${WW_PLATFORM_SRC_FILES}
+
+ ${APP_FILES}
+ ${SHARED_CS_FILES}
+ ${FX_FILES}
+
+)
+
+SOURCE_GROUP("app" FILES ${APP_FILES})
+SOURCE_GROUP("fx" FILES ${FX_FILES})
+#SOURCE_GROUP("header" FILES ${H_FILES})
+#SOURCE_GROUP("hlsl" FILES ${HLSL_FILES})
+#SOURCE_GROUP("cuda" FILES ${CUDA_FILES})
+
+
+
+# Target specific compile options
+
+
+TARGET_INCLUDE_DIRECTORIES(TestD3D11
+ PRIVATE ${WW_PLATFORM_INCLUDES}
+
+ PRIVATE ${TL_INCLUDE_DIR}
+ PRIVATE ${SHADER_CS_DIR}
+ PRIVATE ${SHARED_CS_DIR}
+
+ PRIVATE ${DXUT_INCLUDE_DIRS}
+ PRIVATE ${FX11_INCLUDE_DIRS}
+ PRIVATE ${DXTK_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS(TestD3D11
+
+ # Common to all configurations
+ PRIVATE ${WW_COMPILE_DEFS}
+)
+
+
+
+#TODO: Link flags
+
+IF(TARGET_BUILD_PLATFORM STREQUAL "Windows")
+ # Add linked libraries
+ TARGET_LINK_LIBRARIES(TestD3D11 PUBLIC WaveWorks ${CUDA_LIBRARIES} ${DirectX_DXGUID_LIBRARY} ${DirectX_D3D11_LIBRARY} ${FXO_FILES} ${DXUT_LIBRARIES} ${FX11_LIBRARIES} ${DXTK_LIBRARIES})
+
+ IF(CMAKE_CL_64)
+ SET(LIBPATH_SUFFIX "win64")
+ ELSE(CMAKE_CL_64)
+ SET(LIBPATH_SUFFIX "Win32")
+ ENDIF(CMAKE_CL_64)
+
+ SET_TARGET_PROPERTIES(TestD3D11 PROPERTIES
+ LINK_FLAGS_DEBUG "/MAP /DEBUG"
+ LINK_FLAGS_RELEASE "/MAP /INCREMENTAL:NO"
+ )
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "PS4")
+# TARGET_LINK_LIBRARIES(TestD3D11 PUBLIC LowLevel LowLevelAABB LowLevelCloth LowLevelDynamics LowLevelParticles TestD3D11Common PxFoundation PxPvdSDK PxTask SceneQuery SimulationController)
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "XBoxOne")
+
+# TARGET_LINK_LIBRARIES(TestD3D11 PUBLIC LowLevel LowLevelAABB LowLevelCloth LowLevelDynamics LowLevelParticles TestD3D11Common PxFoundation PxPvdSDK PxTask SceneQuery SimulationController)
+
+ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "Unix")
+ENDIF()
+
+