aboutsummaryrefslogtreecommitdiff
path: root/PxShared/src/compiler/cmake/windows
diff options
context:
space:
mode:
authormtamis <[email protected]>2017-02-15 16:06:25 +0100
committermtamis <[email protected]>2017-02-15 16:06:25 +0100
commit85305930aeeb1d513e23522bd91f29ba81aa6d14 (patch)
tree45f1bb20a45a300d1fef107e436cac95602a0e57 /PxShared/src/compiler/cmake/windows
downloadnvcloth-85305930aeeb1d513e23522bd91f29ba81aa6d14.tar.xz
nvcloth-85305930aeeb1d513e23522bd91f29ba81aa6d14.zip
NvCloth library v1.0.0
Diffstat (limited to 'PxShared/src/compiler/cmake/windows')
-rw-r--r--PxShared/src/compiler/cmake/windows/CMakeLists.txt90
-rw-r--r--PxShared/src/compiler/cmake/windows/PsFastXml.cmake21
-rw-r--r--PxShared/src/compiler/cmake/windows/PxCudaContextManager.cmake32
-rw-r--r--PxShared/src/compiler/cmake/windows/PxFoundation.cmake70
-rw-r--r--PxShared/src/compiler/cmake/windows/PxPvdSDK.cmake55
-rw-r--r--PxShared/src/compiler/cmake/windows/PxTask.cmake19
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)