add_llvm_definitions( -D__STDC_LIMIT_MACROS )
add_llvm_definitions( -D__STDC_CONSTANT_MACROS )
-set(LLVM_PLO_FLAGS "" CACHE
- STRING "Flags for creating partially linked objects.")
-
if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 )
# TODO: support other platforms and toolchains.
option(LLVM_BUILD_32_BITS "Build 32 bits executables and libraries." OFF)
include_directories( ${LLVM_BINARY_DIR}/include ${LLVM_MAIN_INCLUDE_DIR})
include(AddLLVM)
-include(AddPartiallyLinkedObject)
include(TableGen)
add_subdirectory(lib/Support)
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})
+ add_llvm_library(LLVM${target_name} ${ARGN} ${TABLEGEN_OUTPUT})
+ if (FALSE)
if( TABLEGEN_OUTPUT )
add_dependencies(LLVM${target_name} ${target_name}Table_gen)
endif( TABLEGEN_OUTPUT )
+ endif ()
endmacro(add_llvm_target)
+++ /dev/null
-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)
-add_partially_linked_object(LLVMExecutionEngine
+add_llvm_library(LLVMExecutionEngine
ExecutionEngine.cpp
ExecutionEngineBindings.cpp
)
-add_partially_linked_object(LLVMInterpreter
+add_llvm_library(LLVMInterpreter
Execution.cpp
ExternalFunctions.cpp
Interpreter.cpp
# TODO: Support other architectures. See Makefile.
add_definitions(-DENABLE_X86_JIT)
-add_partially_linked_object(LLVMJIT
+add_llvm_library(LLVMJIT
Intercept.cpp
JIT.cpp
JITDwarfEmitter.cpp
include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-add_partially_linked_object(LLVMARMAsmPrinter
+add_llvm_library(LLVMARMAsmPrinter
ARMAsmPrinter.cpp
)
-
-target_name_of_partially_linked_object(LLVMARMCodeGen n)
-
-add_dependencies(LLVMARMAsmPrinter ${n})
include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-add_partially_linked_object(LLVMAlphaAsmPrinter
+add_llvm_library(LLVMAlphaAsmPrinter
AlphaAsmPrinter.cpp
)
-
-target_name_of_partially_linked_object(LLVMAlphaCodeGen n)
-
-add_dependencies(LLVMAlphaAsmPrinter ${n})
${CMAKE_CURRENT_SOURCE_DIR}/..\r
)\r
\r
-add_partially_linked_object(LLVMCellSPUAsmPrinter\r
+add_llvm_library(LLVMCellSPUAsmPrinter\r
SPUAsmPrinter.cpp\r
)\r
-\r
-target_name_of_partially_linked_object(LLVMCellSPUCodeGen n)\r
-\r
-add_dependencies(LLVMCellSPUAsmPrinter ${n})\r
${CMAKE_CURRENT_SOURCE_DIR}/..\r
)\r
\r
-add_partially_linked_object(LLVMIA64AsmPrinter\r
+add_llvm_library(LLVMIA64AsmPrinter\r
IA64AsmPrinter.cpp\r
)\r
-\r
-target_name_of_partially_linked_object(LLVMIA64CodeGen n)\r
-\r
-add_dependencies(LLVMIA64AsmPrinter ${n})\r
${CMAKE_CURRENT_SOURCE_DIR}/..\r
)\r
\r
-add_partially_linked_object(LLVMMipsAsmPrinter\r
+add_llvm_library(LLVMMipsAsmPrinter\r
MipsAsmPrinter.cpp\r
)\r
-\r
-target_name_of_partially_linked_object(LLVMMipsCodeGen n)\r
-\r
-add_dependencies(LLVMMipsAsmPrinter ${n})\r
include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-add_partially_linked_object(LLVMPowerPCAsmPrinter
+add_llvm_library(LLVMPowerPCAsmPrinter
PPCAsmPrinter.cpp
)
-
-target_name_of_partially_linked_object(LLVMPowerPCCodeGen n)
-
-add_dependencies(LLVMPowerPCAsmPrinter ${n})
include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-add_partially_linked_object(LLVMSparcAsmPrinter
+add_llvm_library(LLVMSparcAsmPrinter
SparcAsmPrinter.cpp
)
-
-target_name_of_partially_linked_object(LLVMSparcCodeGen n)
-
-add_dependencies(LLVMSparcAsmPrinter ${n})
include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
-add_partially_linked_object(LLVMX86AsmPrinter
+add_llvm_library(LLVMX86AsmPrinter
X86ATTAsmPrinter.cpp
X86ATTInstPrinter.cpp
X86AsmPrinter.cpp
X86IntelAsmPrinter.cpp
)
-
-target_name_of_partially_linked_object(LLVMX86CodeGen n)
-
-add_dependencies(LLVMX86AsmPrinter ${n})