cmake_minimum_required(VERSION 3.3)
MESSAGE("[NvCloth]cmake/web/CMakeList.txt")
include(../common/CMakeLists.txt)

IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to web
	SET(TARGET_BUILD_PLATFORM "web")
ENDIF()

SET(PLATFORM_LIST web)

IF(NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST)
	MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM})
ENDIF()

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -fstrict-aliasing -Wstrict-aliasing=2 -Wno-nontrivial-memcall")

# Enable SIMD
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msimd128 -msse4.2 -mno-nontrapping-fptoint")

SET(CMAKE_SHARED_LINKER_FLAGS "")

# Build debug info for all configurations
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g2")
SET(CMAKE_CXX_FLAGS_CHECKED "-g2 -O2")
SET(CMAKE_CXX_FLAGS_PROFILE "-O3 -g")
SET(CMAKE_CXX_FLAGS_RELEASE "-Os")

# Disable cuda and dx for all projects on web
SET(PHYSX_WEB_COMPILE_DEFS DISABLE_COMPUTE_PHYSX)
SET(PHYSX_WEB_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_NVTX=0;PX_SUPPORT_PVD=0)
SET(PHYSX_SWWEB_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1;PX_NVTX=0;PX_SUPPORT_PVD=0)
SET(PHYSX_WEB_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1;PX_NVTX=0;PX_SUPPORT_PVD=0)
SET(PHYSX_WEB_RELEASE_COMPILE_DEFS NDEBUG;PX_SUPPORT_PVD=0)

SET(PX_SELECT_COMPONENTS PxFoundation)
FIND_PACKAGE(PxShared REQUIRED)

# Include all of the projects
INCLUDE(NvCloth.cmake)

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${NVCLOTH_CXX_FLAGS}")
