Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 155 additions & 13 deletions master/master.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -722,31 +722,173 @@ def get_cmake_build_command(builder_type, build_dir, targets=None):
return cmd


# options in LLVM that we always want OFF because they aren't needed
# for Halide buildbot usage.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is wrong and misleading. This doesn't just affect the LLVM used on the buildbots. This is also the LLVM that gets bundled into our libHalide binary releases. Not building the tools has no effect on that, but these decisions are decisions we're making for downstream users of libHalide, not just on our buildbots.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to fix it in #276

_LLVM_OFF_OPTS = [
"CLANG_ENABLE_ARCMT"
"CLANG_ENABLE_CLANGD"
"CLANG_ENABLE_STATIC_ANALYZER"
"CLANG_INCLUDE_DOCS"
"CLANG_INSTALL_SCANBUILD"
"CLANG_INSTALL_SCANVIEW"
"CLANG_PLUGIN_SUPPORT"
"CLANG_TIDY_ENABLE_STATIC_ANALYZER"
"CLANG_TOOL_APINOTES_TEST_BUILD"
"CLANG_TOOL_ARCMT_TEST_BUILD"
"CLANG_TOOL_C_ARCMT_TEST_BUILD"
"CLANG_TOOL_C_INDEX_TEST_BUILD"
"CLANG_TOOL_CLANG_CHECK_BUILD"
"CLANG_TOOL_CLANG_DIFF_BUILD"
"CLANG_TOOL_CLANG_EXTDEF_MAPPING_BUILD"
"CLANG_TOOL_CLANG_FORMAT_BUILD"
"CLANG_TOOL_CLANG_FORMAT_VS_BUILD"
"CLANG_TOOL_CLANG_FUZZER_BUILD"
"CLANG_TOOL_CLANG_IMPORT_TEST_BUILD"
"CLANG_TOOL_CLANG_LINKER_WRAPPER_BUILD"
"CLANG_TOOL_CLANG_OFFLOAD_BUNDLER_BUILD"
"CLANG_TOOL_CLANG_OFFLOAD_PACKAGER_BUILD"
"CLANG_TOOL_CLANG_REFACTOR_BUILD"
"CLANG_TOOL_CLANG_RENAME_BUILD"
"CLANG_TOOL_CLANG_REPL_BUILD"
"CLANG_TOOL_CLANG_SCAN_DEPS_BUILD"
"CLANG_TOOL_CLANG_SHLIB_BUILD"
"CLANG_TOOL_DIAGTOOL_BUILD"
"CLANG_TOOL_DICTIONARY_BUILD"
"CLANG_TOOL_LIBCLANG_BUILD"
"CLANG_TOOL_NVPTX_ARCH_BUILD"
"CLANG_TOOL_SCAN_BUILD_BUILD"
"CLANG_TOOL_SCAN_BUILD_PY_BUILD"
"CLANG_TOOL_SCAN_VIEW_BUILD"
"CLANG_TOOLS_EXTRA_INCLUDE_DOCS"
"LLVM_BUILD_UTILS"
"LLVM_ENABLE_BINDINGS"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like the same set of features of libLLVM that were disabled before the PR, so my beef is strictly with the comment.

"LLVM_ENABLE_CURL"
"LLVM_ENABLE_DIA_SDK"
"LLVM_ENABLE_HTTPLIB"
"LLVM_ENABLE_IDE"
"LLVM_ENABLE_LIBXML2"
"LLVM_ENABLE_OCAMLDOC"
"LLVM_ENABLE_PLUGINS"
"LLVM_ENABLE_TERMINFO"
"LLVM_ENABLE_WARNINGS"
"LLVM_ENABLE_ZSTD",
"LLVM_INCLUDE_BENCHMARKS"
"LLVM_INCLUDE_DOCS"
"LLVM_INCLUDE_EXAMPLES"
"LLVM_INCLUDE_TESTS"
"LLVM_INCLUDE_UTILS"
"LLVM_TOOL_BUGPOINT_BUILD"
"LLVM_TOOL_BUGPOINT_PASSES_BUILD"
"LLVM_TOOL_DSYMUTIL_BUILD"
"LLVM_TOOL_DXIL_DIS_BUILD"
"LLVM_TOOL_GOLD_BUILD"
"LLVM_TOOL_LLC_BUILD"
"LLVM_TOOL_LLI_BUILD"
"LLVM_TOOL_LLVM_AR_BUILD"
# "LLVM_TOOL_LLVM_AS_BUILD" -- no: ClangConfig.cmake needs this
# "LLVM_TOOL_LLVM_AS_FUZZER_BUILD" -- no: ClangConfig.cmake needs this
"LLVM_TOOL_LLVM_BCANALYZER_BUILD"
"LLVM_TOOL_LLVM_C_TEST_BUILD"
"LLVM_TOOL_LLVM_CAT_BUILD"
"LLVM_TOOL_LLVM_CFI_VERIFY_BUILD"
"LLVM_TOOL_LLVM_COV_BUILD"
"LLVM_TOOL_LLVM_CVTRES_BUILD"
"LLVM_TOOL_LLVM_CXXDUMP_BUILD"
"LLVM_TOOL_LLVM_CXXFILT_BUILD"
"LLVM_TOOL_LLVM_CXXMAP_BUILD"
"LLVM_TOOL_LLVM_DEBUGINFO_ANALYZER_BUILD"
"LLVM_TOOL_LLVM_DEBUGINFOD_BUILD"
"LLVM_TOOL_LLVM_DEBUGINFOD_FIND_BUILD"
"LLVM_TOOL_LLVM_DIFF_BUILD"
"LLVM_TOOL_LLVM_DIS_BUILD"
"LLVM_TOOL_LLVM_DIS_FUZZER_BUILD"
"LLVM_TOOL_LLVM_DLANG_DEMANGLE_FUZZER_BUILD"
"LLVM_TOOL_LLVM_DWARFDUMP_BUILD"
"LLVM_TOOL_LLVM_DWARFUTIL_BUILD"
"LLVM_TOOL_LLVM_DWP_BUILD"
"LLVM_TOOL_LLVM_EXEGESIS_BUILD"
"LLVM_TOOL_LLVM_EXTRACT_BUILD"
"LLVM_TOOL_LLVM_GSYMUTIL_BUILD"
"LLVM_TOOL_LLVM_IFS_BUILD"
"LLVM_TOOL_LLVM_ISEL_FUZZER_BUILD"
"LLVM_TOOL_LLVM_ITANIUM_DEMANGLE_FUZZER_BUILD"
"LLVM_TOOL_LLVM_JITLINK_BUILD"
"LLVM_TOOL_LLVM_JITLISTENER_BUILD"
"LLVM_TOOL_LLVM_LIBTOOL_DARWIN_BUILD"
"LLVM_TOOL_LLVM_LINK_BUILD"
"LLVM_TOOL_LLVM_LIPO_BUILD"
"LLVM_TOOL_LLVM_LTO2_BUILD"
"LLVM_TOOL_LLVM_LTO_BUILD"
"LLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD"
"LLVM_TOOL_LLVM_MC_BUILD"
"LLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD"
"LLVM_TOOL_LLVM_MCA_BUILD"
"LLVM_TOOL_LLVM_MICROSOFT_DEMANGLE_FUZZER_BUILD"
"LLVM_TOOL_LLVM_ML_BUILD"
"LLVM_TOOL_LLVM_MODEXTRACT_BUILD"
"LLVM_TOOL_LLVM_MT_BUILD"
"LLVM_TOOL_LLVM_NM_BUILD"
"LLVM_TOOL_LLVM_OBJCOPY_BUILD"
"LLVM_TOOL_LLVM_OBJDUMP_BUILD"
"LLVM_TOOL_LLVM_OPT_FUZZER_BUILD"
"LLVM_TOOL_LLVM_OPT_REPORT_BUILD"
"LLVM_TOOL_LLVM_PDBUTIL_BUILD"
"LLVM_TOOL_LLVM_PROFDATA_BUILD"
"LLVM_TOOL_LLVM_PROFGEN_BUILD"
"LLVM_TOOL_LLVM_RC_BUILD"
"LLVM_TOOL_LLVM_READOBJ_BUILD"
"LLVM_TOOL_LLVM_READTAPI_BUILD"
"LLVM_TOOL_LLVM_REDUCE_BUILD"
"LLVM_TOOL_LLVM_REMARKUTIL_BUILD"
"LLVM_TOOL_LLVM_RTDYLD_BUILD"
"LLVM_TOOL_LLVM_RUST_DEMANGLE_FUZZER_BUILD"
"LLVM_TOOL_LLVM_SHLIB_BUILD"
"LLVM_TOOL_LLVM_SIM_BUILD"
"LLVM_TOOL_LLVM_SIZE_BUILD"
"LLVM_TOOL_LLVM_SPECIAL_CASE_LIST_FUZZER_BUILD"
"LLVM_TOOL_LLVM_SPLIT_BUILD"
"LLVM_TOOL_LLVM_STRESS_BUILD"
"LLVM_TOOL_LLVM_STRINGS_BUILD"
"LLVM_TOOL_LLVM_SYMBOLIZER_BUILD"
"LLVM_TOOL_LLVM_TLI_CHECKER_BUILD"
"LLVM_TOOL_LLVM_UNDNAME_BUILD"
"LLVM_TOOL_LLVM_XRAY_BUILD"
"LLVM_TOOL_LLVM_YAML_NUMERIC_PARSER_FUZZER_BUILD"
"LLVM_TOOL_LLVM_YAML_PARSER_FUZZER_BUILD"
"LLVM_TOOL_LTO_BUILD"
"LLVM_TOOL_MLIR_BUILD"
"LLVM_TOOL_OBJ2YAML_BUILD"
"LLVM_TOOL_OPENMP_BUILD"
"LLVM_TOOL_OPT_BUILD"
"LLVM_TOOL_OPT_VIEWER_BUILD"
"LLVM_TOOL_POLLY_BUILD"
"LLVM_TOOL_PSTL_BUILD"
"LLVM_TOOL_REMARKS_SHLIB_BUILD"
"LLVM_TOOL_SANCOV_BUILD"
"LLVM_TOOL_SANSTATS_BUILD"
"LLVM_TOOL_SPIRV_TOOLS_BUILD"
"LLVM_TOOL_VERIFY_USELISTORDER_BUILD"
"LLVM_TOOL_VFABI_DEMANGLE_FUZZER_BUILD"
"LLVM_TOOL_XCODE_TOOLCHAIN_BUILD"
"LLVM_TOOL_YAML2OBJ_BUILD"
]


def get_llvm_cmake_definitions(builder_type):
# Keep sorted!
definitions = {
'CMAKE_BUILD_TYPE': 'Release',
'CMAKE_INSTALL_PREFIX': get_llvm_install_path(builder_type),
'LLVM_BUILD_32_BITS': ('ON' if builder_type.bits == 32 else 'OFF'),
'LLVM_ENABLE_ASSERTIONS': 'ON',
'LLVM_ENABLE_BINDINGS': 'OFF',
'LLVM_ENABLE_CURL': 'OFF',
'LLVM_ENABLE_DIA_SDK': 'OFF',
'LLVM_ENABLE_HTTPLIB': 'OFF',
'LLVM_ENABLE_IDE': 'OFF',
'LLVM_ENABLE_LIBXML2': 'OFF',
'LLVM_ENABLE_OCAMLDOC': 'OFF',
'LLVM_ENABLE_RTTI': 'ON',
'LLVM_ENABLE_TERMINFO': 'OFF',
'LLVM_ENABLE_WARNINGS': 'OFF', # silence them, it's not like we're gonna fix them
'LLVM_ENABLE_ZLIB': 'ON',
'LLVM_ENABLE_ZSTD': 'OFF',
'LLVM_INCLUDE_BENCHMARKS': 'OFF',
'LLVM_INCLUDE_EXAMPLES': 'OFF',
'LLVM_INCLUDE_TESTS': 'OFF',
'LLVM_TARGETS_TO_BUILD': 'X86;ARM;NVPTX;AArch64;Hexagon;PowerPC;WebAssembly',
}

for off in _LLVM_OFF_OPTS:
definitions[off] = 'OFF'

if builder_type.bits == 32:
definitions['CMAKE_FIND_ROOT_PATH_MODE_INCLUDE'] = "ONLY"
definitions['CMAKE_FIND_ROOT_PATH_MODE_LIBRARY'] = "ONLY"
Expand Down