Skip to content

Commit 43f864e

Browse files
moraaaryangfengzzz
authored andcommitted
Mac platform support (intel and arm) (o3de#3)
## What's new? - Added Mac platform support to PhysX 5.1. - New build preset `mac64` added. It supports 64-bit x86_64 architecture with SSE2 SIMD instructions. - New build preset `mac-arm64` added. It supports 64-bit arm architecture with NEON SIMD instructions. - Support for generating PhysX as either static or dynamic libraries. - New Mac platform readme. ## Out of Scope The following points are considered out of scope, they can be added in the future: - Support for PhysX Snippets. - Support for Omniverse Visual Debugger (OmniPVD) . - Support for other architectures: 32-bit x86 ## Known Errors/Limitations - The name of the bin folder for mac-arm64 will appear as `bin\mac.x86_64`. **To fix this nVidia has to modify the CMakeModules package it's downloaded from packman when building PhysX** (NVIDIA-Omniverse#59). The file that needs to be modified is `GetCompilerAndPlatform.cmake`, modifying the mac lines of the `if` condition inside `GetPlatformBinName` function to this: ```` ELSEIF(TARGET_BUILD_PLATFORM STREQUAL "mac") IF(${PX_OUTPUT_ARCH} STREQUAL "x86") SET(RETVAL "mac.x86_${LIBPATH_SUFFIX}") ELSEIF(${PX_OUTPUT_ARCH} STREQUAL "arm") SET(RETVAL "mac.arm64") ENDIF() ```` - Python package used by packman is based on x86_64 architecture and generates the error `dyld[number]: missing symbol called` when run on an arm-based Mac. **To fix this nVidia has to add an ARM python package for mac into the packman scripts** (NVIDIA-Omniverse#60). As a temporary solution, use your system's python adding the environment variable `PM_PYTHON_EXT` before building (for example by adding `export PM_PYTHON_EXT="python3"` into your `.bash_profile` file). - PhysX Systems that require a CUDA capable GPU are not supported in Mac, for example particle system or cloth simulation. ## Testing - Built PhysX 5.1 successfully on mac64 in debug, checked, profile and release using `PX_GENERATE_STATIC_LIBRARIES` set to both true and false. The right output binaries were generated in `bin/mac.x86_64` - Built PhysX 5.1 successfully on mac-arm64 in debug, checked, profile and release using `PX_GENERATE_STATIC_LIBRARIES` set to both true and false. The right output binaries were generated in `bin/mac.arm64` - Built cmake `install` target successfully. It generated the correct output for Mac under `install/mac64` and `install/mac-arm64` folders, only including necessary headers for Mac. - Runtime tested using `Open 3D Engine (O3DE)` with an early integration [branch](https://github.com/aws-lumberyard-dev/o3de/tree/PhysX5Support). The following video shows O3DE running PhysX 5.1 on mac64. https://user-images.githubusercontent.com/27999040/204763960-7fe2763e-c3b1-4c73-a6fb-ad3357ef02d3.mov Signed-off-by: moraaar <[email protected]>
1 parent e12506a commit 43f864e

26 files changed

+1053
-10
lines changed

physx/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ compiler/linux-*
22
compiler/vc*
33
compiler/android*
44
compiler/ios*
5+
compiler/mac*
56
include/PxConfig.h
67
install/
78
.DS_Store

physx/buildtools/cmake_generate_projects.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,10 @@ def getPlatformCMakeParams(self):
247247
outString = outString + ' -DTARGET_BUILD_PLATFORM=mac'
248248
outString = outString + ' -DPX_OUTPUT_ARCH=x86'
249249
return outString
250+
elif self.targetPlatform == 'macArm64':
251+
outString = outString + ' -DTARGET_BUILD_PLATFORM=mac'
252+
outString = outString + ' -DPX_OUTPUT_ARCH=arm'
253+
return outString
250254
elif self.targetPlatform == 'ios64':
251255
outString = outString + ' -DTARGET_BUILD_PLATFORM=ios'
252256
outString = outString + ' -DCMAKE_SYSTEM_NAME=iOS'
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<preset name="mac-arm64" comment="Mac-arm64 Xcode PhysX general settings">
3+
<platform targetPlatform="macArm64" compiler="xcode" />
4+
<CMakeSwitches>
5+
<cmakeSwitch name="PX_GENERATE_STATIC_LIBRARIES" value="True" comment="Generate static libraries" />
6+
<cmakeSwitch name="NV_FORCE_64BIT_SUFFIX" value="True" comment="Force a 64 bit suffix for platforms that don't register properly." />
7+
</CMakeSwitches>
8+
<CMakeParams>
9+
<cmakeParam name="CMAKE_INSTALL_PREFIX" value="install/mac-arm64/PhysX" comment="Install path relative to PhysX SDK root" />
10+
<cmakeParam name="CMAKE_OSX_DEPLOYMENT_TARGET" value="11.0" comment="Mac minimum deployment target" />
11+
</CMakeParams>
12+
</preset>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<preset name="mac64" comment="Mac Xcode PhysX general settings">
3+
<platform targetPlatform="mac64" compiler="xcode" />
4+
<CMakeSwitches>
5+
<cmakeSwitch name="PX_GENERATE_STATIC_LIBRARIES" value="True" comment="Generate static libraries" />
6+
<cmakeSwitch name="NV_FORCE_64BIT_SUFFIX" value="True" comment="Force a 64 bit suffix for platforms that don't register properly." />
7+
</CMakeSwitches>
8+
<CMakeParams>
9+
<cmakeParam name="CMAKE_INSTALL_PREFIX" value="install/mac64/PhysX" comment="Install path relative to PhysX SDK root" />
10+
<cmakeParam name="CMAKE_OSX_DEPLOYMENT_TARGET" value="11.0" comment="macOS minimum deployment target" />
11+
</CMakeParams>
12+
</preset>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# NVIDIA PhysX SDK for Mac
2+
3+
## Location of Binaries:
4+
5+
* SDK libraries: bin/mac.x86_64, bin/mac.arm64
6+
7+
## Required packages to generate projects:
8+
9+
* CMake, minimum version 3.20
10+
* Python, minimum version 3.5
11+
* XCode, minimum version 12
12+
13+
### Notes
14+
* Packman script uses 'realpath' command. It can be installed via homebrew by running the command 'brew install coreutils'.
15+
* Python package used by packman is based on x86_x64 architecture and generates the error "dyld[number]: missing symbol called" when run on an arm-based Mac. To use your system's python add the environment variable PM_PYTHON_EXT (for example by adding 'export PM_PYTHON_EXT="python3"' into your .bash_profile file).
16+
17+
## Generating Makefiles:
18+
19+
* Makefiles are generated through a script in physx root directory: generate_projects.sh
20+
* Script generate_projects.bat expects a preset name as a parameter, if a parameter is not provided it does list the available presets and you can select one.
21+
* Supported presets for Mac platform are: mac64, mac-arm64.
22+
* Generated solutions are in folder compiler/mac64, compiler/mac-arm64.
23+
24+
## Building SDK:
25+
26+
* XCode projects are in compiler/mac64, compiler/mac-arm64.
27+
* Build solution: cmake --build . --config (debug|checked|profile|release)
28+
29+
## Limitations:
30+
31+
* PhysX Snippets are not supported.
32+
* PhysX Systems that require a CUDA capable GPU are not supported, for example particle system or cloth simulation.
33+
* Omniverse Visual Debugger (OmniPVD) is not supported.

physx/include/foundation/PxFPU.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ PX_FOUNDATION_API void PxDisableFPExceptions();
8484

8585
#if PX_WINDOWS_FAMILY
8686
#include "foundation/windows/PxWindowsFPU.h"
87-
#elif (PX_LINUX && PX_SSE2) || PX_OSX
87+
#elif ((PX_LINUX || PX_OSX) && PX_SSE2)
8888
#include "foundation/unix/PxUnixFPU.h"
8989
#else
9090
PX_INLINE physx::PxSIMDGuard::PxSIMDGuard(bool)

physx/include/foundation/PxVecMath.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
#define COMPILE_VECTOR_INTRINSICS 1
5454
#elif PX_IOS && PX_NEON
5555
#define COMPILE_VECTOR_INTRINSICS 1
56+
#elif PX_OSX && PX_NEON
57+
#define COMPILE_VECTOR_INTRINSICS 1
5658
#elif PX_SWITCH
5759
#define COMPILE_VECTOR_INTRINSICS 1
5860
#else
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
## Redistribution and use in source and binary forms, with or without
2+
## modification, are permitted provided that the following conditions
3+
## are met:
4+
## * Redistributions of source code must retain the above copyright
5+
## notice, this list of conditions and the following disclaimer.
6+
## * Redistributions in binary form must reproduce the above copyright
7+
## notice, this list of conditions and the following disclaimer in the
8+
## documentation and/or other materials provided with the distribution.
9+
## * Neither the name of NVIDIA CORPORATION nor the names of its
10+
## contributors may be used to endorse or promote products derived
11+
## from this software without specific prior written permission.
12+
##
13+
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
14+
## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15+
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16+
## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17+
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18+
## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19+
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20+
## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21+
## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
##
25+
## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved.
26+
27+
IF(PX_OUTPUT_ARCH STREQUAL "arm")
28+
SET(OSX_BITNESS "-arch arm64")
29+
SET(CMAKE_OSX_ARCHITECTURES "arm64")
30+
SET(ARCH_SIMD_FLAG "") # No flags needed to enable NEON
31+
ELSE()
32+
SET(OSX_BITNESS "-arch x86_64")
33+
SET(CMAKE_OSX_ARCHITECTURES "x86_64")
34+
SET(ARCH_SIMD_FLAG "-msse2")
35+
ENDIF()
36+
37+
SET(PHYSX_CXX_FLAGS "${OSX_BITNESS} ${ARCH_SIMD_FLAG} -std=c++11 -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -Wno-unknown-warning-option -Wno-documentation-deprecated-sync -Wno-documentation-unknown-command -Wno-float-equal -Wno-padded -Wno-weak-vtables -Wno-cast-align -Wno-conversion -Wno-missing-noreturn -Wno-missing-variable-declarations -Wno-shift-sign-overflow -Wno-covered-switch-default -Wno-exit-time-destructors -Wno-global-constructors -Wno-missing-prototypes -Wno-unreachable-code -Wno-unused-macros -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-weak-template-vtables -Wno-deprecated -Wno-non-virtual-dtor -Wno-invalid-noreturn -Wno-return-type-c-linkage -Wno-reserved-id-macro -Wno-c++98-compat-pedantic -Wno-unused-local-typedef -Wno-old-style-cast -Wno-newline-eof -Wno-unused-private-field -Wno-undefined-reinterpret-cast -Wno-invalid-offsetof -Wno-zero-as-null-pointer-constant -Wno-atomic-implicit-seq-cst -Wno-suggest-destructor-override -Wno-suggest-override -Wno-alloca -Wno-switch-enum -Wno-unused-but-set-variable -Wno-shadow-field -gdwarf-2" CACHE INTERNAL "PhysX CXX")
38+
39+
SET(CMAKE_SHARED_LINKER_FLAGS_CHECKED "")
40+
SET(CMAKE_SHARED_LINKER_FLAGS_PROFILE "")
41+
SET(CMAKE_SHARED_LINKER_FLAGS "")
42+
43+
# Build debug info for all configurations
44+
SET(PHYSX_CXX_FLAGS_DEBUG "-O0 -g" CACHE INTERNAL "PhysX Debug CXX Flags")
45+
SET(PHYSX_CXX_FLAGS_CHECKED "-O3 -g" CACHE INTERNAL "PhysX Checked CXX Flags")
46+
SET(PHYSX_CXX_FLAGS_PROFILE "-O3 -g" CACHE INTERNAL "PhysX Profile CXX Flags")
47+
SET(PHYSX_CXX_FLAGS_RELEASE "-O3 -g" CACHE INTERNAL "PhysX Release CXX Flags")
48+
49+
# These flags are local to the directory the CMakeLists.txt is in
50+
SET(CMAKE_CXX_FLAGS ${PHYSX_CXX_FLAGS})
51+
52+
SET(CMAKE_CXX_FLAGS_DEBUG ${PHYSX_CXX_FLAGS_DEBUG})
53+
SET(CMAKE_CXX_FLAGS_CHECKED ${PHYSX_CXX_FLAGS_CHECKED})
54+
SET(CMAKE_CXX_FLAGS_PROFILE ${PHYSX_CXX_FLAGS_PROFILE})
55+
SET(CMAKE_CXX_FLAGS_RELEASE ${PHYSX_CXX_FLAGS_RELEASE})
56+
57+
IF(PUBLIC_RELEASE)
58+
SET(PUBLIC_RELEASE_FLAG "PX_PUBLIC_RELEASE=1")
59+
ELSE()
60+
SET(PUBLIC_RELEASE_FLAG "PX_PUBLIC_RELEASE=0")
61+
ENDIF()
62+
63+
#set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
64+
65+
# Controls PX_NVTX for all projects on Mac
66+
SET(NVTX_FLAG "PX_NVTX=0")
67+
68+
# Disable OmniPVD for all projects on Mac
69+
SET(PX_SUPPORT_OMNI_PVD_FLAG "PX_SUPPORT_OMNI_PVD=0")
70+
71+
# Disable cuda for all projects
72+
SET(PHYSX_MAC_COMPILE_DEFS "DISABLE_CUDA_PHYSX;${PHYSX_AUTOBUILD};${PUBLIC_RELEASE_FLAG};${FEATURES_UNDER_CONSTRUCTION_FLAG}" CACHE INTERNAL "Base PhysX preprocessor definitions")
73+
SET(PHYSX_MAC_DEBUG_COMPILE_DEFS "_DEBUG;PX_DEBUG=1;PX_CHECKED=1;${NVTX_FLAG};PX_SUPPORT_PVD=1;${PX_SUPPORT_OMNI_PVD_FLAG}" CACHE INTERNAL "Debug PhysX preprocessor definitions")
74+
SET(PHYSX_MAC_CHECKED_COMPILE_DEFS "NDEBUG;PX_CHECKED=1;${NVTX_FLAG};PX_SUPPORT_PVD=1;${PX_SUPPORT_OMNI_PVD_FLAG}" CACHE INTERNAL "Checked PhysX preprocessor definitions")
75+
SET(PHYSX_MAC_PROFILE_COMPILE_DEFS "NDEBUG;PX_PROFILE=1;${NVTX_FLAG};PX_SUPPORT_PVD=1;${PX_SUPPORT_OMNI_PVD_FLAG}" CACHE INTERNAL "Profile PhysX preprocessor definitions")
76+
SET(PHYSX_MAC_RELEASE_COMPILE_DEFS "NDEBUG;PX_SUPPORT_PVD=0;PX_SUPPORT_OMNI_PVD=0" CACHE INTERNAL "Release PhysX preprocessor definitions")
77+
78+
79+
# Include all of the projects
80+
INCLUDE(PhysXFoundation.cmake)
81+
INCLUDE(LowLevel.cmake)
82+
INCLUDE(LowLevelAABB.cmake)
83+
INCLUDE(LowLevelDynamics.cmake)
84+
INCLUDE(PhysX.cmake)
85+
INCLUDE(PhysXCharacterKinematic.cmake)
86+
INCLUDE(PhysXCommon.cmake)
87+
INCLUDE(PhysXCooking.cmake)
88+
INCLUDE(PhysXExtensions.cmake)
89+
INCLUDE(PhysXVehicle.cmake)
90+
INCLUDE(PhysXVehicle2.cmake)
91+
INCLUDE(PhysXPvdSDK.cmake)
92+
INCLUDE(PhysXTask.cmake)
93+
INCLUDE(SceneQuery.cmake)
94+
INCLUDE(SimulationController.cmake)
95+
INCLUDE(FastXml.cmake)
96+
97+
# Set folder PhysX SDK to all common SDK source projects
98+
SET_PROPERTY(TARGET PhysX PROPERTY FOLDER "PhysX SDK")
99+
SET_PROPERTY(TARGET PhysXCharacterKinematic PROPERTY FOLDER "PhysX SDK")
100+
SET_PROPERTY(TARGET PhysXCommon PROPERTY FOLDER "PhysX SDK")
101+
SET_PROPERTY(TARGET PhysXCooking PROPERTY FOLDER "PhysX SDK")
102+
SET_PROPERTY(TARGET PhysXExtensions PROPERTY FOLDER "PhysX SDK")
103+
SET_PROPERTY(TARGET PhysXVehicle PROPERTY FOLDER "PhysX SDK")
104+
SET_PROPERTY(TARGET PhysXVehicle2 PROPERTY FOLDER "PhysX SDK")
105+
SET_PROPERTY(TARGET LowLevel PROPERTY FOLDER "PhysX SDK")
106+
SET_PROPERTY(TARGET LowLevelAABB PROPERTY FOLDER "PhysX SDK")
107+
SET_PROPERTY(TARGET LowLevelDynamics PROPERTY FOLDER "PhysX SDK")
108+
SET_PROPERTY(TARGET SceneQuery PROPERTY FOLDER "PhysX SDK")
109+
SET_PROPERTY(TARGET SimulationController PROPERTY FOLDER "PhysX SDK")
110+
SET_PROPERTY(TARGET FastXml PROPERTY FOLDER "PhysX SDK")
111+
SET_PROPERTY(TARGET PhysXPvdSDK PROPERTY FOLDER "PhysX SDK")
112+
SET_PROPERTY(TARGET PhysXTask PROPERTY FOLDER "PhysX SDK")
113+
SET_PROPERTY(TARGET PhysXFoundation PROPERTY FOLDER "PhysX SDK")
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
## Redistribution and use in source and binary forms, with or without
2+
## modification, are permitted provided that the following conditions
3+
## are met:
4+
## * Redistributions of source code must retain the above copyright
5+
## notice, this list of conditions and the following disclaimer.
6+
## * Redistributions in binary form must reproduce the above copyright
7+
## notice, this list of conditions and the following disclaimer in the
8+
## documentation and/or other materials provided with the distribution.
9+
## * Neither the name of NVIDIA CORPORATION nor the names of its
10+
## contributors may be used to endorse or promote products derived
11+
## from this software without specific prior written permission.
12+
##
13+
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
14+
## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15+
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16+
## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17+
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18+
## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19+
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20+
## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21+
## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
##
25+
## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved.
26+
27+
#
28+
# Build FastXml
29+
#
30+
31+
32+
# Use generator expressions to set config specific preprocessor definitions
33+
SET(FASTXML_COMPILE_DEFS
34+
35+
# Common to all configurations
36+
${PHYSX_MAC_COMPILE_DEFS};
37+
38+
$<$<CONFIG:debug>:${PHYSX_MAC_DEBUG_COMPILE_DEFS};>
39+
$<$<CONFIG:checked>:${PHYSX_MAC_CHECKED_COMPILE_DEFS};>
40+
$<$<CONFIG:profile>:${PHYSX_MAC_PROFILE_COMPILE_DEFS};>
41+
$<$<CONFIG:release>:${PHYSX_MAC_RELEASE_COMPILE_DEFS};>
42+
)
43+
44+
SET(FASTXML_LIBTYPE OBJECT)
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
## Redistribution and use in source and binary forms, with or without
2+
## modification, are permitted provided that the following conditions
3+
## are met:
4+
## * Redistributions of source code must retain the above copyright
5+
## notice, this list of conditions and the following disclaimer.
6+
## * Redistributions in binary form must reproduce the above copyright
7+
## notice, this list of conditions and the following disclaimer in the
8+
## documentation and/or other materials provided with the distribution.
9+
## * Neither the name of NVIDIA CORPORATION nor the names of its
10+
## contributors may be used to endorse or promote products derived
11+
## from this software without specific prior written permission.
12+
##
13+
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
14+
## EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15+
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16+
## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17+
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18+
## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19+
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20+
## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21+
## OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
##
25+
## Copyright (c) 2008-2022 NVIDIA Corporation. All rights reserved.
26+
27+
#
28+
# Build LowLevel
29+
#
30+
SET(LOWLEVEL_PLATFORM_INCLUDES
31+
${PHYSX_SOURCE_DIR}/Common/src/mac
32+
${PHYSX_SOURCE_DIR}/LowLevel/software/include/mac
33+
${PHYSX_SOURCE_DIR}/LowLevelDynamics/include/mac
34+
${PHYSX_SOURCE_DIR}/LowLevel/common/include/pipeline/mac
35+
)
36+
37+
SET(LOWLEVEL_COMPILE_DEFS
38+
# Common to all configurations
39+
${PHYSX_MAC_COMPILE_DEFS};PX_PHYSX_STATIC_LIB
40+
41+
$<$<CONFIG:debug>:${PHYSX_MAC_DEBUG_COMPILE_DEFS};>
42+
$<$<CONFIG:checked>:${PHYSX_MAC_CHECKED_COMPILE_DEFS};>
43+
$<$<CONFIG:profile>:${PHYSX_MAC_PROFILE_COMPILE_DEFS};>
44+
$<$<CONFIG:release>:${PHYSX_MAC_RELEASE_COMPILE_DEFS};>
45+
)
46+
47+
SET(LOWLEVEL_PLATFORM_LINK_FLAGS " ")
48+
49+
SET(LOWLEVEL_LIBTYPE OBJECT)
50+

0 commit comments

Comments
 (0)