Enable building LTO on WIN32.
[oota-llvm.git] / tools / lto / CMakeLists.txt
1 set(LLVM_LINK_COMPONENTS
2   ${LLVM_TARGETS_TO_BUILD}
3   ipo scalaropts linker bitreader bitwriter lto mcdisassembler vectorize)
4
5 add_definitions( -DLLVM_VERSION_INFO=\"${PACKAGE_VERSION}\" )
6
7 set(SOURCES
8   LTODisassembler.cpp
9   lto.cpp
10   )
11
12 if( 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     file(READ "lto.exports" exports_list)
19     file(WRITE ${LTO_EXPORTS_DEF} "LIBRARY LTO\n")
20     file(APPEND ${LTO_EXPORTS_DEF} "EXPORTS\n")
21     file(APPEND ${LTO_EXPORTS_DEF} ${exports_list})
22     set(SHARED_LIB_SOURCES ${SOURCES} ${LTO_EXPORTS_DEF})
23   else()
24     set(SHARED_LIB_SOURCES ${SOURCES})
25   endif()
26
27   set(bsl ${BUILD_SHARED_LIBS})
28   set(BUILD_SHARED_LIBS ON)
29   add_llvm_library(LTO ${SHARED_LIB_SOURCES})
30   set_property(TARGET LTO PROPERTY OUTPUT_NAME "LTO")
31   set(BUILD_SHARED_LIBS ${bsl})
32   set(LTO_STATIC_TARGET_NAME LTO_static)
33 else()
34   set(LTO_STATIC_TARGET_NAME LTO)
35 endif()
36
37 if( NOT BUILD_SHARED_LIBS )
38   add_llvm_library(${LTO_STATIC_TARGET_NAME} ${SOURCES})
39   set_property(TARGET ${LTO_STATIC_TARGET_NAME} PROPERTY OUTPUT_NAME "LTO")
40 endif()
41
42 if( NOT CYGWIN )
43   install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
44           DESTINATION include/llvm-c)
45 endif()