Skip to content

Commit e05bcd7

Browse files
committed
Add CMake support
Adopt NVIDIAGameWorks/PhysX#222
1 parent 15465c0 commit e05bcd7

File tree

5 files changed

+321
-53
lines changed

5 files changed

+321
-53
lines changed

physx/CMakeLists.txt

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
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+
cmake_minimum_required(VERSION 3.13)
28+
project(PhysX C CXX)
29+
cmake_policy(SET CMP0057 NEW) # Enable IN_LIST
30+
cmake_policy(SET CMP0077 NEW) # option() does nothing when variable is alredy set
31+
32+
# PhysXSDK options:
33+
option(PX_BUILDSNIPPETS "Generate the snippets" OFF)
34+
option(PX_CMAKE_SUPPRESS_REGENERATION "Disable zero_check projects" OFF)
35+
36+
# PhysX options:
37+
option(PX_SCALAR_MATH "Disable SIMD math" OFF)
38+
option(PX_GENERATE_STATIC_LIBRARIES "Generate static libraries" OFF)
39+
option(PX_EXPORT_LOWLEVEL_PDB "Export low level pdb's" OFF)
40+
option(PX_GENERATE_GPU_PROJECTS_ONLY "Generate GPU projects only. (Untested)" OFF)
41+
mark_as_advanced(PX_GENERATE_GPU_PROJECTS_ONLY)
42+
43+
set(PUBLIC_RELEASE OFF)
44+
45+
# Enable folder properties
46+
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
47+
48+
if(CMAKE_CONFIGURATION_TYPES)
49+
set(CMAKE_CONFIGURATION_TYPES debug checked profile release)
50+
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING
51+
"Reset config to what we need"
52+
FORCE)
53+
54+
set(CMAKE_SHARED_LINKER_FLAGS_CHECKED "")
55+
set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "")
56+
57+
# XXX(phcerdan) PDB are not for consumers, ignore this line
58+
# Build PDBs for all configurations.
59+
# set(CMAKE_SHARED_LINKER_FLAGS "/DEBUG")
60+
endif()
61+
62+
# Disable zero_check projects. The default for Switch and XboxOne is ON.
63+
if(PX_CMAKE_SUPPRESS_REGENERATION)
64+
set(CMAKE_SUPPRESS_REGENERATION TRUE)
65+
endif()
66+
67+
### Set PHYSX_ROOT_DIR to PROJECT_SOURCE_DIR
68+
if(DEFINED PHYSX_ROOT_DIR)
69+
message(WARNING "PHYSX_ROOT_DIR is externally defined, but it will be overwritten in this CMakeLists. DEPRECATED")
70+
message("PHYSX_ROOT_DIR (externally set --not used--): ${PHYSX_ROOT_DIR}")
71+
message("PHYSX_ROOT_DIR (currently set): ${PROJECT_SOURCE_DIR}")
72+
endif()
73+
set(PHYSX_ROOT_DIR ${PROJECT_SOURCE_DIR})
74+
75+
### Set TARGET_BUILD_PLATFORM using CMAKE_SYSTEM_NAME
76+
# for compatibility with current CMake files,
77+
# for cross-complation, CMAKE_SYSTEM_NAME can be set when running cmake
78+
if(DEFINED TARGET_BUILD_PLATFORM)
79+
if(TARGET_BUILD_PLATFORM STREQUAL "switch" OR
80+
TARGET_BUILD_PLATFORM STREQUAL "playstation" OR
81+
TARGET_BUILD_PLATFORM STREQUAL "ios")
82+
message(FATAL_ERROR "switch, playstation and ios builds are not valid because have not been tested. Use official repository for these.")
83+
endif()
84+
message(INFO "TARGET_BUILD_PLATFORM (externally set --not used--): ${TARGET_BUILD_PLATFORM}")
85+
endif()
86+
87+
set(TARGET_BUILD_PLATFORM "")
88+
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
89+
set(TARGET_BUILD_PLATFORM "windows")
90+
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
91+
set(TARGET_BUILD_PLATFORM "linux")
92+
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
93+
set(TARGET_BUILD_PLATFORM "mac")
94+
elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
95+
set(TARGET_BUILD_PLATFORM "android")
96+
endif()
97+
98+
### Set CMake folders
99+
set(CMAKEMODULES_PATH ${PROJECT_SOURCE_DIR}/../externals/cmakemodules/ CACHE INTERNAL "Path to CMakeModules")
100+
set(CMAKEMODULES_NAME "CMakeModules" CACHE INTERNAL "CMakeModules name")
101+
set(CMAKEMODULES_VERSION "1.27" CACHE INTERNAL "CMakeModules version from generation batch")
102+
# CMAKE_MODULE_PATH is empty by default
103+
list(APPEND CMAKE_MODULE_PATH ${CMAKEMODULES_PATH})
104+
105+
### Set platform specific files
106+
set(PROJECT_CMAKE_FILES_DIR source/compiler/cmake)
107+
# The following files define all the flags specific to platforms, compilers and build configurations.
108+
# The file is included in the source/ subdirectory
109+
set(PLATFORM_CMAKE_FILES_DIR "${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}")
110+
set(PLATFORM_CMAKELISTS "${PLATFORM_CMAKE_FILES_DIR}/CMakeLists.txt")
111+
112+
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
113+
114+
# INSTALL PATHS
115+
if(WIN32)
116+
SET(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/../install/windows/PhysX")
117+
elseif(APPLE)
118+
SET(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/../install/mac/PhysX")
119+
else()
120+
SET(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/../install/linux/PhysX")
121+
endif()
122+
SET(PHYSX_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/PhysX CACHE INTERNAL "Install path to install PhysX")
123+
MESSAGE(STATUS "PHYSX_INSTALL_PREFIX: " ${PHYSX_INSTALL_PREFIX})
124+
125+
# Set PX_ROOT_LIB_DIR (used in cmake files)
126+
string(TOLOWER ${CMAKE_C_COMPILER_ID} compiler_id)
127+
# No need to add TARGET_BUILD_PLATFORM and compiler_id in the folder structure
128+
# set(PX_ROOT_LIB_DIR "${PHYSX_INSTALL_PREFIX}/bin/${TARGET_BUILD_PLATFORM}\.${compiler_id}")
129+
set(PX_ROOT_LIB_DIR "${PHYSX_INSTALL_PREFIX}/bin")
130+
131+
# We add CMakeLists.txt in the source folders, following standard CMake practices
132+
# Add PhysX SDK Source code to solution
133+
set(BUILD_SOURCE_FOLDER ${CMAKE_CURRENT_BINARY_DIR}/sdk_source_bin)
134+
add_subdirectory(source ${BUILD_SOURCE_FOLDER})
135+
136+
if(PX_BUILDSNIPPETS)
137+
# TODO(phcerdan) this is the part to simplify
138+
# Add Snippets projects into the solution
139+
add_subdirectory(${PHYSX_ROOT_DIR}/snippets/compiler/cmake ${CMAKE_CURRENT_BINARY_DIR}/sdk_snippets_bin)
140+
141+
message("Added Snippets")
142+
endif()

physx/source/CMakeLists.txt

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
MESSAGE(STATUS "PhysX Build Platform: " ${TARGET_BUILD_PLATFORM})
2+
MESSAGE(STATUS " CXX Compiler: " ${CMAKE_CXX_COMPILER})
3+
4+
# Avoid including NvidiaBuildOptions: {{{
5+
option(NV_USE_STATIC_WINCRT "Use the statically linked windows CRT" ON)
6+
mark_as_advanced(NV_USE_STATIC_WINCRT)
7+
option(NV_USE_DEBUG_WINCRT "Use the debug version of the CRT" OFF)
8+
mark_as_advanced(NV_USE_DEBUG_WINCRT)
9+
set(NV_USE_GAMEWORKS_OUTPUT_DIRS ON)
10+
11+
include(GetCompilerAndPlatform)
12+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
13+
set(LIBPATH_SUFFIX "64")
14+
# Set default exe suffix. Unset on platforms that don't need it. Include underscore since it's optional
15+
set(EXE_SUFFIX "_64")
16+
set(RESOURCE_LIBPATH_SUFFIX "x64")
17+
else()
18+
set(LIBPATH_SUFFIX "32")
19+
# Set default exe suffix. Unset on platforms that don't need it. Include underscore since it's optional
20+
set(EXE_SUFFIX "_32")
21+
set(RESOURCE_LIBPATH_SUFFIX "x86")
22+
endif()
23+
# Set the WINCRT_DEBUG and WINCRT_NDEBUG variables for use in project compile settings
24+
# Really only relevant to windows
25+
set(DISABLE_ITERATOR_DEBUGGING "/D \"_HAS_ITERATOR_DEBUGGING=0\" /D \"_ITERATOR_DEBUG_LEVEL=0\"")
26+
set(DISABLE_ITERATOR_DEBUGGING_CUDA "-D_HAS_ITERATOR_DEBUGGING=0 -D_ITERATOR_DEBUG_LEVEL=0")
27+
set(CRT_DEBUG_FLAG "/D \"_DEBUG\"")
28+
set(CRT_NDEBUG_FLAG "/D \"NDEBUG\"")
29+
# Need a different format for CUDA
30+
set(CUDA_DEBUG_FLAG "-DNDEBUG ${DISABLE_ITERATOR_DEBUGGING_CUDA}")
31+
set(CUDA_NDEBUG_FLAG "-DNDEBUG")
32+
IF(NV_USE_STATIC_WINCRT)
33+
SET(WINCRT_NDEBUG "/MT ${DISABLE_ITERATOR_DEBUGGING} ${CRT_NDEBUG_FLAG}" CACHE INTERNAL "Windows CRT build setting")
34+
SET(CUDA_CRT_COMPILE_OPTIONS_NDEBUG "/MT")
35+
36+
IF (NV_USE_DEBUG_WINCRT)
37+
SET(CUDA_DEBUG_FLAG "-D_DEBUG")
38+
SET(WINCRT_DEBUG "/MTd ${CRT_DEBUG_FLAG}" CACHE INTERNAL "Windows CRT build setting")
39+
SET(CUDA_CRT_COMPILE_OPTIONS_DEBUG "/MTd")
40+
ELSE()
41+
SET(WINCRT_DEBUG "/MT ${DISABLE_ITERATOR_DEBUGGING} ${CRT_NDEBUG_FLAG}" CACHE INTERNAL "Windows CRT build setting")
42+
SET(CUDA_CRT_COMPILE_OPTIONS_DEBUG "/MT")
43+
ENDIF()
44+
ELSE()
45+
SET(WINCRT_NDEBUG "/MD ${DISABLE_ITERATOR_DEBUGGING} ${CRT_NDEBUG_FLAG}")
46+
SET(CUDA_CRT_COMPILE_OPTIONS_NDEBUG "/MD")
47+
48+
IF(NV_USE_DEBUG_WINCRT)
49+
SET(CUDA_DEBUG_FLAG "-D_DEBUG")
50+
SET(WINCRT_DEBUG "/MDd ${CRT_DEBUG_FLAG}" CACHE INTERNAL "Windows CRT build setting")
51+
SET(CUDA_CRT_COMPILE_OPTIONS_DEBUG "/MDd")
52+
ELSE()
53+
SET(WINCRT_DEBUG "/MD ${DISABLE_ITERATOR_DEBUGGING} ${CRT_NDEBUG_FLAG}" CACHE INTERNAL "Windows CRT build setting")
54+
SET(CUDA_CRT_COMPILE_OPTIONS_DEBUG "/MD")
55+
ENDIF()
56+
ENDIF()
57+
58+
# platform_bin_name is of type linux.clang, win.x86_64.vc140 etc.
59+
GetPlatformBinName(PLATFORM_BIN_NAME ${LIBPATH_SUFFIX})
60+
message(STATUS "PLATFORM_BIN_NAME: ${PLATFORM_BIN_NAME}")
61+
# }}} End NvidiaBuildOptions replacement
62+
63+
set(physx_build_targets_file "${CMAKE_CURRENT_BINARY_DIR}/PhysXTargets.cmake")
64+
set(install_cmake_dir "${PX_ROOT_LIB_DIR}/cmake/physx")
65+
66+
# Include the platform specific CMakeLists
67+
message(STATUS "PLATFORM_CMAKELISTS: ${PLATFORM_CMAKELISTS}")
68+
include(${PLATFORM_CMAKELISTS})
69+
70+
# generate PxPhysXConfig.h header that will contain PhysX configuration defines like PX_PHYSX_STATIC_LIB
71+
# XXX(phcerdan) the template is actually empty? Maybe populated after? No harm having an empty header meanwhile.
72+
SET(HEADER_GUARD_NAME "CONFIG")
73+
SET(HEADER_CONTENT "")
74+
configure_file(${CMAKEMODULES_PATH}/template/PxIncludeTemplate.h ${PHYSX_ROOT_DIR}/include/PxConfig.h)
75+
76+
### Move libPhysXGPU from source tree to build and install tree:
77+
# libPhysXGPU libraries are in the repository (/bin) but the CUDA code is not open
78+
# XXX(phcerdan) Nvidia does not provides GNU (gcc) GPU libaries, only clang.
79+
# XXX(phcerdan) I guess both compilers are ABI compatible, but not explicitly tested in this codebase
80+
# XXX(phcerdan) GCC in linux is not an option right now upstream
81+
82+
include(GetCompilerAndPlatform)
83+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
84+
set(LIBPATH_SUFFIX "64")
85+
# Set default exe suffix. Unset on platforms that don't need it. Include underscore since it's optional
86+
set(EXE_SUFFIX "_64")
87+
else()
88+
set(LIBPATH_SUFFIX "32")
89+
# Set default exe suffix. Unset on platforms that don't need it. Include underscore since it's optional
90+
set(EXE_SUFFIX "_32")
91+
endif()
92+
# platform_bin_name is of type linux.clang, win.x86_64.vc140 etc.
93+
GetPlatformBinName(PLATFORM_BIN_NAME ${LIBPATH_SUFFIX})
94+
message(STATUS "PLATFORM_BIN_NAME: ${PLATFORM_BIN_NAME}")
95+
96+
# set(gpu_source_libs_folder "${CMAKE_SOURCE_DIR}/bin/${PLATFORM_BIN_NAME}/$<CONFIG>")
97+
# set(gpu_source_libs_folder "${CMAKE_SOURCE_DIR}/bin/${PLATFORM_BIN_NAME}/${CMAKE_BUILD_TYPE}")
98+
# Build tree
99+
# file(COPY ${CMAKE_SOURCE_DIR}/bin/${PLATFORM_BIN_NAME}/$<CONFIG>
100+
# DESTINATION "${BUILD_SOURCE_FOLDER}")
101+
# Install tree
102+
install(FILES ${CMAKE_SOURCE_DIR}/bin/${PLATFORM_BIN_NAME}/$<CONFIG>
103+
# DESTINATION "${PHYSX_INSTALL_PREFIX}/bin/${CMAKE_BUILD_TYPE}")
104+
DESTINATION "${PHYSX_INSTALL_PREFIX}/bin/$<CONFIG>")
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@PACKAGE_INIT@
2+
3+
include(CMakeFindDependencyMacro)
4+
5+
# get_filename_component(PhysX_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
6+
if(NOT TARGET PhysX)
7+
include ("@PACKAGE_PhysX_TARGETS_FILE@")
8+
endif()

physx/source/compiler/cmake/linux/CMakeLists.txt

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -158,42 +158,42 @@ ENDIF()
158158

159159
# Include all of the projects
160160
IF(PX_GENERATE_GPU_PROJECTS_ONLY)
161-
INCLUDE(PhysXCommon.cmake)
162-
INCLUDE(PhysXFoundation.cmake)
163-
INCLUDE(LowLevelAABB.cmake)
161+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXCommon.cmake)
162+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXFoundation.cmake)
163+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/LowLevelAABB.cmake)
164164

165165
SET_PROPERTY(TARGET PhysXCommon PROPERTY FOLDER "PhysX SDK")
166166
SET_PROPERTY(TARGET PhysXFoundation PROPERTY FOLDER "PhysX SDK")
167167
ELSE()
168-
INCLUDE(PhysXFoundation.cmake)
169-
INCLUDE(LowLevel.cmake)
170-
INCLUDE(LowLevelAABB.cmake)
171-
INCLUDE(LowLevelDynamics.cmake)
172-
INCLUDE(PhysX.cmake)
173-
INCLUDE(PhysXCharacterKinematic.cmake)
174-
INCLUDE(PhysXCommon.cmake)
175-
INCLUDE(PhysXCooking.cmake)
176-
INCLUDE(PhysXExtensions.cmake)
177-
IF(NOT ${CMAKE_CROSSCOMPILING} AND NOT PUBLIC_RELEASE)
178-
INCLUDE(PhysXGPUExtensions.cmake)
179-
ENDIF()
180-
INCLUDE(PhysXVehicle.cmake)
181-
INCLUDE(PhysXVehicle2.cmake)
182-
INCLUDE(SceneQuery.cmake)
183-
INCLUDE(SimulationController.cmake)
184-
INCLUDE(FastXml.cmake)
185-
INCLUDE(PhysXPvdSDK.cmake)
186-
INCLUDE(PhysXTask.cmake)
168+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXFoundation.cmake)
169+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/LowLevel.cmake)
170+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/LowLevelAABB.cmake)
171+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/LowLevelDynamics.cmake)
172+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysX.cmake)
173+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXCharacterKinematic.cmake)
174+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXCommon.cmake)
175+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXCooking.cmake)
176+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXExtensions.cmake)
177+
#IF(NOT ${CMAKE_CROSSCOMPILING} AND NOT PUBLIC_RELEASE)
178+
# INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXGPUExtensions.cmake)
179+
#ENDIF()
180+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXVehicle.cmake)
181+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXVehicle2.cmake)
182+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/SceneQuery.cmake)
183+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/SimulationController.cmake)
184+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/FastXml.cmake)
185+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXPvdSDK.cmake)
186+
INCLUDE(${PHYSX_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/PhysXTask.cmake)
187187

188188
# Set folder PhysX SDK to all common SDK source projects
189189
SET_PROPERTY(TARGET PhysX PROPERTY FOLDER "PhysX SDK")
190190
SET_PROPERTY(TARGET PhysXCharacterKinematic PROPERTY FOLDER "PhysX SDK")
191191
SET_PROPERTY(TARGET PhysXCommon PROPERTY FOLDER "PhysX SDK")
192192
SET_PROPERTY(TARGET PhysXCooking PROPERTY FOLDER "PhysX SDK")
193193
SET_PROPERTY(TARGET PhysXExtensions PROPERTY FOLDER "PhysX SDK")
194-
IF(NOT ${CMAKE_CROSSCOMPILING} AND NOT PUBLIC_RELEASE)
195-
SET_PROPERTY(TARGET PhysXGPUExtensions PROPERTY FOLDER "PhysX SDK")
196-
ENDIF()
194+
#IF(NOT ${CMAKE_CROSSCOMPILING} AND NOT PUBLIC_RELEASE)
195+
# SET_PROPERTY(TARGET PhysXGPUExtensions PROPERTY FOLDER "PhysX SDK")
196+
#ENDIF()
197197
SET_PROPERTY(TARGET PhysXVehicle PROPERTY FOLDER "PhysX SDK")
198198
SET_PROPERTY(TARGET PhysXVehicle2 PROPERTY FOLDER "PhysX SDK")
199199
SET_PROPERTY(TARGET LowLevel PROPERTY FOLDER "PhysX SDK")
@@ -214,8 +214,14 @@ ENDIF()
214214

215215
INSTALL(
216216
TARGETS ${PHYSXDISTRO_LIBS}
217-
EXPORT PhysXSDK
217+
EXPORT PhysX
218218
DESTINATION $<$<CONFIG:debug>:${PX_ROOT_LIB_DIR}/debug>$<$<CONFIG:release>:${PX_ROOT_LIB_DIR}/release>$<$<CONFIG:checked>:${PX_ROOT_LIB_DIR}/checked>$<$<CONFIG:profile>:${PX_ROOT_LIB_DIR}/profile>
219219
)
220+
if(DEFINED physx_build_targets_file)
221+
# export to the build tree
222+
EXPORT( TARGETS ${PHYSXDISTRO_LIBS}
223+
NAMESPACE PhysX::
224+
FILE ${physx_build_targets_file})
225+
endif()
220226

221227
ENDIF()

0 commit comments

Comments
 (0)