From 57a287d34ca78b0ebd15a1b6d6fd6b877dbf10b6 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Mon, 14 Sep 2020 23:05:05 +0200 Subject: [PATCH] bison: New package --- bison-3.7.3+dfsg.cmake | 119 +++++++++++++++++++++++++++++++++++++++++ doxygen-1.8.13.cmake | 1 + 2 files changed, 120 insertions(+) create mode 100644 bison-3.7.3+dfsg.cmake diff --git a/bison-3.7.3+dfsg.cmake b/bison-3.7.3+dfsg.cmake new file mode 100644 index 00000000..e4aaea12 --- /dev/null +++ b/bison-3.7.3+dfsg.cmake @@ -0,0 +1,119 @@ +# This file is part of OpenOrienteering. + +# Copyright 2020 Kai Pastor +# +# Redistribution and use is allowed according to the terms of the BSD license: +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(version 3.7.3+dfsg) +set(download_hash SHA256=5cdc0edfdf65aa04a4a9f12d6c3b4a09645ef39f61e62624e27895c9b1ebf82a) +set(patch_version ${version}-1) +set(patch_hash SHA256=ed2aea01202e605de03513f59ad4bd63d22cba3dd1b0dc6a9168d15d91689177) +set(base_url https://snapshot.debian.org/archive/debian/20201018T090104Z/pool/main/b/bison/) + +option(USE_SYSTEM_BISON "Use the system Bison if possible" ON) + +set(test_system_bison [[ + if(${USE_SYSTEM_BISON}) + enable_language(C) + # Doxygen 1.8.x needs at least Bison 2.7 + find_package(BISON 2.7 QUIET) + string(FIND "${BISON_EXECUTABLE}" "${CMAKE_STAGING_PREFIX}/" staging_prefix_start) + if(BISON_EXECUTABLE AND NOT staging_prefix_start EQUAL 0) + message(STATUS "Found ${SYSTEM_NAME} Bison: ${BISON_EXECUTABLE} (${BISON_VERSION})") + set(BUILD_CONDITION 0) + endif() + if(BISON_VERSION AND BISON_VERSION VERSION_LESS 2.7) + message(WARNING "Ignoring ${SYSTEM_NAME} Bison (< 2.7)") + set(BUILD_CONDITION 1) + endif() + endif() +]]) + +set(bison_texi [[ +@setfilename bison.info +]]) + +superbuild_package( + NAME bison-patches + VERSION ${patch_version} + + SOURCE + URL ${base_url}bison_${patch_version}.debian.tar.xz + URL_HASH ${patch_hash} +) + +superbuild_package( + NAME bison + VERSION ${patch_version} + DEPENDS + source:bison-patches-${patch_version} + + SOURCE_WRITE + bison.texi bison_texi + SOURCE + URL ${base_url}bison_${version}.orig.tar.xz + URL_HASH ${download_hash} + PATCH_COMMAND + "${CMAKE_COMMAND}" + -Dpackage=bison-patches-${patch_version} + -P "${APPLY_PATCHES_SERIES}" + # Fix the issues resulting from Debian DFSG tarball and patching + COMMAND + "${CMAKE_COMMAND}" + -E copy bison.texi doc/bison.texi + COMMAND + touch -r doc/local.mk doc/bison.texi + COMMAND + touch -r doc/local.mk examples/c/lexcalc/local.mk + COMMAND + touch -r doc/local.mk examples/local.mk + + USING USE_SYSTEM_BISON patch_version + BUILD_CONDITION ${test_system_bison} + BUILD [[ + CONFIGURE_COMMAND + "${SOURCE_DIR}/configure" + "--prefix=${CMAKE_INSTALL_PREFIX}" + $<$: + --host=${SUPERBUILD_TOOLCHAIN_TRIPLET} + > + --enable-relocatable + --disable-nls + --disable-silent-rules + "CC=${SUPERBUILD_CC}" + "CXX=${SUPERBUILD_CXX}" + "CPPFLAGS=${SUPERBUILD_CPPFLAGS}" + "CFLAGS=${SUPERBUILD_CFLAGS}" + "CXXFLAGS=${SUPERBUILD_CXXFLAGS}" + "LDFLAGS=${SUPERBUILD_LDFLAGS}" + INSTALL_COMMAND + "$(MAKE)" install "DESTDIR=${DESTDIR}${INSTALL_DIR}" + COMMAND + "${CMAKE_COMMAND}" -E copy + "/../bison-patches-${patch_version}/copyright" + "${DESTDIR}${CMAKE_STAGING_PREFIX}/share/doc/copyright/bison-${patch_version}.txt" + ]] +) diff --git a/doxygen-1.8.13.cmake b/doxygen-1.8.13.cmake index 790f492f..4023843d 100644 --- a/doxygen-1.8.13.cmake +++ b/doxygen-1.8.13.cmake @@ -103,6 +103,7 @@ superbuild_package( VERSION ${patch_version} DEPENDS source:doxygen-patches-${patch_version} + host:bison libiconv zlib