Move library stuff out of the toplevel CMakeLists.txt file.
[oota-llvm.git] / lib / Target / CMakeLists.txt
1 add_llvm_library(LLVMTarget
2   Mangler.cpp
3   SubtargetFeature.cpp
4   Target.cpp
5   TargetAsmInfo.cpp
6   TargetAsmLexer.cpp
7   TargetData.cpp
8   TargetELFWriterInfo.cpp
9   TargetFrameLowering.cpp
10   TargetInstrInfo.cpp
11   TargetIntrinsicInfo.cpp
12   TargetLibraryInfo.cpp
13   TargetLoweringObjectFile.cpp
14   TargetMachine.cpp
15   TargetRegisterInfo.cpp
16   TargetSubtarget.cpp
17   )
18
19 set(LLVM_ENUM_ASM_PRINTERS "")
20 set(LLVM_ENUM_ASM_PARSERS "")
21 set(LLVM_ENUM_DISASSEMBLERS "")
22 foreach(t ${LLVM_TARGETS_TO_BUILD})
23   message(STATUS "Targeting ${t}")
24   add_subdirectory(${t})
25   add_subdirectory(${t}/TargetInfo)
26   set( td ${LLVM_MAIN_SRC_DIR}/lib/Target/${t} )
27   file(GLOB asmp_file "${td}/*AsmPrinter.cpp")
28   if( asmp_file )
29     set(LLVM_ENUM_ASM_PRINTERS
30       "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")
31   endif()
32   if( EXISTS ${td}/InstPrinter/CMakeLists.txt )
33     add_subdirectory(${t}/InstPrinter)
34   endif()
35   if( EXISTS ${td}/AsmParser/CMakeLists.txt )
36     add_subdirectory(${t}/AsmParser)
37     set(LLVM_ENUM_ASM_PARSERS
38       "${LLVM_ENUM_ASM_PARSERS}LLVM_ASM_PARSER(${t})\n")
39   endif()
40   if( EXISTS ${td}/Disassembler/CMakeLists.txt )
41     add_subdirectory(${t}/Disassembler)
42     set(LLVM_ENUM_DISASSEMBLERS
43       "${LLVM_ENUM_DISASSEMBLERS}LLVM_DISASSEMBLER(${t})\n")
44   endif()
45   if( EXISTS ${td}/Utils/CMakeLists.txt )
46     add_subdirectory(${td}/Utils)
47   endif()
48   set(CURRENT_LLVM_TARGET)
49 endforeach(t)
50
51 # Produce llvm/Config/AsmPrinters.def
52 configure_file(
53   ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/AsmPrinters.def.in
54   ${LLVM_BINARY_DIR}/include/llvm/Config/AsmPrinters.def
55   )
56
57 # Produce llvm/Config/AsmParsers.def
58 configure_file(
59   ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/AsmParsers.def.in
60   ${LLVM_BINARY_DIR}/include/llvm/Config/AsmParsers.def
61   )
62
63 # Produce llvm/Config/Disassemblers.def
64 configure_file(
65   ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/Disassemblers.def.in
66   ${LLVM_BINARY_DIR}/include/llvm/Config/Disassemblers.def
67   )