Commit c356ec8702dd4ee8c49520e8c7960a07c33faf86

Authored by Henry Schreiner
Committed by Henry Schreiner
1 parent efbdd604

Adding CMake 3.4 check, 2x faster CUDA build

.github/workflows/tests.yml
@@ -28,14 +28,29 @@ jobs: @@ -28,14 +28,29 @@ jobs:
28 runs-on: ubuntu-latest 28 runs-on: ubuntu-latest
29 container: nvidia/cuda:10.2-devel-ubuntu18.04 29 container: nvidia/cuda:10.2-devel-ubuntu18.04
30 steps: 30 steps:
31 - - uses: actions/checkout@v1  
32 - with:  
33 - submodules: true  
34 - - name: Add wget  
35 - run: apt-get update && apt-get install -y wget  
36 - - name: Install Modern CMake  
37 - run: wget -qO- "https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local  
38 - - name: Configure  
39 - run: cmake -S . -B build -DCLI11_CUDA_TESTS=ON  
40 - - name: Build  
41 - run: cmake --build build 31 + - uses: actions/checkout@v1
  32 + with:
  33 + submodules: true
  34 + - name: Add wget
  35 + run: apt-get update && apt-get install -y wget
  36 + - name: Install Modern CMake
  37 + run: wget -qO- "https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C /usr/local
  38 + - name: Configure
  39 + run: cmake -S . -B build -DCLI11_CUDA_TESTS=ON
  40 + - name: Build
  41 + run: cmake --build build -j2
  42 +
  43 + cmake34:
  44 + name: CMake 3.4
  45 + runs-on: ubuntu-latest
  46 + # container: ubuntu:latest
  47 + steps:
  48 + - uses: actions/checkout@v1
  49 + with:
  50 + submodules: true
  51 + - name: Add CMake folder to path
  52 + run: mkdir -p cmake && echo "::add-path::$PWD/cmake/bin"
  53 + - name: Install Modern CMake
  54 + run: wget -qO- "https://cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz" | tar --strip-components=1 -xz -C $PWD/cmake
  55 + - name: Configure
  56 + run: cmake --version && mkdir -p build && cd build && cmake ..
CMakeLists.txt
@@ -2,13 +2,14 @@ cmake_minimum_required(VERSION 3.4) @@ -2,13 +2,14 @@ cmake_minimum_required(VERSION 3.4)
2 # Note: this is a header only library. If you have an older CMake than 3.4, 2 # Note: this is a header only library. If you have an older CMake than 3.4,
3 # just add the CLI11/include directory and that's all you need to do. 3 # just add the CLI11/include directory and that's all you need to do.
4 4
5 -# Make sure users don't get warnings on a tested (3.4 to 3.14) version 5 +# Make sure users don't get warnings on a tested (3.4 to 3.16) version
6 # of CMake. For most of the policies, the new version is better (hence the change). 6 # of CMake. For most of the policies, the new version is better (hence the change).
7 -# We don't use the 3.4...3.14 syntax because of a bug in a version of MSVC  
8 -if(${CMAKE_VERSION} VERSION_LESS 3.14) 7 +# We don't use the 3.4...3.16 syntax because of a bug in an older MSVC's
  8 +# built-in and modified CMake 3.11
  9 +if(${CMAKE_VERSION} VERSION_LESS 3.16)
9 cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) 10 cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
10 else() 11 else()
11 - cmake_policy(VERSION 3.14) 12 + cmake_policy(VERSION 3.16)
12 endif() 13 endif()
13 14
14 set(VERSION_REGEX "#define CLI11_VERSION[ \t]+\"(.+)\"") 15 set(VERSION_REGEX "#define CLI11_VERSION[ \t]+\"(.+)\"")