aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArkadiy Shapkin <arkady.shapkin@gmail.com>2016-10-02 15:10:35 +0300
committerArkadiy Shapkin <arkady.shapkin@gmail.com>2016-10-02 15:10:35 +0300
commit827b51406398fd7a8970b593c395abe0abec3237 (patch)
treeb4aa191ca2dc7ae42bb0267d99cd2cdff86f7f6e
parentd9aba9f0fe217b53603b6643c268b5ee6b090267 (diff)
downloadvcpkg-827b51406398fd7a8970b593c395abe0abec3237.tar.gz
vcpkg-827b51406398fd7a8970b593c395abe0abec3237.zip
[gflags] Initial addition
-rw-r--r--ports/gflags/0001-Fix-some-compilation-warnings-with-MSVC-2015.patch51
-rw-r--r--ports/gflags/CONTROL3
-rw-r--r--ports/gflags/portfile.cmake54
3 files changed, 108 insertions, 0 deletions
diff --git a/ports/gflags/0001-Fix-some-compilation-warnings-with-MSVC-2015.patch b/ports/gflags/0001-Fix-some-compilation-warnings-with-MSVC-2015.patch
new file mode 100644
index 000000000..d099ea616
--- /dev/null
+++ b/ports/gflags/0001-Fix-some-compilation-warnings-with-MSVC-2015.patch
@@ -0,0 +1,51 @@
+From 5af642bdfe023a7c857d1d26593af586516bf696 Mon Sep 17 00:00:00 2001
+From: Sergey Sharybin <sergey.vfx@gmail.com>
+Date: Thu, 31 Dec 2015 17:16:26 +0500
+Subject: [PATCH] Fix some compilation warnings with MSVC 2015
+
+MSVC 2015 already defines vsnprintf() and va_copy().
+---
+ src/windows_port.cc | 2 ++
+ src/windows_port.h | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/src/windows_port.cc b/src/windows_port.cc
+index 1f40458..b5b7194 100644
+--- a/src/windows_port.cc
++++ b/src/windows_port.cc
+@@ -44,6 +44,7 @@
+
+ // These call the windows _vsnprintf, but always NUL-terminate.
+ #if !defined(__MINGW32__) && !defined(__MINGW64__) /* mingw already defines */
++#if !(defined(_MSC_VER) && _MSC_VER >= 1900) /* msvc 2015 already defines */
+
+ #ifdef _MSC_VER
+ # pragma warning(push)
+@@ -68,4 +69,5 @@ int snprintf(char *str, size_t size, const char *format, ...) {
+ return r;
+ }
+
++#endif /* if !(defined(_MSC_VER) && _MSC_VER >= 1900) */
+ #endif /* #if !defined(__MINGW32__) && !defined(__MINGW64__) */
+diff --git a/src/windows_port.h b/src/windows_port.h
+index c8ff24f..554b9c9 100644
+--- a/src/windows_port.h
++++ b/src/windows_port.h
+@@ -63,12 +63,14 @@
+ * name vsnprintf, since windows defines that (but not snprintf (!)).
+ */
+ #if !defined(__MINGW32__) && !defined(__MINGW64__) /* mingw already defines */
++#if !(defined(_MSC_VER) && _MSC_VER >= 1900) /* msvc 2015 already defines */
+ extern GFLAGS_DLL_DECL int snprintf(char *str, size_t size,
+ const char *format, ...);
+ extern int GFLAGS_DLL_DECL safe_vsnprintf(char *str, size_t size,
+ const char *format, va_list ap);
+ #define vsnprintf(str, size, format, ap) safe_vsnprintf(str, size, format, ap)
+ #define va_copy(dst, src) (dst) = (src)
++#endif
+ #endif /* #if !defined(__MINGW32__) && !defined(__MINGW64__) */
+
+ #ifdef _MSC_VER
+--
+2.10.0.windows.1
+
diff --git a/ports/gflags/CONTROL b/ports/gflags/CONTROL
new file mode 100644
index 000000000..03977243f
--- /dev/null
+++ b/ports/gflags/CONTROL
@@ -0,0 +1,3 @@
+Source: gflags
+Version: 2.1.2
+Description: A C++ library that implements commandline flags processing
diff --git a/ports/gflags/portfile.cmake b/ports/gflags/portfile.cmake
new file mode 100644
index 000000000..ad407a0fd
--- /dev/null
+++ b/ports/gflags/portfile.cmake
@@ -0,0 +1,54 @@
+include(vcpkg_common_functions)
+find_program(GIT git)
+
+set(GIT_URL "https://github.com/gflags/gflags.git")
+set(GIT_TAG "v2.1.2")
+
+if(NOT EXISTS "${DOWNLOADS}/gflags.git")
+ message(STATUS "Cloning")
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} clone --bare ${GIT_URL} ${DOWNLOADS}/gflags.git
+ WORKING_DIRECTORY ${DOWNLOADS}
+ LOGNAME clone
+ )
+endif()
+message(STATUS "Cloning done")
+
+if(NOT EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git")
+ message(STATUS "Adding worktree and patching")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR})
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} worktree add -f --detach ${CURRENT_BUILDTREES_DIR}/src ${GIT_TAG}
+ WORKING_DIRECTORY ${DOWNLOADS}/gflags.git
+ LOGNAME worktree
+ )
+ message(STATUS "Patching")
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} apply ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-some-compilation-warnings-with-MSVC-2015.patch --ignore-whitespace --whitespace=fix
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src
+ LOGNAME patch
+ )
+endif()
+message(STATUS "Adding worktree and patching done")
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src
+ OPTIONS
+ -DBUILD_SHARED_LIBS=ON
+)
+
+vcpkg_build_cmake()
+vcpkg_install_cmake()
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+file(RENAME ${CURRENT_PACKAGES_DIR}/cmake ${CURRENT_PACKAGES_DIR}/share/gflags)
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gflags.dll ${CURRENT_PACKAGES_DIR}/bin/gflags.dll)
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gflags_nothreads.dll ${CURRENT_PACKAGES_DIR}/bin/gflags_nothreads.dll)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gflags.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gflags.dll)
+file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gflags_nothreads.dll ${CURRENT_PACKAGES_DIR}/debug/bin/gflags_nothreads.dll)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug)
+
+file(INSTALL ${CURRENT_BUILDTREES_DIR}/src/COPYING.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/gflags RENAME copyright)
+
+vcpkg_copy_pdbs()