mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:50:30 +00:00
CMake: remove support for llvm-config-generated dependencies in the build
llvm-svn: 73979
This commit is contained in:
parent
27a85303fe
commit
28a3a15808
@ -100,24 +100,6 @@ configure_file(
|
||||
|
||||
set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm)
|
||||
|
||||
# The USE_EXPLICIT_DEPENDENCIES variable will be TRUE to indicate that
|
||||
# we should use the library dependencies explicitly specified in the
|
||||
# CMakeLists.txt files rather than those determined by
|
||||
# llvm-config. This value must be true for non-make and IDE
|
||||
# generators.
|
||||
if (MSVC_IDE)
|
||||
set(DEFAULT_USE_EXPLICIT_DEPENDENCIES ON)
|
||||
elseif (XCODE)
|
||||
set(DEFAULT_USE_EXPLICIT_DEPENDENCIES ON)
|
||||
else ()
|
||||
set(DEFAULT_USE_EXPLICIT_DEPENDENCIES OFF)
|
||||
endif ()
|
||||
|
||||
option(USE_EXPLICIT_DEPENDENCIES
|
||||
"Use explicit dependencies instead of llvm-config"
|
||||
${DEFAULT_USE_EXPLICIT_DEPENDENCIES})
|
||||
mark_as_advanced(USE_EXPLICIT_DEPENDENCIES)
|
||||
|
||||
# Add path for custom modules
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_MODULE_PATH}
|
||||
|
@ -26,11 +26,7 @@ macro(add_llvm_executable name)
|
||||
if( LLVM_LINK_COMPONENTS )
|
||||
llvm_config(${name} ${LLVM_LINK_COMPONENTS})
|
||||
endif( LLVM_LINK_COMPONENTS )
|
||||
if( USE_EXPLICIT_DEPENDENCIES )
|
||||
target_link_libraries(${name} ${llvm_libs})
|
||||
else( )
|
||||
add_dependencies(${name} llvm-config.target)
|
||||
endif( )
|
||||
target_link_libraries(${name} ${llvm_libs})
|
||||
get_system_libs(llvm_system_libs)
|
||||
if( llvm_system_libs )
|
||||
target_link_libraries(${name} ${llvm_system_libs})
|
||||
|
@ -20,12 +20,7 @@ endfunction(get_system_libs)
|
||||
|
||||
|
||||
macro(llvm_config executable)
|
||||
# extra args is the list of link components.
|
||||
if( USE_EXPLICIT_DEPENDENCIES )
|
||||
explicit_llvm_config(${executable} ${ARGN})
|
||||
else( )
|
||||
nix_llvm_config(${executable} ${ARGN})
|
||||
endif( )
|
||||
explicit_llvm_config(${executable} ${ARGN})
|
||||
endmacro(llvm_config)
|
||||
|
||||
|
||||
@ -127,44 +122,7 @@ function(explicit_map_components_to_libraries out_libs)
|
||||
set(${out_libs} ${result} PARENT_SCOPE)
|
||||
endfunction(explicit_map_components_to_libraries)
|
||||
|
||||
|
||||
macro(nix_llvm_config executable)
|
||||
set(lc "")
|
||||
foreach(c ${ARGN})
|
||||
set(lc "${lc} ${c}")
|
||||
endforeach(c)
|
||||
if( NOT HAVE_LLVM_CONFIG )
|
||||
target_link_libraries(${executable}
|
||||
"`${LLVM_TOOLS_BINARY_DIR}/llvm-config --libs ${lc}`")
|
||||
else( NOT HAVE_LLVM_CONFIG )
|
||||
# tbi: Error handling.
|
||||
if( NOT PERL_EXECUTABLE )
|
||||
message(FATAL_ERROR "Perl required but not found!")
|
||||
endif( NOT PERL_EXECUTABLE )
|
||||
execute_process(
|
||||
COMMAND sh -c "${PERL_EXECUTABLE} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/llvm-config --libs ${lc}"
|
||||
RESULT_VARIABLE rv
|
||||
OUTPUT_VARIABLE libs
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(NOT rv EQUAL 0)
|
||||
message(FATAL_ERROR "llvm-config failed for executable ${executable}")
|
||||
endif(NOT rv EQUAL 0)
|
||||
string(REPLACE " " ";" libs ${libs})
|
||||
foreach(c ${libs})
|
||||
if(c MATCHES ".*\\.o")
|
||||
get_filename_component(fn ${c} NAME)
|
||||
target_link_libraries(${executable}
|
||||
${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${fn})
|
||||
else(c MATCHES ".*\\.o")
|
||||
string(REPLACE "-l" "" fn ${c})
|
||||
target_link_libraries(${executable} ${fn})
|
||||
endif(c MATCHES ".*\\.o")
|
||||
endforeach(c)
|
||||
endif( NOT HAVE_LLVM_CONFIG )
|
||||
endmacro(nix_llvm_config)
|
||||
|
||||
|
||||
# This data is used on MSVC for stablishing executable/library
|
||||
# This data is used to establish executable/library
|
||||
# dependencies. Comes from the llvm-config script, which is built and
|
||||
# installed on the bin directory for MinGW or Linux. At the end of the
|
||||
# script, you'll see lines like this:
|
||||
|
@ -2,7 +2,9 @@
|
||||
# large and three small executables. This is done to minimize memory load
|
||||
# in parallel builds. Please retain this ordering.
|
||||
|
||||
if (NOT USE_EXPLICIT_DEPENDENCIES)
|
||||
# FIXME: We don't yet have the ability to build llvm-config with CMake
|
||||
# based on explicit dependencies.
|
||||
if (FALSE)
|
||||
add_subdirectory(llvm-config)
|
||||
endif()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user