From 5fe3c30b1c47507f907e5da71ba17e8dc669eaa9 Mon Sep 17 00:00:00 2001 From: Marlon Beijer Date: Tue, 4 Jan 2022 01:50:03 +0100 Subject: [PATCH] Make use of build-args and one Dockerfile instead of multiple --- ppc-warpos.docker => Dockerfile | 9 ++++--- JenkinsEnv.json | 26 +++++++++--------- Jenkinsfile | 32 +++++++++++----------- README.md | 16 +++++------ common.docker | 36 ------------------------- m68k-amigaos.docker | 48 --------------------------------- ppc-amigaos.docker | 46 ------------------------------- ppc-morphos.docker | 46 ------------------------------- x86_64-aros.docker | 46 ------------------------------- 9 files changed, 42 insertions(+), 263 deletions(-) rename ppc-warpos.docker => Dockerfile (93%) delete mode 100644 common.docker delete mode 100644 m68k-amigaos.docker delete mode 100644 ppc-amigaos.docker delete mode 100644 ppc-morphos.docker delete mode 100644 x86_64-aros.docker diff --git a/ppc-warpos.docker b/Dockerfile similarity index 93% rename from ppc-warpos.docker rename to Dockerfile index 63fe6e5..3ea08f2 100644 --- a/ppc-warpos.docker +++ b/Dockerfile @@ -1,9 +1,12 @@ -FROM amigadev/morphos-cross-toolchain:warpos as build-env +ARG BUILD_OS +ARG BUILD_PFX + +FROM amigadev/${BUILD_PFX}:latest as build-env FROM amigadev/docker-base:latest -ENV CROSS_PFX ppc-warpos -ENV OS_NAME WarpOS +ENV CROSS_PFX ${BUILD_PFX} +ENV OS_NAME ${BUILD_OS} COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX} diff --git a/JenkinsEnv.json b/JenkinsEnv.json index c850fa1..300b50e 100644 --- a/JenkinsEnv.json +++ b/JenkinsEnv.json @@ -4,29 +4,27 @@ "DockerRoot": "amigadev", "DockerImage": "crosstools", "DockerTag": "m68k-amigaos", - "Dockerfile": "m68k-amigaos.docker", - "BuildIfSuccessful": "" + "Dockerfile": "Dockerfile", + "BuildIfSuccessful": "", + "BuildParam": "AmigaOS" }, { "DockerRoot": "amigadev", "DockerImage": "crosstools", "DockerTag": "ppc-amigaos", - "Dockerfile": "ppc-amigaos.docker", - "BuildIfSuccessful": "" + "Dockerfile": "Dockerfile", + "BuildIfSuccessful": "", + "BuildParam": "AmigaOS" + }, { "DockerRoot": "amigadev", "DockerImage": "crosstools", "DockerTag": "ppc-morphos", - "Dockerfile": "ppc-morphos.docker", - "BuildIfSuccessful": "" - }, - { - "DockerRoot": "amigadev", - "DockerImage": "crosstools", - "DockerTag": "x86_64-aros", - "Dockerfile": "x86_64-aros.docker", - "BuildIfSuccessful": "" + "Dockerfile": "Dockerfile", + "BuildIfSuccessful": "", + "BuildParam": "MorphOS" + } ] -} \ No newline at end of file +} diff --git a/Jenkinsfile b/Jenkinsfile index b10e74a..c5b0ba4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,37 +9,37 @@ def notify(status){ replyTo: '$DEFAULT_REPLYTO', subject: '$DEFAULT_SUBJECT', to: '$DEFAULT_RECIPIENTS' - ) + ); } @NonCPS def killall_jobs() { - def jobname = env.JOB_NAME - def buildnum = env.BUILD_NUMBER.toInteger() - def killnums = "" - def job = Jenkins.instance.getItemByFullName(jobname) - def fixed_job_name = env.JOB_NAME.replace('%2F','/') + def jobname = env.JOB_NAME; + def buildnum = env.BUILD_NUMBER.toInteger(); + def killnums = ""; + def job = Jenkins.instance.getItemByFullName(jobname); + def fixed_job_name = env.JOB_NAME.replace('%2F','/'); for (build in job.builds) { if (!build.isBuilding()) { continue; } if (buildnum == build.getNumber().toInteger()) { continue; println "equals" } if (buildnum < build.getNumber().toInteger()) { continue; println "newer" } - echo "Kill task = ${build}" + echo "Kill task = ${build}"; - killnums += "#" + build.getNumber().toInteger() + ", " + killnums += "#" + build.getNumber().toInteger() + ", "; build.doStop(); } if (killnums != "") { - slackSend color: "danger", channel: "#jenkins", message: "Killing task(s) ${fixed_job_name} ${killnums} in favor of #${buildnum}, ignore following failed builds for ${killnums}" + slackSend color: "danger", channel: "#jenkins", message: "Killing task(s) ${fixed_job_name} ${killnums} in favor of #${buildnum}, ignore following failed builds for ${killnums}"; } - echo "Done killing" + echo "Done killing"; } -def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, BUILD_NEXT) { - def fixed_job_name = env.JOB_NAME.replace('%2F','/') +def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, BUILD_NEXT, BUILD_OS) { + def fixed_job_name = env.JOB_NAME.replace('%2F','/'); try { checkout scm; @@ -58,7 +58,7 @@ def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, BUILD_NEXT) { docker.withRegistry("https://index.docker.io/v1/", "dockerhub") { def customImage stage("Building ${DOCKERIMAGE}:${tag}...") { - customImage = docker.build("${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}", "--build-arg BUILDENV=${buildenv} --network=host --pull -f ${DOCKERFILE} ."); + customImage = docker.build("${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}", "--build-arg BUILDENV=${buildenv} --build-arg BUILD_OS=${BUILD_OS} --build-arg BUILD_PFX=${tag} --network=host --pull -f ${DOCKERFILE} ."); } stage("Pushing to docker hub registry...") { @@ -90,14 +90,14 @@ node('master') { checkout scm; - def branches = [:] + def branches = [:]; def project = readJSON file: "JenkinsEnv.json"; if (BUILD_IMAGE.equals('all')) { project.builds.each { v -> branches["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}"] = { node { - buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful) + buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful, v.BuildParam); } } } @@ -107,7 +107,7 @@ node('master') { if ("${v.DockerTag}".equals("${BUILD_IMAGE}")) { branches["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}"] = { node { - buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful) + buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful, v.BuildParam); } } } diff --git a/README.md b/README.md index 9b516e7..779ef6c 100644 --- a/README.md +++ b/README.md @@ -17,17 +17,17 @@ ## Supported toolchains ## Build the Docker container -Example for AROSv1 x86_64 +Example for AmigaOS 4.x toolchain: +``` +docker build -t "amigadev/crosstools:ppc-amigaos" --build-arg BUILD_OS=AmigaOS --build-arg BUILD_PFX=ppc-amigaos -f Dockerfile . +``` +For other toolchains, use the appropriate parameters: -docker build -t "amigadev/crosstools:x86_64-aros" --rm -f x86_64-aros.docker . +- AmigaOS 3.x (M680x0): `--build-arg BUILD_OS=AmigaOS --build-arg BUILD_PFX=m68k-amigaos` -For other toolchains, use the appropriate Dockerfile: +- AmigaOS 4.x (PPC): `--build-arg BUILD_OS=AmigaOS --build-arg BUILD_PFX=ppc-amigaos` -- AmigaOS 3.x (M680x0): m68k-amigaos.docker - -- AmigaOS 4.x (PPC): ppc-amigaos.docker - -- MorphOS (PPC): ppc-morphos.docker +- MorphOS (PPC): `--build-arg BUILD_OS=MorphOS --build-arg BUILD_PFX=ppc-morphos` ## Run the Docker container for compiling a third party application diff --git a/common.docker b/common.docker deleted file mode 100644 index 3f0ffc8..0000000 --- a/common.docker +++ /dev/null @@ -1,36 +0,0 @@ -# START COMMON -MAINTAINER Marlon Beijer "marlon@amigadev.com" -RUN apt purge -y gcc g++ flex bison gettext texinfo binutils libgmp-dev libmpfr-dev libmpc-dev libncurses-dev && apt autoremove -y -RUN echo "root:root" | chpasswd -RUN ln -s /opt/${CROSS_PFX} /tools -ENV CROSS_ROOT /opt/${CROSS_PFX} - -WORKDIR /work -ENTRYPOINT ["/entry/entrypoint.sh"] - -COPY imagefiles/cmake.sh /usr/local/bin/cmake -COPY imagefiles/ccmake.sh /usr/local/bin/ccmake -COPY imagefiles/entrypoint.sh /entry/ - -ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \ - LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \ - AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \ - CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \ - CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \ - RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib - -RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib - -COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/ -COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules -RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/ -RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake -ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake -ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr -ENV PATH ${PATH}:${CROSS_ROOT}/bin -# END COMMON diff --git a/m68k-amigaos.docker b/m68k-amigaos.docker deleted file mode 100644 index 2a74905..0000000 --- a/m68k-amigaos.docker +++ /dev/null @@ -1,48 +0,0 @@ -FROM amigadev/m68k-amigaos-gcc:latest as build-env - -FROM amigadev/docker-base:latest - -ENV CROSS_PFX m68k-amigaos -ENV OS_NAME AmigaOS - -# Temporary fix -COPY --from=build-env /opt/amiga /opt/${CROSS_PFX} -RUN ln -s /opt/${CROSS_PFX} /opt/amiga - -# START COMMON -MAINTAINER Marlon Beijer "marlon@amigadev.com" -RUN apt update && apt install -y libtool automake autoconf && apt autoremove -y -RUN echo "root:root" | chpasswd -RUN chmod 777 -R /opt/${CROSS_PFX} -RUN ln -s /opt/${CROSS_PFX} /tools -ENV CROSS_ROOT /opt/${CROSS_PFX} - -WORKDIR /work -ENTRYPOINT ["/entry/entrypoint.sh"] - -COPY imagefiles/cmake.sh /usr/local/bin/cmake -COPY imagefiles/ccmake.sh /usr/local/bin/ccmake -COPY imagefiles/entrypoint.sh /entry/ - -ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \ - LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \ - AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \ - CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \ - CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \ - RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib - -RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib - -COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/ -COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules -RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/ -RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake -ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake -ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr -ENV PATH ${PATH}:${CROSS_ROOT}/bin -# END COMMON diff --git a/ppc-amigaos.docker b/ppc-amigaos.docker deleted file mode 100644 index f89cdd0..0000000 --- a/ppc-amigaos.docker +++ /dev/null @@ -1,46 +0,0 @@ -FROM amigadev/adtools:latest as build-env - -FROM amigadev/docker-base:latest - -ENV CROSS_PFX ppc-amigaos -ENV OS_NAME AmigaOS - -COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX} - -# START COMMON -MAINTAINER Marlon Beijer "marlon@amigadev.com" -RUN apt update && apt install -y libtool automake autoconf && apt autoremove -y -RUN echo "root:root" | chpasswd -RUN chmod 777 -R /opt/${CROSS_PFX} -RUN ln -s /opt/${CROSS_PFX} /tools -ENV CROSS_ROOT /opt/${CROSS_PFX} - -WORKDIR /work -ENTRYPOINT ["/entry/entrypoint.sh"] - -COPY imagefiles/cmake.sh /usr/local/bin/cmake -COPY imagefiles/ccmake.sh /usr/local/bin/ccmake -COPY imagefiles/entrypoint.sh /entry/ - -ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \ - LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \ - AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \ - CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \ - CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \ - RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib - -RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib - -COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/ -COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules -RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/ -RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake -ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake -ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr -ENV PATH ${PATH}:${CROSS_ROOT}/bin -# END COMMON diff --git a/ppc-morphos.docker b/ppc-morphos.docker deleted file mode 100644 index 1a7107b..0000000 --- a/ppc-morphos.docker +++ /dev/null @@ -1,46 +0,0 @@ -FROM amigadev/morphos-cross-toolchain:latest as build-env - -FROM amigadev/docker-base:latest - -ENV CROSS_PFX ppc-morphos -ENV OS_NAME MorphOS - -COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX} - -# START COMMON -MAINTAINER Marlon Beijer "marlon@amigadev.com" -RUN apt update && apt install -y libtool automake autoconf && apt autoremove -y -RUN echo "root:root" | chpasswd -RUN chmod 777 -R /opt/${CROSS_PFX} -RUN ln -s /opt/${CROSS_PFX} /tools -ENV CROSS_ROOT /opt/${CROSS_PFX} - -WORKDIR /work -ENTRYPOINT ["/entry/entrypoint.sh"] - -COPY imagefiles/cmake.sh /usr/local/bin/cmake -COPY imagefiles/ccmake.sh /usr/local/bin/ccmake -COPY imagefiles/entrypoint.sh /entry/ - -ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \ - LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \ - AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \ - CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \ - CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \ - RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib - -RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib - -COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/ -COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules -RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/ -RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake -ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake -ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr -ENV PATH ${PATH}:${CROSS_ROOT}/bin -# END COMMON diff --git a/x86_64-aros.docker b/x86_64-aros.docker deleted file mode 100644 index abb5dc1..0000000 --- a/x86_64-aros.docker +++ /dev/null @@ -1,46 +0,0 @@ -FROM amigadev/arosv1-cross-toolchain:x86_64 as build-env - -FROM amigadev/docker-base:latest - -ENV CROSS_PFX x86_64-aros -ENV OS_NAME AROS - -COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX} - -# START COMMON -MAINTAINER Marlon Beijer "marlon@amigadev.com" -RUN apt update && apt install -y libtool automake autoconf && apt autoremove -y -RUN echo "root:root" | chpasswd -RUN chmod 777 -R /opt/${CROSS_PFX} -RUN ln -s /opt/${CROSS_PFX} /tools -ENV CROSS_ROOT /opt/${CROSS_PFX} - -WORKDIR /work -ENTRYPOINT ["/entry/entrypoint.sh"] - -COPY imagefiles/cmake.sh /usr/local/bin/cmake -COPY imagefiles/ccmake.sh /usr/local/bin/ccmake -COPY imagefiles/entrypoint.sh /entry/ - -ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \ - LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \ - AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \ - CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \ - CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \ - RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib - -RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \ - ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib - -COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/ -COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules -RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/ -RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake -ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake -ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr -ENV PATH ${PATH}:${CROSS_ROOT}/bin -# END COMMON