1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

CMake: Tests PERL availability with PERL_EXECUTABLE variable.

On MSVC 64bits, does not put underscore before the symbol name on the
/INCLUDE linker parameter.

llvm-svn: 62738
This commit is contained in:
Oscar Fuentes 2009-01-22 01:20:31 +00:00
parent 375325e8c1
commit 48a1886727

View File

@ -1,3 +1,5 @@
include(FindPerl)
macro(llvm_config executable) macro(llvm_config executable)
# extra args is the list of link components. # extra args is the list of link components.
if( MSVC ) if( MSVC )
@ -10,16 +12,21 @@ endmacro(llvm_config)
function(msvc_llvm_config executable) function(msvc_llvm_config executable)
set( link_components ${ARGN} ) set( link_components ${ARGN} )
if( CMAKE_CL_64 )
set(include_lflag "/INCLUDE:")
else( CMAKE_CL_64 )
set(include_lflag "/INCLUDE:_")
endif()
foreach(c ${link_components}) foreach(c ${link_components})
if( c STREQUAL "jit" ) if( c STREQUAL "jit" )
set(lfgs "${lfgs} /INCLUDE:_X86TargetMachineModule") set(lfgs "${lfgs} ${include_lflag}X86TargetMachineModule")
endif( c STREQUAL "jit" ) endif( c STREQUAL "jit" )
list(FIND LLVM_TARGETS_TO_BUILD ${c} idx) list(FIND LLVM_TARGETS_TO_BUILD ${c} idx)
if( NOT idx LESS 0 ) if( NOT idx LESS 0 )
set(lfgs "${lfgs} /INCLUDE:_${c}TargetMachineModule") set(lfgs "${lfgs} ${include_lflag}${c}TargetMachineModule")
list(FIND LLVM_ASMPRINTERS_FORCE_LINK ${c} idx) list(FIND LLVM_ASMPRINTERS_FORCE_LINK ${c} idx)
if( NOT idx LESS 0 ) if( NOT idx LESS 0 )
set(lfgs "${lfgs} /INCLUDE:_${c}AsmPrinterForceLink") set(lfgs "${lfgs} ${include_lflag}${c}AsmPrinterForceLink")
endif() endif()
endif() endif()
endforeach(c) endforeach(c)
@ -108,9 +115,9 @@ macro(nix_llvm_config executable)
"`${LLVM_TOOLS_BINARY_DIR}/llvm-config --libs ${lc}`") "`${LLVM_TOOLS_BINARY_DIR}/llvm-config --libs ${lc}`")
else( NOT HAVE_LLVM_CONFIG ) else( NOT HAVE_LLVM_CONFIG )
# tbi: Error handling. # tbi: Error handling.
if( NOT PERL_FOUND ) if( NOT PERL_EXECUTABLE )
message(FATAL_ERROR "Perl required but not found!") message(FATAL_ERROR "Perl required but not found!")
endif( NOT PERL_FOUND ) endif( NOT PERL_EXECUTABLE )
execute_process( execute_process(
COMMAND sh -c "${PERL_EXECUTABLE} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/llvm-config --libs ${lc}" COMMAND sh -c "${PERL_EXECUTABLE} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/llvm-config --libs ${lc}"
RESULT_VARIABLE rv RESULT_VARIABLE rv