X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=tools%2Fgold%2FCMakeLists.txt;h=1a6169d65c2ca78a00d6382c1f270bb1a86d41d2;hb=ca21c56a5f5d4754f277d3547bf85446fc1636df;hp=d8633e6e47b133f46c232145bc8c89c043c52581;hpb=4839ded3bdf83a47c581b818e295669533cc9a9b;p=oota-llvm.git diff --git a/tools/gold/CMakeLists.txt b/tools/gold/CMakeLists.txt index d8633e6e47b..1a6169d65c2 100644 --- a/tools/gold/CMakeLists.txt +++ b/tools/gold/CMakeLists.txt @@ -1,43 +1,22 @@ -set(LLVM_BINUTILS_INCDIR "/usr/include" CACHE PATH - "PATH to binutils/include containing plugin-api.h for gold plugin.") +set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/gold.exports) -if( NOT EXISTS "${LLVM_BINUTILS_INCDIR}/plugin-api.h" ) - message(STATUS "plugin-api.h not found. gold plugin excluded from the build.") -else() +if( LLVM_ENABLE_PIC AND LLVM_BINUTILS_INCDIR ) include_directories( ${LLVM_BINUTILS_INCDIR} ) # Because off_t is used in the public API, the largefile parts are required for # ABI compatibility. add_definitions( -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ) - set(LLVM_LINK_COMPONENTS support) + set(LLVM_LINK_COMPONENTS + ${LLVM_TARGETS_TO_BUILD} + Linker + BitWriter + IPO + ) add_llvm_loadable_module(LLVMgold gold-plugin.cpp ) - # Makefile.rules contains a special cases for OpenBSD, Darwin and - # Windows. We restrict ourselves to Linux for the time being. - set(srcexp ${CMAKE_CURRENT_SOURCE_DIR}/gold.exports) - add_custom_command(OUTPUT exportsfile - COMMAND echo "{" > exportsfile - COMMAND grep -q "\\<" ${srcexp} && echo " global:" >> exportsfile || : - COMMAND sed -e "s/$/;/" -e "s/^/ /" < ${srcexp} >> exportsfile - COMMAND echo " local: *;" >> exportsfile - COMMAND echo "};" >> exportsfile - DEPENDS ${srcexp} - VERBATIM - COMMENT "Creating export file for gold plugin") - add_custom_target(gold_exports DEPENDS exportsfile) - set_property(DIRECTORY APPEND - PROPERTY ADDITIONAL_MAKE_CLEAN_FILES exportsfile) - - # Force re-linking when the exports file changes. Actually, it - # forces recompilation of gold-plugin.cpp. The LINK_DEPENDS target - # property only works for makefile-based generators. - set_property(SOURCE gold-plugin.cpp APPEND PROPERTY - OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/exportsfile) - - target_link_libraries(LLVMgold LTO -Wl,--version-script,exportsfile) - add_dependencies(LLVMgold gold_exports) endif() +