diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e47187295..f365556e7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,17 +142,27 @@ set(WITH_EXECINFO no CACHE BOOL "Build with execinfo support (requires glibc)") set(WITH_UNWIND no CACHE BOOL "Build with unwind support") +set(WITH_BFD no + CACHE BOOL "Build with BFD support") +set(WITH_LINKH no + CACHE BOOL "Build with link.h support") set(WITH_STACKTRACE no CACHE BOOL "Build with stacktrace support (requires binutils-dev)") if (WITH_STACKTRACE) if (NOT (WITH_EXECINFO OR WITH_UNWIND)) set(WITH_UNWIND yes) endif () + set(WITH_BFD yes) + set(WITH_LINKH yes) + set(HAVE_LFORTRAN_STACKTRACE yes) +endif() +if (WITH_BFD) find_package(BFD REQUIRED) - find_package(LINKH REQUIRED) set(HAVE_LFORTRAN_BFD yes) +endif() +if (WITH_LINKH) + find_package(LINKH REQUIRED) set(HAVE_LFORTRAN_LINK yes) - set(HAVE_LFORTRAN_STACKTRACE yes) endif() if (WITH_EXECINFO) find_package(EXECINFO REQUIRED) diff --git a/src/lfortran/CMakeLists.txt b/src/lfortran/CMakeLists.txt index a08e238f1d..22ef2a02f6 100644 --- a/src/lfortran/CMakeLists.txt +++ b/src/lfortran/CMakeLists.txt @@ -51,8 +51,11 @@ endif() if (WITH_JSON) target_link_libraries(lfortran_lib p::rapidjson) endif() -if (WITH_STACKTRACE) - target_link_libraries(lfortran_lib p::bfd p::link) +if (WITH_BFD) + target_link_libraries(lfortran_lib p::bfd) +endif() +if (WITH_LINK) + target_link_libraries(lfortran_lib p::link) endif() if (WITH_EXECINFO) target_link_libraries(lfortran_lib p::execinfo)