[CMake] Update LLVM_LINK_COMPONENTS for each CMakeLists.txt.
[oota-llvm.git] / tools / lto / CMakeLists.txt
1 set(LLVM_LINK_COMPONENTS
2   ${LLVM_TARGETS_TO_BUILD}
3   Core
4   LTO
5   MC
6   Support
7   )
8
9 add_definitions( -DLLVM_VERSION_INFO=\"${PACKAGE_VERSION}\" )
10
11 set(SOURCES
12   LTODisassembler.cpp
13   lto.cpp
14   )
15
16 if( NOT CYGWIN AND LLVM_ENABLE_PIC )
17   if ( WIN32 )
18     # Create .def file containing a list of exports preceeded by
19     # 'EXPORTS'.  The file "lto.exports" already contains the list, so we
20     # massage it into the correct format here to create "lto.exports.def".
21     set(LTO_EXPORTS_DEF ${CMAKE_CURRENT_BINARY_DIR}/lto.exports.def)
22     set(LTO_EXPORTS_DEF_TEMP ${LTO_EXPORTS_DEF}.txt)
23     file(READ "lto.exports" exports_list)
24     file(WRITE ${LTO_EXPORTS_DEF_TEMP} "LIBRARY LTO\n")
25     file(APPEND ${LTO_EXPORTS_DEF_TEMP} "EXPORTS\n")
26     file(APPEND ${LTO_EXPORTS_DEF_TEMP} ${exports_list})
27
28     # Copy the file only if it has changed.
29     execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
30       ${LTO_EXPORTS_DEF_TEMP} ${LTO_EXPORTS_DEF})
31
32     set(SHARED_LIB_SOURCES ${SOURCES} ${LTO_EXPORTS_DEF})
33   else()
34     set(SHARED_LIB_SOURCES ${SOURCES})
35   endif()
36
37   set(bsl ${BUILD_SHARED_LIBS})
38   set(BUILD_SHARED_LIBS ON)
39   add_llvm_library(LTO ${SHARED_LIB_SOURCES})
40   set_property(TARGET LTO PROPERTY OUTPUT_NAME "LTO")
41   set(BUILD_SHARED_LIBS ${bsl})
42   set(LTO_STATIC_TARGET_NAME LTO_static)
43 else()
44   set(LTO_STATIC_TARGET_NAME LTO)
45 endif()
46
47 if( NOT BUILD_SHARED_LIBS )
48   add_llvm_library(${LTO_STATIC_TARGET_NAME} ${SOURCES})
49   set_property(TARGET ${LTO_STATIC_TARGET_NAME} PROPERTY OUTPUT_NAME "LTO")
50 endif()
51
52 if( NOT CYGWIN )
53   install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
54           DESTINATION include/llvm-c)
55 endif()