blob: 19b9f9cb25b907c805a6cdd26177056ed829e518 (
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
# - Try to find CapnProto SDK
# - Sets CAPNPROTOSDK_LIBRARIES - list of the libraries found
# - Sets CAPNPROTOSDK_SOURCE_FILES
# - Sets CAPNPROTOSDK_INCLUDE_DIRS
include(FindPackageHandleStandardArgs)
# Find the includes
# TODO: Do the version stuff properly!
find_path(CAPNPROTOSDK_PATH src/capnp/message.h
PATHS
$ENV{PM_CapnProto_PATH}
${GW_DEPS_ROOT}/$ENV{PM_CapnProto_NAME}/${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)
if (UE4_LINUX_CROSSCOMPILE)
SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/win32)
else()
SET(EXE_PATH ${CAPNPROTOSDK_PATH}/tools/ubuntu64)
endif()
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 "")
SET(CAPNPROTOSDK_SOURCE_FILES "")
IF ((TARGET_BUILD_PLATFORM STREQUAL "PLATFROM_USING_PREBUILT_LIBS"))
LIST(APPEND CAPNPROTOSDK_LIBRARIES
optimized ${CAPNPROTO_LIB} debug ${CAPNPROTO_LIB_DEBUG}
optimized ${KJ_LIB} debug ${KJ_LIB_DEBUG}
)
ELSE()
#Include source files for the "lite" version only, there aren't too many it avoids needing many permutations of static libs
LIST(APPEND CAPNPROTOSDK_SOURCE_FILES
${CAPNPROTOSDK_PATH}/src/capnp/arena.c++
${CAPNPROTOSDK_PATH}/src/capnp/blob.c++
${CAPNPROTOSDK_PATH}/src/capnp/layout.c++
${CAPNPROTOSDK_PATH}/src/capnp/message.c++
${CAPNPROTOSDK_PATH}/src/capnp/serialize.c++
${CAPNPROTOSDK_PATH}/src/kj/array.c++
${CAPNPROTOSDK_PATH}/src/kj/common.c++
${CAPNPROTOSDK_PATH}/src/kj/debug.c++
${CAPNPROTOSDK_PATH}/src/kj/exception.c++
${CAPNPROTOSDK_PATH}/src/kj/io.c++
${CAPNPROTOSDK_PATH}/src/kj/mutex.c++
${CAPNPROTOSDK_PATH}/src/kj/string.c++
${CAPNPROTOSDK_PATH}/src/kj/units.c++
)
ENDIF()
endif()
|