Skip to content

Commit db3e7ad

Browse files
committed
CircleCI: Use LLVM 5.0.0 final
And allow CMake variable LDC_WITH_LLD to be specified on the command line. LLD 5.0+ needs ldc-developers#2148 to avoid conflicting command-line options.
1 parent ac2c3fd commit db3e7ad

File tree

2 files changed

+33
-23
lines changed

2 files changed

+33
-23
lines changed

.circleci/config.yml

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ jobs:
44
docker:
55
- image: gcc
66
environment:
7+
- LLVM_VERSION: 5.0.0
78
- HOST_LDC_VERSION: 1.3.0
89
steps:
910
- checkout
@@ -24,15 +25,22 @@ jobs:
2425
ninja --version
2526
gdb --version
2627
python -c "import lit; lit.main();" --version | head -n 1
28+
- restore_cache:
29+
keys:
30+
- llvm-5.0.0
31+
- host-ldc-{{ .Environment.HOST_LDC_VERSION }}
2732
- run:
28-
name: Install LLVM nightly
33+
name: Install LLVM 5.0.0
2934
command: |
30-
add-apt-repository -y 'deb http://apt.llvm.org/unstable/ llvm-toolchain-5.0 main'
31-
wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
32-
apt update
33-
apt install -y llvm-5.0 llvm-5.0-dev libclang-common-5.0-dev libfuzzer-5.0-dev
34-
- restore_cache:
35-
key: host-ldc-{{ .Environment.HOST_LDC_VERSION }}
35+
if [[ ! -d llvm-$LLVM_VERSION ]]; then
36+
wget -O llvm-$LLVM_VERSION.tar.xz http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-linux-x86_64-ubuntu16.04.tar.xz
37+
mkdir llvm-$LLVM_VERSION
38+
tar -xpf llvm-$LLVM_VERSION.tar.xz --strip 1 -C llvm-$LLVM_VERSION
39+
fi
40+
- save_cache:
41+
key: llvm-5.0.0
42+
paths:
43+
- llvm-5.0.0
3644
- run:
3745
name: Install LDC host compiler
3846
command: |
@@ -50,7 +58,7 @@ jobs:
5058
export HOST_LDMD=$PWD/ldc2-$HOST_LDC_VERSION-linux-x86_64/bin/ldmd2
5159
mkdir bootstrap
5260
cd bootstrap
53-
cmake -G Ninja -DBUILD_SHARED_LIBS=OFF -DD_COMPILER=$HOST_LDMD ..
61+
cmake -G Ninja -DLDC_WITH_LLD=OFF -DLLVM_ROOT_DIR=$PWD/../llvm-$LLVM_VERSION -DBUILD_SHARED_LIBS=OFF -DD_COMPILER=$HOST_LDMD ..
5462
ninja -j3
5563
bin/ldc2 -version
5664
cd ..
@@ -60,7 +68,7 @@ jobs:
6068
export HOST_LDMD=$PWD/bootstrap/bin/ldmd2
6169
mkdir build
6270
cd build
63-
cmake -G Ninja -DLDC_INSTALL_LTOPLUGIN=ON -DLDC_INSTALL_LLVM_RUNTIME_LIBS=ON -DD_COMPILER=$HOST_LDMD ..
71+
cmake -G Ninja -DLDC_WITH_LLD=OFF -DLLVM_ROOT_DIR=$PWD/../llvm-$LLVM_VERSION -DLDC_INSTALL_LTOPLUGIN=ON -DLDC_INSTALL_LLVM_RUNTIME_LIBS=ON -DD_COMPILER=$HOST_LDMD ..
6472
ninja -j3 all all-test-runners
6573
bin/ldc2 -version
6674
cd ..

CMakeLists.txt

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -453,22 +453,24 @@ endif()
453453
#
454454
# LLD integration (requires LLVM >= 3.9 with LLD headers & libs)
455455
#
456-
set(LDC_WITH_LLD OFF)
457-
if(LDC_LLVM_VER GREATER 308)
458-
# check for LLD header
459-
unset(LDC_WITH_LLD)
460-
if(NOT MSVC)
461-
set(CMAKE_REQUIRED_FLAGS -std=c++11)
462-
endif()
463-
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIRS})
464-
CHECK_INCLUDE_FILE_CXX(lld/Driver/Driver.h LDC_WITH_LLD)
465-
unset(CMAKE_REQUIRED_FLAGS)
466-
unset(CMAKE_REQUIRED_INCLUDES)
467-
if(LDC_WITH_LLD)
468-
message(STATUS "Building LDC with LLD support")
469-
append("-DLDC_WITH_LLD" LDC_CXXFLAGS)
456+
if(NOT DEFINED LDC_WITH_LLD)
457+
if(LDC_LLVM_VER GREATER 308)
458+
# check for LLD header
459+
if(NOT MSVC)
460+
set(CMAKE_REQUIRED_FLAGS -std=c++11)
461+
endif()
462+
set(CMAKE_REQUIRED_INCLUDES ${LLVM_INCLUDE_DIRS})
463+
CHECK_INCLUDE_FILE_CXX(lld/Driver/Driver.h LDC_WITH_LLD)
464+
unset(CMAKE_REQUIRED_FLAGS)
465+
unset(CMAKE_REQUIRED_INCLUDES)
466+
else()
467+
set(LDC_WITH_LLD OFF)
470468
endif()
471469
endif()
470+
if(LDC_WITH_LLD)
471+
message(STATUS "Building LDC with LLD support")
472+
append("-DLDC_WITH_LLD" LDC_CXXFLAGS)
473+
endif()
472474

473475
#
474476
# Enable building with riscv-llvm, for full RISC-V support.

0 commit comments

Comments
 (0)