aboutsummaryrefslogtreecommitdiff
path: root/NvBlast/sdk/compiler/cmake/modules/FindCapnProtoSDK.cmake
blob: f3200ec397f49f40836e8986fc80109f5b474ac3 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# - Try to find CapnProto SDK
# - Sets CAPNPROTOSDK_LIBRARIES - list of the libraries found
# - Sets CAPNPROTOSDK_INCLUDE_DIRS 

include(FindPackageHandleStandardArgs)

# Find the includes

# TODO: Do the version stuff properly!
find_path(CAPNPROTOSDK_PATH src/capnp/message.h
	PATHS ${GW_DEPS_ROOT}/CapnProto/${CapnProtoSDK_FIND_VERSION}
)

if (TARGET_BUILD_PLATFORM STREQUAL "Windows")

	if (STATIC_WINCRT)
		SET(CAPNPROTOSDK_CRT_SUFFIX "-mt")
	else()
		SET(CAPNPROTOSDK_CRT_SUFFIX "-md")
	endif()


	# If the project pulling in this dependency needs the static crt, then append that to the path.
	if (CMAKE_CL_64)
		SET(CAPNPROTOSDK_ARCH_FOLDER "win64")
	else()
		SET(CAPNPROTOSDK_ARCH_FOLDER "win32")
	endif()

	SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/${CAPNPROTOSDK_ARCH_FOLDER})
    SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32)


elseif(TARGET_BUILD_PLATFORM STREQUAL "PS4")
	SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/ps4)
    SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32)
	SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
	SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
elseif(TARGET_BUILD_PLATFORM STREQUAL "XboxOne")
	SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/xboxone)
    SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32)
	SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
	SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
elseif(TARGET_BUILD_PLATFORM STREQUAL "linux")
	SET(LIB_PATH ${CAPNPROTOSDK_PATH}/bin/ubuntu64)
    SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/ubuntu64)
	SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
	SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
endif()

find_library(CAPNPROTO_LIB
	NAMES capnp${CAPNPROTOSDK_CRT_SUFFIX}
	PATHS ${LIB_PATH}/Release
)
find_library(CAPNPROTO_LIB_DEBUG
	NAMES capnp${CAPNPROTOSDK_CRT_SUFFIX}
	PATHS ${LIB_PATH}/Debug
)

find_library(KJ_LIB
	NAMES kj${CAPNPROTOSDK_CRT_SUFFIX}
	PATHS ${LIB_PATH}/Release
)
find_library(KJ_LIB_DEBUG
	NAMES kj${CAPNPROTOSDK_CRT_SUFFIX}
	PATHS ${LIB_PATH}/Debug
)

find_program(CAPNP_EXECUTABLE
  NAMES capnp
  DOC "Cap'n Proto Command-line Tool"
  PATHS ${EXE_PATH}
)

find_program(CAPNPC_CXX_EXECUTABLE
  NAMES capnpc-c++
  DOC "Capn'n Proto C++ Compiler"
  PATHS ${EXE_PATH}
)

FIND_PACKAGE_HANDLE_STANDARD_ARGS(CAPNPROTOSDK
	DEFAULT_MSG
	CAPNPROTOSDK_PATH

	CAPNP_EXECUTABLE
	CAPNPC_CXX_EXECUTABLE
	
	CAPNPROTO_LIB
	KJ_LIB
	
	CAPNPROTO_LIB_DEBUG
	KJ_LIB_DEBUG
)

if (CAPNPROTOSDK_FOUND)
	
	SET(CAPNPROTOSDK_INCLUDE_DIRS 
		${CAPNPROTOSDK_PATH}/src/
	)

	SET(CAPNP_INCLUDE_DIRS
		${CAPNPROTOSDK_INCLUDE_DIRS}
	)
	
	SET(CAPNPROTOSDK_LIBRARIES "" CACHE STRING "")
	
	LIST(APPEND CAPNPROTOSDK_LIBRARIES 
		optimized ${CAPNPROTO_LIB} debug ${CAPNPROTO_LIB_DEBUG}
		optimized ${KJ_LIB} debug ${KJ_LIB_DEBUG}
	)
endif()