aboutsummaryrefslogtreecommitdiff
path: root/NvCloth/compiler/cmake/common/CMakeLists.txt
blob: bbebc3f593df0ad93e0e70f352a19d1f6aefee03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
cmake_minimum_required(VERSION 3.3)

MESSAGE("[NvCloth]cmake/common/CMakeList.txt")

project(NvCloth CXX)

CMAKE_POLICY(SET CMP0057 NEW) # Enable IN_LIST

SET(GW_DEPS_ROOT $ENV{GW_DEPS_ROOT})

SET(CMAKE_MODULE_PATH $ENV{GW_DEPS_ROOT}/NvCloth/Externals/CMakeModules)

MESSAGE( "[NvCloth]cmake/common CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")

# 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("NvCloth Build Platform: " ${TARGET_BUILD_PLATFORM})
MESSAGE("Using CXX Compiler: " ${CMAKE_CXX_COMPILER})

# TODO: Fail if we didn't find deps

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(PHYSX_ROOT_DIR ${PROJECT_SOURCE_DIR}/../../../../)
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()
MESSAGE("[NvCloth]cmake/common/CMakeList.txt END")