summaryrefslogtreecommitdiffstats
path: root/llvm/cmake/modules
diff options
context:
space:
mode:
authorChris Bieneman <beanz@apple.com>2014-10-30 22:37:58 +0000
committerChris Bieneman <beanz@apple.com>2014-10-30 22:37:58 +0000
commit970555bc08764f21ee10f8d36acc66ef3c603d5c (patch)
tree6e6e389b2462e090e4ea5f5b935f15489be09e23 /llvm/cmake/modules
parentd9913e6d355dbcef300245c2fe19deec5a0cb9ed (diff)
downloadbcm5719-llvm-970555bc08764f21ee10f8d36acc66ef3c603d5c.tar.gz
bcm5719-llvm-970555bc08764f21ee10f8d36acc66ef3c603d5c.zip
EXPORTED_SYMBOL_FILE using mingw and cmake
Summary: This is a fix for the command line syntax error while building LTO when using MinGW. Patch By: jsroemer Reviewers: rnk Reviewed By: rnk Subscribers: rnk, beanz, llvm-commits Differential Revision: http://reviews.llvm.org/D5476 llvm-svn: 220935
Diffstat (limited to 'llvm/cmake/modules')
-rw-r--r--llvm/cmake/modules/AddLLVM.cmake28
1 files changed, 15 insertions, 13 deletions
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 81b21fbfb6f..6646a4b8255 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -85,27 +85,29 @@ function(add_llvm_symbol_exports target_name export_file)
else()
set(native_export_file "${target_name}.def")
- set(CAT "type")
- if(CYGWIN)
- set(CAT "cat")
+ set(CAT "cat")
+ set(export_file_nativeslashes ${export_file})
+ if(WIN32 AND NOT CYGWIN)
+ set(CAT "type")
+ # Convert ${export_file} to native format (backslashes) for "type"
+ # Does not use file(TO_NATIVE_PATH) as it doesn't create a native
+ # path but a build-system specific format (see CMake bug
+ # http://public.kitware.com/Bug/print_bug_page.php?bug_id=5939 )
+ string(REPLACE / \\ export_file_nativeslashes ${export_file})
endif()
- # Using ${export_file} in add_custom_command directly confuses cmd.exe.
- file(TO_NATIVE_PATH ${export_file} export_file_backslashes)
-
add_custom_command(OUTPUT ${native_export_file}
COMMAND ${CMAKE_COMMAND} -E echo "EXPORTS" > ${native_export_file}
- COMMAND ${CAT} ${export_file_backslashes} >> ${native_export_file}
+ COMMAND ${CAT} ${export_file_nativeslashes} >> ${native_export_file}
DEPENDS ${export_file}
VERBATIM
COMMENT "Creating export file for ${target_name}")
- if(CYGWIN OR MINGW)
- set_property(TARGET ${target_name} APPEND_STRING PROPERTY
- LINK_FLAGS " ${CMAKE_CURRENT_BINARY_DIR}/${native_export_file}")
- else()
- set_property(TARGET ${target_name} APPEND_STRING PROPERTY
- LINK_FLAGS " /DEF:${CMAKE_CURRENT_BINARY_DIR}/${native_export_file}")
+ set(export_file_linker_flag "${CMAKE_CURRENT_BINARY_DIR}/${native_export_file}")
+ if(MSVC)
+ set(export_file_linker_flag "/DEF:${export_file_linker_flag}")
endif()
+ set_property(TARGET ${target_name} APPEND_STRING PROPERTY
+ LINK_FLAGS " ${export_file_linker_flag}")
endif()
add_custom_target(${target_name}_exports DEPENDS ${native_export_file})
OpenPOWER on IntegriCloud