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/cmake/windows | |
| download | nvcloth-85305930aeeb1d513e23522bd91f29ba81aa6d14.tar.xz nvcloth-85305930aeeb1d513e23522bd91f29ba81aa6d14.zip | |
NvCloth library v1.0.0
Diffstat (limited to 'PxShared/src/compiler/cmake/windows')
6 files changed, 287 insertions, 0 deletions
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) |