Commit bbe36d8c authored by Vicente Bolea's avatar Vicente Bolea 💬
Browse files

cmake: set c++14 as minimum c++ rev


Signed-off-by: Vicente Bolea's avatarVicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
parent 037bd24e
......@@ -3,7 +3,7 @@
#
# * .gitlab/ci/docker/centos7/cuda10.2/
# - cuda
# - gcc 4.8.5
# - gcc 7.3.1
# * .gitlab/ci/docker/centos8/base/
# - gcc 8.3.1
# - clang 8.0.1
......@@ -13,7 +13,7 @@
# - cuda
# - gcc 8.2.1
# * .gitlab/ci/docker/ubuntu1604/base/
# - gcc 4.8
# - gcc 5.4.0
# - clang 3.8
# - clang 5.0
# - tbb
......@@ -51,7 +51,7 @@
GIT_CLONE_PATH: $CI_BUILDS_DIR/gitlab-kitware-sciviz-ci
.centos7: &centos7
image: "kitware/vtkm:ci-centos7_cuda10.2-20201016"
image: "kitware/vtkm:ci-centos7_cuda10.2-20210128"
extends:
- .docker_image
......
# Build on centos7 with CUDA and test on rhel8 and centos7
# gcc 4.8
build:centos7_gcc48:
# gcc 7.3.1
build:centos7_gcc73:
tags:
- build
- vtkm
......@@ -18,7 +18,7 @@ build:centos7_gcc48:
CMAKE_GENERATOR: "Unix Makefiles"
VTKM_SETTINGS: "cuda+turing+32bit_ids+no_rendering"
test:centos7_gcc48:
test:centos7_gcc73:
tags:
- test
- vtkm
......@@ -31,9 +31,9 @@ test:centos7_gcc48:
- .cmake_test_linux
- .only-default
dependencies:
- build:centos7_gcc48
- build:centos7_gcc73
needs:
- build:centos7_gcc48
- build:centos7_gcc73
test:rhel8_test_centos7:
tags:
......@@ -50,6 +50,6 @@ test:rhel8_test_centos7:
variables:
CTEST_EXCLUSIONS: "built_against_test_install"
dependencies:
- build:centos7_gcc48
- build:centos7_gcc73
needs:
- build:centos7_gcc48
- build:centos7_gcc73
FROM nvidia/cuda:10.2-devel-centos7
LABEL maintainer "Robert Maynard<robert.maynard@kitware.com>"
RUN yum install make gcc gcc-c++ curl cuda-compat-10-2 -y
RUN yum install make gcc gcc-c++ curl cuda-compat-10-2 centos-release-scl -y
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | bash
RUN yum install git git-lfs -y
RUN yum install git git-lfs devtoolset-7-gcc-c++ -y
# Provide a consistent CMake path across all images
# Install CMake 3.13 as it is the minium for cuda builds
......@@ -20,4 +20,4 @@ RUN mkdir /opt/cmake-latest/ && \
rm cmake-3.17.3-Linux-x86_64.sh && \
ln -s /opt/cmake-latest/bin/ctest /opt/cmake-latest/bin/ctest-latest
ENV PATH "/opt/cmake/bin:/opt/cmake-latest/bin:${PATH}"
ENV PATH "/opt/rh/devtoolset-7/root/bin:/opt/cmake/bin:/opt/cmake-latest/bin:${PATH}"
......@@ -75,51 +75,6 @@ test:ubuntu1804_test_ubuntu1604_gcc5_2:
needs:
- build:ubuntu1604_gcc5_2
# Build on ubuntu1604 with mpi + tbb and test on ubuntu1604
# Uses gcc 4.8
# Uses OpenMPI
build:ubuntu1604_gcc48:
tags:
- build
- vtkm
- docker
- linux
extends:
- .ubuntu1604
- .cmake_build_linux
- .only-default
variables:
CC: "gcc-4.8"
CXX: "g++-4.8"
CMAKE_BUILD_TYPE: Release
#custom openmpi install location
CMAKE_PREFIX_PATH: "/opt/openmpi/"
VTKM_SETTINGS: "tbb+mpi+shared+no_rendering"
test:ubuntu1604_gcc48:
tags:
- test
- vtkm
- docker
- linux
- privileged
extends:
- .ubuntu1604
- .cmake_test_linux
- .only-default
variables:
#env flags to allow openmpi to run as root user
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
#mpi location so that `built_against_test_install` tests
#pass
CMAKE_PREFIX_PATH: "/opt/openmpi/"
dependencies:
- build:ubuntu1604_gcc48
needs:
- build:ubuntu1604_gcc48
# Build on ubuntu1604 with tbb and test on ubuntu1604
# Uses clang 5
build:ubuntu1604_clang5:
......
......@@ -77,7 +77,7 @@ endif()
set(vec_levels none native)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
#for now we presume gcc >= 4.8
#for now we presume gcc >= 5.4
list(APPEND vec_levels avx avx2)
#common flags for the avx and avx2 instructions for the gcc compiler
......
......@@ -12,6 +12,14 @@
cmake_minimum_required(VERSION 3.12...3.15 FATAL_ERROR)
project (VTKm)
# We only allow c++14
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# When using C++14 support make sure you use the standard C++ extensions rather
# than compiler-specific versions of the extensions (to preserve portability).
set(CMAKE_CXX_EXTENSIONS OFF)
# Update module path
set(VTKm_CMAKE_MODULE_PATH ${VTKm_SOURCE_DIR}/CMake)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${VTKm_CMAKE_MODULE_PATH})
......@@ -163,9 +171,6 @@ mark_as_advanced(
)
#-----------------------------------------------------------------------------
# When using C++11 support make sure you use the standard C++ extensions rather
# than compiler-specific versions of the extensions (to preserve portability).
set(CMAKE_CXX_EXTENSIONS Off)
# Setup default build types
include(VTKmBuildType)
......
......@@ -64,7 +64,7 @@ effort.
VTK-m Requires:
+ C++11 Compiler. VTK-m has been confirmed to work with the following
+ GCC 4.8+
+ GCC 5.4+
+ Clang 5.0+
+ XCode 5.0+
+ MSVC 2015+
......@@ -103,7 +103,7 @@ Optional dependencies are:
VTK-m has been tested on the following configurations:c
+ On Linux
+ GCC 4.8.5, 5.4, 6.5, 7.4, 8.2, 9.2; Clang 5, 8; Intel 17.0.4; 19.0.0
+ GCC 5.4.0, 5.4, 6.5, 7.4, 8.2, 9.2; Clang 5, 8; Intel 17.0.4; 19.0.0
+ CMake 3.12, 3.13, 3.16, 3.17
+ CUDA 9.2, 10.2, 11.0, 11.1
+ TBB 4.4 U2, 2017 U7
......
......@@ -62,7 +62,7 @@
#if defined(__NVCC__)
// Currently nvcc has zero support deprecated attributes
#elif __cplusplus >= 201402L
#elif __cplusplus >= 201402L && !defined(VTKM_GCC)
// C++14 and better supports [[deprecated]]
// Except in these cases:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment