CMake: Tests PERL availability with PERL_EXECUTABLE variable.
authorOscar Fuentes <ofv@wanadoo.es>
Thu, 22 Jan 2009 01:20:31 +0000 (01:20 +0000)
committerOscar Fuentes <ofv@wanadoo.es>
Thu, 22 Jan 2009 01:20:31 +0000 (01:20 +0000)
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

index 6ed89bae447713a831f6c5ae0a98e4e570dfae40..72c4dcafa47ddc59b31e09caa66d60666cd56eb2 100755 (executable)
@@ -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