From 085f842c0ae1c71fdb1bf2151f840cff44b0acb5 Mon Sep 17 00:00:00 2001
From: MADELA Patrick <patrick.madela@synchrotron-soleil.fr>
Date: Thu, 6 Oct 2022 11:43:21 +0200
Subject: [PATCH] New approach to build cmake 32 bits based on bootstrap method
 and gcc73 images

---
 .gitlab-ci.yml | 52 +++++++++++++++++---------------------------------
 README.md      | 10 +++++-----
 2 files changed, 23 insertions(+), 39 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0fff1f3..599276f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,9 +1,6 @@
 
 variables:
-  CMAKE_VERSION: 3.18.2
-  PYTHON_VERSION: 3.6.13
-  CONAN_VERSION: 1.52.0
-  DEVTOOLS_ROOT: "/usr/Local/devtools"
+  CMAKE_VERSION: 3.24.2
 
 stages:
   - build
@@ -13,15 +10,15 @@ stages:
 .build:
   stage: build
   script:
-    - yum -y install --setopt=tsflags=nodocs devtoolset-7-toolchain
-    - curl -s https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/python3/-/jobs/artifacts/main/download?job=linux-el6-i686 | tar -xzf - -C ${DEVTOOLS_ROOT}
-    - ${PYTHON_ROOT}/bin/pip3 install -q --no-cache-dir --prefix=${CONAN_ROOT} conan==${CONAN_VERSION} conan-package-tools
-    - mkdir -p cmake-${CMAKE_VERSION}
+    - yum install -y openssl-devel
+    - curl -OL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-SHA-256.txt
+    - curl -OL https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz
+    - echo "$(cat cmake-${CMAKE_VERSION}-SHA-256.txt | grep cmake-${CMAKE_VERSION}.tar.gz)" | sha256sum --check --status
+    - tar -xzf cmake-${CMAKE_VERSION}.tar.gz
     - cd cmake-${CMAKE_VERSION}
-    - source scl_source enable devtoolset-7
-    - CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ CC=/opt/rh/devtoolset-7/root/usr/bin/gcc linux32 -- conan install cmake/${CMAKE_VERSION}@ -g deploy --build=missing --build=cmake
-    - mkdir -p ${CI_PROJECT_DIR}/${NAME}
-    - cp -a cmake/* ${CI_PROJECT_DIR}/${NAME}
+    - ./bootstrap --prefix=${CI_PROJECT_DIR}/${NAME} -- -DCMAKE_BUILD_TYPE:STRING=Release 
+    - make
+    - make install
   artifacts:
     name: ${NAME}
     paths:
@@ -30,19 +27,18 @@ stages:
 .test:
   stage: test
   script:
-    - curl -s https://gitlab.synchrotron-soleil.fr/software-control-system/devtools/python3/-/jobs/artifacts/main/download?job=linux-el6-i686 | tar -xzf - -C ${DEVTOOLS_ROOT}
-    - ${NAME}/bin/conan --version | grep ${CONAN_VERSION}
+    - ${NAME}/bin/cmake --version | grep ${CMAKE_VERSION}
 
 .package:
   stage: package
   script:
     - cd ${CI_PROJECT_DIR}/${NAME}
     - zip -r --symlinks ../${NAME}.zip *
-    - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ../${NAME}.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/fakegit/${GIT_VERSION}/"'
+    - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ../${NAME}.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/cmake/${CMAKE_VERSION}/"'
 
 linux-el6-i686:
   extends: [".build"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el6-gcc44-x86
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el6-gcc73-x86
   variables:
     NAME: "cmake-${CMAKE_VERSION}-linux-el6-i686"
     PYTHON_ROOT: ${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-linux-el6-i686
@@ -52,19 +48,15 @@ linux-el6-i686:
 
 test-el6-i686:
   extends: [".test"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el6-gcc44-x86
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el6-gcc73-x86
   variables:
     NAME: "cmake-${CMAKE_VERSION}-linux-el6-i686"
-    PYTHON_ROOT: ${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-linux-el6-i686
-    CONAN_ROOT: ${DEVTOOLS_ROOT}/conan-${CONAN_VERSION}-linux-el6-i686
-    PATH: "${CONAN_ROOT}/bin:${PYTHON_ROOT}/bin"
-    PYTHONPATH: "${CONAN_ROOT}/lib/python3.6/site-packages"
   needs:
     - linux-el6-i686
 
 package-el6-i686:
   extends: [".package"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el6-gcc44-x86
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el6-gcc73-x86
   variables:
     NAME: "cmake-${CMAKE_VERSION}-linux-el6-i686"
   needs:
@@ -73,29 +65,21 @@ package-el6-i686:
 
 linux-el7-i686:
   extends: [".build"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el7-gcc48-x86
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el7-gcc73-x86
   variables:
-    NAME: "cmake-${CMAKE_VERSION}-linux-el6-i686"
-    PYTHON_ROOT: ${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-linux-el6-i686
-    CONAN_ROOT: ${DEVTOOLS_ROOT}/conan-${CONAN_VERSION}-linux-el6-i686
-    PATH: "${CONAN_ROOT}/bin:${PYTHON_ROOT}/bin"
-    PYTHONPATH: "${CONAN_ROOT}/lib/python3.6/site-packages"
+    NAME: "cmake-${CMAKE_VERSION}-linux-el7-i686"
 
 test-el7-i686:
   extends: [".test"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el7-gcc48-x86
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el7-gcc73-x86
   variables:
     NAME: "cmake-${CMAKE_VERSION}-linux-el6-i686"
-    PYTHON_ROOT: ${DEVTOOLS_ROOT}/python-${PYTHON_VERSION}-linux-el6-i686
-    CONAN_ROOT: ${DEVTOOLS_ROOT}/conan-${CONAN_VERSION}-linux-el6-i686
-    PATH: "${CONAN_ROOT}/bin:${PYTHON_ROOT}/bin"
-    PYTHONPATH: "${CONAN_ROOT}/lib/python3.6/site-packages"
   needs:
     - linux-el7-i686
 
 package-el7-i686:
   extends: [".package"]
-  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el7-gcc48-x86
+  image: gitlab-registry.synchrotron-soleil.fr/software-control-system/containers/dev-el7-gcc73-x86
   variables:
     NAME: "cmake-${CMAKE_VERSION}-linux-el7-i686"
   needs:
diff --git a/README.md b/README.md
index 0612378..6f5d1d5 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
 # Cmake
 
-Pipeline to build Cmake 3.18.2 for our legacy CentOS 32 bits platform.
+Pipeline to build recent version of Cmake for our legacy CentOS 32 bits platform.
 
-Cmake for independent 64 bits Linux distribution is avaible but not for 32 bits:
-* https://cmake.org/files/v3.18/cmake-3.18.2-Linux-x86_64.tar.gz
+Cmake provides independent 64 bits Linux distribution that works on CentOS 6 and 7 64 bits but they are not available for 32 bits:
+* https://cmake.org/files/v3.24.2/cmake-3.24.2-Linux-x86_64.tar.gz
 
 Allows to build Cmake for:
-* CentOS 6.10 32 bits: [cmake-3.18.2-linux-el6-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/tools/cmake/-/jobs/artifacts/main/download?job=linux-el6-i686)
-* CentOS 7.9 32 bits: [cmake-3.18.2-linux-el7-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/tools/cmake/-/jobs/artifacts/main/download?job=linux-el7-i686)
+* CentOS 6.10 32 bits: [cmake-3.24.2-linux-el6-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/tools/cmake/-/jobs/artifacts/main/download?job=linux-el6-i686)
+* CentOS 7.9 32 bits: [cmake-3.24.2-linux-el7-i686.zip](https://gitlab.synchrotron-soleil.fr/software-control-system/tools/cmake/-/jobs/artifacts/main/download?job=linux-el7-i686)
-- 
GitLab