summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rwxr-xr-xcmake/modules/AddLLVM.cmake11
-rwxr-xr-xcmake/modules/AddPartiallyLinkedObject.cmake42
-rwxr-xr-xcmake/modules/LLVMConfig.cmake46
3 files changed, 4 insertions, 95 deletions
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
index e525674..b196c63 100755
--- a/cmake/modules/AddLLVM.cmake
+++ b/cmake/modules/AddLLVM.cmake
@@ -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})
@@ -61,8 +57,5 @@ macro(add_llvm_target target_name)
add_dependencies(${target_name}Table_gen ${LLVM_COMMON_DEPENDS})
endif( TABLEGEN_OUTPUT )
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
- add_partially_linked_object(LLVM${target_name} ${ARGN})
- if( TABLEGEN_OUTPUT )
- add_dependencies(LLVM${target_name} ${target_name}Table_gen)
- endif( TABLEGEN_OUTPUT )
+ add_llvm_library(LLVM${target_name} ${ARGN} ${TABLEGEN_OUTPUT})
endmacro(add_llvm_target)
diff --git a/cmake/modules/AddPartiallyLinkedObject.cmake b/cmake/modules/AddPartiallyLinkedObject.cmake
deleted file mode 100755
index 0f92455..0000000
--- a/cmake/modules/AddPartiallyLinkedObject.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-include(LLVMProcessSources)
-
-macro(target_name_of_partially_linked_object lib var)
- if( USE_EXPLICIT_DEPENDENCIES )
- set(${var} ${lib})
- else( )
- set(${var} ${lib}_pll)
- endif( )
-endmacro(target_name_of_partially_linked_object lib var)
-
-
-macro(add_partially_linked_object lib)
- if( USE_EXPLICIT_DEPENDENCIES )
- add_llvm_library( ${lib} ${ARGN})
- 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)
- llvm_process_sources( ALL_FILES ${ARGN} )
- if( BUILD_SHARED_LIBS AND SUPPORTS_FPIC_FLAG )
- add_definitions(-fPIC)
- endif()
- add_library( ${lib} STATIC ${ALL_FILES})
- if( LLVM_COMMON_DEPENDS )
- add_dependencies( ${lib} ${LLVM_COMMON_DEPENDS} )
- endif( LLVM_COMMON_DEPENDS )
- add_custom_command(OUTPUT ${pll}
- COMMENT "Building ${lib}.o..."
- DEPENDS ${lib}
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib/${CMAKE_CFG_INTDIR}
- COMMAND ar x ${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}
- COMMAND ${CMAKE_LINKER} "${LLVM_PLO_FLAGS}" -r "*${CMAKE_CXX_OUTPUT_EXTENSION}" -o ${pll}
- COMMAND ${CMAKE_COMMAND} -E remove -f *${CMAKE_CXX_OUTPUT_EXTENSION}
- )
- target_name_of_partially_linked_object(${lib} tnplo)
- 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( )
- install(FILES ${pll}
- DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-endmacro(add_partially_linked_object lib)
diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake
index fd92495..5fa08a3 100755
--- a/cmake/modules/LLVMConfig.cmake
+++ b/cmake/modules/LLVMConfig.cmake
@@ -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:
OpenPOWER on IntegriCloud