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