1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/tools/lto/CMakeLists.txt
Rafael Espindola f84c89a432 Enable building LTO on WIN32.
Enable building the LTO library (.lib and.dll) and llvm-lto.exe on Windows with
MSVC and Mingw as well as re-enabling the associated test.

Patch by Greg Bedwell!

llvm-svn: 191823
2013-10-02 14:04:38 +00:00

46 lines
1.4 KiB
CMake

set(LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
ipo scalaropts linker bitreader bitwriter lto mcdisassembler vectorize)
add_definitions( -DLLVM_VERSION_INFO=\"${PACKAGE_VERSION}\" )
set(SOURCES
LTODisassembler.cpp
lto.cpp
)
if( NOT CYGWIN AND LLVM_ENABLE_PIC )
if ( WIN32 )
# Create .def file containing a list of exports preceeded by
# 'EXPORTS'. The file "lto.exports" already contains the list, so we
# massage it into the correct format here to create "lto.exports.def".
set(LTO_EXPORTS_DEF ${CMAKE_CURRENT_BINARY_DIR}/lto.exports.def)
file(READ "lto.exports" exports_list)
file(WRITE ${LTO_EXPORTS_DEF} "LIBRARY LTO\n")
file(APPEND ${LTO_EXPORTS_DEF} "EXPORTS\n")
file(APPEND ${LTO_EXPORTS_DEF} ${exports_list})
set(SHARED_LIB_SOURCES ${SOURCES} ${LTO_EXPORTS_DEF})
else()
set(SHARED_LIB_SOURCES ${SOURCES})
endif()
set(bsl ${BUILD_SHARED_LIBS})
set(BUILD_SHARED_LIBS ON)
add_llvm_library(LTO ${SHARED_LIB_SOURCES})
set_property(TARGET LTO PROPERTY OUTPUT_NAME "LTO")
set(BUILD_SHARED_LIBS ${bsl})
set(LTO_STATIC_TARGET_NAME LTO_static)
else()
set(LTO_STATIC_TARGET_NAME LTO)
endif()
if( NOT BUILD_SHARED_LIBS )
add_llvm_library(${LTO_STATIC_TARGET_NAME} ${SOURCES})
set_property(TARGET ${LTO_STATIC_TARGET_NAME} PROPERTY OUTPUT_NAME "LTO")
endif()
if( NOT CYGWIN )
install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
DESTINATION include/llvm-c)
endif()