-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathbuild-h2o.sh
executable file
·94 lines (88 loc) · 3.89 KB
/
build-h2o.sh
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
#!/bin/bash -e
#
# Copyright 2016 (c) Yousong Zhou
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
# ruby 1.9 is required, yet by default only 1.8 is provided by CentOS 6
#
PKG_NAME=h2o
PKG_VERSION=1.6.3
PKG_SOURCE="h2o-${PKG_VERSION}.tar.gz"
PKG_SOURCE_URL="https://github.com/h2o/h2o/archive/v$PKG_VERSION.tar.gz"
PKG_SOURCE_MD5SUM=95b8dbadd46cb317d5f7155da113e076
PKG_CMAKE=1
PKG_DEPENDS='libuv openssl wslay zlib'
. "$PWD/env.sh"
do_patch() {
cd "$PKG_SOURCE_DIR"
# CMake 2.8.11 is too new for Debian Wheezy
patch <<"EOF"
--- CMakeLists.txt.orig 2016-01-28 15:59:52.514196604 +0800
+++ CMakeLists.txt 2016-01-28 16:04:01.302275462 +0800
@@ -18,7 +18,7 @@
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
CMAKE_POLICY(SET CMP0003 NEW)
PROJECT(h2o C)
@@ -282,8 +282,7 @@ SET_TARGET_PROPERTIES(libh2o-evloop PROP
OUTPUT_NAME h2o-evloop
COMPILE_FLAGS "-DH2O_USE_LIBUV=0")
IF (OPENSSL_FOUND)
- TARGET_INCLUDE_DIRECTORIES(libh2o BEFORE PUBLIC ${OPENSSL_INCLUDE_DIR})
- TARGET_INCLUDE_DIRECTORIES(libh2o-evloop BEFORE PUBLIC ${OPENSSL_INCLUDE_DIR})
+ SET(CMAKE_C_FLAGS "-I${OPENSSL_INCLUDE_DIR} ${CMAKE_C_FLAGS}")
TARGET_LINK_LIBRARIES(libh2o ${OPENSSL_LIBRARIES})
TARGET_LINK_LIBRARIES(libh2o-evloop ${OPENSSL_LIBRARIES})
IF (LIBUV_FOUND AND NOT WITHOUT_LIBS)
@@ -345,17 +344,17 @@ ENDIF (WITH_MRUBY)
ADD_EXECUTABLE(h2o ${STANDALONE_SOURCE_FILES})
SET_TARGET_PROPERTIES(h2o PROPERTIES COMPILE_FLAGS ${STANDALONE_COMPILE_FLAGS})
IF (WITH_BUNDLED_SSL)
- TARGET_INCLUDE_DIRECTORIES(h2o BEFORE PUBLIC ${BUNDLED_SSL_INCLUDE_DIR})
+ SET(CMAKE_C_FLAGS "-I${BUNDLED_SSL_INCLUDE_DIR} ${CMAKE_C_FLAGS}")
TARGET_LINK_LIBRARIES(h2o ${BUNDLED_SSL_LIBRARIES})
ADD_DEPENDENCIES(h2o bundled-ssl)
ELSE (WITH_BUNDLED_SSL)
IF (OPENSSL_FOUND)
- TARGET_INCLUDE_DIRECTORIES(h2o BEFORE PUBLIC ${OPENSSL_INCLUDE_DIR})
+ SET(CMAKE_C_FLAGS "-I${OPENSSL_INCLUDE_DIR} ${CMAKE_C_FLAGS}")
TARGET_LINK_LIBRARIES(h2o ${OPENSSL_LIBRARIES})
ENDIF (OPENSSL_FOUND)
ENDIF (WITH_BUNDLED_SSL)
IF (WITH_MRUBY)
- TARGET_INCLUDE_DIRECTORIES(h2o BEFORE PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/deps/mruby/include)
+ SET(CMAKE_C_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}/deps/mruby/include ${CMAKE_C_FLAGS}")
# note: the paths need to be determined before libmruby.flags.mak is generated
TARGET_LINK_LIBRARIES(h2o
"${CMAKE_CURRENT_BINARY_DIR}/mruby/host/lib/libmruby.a"
@@ -388,17 +387,15 @@ SET_TARGET_PROPERTIES(t-00unit-libuv.t P
EXCLUDE_FROM_ALL 1)
TARGET_LINK_LIBRARIES(t-00unit-libuv.t ${LIBUV_LIBRARIES} ${EXTRA_LIBRARIES})
IF (WITH_BUNDLED_SSL)
- TARGET_INCLUDE_DIRECTORIES(t-00unit-evloop.t BEFORE PUBLIC ${BUNDLED_SSL_INCLUDE_DIR})
+ SET(CMAKE_C_FLAGS "-I${BUNDLED_SSL_INCLUDE_DIR} ${CMAKE_C_FLAGS}")
TARGET_LINK_LIBRARIES(t-00unit-evloop.t ${BUNDLED_SSL_LIBRARIES})
ADD_DEPENDENCIES(t-00unit-evloop.t bundled-ssl)
- TARGET_INCLUDE_DIRECTORIES(t-00unit-libuv.t BEFORE PUBLIC ${BUNDLED_SSL_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(t-00unit-libuv.t ${BUNDLED_SSL_LIBRARIES})
ADD_DEPENDENCIES(t-00unit-libuv.t bundled-ssl)
ELSE (WITH_BUNDLED_SSL)
IF (OPENSSL_FOUND)
- TARGET_INCLUDE_DIRECTORIES(t-00unit-evloop.t BEFORE PUBLIC ${OPENSSL_INCLUDE_DIR})
+ SET(CMAKE_C_FLAGS "-I${OPENSSL_INCLUDE_DIR} ${CMAKE_C_FLAGS}")
TARGET_LINK_LIBRARIES(t-00unit-evloop.t ${OPENSSL_LIBRARIES})
- TARGET_INCLUDE_DIRECTORIES(t-00unit-libuv.t BEFORE PUBLIC ${OPENSSL_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(t-00unit-libuv.t ${OPENSSL_LIBRARIES})
ENDIF (OPENSSL_FOUND)
ENDIF (WITH_BUNDLED_SSL)
EOF
}
# The problem with -DBUILD_SHARED_LIBS=on is that only shared library will be
# built if this is set
CMAKE_ARGS=' \
-DWITH_BUNDLED_SSL=off \
'