[Cmake-commits] CMake branch, next, updated. v3.4.1-1772-g8df8012
Brad King
brad.king at kitware.com
Thu Dec 17 14:48:12 EST 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 8df8012086280e9b9c79cc393fa8cf7b7df398d9 (commit)
via 38c31ed5f5e34894febf19c873be83eab4f6ea3c (commit)
via ec1398d7aec410da0aa085cf7693d62afa11291d (commit)
via c4282347e27badf2f1e8b8b5a17bb01ce3209eea (commit)
via f1ee10c15e9c4f7d46962029fbb7a9d312ce878d (commit)
via 498c36850ba3e3b04dc2cbcd0baad7e8ee750de7 (commit)
via dcca789272057e2cb0aae640836c189873701d68 (commit)
from 3ddf434f437c49f4a342796f2a92f28a10465bf6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8df8012086280e9b9c79cc393fa8cf7b7df398d9
commit 8df8012086280e9b9c79cc393fa8cf7b7df398d9
Merge: 3ddf434 38c31ed
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Dec 17 14:48:10 2015 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Dec 17 14:48:10 2015 -0500
Merge topic 'update-kwsys' into next
38c31ed5 Merge branch 'upstream-KWSys' into update-kwsys
ec1398d7 KWSys 2015-12-14 (c1149ef6)
c4282347 Add script to update KWSys from upstream
f1ee10c1 Merge branch 'upstream-KWSys' into update-kwsys
498c3685 Add a script to help update third-party sources
dcca7892 KWSys 2015-12-09 (cdcf4c47)
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=38c31ed5f5e34894febf19c873be83eab4f6ea3c
commit 38c31ed5f5e34894febf19c873be83eab4f6ea3c
Merge: c428234 ec1398d
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Dec 17 14:46:12 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Dec 17 14:46:12 2015 -0500
Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
KWSys 2015-12-14 (c1149ef6)
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ec1398d7aec410da0aa085cf7693d62afa11291d
commit ec1398d7aec410da0aa085cf7693d62afa11291d
Author: KWSys Upstream <kwrobot at kitware.com>
AuthorDate: Mon Dec 14 09:36:13 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Dec 17 14:46:11 2015 -0500
KWSys 2015-12-14 (c1149ef6)
Code extracted from:
http://public.kitware.com/KWSys.git
at commit c1149ef69956eab13221e05ffb2d9b5e55c2e3ee (master).
Upstream Shortlog
-----------------
Brad King (1):
c1149ef6 Drop the FundamentalType.h component of KWSys
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b859e79..8b15394 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -118,7 +118,6 @@ IF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
SET(KWSYS_USE_System 1)
SET(KWSYS_USE_SystemTools 1)
SET(KWSYS_USE_CommandLineArguments 1)
- SET(KWSYS_USE_FundamentalType 1)
SET(KWSYS_USE_Terminal 1)
SET(KWSYS_USE_IOStream 1)
SET(KWSYS_USE_FStream 1)
@@ -374,61 +373,6 @@ IF(KWSYS_CXX_HAS___INT64)
ENDIF()
ENDIF()
-IF(KWSYS_USE_FundamentalType)
- # Look for type size helper macros.
- KWSYS_PLATFORM_INFO_TEST(C KWSYS_C_TYPE_MACROS
- "Checking for C type size macros")
- SET(macro_regex ".*INFO:macro\\[([^]]*)\\].*")
- FOREACH(info ${KWSYS_C_TYPE_MACROS})
- IF("${info}" MATCHES "${macro_regex}")
- STRING(REGEX REPLACE "${macro_regex}" "\\1" macro "${info}")
- SET(KWSYS_C_HAS_MACRO_${macro} 1)
- ENDIF()
- ENDFOREACH()
-
- # Determine type sizes at preprocessing time if possible, and
- # otherwise fall back to a try-compile.
- SET(KWSYS_C_TYPE_NAME_CHAR "char")
- SET(KWSYS_C_TYPE_NAME_SHORT "short")
- SET(KWSYS_C_TYPE_NAME_INT "int")
- SET(KWSYS_C_TYPE_NAME_LONG "long")
- SET(KWSYS_C_TYPE_NAME_LONG_LONG "long long")
- SET(KWSYS_C_TYPE_NAME___INT64 "__int64")
- FOREACH(type CHAR SHORT INT LONG LONG_LONG __INT64)
- IF(KWSYS_C_HAS_MACRO___SIZEOF_${type}__)
- # Use __SIZEOF_${type}__ macro.
- SET(KWSYS_SIZEOF_${type} TRUE)
- SET(KWSYS_C_CODE_SIZEOF_${type} "#define ${KWSYS_NAMESPACE}_SIZEOF_${type} __SIZEOF_${type}__")
- ELSEIF(KWSYS_C_HAS_MACRO___${type}_MAX__)
- # Use __${type}_MAX__ macro.
- SET(KWSYS_SIZEOF_${type} TRUE)
- SET(KWSYS_C_CODE_SIZEOF_${type} "#if __${type}_MAX__ == 0x7f
-# define ${KWSYS_NAMESPACE}_SIZEOF_${type} 1
-#elif __${type}_MAX__ == 0x7fff
-# define ${KWSYS_NAMESPACE}_SIZEOF_${type} 2
-#elif __${type}_MAX__ == 0x7fffffff
-# define ${KWSYS_NAMESPACE}_SIZEOF_${type} 4
-#elif __${type}_MAX__>>32 == 0x7fffffff
-# define ${KWSYS_NAMESPACE}_SIZEOF_${type} 8
-#else
-# error \"Cannot determine sizeof(${KWSYS_C_TYPE_NAME_${type}}).\"
-#endif")
- ELSE()
- # Configure a hard-coded type size.
- CHECK_TYPE_SIZE("${KWSYS_C_TYPE_NAME_${type}}" KWSYS_SIZEOF_${type})
- IF(NOT KWSYS_SIZEOF_${type})
- SET(KWSYS_SIZEOF_${type} 0)
- ENDIF()
- SET(KWSYS_C_CODE_SIZEOF_${type}
- "#define ${KWSYS_NAMESPACE}_SIZEOF_${type} ${KWSYS_SIZEOF_${type}}")
- ENDIF()
- ENDFOREACH()
-
- # Check signedness of "char" type.
- KWSYS_PLATFORM_CXX_TEST_RUN(KWSYS_CHAR_IS_SIGNED
- "Checking whether char is signed" DIRECT)
-ENDIF()
-
IF(KWSYS_USE_Encoding)
# Look for type size helper macros.
KWSYS_PLATFORM_CXX_TEST(KWSYS_STL_HAS_WSTRING
@@ -741,7 +685,7 @@ ENDFOREACH()
# Add selected C components.
FOREACH(c
- Process Base64 Encoding FundamentalType MD5 Terminal System String
+ Process Base64 Encoding MD5 Terminal System String
)
IF(KWSYS_USE_${c})
# Use the corresponding header file.
diff --git a/FundamentalType.h.in b/FundamentalType.h.in
deleted file mode 100644
index e702a7a..0000000
--- a/FundamentalType.h.in
+++ /dev/null
@@ -1,139 +0,0 @@
-/*============================================================================
- KWSys - Kitware System Library
- Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
-
- Distributed under the OSI-approved BSD License (the "License");
- see accompanying file Copyright.txt for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the License for more information.
-============================================================================*/
-#ifndef @KWSYS_NAMESPACE at _FundamentalType_h
-#define @KWSYS_NAMESPACE at _FundamentalType_h
-
-#include <@KWSYS_NAMESPACE@/Configure.h>
-
-/* Redefine all public interface symbol names to be in the proper
- namespace. These macros are used internally to kwsys only, and are
- not visible to user code. Use kwsysHeaderDump.pl to reproduce
- these macros after making changes to the interface. */
-#if !defined(KWSYS_NAMESPACE)
-# define kwsys_ns(x) @KWSYS_NAMESPACE@##x
-# define kwsysEXPORT @KWSYS_NAMESPACE at _EXPORT
-#endif
-
-#if !@KWSYS_NAMESPACE at _NAME_IS_KWSYS
-# define kwsysFundamentalType kwsys_ns(FundamentalType)
-# define kwsysFundamentalType_Int8 kwsys_ns(FundamentalType_Int8)
-# define kwsysFundamentalType_UInt8 kwsys_ns(FundamentalType_UInt8)
-# define kwsysFundamentalType_Int16 kwsys_ns(FundamentalType_Int16)
-# define kwsysFundamentalType_UInt16 kwsys_ns(FundamentalType_UInt16)
-# define kwsysFundamentalType_Int32 kwsys_ns(FundamentalType_Int32)
-# define kwsysFundamentalType_UInt32 kwsys_ns(FundamentalType_UInt32)
-# define kwsysFundamentalType_Int64 kwsys_ns(FundamentalType_Int64)
-# define kwsysFundamentalType_UInt64 kwsys_ns(FundamentalType_UInt64)
-#endif
-
-/* The size of fundamental types. Types that do not exist have size 0. */
- at KWSYS_C_CODE_SIZEOF_CHAR@
- at KWSYS_C_CODE_SIZEOF_SHORT@
- at KWSYS_C_CODE_SIZEOF_INT@
- at KWSYS_C_CODE_SIZEOF_LONG@
- at KWSYS_C_CODE_SIZEOF_LONG_LONG@
- at KWSYS_C_CODE_SIZEOF___INT64@
-
-/* Whether types "long long" and "__int64" are enabled. If a type is
- enabled then it is a unique fundamental type. */
-#define @KWSYS_NAMESPACE at _USE_LONG_LONG @KWSYS_USE_LONG_LONG@
-#define @KWSYS_NAMESPACE at _USE___INT64 @KWSYS_USE___INT64@
-
-/* Whether type "char" is signed (it may be signed or unsigned). */
-#define @KWSYS_NAMESPACE at _CHAR_IS_SIGNED @KWSYS_CHAR_IS_SIGNED@
-
-#if defined(__cplusplus)
-extern "C"
-{
-#endif
-
-/* Select an 8-bit integer type. */
-#if @KWSYS_NAMESPACE at _SIZEOF_CHAR == 1
-typedef signed char kwsysFundamentalType_Int8;
-typedef unsigned char kwsysFundamentalType_UInt8;
-#else
-# error "No native data type can represent an 8-bit integer."
-#endif
-
-/* Select a 16-bit integer type. */
-#if @KWSYS_NAMESPACE at _SIZEOF_SHORT == 2
-typedef short kwsysFundamentalType_Int16;
-typedef unsigned short kwsysFundamentalType_UInt16;
-#elif @KWSYS_NAMESPACE at _SIZEOF_INT == 2
-typedef int kwsysFundamentalType_Int16;
-typedef unsigned int kwsysFundamentalType_UInt16;
-#else
-# error "No native data type can represent a 16-bit integer."
-#endif
-
-/* Select a 32-bit integer type. */
-#if @KWSYS_NAMESPACE at _SIZEOF_INT == 4
-typedef int kwsysFundamentalType_Int32;
-typedef unsigned int kwsysFundamentalType_UInt32;
-#elif @KWSYS_NAMESPACE at _SIZEOF_LONG == 4
-typedef long kwsysFundamentalType_Int32;
-typedef unsigned long kwsysFundamentalType_UInt32;
-#else
-# error "No native data type can represent a 32-bit integer."
-#endif
-
-/* Select a 64-bit integer type. */
-#if @KWSYS_NAMESPACE at _SIZEOF_LONG == 8
-typedef signed long kwsysFundamentalType_Int64;
-typedef unsigned long kwsysFundamentalType_UInt64;
-#elif @KWSYS_NAMESPACE at _USE_LONG_LONG && @KWSYS_NAMESPACE at _SIZEOF_LONG_LONG == 8
-typedef signed long long kwsysFundamentalType_Int64;
-typedef unsigned long long kwsysFundamentalType_UInt64;
-#elif @KWSYS_NAMESPACE at _USE___INT64 && @KWSYS_NAMESPACE at _SIZEOF___INT64 == 8
-typedef signed __int64 kwsysFundamentalType_Int64;
-typedef unsigned __int64 kwsysFundamentalType_UInt64;
-#else
-# error "No native data type can represent a 64-bit integer."
-#endif
-
-#if defined(__cplusplus)
-} /* extern "C" */
-#endif
-
-/* If we are building a kwsys .c or .cxx file, let it use these macros.
- Otherwise, undefine them to keep the namespace clean. */
-#if !defined(KWSYS_NAMESPACE)
-# undef kwsys_ns
-# undef kwsysEXPORT
-# if !defined(KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE at _NAME_IS_KWSYS
-# undef kwsysFundamentalType
-# undef kwsysFundamentalType_Int8
-# undef kwsysFundamentalType_UInt8
-# undef kwsysFundamentalType_Int16
-# undef kwsysFundamentalType_UInt16
-# undef kwsysFundamentalType_Int32
-# undef kwsysFundamentalType_UInt32
-# undef kwsysFundamentalType_Int64
-# undef kwsysFundamentalType_UInt64
-# endif
-#endif
-
-/* If building a C or C++ file in kwsys itself, give the source file
- access to the configured macros without a configured namespace. */
-#if defined(KWSYS_NAMESPACE)
-# define KWSYS_SIZEOF_CHAR @KWSYS_NAMESPACE at _SIZEOF_CHAR
-# define KWSYS_SIZEOF_SHORT @KWSYS_NAMESPACE at _SIZEOF_SHORT
-# define KWSYS_SIZEOF_INT @KWSYS_NAMESPACE at _SIZEOF_INT
-# define KWSYS_SIZEOF_LONG @KWSYS_NAMESPACE at _SIZEOF_LONG
-# define KWSYS_SIZEOF_LONG_LONG @KWSYS_NAMESPACE at _SIZEOF_LONG_LONG
-# define KWSYS_SIZEOF___INT64 @KWSYS_NAMESPACE at _SIZEOF___INT64
-# define KWSYS_USE_LONG_LONG @KWSYS_NAMESPACE at _USE_LONG_LONG
-# define KWSYS_USE___INT64 @KWSYS_NAMESPACE at _USE___INT64
-# define KWSYS_CHAR_IS_SIGNED @KWSYS_NAMESPACE at _CHAR_IS_SIGNED
-#endif
-
-#endif
diff --git a/kwsysPlatformTestsCXX.cxx b/kwsysPlatformTestsCXX.cxx
index aaa33b8..fc87f91 100644
--- a/kwsysPlatformTestsCXX.cxx
+++ b/kwsysPlatformTestsCXX.cxx
@@ -130,15 +130,6 @@ int main()
}
#endif
-#ifdef TEST_KWSYS_CHAR_IS_SIGNED
-/* Return 0 for char signed and 1 for char unsigned. */
-int main()
-{
- unsigned char uc = 255;
- return (*reinterpret_cast<char*>(&uc) < 0)?0:1;
-}
-#endif
-
#ifdef TEST_KWSYS_LFS_WORKS
/* Return 0 when LFS is available and 1 otherwise. */
#define _LARGEFILE_SOURCE
@@ -326,93 +317,6 @@ int main()
}
#endif
-#ifdef TEST_KWSYS_CXX_TYPE_INFO
-/* Collect fundamental type information and save it to a CMake script. */
-
-/* Include limits.h to get macros indicating long long and __int64.
- Note that certain compilers need special macros to define these
- macros in limits.h. */
-#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
-# define _MSC_EXTENSIONS
-#endif
-#if defined(__GNUC__) && __GNUC__ < 3
-# define _GNU_SOURCE
-#endif
-#include <limits.h>
-
-#include <stdio.h>
-#include <string.h>
-
-/* Due to shell differences and limitations of ADD_DEFINITIONS the
- KWSYS_CXX_TYPE_INFO_FILE macro will sometimes have double quotes
- and sometimes not. This macro will make sure the value is treated
- as a double-quoted string. */
-#define TO_STRING(x) TO_STRING0(x)
-#define TO_STRING0(x) TO_STRING1(x)
-#define TO_STRING1(x) #x
-
-void f() {}
-
-int main()
-{
- /* Construct the output file name. Some preprocessors will add an
- extra level of double quotes, so strip them. */
- char fbuf[] = TO_STRING(KWSYS_CXX_TYPE_INFO_FILE);
- char* fname = fbuf;
- if(fname[0] == '"')
- {
- ++fname;
- int len = static_cast<int>(strlen(fname));
- if(len > 0 && fname[len-1] == '"')
- {
- fname[len-1] = 0;
- }
- }
-
- /* Try to open the output file. */
- if(FILE* fout = fopen(fname, "w"))
- {
- /* Set the size of standard types. */
- fprintf(fout, "SET(KWSYS_SIZEOF_CHAR %d)\n", static_cast<int>(sizeof(char)));
- fprintf(fout, "SET(KWSYS_SIZEOF_SHORT %d)\n", static_cast<int>(sizeof(short)));
- fprintf(fout, "SET(KWSYS_SIZEOF_INT %d)\n", static_cast<int>(sizeof(int)));
- fprintf(fout, "SET(KWSYS_SIZEOF_LONG %d)\n", static_cast<int>(sizeof(long)));
-
- /* Set the size of some non-standard but common types. */
- /* Check for a limits.h macro for long long to see if the type exists. */
-#if defined(LLONG_MAX) || defined(LONG_LONG_MAX) || defined(LONGLONG_MAX)
- fprintf(fout, "SET(KWSYS_SIZEOF_LONG_LONG %d)\n", static_cast<int>(sizeof(long long)));
-#else
- fprintf(fout, "SET(KWSYS_SIZEOF_LONG_LONG 0) # No long long available.\n");
-#endif
- /* Check for a limits.h macro for __int64 to see if the type exists. */
-#if defined(_I64_MIN)
- fprintf(fout, "SET(KWSYS_SIZEOF___INT64 %d)\n", static_cast<int>(sizeof(__int64)));
-#else
- fprintf(fout, "SET(KWSYS_SIZEOF___INT64 0) # No __int64 available.\n");
-#endif
-
- /* Set the size of some pointer types. */
- fprintf(fout, "SET(KWSYS_SIZEOF_PDATA %d)\n", static_cast<int>(sizeof(void*)));
- fprintf(fout, "SET(KWSYS_SIZEOF_PFUNC %d)\n", static_cast<int>(sizeof(&f)));
-
- /* Set whether the native type "char" is signed or unsigned. */
- unsigned char uc = 255;
- fprintf(fout, "SET(KWSYS_CHAR_IS_SIGNED %d)\n",
- (*reinterpret_cast<char*>(&uc) < 0)?1:0);
-
- fclose(fout);
- return 0;
- }
- else
- {
- fprintf(stderr, "Failed to write fundamental type info to \"%s\".\n",
- fname);
- return 1;
- }
-}
-#endif
-
#ifdef TEST_KWSYS_CXX_HAS_BORLAND_ASM
int main()
{
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c4282347e27badf2f1e8b8b5a17bb01ce3209eea
commit c4282347e27badf2f1e8b8b5a17bb01ce3209eea
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Dec 17 14:30:36 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Dec 17 14:46:09 2015 -0500
Add script to update KWSys from upstream
diff --git a/Utilities/Scripts/update-kwsys.bash b/Utilities/Scripts/update-kwsys.bash
new file mode 100755
index 0000000..650841f
--- /dev/null
+++ b/Utilities/Scripts/update-kwsys.bash
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+
+set -e
+set -x
+shopt -s dotglob
+
+readonly name="KWSys"
+readonly ownership="KWSys Upstream <kwrobot at kitware.com>"
+readonly subtree="Source/kwsys"
+readonly repo="http://public.kitware.com/KWSys.git"
+readonly tag="master"
+readonly shortlog=true
+readonly paths="
+"
+
+extract_source () {
+ git_archive
+}
+
+export HOOKS_ALLOW_KWSYS=1
+
+. "${BASH_SOURCE%/*}/update-third-party.bash"
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f1ee10c15e9c4f7d46962029fbb7a9d312ce878d
commit f1ee10c15e9c4f7d46962029fbb7a9d312ce878d
Merge: 498c368 dcca789
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Dec 17 14:45:57 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Dec 17 14:45:57 2015 -0500
Merge branch 'upstream-KWSys' into update-kwsys
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=498c36850ba3e3b04dc2cbcd0baad7e8ee750de7
commit 498c36850ba3e3b04dc2cbcd0baad7e8ee750de7
Author: Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Thu Dec 17 14:26:19 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Dec 17 14:44:53 2015 -0500
Add a script to help update third-party sources
Use the VTK `ThirdParty/update-common.sh` script as of commit
2f24b7b0f60b67a2a28b9aef210f06f904e7a977.
Co-Author: Brad King <brad.king at kitware.com>
diff --git a/Utilities/Scripts/update-third-party.bash b/Utilities/Scripts/update-third-party.bash
new file mode 100644
index 0000000..8925296
--- /dev/null
+++ b/Utilities/Scripts/update-third-party.bash
@@ -0,0 +1,146 @@
+########################################################################
+# Script for updating third party packages.
+#
+# This script should be sourced in a project-specific script which sets
+# the following variables:
+#
+# name
+# The name of the project.
+# ownership
+# A git author name/email for the commits.
+# subtree
+# The location of the thirdparty package within the main source
+# tree.
+# repo
+# The git repository to use as upstream.
+# tag
+# The tag, branch or commit hash to use for upstream.
+# shortlog
+# Optional. Set to 'true' to get a shortlog in the commit message.
+#
+# Additionally, an "extract_source" function must be defined. It will be
+# run within the checkout of the project on the requested tag. It should
+# should place the desired tree into $extractdir/$name-reduced. This
+# directory will be used as the newest commit for the project.
+#
+# For convenience, the function may use the "git_archive" function which
+# does a standard "git archive" extraction using the (optional) "paths"
+# variable to only extract a subset of the source tree.
+########################################################################
+
+########################################################################
+# Utility functions
+########################################################################
+git_archive () {
+ git archive --prefix="$name-reduced/" HEAD -- $paths | \
+ tar -C "$extractdir" -x
+}
+
+die () {
+ echo >&2 "$@"
+ exit 1
+}
+
+warn () {
+ echo >&2 "warning: $@"
+}
+
+readonly regex_date='20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
+readonly basehash_regex="$name $regex_date ([0-9a-f]*)"
+readonly basehash="$( git rev-list --author="$ownership" --grep="$basehash_regex" -n 1 HEAD )"
+readonly upstream_old_short="$( git cat-file commit "$basehash" | sed -n '/'"$basehash_regex"'/ {s/.*(//;s/)//;p}' | egrep '^[0-9a-f]+$' )"
+
+########################################################################
+# Sanity checking
+########################################################################
+[ -n "$name" ] || \
+ die "'name' is empty"
+[ -n "$ownership" ] || \
+ die "'ownership' is empty"
+[ -n "$subtree" ] || \
+ die "'subtree' is empty"
+[ -n "$repo" ] || \
+ die "'repo' is empty"
+[ -n "$tag" ] || \
+ die "'tag' is empty"
+[ -n "$basehash" ] || \
+ warn "'basehash' is empty; performing initial import"
+readonly do_shortlog="${shortlog-false}"
+
+readonly workdir="$PWD/work"
+readonly upstreamdir="$workdir/upstream"
+readonly extractdir="$workdir/extract"
+
+[ -d "$workdir" ] && \
+ die "error: workdir '$workdir' already exists"
+
+trap "rm -rf '$workdir'" EXIT
+
+# Get upstream
+git clone "$repo" "$upstreamdir"
+
+if [ -n "$basehash" ]; then
+ # Use the existing package's history
+ git worktree add "$extractdir" "$basehash"
+ # Clear out the working tree
+ pushd "$extractdir"
+ git ls-files | xargs rm -v
+ popd
+else
+ # Create a repo to hold this package's history
+ mkdir -p "$extractdir"
+ git -C "$extractdir" init
+fi
+
+# Extract the subset of upstream we care about
+pushd "$upstreamdir"
+git checkout "$tag"
+readonly upstream_hash="$( git rev-parse HEAD )"
+readonly upstream_hash_short="$( git rev-parse --short=8 "$upstream_hash" )"
+readonly upstream_datetime="$( git rev-list "$upstream_hash" --format='%ci' -n 1 | grep -e "^$regex_date" )"
+readonly upstream_date="$( echo "$upstream_datetime" | grep -o -e "$regex_date" )"
+if $do_shortlog && [ -n "$basehash" ]; then
+ readonly commit_shortlog="
+
+Upstream Shortlog
+-----------------
+
+$( git shortlog --no-merges --abbrev=8 --format='%h %s' "$upstream_old_short".."$upstream_hash" )"
+else
+ readonly commit_shortlog=""
+fi
+extract_source || \
+ die "failed to extract source"
+popd
+
+[ -d "$extractdir/$name-reduced" ] || \
+ die "expected directory to extract does not exist"
+readonly commit_summary="$name $upstream_date ($upstream_hash_short)"
+
+# Commit the subset
+pushd "$extractdir"
+mv -v "$name-reduced/"* .
+rmdir "$name-reduced/"
+git add -A .
+git commit -n --author="$ownership" --date="$upstream_datetime" -F - <<-EOF
+$commit_summary
+
+Code extracted from:
+
+ $repo
+
+at commit $upstream_hash ($tag).$commit_shortlog
+EOF
+git branch -f "upstream-$name"
+popd
+
+# Merge the subset into this repository
+if [ -n "$basehash" ]; then
+ git merge --log -s recursive "-Xsubtree=$subtree/" --no-commit "upstream-$name"
+else
+ git fetch "$extractdir" "upstream-$name:upstream-$name"
+ git merge --log -s ours --no-commit "upstream-$name"
+ git read-tree -u --prefix="$subtree/" "upstream-$name"
+fi
+git commit --no-edit
+git branch -d "upstream-$name"
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dcca789272057e2cb0aae640836c189873701d68
commit dcca789272057e2cb0aae640836c189873701d68
Author: KWSys Upstream <kwrobot at kitware.com>
AuthorDate: Wed Dec 9 11:45:28 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon Dec 14 14:37:35 2015 -0500
KWSys 2015-12-09 (cdcf4c47)
Code extracted from:
http://public.kitware.com/KWSys.git
at commit cdcf4c4753d8e90895f1fb2cb6ab622342bcaaa8.
-----------------------------------------------------------------------
Summary of changes:
Source/kwsys/CMakeLists.txt | 58 +-----------
Source/kwsys/FundamentalType.h.in | 139 ---------------------------
Source/kwsys/kwsysPlatformTestsCXX.cxx | 96 -------------------
Utilities/Scripts/update-kwsys.bash | 22 +++++
Utilities/Scripts/update-third-party.bash | 146 +++++++++++++++++++++++++++++
5 files changed, 169 insertions(+), 292 deletions(-)
delete mode 100644 Source/kwsys/FundamentalType.h.in
create mode 100755 Utilities/Scripts/update-kwsys.bash
create mode 100644 Utilities/Scripts/update-third-party.bash
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list