@@ -31,7 +31,7 @@ endfunction()
31
31
# Locate LLVM.
32
32
#
33
33
34
- find_package (LLVM 3.9 REQUIRED
34
+ find_package (LLVM 6.0 REQUIRED
35
35
all -targets analysis asmparser asmprinter bitreader bitwriter codegen core
36
36
debuginfodwarf debuginfomsf debuginfopdb demangle
37
37
instcombine ipo instrumentation irreader libdriver linker lto mc
@@ -308,13 +308,10 @@ if (UNIX AND NOT "${LLVM_LDFLAGS}" STREQUAL "")
308
308
endif ()
309
309
if (MSVC )
310
310
separate_arguments (LLVM_LDFLAGS WINDOWS_COMMAND "${LLVM_LDFLAGS} " )
311
- # LLVM 5.0+ requires diaguids.lib from MS Debug Interface Access SDK
312
- if (NOT (LDC_LLVM_VER LESS 500))
313
- if (CMAKE_SIZEOF_VOID_P EQUAL 8)
314
- list (APPEND LLVM_LDFLAGS "$ENV{VSINSTALLDIR} DIA SDK\\ lib\\ amd64\\ diaguids.lib" )
315
- else ()
316
- list (APPEND LLVM_LDFLAGS "$ENV{VSINSTALLDIR} DIA SDK\\ lib\\ diaguids.lib" )
317
- endif ()
311
+ if (CMAKE_SIZEOF_VOID_P EQUAL 8)
312
+ list (APPEND LLVM_LDFLAGS "$ENV{VSINSTALLDIR} DIA SDK\\ lib\\ amd64\\ diaguids.lib" )
313
+ else ()
314
+ list (APPEND LLVM_LDFLAGS "$ENV{VSINSTALLDIR} DIA SDK\\ lib\\ diaguids.lib" )
318
315
endif ()
319
316
else ()
320
317
separate_arguments (LLVM_LDFLAGS UNIX_COMMAND "${LLVM_LDFLAGS} " )
@@ -453,10 +450,7 @@ include(HandleLTOPGOBuildOptions)
453
450
set (LDC_DYNAMIC_COMPILE "AUTO" CACHE STRING "Support dynamic compilation (ON|OFF). Enabled by default." )
454
451
option (LDC_DYNAMIC_COMPILE_USE_CUSTOM_PASSES "Use custom LDC passes in jit" ON )
455
452
if (LDC_DYNAMIC_COMPILE STREQUAL "AUTO" )
456
- set (LDC_DYNAMIC_COMPILE OFF )
457
- if (NOT (LDC_LLVM_VER LESS 500))
458
- set (LDC_DYNAMIC_COMPILE ON )
459
- endif ()
453
+ set (LDC_DYNAMIC_COMPILE ON )
460
454
endif ()
461
455
message (STATUS "Building LDC with dynamic compilation support: ${LDC_DYNAMIC_COMPILE} (LDC_DYNAMIC_COMPILE=${LDC_DYNAMIC_COMPILE} )" )
462
456
if (LDC_DYNAMIC_COMPILE)
@@ -493,8 +487,7 @@ endif()
493
487
# LLD integration (requires headers & libs)
494
488
#
495
489
if (NOT DEFINED LDC_WITH_LLD)
496
- if (((LDC_LLVM_VER LESS 600) AND (EXISTS "${LLVM_INCLUDE_DIRS} /lld/Driver/Driver.h" )) OR
497
- ((NOT LDC_LLVM_VER LESS 600) AND (EXISTS "${LLVM_INCLUDE_DIRS} /lld/Common/Driver.h" )))
490
+ if (EXISTS "${LLVM_INCLUDE_DIRS} /lld/Common/Driver.h" )
498
491
set (LDC_WITH_LLD ON )
499
492
else ()
500
493
set (LDC_WITH_LLD OFF )
@@ -595,22 +588,13 @@ if(LDC_WITH_LLD)
595
588
set (LDC_LINKERFLAG_LIST -lLLVMSymbolize ${LDC_LINKERFLAG_LIST} )
596
589
endif ()
597
590
endif ()
598
- # ELF, Mach-O, MinGW and WebAssembly formats supported since LLD 6.0.0, otherwise just Windows COFF
599
- if (NOT (LDC_LLVM_VER LESS 600))
600
- if (MSVC )
601
- list (APPEND LDC_LINKERFLAG_LIST lldDriver.lib lldMinGW.lib lldCOFF.lib lldELF.lib lldMachO.lib lldWasm.lib lldYAML.lib lldReaderWriter.lib lldCommon.lib lldCore.lib)
602
- else ()
603
- set (LDC_LINKERFLAG_LIST -llldDriver -llldMinGW -llldCOFF -llldELF -llldMachO -llldWasm -llldYAML -llldReaderWriter -llldCommon -llldCore ${LDC_LINKERFLAG_LIST} )
604
- endif ()
605
- if (APPLE ) # bug, should be fixed in LLVM 6.0.1
606
- list (APPEND LDC_LINKERFLAG_LIST -lxml2)
607
- endif ()
591
+ if (MSVC )
592
+ list (APPEND LDC_LINKERFLAG_LIST lldDriver.lib lldMinGW.lib lldCOFF.lib lldELF.lib lldMachO.lib lldWasm.lib lldYAML.lib lldReaderWriter.lib lldCommon.lib lldCore.lib)
608
593
else ()
609
- if (MSVC )
610
- list (APPEND LDC_LINKERFLAG_LIST lldCOFF.lib lldCore.lib lldDriver.lib)
611
- else ()
612
- set (LDC_LINKERFLAG_LIST -llldCOFF -llldCore -llldDriver ${LDC_LINKERFLAG_LIST} )
613
- endif ()
594
+ set (LDC_LINKERFLAG_LIST -llldDriver -llldMinGW -llldCOFF -llldELF -llldMachO -llldWasm -llldYAML -llldReaderWriter -llldCommon -llldCore ${LDC_LINKERFLAG_LIST} )
595
+ endif ()
596
+ if (APPLE ) # bug, should be fixed in LLVM 6.0.1
597
+ list (APPEND LDC_LINKERFLAG_LIST -lxml2)
614
598
endif ()
615
599
endif ()
616
600
@@ -730,14 +714,14 @@ function(copy_and_rename_file source_path target_path)
730
714
endfunction ()
731
715
732
716
#
733
- # Locate LLVM's LTO binary and use it (LLVM >= 3.9)
717
+ # Locate LLVM's LTO binary and use it
734
718
#
735
719
if (APPLE )
736
720
set (LDC_INSTALL_LTOPLUGIN_DEFAULT ON )
737
721
else ()
738
722
set (LDC_INSTALL_LTOPLUGIN_DEFAULT OFF )
739
723
endif ()
740
- set (LDC_INSTALL_LTOPLUGIN ${LDC_INSTALL_LTOPLUGIN_DEFAULT} CACHE BOOL "Copy/install the LTO plugin from the LLVM package when available (LLVM >= 3.9) ." )
724
+ set (LDC_INSTALL_LTOPLUGIN ${LDC_INSTALL_LTOPLUGIN_DEFAULT} CACHE BOOL "Copy/install the LTO plugin from the LLVM package when available." )
741
725
if (LDC_INSTALL_LTOPLUGIN)
742
726
if (APPLE )
743
727
set (LLVM_LTO_BINARY ${LLVM_LIBRARY_DIRS} /libLTO.dylib)
@@ -783,16 +767,13 @@ include(CheckTypeSize)
783
767
check_type_size(void* ptr_size)
784
768
if (LDC_INSTALL_LLVM_RUNTIME_LIBS)
785
769
# Locate LLVM sanitizer runtime libraries, and copy them to our lib folder
786
- # Note: libFuzzer is part of compiler-rt version >= 6.0, but was part of LLVM =< 5.0
787
770
788
771
if (APPLE )
789
772
copy_compilerrt_lib("darwin/libclang_rt.asan_osx_dynamic.dylib" "libldc_rt.asan.dylib" TRUE )
790
773
copy_compilerrt_lib("darwin/libclang_rt.osx.a" "libldc_rt.builtins.a" FALSE )
791
774
copy_compilerrt_lib("darwin/libclang_rt.profile_osx.a" "libldc_rt.profile.a" FALSE )
792
- if (NOT (LDC_LLVM_VER LESS 600))
793
- copy_compilerrt_lib("darwin/libclang_rt.fuzzer_osx.a" "libldc_rt.fuzzer.a" FALSE )
794
- copy_compilerrt_lib("darwin/libclang_rt.xray_osx.a" "libldc_rt.xray.a" FALSE )
795
- endif ()
775
+ copy_compilerrt_lib("darwin/libclang_rt.fuzzer_osx.a" "libldc_rt.fuzzer.a" FALSE )
776
+ copy_compilerrt_lib("darwin/libclang_rt.xray_osx.a" "libldc_rt.xray.a" FALSE )
796
777
if (NOT (LDC_LLVM_VER LESS 700))
797
778
copy_compilerrt_lib("darwin/libclang_rt.xray-basic_osx.a" "libldc_rt.xray-basic.a" FALSE )
798
779
copy_compilerrt_lib("darwin/libclang_rt.xray-fdr_osx.a" "libldc_rt.xray-fdr.a" FALSE )
@@ -805,12 +786,8 @@ if (LDC_INSTALL_LLVM_RUNTIME_LIBS)
805
786
copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.asan-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.asan.a" FALSE )
806
787
copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.builtins-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.builtins.a" FALSE )
807
788
copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.profile-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.profile.a" FALSE )
808
- if (NOT (LDC_LLVM_VER LESS 500))
809
- copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.xray-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.xray.a" FALSE )
810
- endif ()
811
- if (NOT (LDC_LLVM_VER LESS 600))
812
- copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.fuzzer-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.fuzzer.a" FALSE )
813
- endif ()
789
+ copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.xray-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.xray.a" FALSE )
790
+ copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.fuzzer-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.fuzzer.a" FALSE )
814
791
if (NOT (LDC_LLVM_VER LESS 700))
815
792
copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.xray-basic-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.xray-basic.a" FALSE )
816
793
copy_compilerrt_lib("${LDC_INSTALL_LLVM_RUNTIME_LIBS_OS} /libclang_rt.xray-fdr-${LDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH} .a" "libldc_rt.xray-fdr.a" FALSE )
@@ -824,28 +801,14 @@ if (LDC_INSTALL_LLVM_RUNTIME_LIBS)
824
801
copy_compilerrt_lib("windows/clang_rt.asan-${compilerrt_arch_suffix} .lib" "ldc_rt.asan.lib" FALSE )
825
802
copy_compilerrt_lib("windows/clang_rt.builtins-${compilerrt_arch_suffix} .lib" "ldc_rt.builtins.lib" FALSE )
826
803
copy_compilerrt_lib("windows/clang_rt.profile-${compilerrt_arch_suffix} .lib" "ldc_rt.profile.lib" FALSE )
827
- if (NOT (LDC_LLVM_VER LESS 600))
828
- copy_compilerrt_lib("windows/clang_rt.fuzzer-${compilerrt_arch_suffix} .lib" "ldc_rt.fuzzer.lib" FALSE )
829
- copy_compilerrt_lib("windows/clang_rt.xray-${compilerrt_arch_suffix} .lib" "ldc_rt.xray.lib" FALSE )
830
- endif ()
804
+ copy_compilerrt_lib("windows/clang_rt.fuzzer-${compilerrt_arch_suffix} .lib" "ldc_rt.fuzzer.lib" FALSE )
805
+ copy_compilerrt_lib("windows/clang_rt.xray-${compilerrt_arch_suffix} .lib" "ldc_rt.xray.lib" FALSE )
831
806
if (NOT (LDC_LLVM_VER LESS 700))
832
807
copy_compilerrt_lib("windows/clang_rt.xray-basic-${compilerrt_arch_suffix} .lib" "ldc_rt.xray-basic.lib" FALSE )
833
808
copy_compilerrt_lib("windows/clang_rt.xray-fdr-${compilerrt_arch_suffix} .lib" "ldc_rt.xray-fdr.lib" FALSE )
834
809
copy_compilerrt_lib("windows/clang_rt.xray-profiling-${compilerrt_arch_suffix} .lib" "ldc_rt.xray-profiling.lib" FALSE )
835
810
endif ()
836
811
endif ()
837
-
838
- if (LDC_LLVM_VER LESS 600)
839
- set (LLVM_LIBFUZZER_PATH ${LLVM_LIBRARY_DIRS} /libFuzzer.a)
840
- if (EXISTS ${LLVM_LIBFUZZER_PATH} )
841
- message (STATUS "Copying libFuzzer library: ${LLVM_LIBFUZZER_PATH} --> libFuzzer.a" )
842
- file (MAKE_DIRECTORY ${PROJECT_BINARY_DIR} /lib${LIB_SUFFIX} )
843
- file (COPY ${LLVM_LIBFUZZER_PATH} DESTINATION ${PROJECT_BINARY_DIR} /lib${LIB_SUFFIX} )
844
- install (FILES ${PROJECT_BINARY_DIR} /lib${LIB_SUFFIX} /libFuzzer.a DESTINATION ${CMAKE_INSTALL_PREFIX} /lib${LIB_SUFFIX} )
845
- else ()
846
- message (STATUS "Not found: ${LLVM_LIBFUZZER_PATH} " )
847
- endif ()
848
- endif ()
849
812
endif ()
850
813
851
814
#
0 commit comments