summaryrefslogtreecommitdiff
path: root/tools/lto/CMakeLists.txt
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-09-30 15:28:14 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-09-30 15:28:14 +0000
commita5b9cd1c68eda914ffcf133228824ca58e1ba518 (patch)
treefbfb2c9d295c5308bc92b9b665433fd8382366cd /tools/lto/CMakeLists.txt
parent6ef4dd8cb6852fd0036244a07dc944dc8fb8933c (diff)
downloadllvm-a5b9cd1c68eda914ffcf133228824ca58e1ba518.tar.gz
llvm-a5b9cd1c68eda914ffcf133228824ca58e1ba518.tar.bz2
llvm-a5b9cd1c68eda914ffcf133228824ca58e1ba518.tar.xz
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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191670 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/lto/CMakeLists.txt')
-rw-r--r--tools/lto/CMakeLists.txt16
1 files changed, 14 insertions, 2 deletions
diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
index 8b26ddd57e..5e5d8adecf 100644
--- a/tools/lto/CMakeLists.txt
+++ b/tools/lto/CMakeLists.txt
@@ -9,7 +9,19 @@ set(SOURCES
lto.cpp
)
-if( NOT WIN32 AND LLVM_ENABLE_PIC )
+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(SOURCES ${SOURCES} ${LTO_EXPORTS_DEF})
+ endif()
+
set(bsl ${BUILD_SHARED_LIBS})
set(BUILD_SHARED_LIBS ON)
add_llvm_library(LTO ${SOURCES})
@@ -25,7 +37,7 @@ if( NOT BUILD_SHARED_LIBS )
set_property(TARGET ${LTO_STATIC_TARGET_NAME} PROPERTY OUTPUT_NAME "LTO")
endif()
-if( NOT WIN32 )
+if( NOT CYGWIN )
install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
DESTINATION include/llvm-c)
endif()