From e46fa53887c4fef17258c80ee43c6e30737b1bcf Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Wed, 19 Jan 2022 19:49:09 +0530 Subject: [PATCH 01/19] [New Package] FMUComplianceChecker --- F/FMUComplianceChecker/build_tarballs.jl | 54 ++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 F/FMUComplianceChecker/build_tarballs.jl diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl new file mode 100644 index 00000000000..ffeb8ac27d0 --- /dev/null +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -0,0 +1,54 @@ +# Note that this script can accept some limited command-line arguments, run +# `julia build_tarballs.jl --help` to see a usage message. +using BinaryBuilder, Pkg + +name = "FMUComplianceChecker" +version = v"2.0.4" + +# Collection of sources required to complete build +sources = [ + ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/releases/download/2.0.4/FMUChecker-2.0.4-linux64.zip", "02f6d1a175fe4c51d5840ef40fcd05ca7fb3ceec170d7825d9c946d75eae12eb"), + ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/releases/download/2.0.4/FMUChecker-2.0.4-win64.zip", "4932a46624a7ff84235bb49df7827c7b03684f6d67318ad272bd25548cb1dc8f") +] + +# Bash recipe for building across all platforms +script = raw""" +cd $WORKSPACE/srcdir +mkdir ${bindir}/ + +if [[ "${target}" == *linux* ]]; then + cd FMUChecker-2.0.4-linux64/ + mv ./fmuCheck.linux64 ${bindir}/fmuCheck +fi + +if [[ "${target}" == *mingw* ]]; then + cd FMUChecker-2.0.4-win64/ + mv ./fmuCheck.win64 ${bindir}/fmuCheck +fi + +chmod +x ${bindir}/* +LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" +mkdir -p "${LIC_DIR}" +mv "./LICENCE.md" "${LIC_DIR}/LICENSE.md" +""" + +# These are the platforms we will build for by default, unless further +# platforms are passed in on the command line +platforms = [ + Platform("x86_64", "windows"; ), + Platform("x86_64", "linux"; libc = "glibc"), + Platform("x86_64", "linux"; libc = "musl") +] + + +# The products that we will ensure are always built +products = [ + LibraryProduct("fmuCheck", :libFMUCheck) +] + +# Dependencies that must be installed before this package can be built +dependencies = Dependency[ +] + +# Build the tarballs, and possibly a `build.jl` as well. +build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6") From ee9baf1638452d48754f05cfb4ea6caeb568376e Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Wed, 19 Jan 2022 20:00:42 +0530 Subject: [PATCH 02/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index ffeb8ac27d0..951c7a8cabb 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -19,14 +19,14 @@ mkdir ${bindir}/ if [[ "${target}" == *linux* ]]; then cd FMUChecker-2.0.4-linux64/ mv ./fmuCheck.linux64 ${bindir}/fmuCheck + chmod +x ${bindir}/* fi if [[ "${target}" == *mingw* ]]; then cd FMUChecker-2.0.4-win64/ - mv ./fmuCheck.win64 ${bindir}/fmuCheck + mv ./fmuCheck.win64.exe ${bindir}/fmuCheck.exe fi -chmod +x ${bindir}/* LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" mkdir -p "${LIC_DIR}" mv "./LICENCE.md" "${LIC_DIR}/LICENSE.md" From 0b1d931f33640b48e612cb65ab65ad94c1e65edf Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Wed, 19 Jan 2022 20:13:21 +0530 Subject: [PATCH 03/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 951c7a8cabb..d1a8b633487 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -19,7 +19,6 @@ mkdir ${bindir}/ if [[ "${target}" == *linux* ]]; then cd FMUChecker-2.0.4-linux64/ mv ./fmuCheck.linux64 ${bindir}/fmuCheck - chmod +x ${bindir}/* fi if [[ "${target}" == *mingw* ]]; then @@ -27,6 +26,8 @@ if [[ "${target}" == *mingw* ]]; then mv ./fmuCheck.win64.exe ${bindir}/fmuCheck.exe fi +chmod +x ${bindir}/* + LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" mkdir -p "${LIC_DIR}" mv "./LICENCE.md" "${LIC_DIR}/LICENSE.md" @@ -43,7 +44,7 @@ platforms = [ # The products that we will ensure are always built products = [ - LibraryProduct("fmuCheck", :libFMUCheck) + ExecutableProduct("fmuCheck", :libFMUCheck) ] # Dependencies that must be installed before this package can be built From 8613d1c6d612b916dd4712904203edea47200956 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Wed, 19 Jan 2022 20:31:26 +0530 Subject: [PATCH 04/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index d1a8b633487..0adfc61c99e 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -7,23 +7,34 @@ version = v"2.0.4" # Collection of sources required to complete build sources = [ - ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/releases/download/2.0.4/FMUChecker-2.0.4-linux64.zip", "02f6d1a175fe4c51d5840ef40fcd05ca7fb3ceec170d7825d9c946d75eae12eb"), - ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/releases/download/2.0.4/FMUChecker-2.0.4-win64.zip", "4932a46624a7ff84235bb49df7827c7b03684f6d67318ad272bd25548cb1dc8f") + ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/refs/tags/$(version).tar.gz", "361a1995fe498f5399092cff119c78a4500abbb7b9ca8c77d48a7de72c294f59") ] # Bash recipe for building across all platforms script = raw""" +apk add subversion + cd $WORKSPACE/srcdir mkdir ${bindir}/ if [[ "${target}" == *linux* ]]; then - cd FMUChecker-2.0.4-linux64/ - mv ./fmuCheck.linux64 ${bindir}/fmuCheck + cd FMUChecker-*-linux64/ +fi + +if [[ "${target}" == *mingw* ]]; then + cd FMUChecker-*-win64/ +fi + +mkdir build; cd build +cmake .. +make install test + +if [[ "${target}" == *linux* ]]; then + mv ../bin/fmuCheck.linux64 ${bindir}/fmuCheck fi if [[ "${target}" == *mingw* ]]; then - cd FMUChecker-2.0.4-win64/ - mv ./fmuCheck.win64.exe ${bindir}/fmuCheck.exe + mv ../bin/fmuCheck.win64.exe ${bindir}/fmuCheck.exe fi chmod +x ${bindir}/* @@ -38,7 +49,6 @@ mv "./LICENCE.md" "${LIC_DIR}/LICENSE.md" platforms = [ Platform("x86_64", "windows"; ), Platform("x86_64", "linux"; libc = "glibc"), - Platform("x86_64", "linux"; libc = "musl") ] From ba054f5f744b95b6cd33b21cb07ba687de63b073 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Wed, 19 Jan 2022 20:35:17 +0530 Subject: [PATCH 05/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 0adfc61c99e..24c5b56f276 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -17,13 +17,7 @@ apk add subversion cd $WORKSPACE/srcdir mkdir ${bindir}/ -if [[ "${target}" == *linux* ]]; then - cd FMUChecker-*-linux64/ -fi - -if [[ "${target}" == *mingw* ]]; then - cd FMUChecker-*-win64/ -fi +cd FMUComplianceChecker-*/ mkdir build; cd build cmake .. From 5f3224f215e2ee7c4af815775d0bacc0534d9002 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Wed, 19 Jan 2022 20:46:50 +0530 Subject: [PATCH 06/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 24c5b56f276..d2627187e53 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -31,6 +31,8 @@ if [[ "${target}" == *mingw* ]]; then mv ../bin/fmuCheck.win64.exe ${bindir}/fmuCheck.exe fi +yes 'p' | svn ls + chmod +x ${bindir}/* LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" From c31be2b8a08ecd295873cf981abed61ad0a25104 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Wed, 19 Jan 2022 20:49:32 +0530 Subject: [PATCH 07/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index d2627187e53..437d1fcfbfd 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -31,7 +31,7 @@ if [[ "${target}" == *mingw* ]]; then mv ../bin/fmuCheck.win64.exe ${bindir}/fmuCheck.exe fi -yes 'p' | svn ls +yes 'p' | svn info "https://svn.jmodelica.org/FMILibrary" chmod +x ${bindir}/* From 30c7cecab1eec6035db43ff722518ae971f34d93 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Wed, 19 Jan 2022 20:51:54 +0530 Subject: [PATCH 08/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 437d1fcfbfd..5cb26c5c76b 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -13,6 +13,7 @@ sources = [ # Bash recipe for building across all platforms script = raw""" apk add subversion +yes 'p' | svn info "https://svn.jmodelica.org/FMILibrary" cd $WORKSPACE/srcdir mkdir ${bindir}/ @@ -31,8 +32,6 @@ if [[ "${target}" == *mingw* ]]; then mv ../bin/fmuCheck.win64.exe ${bindir}/fmuCheck.exe fi -yes 'p' | svn info "https://svn.jmodelica.org/FMILibrary" - chmod +x ${bindir}/* LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" From e09b0c42a0e40976a20562e2a26a811303bbfa4c Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Thu, 20 Jan 2022 19:29:56 +0530 Subject: [PATCH 09/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 5cb26c5c76b..8daa7421939 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -13,30 +13,29 @@ sources = [ # Bash recipe for building across all platforms script = raw""" apk add subversion -yes 'p' | svn info "https://svn.jmodelica.org/FMILibrary" cd $WORKSPACE/srcdir mkdir ${bindir}/ -cd FMUComplianceChecker-*/ +cd FMUComplianceChecker-*/ mkdir build; cd build cmake .. make install test if [[ "${target}" == *linux* ]]; then - mv ../bin/fmuCheck.linux64 ${bindir}/fmuCheck + mv ../install/fmuCheck.linux64 ${bindir}/fmuCheck fi if [[ "${target}" == *mingw* ]]; then - mv ../bin/fmuCheck.win64.exe ${bindir}/fmuCheck.exe + mv ../install/fmuCheck.win64.exe ${bindir}/fmuCheck.exe fi chmod +x ${bindir}/* LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" mkdir -p "${LIC_DIR}" -mv "./LICENCE.md" "${LIC_DIR}/LICENSE.md" +mv "../LICENCE" "${LIC_DIR}/LICENSE" """ # These are the platforms we will build for by default, unless further From 89c044c1ed1584e9138f314c13b79df04a412d11 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Thu, 20 Jan 2022 19:33:29 +0530 Subject: [PATCH 10/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 26 ++++++++---------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 8daa7421939..950415816b6 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -7,35 +7,27 @@ version = v"2.0.4" # Collection of sources required to complete build sources = [ - ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/refs/tags/$(version).tar.gz", "361a1995fe498f5399092cff119c78a4500abbb7b9ca8c77d48a7de72c294f59") + ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/refs/heads/master.zip", "2f8f0754164c7c13f8de76f8ec3271899d4650a3ffe895c2e813cd0b46ae7cb7") ] # Bash recipe for building across all platforms script = raw""" -apk add subversion - cd $WORKSPACE/srcdir +apk add subversion mkdir ${bindir}/ - -cd FMUComplianceChecker-*/ - +cd FMUComplianceChecker-*/ mkdir build; cd build cmake .. make install test - -if [[ "${target}" == *linux* ]]; then - mv ../install/fmuCheck.linux64 ${bindir}/fmuCheck -fi - -if [[ "${target}" == *mingw* ]]; then - mv ../install/fmuCheck.win64.exe ${bindir}/fmuCheck.exe -fi - +if [[ "${target}" == *linux* ]]; then mv ../install/fmuCheck.linux64 ${bindir}/fmuCheck; fi +if [[ "${target}" == *mingw* ]]; then mv ../install/fmuCheck.win64.exe ${bindir}/fmuCheck.exe; fi chmod +x ${bindir}/* - LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" mkdir -p "${LIC_DIR}" -mv "../LICENCE" "${LIC_DIR}/LICENSE" +mv "./LICENCE.md" "${LIC_DIR}/LICENSE.md" +mv "../LICENCE.md" "${LIC_DIR}/LICENSE.md" +ls .. +mv "../LICENCE" "${LIC_DIR}/LICENSE.md" """ # These are the platforms we will build for by default, unless further From 1d94f9d57a045cfe0cccd4443681096e7e10e08b Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Thu, 20 Jan 2022 19:39:13 +0530 Subject: [PATCH 11/19] Update build_tarballs.jl --- F/FMUComplianceChecker/build_tarballs.jl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 950415816b6..0ffc2d1ca2b 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -24,10 +24,7 @@ if [[ "${target}" == *mingw* ]]; then mv ../install/fmuCheck.win64.exe ${bin chmod +x ${bindir}/* LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" mkdir -p "${LIC_DIR}" -mv "./LICENCE.md" "${LIC_DIR}/LICENSE.md" -mv "../LICENCE.md" "${LIC_DIR}/LICENSE.md" -ls .. -mv "../LICENCE" "${LIC_DIR}/LICENSE.md" +mv "../LICENCE" "${LIC_DIR}/LICENSE" """ # These are the platforms we will build for by default, unless further From f0b947feafa9fcc7d316cad833e767db4293dcac Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Thu, 20 Jan 2022 19:44:11 +0530 Subject: [PATCH 12/19] fix typo --- F/FMUComplianceChecker/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 0ffc2d1ca2b..c4bdc872675 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -24,7 +24,7 @@ if [[ "${target}" == *mingw* ]]; then mv ../install/fmuCheck.win64.exe ${bin chmod +x ${bindir}/* LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" mkdir -p "${LIC_DIR}" -mv "../LICENCE" "${LIC_DIR}/LICENSE" +mv "../LICENSE" "${LIC_DIR}/LICENSE" """ # These are the platforms we will build for by default, unless further From 605968cb9e031979ec50e3aa72a72de1f841bb5f Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Thu, 20 Jan 2022 19:50:53 +0530 Subject: [PATCH 13/19] Updates based on review --- F/FMUComplianceChecker/build_tarballs.jl | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index c4bdc872675..cd10daf01e5 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -7,24 +7,23 @@ version = v"2.0.4" # Collection of sources required to complete build sources = [ - ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/refs/heads/master.zip", "2f8f0754164c7c13f8de76f8ec3271899d4650a3ffe895c2e813cd0b46ae7cb7") + ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/f0fd0b2ca78c415a725b028deec46c1962799f1d.zip", "2f8f0754164c7c13f8de76f8ec3271899d4650a3ffe895c2e813cd0b46ae7cb7") ] # Bash recipe for building across all platforms script = raw""" cd $WORKSPACE/srcdir + apk add subversion mkdir ${bindir}/ + cd FMUComplianceChecker-*/ + mkdir build; cd build -cmake .. +cmake -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release .. make install test -if [[ "${target}" == *linux* ]]; then mv ../install/fmuCheck.linux64 ${bindir}/fmuCheck; fi -if [[ "${target}" == *mingw* ]]; then mv ../install/fmuCheck.win64.exe ${bindir}/fmuCheck.exe; fi -chmod +x ${bindir}/* -LIC_DIR="${prefix}/share/licenses/${SRC_NAME}" -mkdir -p "${LIC_DIR}" -mv "../LICENSE" "${LIC_DIR}/LICENSE" + +install_license "../LICENSE" """ # These are the platforms we will build for by default, unless further From 4faab162349a8d5a6e6cf4377a662c23a20a5684 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Thu, 20 Jan 2022 19:53:43 +0530 Subject: [PATCH 14/19] Update checksum --- F/FMUComplianceChecker/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index cd10daf01e5..dafe71a8ad2 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -7,7 +7,7 @@ version = v"2.0.4" # Collection of sources required to complete build sources = [ - ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/f0fd0b2ca78c415a725b028deec46c1962799f1d.zip", "2f8f0754164c7c13f8de76f8ec3271899d4650a3ffe895c2e813cd0b46ae7cb7") + ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/f0fd0b2ca78c415a725b028deec46c1962799f1d.zip", "db4607e7b6230d9b7f2e394e6ec132e90cee19ae6625997c09d946ab61dda156") ] # Bash recipe for building across all platforms From 462b76163d120e2634df23baf0eb432ef7972859 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Thu, 20 Jan 2022 20:23:47 +0530 Subject: [PATCH 15/19] Move binaries manually --- F/FMUComplianceChecker/build_tarballs.jl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index dafe71a8ad2..07e311bebe4 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -23,6 +23,10 @@ mkdir build; cd build cmake -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release .. make install test +if [[ "${target}" == *linux* ]]; then mv ../install/fmuCheck.linux64 ${bindir}/fmuCheck; fi +if [[ "${target}" == *mingw* ]]; then mv ../install/fmuCheck.win64.exe ${bindir}/fmuCheck.exe; fi +chmod +x ${bindir}/* + install_license "../LICENSE" """ From 3394a92e0fadbd73c76a0fde9950e40cf750bbda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Thu, 20 Jan 2022 22:45:01 +0100 Subject: [PATCH 16/19] [FMUComplianceChecker] Add patches and build for all platforms --- F/FMUComplianceChecker/build_tarballs.jl | 33 +++++--------- .../bundled/patches/.gitattributes | 1 + .../fmi-library-cmake-expatex-cmake.patch | 10 +++++ .../patches/forward-cmake-toolchain.patch | 45 +++++++++++++++++++ .../patches/windows-linking-lowercase.patch | 28 ++++++++++++ .../windows-lowercase-header-file.patch | 11 +++++ 6 files changed, 107 insertions(+), 21 deletions(-) create mode 100644 F/FMUComplianceChecker/bundled/patches/.gitattributes create mode 100644 F/FMUComplianceChecker/bundled/patches/fmi-library-cmake-expatex-cmake.patch create mode 100644 F/FMUComplianceChecker/bundled/patches/forward-cmake-toolchain.patch create mode 100644 F/FMUComplianceChecker/bundled/patches/windows-linking-lowercase.patch create mode 100644 F/FMUComplianceChecker/bundled/patches/windows-lowercase-header-file.patch diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 07e311bebe4..047e17718ca 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -7,40 +7,31 @@ version = v"2.0.4" # Collection of sources required to complete build sources = [ - ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/f0fd0b2ca78c415a725b028deec46c1962799f1d.zip", "db4607e7b6230d9b7f2e394e6ec132e90cee19ae6625997c09d946ab61dda156") + ArchiveSource("https://github.com/modelica-tools/FMUComplianceChecker/archive/f0fd0b2ca78c415a725b028deec46c1962799f1d.zip", + "db4607e7b6230d9b7f2e394e6ec132e90cee19ae6625997c09d946ab61dda156"), + DirectorySource("./bundled"), ] # Bash recipe for building across all platforms script = raw""" -cd $WORKSPACE/srcdir - -apk add subversion -mkdir ${bindir}/ - -cd FMUComplianceChecker-*/ - -mkdir build; cd build +cd $WORKSPACE/srcdir/FMUComplianceChecker*/ +atomic_patch -p1 ../patches/forward-cmake-toolchain.patch +atomic_patch -p1 ../patches/windows-lowercase-header-file.patch +export CFLAGS="-I${includedir}" +mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release .. -make install test - -if [[ "${target}" == *linux* ]]; then mv ../install/fmuCheck.linux64 ${bindir}/fmuCheck; fi -if [[ "${target}" == *mingw* ]]; then mv ../install/fmuCheck.win64.exe ${bindir}/fmuCheck.exe; fi -chmod +x ${bindir}/* - +make -j${nproc} +install -Dm755 fmuCheck.* "${bindir}/fmuCheck${exeext}" install_license "../LICENSE" """ # These are the platforms we will build for by default, unless further # platforms are passed in on the command line -platforms = [ - Platform("x86_64", "windows"; ), - Platform("x86_64", "linux"; libc = "glibc"), -] - +platforms = supported_platforms() # The products that we will ensure are always built products = [ - ExecutableProduct("fmuCheck", :libFMUCheck) + ExecutableProduct("fmuCheck", :libFMUCheck), ] # Dependencies that must be installed before this package can be built diff --git a/F/FMUComplianceChecker/bundled/patches/.gitattributes b/F/FMUComplianceChecker/bundled/patches/.gitattributes new file mode 100644 index 00000000000..c480e811fbf --- /dev/null +++ b/F/FMUComplianceChecker/bundled/patches/.gitattributes @@ -0,0 +1 @@ +*.patch binary diff --git a/F/FMUComplianceChecker/bundled/patches/fmi-library-cmake-expatex-cmake.patch b/F/FMUComplianceChecker/bundled/patches/fmi-library-cmake-expatex-cmake.patch new file mode 100644 index 00000000000..e159cac5209 --- /dev/null +++ b/F/FMUComplianceChecker/bundled/patches/fmi-library-cmake-expatex-cmake.patch @@ -0,0 +1,10 @@ +--- a/Config.cmake/fmixml.cmake ++++ b/Config.cmake/fmixml.cmake +@@ -159,6 +159,7 @@ set(EXPAT_SETTINGS + -DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS} + -DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS} + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/ExpatEx/install ++ -DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE} + ) + + ExternalProject_Add( diff --git a/F/FMUComplianceChecker/bundled/patches/forward-cmake-toolchain.patch b/F/FMUComplianceChecker/bundled/patches/forward-cmake-toolchain.patch new file mode 100644 index 00000000000..a2edfacacfe --- /dev/null +++ b/F/FMUComplianceChecker/bundled/patches/forward-cmake-toolchain.patch @@ -0,0 +1,45 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -108,7 +108,7 @@ + -DFMILIB_BUILD_SHARED_LIB:BOOLEAN=OFF + -DFMILIB_INSTALL_SUBLIBS:BOOLEAN=OFF + -DFMILIB_GENERATE_DOXYGEN_DOC:BOOLEAN=OFF +- -DFMILIB_BUILD_TESTS:BOOLEAN=ON ++ -DFMILIB_BUILD_TESTS:BOOLEAN=OFF + -DFMILIB_GENERATE_BUILD_STAMP:BOOLEAN=OFF + -DFMILIB_ENABLE_LOG_LEVEL_DEBUG:BOOLEAN=${FMUCHK_ENABLE_LOG_LEVEL_DEBUG} + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} +@@ -126,6 +126,7 @@ + -DCMAKE_LINK_LIBRARY_FLAG:STRING=${CMAKE_LINK_LIBRARY_FLAG} + -DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS} + -DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS} ++ -DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE} + ) + + if(MSVC) +@@ -146,6 +147,16 @@ + ) + + ExternalProject_Add_Step( ++ fmil fmil_patch ++ DEPENDEES patch ++ DEPENDERS configure ++ COMMAND atomic_patch -p1 /workspace/srcdir/patches/fmi-library-cmake-expatex-cmake.patch ++ COMMAND atomic_patch -p1 /workspace/srcdir/patches/windows-linking-lowercase.patch ++ DEPENDS ${FMUCHK_BUILD}/CMakeCache.txt ${FMUCHK_HOME}/CMakeLists.txt ++ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/FMIL" ++) ++ ++ExternalProject_Add_Step( + fmil fmil_reconfigure + DEPENDEES configure + DEPENDERS build +@@ -213,7 +224,7 @@ + add_executable(${fmuCheck} ${SOURCE} ${HEADERS}) + target_link_libraries(${fmuCheck} fmilib) + if(WIN32) +- target_link_libraries(${fmuCheck} Shlwapi) ++ target_link_libraries(${fmuCheck} shlwapi) + endif(WIN32) + if(UNIX) + target_link_libraries(${fmuCheck} dl) diff --git a/F/FMUComplianceChecker/bundled/patches/windows-linking-lowercase.patch b/F/FMUComplianceChecker/bundled/patches/windows-linking-lowercase.patch new file mode 100644 index 00000000000..6940db4fbc0 --- /dev/null +++ b/F/FMUComplianceChecker/bundled/patches/windows-linking-lowercase.patch @@ -0,0 +1,28 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -264,12 +264,12 @@ if(FMILIB_BUILD_STATIC_LIB) + include(mergestaticlibs) + if(WIN32) + merge_static_libs(fmilib ${FMILIB_SUBLIBS}) +- target_link_libraries(fmilib Shlwapi) ++ target_link_libraries(fmilib shlwapi) + foreach(CONFIG_TYPE ${CMAKE_CONFIGURATION_TYPES}) + set(flags "") + string(TOUPPER "STATIC_LIBRARY_FLAGS_${CONFIG_TYPE}" PROPNAME) + get_target_property(flags fmilib ${PROPNAME}) +- set_target_properties(fmilib PROPERTIES ${PROPNAME} "${flags} Shlwapi.lib") ++ set_target_properties(fmilib PROPERTIES ${PROPNAME} "${flags} shlwapi.lib") + endforeach() + else() + merge_static_libs(fmilib ${FMILIB_SUBLIBS} ) +--- a/Config.cmake/jmutil.cmake ++++ b/Config.cmake/jmutil.cmake +@@ -67,7 +67,7 @@ if(UNIX) + target_link_libraries(jmutils dl) + endif(UNIX) + if(WIN32) +- target_link_libraries(jmutils Shlwapi) ++ target_link_libraries(jmutils shlwapi) + endif(WIN32) + + endif(NOT JMUTILDIR) diff --git a/F/FMUComplianceChecker/bundled/patches/windows-lowercase-header-file.patch b/F/FMUComplianceChecker/bundled/patches/windows-lowercase-header-file.patch new file mode 100644 index 00000000000..cdd15851099 --- /dev/null +++ b/F/FMUComplianceChecker/bundled/patches/windows-lowercase-header-file.patch @@ -0,0 +1,11 @@ +--- a/src/Common/fmuChecker.c ++++ b/src/Common/fmuChecker.c +@@ -17,7 +17,7 @@ + #include + + #if defined(_WIN32) || defined(WIN32) +- #include ++ #include + #endif + + // #include From d1d6b3d33718f9da5ad17c7e99b612c5870906f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Thu, 20 Jan 2022 23:46:30 +0100 Subject: [PATCH 17/19] [FMUComplianceChecker] Use proper libtool for macOS --- F/FMUComplianceChecker/build_tarballs.jl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 047e17718ca..2cd65b82257 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -18,6 +18,11 @@ cd $WORKSPACE/srcdir/FMUComplianceChecker*/ atomic_patch -p1 ../patches/forward-cmake-toolchain.patch atomic_patch -p1 ../patches/windows-lowercase-header-file.patch export CFLAGS="-I${includedir}" +if [[ "${target}" == *-apple-* ]]; then + # Replace `/usr/bin/libtool` with `libtool` from our toolchain to fix error + # libtool: error: unrecognised option: '-static' + ln -sf $(which libtool) /usr/bin/libtool +fi mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release .. make -j${nproc} From db0389129b55aadbfcdf46d1f581e68bcdf8bcef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Thu, 20 Jan 2022 22:55:37 +0000 Subject: [PATCH 18/19] [FMUComplianceChecker] Remove extra stuff from the tarball --- F/FMUComplianceChecker/build_tarballs.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 2cd65b82257..6b24f1d82be 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -27,6 +27,8 @@ mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=${prefix} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} -DCMAKE_BUILD_TYPE=Release .. make -j${nproc} install -Dm755 fmuCheck.* "${bindir}/fmuCheck${exeext}" +# Delete expat stuff +rm -rf "${includedir}" "${prefix}/lib" install_license "../LICENSE" """ From 21745ad69abaf7b44524f5213207d03e1059d845 Mon Sep 17 00:00:00 2001 From: Sharan Yalburgi Date: Fri, 21 Jan 2022 11:21:09 +0530 Subject: [PATCH 19/19] Update F/FMUComplianceChecker/build_tarballs.jl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mosè Giordano --- F/FMUComplianceChecker/build_tarballs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/F/FMUComplianceChecker/build_tarballs.jl b/F/FMUComplianceChecker/build_tarballs.jl index 6b24f1d82be..827f6ae4873 100644 --- a/F/FMUComplianceChecker/build_tarballs.jl +++ b/F/FMUComplianceChecker/build_tarballs.jl @@ -38,7 +38,7 @@ platforms = supported_platforms() # The products that we will ensure are always built products = [ - ExecutableProduct("fmuCheck", :libFMUCheck), + ExecutableProduct("fmuCheck", :fmucheck), ] # Dependencies that must be installed before this package can be built