From 3d01fc7de86c75926e4e5ac7cc49f0116018893d Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Mon, 22 Sep 2008 01:08:49 +0000 Subject: Initial support for the CMake build system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/modules/AddPartiallyLinkedObject.cmake | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 cmake/modules/AddPartiallyLinkedObject.cmake (limited to 'cmake/modules/AddPartiallyLinkedObject.cmake') diff --git a/cmake/modules/AddPartiallyLinkedObject.cmake b/cmake/modules/AddPartiallyLinkedObject.cmake new file mode 100755 index 0000000000..b985b3eb28 --- /dev/null +++ b/cmake/modules/AddPartiallyLinkedObject.cmake @@ -0,0 +1,21 @@ + +macro(add_partially_linked_object lib) + if( MSVC ) + add_llvm_library( ${lib} ${ARGN}) + else( MSVC ) + set(pll ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${lib}.o) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib) + add_library( ${lib} STATIC ${ARGN}) + add_custom_command(OUTPUT ${pll} + MESSAGE "Building ${lib}.o..." + DEPENDS ${lib} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib + COMMAND ar x ${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX} + COMMAND ld -r *${CMAKE_CXX_OUTPUT_EXTENSION} -o ${pll} + COMMAND rm -f *${CMAKE_CXX_OUTPUT_EXTENSION} + ) + add_custom_target(${lib}_pll ALL DEPENDS ${pll}) + set( llvm_libs ${llvm_libs} ${pll} PARENT_SCOPE) + endif( MSVC ) +endmacro(add_partially_linked_object lib) -- cgit v1.2.3