diff options
| author | Marijn Tamis <[email protected]> | 2018-05-03 18:22:48 +0200 |
|---|---|---|
| committer | Marijn Tamis <[email protected]> | 2018-05-03 18:22:48 +0200 |
| commit | ca32c59a58d37c1822e185a2d5f3d0d3e8943593 (patch) | |
| tree | b06b9eec03f34344ef8fc31aa147b2714d3962ee /PxShared/src/compiler/cmake | |
| parent | Forced rename of platform folders in cmake dir. Git didn't pick this up before. (diff) | |
| download | nvcloth-ca32c59a58d37c1822e185a2d5f3d0d3e8943593.tar.xz nvcloth-ca32c59a58d37c1822e185a2d5f3d0d3e8943593.zip | |
NvCloth 1.1.4 Release. (24070740)
Diffstat (limited to 'PxShared/src/compiler/cmake')
| -rw-r--r-- | PxShared/src/compiler/cmake/CMakeLists.txt | 84 | ||||
| -rw-r--r-- | PxShared/src/compiler/cmake/PxFoundation.cmake | 171 | ||||
| -rw-r--r-- | PxShared/src/compiler/cmake/templates/ProjectVersion.cmake.in | 24 | ||||
| -rw-r--r-- | PxShared/src/compiler/cmake/uwp/CMakeLists.txt | 64 | ||||
| -rw-r--r-- | PxShared/src/compiler/cmake/uwp/PxFoundation.cmake | 97 |
5 files changed, 440 insertions, 0 deletions
diff --git a/PxShared/src/compiler/cmake/CMakeLists.txt b/PxShared/src/compiler/cmake/CMakeLists.txt new file mode 100644 index 0000000..680a8ca --- /dev/null +++ b/PxShared/src/compiler/cmake/CMakeLists.txt @@ -0,0 +1,84 @@ +cmake_minimum_required(VERSION 3.7) +PROJECT(PxShared C CXX) + +OPTION(PX_GENERATE_GPU_PROJECTS "Generate the GPU projects" ON) +OPTION(PX_SCALAR_MATH "Forces the usage of non-SIMD vector math" OFF) + +SET(PXSHARED_MAJOR_VERSION 1) +SET(PXSHARED_MINOR_VERSION 1) +SET(PXSHARED_PATCH_VERSION 0) +SET(PXSHARED_VERSION ${PXSHARED_MAJOR_VERSION}.${PXSHARED_MINOR_VERSION}.${PXSHARED_PATCH_VERSION}) + +CMAKE_POLICY(SET CMP0057 NEW) # Enable IN_LIST +CMAKE_POLICY(SET CMP0007 OLD) # Stop complaining about empty entries in lists + +IF(NOT DEFINED PXSHARED_ROOT_DIR) + + STRING(REPLACE "\\" "/" BRD_TEMP $ENV{PXSHARED_ROOT_DIR}) + + # This env variable is set by GenerateProjects.bat, and is no longer available when CMake rebuilds, so this stores it in the cache + SET(PXSHARED_ROOT_DIR ${BRD_TEMP} CACHE INTERNAL "Root of the PxShared source tree") + +ENDIF() + +MESSAGE("PXSHARED ROOT ${PXSHARED_ROOT_DIR}") + +IF(NOT EXISTS ${PXSHARED_ROOT_DIR}) + MESSAGE(FATAL_ERROR "PXSHARED_ROOT_DIR environment variable wasn't set or was invalid.") +ENDIF() + +# GW_DEPS_ROOT can be defined by user to avoid packman usage +IF(NOT EXISTS ${GW_DEPS_ROOT}) + SET(GW_DEPS_ROOT $ENV{PM_PACKAGES_ROOT}) +ENDIF() + +IF(NOT DEFINED CMAKEMODULES_VERSION) + SET(CMAKEMODULES_PATH $ENV{PM_CMakeModules_PATH} CACHE INTERNAL "Path to CMakeModules") + SET(CMAKEMODULES_NAME $ENV{PM_CMakeModules_NAME} CACHE INTERNAL "CMakeModules name") + SET(CMAKEMODULES_VERSION $ENV{PM_CMakeModules_VERSION} CACHE INTERNAL "CMakeModules version from generation batch") +ENDIF() + +#TODO: More elegance +IF(NOT EXISTS ${CMAKEMODULES_PATH}) + MESSAGE(FATAL_ERROR "Could not find ${CMAKEMODULES_PATH}") +ENDIF() + +SET(CMAKE_MODULE_PATH "${CMAKEMODULES_PATH}") + +# Now set the paths + +INCLUDE(NvidiaBuildOptions) + +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() + +# 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() + +SET(PROJECT_CMAKE_FILES_DIR src/compiler/cmake) +SET(PLATFORM_CMAKELISTS ${PXSHARED_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/CMakeLists.txt) + +IF(NOT EXISTS ${PLATFORM_CMAKELISTS}) + MESSAGE(FATAL_ERROR "Unable to find platform CMakeLists.txt for ${TARGET_BUILD_PLATFORM} at ${PLATFORM_CMAKELISTS}") +ENDIF() + +# Include the platform specific CMakeLists +INCLUDE(${PXSHARED_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/CMakeLists.txt) diff --git a/PxShared/src/compiler/cmake/PxFoundation.cmake b/PxShared/src/compiler/cmake/PxFoundation.cmake new file mode 100644 index 0000000..098b216 --- /dev/null +++ b/PxShared/src/compiler/cmake/PxFoundation.cmake @@ -0,0 +1,171 @@ +# +# Build PxFoundation common +# + +SET(PXSHARED_SOURCE_DIR ${PXSHARED_ROOT_DIR}/src) +SET(LL_SOURCE_DIR ${PXSHARED_SOURCE_DIR}/foundation) + +# Include here after the directories are defined so that the platform specific file can use the variables. +include(${PXSHARED_ROOT_DIR}/${PROJECT_CMAKE_FILES_DIR}/${TARGET_BUILD_PLATFORM}/PxFoundation.cmake) + +SET(PXFOUNDATION_HEADERS + ${PXSHARED_ROOT_DIR}/include/foundation/Px.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxAllocatorCallback.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxAssert.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxBitAndData.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxBounds3.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxErrorCallback.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxErrors.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxFlags.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxFoundation.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxFoundationVersion.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxIntrinsics.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxIO.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxMat33.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxMat44.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxMath.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxMathUtils.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxMemory.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxPlane.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxPreprocessor.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxProfiler.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxQuat.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxSimpleTypes.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxStrideIterator.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxTransform.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxUnionCast.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxVec2.h + ${PXSHARED_ROOT_DIR}/include/foundation/PxVec3.h + ${PXSHARED_ROOT_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} +) + +# Add the headers to the install +INSTALL(FILES ${PXFOUNDATION_HEADERS} DESTINATION include/foundation) + +INSTALL(FILES ${PXFOUNDATION_SOURCE_HEADERS} DESTINATION src/foundation/include) + +TARGET_INCLUDE_DIRECTORIES(PxFoundation + PRIVATE ${PXSHARED_ROOT_DIR}/include + PRIVATE ${LL_SOURCE_DIR}/include + + PRIVATE ${PXFOUNDATION_PLATFORM_INCLUDES} + + INTERFACE $<INSTALL_INTERFACE:include>$<BUILD_INTERFACE:${PXSHARED_ROOT_DIR}/include> ${PXFOUNDATION_PLATFORM_INTERFACE_HEADERS} + INTERFACE $<INSTALL_INTERFACE:include/foundation>$<BUILD_INTERFACE:${PXSHARED_ROOT_DIR}/include/foundation> + #INTERFACE $<INSTALL_INTERFACE:include/foundation/windows>$<BUILD_INTERFACE:${PXSHARED_ROOT_DIR}/include/foundation/windows> + + # FIXME: This is really terrible! Don't export src directories + INTERFACE $<INSTALL_INTERFACE:src/foundation/include>$<BUILD_INTERFACE:${PXSHARED_ROOT_DIR}/src/foundation/include> + +) + +TARGET_COMPILE_DEFINITIONS(PxFoundation + PRIVATE ${PXFOUNDATION_COMPILE_DEFS} +) + +# Add linked libraries +TARGET_LINK_LIBRARIES(PxFoundation + PRIVATE ${PXFOUNDATION_PLATFORM_LINKED_LIBS} +) + + +IF(USE_GAMEWORKS_OUTPUT_DIRS AND PXFOUNDATION_LIBTYPE STREQUAL "STATIC") + SET_TARGET_PROPERTIES(PxFoundation PROPERTIES + ARCHIVE_OUTPUT_NAME_DEBUG "PxFoundation_static" + ARCHIVE_OUTPUT_NAME_CHECKED "PxFoundation_static" + ARCHIVE_OUTPUT_NAME_PROFILE "PxFoundation_static" + ARCHIVE_OUTPUT_NAME_RELEASE "PxFoundation_static" + ) + + IF(DEFINED CMAKE_DEBUG_POSTFIX) + SET_TARGET_PROPERTIES(PxFoundation PROPERTIES + COMPILE_PDB_NAME_DEBUG "PxFoundation_static_${CMAKE_DEBUG_POSTFIX}" + COMPILE_PDB_NAME_CHECKED "PxFoundation_static_${CMAKE_CHECKED_POSTFIX}" + COMPILE_PDB_NAME_PROFILE "PxFoundation_static_${CMAKE_PROFILE_POSTFIX}" + COMPILE_PDB_NAME_RELEASE "PxFoundation_static_${CMAKE_RELEASE_POSTFIX}" + ) + ELSE() + SET_TARGET_PROPERTIES(PxFoundation PROPERTIES + COMPILE_PDB_NAME_DEBUG "PxFoundation_static" + COMPILE_PDB_NAME_CHECKED "PxFoundation_static" + COMPILE_PDB_NAME_PROFILE "PxFoundation_static" + COMPILE_PDB_NAME_RELEASE "PxFoundation_static" + ) + ENDIF() +ELSE() + 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}" + ) +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/templates/ProjectVersion.cmake.in b/PxShared/src/compiler/cmake/templates/ProjectVersion.cmake.in new file mode 100644 index 0000000..650b862 --- /dev/null +++ b/PxShared/src/compiler/cmake/templates/ProjectVersion.cmake.in @@ -0,0 +1,24 @@ +set(PACKAGE_VERSION "@PXSHARED_VERSION@") + +if("@PXSHARED_VERSION@" MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.") # strip the tweak version + set(CVF_VERSION_NO_TWEAK "${CMAKE_MATCH_1}") +else() + set(CVF_VERSION_NO_TWEAK "1.1.0") +endif() + +if(PACKAGE_FIND_VERSION MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.") # strip the tweak version + set(REQUESTED_VERSION_NO_TWEAK "${CMAKE_MATCH_1}") +else() + set(REQUESTED_VERSION_NO_TWEAK "${PACKAGE_FIND_VERSION}") +endif() + +if(REQUESTED_VERSION_NO_TWEAK STREQUAL CVF_VERSION_NO_TWEAK) + set(PACKAGE_VERSION_COMPATIBLE TRUE) +else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) +endif() + +if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) +endif() + diff --git a/PxShared/src/compiler/cmake/uwp/CMakeLists.txt b/PxShared/src/compiler/cmake/uwp/CMakeLists.txt new file mode 100644 index 0000000..dd3250e --- /dev/null +++ b/PxShared/src/compiler/cmake/uwp/CMakeLists.txt @@ -0,0 +1,64 @@ + +SET(CMAKE_CXX_FLAGS "/Wall /wd4514 /wd4820 /wd4127 /wd4710 /wd4711 /wd4577 /wd4530 /d2Zi+ /WX /W4 /ZW /GF /GS- /GR- /Gd /fp:fast ${DISABLE_ITERATOR_DEBUGGING}") + +SET(CMAKE_CXX_FLAGS_DEBUG "/Od ${WINCRT_NDEBUG} /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_UWP_ENABLE_NVTX 0) + +# Disable cuda and dx for all projects on windows +SET(PXSHARED_UWP_COMPILE_DEFS WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINSOCK_DEPRECATED_NO_WARNINGS;DISABLE_CUDA_PHYSX;) + +SET(PXSHARED_UWP_DEBUG_COMPILE_DEFS PX_DEBUG=1;PX_CHECKED=1;PX_NVTX=${PXSHARED_UWP_ENABLE_NVTX}) +SET(PXSHARED_UWP_CHECKED_COMPILE_DEFS PX_CHECKED=1;PX_NVTX=${PXSHARED_UWP_ENABLE_NVTX}) +SET(PXSHARED_UWP_PROFILE_COMPILE_DEFS PX_PROFILE=1;PX_NVTX=${PXSHARED_UWP_ENABLE_NVTX}) +SET(PXSHARED_UWP_RELEASE_COMPILE_DEFS ) + +IF(PX_SCALAR_MATH) + ADD_DEFINITIONS(-DPX_SIMD_DISABLED) +ENDIF() + +IF(CMAKE_CL_64) + ADD_DEFINITIONS(-DWIN64) +ENDIF(CMAKE_CL_64) + + +# Include project cmake files here +IF(DEFINED PX_SELECT_COMPONENTS) + if ("PxFoundation" IN_LIST PX_SELECT_COMPONENTS) + INCLUDE(PxFoundation.cmake) + endif() +ELSE() + INCLUDE(PxFoundation.cmake) + + INCLUDE(CMakePackageConfigHelpers) + + configure_file(templates/ProjectVersion.cmake.in ${PXSHARED_ROOT_DIR}/pxshared-config-version.cmake @ONLY) + +# WRITE_BASIC_PACKAGE_VERSION_FILE(${PXSHARED_ROOT_DIR}/pxshared-config-version.cmake VERSION ${PXSHARED_VERSION} COMPATIBILITY ExactVersion) + + SET(PXSHARED_LIBS PxFoundation) + + # PX_ROOT_LIB_DIR is set by NvidiaBuildOptions and put into the cache. It's a relative path to the lib dir without config + + install( + TARGETS ${PXSHARED_LIBS} + EXPORT PxShared + DESTINATION $<$<CONFIG:debug>:${PX_ROOT_LIB_DIR}/debug>$<$<CONFIG:release>:${PX_ROOT_LIB_DIR}/release>$<$<CONFIG:checked>:${PX_ROOT_LIB_DIR}/checked>$<$<CONFIG:profile>:${PX_ROOT_LIB_DIR}/profile> ) + + install(EXPORT PxShared FILE pxshared-config.cmake DESTINATION cmake) + + install(FILES ${PXSHARED_ROOT_DIR}/pxshared-config-version.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake) + + # This doesn't use libpath-suffix, as it won't have the "wrapper" top + export(EXPORT PxShared FILE ${PXSHARED_ROOT_DIR}/pxshared-config.cmake) + + +ENDIF() + diff --git a/PxShared/src/compiler/cmake/uwp/PxFoundation.cmake b/PxShared/src/compiler/cmake/uwp/PxFoundation.cmake new file mode 100644 index 0000000..a4b666d --- /dev/null +++ b/PxShared/src/compiler/cmake/uwp/PxFoundation.cmake @@ -0,0 +1,97 @@ +# +# Build PxFoundation +# + +# Can no longer just use LIBPATH_SUFFIX since it depends on build type +IF(CMAKE_CL_64) + SET(RESOURCE_LIBPATH_SUFFIX "x64") +ELSEIF(${PX_OUTPUT_ARCH} STREQUAL "arm") + SET(RESOURCE_LIBPATH_SUFFIX "arm") +ELSE(CMAKE_CL_64) + SET(RESOURCE_LIBPATH_SUFFIX "x86") +ENDIF(CMAKE_CL_64) + +SET(PXFOUNDATION_LIBTYPE SHARED) + +SET(PXFOUNDATION_RESOURCE_FILE + ${PXSHARED_SOURCE_DIR}/compiler/resource_${RESOURCE_LIBPATH_SUFFIX}/PxFoundation.rc +) +SOURCE_GROUP(resource FILES ${PXFOUNDATION_RESOURCE_FILE}) + +SET(PXFOUNDATION_PLATFORM_HEADERS + ${PXSHARED_ROOT_DIR}/include/foundation/windows/PxWindowsIntrinsics.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/PsWindowsTime.cpp +) +SOURCE_GROUP("src\\src\\windows" FILES ${PXFOUNDATION_PLATFORM_SOURCE}) + +SET(PXFOUNDATION_UWP_PLATFORM_SOURCE + ${LL_SOURCE_DIR}/src/windows/PsUWPThread.cpp +) +SOURCE_GROUP("src\\src\\uwp" FILES ${PXFOUNDATION_UWP_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_SOURCE_HEADERS_2 + ${LL_SOURCE_DIR}/include/unix/PsUnixInlineAoS.h + ${LL_SOURCE_DIR}/include/unix/PsUnixTrigConstants.h +) +SOURCE_GROUP("src\\include\\unix" FILES ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS_2}) + +SET(PXFOUNDATION_PLATFORM_SOURCE_HEADERS_3 + ${LL_SOURCE_DIR}/include/unix/neon/PsUnixNeonAoS.h + ${LL_SOURCE_DIR}/include/unix/neon/PsUnixNeonInlineAoS.h +) +SOURCE_GROUP("src\\include\\unix\\neon" FILES ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS_3}) + +INSTALL(FILES ${PXFOUNDATION_PLATFORM_HEADERS} DESTINATION include/foundation/windows) + +INSTALL(FILES ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS} DESTINATION src/foundation/include/windows) +INSTALL(FILES ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS_2} DESTINATION src/foundation/include/unix) +INSTALL(FILES ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS_3} DESTINATION src/foundation/include/unix/neon) + +SET(PXFOUNDATION_PLATFORM_FILES + ${PXFOUNDATION_PLATFORM_HEADERS} + ${PXFOUNDATION_PLATFORM_SOURCE} + ${PXFOUNDATION_UWP_PLATFORM_SOURCE} + ${PXFOUNDATION_PLATFORM_SOURCE_HEADERS} + ${PXFOUNDATION_RESOURCE_FILE} +) + +SET(PXFOUNDATION_PLATFORM_INCLUDES + ${LL_SOURCE_DIR}/include/windows +) + +SET(PXFOUNDATION_COMPILE_DEFS + # Common to all configurations + ${PXSHARED_UWP_COMPILE_DEFS};PX_FOUNDATION_DLL=1; + + $<$<CONFIG:debug>:${PXSHARED_UWP_DEBUG_COMPILE_DEFS};> + $<$<CONFIG:checked>:${PXSHARED_UWP_CHECKED_COMPILE_DEFS};> + $<$<CONFIG:profile>:${PXSHARED_UWP_PROFILE_COMPILE_DEFS};> + $<$<CONFIG:release>:${PXSHARED_UWP_RELEASE_COMPILE_DEFS};> +) + +SET(PXFOUNDATION_PLATFORM_INTERFACE_HEADERS "$<INSTALL_INTERFACE:include/foundation/windows>$<BUILD_INTERFACE:${PXSHARED_ROOT_DIR}/include/foundation/windows>") + |