diff options
| author | mtamis <[email protected]> | 2017-02-15 16:06:25 +0100 |
|---|---|---|
| committer | mtamis <[email protected]> | 2017-02-15 16:06:25 +0100 |
| commit | 85305930aeeb1d513e23522bd91f29ba81aa6d14 (patch) | |
| tree | 45f1bb20a45a300d1fef107e436cac95602a0e57 /PxShared/src/compiler | |
| download | nvcloth-85305930aeeb1d513e23522bd91f29ba81aa6d14.tar.xz nvcloth-85305930aeeb1d513e23522bd91f29ba81aa6d14.zip | |
NvCloth library v1.0.0
Diffstat (limited to 'PxShared/src/compiler')
48 files changed, 1977 insertions, 0 deletions
diff --git a/PxShared/src/compiler/cmake/Android/CMakeLists.txt b/PxShared/src/compiler/cmake/Android/CMakeLists.txt new file mode 100644 index 0000000..0499c29 --- /dev/null +++ b/PxShared/src/compiler/cmake/Android/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 3.3) +include(../common/CMakeLists.txt) + +STRING(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWERCASE) + +IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Android + SET(TARGET_BUILD_PLATFORM "Android") +ENDIF() + +SET(PLATFORM_LIST Android) + +IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST) + MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM}) +ENDIF() + +if(${ANDROID_ABI} STREQUAL "armeabi-v7a") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -D__STDC_LIMIT_MACROS -Wno-invalid-offsetof ") +elseif(${ANDROID_ABI} STREQUAL "arm64-v8a") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -D__STDC_LIMIT_MACROS -Wno-invalid-offsetof ") +elseif(${ANDROID_ABI} STREQUAL "x86") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -D__STDC_LIMIT_MACROS -Wno-invalid-offsetof -fpack-struct=8 -malign-double ") +elseif(${ANDROID_ABI} STREQUAL "x86_64") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -D__STDC_LIMIT_MACROS -Wno-invalid-offsetof -mstackrealign -msse3 ") +endif() + +SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") +SET(CMAKE_CXX_FLAGS_CHECKED "-O2") +SET(CMAKE_CXX_FLAGS_PROFILE "-O2") +SET(CMAKE_CXX_FLAGS_RELEASE "-O2") + +SET(PXSHARED_ANDROID_COMPILE_DEFS _LIB;) +SET(PXSHARED_ANDROID_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1) +SET(PXSHARED_ANDROID_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1) +SET(PXSHARED_ANDROID_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1) +SET(PXSHARED_ANDROID_RELEASE_COMPILE_DEFS NDEBUG) + +# NOTE: PxCudaContextManager excluded on this platform + +# Include project cmake files here +INCLUDE(PxFoundation.cmake) +INCLUDE(PsFastXml.cmake) +INCLUDE(PxPvdSDK.cmake) +INCLUDE(PxTask.cmake) diff --git a/PxShared/src/compiler/cmake/Android/PsFastXml.cmake b/PxShared/src/compiler/cmake/Android/PsFastXml.cmake new file mode 100644 index 0000000..81d356e --- /dev/null +++ b/PxShared/src/compiler/cmake/Android/PsFastXml.cmake @@ -0,0 +1,40 @@ +# +# Build PsFastXml +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml) + +# Use generator expressions to set config specific preprocessor definitions +SET(PSFASTXML_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_ANDROID_COMPILE_DEFS};PX_FOUNDATION_DLL=0;PxShared_STATIC_LIB; +) + +if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + LIST(APPEND PSFASTXML_COMPILE_DEFS + ${PXSHARED_ANDROID_DEBUG_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked") + LIST(APPEND PSFASTXML_COMPILE_DEFS + ${PXSHARED_ANDROID_CHECKED_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile") + LIST(APPEND PSFASTXML_COMPILE_DEFS + ${PXSHARED_ANDROID_PROFILE_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release) + LIST(APPEND PSFASTXML_COMPILE_DEFS + ${PXSHARED_ANDROID_RELEASE_COMPILE_DEFS} + ) +else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}") +endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + + +# include PsFastXml common +INCLUDE(../common/PsFastXml.cmake) + +# enable -fPIC so we can link static libs with the editor +SET_TARGET_PROPERTIES(PsFastXml PROPERTIES POSITION_INDEPENDENT_CODE TRUE) diff --git a/PxShared/src/compiler/cmake/Android/PxFoundation.cmake b/PxShared/src/compiler/cmake/Android/PxFoundation.cmake new file mode 100644 index 0000000..c23a327 --- /dev/null +++ b/PxShared/src/compiler/cmake/Android/PxFoundation.cmake @@ -0,0 +1,62 @@ +# +# Build PxFoundation +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation) + +SET(PXFOUNDATION_LIBTYPE STATIC) + +SET(PXFOUNDATION_PLATFORM_FILES + ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp + ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c +) + +SET(PXFOUNDATION_PLATFORM_INCLUDES + ${LL_SOURCE_DIR}/include/linux + ${ANDROID_NDK}/sources/android/cpufeatures +) + +SET(PXFOUNDATION_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_ANDROID_COMPILE_DEFS};PxShared_STATIC_LIB; +) + +if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + LIST(APPEND PXFOUNDATION_COMPILE_DEFS + ${PXSHARED_ANDROID_DEBUG_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked") + LIST(APPEND PXFOUNDATION_COMPILE_DEFS + ${PXSHARED_ANDROID_CHECKED_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile") + LIST(APPEND PXFOUNDATION_COMPILE_DEFS + ${PXSHARED_ANDROID_PROFILE_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release) + LIST(APPEND PXFOUNDATION_COMPILE_DEFS + ${PXSHARED_ANDROID_RELEASE_COMPILE_DEFS} + ) +else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}") +endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + + +# include PxFoundation common +INCLUDE(../common/PxFoundation.cmake) + +TARGET_LINK_LIBRARIES(PxFoundation PUBLIC log) + +# enable -fPIC so we can link static libs with the editor +SET_TARGET_PROPERTIES(PxFoundation PROPERTIES POSITION_INDEPENDENT_CODE TRUE) diff --git a/PxShared/src/compiler/cmake/Android/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/Android/PxPvdSDK.cmake new file mode 100644 index 0000000..f517efc --- /dev/null +++ b/PxShared/src/compiler/cmake/Android/PxPvdSDK.cmake @@ -0,0 +1,44 @@ +# +# Build PxPvdSDK +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd) + +SET(PXPVDSDK_LIBTYPE STATIC) + +# Use generator expressions to set config specific preprocessor definitions +SET(PXPVDSDK_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_ANDROID_COMPILE_DEFS};PxShared_STATIC_LIB; +) + +if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + LIST(APPEND PXPVDSDK_COMPILE_DEFS + ${PXSHARED_ANDROID_DEBUG_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked") + LIST(APPEND PXPVDSDK_COMPILE_DEFS + ${PXSHARED_ANDROID_CHECKED_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile") + LIST(APPEND PXPVDSDK_COMPILE_DEFS + ${PXSHARED_ANDROID_PROFILE_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release) + LIST(APPEND PXPVDSDK_COMPILE_DEFS + ${PXSHARED_ANDROID_RELEASE_COMPILE_DEFS} + ) +else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}") +endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + +# include PxPvdSDK common +INCLUDE(../common/PxPvdSDK.cmake) + +# Add linked libraries +TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation) + +# enable -fPIC so we can link static libs with the editor +SET_TARGET_PROPERTIES(PxPvdSDK PROPERTIES POSITION_INDEPENDENT_CODE TRUE) diff --git a/PxShared/src/compiler/cmake/Android/PxTask.cmake b/PxShared/src/compiler/cmake/Android/PxTask.cmake new file mode 100644 index 0000000..e02aefd --- /dev/null +++ b/PxShared/src/compiler/cmake/Android/PxTask.cmake @@ -0,0 +1,39 @@ +# +# Build PxTask +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task) + +SET(PXTASK_COMPILE_DEFS + ${PXSHARED_ANDROID_COMPILE_DEFS};PxShared_STATIC_LIB; +) + +if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + LIST(APPEND PXTASK_COMPILE_DEFS + ${PXSHARED_ANDROID_DEBUG_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked") + LIST(APPEND PXTASK_COMPILE_DEFS + ${PXSHARED_ANDROID_CHECKED_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile") + LIST(APPEND PXTASK_COMPILE_DEFS + ${PXSHARED_ANDROID_PROFILE_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release) + LIST(APPEND PXTASK_COMPILE_DEFS + ${PXSHARED_ANDROID_RELEASE_COMPILE_DEFS} + ) +else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}") +endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + +SET(PXTASK_LIBTYPE OBJECT) + +# include PxTask common +INCLUDE(../common/PxTask.cmake) + +# enable -fPIC so we can link static libs with the editor +SET_TARGET_PROPERTIES(PxTask PROPERTIES POSITION_INDEPENDENT_CODE TRUE) diff --git a/PxShared/src/compiler/cmake/IOS/CMakeLists.txt b/PxShared/src/compiler/cmake/IOS/CMakeLists.txt new file mode 100644 index 0000000..d281e32 --- /dev/null +++ b/PxShared/src/compiler/cmake/IOS/CMakeLists.txt @@ -0,0 +1,73 @@ +cmake_minimum_required(VERSION 3.3) +include(../common/CMakeLists.txt) + + +IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to IOS + SET(TARGET_BUILD_PLATFORM "IOS") +ENDIF() + +SET(PLATFORM_LIST IOS) + +IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST) + MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM}) +ENDIF() + +SET(CMAKE_CXX_FLAGS "-std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -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 -gdwarf-2") + +SET(CMAKE_SHARED_LINKER_FLAGS "") + +SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") +SET(CMAKE_CXX_FLAGS_CHECKED "-O3 -g") +SET(CMAKE_CXX_FLAGS_PROFILE "-O3 -g") +SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g") + +SET(CMAKE_OSX_DEPLOYMENT_TARGET "") + +SET(CMAKE_OSX_ARCHITECTURES "armv7 armv7s arm64") + +SET(IOS_PLATFORM_LOCATION "iPhoneOS.platform") + +# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT +EXEC_PROGRAM(/usr/bin/xcode-select ARGS -print-path OUTPUT_VARIABLE CMAKE_XCODE_DEVELOPER_DIR) +SET(XCODE_ROOT "${CMAKE_XCODE_DEVELOPER_DIR}/Platforms/${IOS_PLATFORM_LOCATION}/Developer") +IF(NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT) + IF(EXISTS ${XCODE_ROOT}) + SET(CMAKE_IOS_DEVELOPER_ROOT ${XCODE_ROOT}) + ENDIF(EXISTS ${XCODE_ROOT}) +ENDIF(NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT) +SET(CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform") + +# Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT +IF(NOT DEFINED CMAKE_IOS_SDK_ROOT) + FILE(GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*") + IF(_CMAKE_IOS_SDKS) + LIST(SORT _CMAKE_IOS_SDKS) + LIST(REVERSE _CMAKE_IOS_SDKS) + LIST(GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT) + ELSE(_CMAKE_IOS_SDKS) + MESSAGE(FATAL_ERROR "No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.") + ENDIF(_CMAKE_IOS_SDKS) + MESSAGE(STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}") +ENDIF(NOT DEFINED CMAKE_IOS_SDK_ROOT) +SET(CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the selected iOS SDK") + +# Set the sysroot default to the most recent SDK +SET(CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support") + +SET(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "iphoneos") +SET(CMAKE_XCODE_ATTRIBUTE_SDKROOT ${CMAKE_IOS_SDK_ROOT}) +SET(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "7.0") + +SET(PXSHARED_IOS_COMPILE_DEFS _LIB;DISABLE_CUDA_PHYSX;DISABLE_COMPUTE_PHYSX) +SET(PXSHARED_IOS_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1) +SET(PXSHARED_IOS_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1) +SET(PXSHARED_IOS_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1) +SET(PXSHARED_IOS_RELEASE_COMPILE_DEFS NDEBUG) + +# NOTE: PxCudaContextManager excluded on this platform + +# Include project cmake files here +INCLUDE(PxFoundation.cmake) +INCLUDE(PsFastXml.cmake) +INCLUDE(PxPvdSDK.cmake) +INCLUDE(PxTask.cmake) diff --git a/PxShared/src/compiler/cmake/IOS/PsFastXml.cmake b/PxShared/src/compiler/cmake/IOS/PsFastXml.cmake new file mode 100644 index 0000000..28b2a1b --- /dev/null +++ b/PxShared/src/compiler/cmake/IOS/PsFastXml.cmake @@ -0,0 +1,22 @@ +# +# Build PsFastXml +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml) + +# Use generator expressions to set config specific preprocessor definitions +SET(PSFASTXML_COMPILE_DEFS + + # Common to all configurations + ${PXSHARED_IOS_COMPILE_DEFS};PX_FOUNDATION_DLL=0; + + $<$<CONFIG:debug>:${PXSHARED_IOS_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_IOS_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_IOS_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_IOS_RELEASE_COMPILE_DEFS};> +) + +# include PsFastXml common +INCLUDE(../common/PsFastXml.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/IOS/PxFoundation.cmake b/PxShared/src/compiler/cmake/IOS/PxFoundation.cmake new file mode 100644 index 0000000..7d022cf --- /dev/null +++ b/PxShared/src/compiler/cmake/IOS/PxFoundation.cmake @@ -0,0 +1,40 @@ +# +# Build PxFoundation +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation) + +SET(PXFOUNDATION_LIBTYPE STATIC) + +SET(PXFOUNDATION_PLATFORM_FILES + ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp +) + +SET(PXFOUNDATION_PLATFORM_INCLUDES + ${LL_SOURCE_DIR}/include/ios +) + +SET(PXFOUNDATION_COMPILE_DEFS + + # Common to all configurations + ${PXSHARED_IOS_COMPILE_DEFS} + + $<$<CONFIG:debug>:${PXSHARED_IOS_DEBUG_COMPILE_DEFS}> + $<$<CONFIG:checked>:${PXSHARED_IOS_CHECKED_COMPILE_DEFS}> + $<$<CONFIG:profile>:${PXSHARED_IOS_PROFILE_COMPILE_DEFS}> + $<$<CONFIG:release>:${PXSHARED_IOS_RELEASE_COMPILE_DEFS}> +) + +# include PxFoundation common +INCLUDE(../common/PxFoundation.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/IOS/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/IOS/PxPvdSDK.cmake new file mode 100644 index 0000000..85e7e1f --- /dev/null +++ b/PxShared/src/compiler/cmake/IOS/PxPvdSDK.cmake @@ -0,0 +1,24 @@ +# +# Build PxPvdSDK +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd) + +SET(PXPVDSDK_LIBTYPE STATIC) + +# Use generator expressions to set config specific preprocessor definitions +SET(PXPVDSDK_COMPILE_DEFS + + # Common to all configurations + ${PXSHARED_IOS_COMPILE_DEFS} + + $<$<CONFIG:debug>:${PXSHARED_IOS_DEBUG_COMPILE_DEFS}> + $<$<CONFIG:checked>:${PXSHARED_IOS_CHECKED_COMPILE_DEFS}> + $<$<CONFIG:profile>:${PXSHARED_IOS_PROFILE_COMPILE_DEFS}> + $<$<CONFIG:release>:${PXSHARED_IOS_RELEASE_COMPILE_DEFS}> +) + +# include PxPvdSDK common +INCLUDE(../common/PxPvdSDK.cmake) diff --git a/PxShared/src/compiler/cmake/IOS/PxTask.cmake b/PxShared/src/compiler/cmake/IOS/PxTask.cmake new file mode 100644 index 0000000..197e241 --- /dev/null +++ b/PxShared/src/compiler/cmake/IOS/PxTask.cmake @@ -0,0 +1,18 @@ +# +# Build PxTask +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task) + +SET(PXTASK_COMPILE_DEFS + ${PXSHARED_IOS_COMPILE_DEFS};PX_FOUNDATION_DLL=0; + $<$<CONFIG:debug>:${PXSHARED_IOS_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_IOS_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_IOS_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_IOS_RELEASE_COMPILE_DEFS};> +) + +# include PxTask common +INCLUDE(../common/PxTask.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/Linux/CMakeLists.txt b/PxShared/src/compiler/cmake/Linux/CMakeLists.txt new file mode 100644 index 0000000..2fa592e --- /dev/null +++ b/PxShared/src/compiler/cmake/Linux/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 3.3) +include(../common/CMakeLists.txt) + +STRING(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWERCASE) + +IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Linux + SET(TARGET_BUILD_PLATFORM "Linux") +ENDIF() + +SET(PLATFORM_LIST Linux) + +IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST) + MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM}) +ENDIF() + +IF (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-unknown-linux-gnu" OR ${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-linux-gnu") + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + # using Clang + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -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-func-template -Wno-format-nonliteral -Wno-implicit-fallthrough -Wno-undefined-reinterpret-cast") + ELSEIF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + # using GCC + SET(LIBPATH_SUFFIX "x64") + SET(CMAKE_CXX_FLAGS "-Werror -m64 -fPIC -msse2 -mfpmath=sse -ffast-math -fno-exceptions -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -fno-strict-aliasing -fdiagnostics-show-option -Wno-invalid-offsetof -Wno-uninitialized -Wno-missing-field-initializers") + ENDIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") +ELSEIF(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-unknown-linux-gnueabihf") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -mfpu=neon -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -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-old-style-cast -Wno-return-type-c-linkage -Wno-format-nonliteral -Wno-implicit-fallthrough") +ELSEIF(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "aarch64-unknown-linux-gnueabi") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -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-old-style-cast -Wno-return-type-c-linkage -Wno-format-nonliteral -Wno-unused-local-typedef -Wno-implicit-fallthrough") +ELSE(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-unknown-linux-gnu" OR ${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-linux-gnu") + MESSAGE(FATAL_ERROR "Unknown CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_LIBRARY_ARCHITECTURE}") +ENDIF(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-unknown-linux-gnu" OR ${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "x86_64-linux-gnu") + + +SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -gdwarf-3") +SET(CMAKE_CXX_FLAGS_CHECKED "-O3 -g -gdwarf-3") +SET(CMAKE_CXX_FLAGS_PROFILE "-O3 -g -gdwarf-3") +SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g -gdwarf-3") + +IF(DEFINED PX_GENERATE_GPU_PROJECTS) +SET(PXSHARED_LINUX_COMPILE_DEFS _LIB) +ELSE() +# Disable cuda and dx for all projects on windows +SET(PXSHARED_LINUX_COMPILE_DEFS _LIB;DISABLE_CUDA_PHYSX;) +ENDIF() +SET(PXSHARED_LINUX_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1) +SET(PXSHARED_LINUX_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1) +SET(PXSHARED_LINUX_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1) +SET(PXSHARED_LINUX_RELEASE_COMPILE_DEFS NDEBUG) + +IF(DEFINED LIBPATH_SUFFIX) + SET(CMAKE_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}_${LIBPATH_SUFFIX}") + SET(CMAKE_PROFILE_POSTFIX "${CMAKE_PROFILE_POSTFIX}_${LIBPATH_SUFFIX}") + SET(CMAKE_CHECKED_POSTFIX "${CMAKE_CHECKED_POSTFIX}_${LIBPATH_SUFFIX}") + SET(CMAKE_RELEASE_POSTFIX "${CMAKE_RELEASE_POSTFIX}_${LIBPATH_SUFFIX}") +ENDIF() + +# NOTE: PxCudaContextManager excluded on this platform + +# Include project cmake files here +IF(DEFINED PX_SELECT_COMPONENTS) + if ("PxFoundation" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PxFoundation.cmake) + endif() + if ("PsFastXml" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PsFastXml.cmake) + endif() + if ("PxPvdSDK" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PxPvdSDK.cmake) + endif() + if ("PxTask" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PxTask.cmake) + endif() + if ("PxCudaContextManager" IN_LIST PX_SELECT_COMPONENTS) + IF(DEFINED PX_GENERATE_GPU_PROJECTS) + INCLUDE(PxCudaContextManager.cmake) + ENDIF() + endif() +ELSE() +INCLUDE(PxFoundation.cmake) +INCLUDE(PsFastXml.cmake) +INCLUDE(PxPvdSDK.cmake) +INCLUDE(PxTask.cmake) +IF(DEFINED PX_GENERATE_GPU_PROJECTS) + INCLUDE(PxCudaContextManager.cmake) +ENDIF() +ENDIF() + diff --git a/PxShared/src/compiler/cmake/Linux/PsFastXml.cmake b/PxShared/src/compiler/cmake/Linux/PsFastXml.cmake new file mode 100644 index 0000000..3c90c49 --- /dev/null +++ b/PxShared/src/compiler/cmake/Linux/PsFastXml.cmake @@ -0,0 +1,40 @@ +# +# Build PsFastXml +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml) + +# Use generator expressions to set config specific preprocessor definitions +SET(PSFASTXML_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_LINUX_COMPILE_DEFS};PX_FOUNDATION_DLL=0; +) + +if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + LIST(APPEND PSFASTXML_COMPILE_DEFS + ${PXSHARED_LINUX_DEBUG_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked") + LIST(APPEND PSFASTXML_COMPILE_DEFS + ${PXSHARED_LINUX_CHECKED_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile") + LIST(APPEND PSFASTXML_COMPILE_DEFS + ${PXSHARED_LINUX_PROFILE_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release) + LIST(APPEND PSFASTXML_COMPILE_DEFS + ${PXSHARED_LINUX_RELEASE_COMPILE_DEFS} + ) +else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}") +endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + + +# include PsFastXml common +INCLUDE(../common/PsFastXml.cmake) + +# enable -fPIC so we can link static libs with the editor +SET_TARGET_PROPERTIES(PsFastXml PROPERTIES POSITION_INDEPENDENT_CODE TRUE) diff --git a/PxShared/src/compiler/cmake/Linux/PxCudaContextManager.cmake b/PxShared/src/compiler/cmake/Linux/PxCudaContextManager.cmake new file mode 100644 index 0000000..3454323 --- /dev/null +++ b/PxShared/src/compiler/cmake/Linux/PxCudaContextManager.cmake @@ -0,0 +1,29 @@ +# +# Build PxCudaContextManager +# + +FIND_PACKAGE(CUDA REQUIRED) + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/cudamanager) + +SET(CUDA_COMPILER_OPTION_DEBUG "--compiler-options=-Wall,-O3,-fPIC,-msse2,-mfpmath=sse,-malign-double,-m64,-fvisibility=hidden") +SET(CUDA_COMPILER_OPTION_CHECKED "--compiler-options=-Wall,-O3,-fPIC,-msse2,-mfpmath=sse,-malign-double,-m64,-fvisibility=hidden") +SET(CUDA_COMPILER_OPTION_PROFILE "--compiler-options=-Wall,-O3,-fPIC,-msse2,-mfpmath=sse,-malign-double,-m64,-fvisibility=hidden") +SET(CUDA_COMPILER_OPTION_RELEASE "--compiler-options=-Wall,-O3,-fPIC,-msse2,-mfpmath=sse,-malign-double,-m64,-fvisibility=hidden") + +# include PxCudaContextManager common +INCLUDE(../common/PxCudaContextManager.cmake) + +# Use generator expressions to set config specific preprocessor definitions +TARGET_COMPILE_DEFINITIONS(PxCudaContextManager + + # Common to all configurations + PRIVATE ${PXSHARED_LINUX_COMPILE_DEFS}; + + PRIVATE $<$<CONFIG:debug>:${PXSHARED_LINUX_DEBUG_COMPILE_DEFS};> + PRIVATE $<$<CONFIG:checked>:${PXSHARED_LINUX_CHECKED_COMPILE_DEFS};> + PRIVATE $<$<CONFIG:profile>:${PXSHARED_LINUX_PROFILE_COMPILE_DEFS};> + PRIVATE $<$<CONFIG:release>:${PXSHARED_LINUX_RELEASE_COMPILE_DEFS};> +) diff --git a/PxShared/src/compiler/cmake/Linux/PxFoundation.cmake b/PxShared/src/compiler/cmake/Linux/PxFoundation.cmake new file mode 100644 index 0000000..f074805 --- /dev/null +++ b/PxShared/src/compiler/cmake/Linux/PxFoundation.cmake @@ -0,0 +1,67 @@ +# +# Build PxFoundation +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation) + +IF(DEFINED PX_STATIC_LIBRARIES) + SET(PXFOUNDATION_LIBTYPE STATIC) +ELSE() + SET(PXFOUNDATION_LIBTYPE SHARED) + SET(PXFOUNDATION_SHARED_LIBRARY_DEFS PX_PVDSDK_DLL=1;PX_FOUNDATION_DLL=1;) +ENDIF() + +SET(PXFOUNDATION_PLATFORM_FILES + ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp +) + +SET(PXFOUNDATION_PLATFORM_INCLUDES + ${LL_SOURCE_DIR}/include/linux +) + +SET(PXFOUNDATION_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_LINUX_COMPILE_DEFS} +) + +if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + LIST(APPEND PXFOUNDATION_COMPILE_DEFS + ${PXSHARED_LINUX_DEBUG_COMPILE_DEFS};${PXFOUNDATION_SHARED_LIBRARY_DEFS}; + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked") + LIST(APPEND PXFOUNDATION_COMPILE_DEFS + ${PXSHARED_LINUX_CHECKED_COMPILE_DEFS};${PXFOUNDATION_SHARED_LIBRARY_DEFS}; + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile") + LIST(APPEND PXFOUNDATION_COMPILE_DEFS + ${PXSHARED_LINUX_PROFILE_COMPILE_DEFS};${PXFOUNDATION_SHARED_LIBRARY_DEFS}; + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release) + LIST(APPEND PXFOUNDATION_COMPILE_DEFS + ${PXSHARED_LINUX_RELEASE_COMPILE_DEFS};${PXFOUNDATION_SHARED_LIBRARY_DEFS}; + ) +else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}") +endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + + +# include PxFoundation common +INCLUDE(../common/PxFoundation.cmake) + +IF(NOT DEFINED PX_STATIC_LIBRARIES) +TARGET_LINK_LIBRARIES(PxFoundation PUBLIC rt) +ENDIF() + +# enable -fPIC so we can link static libs with the editor +SET_TARGET_PROPERTIES(PxFoundation PROPERTIES POSITION_INDEPENDENT_CODE TRUE) diff --git a/PxShared/src/compiler/cmake/Linux/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/Linux/PxPvdSDK.cmake new file mode 100644 index 0000000..81692a0 --- /dev/null +++ b/PxShared/src/compiler/cmake/Linux/PxPvdSDK.cmake @@ -0,0 +1,53 @@ +# +# Build PxPvdSDK +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd) + +IF(DEFINED PX_STATIC_LIBRARIES) + SET(PXPVDSDK_LIBTYPE STATIC) +ELSE() + SET(PXPVDSDK_LIBTYPE SHARED) + SET(PXPVDSDK_SHARED_LIBRARY_DEFS PX_PVDSDK_DLL=1;PX_FOUNDATION_DLL=1;) +ENDIF() + +# Use generator expressions to set config specific preprocessor definitions +SET(PXPVDSDK_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_LINUX_COMPILE_DEFS} +) + +if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + LIST(APPEND PXPVDSDK_COMPILE_DEFS + ${PXSHARED_LINUX_DEBUG_COMPILE_DEFS};${PXPVDSDK_SHARED_LIBRARY_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked") + LIST(APPEND PXPVDSDK_COMPILE_DEFS + ${PXSHARED_LINUX_CHECKED_COMPILE_DEFS};${PXPVDSDK_SHARED_LIBRARY_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile") + LIST(APPEND PXPVDSDK_COMPILE_DEFS + ${PXSHARED_LINUX_PROFILE_COMPILE_DEFS};${PXPVDSDK_SHARED_LIBRARY_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release) + LIST(APPEND PXPVDSDK_COMPILE_DEFS + ${PXSHARED_LINUX_RELEASE_COMPILE_DEFS};${PXPVDSDK_SHARED_LIBRARY_DEFS} + ) +else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}") +endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + +# include PxPvdSDK common +INCLUDE(../common/PxPvdSDK.cmake) + +# Add linked libraries +IF(DEFINED PX_STATIC_LIBRARIES) +TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation ) +ELSE() +TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation rt) +ENDIF() + +# enable -fPIC so we can link static libs with the editor +SET_TARGET_PROPERTIES(PxPvdSDK PROPERTIES POSITION_INDEPENDENT_CODE TRUE) diff --git a/PxShared/src/compiler/cmake/Linux/PxTask.cmake b/PxShared/src/compiler/cmake/Linux/PxTask.cmake new file mode 100644 index 0000000..86689c4 --- /dev/null +++ b/PxShared/src/compiler/cmake/Linux/PxTask.cmake @@ -0,0 +1,43 @@ +# +# Build PxTask +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task) + +SET(PXTASK_COMPILE_DEFS + ${PXSHARED_LINUX_COMPILE_DEFS}; +) + +if(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + LIST(APPEND PXTASK_COMPILE_DEFS + ${PXSHARED_LINUX_DEBUG_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "checked") + LIST(APPEND PXTASK_COMPILE_DEFS + ${PXSHARED_LINUX_CHECKED_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "profile") + LIST(APPEND PXTASK_COMPILE_DEFS + ${PXSHARED_LINUX_PROFILE_COMPILE_DEFS} + ) +elseif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL release) + LIST(APPEND PXTASK_COMPILE_DEFS + ${PXSHARED_LINUX_RELEASE_COMPILE_DEFS} + ) +else(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + MESSAGE(FATAL_ERROR "Unknown configuration ${CMAKE_BUILD_TYPE}") +endif(${CMAKE_BUILD_TYPE_LOWERCASE} STREQUAL "debug") + +IF(DEFINED PX_STATIC_LIBRARIES) + SET(PXTASK_LIBTYPE OBJECT) +ELSE() + SET(PXTASK_LIBTYPE STATIC) +ENDIF() + +# include PxTask common +INCLUDE(../common/PxTask.cmake) + +# enable -fPIC so we can link static libs with the editor +SET_TARGET_PROPERTIES(PxTask PROPERTIES POSITION_INDEPENDENT_CODE TRUE) diff --git a/PxShared/src/compiler/cmake/Mac/CMakeLists.txt b/PxShared/src/compiler/cmake/Mac/CMakeLists.txt new file mode 100644 index 0000000..beb06bc --- /dev/null +++ b/PxShared/src/compiler/cmake/Mac/CMakeLists.txt @@ -0,0 +1,48 @@ +cmake_minimum_required(VERSION 3.3) +include(../common/CMakeLists.txt) + + +IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Mac + SET(TARGET_BUILD_PLATFORM "Mac") +ENDIF() + +SET(PLATFORM_LIST Mac) + +IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST) + MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM}) +ENDIF() + +SET(CMAKE_CXX_FLAGS "-msse2 -std=c++11 -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -Weverything -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 -gdwarf-2") + +IF (DEFINED PX_32BIT) +SET(CMAKE_CXX_FLAGS "-arch i386 ${CMAKE_CXX_FLAGS}") +ENDIF() +IF (DEFINED PX_64BIT) +SET(CMAKE_CXX_FLAGS "-arch x86_64 ${CMAKE_CXX_FLAGS}") +ENDIF() + +SET(CMAKE_SHARED_LINKER_FLAGS "") + +SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") +SET(CMAKE_CXX_FLAGS_CHECKED "-O3 -g") +SET(CMAKE_CXX_FLAGS_PROFILE "-O3 -g") +SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g") + +# Build libs compatible with OS X 10.9 +SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.9") + +#set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym") + +SET(PXSHARED_MAC_COMPILE_DEFS _LIB;DISABLE_CUDA_PHYSX;DISABLE_COMPUTE_PHYSX) +SET(PXSHARED_MAC_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1) +SET(PXSHARED_MAC_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1) +SET(PXSHARED_MAC_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1) +SET(PXSHARED_MAC_RELEASE_COMPILE_DEFS NDEBUG) + +# NOTE: PxCudaContextManager excluded on this platform + +# Include project cmake files here +INCLUDE(PxFoundation.cmake) +INCLUDE(PsFastXml.cmake) +INCLUDE(PxPvdSDK.cmake) +INCLUDE(PxTask.cmake) diff --git a/PxShared/src/compiler/cmake/Mac/PsFastXml.cmake b/PxShared/src/compiler/cmake/Mac/PsFastXml.cmake new file mode 100644 index 0000000..7f140e0 --- /dev/null +++ b/PxShared/src/compiler/cmake/Mac/PsFastXml.cmake @@ -0,0 +1,22 @@ +# +# Build PsFastXml +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml) + +# Use generator expressions to set config specific preprocessor definitions +SET(PSFASTXML_COMPILE_DEFS + + # Common to all configurations + ${PXSHARED_MAC_COMPILE_DEFS};PX_FOUNDATION_DLL=0; + + $<$<CONFIG:debug>:${PXSHARED_MAC_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_MAC_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_MAC_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_MAC_RELEASE_COMPILE_DEFS};> +) + +# include PsFastXml common +INCLUDE(../common/PsFastXml.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/Mac/PxFoundation.cmake b/PxShared/src/compiler/cmake/Mac/PxFoundation.cmake new file mode 100644 index 0000000..2a21910 --- /dev/null +++ b/PxShared/src/compiler/cmake/Mac/PxFoundation.cmake @@ -0,0 +1,40 @@ +# +# Build PxFoundation +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation) + +SET(PXFOUNDATION_LIBTYPE SHARED) + +SET(PXFOUNDATION_PLATFORM_FILES + ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp +) + +SET(PXFOUNDATION_PLATFORM_INCLUDES + ${LL_SOURCE_DIR}/include/mac +) + +SET(PXFOUNDATION_COMPILE_DEFS + + # Common to all configurations + ${PXSHARED_MAC_COMPILE_DEFS} + + $<$<CONFIG:debug>:${PXSHARED_MAC_DEBUG_COMPILE_DEFS}> + $<$<CONFIG:checked>:${PXSHARED_MAC_CHECKED_COMPILE_DEFS}> + $<$<CONFIG:profile>:${PXSHARED_MAC_PROFILE_COMPILE_DEFS}> + $<$<CONFIG:release>:${PXSHARED_MAC_RELEASE_COMPILE_DEFS}> +) + +# include PxFoundation common +INCLUDE(../common/PxFoundation.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/Mac/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/Mac/PxPvdSDK.cmake new file mode 100644 index 0000000..c236882 --- /dev/null +++ b/PxShared/src/compiler/cmake/Mac/PxPvdSDK.cmake @@ -0,0 +1,28 @@ +# +# Build PxPvdSDK +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd) + +SET(PXPVDSDK_LIBTYPE SHARED) + +# Use generator expressions to set config specific preprocessor definitions +SET(PXPVDSDK_COMPILE_DEFS + + # Common to all configurations + ${PXSHARED_MAC_COMPILE_DEFS} + + $<$<CONFIG:debug>:${PXSHARED_MAC_DEBUG_COMPILE_DEFS}> + $<$<CONFIG:checked>:${PXSHARED_MAC_CHECKED_COMPILE_DEFS}> + $<$<CONFIG:profile>:${PXSHARED_MAC_PROFILE_COMPILE_DEFS}> + $<$<CONFIG:release>:${PXSHARED_MAC_RELEASE_COMPILE_DEFS}> +) + +# include PxPvdSDK common +INCLUDE(../common/PxPvdSDK.cmake) + +# Add linked libraries +TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation) + diff --git a/PxShared/src/compiler/cmake/Mac/PxTask.cmake b/PxShared/src/compiler/cmake/Mac/PxTask.cmake new file mode 100644 index 0000000..2326a1f --- /dev/null +++ b/PxShared/src/compiler/cmake/Mac/PxTask.cmake @@ -0,0 +1,18 @@ +# +# Build PxTask +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task) + +SET(PXTASK_COMPILE_DEFS + ${PXSHARED_MAC_COMPILE_DEFS};PX_FOUNDATION_DLL=0; + $<$<CONFIG:debug>:${PXSHARED_MAC_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_MAC_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_MAC_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_MAC_RELEASE_COMPILE_DEFS};> +) + +# include PxTask common +INCLUDE(../common/PxTask.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/Modules/FindPxShared.cmake b/PxShared/src/compiler/cmake/Modules/FindPxShared.cmake new file mode 100644 index 0000000..ea90ab6 --- /dev/null +++ b/PxShared/src/compiler/cmake/Modules/FindPxShared.cmake @@ -0,0 +1,18 @@ +# - Try to find PxShared +# Once done this will define +# PXSHARED_FOUND - System has PxShared +# PXSHARED_INCLUDE_DIRS - The PxShared include directories + +# NOTE: We're including a version in this, but the first hint is without one - we should use that! +FIND_PATH( PXSHARED_INCLUDE_DIRS include/cudamanager/PxGpuCopyDesc.h + HINTS + ${GW_DEPS_ROOT}/PxShared + ${GW_DEPS_ROOT}/sw/physx/PxShared/1.0/trunk/ + ) + +MESSAGE(${PXSHARED_INCLUDE_DIRS}) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PxShared DEFAULT_MSG PXSHARED_INCLUDE_DIRS) + +mark_as_advanced(PXSHARED_INCLUDE_DIRS) diff --git a/PxShared/src/compiler/cmake/Modules/FindnvToolsExt.cmake b/PxShared/src/compiler/cmake/Modules/FindnvToolsExt.cmake new file mode 100644 index 0000000..c1675ae --- /dev/null +++ b/PxShared/src/compiler/cmake/Modules/FindnvToolsExt.cmake @@ -0,0 +1,38 @@ +# - Try to find nvToolsExt +# Once done this will define +# NVTOOLSEXT_FOUND - System has nvToolsExt +# NVTOOLSEXT_INCLUDE_DIRS - The nvToolsExt include directories +# NVTOOLSEXT_LIBRARIES - The libraries needed to use nvToolsExt +# NVTOOLSEXT_DEFINITIONS - Compiler switches required for using nvToolsExt + +FIND_PATH( NVTOOLSEXT_INCLUDE_DIRS nvToolsExt.h + HINTS + ${GW_DEPS_ROOT}/PhysX_3.4/externals/nvToolsExt + ${GW_DEPS_ROOT}/sw/physx/externals/nvToolsExt/1 + PATH_SUFFIXES include) + +INCLUDE(FindPackageHandleStandardArgs) + +IF(TARGET_BUILD_PLATFORM STREQUAL "Windows") + # NOTE: Doesn't make sense for all platforms - ARM + IF(CMAKE_CL_64) + SET(NVTOOLSEXT_LIBNAME "nvToolsExt64_1") + SET(NVTOOLSEXT_LIBPATH_SUFFIX "x64") + ELSE(CMAKE_CL_64) + SET(NVTOOLSEXT_LIBNAME nvToolsExt32_1) + SET(NVTOOLSEXT_LIBPATH_SUFFIX "Win32") + ENDIF(CMAKE_CL_64) + + + FIND_LIBRARY( NVTOOLSEXT_LIBRARIES ${NVTOOLSEXT_LIBNAME} + ${GW_DEPS_ROOT}/PhysX_3.4/externals/nvToolsExt/lib/${NVTOOLSEXT_LIBPATH_SUFFIX} + ${GW_DEPS_ROOT}/sw/physx/externals/nvToolsExt/1/lib/${NVTOOLSEXT_LIBPATH_SUFFIX} + ) + + FIND_PACKAGE_HANDLE_STANDARD_ARGS(nvToolsExt DEFAULT_MSG NVTOOLSEXT_LIBRARIES NVTOOLSEXT_INCLUDE_DIRS) +ELSE() + # Exclude the libraries for non-windows platforms + FIND_PACKAGE_HANDLE_STANDARD_ARGS(nvToolsExt DEFAULT_MSG NVTOOLSEXT_INCLUDE_DIRS) +ENDIF() + +mark_as_advanced(NVTOOLSEXT_INCLUDE_DIRS NVTOOLSEXT_LIBRARIES)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/RegenProjects.bat b/PxShared/src/compiler/cmake/RegenProjects.bat new file mode 100644 index 0000000..bdde57f --- /dev/null +++ b/PxShared/src/compiler/cmake/RegenProjects.bat @@ -0,0 +1,4 @@ +rmdir CMakeFiles /s /q +del CMakeCache.txt +cmake ../../.. -A x64 + diff --git a/PxShared/src/compiler/cmake/common/CMakeLists.txt b/PxShared/src/compiler/cmake/common/CMakeLists.txt new file mode 100644 index 0000000..22d2097 --- /dev/null +++ b/PxShared/src/compiler/cmake/common/CMakeLists.txt @@ -0,0 +1,84 @@ +cmake_minimum_required(VERSION 3.3) + +PROJECT(PxShared CXX) + +CMAKE_POLICY(SET CMP0057 NEW) # Enable IN_LIST + +IF(DEFINED ENV{GW_DEPS_ROOT}) + SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT}) + + SET(CMAKE_MODULE_PATH $ENV{GW_DEPS_ROOT}/sw/physx/tools/CMakeModules) + + IF(EXISTS $ENV{GW_DEPS_ROOT}/Externals/CMakeModules) + SET(CMAKE_MODULE_PATH $ENV{GW_DEPS_ROOT}/Externals/CMakeModules) + ENDIF() +ENDIF() + +# Add find modules to the path +IF(NOT EXISTS ${CMAKE_MODULE_PATH}) + MESSAGE(FATAL_ERROR "Could not find CMakeModules at ${CMAKE_MODULE_PATH}") +ENDIF() + +MESSAGE("PxShared Build Platform: " ${TARGET_BUILD_PLATFORM}) +MESSAGE("Using CXX Compiler: " ${CMAKE_CXX_COMPILER}) + +# TODO: Fail if we didn't find deps + +# Tell MSVC to stop doing MBCS +#ADD_DEFINITIONS(-D_UNICODE -DUNICODE) + +IF(CMAKE_CONFIGURATION_TYPES) + SET(CMAKE_CONFIGURATION_TYPES debug checked profile release) + SET(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING + "Reset config to what we need" + FORCE) + + SET(CMAKE_SHARED_LINKER_FLAGS_CHECKED "") + SET(CMAKE_SHARED_LINKER_FLAGS_PROFILE "") + + # Build PDBs for all configurations + SET(CMAKE_SHARED_LINKER_FLAGS "/DEBUG") + +ENDIF() + +# Default to appending "DEBUG", "PROFILE", etc to produced artifacts +IF(NOT DEFINED APPEND_CONFIG_NAME) + SET(APPEND_CONFIG_NAME ON) +ENDIF() + +IF (APPEND_CONFIG_NAME) + MESSAGE("Appending config to output names") + + SET(CMAKE_DEBUG_POSTFIX "DEBUG") + SET(CMAKE_PROFILE_POSTFIX "PROFILE") + SET(CMAKE_CHECKED_POSTFIX "CHECKED") + SET(CMAKE_RELEASE_POSTFIX "") +ENDIF() + +SET(PROJECT_ROOT_DIR ${PROJECT_SOURCE_DIR}/../../../../) + +INCLUDE(SetOutputPaths) + +IF(DEFINED PX_OUTPUT_EXE_DIR) + SetExeOutputPath(${PX_OUTPUT_EXE_DIR}) +ENDIF() +IF(DEFINED PX_OUTPUT_DLL_DIR) + SetDllOutputPath(${PX_OUTPUT_DLL_DIR}) +ENDIF() +IF(DEFINED PX_OUTPUT_LIB_DIR) + SetLibOutputPath(${PX_OUTPUT_LIB_DIR}) +ENDIF() +# All EXE/DLL/LIB output will be overwritten if PX_OUTPUT_ALL_DIR is defined +IF(DEFINED PX_OUTPUT_ALL_DIR) + SetSingleOutputPath(${PX_OUTPUT_ALL_DIR}) +ENDIF() + +# Prevent failure due to command line limitations +IF(USE_RESPONSE_FILES) + SET(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1) + SET(CMAKE_C_USE_RESPONSE_FILE_FOR_INCLUDES 1) + SET(CMAKE_C_USE_RESPONSE_FILE_FOR_LIBRARIES 1) + SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_OBJECTS 1) + SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 1) + SET(CMAKE_CXX_USE_RESPONSE_FILE_FOR_LIBRARIES 1) +ENDIF() diff --git a/PxShared/src/compiler/cmake/common/PsFastXml.cmake b/PxShared/src/compiler/cmake/common/PsFastXml.cmake new file mode 100644 index 0000000..06c1282 --- /dev/null +++ b/PxShared/src/compiler/cmake/common/PsFastXml.cmake @@ -0,0 +1,37 @@ +# +# Build PsFastXml common +# + +SET(PSFASTXML_HEADERS + ${LL_SOURCE_DIR}/include/PsFastXml.h +) +SOURCE_GROUP(include FILES ${PSFASTXML_HEADERS}) + +SET(PSFASTXML_SOURCE + ${LL_SOURCE_DIR}/src/PsFastXml.cpp +) +SOURCE_GROUP(src FILES ${PSFASTXML_SOURCE}) + +ADD_LIBRARY(PsFastXml STATIC + ${PSFASTXML_HEADERS} + ${PSFASTXML_SOURCE} +) + +TARGET_INCLUDE_DIRECTORIES(PsFastXml + PRIVATE ${PXSHARED_SOURCE_DIR}/../include + PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include + PRIVATE ${LL_SOURCE_DIR}/include + + PRIVATE ${PLATFORM_INCLUDES} +) + +TARGET_COMPILE_DEFINITIONS(PsFastXml + PRIVATE ${PSFASTXML_COMPILE_DEFS} +) + +SET_TARGET_PROPERTIES(PsFastXml PROPERTIES + COMPILE_PDB_NAME_DEBUG "PsFastXml${CMAKE_DEBUG_POSTFIX}" + COMPILE_PDB_NAME_CHECKED "PsFastXml${CMAKE_CHECKED_POSTFIX}" + COMPILE_PDB_NAME_PROFILE "PsFastXml${CMAKE_PROFILE_POSTFIX}" + COMPILE_PDB_NAME_RELEASE "PsFastXml${CMAKE_RELEASE_POSTFIX}" +)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/common/PxCudaContextManager.cmake b/PxShared/src/compiler/cmake/common/PxCudaContextManager.cmake new file mode 100644 index 0000000..ab76997 --- /dev/null +++ b/PxShared/src/compiler/cmake/common/PxCudaContextManager.cmake @@ -0,0 +1,77 @@ +# +# Build PxCudaContextManager common +# + + +# CUDA! +SET(CUDA_NVCC_FLAGS "-lineinfo -use_fast_math -ftz=true -prec-div=false -prec-sqrt=false -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_50,code=compute_50 -D_CONSOLE -D_WIN32_WINNT=0x0501") + +CUDA_INCLUDE_DIRECTORIES( + ${PXSHARED_SOURCE_DIR}/../include + ${PXSHARED_SOURCE_DIR}/foundation/include + ${PXSHARED_SOURCE_DIR}/cudamanager/include +) + +SET(CUDA_PROPAGATE_HOST_FLAGS OFF) + +# Compile the CuKernelSolver - it has different options than the other CUDA files +SET(CUDA_NVCC_FLAGS_DEBUG "-D_DEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_DEBUG}") +SET(CUDA_NVCC_FLAGS_CHECKED "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_CHECKED}") +SET(CUDA_NVCC_FLAGS_PROFILE "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_PROFILE}") +SET(CUDA_NVCC_FLAGS_RELEASE "-DNDEBUG -D_CONSOLE -D_WIN32_WINNT=0x0501 ${CUDA_COMPILER_OPTION_RELEASE}") + +SET(CUDACONTEXTMANAGER_HEADERS + ${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxCudaContextManager.h + ${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxCudaMemoryManager.h + ${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxGpuCopyDesc.h + ${PXSHARED_SOURCE_DIR}/../include/cudamanager/PxGpuCopyDescQueue.h +) +SOURCE_GROUP(include FILES ${CUDACONTEXTMANAGER_HEADERS}) + +SET(CUDACONTEXTMANAGER_KERNELS + ${LL_SOURCE_DIR}/src/CUDA/UtilKernels.cu +) +SOURCE_GROUP("src kernels" FILES ${CUDACONTEXTMANAGER_KERNELS}) + +SET(CUDACONTEXTMANAGER_SOURCE + ${LL_SOURCE_DIR}/src/CudaContextManager.cpp + ${LL_SOURCE_DIR}/src/CudaKernelWrangler.cpp + ${LL_SOURCE_DIR}/src/CudaMemoryManager.cpp + ${LL_SOURCE_DIR}/src/HeapManagerRef.cpp + ${LL_SOURCE_DIR}/src/GpuDispatcher.cpp + ${LL_SOURCE_DIR}/src/BlockingWait.cpp + ${LL_SOURCE_DIR}/src/PhysXDeviceSettings.cpp +) +SOURCE_GROUP(src\\src FILES ${CUDACONTEXTMANAGER_SOURCE}) + +SET(CUDACONTEXTMANAGER_SOURCE_HEADERS + ${LL_SOURCE_DIR}/include/CudaContextManager.h + ${LL_SOURCE_DIR}/include/CudaKernelWrangler.h + ${LL_SOURCE_DIR}/include/GpuDispatcher.h + ${LL_SOURCE_DIR}/include/PhysXDeviceSettings.h +) +SOURCE_GROUP(src\\src FILES ${CUDACONTEXTMANAGER_SOURCE_HEADERS}) + +CUDA_ADD_LIBRARY(PxCudaContextManager STATIC + ${CUDACONTEXTMANAGER_HEADERS} + ${CUDACONTEXTMANAGER_SOURCE} + ${CUDACONTEXTMANAGER_SOURCE_HEADERS} + + ${CUDACONTEXTMANAGER_KERNELS} +) + +# Target specific compile options + + +TARGET_INCLUDE_DIRECTORIES(PxCudaContextManager + PRIVATE ${PXSHARED_SOURCE_DIR}/../include + PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include + PRIVATE ${PXSHARED_SOURCE_DIR}/task/include + PRIVATE ${PXSHARED_SOURCE_DIR}/cudamanager/include + PRIVATE ${LL_SOURCE_DIR}/include + PRIVATE ${CUDA_INCLUDE_DIRS} + +) + + + diff --git a/PxShared/src/compiler/cmake/common/PxFoundation.cmake b/PxShared/src/compiler/cmake/common/PxFoundation.cmake new file mode 100644 index 0000000..99905e2 --- /dev/null +++ b/PxShared/src/compiler/cmake/common/PxFoundation.cmake @@ -0,0 +1,118 @@ +# +# Build PxFoundation common +# + +SET(PXFOUNDATION_HEADERS + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/Px.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxAllocatorCallback.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxAssert.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxBitAndData.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxBounds3.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxErrorCallback.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxErrors.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxFlags.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxFoundation.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxFoundationVersion.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxIntrinsics.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxIO.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMat33.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMat44.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMath.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMathUtils.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxMemory.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxPlane.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxPreprocessor.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxProfiler.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxQuat.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxSimpleTypes.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxStrideIterator.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxTransform.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxUnionCast.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxVec2.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxVec3.h + ${PROJECT_SOURCE_DIR}/../../../../include/foundation/PxVec4.h +) +SOURCE_GROUP(include FILES ${PXFOUNDATION_HEADERS}) + +SET(PXFOUNDATION_SOURCE + ${LL_SOURCE_DIR}/src/PsAllocator.cpp + ${LL_SOURCE_DIR}/src/PsAssert.cpp + ${LL_SOURCE_DIR}/src/PsFoundation.cpp + ${LL_SOURCE_DIR}/src/PsMathUtils.cpp + ${LL_SOURCE_DIR}/src/PsString.cpp + ${LL_SOURCE_DIR}/src/PsTempAllocator.cpp + ${LL_SOURCE_DIR}/src/PsUtilities.cpp +) +SOURCE_GROUP(src\\src FILES ${PXFOUNDATION_SOURCE}) + +SET(PXFOUNDATION_SOURCE_HEADERS + ${LL_SOURCE_DIR}/include/Ps.h + ${LL_SOURCE_DIR}/include/PsAlignedMalloc.h + ${LL_SOURCE_DIR}/include/PsAlloca.h + ${LL_SOURCE_DIR}/include/PsAllocator.h + ${LL_SOURCE_DIR}/include/PsAoS.h + ${LL_SOURCE_DIR}/include/PsArray.h + ${LL_SOURCE_DIR}/include/PsAtomic.h + ${LL_SOURCE_DIR}/include/PsBasicTemplates.h + ${LL_SOURCE_DIR}/include/PsBitUtils.h + ${LL_SOURCE_DIR}/include/PsBroadcast.h + ${LL_SOURCE_DIR}/include/PsCpu.h + ${LL_SOURCE_DIR}/include/PsFoundation.h + ${LL_SOURCE_DIR}/include/PsFPU.h + ${LL_SOURCE_DIR}/include/PsHash.h + ${LL_SOURCE_DIR}/include/PsHashInternals.h + ${LL_SOURCE_DIR}/include/PsHashMap.h + ${LL_SOURCE_DIR}/include/PsHashSet.h + ${LL_SOURCE_DIR}/include/PsInlineAllocator.h + ${LL_SOURCE_DIR}/include/PsInlineAoS.h + ${LL_SOURCE_DIR}/include/PsInlineArray.h + ${LL_SOURCE_DIR}/include/PsIntrinsics.h + ${LL_SOURCE_DIR}/include/PsMathUtils.h + ${LL_SOURCE_DIR}/include/PsMutex.h + ${LL_SOURCE_DIR}/include/PsPool.h + ${LL_SOURCE_DIR}/include/PsSList.h + ${LL_SOURCE_DIR}/include/PsSocket.h + ${LL_SOURCE_DIR}/include/PsSort.h + ${LL_SOURCE_DIR}/include/PsSortInternals.h + ${LL_SOURCE_DIR}/include/PsString.h + ${LL_SOURCE_DIR}/include/PsSync.h + ${LL_SOURCE_DIR}/include/PsTempAllocator.h + ${LL_SOURCE_DIR}/include/PsThread.h + ${LL_SOURCE_DIR}/include/PsTime.h + ${LL_SOURCE_DIR}/include/PsUserAllocated.h + ${LL_SOURCE_DIR}/include/PsUtilities.h + ${LL_SOURCE_DIR}/include/PsVecMath.h + ${LL_SOURCE_DIR}/include/PsVecMathAoSScalar.h + ${LL_SOURCE_DIR}/include/PsVecMathAoSScalarInline.h + ${LL_SOURCE_DIR}/include/PsVecMathSSE.h + ${LL_SOURCE_DIR}/include/PsVecMathUtilities.h + ${LL_SOURCE_DIR}/include/PsVecQuat.h + ${LL_SOURCE_DIR}/include/PsVecTransform.h +) +SOURCE_GROUP(src\\include FILES ${PXFOUNDATION_SOURCE_HEADERS}) + +ADD_LIBRARY(PxFoundation ${PXFOUNDATION_LIBTYPE} + ${PXFOUNDATION_SOURCE} + ${PXFOUNDATION_SOURCE_HEADERS} + ${PXFOUNDATION_HEADERS} + + ${PXFOUNDATION_PLATFORM_FILES} +) + +TARGET_INCLUDE_DIRECTORIES(PxFoundation + PRIVATE ${PXSHARED_SOURCE_DIR}/../include + PRIVATE ${LL_SOURCE_DIR}/include + + PRIVATE ${PXFOUNDATION_PLATFORM_INCLUDES} +) + +TARGET_COMPILE_DEFINITIONS(PxFoundation + PRIVATE ${PXFOUNDATION_COMPILE_DEFS} +) + +SET_TARGET_PROPERTIES(PxFoundation PROPERTIES + COMPILE_PDB_NAME_DEBUG "PxFoundation${CMAKE_DEBUG_POSTFIX}" + COMPILE_PDB_NAME_CHECKED "PxFoundation${CMAKE_CHECKED_POSTFIX}" + COMPILE_PDB_NAME_PROFILE "PxFoundation${CMAKE_PROFILE_POSTFIX}" + COMPILE_PDB_NAME_RELEASE "PxFoundation${CMAKE_RELEASE_POSTFIX}" +)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/common/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/common/PxPvdSDK.cmake new file mode 100644 index 0000000..7014209 --- /dev/null +++ b/PxShared/src/compiler/cmake/common/PxPvdSDK.cmake @@ -0,0 +1,123 @@ +# +# Build PxPvdSDK common +# + +SET(PXPVDSDK_HEADERS + ${PROJECT_SOURCE_DIR}/../../../../include/pvd/PxPvd.h + ${PROJECT_SOURCE_DIR}/../../../../include/pvd/PxPvdTransport.h +) +SOURCE_GROUP(include FILES ${PXPVDSDK_HEADERS}) + +SET(PXPVDSDK_SOURCE + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileBase.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileCompileTimeEventFilter.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileContextProvider.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileContextProviderImpl.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileDataBuffer.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileDataParsing.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventBuffer.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventBufferAtomic.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventBufferClient.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventBufferClientManager.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventFilter.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventHandler.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventId.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventImpl.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventMutex.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventNames.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventParser.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEvents.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventSender.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventSerialization.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileEventSystem.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemory.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryBuffer.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventBuffer.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventParser.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventRecorder.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventReflexiveWriter.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEvents.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventSummarizer.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileMemoryEventTypes.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileScopedEvent.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileScopedMutexLock.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileZone.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileZoneImpl.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileZoneManager.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxProfileZoneManagerImpl.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvd.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdBits.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdByteStreams.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdCommStreamEvents.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdCommStreamEventSink.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdCommStreamSDKEventTypes.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdCommStreamTypes.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDataStream.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDefaultFileTransport.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDefaultFileTransport.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDefaultSocketTransport.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdDefaultSocketTransport.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdFoundation.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdImpl.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdImpl.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdInternalByteStreams.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdMarshalling.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdMemClient.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdMemClient.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModel.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModelInternalTypeDefs.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModelInternalTypes.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModelMetaData.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectModelMetaData.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectRegistrar.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdObjectRegistrar.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdProfileZoneClient.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdProfileZoneClient.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdUserRenderer.cpp + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdUserRenderImpl.h + ${PXSHARED_SOURCE_DIR}/pvd/src/PxPvdUserRenderTypes.h +) +SOURCE_GROUP(src\\src FILES ${PXPVDSDK_SOURCE}) + +SET(PXPVDSDK_INTERNAL_HEADERS + ${PXSHARED_SOURCE_DIR}/pvd/include/PsPvd.h + ${PXSHARED_SOURCE_DIR}/pvd/include/PxProfileAllocatorWrapper.h + ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdClient.h + ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdDataStream.h + ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdDataStreamHelpers.h + ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdErrorCodes.h + ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdObjectModelBaseTypes.h + ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdRenderBuffer.h + ${PXSHARED_SOURCE_DIR}/pvd/include/PxPvdUserRenderer.h +) +SOURCE_GROUP(src\\include FILES ${PXPVDSDK_INTERNAL_HEADERS}) + +ADD_LIBRARY(PxPvdSDK ${PXPVDSDK_LIBTYPE} + ${PXPVDSDK_HEADERS} + + ${PXPVDSDK_INTERNAL_HEADERS} + ${PXPVDSDK_SOURCE} + + ${PXPVDSDK_PLATFORM_FILES} +) + +TARGET_INCLUDE_DIRECTORIES(PxPvdSDK + PRIVATE ${PXSHARED_SOURCE_DIR}/../include + PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include + PRIVATE ${PXSHARED_SOURCE_DIR}/pvd/include + PRIVATE ${PXSHARED_SOURCE_DIR}/filebuf/include + + PRIVATE ${PXPVDSDK_PLATFORM_INCLUDES} + +) + +TARGET_COMPILE_DEFINITIONS(PxPvdSDK + PRIVATE ${PXPVDSDK_COMPILE_DEFS} +) + +SET_TARGET_PROPERTIES(PxPvdSDK PROPERTIES + COMPILE_PDB_NAME_DEBUG "PxPvdSDK${CMAKE_DEBUG_POSTFIX}" + COMPILE_PDB_NAME_CHECKED "PxPvdSDK${CMAKE_CHECKED_POSTFIX}" + COMPILE_PDB_NAME_PROFILE "PxPvdSDK${CMAKE_PROFILE_POSTFIX}" + COMPILE_PDB_NAME_RELEASE "PxPvdSDK${CMAKE_RELEASE_POSTFIX}" +)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/common/PxTask.cmake b/PxShared/src/compiler/cmake/common/PxTask.cmake new file mode 100644 index 0000000..0d1cd1f --- /dev/null +++ b/PxShared/src/compiler/cmake/common/PxTask.cmake @@ -0,0 +1,44 @@ +# +# Build PxTask common +# + +SET(PXTASK_HEADERS + ${PROJECT_SOURCE_DIR}/../../../../include/task/PxCpuDispatcher.h + ${PROJECT_SOURCE_DIR}/../../../../include/task/PxGpuDispatcher.h + ${PROJECT_SOURCE_DIR}/../../../../include/task/PxGpuTask.h + ${PROJECT_SOURCE_DIR}/../../../../include/task/PxTask.h + ${PROJECT_SOURCE_DIR}/../../../../include/task/PxTaskDefine.h + ${PROJECT_SOURCE_DIR}/../../../../include/task/PxTaskManager.h +) +SOURCE_GROUP(include FILES ${PXTASK_HEADERS}) + +SET(PXTASK_SOURCE + ${PXSHARED_SOURCE_DIR}/task/src/TaskManager.cpp +) +SOURCE_GROUP(src FILES ${PXTASK_SOURCE}) + +ADD_LIBRARY(PxTask ${PXTASK_LIBTYPE} + ${PXTASK_HEADERS} + ${PXTASK_SOURCE} +) + +TARGET_INCLUDE_DIRECTORIES(PxTask + PRIVATE ${PXSHARED_SOURCE_DIR}/../include + PRIVATE ${PXSHARED_SOURCE_DIR}/cudamanager/include + PRIVATE ${PXSHARED_SOURCE_DIR}/foundation/include + + PRIVATE ${PXTASK_PLATFORM_INCLUDES} +) + +TARGET_COMPILE_DEFINITIONS(PxTask + PRIVATE ${PXTASK_COMPILE_DEFS} +) + +IF(NOT ${PXTASK_LIBTYPE} STREQUAL "OBJECT") + SET_TARGET_PROPERTIES(PxTask PROPERTIES + COMPILE_PDB_NAME_DEBUG "PxTask${CMAKE_DEBUG_POSTFIX}" + COMPILE_PDB_NAME_CHECKED "PxTask${CMAKE_CHECKED_POSTFIX}" + COMPILE_PDB_NAME_PROFILE "PxTask${CMAKE_PROFILE_POSTFIX}" + COMPILE_PDB_NAME_RELEASE "PxTask${CMAKE_RELEASE_POSTFIX}" + ) +ENDIF()
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/findfileswithspec.py b/PxShared/src/compiler/cmake/findfileswithspec.py new file mode 100644 index 0000000..484ff4f --- /dev/null +++ b/PxShared/src/compiler/cmake/findfileswithspec.py @@ -0,0 +1,23 @@ +import os,argparse,sys,string + +# +# Simple helper program - give it a path and it will list all of the files of the specified extension in relative format, using the +# pathroot variable as a substitution. This greatly simplifies one part of the process of creating a CMake file for a project +# +parser = argparse.ArgumentParser() +parser.add_argument("dir", help="Path to find files in") +parser.add_argument("extension", help="Spec to find (ie .cpp)") +parser.add_argument("--pathroot", help="Path variable to prepend to each line, example: ${PX_ROOT}", default="${DUDER}") + +args = parser.parse_args() + +if not os.path.exists(args.dir): + print("Unable to find path {}".format(args.dir)) + exit(1) + +for root, dirs, files in os.walk(args.dir): + for file in files: + if file.endswith(args.extension): + result = os.path.join(root, file) + + print(result.replace(args.dir, args.pathroot)) diff --git a/PxShared/src/compiler/cmake/html5/CMakeLists.txt b/PxShared/src/compiler/cmake/html5/CMakeLists.txt new file mode 100644 index 0000000..8b9587a --- /dev/null +++ b/PxShared/src/compiler/cmake/html5/CMakeLists.txt @@ -0,0 +1,36 @@ +cmake_minimum_required(VERSION 3.3) +#set(CMAKE_VERBOSE_MAKEFILE ON) +include(../common/CMakeLists.txt) + + +IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to HTML5 + SET(TARGET_BUILD_PLATFORM "HTML5") +ENDIF() + +SET(PLATFORM_LIST HTML5) + +IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST) + MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM}) +ENDIF() + +SET(CMAKE_CXX_FLAGS "${EPIC_BUILD_FLAGS} -fdiagnostics-show-option -fno-rtti -fno-exceptions -ffast-math -ffunction-sections -fdata-sections -Werror -ferror-limit=0 -Wall -Wextra -fstrict-aliasing -Wstrict-aliasing=2 -pedantic -Weverything -Wno-c++11-long-long -Wno-padded -Wno-reserved-id-macro -Wno-float-equal -Wno-sign-conversion -Wno-covered-switch-default -Wno-documentation-unknown-command -Wno-weak-vtables -Wno-missing-prototypes -Wno-unused-local-typedef -Wno-float-conversion -Wno-global-constructors -Wno-missing-variable-declarations -Wno-exit-time-destructors -Wno-unused-macros -Wno-undef -Wno-c++11-extra-semi -Wno-c++11-extensions -Wno-non-virtual-dtor -Wno-unknown-pragmas -Wno-old-style-cast -Wno-extra-semi -Wno-cast-align -Wno-documentation -Wno-shadow -Wno-conversion -Wno-newline-eof -Wno-header-hygiene -Wno-switch-enum -Wno-undefined-reinterpret-cast -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -Wno-overloaded-virtual -Wno-dynamic-class-memaccess -Wno-nested-anon-types -Wno-invalid-offsetof -Wno-reorder -Wno-local-type-template-args -Wno-unreachable-code -Wno-unreachable-code-return -Wno-format-pedantic -Wno-unused-private-field -Wno-unused-parameter -Wno-unused-member-function -Wno-used-but-marked-unused -Wno-unused-variable -Wno-format-nonliteral -Wno-shift-sign-overflow -Wno-comma -Wno-expansion-to-defined -Wno-undefined-func-template -Wno-weak-template-vtables -Wno-double-promotion -Wno-nonportable-include-path -Wno-disabled-macro-expansion -Wno-missing-noreturn") +SET(CMAKE_STATIC_LIBRARY_PREFIX "") + +SET(PXSHARED_HTML5_COMPILE_DEFS _LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE) +SET(PXSHARED_HTML5_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1) +SET(PXSHARED_HTML5_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1) +SET(PXSHARED_HTML5_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1) +SET(PXSHARED_HTML5_RELEASE_COMPILE_DEFS NDEBUG) + +SET(CMAKE_DEBUG_POSTFIX $ENV{LIB_SUFFIX}) +SET(CMAKE_PROFILE_POSTFIX $ENV{LIB_SUFFIX}) +SET(CMAKE_CHECKED_POSTFIX $ENV{LIB_SUFFIX}) +SET(CMAKE_RELEASE_POSTFIX $ENV{LIB_SUFFIX}) + +# Include project cmake files here +INCLUDE(PxFoundation.cmake) +INCLUDE(PsFastXml.cmake) +INCLUDE(PxPvdSDK.cmake) +INCLUDE(PxTask.cmake) +# INCLUDE(PxCudaContextManager.cmake) + diff --git a/PxShared/src/compiler/cmake/html5/PsFastXml.cmake b/PxShared/src/compiler/cmake/html5/PsFastXml.cmake new file mode 100644 index 0000000..3279134 --- /dev/null +++ b/PxShared/src/compiler/cmake/html5/PsFastXml.cmake @@ -0,0 +1,26 @@ +# +# Build PsFastXml +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml) + +SET(PLATFORM_INCLUDES + $ENV{EMSCRIPTEN}/system/include +) + +# Use generator expressions to set config specific preprocessor definitions +SET(PSFASTXML_COMPILE_DEFS + + # Common to all configurations + ${PXSHARED_HTML5_COMPILE_DEFS};PX_FOUNDATION_DLL=0; + + $<$<CONFIG:debug>:${PXSHARED_HTML5_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_HTML5_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_HTML5_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_HTML5_RELEASE_COMPILE_DEFS};> +) + +# include PsFastXml common +INCLUDE(../common/PsFastXml.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/html5/PxFoundation.cmake b/PxShared/src/compiler/cmake/html5/PxFoundation.cmake new file mode 100644 index 0000000..a78e4e6 --- /dev/null +++ b/PxShared/src/compiler/cmake/html5/PxFoundation.cmake @@ -0,0 +1,41 @@ +# +# Build PxFoundation +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation) + +SET(PXFOUNDATION_LIBTYPE STATIC) + +SET(PXFOUNDATION_PLATFORM_FILES + ${LL_SOURCE_DIR}/src/unix/PsUnixAtomic.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixCpu.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixFPU.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixMutex.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixPrintString.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSList.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSocket.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixSync.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixThread.cpp + ${LL_SOURCE_DIR}/src/unix/PsUnixTime.cpp +) + +SET(PXFOUNDATION_PLATFORM_INCLUDES + $ENV{EMSCRIPTEN}/system/include + ${LL_SOURCE_DIR}/include/unix +) + +SET(PXFOUNDATION_COMPILE_DEFS + + # Common to all configurations + ${PXSHARED_HTML5_COMPILE_DEFS} + + $<$<CONFIG:debug>:${PXSHARED_HTML5_DEBUG_COMPILE_DEFS}> + $<$<CONFIG:checked>:${PXSHARED_HTML5_CHECKED_COMPILE_DEFS}> + $<$<CONFIG:profile>:${PXSHARED_HTML5_PROFILE_COMPILE_DEFS}> + $<$<CONFIG:release>:${PXSHARED_HTML5_RELEASE_COMPILE_DEFS}> +) + +# include PxFoundation common +INCLUDE(../common/PxFoundation.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/html5/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/html5/PxPvdSDK.cmake new file mode 100644 index 0000000..36a465f --- /dev/null +++ b/PxShared/src/compiler/cmake/html5/PxPvdSDK.cmake @@ -0,0 +1,31 @@ +# +# Build PxPvdSDK +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd) + + SET(PXPVDSDK_LIBTYPE STATIC) + + SET(PXPVDSDK_PLATFORM_INCLUDES + $ENV{EMSCRIPTEN}/system/include + ) + + # Use generator expressions to set config specific preprocessor definitions + SET(PXPVDSDK_COMPILE_DEFS + ${PXSHARED_HTML5_COMPILE_DEFS} + + $<$<CONFIG:debug>:${PXSHARED_HTML5_DEBUG_COMPILE_DEFS}> + $<$<CONFIG:checked>:${PXSHARED_HTML5_CHECKED_COMPILE_DEFS}> + $<$<CONFIG:profile>:${PXSHARED_HTML5_PROFILE_COMPILE_DEFS}> + $<$<CONFIG:release>:${PXSHARED_HTML5_RELEASE_COMPILE_DEFS}> + ) + +# include PxPvdSDK common +INCLUDE(../common/PxPvdSDK.cmake) + +# Add linked libraries +TARGET_LINK_LIBRARIES(PxPvdSDK PRIVATE PxFoundation) + + diff --git a/PxShared/src/compiler/cmake/html5/PxTask.cmake b/PxShared/src/compiler/cmake/html5/PxTask.cmake new file mode 100644 index 0000000..5c00c13 --- /dev/null +++ b/PxShared/src/compiler/cmake/html5/PxTask.cmake @@ -0,0 +1,22 @@ +# +# Build PxTask +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/task) + +SET(PXTASK_PLATFORM_INCLUDES + $ENV{EMSCRIPTEN}/system/include +) + +SET(PXTASK_COMPILE_DEFS + ${PXSHARED_HTML5_COMPILE_DEFS};PX_FOUNDATION_DLL=0; + $<$<CONFIG:debug>:${PXSHARED_HTML5_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_HTML5_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_HTML5_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_HTML5_RELEASE_COMPILE_DEFS};> +) + +# include PxTask common +INCLUDE(../common/PxTask.cmake) diff --git a/PxShared/src/compiler/cmake/windows/CMakeLists.txt b/PxShared/src/compiler/cmake/windows/CMakeLists.txt new file mode 100644 index 0000000..39b7dfc --- /dev/null +++ b/PxShared/src/compiler/cmake/windows/CMakeLists.txt @@ -0,0 +1,90 @@ +cmake_minimum_required(VERSION 3.3) +include(../common/CMakeLists.txt) + + +IF(NOT DEFINED TARGET_BUILD_PLATFORM) # Not defined, default to Windows + SET(TARGET_BUILD_PLATFORM "Windows") +ENDIF() + +SET(PLATFORM_LIST Windows) + +IF (NOT ${TARGET_BUILD_PLATFORM} IN_LIST PLATFORM_LIST) + MESSAGE(FATAL_ERROR "Invalid platform:" ${TARGET_BUILD_PLATFORM}) +ENDIF() + +SET(CMAKE_CXX_FLAGS "/Wall /wd4514 /wd4820 /wd4127 /wd4710 /wd4711 /wd4577 /d2Zi+ /WX /W4 /GF /GS- /GR- /Gd /fp:fast") + +IF(DEFINED STATIC_WINCRT) + SET(WINCRT_NDEBUG "/MT") + SET(WINCRT_DEBUG "/MTd") +ELSE() + SET(WINCRT_NDEBUG "/MD") + SET(WINCRT_DEBUG "/MDd") +ENDIF() + +SET(CMAKE_CXX_FLAGS_DEBUG "/Od ${WINCRT_DEBUG} /RTCu /Zi") +SET(CMAKE_CXX_FLAGS_CHECKED "/Ox ${WINCRT_NDEBUG} /Zi") +SET(CMAKE_CXX_FLAGS_PROFILE "/Ox ${WINCRT_NDEBUG} /Zi") +SET(CMAKE_CXX_FLAGS_RELEASE "/Ox ${WINCRT_NDEBUG} /Zi") + +# Build PDBs for all configurations +SET(CMAKE_SHARED_LINKER_FLAGS "/DEBUG") + +# Controls PX_NVTX for all projects on windows +SET(PXSHARED_WINDOWS_ENABLE_NVTX 0) + +IF(DEFINED PX_GENERATE_GPU_PROJECTS) +SET(PXSHARED_WINDOWS_COMPILE_DEFS WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINSOCK_DEPRECATED_NO_WARNINGS;) +ELSE() +# Disable cuda and dx for all projects on windows +SET(PXSHARED_WINDOWS_COMPILE_DEFS WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINSOCK_DEPRECATED_NO_WARNINGS;DISABLE_CUDA_PHYSX;) +ENDIF() +SET(PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS _DEBUG;PX_DEBUG=1;PX_CHECKED=1;PX_NVTX=${PXSHARED_WINDOWS_ENABLE_NVTX}) +SET(PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS NDEBUG;PX_CHECKED=1;PX_NVTX=${PXSHARED_WINDOWS_ENABLE_NVTX}) +SET(PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS NDEBUG;PX_PROFILE=1;PX_NVTX=${PXSHARED_WINDOWS_ENABLE_NVTX}) +SET(PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS NDEBUG) + +IF(CMAKE_CL_64) + ADD_DEFINITIONS(-DWIN64) +ENDIF(CMAKE_CL_64) + +IF(CMAKE_CL_64) + SET(LIBPATH_SUFFIX "x64") +ELSE(CMAKE_CL_64) + SET(LIBPATH_SUFFIX "x86") +ENDIF(CMAKE_CL_64) + +SET(CMAKE_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}_${LIBPATH_SUFFIX}") +SET(CMAKE_PROFILE_POSTFIX "${CMAKE_PROFILE_POSTFIX}_${LIBPATH_SUFFIX}") +SET(CMAKE_CHECKED_POSTFIX "${CMAKE_CHECKED_POSTFIX}_${LIBPATH_SUFFIX}") +SET(CMAKE_RELEASE_POSTFIX "${CMAKE_RELEASE_POSTFIX}_${LIBPATH_SUFFIX}") + +# Include project cmake files here +IF(DEFINED PX_SELECT_COMPONENTS) + if ("PxFoundation" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PxFoundation.cmake) + endif() + if ("PsFastXml" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PsFastXml.cmake) + endif() + if ("PxPvdSDK" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PxPvdSDK.cmake) + endif() + if ("PxTask" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PxTask.cmake) + endif() + if ("PxCudaContextManager" IN_LIST PX_SELECT_COMPONENTS) + IF(DEFINED PX_GENERATE_GPU_PROJECTS) + INCLUDE(PxCudaContextManager.cmake) + ENDIF() + endif() +ELSE() +INCLUDE(PxFoundation.cmake) +INCLUDE(PsFastXml.cmake) +INCLUDE(PxPvdSDK.cmake) +INCLUDE(PxTask.cmake) +IF(DEFINED PX_GENERATE_GPU_PROJECTS) + INCLUDE(PxCudaContextManager.cmake) +ENDIF() +ENDIF() + diff --git a/PxShared/src/compiler/cmake/windows/PsFastXml.cmake b/PxShared/src/compiler/cmake/windows/PsFastXml.cmake new file mode 100644 index 0000000..862b06e --- /dev/null +++ b/PxShared/src/compiler/cmake/windows/PsFastXml.cmake @@ -0,0 +1,21 @@ +# +# Build PsFastXml +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/fastxml) + +# Use generator expressions to set config specific preprocessor definitions +SET(PSFASTXML_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_WINDOWS_COMPILE_DEFS};PX_FOUNDATION_DLL=0; + + $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};> +) + +# include PsFastXml common +INCLUDE(../common/PsFastXml.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/windows/PxCudaContextManager.cmake b/PxShared/src/compiler/cmake/windows/PxCudaContextManager.cmake new file mode 100644 index 0000000..6b59d6e --- /dev/null +++ b/PxShared/src/compiler/cmake/windows/PxCudaContextManager.cmake @@ -0,0 +1,32 @@ +# +# Build PxCudaContextManager +# +FIND_PACKAGE(CUDA REQUIRED) + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/cudamanager) + +SET(CUDA_COMPILER_OPTION_DEBUG "--compiler-options=/W3,/nologo,/Ot,/Ox,/Zi,${WINCRT_DEBUG}") +SET(CUDA_COMPILER_OPTION_CHECKED "--compiler-options=/W3,/nologo,/Ot,/Ox,/Zi,${WINCRT_NDEBUG}") +SET(CUDA_COMPILER_OPTION_PROFILE "--compiler-options=/W3,/nologo,/Ot,/Ox,/Zi,${WINCRT_NDEBUG}") +SET(CUDA_COMPILER_OPTION_RELEASE "--compiler-options=/W3,/nologo,/Ot,/Ox,/Zi,${WINCRT_NDEBUG}") + +# include PxCudaContextManager common +INCLUDE(../common/PxCudaContextManager.cmake) + +# No linked libraries + +# Use generator expressions to set config specific preprocessor definitions +TARGET_COMPILE_DEFINITIONS(PxCudaContextManager + + # Common to all configurations + PRIVATE ${PXSHARED_WINDOWS_COMPILE_DEFS}; + + PRIVATE $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};> + PRIVATE $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};> + PRIVATE $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};> + PRIVATE $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};> +) + +#TODO: Link flags diff --git a/PxShared/src/compiler/cmake/windows/PxFoundation.cmake b/PxShared/src/compiler/cmake/windows/PxFoundation.cmake new file mode 100644 index 0000000..31de53b --- /dev/null +++ b/PxShared/src/compiler/cmake/windows/PxFoundation.cmake @@ -0,0 +1,70 @@ +# +# Build PxFoundation +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation) + +SET(PXFOUNDATION_LIBTYPE SHARED) + +SET(PXFOUNDATION_RESOURCE_FILE + ${PXSHARED_SOURCE_DIR}/compiler/resource_${LIBPATH_SUFFIX}/PxFoundation.rc +) +SOURCE_GROUP(resource FILES ${PXFOUNDATION_RESOURCE_FILE}) + +SET(PXFOUNDATION_PLATFORM_HEADERS + ${PXSHARED_SOURCE_DIR}/../include/foundation/windows/PxWindowsIntrinsics.h + ${PXSHARED_SOURCE_DIR}/../include/foundation/windows/PxWindowsFoundationDelayLoadHook.h +) +SOURCE_GROUP(include\\windows FILES ${PXFOUNDATION_PLATFORM_HEADERS}) + +SET(PXFOUNDATION_PLATFORM_SOURCE + ${LL_SOURCE_DIR}/src/windows/PsWindowsAtomic.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsCpu.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsFPU.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsMutex.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsPrintString.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsSList.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsSocket.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsSync.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsThread.cpp + ${LL_SOURCE_DIR}/src/windows/PsWindowsTime.cpp +) +SOURCE_GROUP(src\\src\\windows FILES ${PXFOUNDATION_PLATFORM_SOURCE}) + +SET(PXFOUNDATION_PLATFORM_SOURCE_HEADERS + ${LL_SOURCE_DIR}/include/windows/PsWindowsAoS.h + ${LL_SOURCE_DIR}/include/windows/PsWindowsFPU.h + ${LL_SOURCE_DIR}/include/windows/PsWindowsInclude.h + ${LL_SOURCE_DIR}/include/windows/PsWindowsInlineAoS.h + ${LL_SOURCE_DIR}/include/windows/PsWindowsIntrinsics.h + ${LL_SOURCE_DIR}/include/windows/PsWindowsLoadLibrary.h + ${LL_SOURCE_DIR}/include/windows/PsWindowsTrigConstants.h +) +SOURCE_GROUP(src\\include\\windows FILES ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS}) + + +SET(PXFOUNDATION_PLATFORM_FILES + ${PXFOUNDATION_PLATFORM_SOURCE} + ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS} + ${PXFOUNDATION_PLATFORM_HEADERS} + ${PXFOUNDATION_RESOURCE_FILE} +) + +SET(PXFOUNDATION_PLATFORM_INCLUDES + ${LL_SOURCE_DIR}/include/windows +) + +SET(PXFOUNDATION_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_WINDOWS_COMPILE_DEFS};PX_FOUNDATION_DLL=1; + + $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};> +) + +# include PxFoundation common +INCLUDE(../common/PxFoundation.cmake)
\ No newline at end of file diff --git a/PxShared/src/compiler/cmake/windows/PxPvdSDK.cmake b/PxShared/src/compiler/cmake/windows/PxPvdSDK.cmake new file mode 100644 index 0000000..287ec1c --- /dev/null +++ b/PxShared/src/compiler/cmake/windows/PxPvdSDK.cmake @@ -0,0 +1,55 @@ +# +# Build PxPvdSDK +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/pvd) + +FIND_PACKAGE(nvToolsExt REQUIRED) + +SET(PXPVDSDK_LIBTYPE SHARED) + +SET(PXPVDSDK_RESOURCE_FILE + ${PXSHARED_SOURCE_DIR}/compiler/resource_${LIBPATH_SUFFIX}/PxPvdSDK.rc +) +SOURCE_GROUP(resource FILES ${PXPVDSDK_RESOURCE_FILE}) + +SET(PXPVDSDK_PLATFORM_HEADERS + ${PXSHARED_SOURCE_DIR}/../include/pvd/windows/PxWindowsPvdDelayLoadHook.h +) +SOURCE_GROUP(include\\windows FILES ${PXPVDSDK_PLATFORM_HEADERS}) + +SET(PXPVDSDK_PLATFORM_SOURCE + ${PXSHARED_SOURCE_DIR}/pvd/src/windows/PxWindowsPvdDelayLoadHook.cpp +) +SOURCE_GROUP(src\\src\\windows FILES ${PXPVDSDK_PLATFORM_SOURCE}) + +SET(PXPVDSDK_PLATFORM_FILES + ${PXPVDSDK_RESOURCE_FILE} + ${PXPVDSDK_PLATFORM_HEADERS} + ${PXPVDSDK_PLATFORM_SOURCE} +) + +SET(PXPVDSDK_PLATFORM_INCLUDES + ${NVTOOLSEXT_INCLUDE_DIRS} +) + +# Use generator expressions to set config specific preprocessor definitions +SET(PXPVDSDK_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_WINDOWS_COMPILE_DEFS};PX_PVDSDK_DLL=1;PX_FOUNDATION_DLL=1; + + $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};> +) + +# include PxPvdSDK common +INCLUDE(../common/PxPvdSDK.cmake) + +# Add linked libraries +TARGET_LINK_LIBRARIES(PxPvdSDK PUBLIC ${NVTOOLSEXT_LIBRARIES} PxFoundation) + + diff --git a/PxShared/src/compiler/cmake/windows/PxTask.cmake b/PxShared/src/compiler/cmake/windows/PxTask.cmake new file mode 100644 index 0000000..32d4b39 --- /dev/null +++ b/PxShared/src/compiler/cmake/windows/PxTask.cmake @@ -0,0 +1,19 @@ +# +# Build PxTask +# + +SET(PXSHARED_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../../../../src) + +SET(PXTASK_COMPILE_DEFS + ${PXSHARED_WINDOWS_COMPILE_DEFS};_LIB + + $<$<CONFIG:debug>:${PXSHARED_WINDOWS_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_WINDOWS_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_WINDOWS_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_WINDOWS_RELEASE_COMPILE_DEFS};> +) + +SET(PXTASK_LIBTYPE STATIC) + +# include PxTask common +INCLUDE(../common/PxTask.cmake) diff --git a/PxShared/src/compiler/resource_x64/PxFoundation.rc b/PxShared/src/compiler/resource_x64/PxFoundation.rc Binary files differnew file mode 100644 index 0000000..dfcfde2 --- /dev/null +++ b/PxShared/src/compiler/resource_x64/PxFoundation.rc diff --git a/PxShared/src/compiler/resource_x64/PxPvdSDK.rc b/PxShared/src/compiler/resource_x64/PxPvdSDK.rc Binary files differnew file mode 100644 index 0000000..37308cf --- /dev/null +++ b/PxShared/src/compiler/resource_x64/PxPvdSDK.rc diff --git a/PxShared/src/compiler/resource_x64/resource.h b/PxShared/src/compiler/resource_x64/resource.h new file mode 100644 index 0000000..b421bea --- /dev/null +++ b/PxShared/src/compiler/resource_x64/resource.h @@ -0,0 +1,44 @@ +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and related documentation and +// any modifications thereto. Any use, reproduction, disclosure, or +// distribution of this software and related documentation without an express +// license agreement from NVIDIA Corporation is strictly prohibited. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2004 NovodeX AG. All rights reserved. + +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by PxFoundation.rc +// + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/PxShared/src/compiler/resource_x86/PxFoundation.rc b/PxShared/src/compiler/resource_x86/PxFoundation.rc Binary files differnew file mode 100644 index 0000000..8b1085d --- /dev/null +++ b/PxShared/src/compiler/resource_x86/PxFoundation.rc diff --git a/PxShared/src/compiler/resource_x86/PxPvdSDK.rc b/PxShared/src/compiler/resource_x86/PxPvdSDK.rc Binary files differnew file mode 100644 index 0000000..90636c2 --- /dev/null +++ b/PxShared/src/compiler/resource_x86/PxPvdSDK.rc diff --git a/PxShared/src/compiler/resource_x86/resource.h b/PxShared/src/compiler/resource_x86/resource.h new file mode 100644 index 0000000..b421bea --- /dev/null +++ b/PxShared/src/compiler/resource_x86/resource.h @@ -0,0 +1,44 @@ +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and related documentation and +// any modifications thereto. Any use, reproduction, disclosure, or +// distribution of this software and related documentation without an express +// license agreement from NVIDIA Corporation is strictly prohibited. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. +// Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved. +// Copyright (c) 2001-2004 NovodeX AG. All rights reserved. + +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by PxFoundation.rc +// + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif |