aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralmikhayl <almikhayl@users.noreply.github.com>2019-04-29 11:04:27 +0300
committerGriffin Downs <35574547+grdowns@users.noreply.github.com>2019-04-29 01:04:27 -0700
commit55a4b1854438553a41b163c73bba61133bb24d7e (patch)
tree15fa1bcd7e5f68b9e37c7e4f9f92f9972e125ac8
parentef75e05b227aa3b8451592c7b956000aa7444d8d (diff)
downloadvcpkg-55a4b1854438553a41b163c73bba61133bb24d7e.tar.gz
vcpkg-55a4b1854438553a41b163c73bba61133bb24d7e.zip
[libpcap] new port only linux (#6082)
* [libpcap] new port only linux * Add system dependencies message
-rw-r--r--ports/libpcap/CONTROL3
-rw-r--r--ports/libpcap/portfile.cmake75
2 files changed, 78 insertions, 0 deletions
diff --git a/ports/libpcap/CONTROL b/ports/libpcap/CONTROL
new file mode 100644
index 000000000..c0509704c
--- /dev/null
+++ b/ports/libpcap/CONTROL
@@ -0,0 +1,3 @@
+Source: libpcap
+Version: 1.9.0
+Description: A portable C/C++ library for network traffic capture
diff --git a/ports/libpcap/portfile.cmake b/ports/libpcap/portfile.cmake
new file mode 100644
index 000000000..665e6b603
--- /dev/null
+++ b/ports/libpcap/portfile.cmake
@@ -0,0 +1,75 @@
+include(vcpkg_common_functions)
+
+vcpkg_download_distfile(
+ SOURCE_ARCHIVE_PATH
+ URLS http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
+ FILENAME libpcap-1.9.0.tar.gz
+ SHA512 0ff25641f1e9d29082766caef45888c19214f770c4f378818caa73fcbc4ae54ad9195549c2499d4879ff46e35741d93b2b02cc5f3d6aa99e85a32194cf10bfe7
+)
+
+vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${SOURCE_ARCHIVE_PATH}
+ REF 1.9.0
+)
+
+if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ message(FATAL_ERROR "Package only supports linux platform.")
+endif()
+
+message(
+"libpcap currently requires the following libraries from the system package manager:
+ flex
+ libbison-dev
+
+These can be installed on Ubuntu systems via sudo apt install flex libbison-dev"
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ set(SHARED_STATIC --enable-static --disable-shared)
+else()
+ set(SHARED_STATIC --disable-static --enable-shared)
+endif()
+
+set(OPTIONS ${SHARED_STATIC})
+
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+set(CFLAGS "${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_DEBUG} -fPIC -O0 -g -I${SOURCE_PATH}/include")
+set(LDFLAGS "${VCPKG_LINKER_FLAGS}")
+vcpkg_execute_required_process(
+ COMMAND ${SOURCE_PATH}/configure --prefix=${CURRENT_PACKAGES_DIR}/debug ${OPTIONS} --with-sysroot=${CURRENT_INSTALLED_DIR}/debug --enable-usb=no --enable-netmap=no --enable-bluetooth=no --enable-dbus=no --enable-rdma=no --enable-shared=no --with-libnl=no
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME configure-${TARGET_TRIPLET}-dbg
+)
+message(STATUS "Building ${TARGET_TRIPLET}-dbg")
+vcpkg_execute_required_process(
+ COMMAND make -j install "CFLAGS=${CFLAGS}" "LDFLAGS=${LDFLAGS}"
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME install-${TARGET_TRIPLET}-dbg
+)
+
+file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+set(CFLAGS "${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_RELEASE} -fPIC -O3 -I${SOURCE_PATH}/include")
+set(LDFLAGS "${VCPKG_LINKER_FLAGS}")
+vcpkg_execute_required_process(
+ COMMAND ${SOURCE_PATH}/configure --prefix=${CURRENT_PACKAGES_DIR} ${OPTIONS} --with-sysroot=${CURRENT_INSTALLED_DIR} --enable-usb=no --enable-netmap=no --enable-bluetooth=no --enable-dbus=no --enable-rdma=no --enable-shared=no --with-libnl=no
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME configure-${TARGET_TRIPLET}-rel
+)
+message(STATUS "Building ${TARGET_TRIPLET}-rel")
+vcpkg_execute_required_process(
+ COMMAND make -j install "CFLAGS=${CFLAGS}" "LDFLAGS=${LDFLAGS}"
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME install-${TARGET_TRIPLET}-rel
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+configure_file(${SOURCE_PATH}/README.md ${CURRENT_PACKAGES_DIR}/share/libpcap/copyright COPYONLY)