77 lines
2.2 KiB
CMake
77 lines
2.2 KiB
CMake
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
|
|
)
|