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 )