diff --git a/bolt/lib/Core/CMakeLists.txt b/bolt/lib/Core/CMakeLists.txt --- a/bolt/lib/Core/CMakeLists.txt +++ b/bolt/lib/Core/CMakeLists.txt @@ -1,5 +1,4 @@ set(LLVM_LINK_COMPONENTS - BOLTUtils DebugInfoDWARF Demangle MC @@ -26,3 +25,8 @@ LINK_LIBS ${LLVM_PTHREAD_LIB} ) + +target_link_libraries(LLVMBOLTCore + PRIVATE + LLVMBOLTUtils + ) diff --git a/bolt/lib/Passes/CMakeLists.txt b/bolt/lib/Passes/CMakeLists.txt --- a/bolt/lib/Passes/CMakeLists.txt +++ b/bolt/lib/Passes/CMakeLists.txt @@ -50,8 +50,12 @@ LINK_COMPONENTS AsmPrinter - BOLTCore - BOLTUtils MC Support ) + +target_link_libraries(LLVMBOLTPasses + PRIVATE + LLVMBOLTCore + LLVMBOLTUtils + ) diff --git a/bolt/lib/Profile/CMakeLists.txt b/bolt/lib/Profile/CMakeLists.txt --- a/bolt/lib/Profile/CMakeLists.txt +++ b/bolt/lib/Profile/CMakeLists.txt @@ -8,8 +8,12 @@ YAMLProfileWriter.cpp LINK_COMPONENTS - BOLTCore - BOLTPasses - BOLTUtils Support ) + +target_link_libraries(LLVMBOLTProfile + PRIVATE + LLVMBOLTCore + LLVMBOLTPasses + LLVMBOLTUtils + ) diff --git a/bolt/lib/Rewrite/CMakeLists.txt b/bolt/lib/Rewrite/CMakeLists.txt --- a/bolt/lib/Rewrite/CMakeLists.txt +++ b/bolt/lib/Rewrite/CMakeLists.txt @@ -1,9 +1,4 @@ set(LLVM_LINK_COMPONENTS - BOLTCore - BOLTPasses - BOLTProfile - BOLTRuntimeLibs - BOLTUtils DebugInfoDWARF DWP ExecutionEngine @@ -12,13 +7,21 @@ Support ) +set(TARGET_LINK_LIBRARIES + LLVMBOLTCore + LLVMBOLTPasses + LLVMBOLTProfile + LLVMBOLTRuntimeLibs + LLVMBOLTUtils + ) + if ("AArch64" IN_LIST LLVM_TARGETS_TO_BUILD) - list(APPEND LLVM_LINK_COMPONENTS BOLTTargetAArch64) + list(APPEND TARGET_LINK_LIBRARIES LLVMBOLTTargetAArch64) set(BOLT_AArch64 On) endif() if ("X86" IN_LIST LLVM_TARGETS_TO_BUILD) - list(APPEND LLVM_LINK_COMPONENTS BOLTTargetX86) + list(APPEND TARGET_LINK_LIBRARIES LLVMBOLTTargetX86) set(BOLT_X64 On) endif() @@ -34,6 +37,11 @@ ${LLVM_PTHREAD_LIB} ) +target_link_libraries(LLVMBOLTRewrite + PRIVATE + ${TARGET_LINK_LIBRARIES} + ) + if (DEFINED BOLT_AArch64) target_compile_definitions(LLVMBOLTRewrite PRIVATE AARCH64_AVAILABLE) endif() diff --git a/bolt/lib/RuntimeLibs/CMakeLists.txt b/bolt/lib/RuntimeLibs/CMakeLists.txt --- a/bolt/lib/RuntimeLibs/CMakeLists.txt +++ b/bolt/lib/RuntimeLibs/CMakeLists.txt @@ -1,7 +1,4 @@ set(LLVM_LINK_COMPONENTS - BOLTCore - BOLTPasses - BOLTUtils BinaryFormat MC Object @@ -14,3 +11,10 @@ HugifyRuntimeLibrary.cpp InstrumentationRuntimeLibrary.cpp ) + +target_link_libraries(LLVMBOLTRuntimeLibs + PRIVATE + LLVMBOLTCore + LLVMBOLTPasses + LLVMBOLTUtils + ) diff --git a/bolt/tools/driver/CMakeLists.txt b/bolt/tools/driver/CMakeLists.txt --- a/bolt/tools/driver/CMakeLists.txt +++ b/bolt/tools/driver/CMakeLists.txt @@ -1,8 +1,5 @@ set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} - BOLTProfile - BOLTRewrite - BOLTUtils MC Object Support @@ -21,6 +18,13 @@ ${BOLT_DRIVER_DEPS} ) +target_link_libraries(llvm-bolt + PRIVATE + LLVMBOLTProfile + LLVMBOLTRewrite + LLVMBOLTUtils + ) + add_llvm_tool_symlink(perf2bolt llvm-bolt) add_llvm_tool_symlink(llvm-boltdiff llvm-bolt) add_llvm_tool_symlink(llvm-bolt-heatmap llvm-bolt) diff --git a/bolt/unittests/Core/CMakeLists.txt b/bolt/unittests/Core/CMakeLists.txt --- a/bolt/unittests/Core/CMakeLists.txt +++ b/bolt/unittests/Core/CMakeLists.txt @@ -1,11 +1,12 @@ -set(LLVM_LINK_COMPONENTS - BOLTRewrite - ) - add_bolt_unittest(CoreTests MCPlusBuilder.cpp ) +target_link_libraries(CoreTests + PRIVATE + LLVMBOLTRewrite + ) + string(FIND "${LLVM_TARGETS_TO_BUILD}" "AArch64" POSITION) if (NOT ${POSITION} EQUAL -1) include_directories(