| set(LLVM_LINK_COMPONENTS |
| Analysis |
| Core |
| Support |
| |
| # IR reading (used by llvm-ir2vec.cpp directly) |
| IRReader |
| |
| # Machine IR components (for -mode=mir) |
| CodeGen |
| MIRParser |
| MC |
| Target |
| |
| # Target initialization (required for MIR parsing) |
| AllTargetsAsmParsers |
| AllTargetsCodeGens |
| AllTargetsDescs |
| AllTargetsInfos |
| TargetParser |
| ) |
| |
| # Build the utility libraries first |
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib) |
| add_subdirectory(lib) |
| |
| # Main executable |
| add_llvm_tool(llvm-ir2vec |
| llvm-ir2vec.cpp |
| |
| DEPENDS |
| intrinsics_gen |
| ) |
| |
| # Link both libraries: IR tool for IR mode, MIR tool for MIR mode |
| target_link_libraries(llvm-ir2vec PRIVATE LLVMIREmbUtils LLVMMIREmbUtils) |
| |
| option(LLVM_IR2VEC_ENABLE_PYTHON_BINDINGS |
| "Build Python bindings for llvm-ir2vec" |
| OFF) |
| |
| set(LLVM_IR2VEC_TEST_PYTHON_BINDINGS False CACHE INTERNAL "") |
| |
| if(LLVM_IR2VEC_ENABLE_PYTHON_BINDINGS) |
| add_subdirectory(Bindings) |
| set(LLVM_IR2VEC_TEST_PYTHON_BINDINGS True CACHE INTERNAL "" FORCE) |
| add_dependencies(llvm-ir2vec ir2vec ir2vec-python-staging) |
| endif() |