From 1271b9f071755eefcffce25d507cad43941cf566 Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Thu, 22 Jan 2009 01:20:31 +0000 Subject: [PATCH] CMake: Tests PERL availability with PERL_EXECUTABLE variable. On MSVC 64bits, does not put underscore before the symbol name on the /INCLUDE linker parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62738 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/modules/LLVMConfig.cmake | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake index 6ed89bae447..72c4dcafa47 100755 --- a/cmake/modules/LLVMConfig.cmake +++ b/cmake/modules/LLVMConfig.cmake @@ -1,3 +1,5 @@ +include(FindPerl) + macro(llvm_config executable) # extra args is the list of link components. if( MSVC ) @@ -10,16 +12,21 @@ endmacro(llvm_config) function(msvc_llvm_config executable) 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}) if( c STREQUAL "jit" ) - set(lfgs "${lfgs} /INCLUDE:_X86TargetMachineModule") + set(lfgs "${lfgs} ${include_lflag}X86TargetMachineModule") endif( c STREQUAL "jit" ) list(FIND LLVM_TARGETS_TO_BUILD ${c} idx) 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) if( NOT idx LESS 0 ) - set(lfgs "${lfgs} /INCLUDE:_${c}AsmPrinterForceLink") + set(lfgs "${lfgs} ${include_lflag}${c}AsmPrinterForceLink") endif() endif() endforeach(c) @@ -108,9 +115,9 @@ macro(nix_llvm_config executable) "`${LLVM_TOOLS_BINARY_DIR}/llvm-config --libs ${lc}`") else( NOT HAVE_LLVM_CONFIG ) # tbi: Error handling. - if( NOT PERL_FOUND ) + if( NOT PERL_EXECUTABLE ) message(FATAL_ERROR "Perl required but not found!") - endif( NOT PERL_FOUND ) + endif( NOT PERL_EXECUTABLE ) execute_process( COMMAND sh -c "${PERL_EXECUTABLE} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/llvm-config --libs ${lc}" RESULT_VARIABLE rv