Przeglądaj źródła

Merge topic 'ci-find-modules'

0792fe4759 ci: enable IPO tests on Debian 10 and Fedora 31 builds
c582e51909 ci: enable Fortran submodule tests on Debian 10 and Fedora 31 builds
12b56269d4 ci: enable Qt5 tests on Debian 10 and Fedora 31 builds
02e8befb74 gitlab-ci: add job to run test suite on Debian 10 with ninja
2bb2a283e9 ci: add packages for many find modules to the Debian 10 image
03fb06b8e7 ci: enable many find module tests for the Fedora 31 Makefiles build
b23f36bba6 ci: add packages for many find modules to the Fedora 31 image
20f7d51b7b Tests: Revise FindBLAS test to avoid cblas_ mangling
...

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5322
Brad King 5 lat temu
rodzic
commit
ad2ac18a23

+ 11 - 0
.gitlab-ci.yml

@@ -99,6 +99,17 @@ build:centos6-release:
         - .linux_builder_tags
         - .run_manually
 
+test:debian10-ninja:
+    extends:
+        - .debian10_ninja
+        - .cmake_test_linux_package
+        - .linux_builder_tags_qt
+        - .run_dependent
+    dependencies:
+        - build:centos6-release
+    needs:
+        - build:centos6-release
+
 test:fedora31-makefiles:
     extends:
         - .fedora31_makefiles

+ 66 - 0
.gitlab/ci/configure_debian10_ninja.cmake

@@ -0,0 +1,66 @@
+set(CMake_TEST_FindALSA "ON" CACHE BOOL "")
+set(CMake_TEST_FindBLAS "ON" CACHE BOOL "")
+set(CMake_TEST_FindBoost "ON" CACHE BOOL "")
+set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "")
+set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "")
+set(CMake_TEST_FindCups "ON" CACHE BOOL "")
+set(CMake_TEST_FindCURL "ON" CACHE BOOL "")
+set(CMake_TEST_FindDoxygen_Dot "ON" CACHE BOOL "")
+set(CMake_TEST_FindDoxygen "ON" CACHE BOOL "")
+set(CMake_TEST_FindEXPAT "ON" CACHE BOOL "")
+set(CMake_TEST_FindFontconfig "ON" CACHE BOOL "")
+set(CMake_TEST_FindFreetype "ON" CACHE BOOL "")
+set(CMake_TEST_FindGDAL "ON" CACHE BOOL "")
+set(CMake_TEST_FindGIF "ON" CACHE BOOL "")
+set(CMake_TEST_FindGit "ON" CACHE BOOL "")
+set(CMake_TEST_FindGLEW "ON" CACHE BOOL "")
+set(CMake_TEST_FindGnuTLS "ON" CACHE BOOL "")
+set(CMake_TEST_FindGSL "ON" CACHE BOOL "")
+set(CMake_TEST_FindGTest "ON" CACHE BOOL "")
+set(CMake_TEST_FindGTK2 "ON" CACHE BOOL "")
+set(CMake_TEST_FindIconv "ON" CACHE BOOL "")
+set(CMake_TEST_FindJPEG "ON" CACHE BOOL "")
+set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "")
+set(CMake_TEST_FindLAPACK "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibinput "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibUV "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibXml2 "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibXslt "ON" CACHE BOOL "")
+set(CMake_TEST_FindMPI_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindMPI_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_FindMPI_Fortran "ON" CACHE BOOL "")
+set(CMake_TEST_FindMPI "ON" CACHE BOOL "")
+set(CMake_TEST_FindODBC "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_Fortran "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenSSL "ON" CACHE BOOL "")
+set(CMake_TEST_FindPatch "ON" CACHE BOOL "")
+set(CMake_TEST_FindPNG "ON" CACHE BOOL "")
+set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "")
+set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "")
+set(CMake_TEST_FindPython "ON" CACHE BOOL "")
+set(CMake_TEST_FindPython_IronPython "ON" CACHE BOOL "")
+set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "")
+set(CMake_TEST_FindPython_PyPy "ON" CACHE BOOL "")
+set(CMake_TEST_FindRuby "ON" CACHE BOOL "")
+set(CMake_TEST_FindRuby_RVM "ON" CACHE BOOL "")
+set(CMake_TEST_FindSDL "ON" CACHE BOOL "")
+set(CMake_TEST_FindSQLite3 "ON" CACHE BOOL "")
+set(CMake_TEST_FindTIFF "ON" CACHE BOOL "")
+set(CMake_TEST_FindX11 "ON" CACHE BOOL "")
+set(CMake_TEST_FindXalanC "ON" CACHE BOOL "")
+set(CMake_TEST_FindXercesC "ON" CACHE BOOL "")
+set(CMake_TEST_Fortran_SUBMODULES "ON" CACHE BOOL "")
+set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "")
+set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_IPO_WORKS_Fortran "ON" CACHE BOOL "")
+set(CMake_TEST_Qt5 "ON" CACHE BOOL "")
+set(CMake_TEST_UseSWIG "ON" CACHE BOOL "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 65 - 0
.gitlab/ci/configure_fedora31_makefiles.cmake

@@ -1,2 +1,67 @@
+set(CMake_TEST_FindALSA "ON" CACHE BOOL "")
+set(CMake_TEST_FindBLAS "ON" CACHE BOOL "")
+set(CMake_TEST_FindBoost "ON" CACHE BOOL "")
+set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "")
+set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "")
+set(CMake_TEST_FindCups "ON" CACHE BOOL "")
+set(CMake_TEST_FindCURL "ON" CACHE BOOL "")
+set(CMake_TEST_FindDoxygen_Dot "ON" CACHE BOOL "")
+set(CMake_TEST_FindDoxygen "ON" CACHE BOOL "")
+set(CMake_TEST_FindEXPAT "ON" CACHE BOOL "")
+set(CMake_TEST_FindFontconfig "ON" CACHE BOOL "")
+set(CMake_TEST_FindFreetype "ON" CACHE BOOL "")
+set(CMake_TEST_FindGDAL "ON" CACHE BOOL "")
+set(CMake_TEST_FindGIF "ON" CACHE BOOL "")
+set(CMake_TEST_FindGit "ON" CACHE BOOL "")
+set(CMake_TEST_FindGLEW "ON" CACHE BOOL "")
+set(CMake_TEST_FindGnuTLS "ON" CACHE BOOL "")
+set(CMake_TEST_FindGSL "ON" CACHE BOOL "")
+set(CMake_TEST_FindGTest "ON" CACHE BOOL "")
+set(CMake_TEST_FindGTK2 "ON" CACHE BOOL "")
+set(CMake_TEST_FindIconv "ON" CACHE BOOL "")
+set(CMake_TEST_FindJPEG "ON" CACHE BOOL "")
+set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "")
+set(CMake_TEST_FindLAPACK "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibinput "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibUV "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibXml2 "ON" CACHE BOOL "")
+set(CMake_TEST_FindLibXslt "ON" CACHE BOOL "")
+set(CMake_TEST_FindMPI_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindMPI_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_FindMPI_Fortran "ON" CACHE BOOL "")
+set(CMake_TEST_FindMPI "ON" CACHE BOOL "")
+set(CMake_TEST_FindODBC "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_Fortran "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenSSL "ON" CACHE BOOL "")
+set(CMake_TEST_FindPatch "ON" CACHE BOOL "")
+set(CMake_TEST_FindPNG "ON" CACHE BOOL "")
+set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "")
+set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "")
+#FIXME: Not all FindPython tests pass on Fedora!
+#set(CMake_TEST_FindPython "ON" CACHE BOOL "")
+#set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "")
+#set(CMake_TEST_FindPython_PyPy "ON" CACHE BOOL "")
+set(CMake_TEST_FindRuby "ON" CACHE BOOL "")
+set(CMake_TEST_FindRuby_RVM "ON" CACHE BOOL "")
+set(CMake_TEST_FindSDL "ON" CACHE BOOL "")
+set(CMake_TEST_FindSQLite3 "ON" CACHE BOOL "")
+set(CMake_TEST_FindTIFF "ON" CACHE BOOL "")
+set(CMake_TEST_FindX11 "ON" CACHE BOOL "")
+set(CMake_TEST_FindXalanC "ON" CACHE BOOL "")
+set(CMake_TEST_FindXercesC "ON" CACHE BOOL "")
+set(CMake_TEST_Fortran_SUBMODULES "ON" CACHE BOOL "")
+set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "")
+set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_IPO_WORKS_Fortran "ON" CACHE BOOL "")
 set(CMake_TEST_ISPC "ON" CACHE STRING "")
+set(CMake_TEST_Qt5 "ON" CACHE BOOL "")
+set(CMake_TEST_UseSWIG "ON" CACHE BOOL "")
+
 include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 1 - 0
.gitlab/ci/ctest_test_external.cmake

@@ -1,6 +1,7 @@
 cmake_minimum_required(VERSION 3.8)
 
 include("${CMAKE_CURRENT_LIST_DIR}/gitlab_ci.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/env_$ENV{CMAKE_CONFIGURATION}.cmake" OPTIONAL)
 
 set(cmake_args
   -C "${CMAKE_CURRENT_LIST_DIR}/configure_$ENV{CMAKE_CONFIGURATION}.cmake")

+ 10 - 0
.gitlab/ci/docker/debian10/Dockerfile

@@ -4,6 +4,12 @@ MAINTAINER Ben Boeckel <[email protected]>
 COPY install_iwyu.sh /root/install_iwyu.sh
 RUN sh /root/install_iwyu.sh
 
+FROM debian:10 as rvm-build
+MAINTAINER Ben Boeckel <[email protected]>
+
+COPY install_rvm.sh /root/install_rvm.sh
+RUN sh /root/install_rvm.sh
+
 FROM debian:10
 MAINTAINER Ben Boeckel <[email protected]>
 
@@ -13,3 +19,7 @@ RUN sh /root/install_deps.sh
 COPY --from=iwyu-build /root/iwyu.tar.gz /root/iwyu.tar.gz
 RUN tar -C / -xf /root/iwyu.tar.gz
 RUN ln -s /usr/lib/llvm-6.0/bin/include-what-you-use /usr/bin/include-what-you-use-6.0
+
+COPY --from=rvm-build /root/rvm.tar /root/rvm.tar
+RUN tar -C /usr/local -xf /root/rvm.tar \
+ && rm /root/rvm.tar

+ 56 - 0
.gitlab/ci/docker/debian10/install_deps.sh

@@ -19,4 +19,60 @@ apt-get install -y \
     clang-6.0 \
     libncurses6
 
+# Packages needed to test find modules.
+apt-get install -y \
+    alsa-utils \
+    doxygen graphviz \
+    gnutls-dev \
+    libarchive-dev \
+    libblas-dev \
+    libboost-dev \
+    libboost-filesystem-dev \
+    libboost-program-options-dev \
+    libboost-python-dev \
+    libboost-thread-dev \
+    libbz2-dev \
+    libcups2-dev \
+    libcurl4-gnutls-dev \
+    libfontconfig1-dev \
+    libfreetype6-dev \
+    libgdal-dev \
+    libgif-dev \
+    libgl1-mesa-dev \
+    libglew-dev \
+    libgsl-dev \
+    libgtest-dev \
+    libgtk2.0-dev \
+    libinput-dev \
+    libjpeg-dev \
+    libjsoncpp-dev \
+    liblapack-dev \
+    liblzma-dev \
+    libopenmpi-dev openmpi-bin \
+    libpng-dev \
+    libpq-dev postgresql-server-dev-11 \
+    libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler \
+    libsdl-dev \
+    libsqlite3-dev \
+    libtiff-dev \
+    libuv1-dev \
+    libx11-dev \
+    libxalan-c-dev \
+    libxerces-c-dev \
+    libxml2-dev libxml2-utils \
+    libxslt-dev xsltproc \
+    python2 python2-dev python-numpy pypy pypy-dev \
+    python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv \
+    qtbase5-dev qtbase5-dev-tools \
+    ruby ruby-dev \
+    swig \
+    unixodbc-dev
+
+# CMake_TEST_FindPython_IronPython
+apt-get install -y \
+    libmono-system-windows-forms4.0-cil
+curl -L -O https://github.com/IronLanguages/ironpython2/releases/download/ipy-2.7.10/ironpython_2.7.10.deb
+dpkg -i ironpython_2.7.10.deb
+rm ironpython_2.7.10.deb
+
 apt-get clean

+ 19 - 0
.gitlab/ci/docker/debian10/install_rvm.sh

@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+apt-get update
+apt-get install -y \
+    curl \
+    gnupg2 \
+    procps
+
+gpg2 --keyserver hkp://pool.sks-keyservers.net \
+     --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
+                 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
+
+curl -sSL https://get.rvm.io | bash -s stable
+
+/usr/local/rvm/bin/rvm install ruby-2.7.0
+
+tar -C /usr/local -cf /root/rvm.tar rvm

+ 10 - 0
.gitlab/ci/docker/fedora31/Dockerfile

@@ -1,3 +1,9 @@
+FROM fedora:31 as rvm-build
+MAINTAINER Ben Boeckel <[email protected]>
+
+COPY install_rvm.sh /root/install_rvm.sh
+RUN sh /root/install_rvm.sh
+
 FROM fedora:31
 MAINTAINER Ben Boeckel <[email protected]>
 
@@ -6,3 +12,7 @@ RUN sh /root/install_deps.sh
 
 COPY install_ispc.sh /root/install_ispc.sh
 RUN sh /root/install_ispc.sh
+
+COPY --from=rvm-build /root/rvm.tar /root/rvm.tar
+RUN tar -C /usr/local -xf /root/rvm.tar \
+ && rm /root/rvm.tar

+ 51 - 1
.gitlab/ci/docker/fedora31/install_deps.sh

@@ -1,5 +1,7 @@
 #!/bin/sh
 
+set -e
+
 # Install build requirements.
 dnf install --setopt=install_weak_deps=False -y \
     ncurses-devel \
@@ -22,6 +24,54 @@ dnf install --setopt=install_weak_deps=False -y \
 # Tools needed for the test suite.
 dnf install --setopt=install_weak_deps=False -y \
     findutils \
-    file
+    file \
+    which
+
+# Packages needed to test find modules.
+dnf install --setopt=install_weak_deps=False -y \
+    alsa-lib-devel \
+    blas-devel \
+    boost-devel boost-python3-devel \
+    bzip2-devel \
+    cups-devel \
+    doxygen \
+    expat-devel \
+    fontconfig-devel \
+    freetype-devel \
+    gdal-devel \
+    giflib-devel \
+    glew-devel \
+    gnutls-devel \
+    gsl-devel \
+    gtest-devel \
+    gtk2-devel \
+    jsoncpp-devel \
+    lapack-devel \
+    libarchive-devel \
+    libcurl-devel \
+    libinput-devel systemd-devel \
+    libjpeg-turbo-devel \
+    libpng-devel \
+    libpq-devel postgresql-server-devel \
+    libtiff-devel \
+    libuv-devel \
+    libxml2-devel \
+    libxslt-devel \
+    openmpi-devel \
+    patch \
+    perl \
+    protobuf-devel protobuf-c-devel protobuf-lite-devel \
+    pypy2 pypy2-devel \
+    pypy3 pypy3-devel \
+    python2 python2-devel python2-numpy \
+    python3 python3-devel python3-numpy \
+    ruby rubygems ruby-devel \
+    SDL-devel \
+    sqlite-devel \
+    swig \
+    unixODBC-devel \
+    xalan-c-devel \
+    xerces-c-devel \
+    xz-devel
 
 dnf clean all

+ 18 - 0
.gitlab/ci/docker/fedora31/install_rvm.sh

@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+
+gpg2 --keyserver hkp://pool.sks-keyservers.net \
+     --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
+                 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
+
+dnf install --setopt=install_weak_deps=False -y \
+    findutils \
+    procps \
+    which
+
+curl -sSL https://get.rvm.io | bash -s stable
+
+/usr/local/rvm/bin/rvm install ruby-2.7.0
+
+tar -C /usr/local -cf /root/rvm.tar rvm

+ 1 - 0
.gitlab/ci/env_debian10_ninja.cmake

@@ -0,0 +1 @@
+set(ENV{MY_RUBY_HOME} "/usr/local/rvm/rubies/ruby-2.7.0")

+ 2 - 0
.gitlab/ci/env_fedora31_makefiles.cmake

@@ -0,0 +1,2 @@
+set(ENV{MY_RUBY_HOME} "/usr/local/rvm/rubies/ruby-2.7.0")
+set(ENV{PATH} "/usr/lib64/openmpi/bin:$ENV{PATH}")

+ 9 - 2
.gitlab/os-linux.yml

@@ -33,7 +33,7 @@
 ### Debian
 
 .debian10:
-    image: "kitware/cmake:ci-debian10-x86_64-2020-04-27"
+    image: "kitware/cmake:ci-debian10-x86_64-2020-10-03"
 
     variables:
         GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -49,7 +49,7 @@
 ### Fedora
 
 .fedora31:
-    image: "kitware/cmake:ci-fedora31-x86_64-2020-08-18"
+    image: "kitware/cmake:ci-fedora31-x86_64-2020-10-03"
 
     variables:
         GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -82,6 +82,13 @@
 
 #### Build and test
 
+.debian10_ninja:
+    extends: .debian10
+
+    variables:
+        CMAKE_CONFIGURATION: debian10_ninja
+        CTEST_NO_WARNINGS_ALLOWED: 1
+
 .fedora31_ninja:
     extends: .fedora31
 

+ 5 - 3
Tests/FindBLAS/Test/main.c

@@ -2,13 +2,15 @@
 #include <string.h>
 
 // declare what parts of the blas C-API we need
-void cblas_dswap(const int N, double* X, const int incX, double* Y,
-                 const int incY);
+void dswap_(int* N, double* X, int* incX, double* Y, int* incY);
 
 int main()
 {
   double x[4] = { 1, 2, 3, 4 };
   double y[4] = { 8, 7, 7, 6 };
-  cblas_dswap(4, x, 1, y, 1);
+  int N = 4;
+  int incX = 1;
+  int incY = 1;
+  dswap_(&N, x, &incX, y, &incY);
   return 0;
 }

+ 1 - 1
Tests/FindRuby/CMakeLists.txt

@@ -24,7 +24,7 @@ if(CMake_TEST_FindRuby)
     --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
     )
   set_tests_properties(FindRuby.Fail PROPERTIES
-    PASS_REGULAR_EXPRESSION "Could NOT find Ruby.*(Required is at least version \"[0-9]+\\.[0-9]+\\.[0-9]+\")")
+    PASS_REGULAR_EXPRESSION "Could NOT find Ruby.*(Required[ \n]+is[ \n]+at[ \n]+least[ \n]+version[ \n]*\"[0-9]+\\.[0-9]+\\.[0-9]+\")")
 
   # Looks for 1.9.9 EXACTLY, which unlike the "FindRuby" test above will fail on every machine
   # since this version doesn't exist (ruby goes from 1.9.3 to 2.0.0)

+ 1 - 1
Tests/FindRuby/Rvm/CMakeLists.txt

@@ -23,7 +23,7 @@ if (result)
   message (FATAL_ERROR "Unable to detect RVM ruby version from `${MY_RUBY_HOME}/bin/ruby`: ${RVM_RUBY_VERSION}")
 endif()
 
-execute_process(COMMAND "${CMAKE_COMMAND}" -E env --unset=MY_RUBY_HOME --unset=PATH
+execute_process(COMMAND "${CMAKE_COMMAND}" -E env --unset=MY_RUBY_HOME PATH=/usr/bin:/bin
                         "which" "ruby"
                  RESULT_VARIABLE result
                  OUTPUT_VARIABLE SYSTEM_RUBY