aboutsummaryrefslogtreecommitdiff
path: root/NvCloth/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'NvCloth/compiler')
-rw-r--r--NvCloth/compiler/cmake/android/CMakeLists.txt10
-rw-r--r--NvCloth/compiler/cmake/android/NvCloth.cmake33
-rw-r--r--NvCloth/compiler/cmake/ios/CMakeLists.txt2
-rw-r--r--NvCloth/compiler/cmake/ios/NvCloth.cmake25
-rw-r--r--NvCloth/compiler/cmake/linux/NvCloth.cmake14
-rw-r--r--NvCloth/compiler/cmake/mac/NvCloth.cmake18
-rw-r--r--NvCloth/compiler/cmake/windows/CMakeLists.txt2
-rw-r--r--NvCloth/compiler/cmake/windows/NvCloth.cmake18
8 files changed, 85 insertions, 37 deletions
diff --git a/NvCloth/compiler/cmake/android/CMakeLists.txt b/NvCloth/compiler/cmake/android/CMakeLists.txt
index 7ef0673..da911d1 100644
--- a/NvCloth/compiler/cmake/android/CMakeLists.txt
+++ b/NvCloth/compiler/cmake/android/CMakeLists.txt
@@ -16,14 +16,19 @@ ENDIF()
if(${ANDROID_ABI} STREQUAL "armeabi-v7a")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -funwind-tables -fomit-frame-pointer -funswitch-loops -finline-limit=300 -fno-strict-aliasing -fstack-protector -Wno-invalid-offsetof ")
+ SET(NVCLOTH_ANDROID_ABI_DEFS __arm__;PX_SIMD_DISABLED)
elseif(${ANDROID_ABI} STREQUAL "armeabi-v7a with NEON")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -ffast-math -fno-exceptions -ffunction-sections -funwind-tables -fomit-frame-pointer -funswitch-loops -finline-limit=300 -fno-strict-aliasing -fstack-protector -Wno-invalid-offsetof ")
+ SET(NVCLOTH_ANDROID_ABI_DEFS __arm__;__ARM_NEON__;NV_SIMD_SCALAR=1)
elseif(${ANDROID_ABI} STREQUAL "arm64-v8a")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -Wno-invalid-offsetof ")
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -ffast-math -fno-exceptions -ffunction-sections -fdata-sections -Wno-invalid-offsetof ")
+ SET(NVCLOTH_ANDROID_ABI_DEFS __arm64__;__ARM_NEON__)
elseif(${ANDROID_ABI} STREQUAL "x86")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -Wno-invalid-offsetof -fpack-struct=8 -malign-double ")
+ SET(NVCLOTH_ANDROID_ABI_DEFS __i386__)
elseif(${ANDROID_ABI} STREQUAL "x86_64")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -Wno-invalid-offsetof -mstackrealign -msse3 ")
+ SET(NVCLOTH_ANDROID_ABI_DEFS __x86_64__)
endif()
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
@@ -33,8 +38,7 @@ SET(CMAKE_CXX_FLAGS_RELEASE "-O3")
# a version from pxshared
#SET(NVCLOTH_ANDROID_COMPILE_DEFS _LIB;__STDC_LIMIT_MACROS;)
-# TODO: __ARM_NEON__;__arm64__ only on supporting archs
-SET(NVCLOTH_ANDROID_COMPILE_DEFS _LIB;__STDC_LIMIT_MACROS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;PX_NVCLOTH_STATIC_LIB;__ARM_NEON__;__arm64__)
+SET(NVCLOTH_ANDROID_COMPILE_DEFS _LIB;__STDC_LIMIT_MACROS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;${NVCLOTH_ANDROID_ABI_DEFS})
SET(NVCLOTH_ANDROID_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1)
SET(NVCLOTH_ANDROID_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1)
SET(NVCLOTH_ANDROID_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1)
diff --git a/NvCloth/compiler/cmake/android/NvCloth.cmake b/NvCloth/compiler/cmake/android/NvCloth.cmake
index 8463368..13fb92f 100644
--- a/NvCloth/compiler/cmake/android/NvCloth.cmake
+++ b/NvCloth/compiler/cmake/android/NvCloth.cmake
@@ -6,16 +6,25 @@ SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})
SET(NVCLOTH_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../)
+if(${ANDROID_ABI} STREQUAL "armeabi-v7a with NEON" OR ${ANDROID_ABI} STREQUAL "arm64-v8a")
+ SET(NVCLOTH_PLATFORM_NEON_FILES
+ ${PROJECT_ROOT_DIR}/src/neon/NeonCollision.cpp
+ ${PROJECT_ROOT_DIR}/src/neon/NeonSelfCollision.cpp
+ ${PROJECT_ROOT_DIR}/src/neon/NeonSolverKernel.cpp
+ ${PROJECT_ROOT_DIR}/src/neon/SwCollisionHelpers.h
+ )
+else()
+ SET(NVCLOTH_PLATFORM_NEON_FILES
+ )
+endif()
+
SET(NVCLOTH_PLATFORM_SOURCE_FILES
${PROJECT_ROOT_DIR}/src/ps/unix/PsUnixAtomic.cpp
${PROJECT_ROOT_DIR}/src/ps/unix/PsUnixFPU.h
${PROJECT_ROOT_DIR}/src/ps/android/cpu-features.c
${PROJECT_ROOT_DIR}/src/ps/android/cpu-features.h
- ${PROJECT_ROOT_DIR}/src/neon/NeonCollision.cpp
- ${PROJECT_ROOT_DIR}/src/neon/NeonSelfCollision.cpp
- ${PROJECT_ROOT_DIR}/src/neon/NeonSolverKernel.cpp
- ${PROJECT_ROOT_DIR}/src/neon/SwCollisionHelpers.h
+ ${NVCLOTH_PLATFORM_NEON_FILES}
)
SET(NVCLOTH_PLATFORM_INCLUDES
@@ -23,14 +32,18 @@ SET(NVCLOTH_PLATFORM_INCLUDES
${ANDROID_NDK}/sources/android/cpufeatures
)
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=;PX_CALL_CONV=;)
+ELSE()
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=PX_DLL_EXPORT;)
+ENDIF()
+
# Use generator expressions to set config specific preprocessor definitions
SET(NVCLOTH_COMPILE_DEFS
${NVCLOTH_ANDROID_COMPILE_DEFS};
- NvCloth_STATIC_LIB; # TODO: needed?
+ ${NVCLOTH_API_COMPILE_DEFS}
NV_ANDROID
- NV_SIMD_SCALAR=1 # always compile scalar paths on android, so we may use them as fallback
- NV_CLOTH_IMPORT=PX_DLL_EXPORT
NV_CLOTH_ENABLE_DX11=0
NV_CLOTH_ENABLE_CUDA=0
@@ -40,5 +53,11 @@ SET(NVCLOTH_COMPILE_DEFS
$<$<CONFIG:release>:${NVCLOTH_ANDROID_RELEASE_COMPILE_DEFS};>
)
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_LIBTYPE STATIC)
+ELSE()
+ SET(NVCLOTH_LIBTYPE SHARED)
+ENDIF()
+
# include common low level settings
INCLUDE(../common/NvCloth.cmake)
diff --git a/NvCloth/compiler/cmake/ios/CMakeLists.txt b/NvCloth/compiler/cmake/ios/CMakeLists.txt
index bf36e95..938a5bf 100644
--- a/NvCloth/compiler/cmake/ios/CMakeLists.txt
+++ b/NvCloth/compiler/cmake/ios/CMakeLists.txt
@@ -28,7 +28,7 @@ SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g")
SET(PHYSX_IOS_ENABLE_NVTX 0)
# Disable cuda and dx for all projects on ios
-SET(PHYSX_IOS_COMPILE_DEFS DISABLE_COMPUTE_PHYSX)
+SET(PHYSX_IOS_COMPILE_DEFS DISABLE_COMPUTE_PHYSX;__ARM_NEON__)
SET(PHYSX_IOS_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_NVTX=${PHYSX_IOS_ENABLE_NVTX};PX_SUPPORT_PVD=0)
SET(PHYSX_IOS_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1;PX_NVTX=${PHYSX_IOS_ENABLE_NVTX};PX_SUPPORT_PVD=0)
SET(PHYSX_IOS_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1;PX_NVTX=${PHYSX_IOS_ENABLE_NVTX};PX_SUPPORT_PVD=0)
diff --git a/NvCloth/compiler/cmake/ios/NvCloth.cmake b/NvCloth/compiler/cmake/ios/NvCloth.cmake
index 2da5516..c6722e3 100644
--- a/NvCloth/compiler/cmake/ios/NvCloth.cmake
+++ b/NvCloth/compiler/cmake/ios/NvCloth.cmake
@@ -15,15 +15,24 @@ SET(NVCLOTH_PLATFORM_INCLUDES
)
SET(NVCLOTH_PLATFORM_SOURCE_FILES
- #${PROJECT_ROOT_DIR}/src/neon/NeonCollision.cpp
- #${PROJECT_ROOT_DIR}/src/neon/NeonSelfCollision.cpp
- #${PROJECT_ROOT_DIR}/src/neon/NeonSolverKernel.cpp
- #${PROJECT_ROOT_DIR}/src/neon/SwCollisionHelpers.h
+ ${PROJECT_ROOT_DIR}/src/ps/unix/PsUnixAtomic.cpp
+ ${PROJECT_ROOT_DIR}/src/ps/unix/PsUnixFPU.h
+
+ ${PROJECT_ROOT_DIR}/src/neon/NeonCollision.cpp
+ ${PROJECT_ROOT_DIR}/src/neon/NeonSelfCollision.cpp
+ ${PROJECT_ROOT_DIR}/src/neon/NeonSolverKernel.cpp
+ ${PROJECT_ROOT_DIR}/src/neon/SwCollisionHelpers.h
)
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=;PX_CALL_CONV=;)
+ELSE()
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=PX_DLL_EXPORT;)
+ENDIF()
+
# Use generator expressions to set config specific preprocessor definitions
SET(NVCLOTH_COMPILE_DEFS
- NV_CLOTH_IMPORT=PX_DLL_EXPORT
+ ${NVCLOTH_API_COMPILE_DEFS}
NV_CLOTH_ENABLE_DX11=0
NV_CLOTH_ENABLE_CUDA=0
@@ -36,7 +45,11 @@ SET(NVCLOTH_COMPILE_DEFS
$<$<CONFIG:release>:${PHYSX_IOS_RELEASE_COMPILE_DEFS};>
)
-SET(NVCLOTH_LIBTYPE STATIC)
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_LIBTYPE STATIC)
+ELSE()
+ SET(NVCLOTH_LIBTYPE SHARED)
+ENDIF()
# include common PhysX settings
INCLUDE(../common/NvCloth.cmake)
diff --git a/NvCloth/compiler/cmake/linux/NvCloth.cmake b/NvCloth/compiler/cmake/linux/NvCloth.cmake
index 64188f0..0fb6750 100644
--- a/NvCloth/compiler/cmake/linux/NvCloth.cmake
+++ b/NvCloth/compiler/cmake/linux/NvCloth.cmake
@@ -32,10 +32,6 @@ SET(NVCLOTH_PLATFORM_INCLUDES
SET(NVCLOTH_PLATFORM_SOURCE_FILES
${PROJECT_ROOT_DIR}/src/ps/unix/PsUnixAtomic.cpp
${PROJECT_ROOT_DIR}/src/ps/unix/PsUnixFPU.h
- #${PROJECT_ROOT_DIR}/src/neon/NeonCollision.cpp
- #${PROJECT_ROOT_DIR}/src/neon/NeonSelfCollision.cpp
- #${PROJECT_ROOT_DIR}/src/neon/NeonSolverKernel.cpp
- #${PROJECT_ROOT_DIR}/src/neon/SwCollisionHelpers.h
)
IF(${NV_CLOTH_ENABLE_CUDA})
LIST(APPEND NVCLOTH_PLATFORM_SOURCE_FILES
@@ -96,11 +92,15 @@ DEPENDS ${CUDA_FATBIN}
)
ENDIF()
-
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=;PX_CALL_CONV=;)
+ELSE()
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=PX_DLL_EXPORT;)
+ENDIF()
# Use generator expressions to set config specific preprocessor definitions
SET(NVCLOTH_COMPILE_DEFS
- NV_CLOTH_IMPORT=PX_DLL_EXPORT
+ ${NVCLOTH_API_COMPILE_DEFS}
NV_CLOTH_ENABLE_DX11=0
# Common to all configurations
@@ -121,7 +121,7 @@ LIST(APPEND NVCLOTH_COMPILE_DEFS
)
ENDIF()
-IF(DEFINED PX_STATIC_LIBRARIES)
+IF(PX_STATIC_LIBRARIES)
SET(NVCLOTH_LIBTYPE STATIC)
ELSE()
SET(NVCLOTH_LIBTYPE SHARED)
diff --git a/NvCloth/compiler/cmake/mac/NvCloth.cmake b/NvCloth/compiler/cmake/mac/NvCloth.cmake
index 086b508..b5310b1 100644
--- a/NvCloth/compiler/cmake/mac/NvCloth.cmake
+++ b/NvCloth/compiler/cmake/mac/NvCloth.cmake
@@ -17,15 +17,17 @@ SET(NVCLOTH_PLATFORM_INCLUDES
SET(NVCLOTH_PLATFORM_SOURCE_FILES
${PROJECT_ROOT_DIR}/src/ps/unix/PsUnixAtomic.cpp
${PROJECT_ROOT_DIR}/src/ps/unix/PsUnixFPU.h
- #${PROJECT_ROOT_DIR}/src/neon/NeonCollision.cpp
- #${PROJECT_ROOT_DIR}/src/neon/NeonSelfCollision.cpp
- #${PROJECT_ROOT_DIR}/src/neon/NeonSolverKernel.cpp
- #${PROJECT_ROOT_DIR}/src/neon/SwCollisionHelpers.h
)
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=;PX_CALL_CONV=;)
+ELSE()
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=PX_DLL_EXPORT;)
+ENDIF()
+
# Use generator expressions to set config specific preprocessor definitions
SET(NVCLOTH_COMPILE_DEFS
- NV_CLOTH_IMPORT=PX_DLL_EXPORT
+ ${NVCLOTH_API_COMPILE_DEFS}
NV_CLOTH_ENABLE_DX11=0
NV_CLOTH_ENABLE_CUDA=0
@@ -38,7 +40,11 @@ SET(NVCLOTH_COMPILE_DEFS
$<$<CONFIG:release>:${PHYSX_MAC_RELEASE_COMPILE_DEFS};>
)
-SET(NVCLOTH_LIBTYPE SHARED)
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_LIBTYPE STATIC)
+ELSE()
+ SET(NVCLOTH_LIBTYPE SHARED)
+ENDIF()
# include common PhysX settings
INCLUDE(../common/NvCloth.cmake)
diff --git a/NvCloth/compiler/cmake/windows/CMakeLists.txt b/NvCloth/compiler/cmake/windows/CMakeLists.txt
index 30f2a65..64630bf 100644
--- a/NvCloth/compiler/cmake/windows/CMakeLists.txt
+++ b/NvCloth/compiler/cmake/windows/CMakeLists.txt
@@ -25,7 +25,7 @@ SET(CMAKE_SHARED_LINKER_FLAGS_RELEASE " /LTCG")
SET(CMAKE_SHARED_LINKER_FLAGS_PROFILE " /LTCG")
SET(CMAKE_SHARED_LINKER_FLAGS_CHECKED " /LTCG")
-IF(DEFINED STATIC_WINCRT)
+IF(STATIC_WINCRT)
SET(WINCRT_NDEBUG "/MT")
SET(WINCRT_DEBUG "/MTd")
ELSE()
diff --git a/NvCloth/compiler/cmake/windows/NvCloth.cmake b/NvCloth/compiler/cmake/windows/NvCloth.cmake
index 065ea18..7641d1a 100644
--- a/NvCloth/compiler/cmake/windows/NvCloth.cmake
+++ b/NvCloth/compiler/cmake/windows/NvCloth.cmake
@@ -78,10 +78,6 @@ LIST(APPEND NVCLOTH_PLATFORM_SOURCE_FILES
${PROJECT_ROOT_DIR}/src/dx/DxSolverKernelBlob.h
${PROJECT_ROOT_DIR}/src/dx/DxSortKernel.inc
- #${PROJECT_ROOT_DIR}/src/neon/NeonCollision.cpp
- #${PROJECT_ROOT_DIR}/src/neon/NeonSelfCollision.cpp
- #${PROJECT_ROOT_DIR}/src/neon/NeonSolverKernel.cpp
- #${PROJECT_ROOT_DIR}/src/neon/SwCollisionHelpers.h
)
ENDIF()
@@ -134,9 +130,15 @@ DEPENDS ${CUDA_FATBIN}
)
ENDIF()
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=;PX_CALL_CONV=;)
+ELSE()
+ SET(NVCLOTH_API_COMPILE_DEFS NV_CLOTH_IMPORT=PX_DLL_EXPORT;)
+ENDIF()
+
SET(NVCLOTH_COMPILE_DEFS
- NV_CLOTH_IMPORT=PX_DLL_EXPORT
+ ${NVCLOTH_API_COMPILE_DEFS}
$<$<CONFIG:debug>:${NVCLOTH_WINDOWS_DEBUG_COMPILE_DEFS};PX_PHYSX_DLL_NAME_POSTFIX=DEBUG;>
$<$<CONFIG:checked>:${NVCLOTH_WINDOWS_CHECKED_COMPILE_DEFS};PX_PHYSX_DLL_NAME_POSTFIX=CHECKED;>
@@ -162,7 +164,11 @@ LIST(APPEND NVCLOTH_COMPILE_DEFS
)
ENDIF()
-SET(NVCLOTH_LIBTYPE SHARED)
+IF(PX_STATIC_LIBRARIES)
+ SET(NVCLOTH_LIBTYPE STATIC)
+ELSE()
+ SET(NVCLOTH_LIBTYPE SHARED)
+ENDIF()
# include common NvCloth settings
INCLUDE(../common/NvCloth.cmake)