QUIC: Build system update 19/18619/3
authorAloys Augustin <aloaugus@cisco.com>
Mon, 1 Apr 2019 14:43:29 +0000 (16:43 +0200)
committerDave Wallace <dwallacelf@gmail.com>
Wed, 3 Apr 2019 13:27:31 +0000 (13:27 +0000)
Download a single tarball with the sources of quicly and its dependencies from github instead of cloning submodules.

Change-Id: Id9955565d46f595b3a14ba3408c24045d4acd296
Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
build/external/Makefile
build/external/packages/quicly.mk [new file with mode: 0644]
build/external/patches/quicly_0.0.1-vpp/0001-cmake-install.patch [new file with mode: 0644]

index 084d694..aed8b2e 100644 (file)
@@ -30,6 +30,7 @@ I := $(INSTALL_DIR)
 include packages.mk
 include packages/nasm.mk
 include packages/ipsec-mb.mk
+include packages/quicly.mk
 include packages/dpdk.mk
 include packages/rdma-core.mk
 
@@ -38,7 +39,7 @@ clean:
        @rm -rf $(B) $(I)
 
 .PHONY: install
-install: dpdk-install rdma-core-install
+install: dpdk-install rdma-core-install quicly-install
 
 .PHONY: config
 config: dpdk-config rdma-core-config
diff --git a/build/external/packages/quicly.mk b/build/external/packages/quicly.mk
new file mode 100644 (file)
index 0000000..018ae72
--- /dev/null
@@ -0,0 +1,50 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+quicly_version := 0.0.1-vpp
+quicly_tarball := quicly_$(quicly_version).tar.gz
+quicly_tarball_md5sum := 60367171ece669c620a12ad0ba65edd5
+quicly_tarball_strip_dirs := 1
+quicly_url := https://github.com/vpp-quic/quicly/releases/download/v$(quicly_version)/quicly_$(quicly_version).tar.gz
+
+picotls_build_dir := $(B)/build-picotls
+
+ifneq ($(shell which cmake3),)
+CMAKE?=cmake3
+else
+CMAKE?=cmake
+endif
+
+define  quicly_build_cmds
+       @cd $(quicly_build_dir) && \
+               $(CMAKE) -DCMAKE_INSTALL_PREFIX:PATH=$(quicly_install_dir) \
+               $(quicly_src_dir) > $(quicly_build_log)
+       @$(MAKE) $(MAKE_ARGS) -C $(quicly_build_dir) > $(quicly_build_log)
+
+       @mkdir -p $(picotls_build_dir)
+       @cd $(picotls_build_dir) && \
+               $(CMAKE) -DCMAKE_INSTALL_PREFIX:PATH=$(quicly_install_dir) \
+               $(quicly_src_dir)/deps/picotls > $(quicly_build_log)
+endef
+
+define  quicly_config_cmds
+       @true
+endef
+
+define  quicly_install_cmds
+       @$(MAKE) $(MAKE_ARGS) -C $(quicly_build_dir) install > $(quicly_install_log)
+       @$(MAKE) $(MAKE_ARGS) -C $(picotls_build_dir) install > $(quicly_install_log)
+endef
+
+
+$(eval $(call package,quicly))
diff --git a/build/external/patches/quicly_0.0.1-vpp/0001-cmake-install.patch b/build/external/patches/quicly_0.0.1-vpp/0001-cmake-install.patch
new file mode 100644 (file)
index 0000000..3ac90c7
--- /dev/null
@@ -0,0 +1,57 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 202cc52..b5c2bee 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -40,6 +40,8 @@ SET(UNITTEST_SOURCE_FILES
+     t/stream-concurrency.c
+     t/test.c)
+
++SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
++
+ ADD_LIBRARY(quicly ${QUICLY_LIBRARY_FILES})
+
+ ADD_EXECUTABLE(cli ${PICOTLS_OPENSSL_FILES} src/cli.c)
+@@ -50,6 +52,16 @@ TARGET_LINK_LIBRARIES(test.t quicly ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})
+
+ ADD_EXECUTABLE(udpfw t/udpfw.c)
+
++INSTALL (
++    DIRECTORY ${CMAKE_SOURCE_DIR}/include/
++    DESTINATION include
++    FILES_MATCHING PATTERN "*.h")
++
++INSTALL(TARGETS quicly
++        RUNTIME DESTINATION bin
++        LIBRARY DESTINATION lib
++        ARCHIVE DESTINATION lib)
++
+ ADD_CUSTOM_TARGET(check env BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} prove --exec "sh -c" -v ${CMAKE_CURRENT_BINARY_DIR}/*.t t/*.t
+     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+     DEPENDS cli test.t)
+Submodule deps/picotls contains untracked content
+Submodule deps/picotls contains modified content
+diff --git a/deps/picotls/CMakeLists.txt b/deps/picotls/CMakeLists.txt
+index cda6aad..62b23b7 100644
+--- a/deps/picotls/CMakeLists.txt
++++ b/deps/picotls/CMakeLists.txt
+@@ -5,6 +5,7 @@ PROJECT(picotls)
+
+ FIND_PACKAGE(PkgConfig REQUIRED)
+
++SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
+ SET(CMAKE_C_FLAGS "-std=c99 -Wall -O2 -g ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}")
+ INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR} deps/cifra/src/ext deps/cifra/src deps/micro-ecc deps/picotest include)
+ SET(MINICRYPTO_LIBRARY_FILES
+@@ -97,3 +98,12 @@ IF (BUILD_FUZZER)
+
+
+ ENDIF()
++
++INSTALL (DIRECTORY ${CMAKE_SOURCE_DIR}/include/
++    DESTINATION include
++    FILES_MATCHING PATTERN "*.h")
++
++INSTALL(TARGETS picotls-core picotls-openssl
++        RUNTIME DESTINATION bin
++        LIBRARY DESTINATION lib
++        ARCHIVE DESTINATION lib)