diff options
Diffstat (limited to 'NvCloth/compiler')
| -rw-r--r-- | NvCloth/compiler/cmake/android/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | NvCloth/compiler/cmake/android/NvCloth.cmake | 33 | ||||
| -rw-r--r-- | NvCloth/compiler/cmake/ios/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | NvCloth/compiler/cmake/ios/NvCloth.cmake | 25 | ||||
| -rw-r--r-- | NvCloth/compiler/cmake/linux/NvCloth.cmake | 14 | ||||
| -rw-r--r-- | NvCloth/compiler/cmake/mac/NvCloth.cmake | 18 | ||||
| -rw-r--r-- | NvCloth/compiler/cmake/windows/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | NvCloth/compiler/cmake/windows/NvCloth.cmake | 18 |
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) |