diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-06-04 19:53:37 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-06-04 19:53:37 +0000 | 
| commit | 8eeb96d2d56f05fe6cf95a835f66c72410215be2 (patch) | |
| tree | 019512dcfbf14306615922d944b429afbf3f5481 /cmake | |
| parent | d8b4711a16a38f446f2d0e902d13790e03196dee (diff) | |
| download | external_llvm-8eeb96d2d56f05fe6cf95a835f66c72410215be2.zip external_llvm-8eeb96d2d56f05fe6cf95a835f66c72410215be2.tar.gz external_llvm-8eeb96d2d56f05fe6cf95a835f66c72410215be2.tar.bz2 | |
CMake: Use explicit dependencies for Xcode (as well as MSVC), to make
the CMake-generated Xcode project build properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72883 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
| -rwxr-xr-x | cmake/modules/AddLLVM.cmake | 6 | ||||
| -rwxr-xr-x | cmake/modules/AddPartiallyLinkedObject.cmake | 12 | ||||
| -rwxr-xr-x | cmake/modules/LLVMConfig.cmake | 54 | 
3 files changed, 38 insertions, 34 deletions
| diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index c531298..a21ed20 100755 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -26,11 +26,11 @@ macro(add_llvm_executable name)    if( LLVM_LINK_COMPONENTS )      llvm_config(${name} ${LLVM_LINK_COMPONENTS})    endif( LLVM_LINK_COMPONENTS ) -  if( MSVC ) +  if( USE_EXPLICIT_DEPENDENCIES )      target_link_libraries(${name} ${llvm_libs}) -  else( MSVC ) +  else( )      add_dependencies(${name} llvm-config.target) -  endif( MSVC ) +  endif( )    get_system_libs(llvm_system_libs)    if( llvm_system_libs )      target_link_libraries(${name} ${llvm_system_libs}) diff --git a/cmake/modules/AddPartiallyLinkedObject.cmake b/cmake/modules/AddPartiallyLinkedObject.cmake index c9d96de..d20666d 100755 --- a/cmake/modules/AddPartiallyLinkedObject.cmake +++ b/cmake/modules/AddPartiallyLinkedObject.cmake @@ -1,18 +1,18 @@  include(LLVMProcessSources)  macro(target_name_of_partially_linked_object lib var) -  if( MSVC ) +  if( USE_EXPLICIT_DEPENDENCIES )      set(${var} ${lib}) -  else( MSVC ) +  else( )      set(${var} ${lib}_pll) -  endif( MSVC ) +  endif( )  endmacro(target_name_of_partially_linked_object lib var)  macro(add_partially_linked_object lib) -  if( MSVC ) +  if( USE_EXPLICIT_DEPENDENCIES )      add_llvm_library( ${lib} ${ARGN}) -  else( MSVC ) +  else( )      set(pll ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${lib}.o)      set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)      set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib) @@ -36,7 +36,7 @@ macro(add_partially_linked_object lib)      add_custom_target(${tnplo} ALL DEPENDS ${pll})      set( llvm_libs ${llvm_libs} ${pll} PARENT_SCOPE)      set( llvm_lib_targets ${llvm_lib_targets} ${tnplo} PARENT_SCOPE ) -  endif( MSVC ) +  endif( )    install(FILES ${pll}      DESTINATION lib)  endmacro(add_partially_linked_object lib) diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake index 9776fb0..fd92495 100755 --- a/cmake/modules/LLVMConfig.cmake +++ b/cmake/modules/LLVMConfig.cmake @@ -21,36 +21,40 @@ endfunction(get_system_libs)  macro(llvm_config executable)    # extra args is the list of link components. -  if( MSVC ) -    msvc_llvm_config(${executable} ${ARGN}) -  else( MSVC ) +  if( USE_EXPLICIT_DEPENDENCIES ) +    explicit_llvm_config(${executable} ${ARGN}) +  else( )      nix_llvm_config(${executable} ${ARGN}) -  endif( MSVC ) +  endif( )  endmacro(llvm_config) -function(msvc_llvm_config executable) +function(explicit_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_lflag}X86TargetMachineModule") -    endif( c STREQUAL "jit" ) -    list(FIND LLVM_TARGETS_TO_BUILD ${c} idx) -    if( NOT idx LESS 0 ) -      set(lfgs "${lfgs} ${include_lflag}${c}TargetMachineModule") -      list(FIND LLVM_ASMPRINTERS_FORCE_LINK ${c} idx) + +  set(lfgs) +  if (MSVC) +    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_lflag}X86TargetMachineModule") +      endif( c STREQUAL "jit" ) +      list(FIND LLVM_TARGETS_TO_BUILD ${c} idx)        if( NOT idx LESS 0 ) -	set(lfgs "${lfgs} ${include_lflag}${c}AsmPrinterForceLink") +        set(lfgs "${lfgs} ${include_lflag}${c}TargetMachineModule") +        list(FIND LLVM_ASMPRINTERS_FORCE_LINK ${c} idx) +        if( NOT idx LESS 0 ) +	  set(lfgs "${lfgs} ${include_lflag}${c}AsmPrinterForceLink") +        endif()        endif() -    endif() -  endforeach(c) +    endforeach(c) +  endif () -  msvc_map_components_to_libraries(LIBRARIES ${link_components}) +  explicit_map_components_to_libraries(LIBRARIES ${link_components})    target_link_libraries(${executable} ${LIBRARIES})    if( lfgs ) @@ -58,10 +62,10 @@ function(msvc_llvm_config executable)        PROPERTIES        LINK_FLAGS ${lfgs})    endif() -endfunction(msvc_llvm_config) +endfunction(explicit_llvm_config) -function(msvc_map_components_to_libraries out_libs) +function(explicit_map_components_to_libraries out_libs)    set( link_components ${ARGN} )    foreach(c ${link_components})      # add codegen/asmprinter @@ -121,7 +125,7 @@ function(msvc_map_components_to_libraries out_libs)    endwhile( ${curr_idx} LESS ${lst_size} )    list(REMOVE_DUPLICATES result)    set(${out_libs} ${result} PARENT_SCOPE) -endfunction(msvc_map_components_to_libraries) +endfunction(explicit_map_components_to_libraries)  macro(nix_llvm_config executable) | 
