aboutsummaryrefslogtreecommitdiff
path: root/PxShared/src/compiler/cmake/common/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'PxShared/src/compiler/cmake/common/CMakeLists.txt')
-rw-r--r--PxShared/src/compiler/cmake/common/CMakeLists.txt84
1 files changed, 84 insertions, 0 deletions
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()