Commit db915a37 authored by Brad King's avatar Brad King

Utilities/Release: Drop Cygwin binary

Cygwin has packaged CMake independently of upstream for a long time.
See its [cygport](https://github.com/cygwinports/cmake).
parent d5e4cdc0
......@@ -190,31 +190,6 @@ if(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
set(CPACK_PACKAGE_EXECUTABLES "ccmake" "CMake")
endif()
# cygwin specific packaging stuff
if(CYGWIN)
# setup the cygwin package name
set(CPACK_PACKAGE_NAME cmake)
# setup the name of the package for cygwin cmake-2.4.3
set(CPACK_PACKAGE_FILE_NAME
"${CPACK_PACKAGE_NAME}-${CMake_VERSION}")
# the source has the same name as the binary
set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME})
# Create a cygwin version number in case there are changes for cygwin
# that are not reflected upstream in CMake
set(CPACK_CYGWIN_PATCH_NUMBER 1 CACHE STRING "patch number for CMake cygwin packages")
mark_as_advanced(CPACK_CYGWIN_PATCH_NUMBER)
# These files are required by the cmCPackCygwinSourceGenerator and the files
# put into the release tar files.
set(CPACK_CYGWIN_BUILD_SCRIPT
"${CMake_BINARY_DIR}/${CPACK_PACKAGE_FILE_NAME}-${CPACK_CYGWIN_PATCH_NUMBER}.sh")
set(CPACK_CYGWIN_PATCH_FILE
"${CMake_BINARY_DIR}/${CPACK_PACKAGE_FILE_NAME}-${CPACK_CYGWIN_PATCH_NUMBER}.patch")
# include the sub directory cmake file for cygwin that
# configures some files and adds some install targets
# this file uses some of the package file name variables
include(Utilities/Release/Cygwin/CMakeLists.txt)
endif()
set(CPACK_WIX_UPGRADE_GUID "8ffd1d72-b7f1-11e2-8ee5-00238bca4991")
if(MSVC AND NOT "$ENV{WIX}" STREQUAL "")
......
http://cygwin.com/setup.html
Need to produce two tar files:
Source-
- create subdirs
- copy src
- duplicate src
- configure files into duplicate src
CPack.cygwin-readme.in
CPack.cygwin-install.sh.in
CPack.setup.hint.in
- diff duplicate src and orig src
- write diff into toplevel
- create tar file call super class
cmake-2.2.3-1
1. a source release
cmake-2.2.3-2-src.tar.bz2
cmake-2.2.3-2.patch has cmake-2.2.3/CYGWIN-PATCHES/cmake.README cmake-2.2.3/CYGWIN-PATCHES/setup.hint
cmake-2.2.3-2.sh -> script to create cygwin release
cmake-2.2.3.tar.bz2 -> unmodified cmake sources for 2.2.3
2 a binary release
cmake-2.2.3-2.tar.bz2
normal binary release with use as the root of the tree:
Here is the bootstrap command used:
${SOURCE_DIR}/bootstrap --prefix=/usr --datadir=/share/cmake-${VER} \
--docdir=/share/doc/cmake-${VER} --mandir=/share/man
CMAKE_DOC_DIR /share/doc/${PKG}-${VER}
CMAKE_MAN_DIR /share/man
CMAKE_DATA_DIR /share/${PKG}-${VER}
Here is the directory stucture:
usr/bin/cmake.exe
usr/share/doc/cmake-2.2.3/MANIFEST ***
usr/share/doc/Cygwin/cmake-2.2.3-2.README ****
usr/share/cmake-2.2.3/Modules
usr/bin
usr/share/cmake-2.2.3/include
usr/share/cmake-2.2.3/Modules/Platform
usr/share/cmake-2.2.3/Modules
usr/share/cmake-2.2.3/Templates
usr/share/cmake-2.2.3
usr/share/doc/cmake-2.2.3
usr/share/doc/Cygwin
usr/share/doc
usr/share/man/man1
usr/share/man
usr/share
usr
#!/bin/sh
# this is a sample shell script used for building a cmake
# based project for a cygwin setup package.
# get the current directory
TOP_DIR=`cd \`echo "$0" | sed -n '/\//{s/\/[^\/]*$//;p;}'\`;pwd`
# create build directory
mkdirs()
{
(
mkdir -p "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build"
)
}
# cd into
# untar source tree and apply patch
prep()
{
(
cd "$TOP_DIR" &&
tar xvfj @CPACK_PACKAGE_FILE_NAME@.tar.bz2
patch -p0 < "@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.patch" &&
mkdirs
)
}
# configure the build tree in .build directory
# of the source tree
conf()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
cmake ..
)
}
# build the package in the .build directory
build()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
make &&
make test
)
}
# clean the build tree
clean()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
make clean
)
}
# create the package
pkg()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
cpack &&
mv @CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.tar.bz2 "$TOP_DIR"
)
}
# create the source package
spkg()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
cpack --config CPackSourceConfig.cmake &&
mv @CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@-src.tar.bz2 "$TOP_DIR"
)
}
# clean up
finish()
{
(
rm -rf "@CPACK_PACKAGE_FILE_NAME@"
)
}
case $1 in
prep) prep ; STATUS=$? ;;
mkdirs) mkdirs ; STATUS=$? ;;
conf) conf ; STATUS=$? ;;
build) build ; STATUS=$? ;;
clean) clean ; STATUS=$? ;;
package) pkg ; STATUS=$? ;;
pkg) pkg ; STATUS=$? ;;
src-package) spkg ; STATUS=$? ;;
spkg) spkg ; STATUS=$? ;;
finish) finish ; STATUS=$? ;;
all) (
prep && conf && build && pkg && spkg && finish ;
STATUS=$?
) ;;
*) echo "Error: bad argument (all or one of these: prep mkdirs conf build clean package pkg src-package spkg finish)" ; exit 1 ;;
esac
exit ${STATUS}
file(GLOB INSTALLED_CURSES /usr/bin/cygncurses-*.dll)
set(MAX 0)
foreach(f ${INSTALLED_CURSES})
if(NOT "${f}" MATCHES "\\+")
string(REGEX REPLACE ".*-([0-9]*).dll" "\\1" NUMBER "${f}")
if(NUMBER GREATER MAX)
set(MAX ${NUMBER})
endif()
endif()
endforeach()
string(REGEX REPLACE "/usr/bin/" "\\1" NUMBER "${f}")
set(CMAKE_NCURSES_VERSION "libncurses${MAX}")
message(STATUS "Using curses version: libncurses${MAX}")
configure_file("${CMake_SOURCE_DIR}/Utilities/Release/Cygwin/cygwin-setup.hint.in"
"${CMake_BINARY_DIR}/setup.hint")
configure_file("${CMake_SOURCE_DIR}/Utilities/Release/Cygwin/README.cygwin.in"
"${CMake_BINARY_DIR}/Docs/${CPACK_PACKAGE_FILE_NAME}-${CPACK_CYGWIN_PATCH_NUMBER}.README")
install_files(/share/doc/Cygwin FILES
${CMake_BINARY_DIR}/Docs/${CPACK_PACKAGE_FILE_NAME}-${CPACK_CYGWIN_PATCH_NUMBER}.README
)
configure_file("${CMake_SOURCE_DIR}/Utilities/Release/Cygwin/cygwin-package.sh.in"
${CPACK_CYGWIN_BUILD_SCRIPT})
configure_file("${CMake_SOURCE_DIR}/Utilities/Release/Cygwin/cygwin-patch.diff.in"
${CPACK_CYGWIN_PATCH_FILE})
cmake
--------------------------------------
Runtime requirements:
cygwin-1.5.21(0.156/4/2) or newer
Build requirements
cygwin-1.5.21(0.156/4/2) or newer
make
Canonical homepage:
https://cmake.org
Canonical download:
ftp://www.cmake.org/pub/cmake/
------------------------------------
Build instructions:
unpack @CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@-src.tar.bz2
if you use setup to install this src package, it will be
unpacked under /usr/src automatically
cd /usr/src
./@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.sh all
This will create:
/usr/src/@CPACK_PACKAGE_FILE_NAME@.tar.bz2
/usr/src/@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@-src.tar.bz2
-------------------------------------------
Port Notes:
The directory /usr/share/@CPACK_PACKAGE_FILE_NAME@/include is purposely not
located at /usr/include/@CPACK_PACKAGE_FILE_NAME@ or /usr/include/cmake. The
files it contains are not meant for inclusion in any C or C++ program.
They are used for compiling dynamically loadable CMake commands inside
projects that provide them. CMake will automatically provide the
proper include path when the files are needed.
------------------
Cygwin port maintained by: CMake Developers <cmake@www.cmake.org>
TOP_DIR=`cd \`echo "$0" | sed -n '/\//{s/\/[^\/]*$//;p;}'\`;pwd`
# create build directory
mkdirs()
{
(
mkdir -p "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build"
)
}
# cd into
# untar source tree and apply patch
prep()
{
(
cd "$TOP_DIR" &&
tar xvfj @CPACK_PACKAGE_FILE_NAME@.tar.bz2
patch -p0 < "@CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.patch" &&
mkdirs
)
}
conf()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
../bootstrap --parallel=2
)
}
build()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
make -j2 &&
make test
)
}
clean()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
make clean
)
}
pkg()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
./bin/cpack &&
mv @CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@.tar.bz2 "$TOP_DIR"
)
}
spkg()
{
(
cd "$TOP_DIR/@CPACK_PACKAGE_FILE_NAME@/.build" &&
./bin/cpack --config CPackSourceConfig.cmake &&
mv @CPACK_PACKAGE_FILE_NAME@-@CPACK_CYGWIN_PATCH_NUMBER@-src.tar.bz2 "$TOP_DIR"
)
}
finish()
{
(
rm -rf "@CPACK_PACKAGE_FILE_NAME@"
)
}
case $1 in
prep) prep ; STATUS=$? ;;
mkdirs) mkdirs ; STATUS=$? ;;
conf) conf ; STATUS=$? ;;
build) build ; STATUS=$? ;;
clean) clean ; STATUS=$? ;;
package) pkg ; STATUS=$? ;;
pkg) pkg ; STATUS=$? ;;
src-package) spkg ; STATUS=$? ;;
spkg) spkg ; STATUS=$? ;;
finish) finish ; STATUS=$? ;;
all) (
prep && conf && build && pkg && spkg && finish ;
STATUS=$?
) ;;
*) echo "Error: bad argument (all or one of these: prep mkdirs conf build clean package pkg src-package spkg finish)" ; exit 1 ;;
esac
exit ${STATUS}
# CMake setup.hint file for cygwin setup.exe program
category: Devel
requires: libgcc1 libidn11 @CMAKE_NCURSES_VERSION@ libstdc++6
sdesc: "A cross platform build manager"
ldesc: "CMake is a cross platform build manager. It allows you to specify build parameters for C and C++ programs in a cross platform manner. For cygwin Makefiles will be generated. CMake is also capable of generating microsoft project files, nmake, and borland makefiles. CMake can also perform system inspection operations like finding installed libraries and header files."
......@@ -15,7 +15,4 @@ Then as kitware@hythloth, using an up-to-date CMake:
create-cmake-release.cmake: script to run to create release sh scripts
Add or remove machines in create-cmake-release.cmake.
Cygwin -> directory that contains cpack cygwin package files used in
CMakeCPack.cmake
machine_release.cmake : config files for each machine
......@@ -12,7 +12,6 @@ set(RELEASE_SCRIPTS_BATCH_1
)
set(RELEASE_SCRIPTS_BATCH_2
cygwin_release.cmake # Cygwin x86
win64_release.cmake # Windows x64
)
......
set(CMAKE_RELEASE_DIRECTORY "c:/cygwin/home/dashboard/CMakeReleaseCygwin")
set(PROCESSORS 9)
set(BOOTSTRAP_ARGS "")
set(MAKE_PROGRAM "make")
set(MAKE "${MAKE_PROGRAM} -j8")
set(HOST dash2win64)
set(CPACK_BINARY_GENERATORS "CygwinBinary")
set(CPACK_SOURCE_GENERATORS "CygwinSource")
set(MAKE_PROGRAM "make")
set(INITIAL_CACHE "CMAKE_BUILD_TYPE:STRING=Release
CMAKE_Fortran_COMPILER_FULLPATH:FILEPATH=FALSE
CTEST_TEST_TIMEOUT:STRING=7200
DART_TESTING_TIMEOUT:STRING=7200
SPHINX_HTML:BOOL=ON
SPHINX_MAN:BOOL=ON
CMake_INSTALL_DEPENDENCIES:BOOL=ON
")
set(CXX g++)
set(CC gcc)
set(GIT_EXTRA "git config core.autocrlf false")
get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH)
# WARNING: Temporary fix!! This exclusion of the ExternalProject test
# is temporary until we can set up a new cygwin build machine.
# It only fails because of cygwin/non-cygwin "svn" mismatches in this
# particular environment. This is less than ideal, but at least it
# allows us to produce cygwin builds in the short term.
set(EXTRA_CTEST_ARGS "-E ExternalProject")
set(LOCAL_DIR cygwin)
include(${path}/release_cmake.cmake)
......@@ -108,10 +108,6 @@ foreach(gen ${generators})
if("${gen}" STREQUAL "TBZ2")
set(SUFFIXES ${SUFFIXES} "*.tar.bz2")
endif()
if("${gen}" MATCHES "Cygwin")
set(SUFFIXES ${SUFFIXES} "*.tar.bz2")
set(extra_files setup.hint)
endif()
if("${gen}" STREQUAL "TZ")
set(SUFFIXES ${SUFFIXES} "*.tar.Z")
endif()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment