Files
PhysX4.1/CMakeLists.txt
2025-11-28 23:16:33 +05:30

82 lines
2.4 KiB
CMake

# ---------------------------------------------------
# This file is NOT an official part of the PhysX SDK,
# but rather a crude, quick'n'dirty CMake port by IA!
# ---------------------------------------------------
cmake_minimum_required(VERSION 3.28 FATAL_ERROR)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
project(PhysX4_1_PortIA)
if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
if(Win32)
message(FATAL_ERROR "Please use Clang Tools for MSVC when compiling this project on Windows platforms!")
else()
message(FATAL_ERROR "Please use Clang when compiling this project!")
endif()
endif()
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
message(STATUS "Configuring PhysX for Debug..")
set(CONFIG "debug")
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
message(STATUS "Configuring PhysX for Release..")
set(CONFIG "release")
else()
message(FATAL_ERROR "Unknown CMAKE_BUILD_TYPE \"${CMAKE_BUILD_TYPE}\"")
endif()
set(PHYSX_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/physx")
set(PXSHARED_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/pxshared")
set(EXTERNALS_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/externals")
if(WIN32)
set(TARGET_BUILD_PLATFORM "windows")
set(PX_COMPILER_DIR "linux.clang")
else()
set(TARGET_BUILD_PLATFORM "linux")
endif()
set(PX_OUTPUT_ARCH x86)
set(PX_BUILDSNIPPETS OFF)
set(PX_BUILDSAMPLES OFF)
set(PX_GENERATE_STATIC_LIBRARIES ON)
set(PXSHARED_PATH "${PXSHARED_ROOT_DIR}")
set(PX_OUTPUT_BIN_DIR "${CMAKE_BINARY_DIR}/bin")
set(PX_OUTPUT_LIB_DIR "${CMAKE_BINARY_DIR}/lib")
set(CMAKEMODULES_VERSION 1)
set(CMAKEMODULES_PATH "${EXTERNALS_ROOT_DIR}/cmakemodules")
add_compile_options(-w)
add_subdirectory(${PHYSX_ROOT_DIR}/source/compiler/cmake)
add_library(PhysX4_1 INTERFACE)
target_include_directories(PhysX4_1 INTERFACE
"${PHYSX_ROOT_DIR}/include"
"${PXSHARED_ROOT_DIR}/include"
"${PHYSX_ROOT_DIR}/source/foundation/include"
)
target_link_directories(PhysX4_1 INTERFACE
"${PX_OUTPUT_LIB_DIR}/bin/${TARGET_BUILD_PLATFORM}.clang/${CONFIG}"
)
target_link_libraries(PhysX4_1 INTERFACE
PhysX_static_64
PhysXCharacterKinematic_static_64
PhysXCommon_static_64
PhysXCooking_static_64
PhysXExtensions_static_64
PhysXFoundation_static_64
PhysXPvdSDK_static_64
PhysXVehicle_static_64
)